mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-05 19:04:02 +00:00
feat(voice): add typed AI chat beside voice
Chat sits next to the mic in the command dock. Replies are silent and never request the microphone; the first message connects with the selected provider and runs the same map actions as voice through each provider's text API (OpenAI OPENAI_CHAT_MODEL, Gemini GEMINI_CHAT_MODEL via generateContent, which never starts Live). Only one mode runs at a time. - Chat panel rendered by the voice control presenter: conversation, recent and quick-command suggestions, Up/Down history, attachments (map-layer references or small UTF-8 text files, sent only with the message) - Chat and voice panels sit above the dock or dock into the right rail's column; minimized bars sit centred above the dock, and height animates on swaps - A centred panel steps down to its bar for the Location and Visual Presets trays without moving focus, rests above an open tray, and docks right while expanded over one; it returns to the centre once the trays close - Minimized voice previews the last sentence from each side; the empty Voice Preview suggests things to say - Settings opened from chat keep chat's frame and show the shared AI provider and quick commands; voice Settings show Back to voice - Closing chat ends a typed session; the voice panel's close turns voice off - The dock widens its voice control for the chat button and restyles its wings, which show icons only at 900px and below; assistant panels share the left panels' glass, and Cyber keeps its own surfaces - Server text-chat handlers with body, time and per-IP limits (GEV_RATELIMIT_*_CHAT_PER_MIN), documented in SECURITY.md; tests and all eleven locales Co-authored-by: Darren Dignam <[email protected]>
This commit is contained in:
1 parent
720260af58
commit
af461febae
57 files changed
+6500
-63
No files matched your search
@@ -3008,5 +3008,67 @@
|
||||
"Left panels": "Pannelli a sinistra",
|
||||
"Right panels": "Pannelli a destra",
|
||||
"CONFIRMED": "CONFERMATA",
|
||||
"PAD / RTLS": "SITO DI LANCIO / RTLS"
|
||||
"PAD / RTLS": "SITO DI LANCIO / RTLS",
|
||||
"Fly to Tokyo": "Vola a Tokyo",
|
||||
"Show live flights": "Mostra voli in diretta",
|
||||
"AI chat": "Chat IA",
|
||||
"GEV CHAT": "CHAT GEV",
|
||||
"Ask about the map. Tell it where to go.": "Chiedi della mappa. Dille dove andare.",
|
||||
"Close chat": "Chiudi chat",
|
||||
"Conversation": "Conversazione",
|
||||
"Explore with a question": "Esplora con una domanda",
|
||||
"Find a place, explore live data, or change your view.": "Trova un luogo, esplora dati in diretta o cambia vista.",
|
||||
"Attachments": "Allegati",
|
||||
"Remove attachment": "Rimuovi allegato",
|
||||
"Attach a map layer": "Allega un livello della mappa",
|
||||
"Choose a layer…": "Scegli un livello…",
|
||||
"Attach a file": "Allega un file",
|
||||
"TXT, Markdown, CSV, JSON or GeoJSON · up to 10 KB each. Attachments are sent to your AI provider with your message.": "TXT, Markdown, CSV, JSON o GeoJSON · fino a 10 KB ciascuno. Gli allegati vengono inviati al tuo fornitore di IA insieme al messaggio.",
|
||||
"Latest AI response": "Ultima risposta dell’IA",
|
||||
"Expand conversation": "Espandi conversazione",
|
||||
"Command suggestions": "Suggerimenti di comandi",
|
||||
"Expand chat": "Espandi chat",
|
||||
"Add attachment": "Aggiungi allegato",
|
||||
"Message GEV": "Messaggio a GEV",
|
||||
"Ask GEV anything about the map…": "Chiedi a GEV qualsiasi cosa sulla mappa…",
|
||||
"Stop reply": "Interrompi risposta",
|
||||
"Send message": "Invia messaggio",
|
||||
"Panel position": "Posizione del pannello",
|
||||
"Move above the dock": "Sposta sopra il dock",
|
||||
"Dock to the right": "Aggancia a destra",
|
||||
"Expand panel": "Espandi pannello",
|
||||
"Minimize panel": "Riduci pannello",
|
||||
"You can attach up to four items.": "Puoi allegare fino a quattro elementi.",
|
||||
"Attachments are too large together. Use smaller files.": "Gli allegati insieme sono troppo grandi. Usa file più piccoli.",
|
||||
"Choose a TXT, Markdown, CSV, JSON or GeoJSON file.": "Scegli un file TXT, Markdown, CSV, JSON o GeoJSON.",
|
||||
"Each file must be 10 KB or smaller.": "Ogni file deve essere di 10 KB o meno.",
|
||||
"Choose a non-empty UTF-8 text file.": "Scegli un file di testo UTF-8 non vuoto.",
|
||||
"Connecting…": "Connessione…",
|
||||
"Thinking…": "Sto pensando…",
|
||||
"Working on the map…": "Lavoro sulla mappa…",
|
||||
"Silent chat · microphone off": "Chat silenziosa · microfono spento",
|
||||
"Reply interrupted. You can try again.": "Risposta interrotta. Puoi riprovare.",
|
||||
"Could not connect. Try again.": "Impossibile connettersi. Riprova.",
|
||||
"Session ended. Send a message to start a new conversation.": "Sessione terminata. Invia un messaggio per iniziare una nuova conversazione.",
|
||||
"Connection timed out. Try again.": "Connessione scaduta. Riprova.",
|
||||
"Chat closed.": "Chat chiusa.",
|
||||
"Connection stopped.": "Connessione interrotta.",
|
||||
"Message and attachments are too large. Remove an attachment or shorten your message.": "Messaggio e allegati sono troppo grandi. Rimuovi un allegato o accorcia il messaggio.",
|
||||
"Message was not sent. Try again.": "Il messaggio non è stato inviato. Riprova.",
|
||||
"Reply stopped.": "Risposta interrotta.",
|
||||
"Suggestions": "Suggerimenti",
|
||||
"Recent": "Recenti",
|
||||
"Quick commands": "Comandi rapidi",
|
||||
"Open AI chat": "Apri chat IA",
|
||||
"CHAT": "CHAT",
|
||||
"Back to chat": "Torna alla chat",
|
||||
"Back to voice": "Torna alla voce",
|
||||
"Latest voice exchange": "Ultimo scambio vocale",
|
||||
"Try saying": "Prova a dire",
|
||||
"What am I looking at?": "Cosa sto guardando?",
|
||||
"AI Provider": "Fornitore di IA",
|
||||
"The selected AI provider is shared by voice and chat.": "Il fornitore di IA scelto è condiviso da voce e chat.",
|
||||
"Show quick commands": "Mostra comandi rapidi",
|
||||
"Chat replies are silent. No microphone access is needed.": "Le risposte della chat sono silenziose. Non serve l’accesso al microfono.",
|
||||
"Chat": "Chat"
|
||||
}
|
||||
Reference in new issue
Block a user