diff --git a/apps/web/src/lib/desktop.test.ts b/apps/web/src/lib/desktop.test.ts index 177ad2c..e150cac 100644 --- a/apps/web/src/lib/desktop.test.ts +++ b/apps/web/src/lib/desktop.test.ts @@ -63,6 +63,7 @@ describe("window chrome", () => { it("keeps conversation header controls clickable", () => { const root = path.join(path.dirname(fileURLToPath(import.meta.url)), "../pages"); const shell = readFileSync(path.join(root, "Shell.tsx"), "utf8"); + const toggles = readFileSync(path.join(root, "shell/sidebar-toggle-buttons.tsx"), "utf8"); expect(shell).toContain( 'className="app-drag flex items-center justify-between border-b border-sidebar-border', ); @@ -70,14 +71,16 @@ describe("window chrome", () => { expect(shell).toContain('className="app-no-drag flex min-w-0 items-center gap-3"'); // Ensure header sidebar toggle controls stay clickable (not part of drag region) expect( - shell.match(/app-no-drag .* size-control-lg .* place-items-center/g)?.length ?? 0, + toggles.match(/app-no-drag .* size-control-lg .* place-items-center/g)?.length ?? 0, ).toBeGreaterThanOrEqual(2); }); it("moves window chrome into the conversation header when the bots sidebar is collapsed", () => { const root = path.join(path.dirname(fileURLToPath(import.meta.url)), "../pages"); const shell = readFileSync(path.join(root, "Shell.tsx"), "utf8"); - expect(shell).toContain("{botsSidebarCollapsed && desktopBridge() ? : null}"); + const toggles = readFileSync(path.join(root, "shell/sidebar-toggle-buttons.tsx"), "utf8"); + expect(shell).toContain("collapsed={botsSidebarCollapsed}"); + expect(toggles).toContain("{collapsed && desktopBridge() ? : null}"); }); }); diff --git a/apps/web/src/locales/de/messages.po b/apps/web/src/locales/de/messages.po index 4373ebe..866ca49 100644 --- a/apps/web/src/locales/de/messages.po +++ b/apps/web/src/locales/de/messages.po @@ -14,7 +14,7 @@ msgstr "" "Plural-Forms: \n" "X-Generator: @lingui/cli\n" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid " (unread)" msgstr " (ungelesen)" @@ -126,22 +126,22 @@ msgid "{0}, {label}" msgstr "{0}, {label}" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, 1:1 conversation" msgstr "{0}, 1:1-Unterhaltung" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, group conversation" msgstr "{0}, Gruppenunterhaltung" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, main conversation" msgstr "{0}, Hauptunterhaltung" #. placeholder {0}: active.name -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "{0}'s screen" msgstr "{0}s Bildschirm" @@ -210,7 +210,7 @@ msgstr "{botName} verfolgt den Fehler…" msgid "{botName} watches the tape…" msgstr "{botName} beobachtet den Markt…" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "{botName}’s computer" msgstr "Computer von {botName}" @@ -277,7 +277,7 @@ msgstr "{title}, {label}" msgid "{toolCount, plural, one {# tool} other {# tools}}" msgstr "{toolCount, plural, one {# Tool} other {# Tools}}" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "{workingBotName} is working" msgstr "{workingBotName} arbeitet" @@ -339,6 +339,7 @@ msgstr "Aktionsbestätigungen" #. placeholder {0}: sectionMenu.section.name #: src/pages/BotContextMenu.tsx #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Actions for {0}" msgstr "Aktionen für {0}" @@ -354,7 +355,7 @@ msgstr "Aktiv" msgid "Active model" msgstr "Aktives Modell" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Activity" msgstr "Aktivität" @@ -643,15 +644,15 @@ msgstr "Genehmige diesen Server, damit dein Agent seine Tools verwenden kann." msgid "Archive" msgstr "Archivieren" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "archived" msgstr "archiviert" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Archived" msgstr "Archiviert" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Archived. Chat, memory, and files kept." msgstr "Archiviert. Chat, Erinnerungen und Dateien bleiben erhalten." @@ -711,11 +712,11 @@ msgstr "um {0}" msgid "at {timeSelect}" msgstr "um {timeSelect}" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Attach file" msgstr "Datei anhängen" -#: src/pages/Shell.tsx +#: src/pages/shell/message-preview.ts msgid "Attachment" msgstr "Anhang" @@ -788,7 +789,7 @@ msgstr "Bearer-Token" msgid "Blocked in your browser settings" msgstr "In deinen Browser-Einstellungen blockiert" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Booting live desktop…" msgstr "Live-Desktop wird gestartet…" @@ -797,7 +798,7 @@ msgstr "Live-Desktop wird gestartet…" msgid "Booting up {0}’s computer" msgstr "Computer von {0} wird gestartet" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "bot" msgstr "Bot" @@ -812,11 +813,11 @@ msgstr "Bot" msgid "Bot" msgstr "Bot" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Bot screen" msgstr "Bot-Bildschirm" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Bot screen preview" msgstr "Bot-Bildschirmvorschau" @@ -828,7 +829,7 @@ msgstr "Zu verknüpfender Bot" msgid "Bots act without asking by default. Add an exception only when you want to review a type of action first." msgstr "Bots handeln standardmäßig ohne Nachfrage. Füge nur dann eine Ausnahme hinzu, wenn du eine Aktionsart zuerst prüfen möchtest." -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Bots are working" msgstr "Bots arbeiten" @@ -889,7 +890,7 @@ msgstr "Neuen Bot abbrechen" msgid "Cancel new group" msgstr "Neue Gruppe abbrechen" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Cancel reply" msgstr "Antwort abbrechen" @@ -946,7 +947,7 @@ msgstr "Chat-Apps, Gruppenkanäle und Agent-Verbindungen." msgid "Chat history" msgstr "Chatverlauf" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Chat Settings" msgstr "Chat-Einstellungen" @@ -1088,7 +1089,7 @@ msgstr "Schließen" msgid "Close chart" msgstr "Diagramm schließen" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Close computer" msgstr "Computer schließen" @@ -1128,7 +1129,7 @@ msgstr "Navigation schließen" #: src/components/ArtifactPane.tsx #: src/components/browser/InAppBrowser.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Close panel" msgstr "Panel schließen" @@ -1159,7 +1160,7 @@ msgid "Coder" msgstr "Coder" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Collapse {0}" msgstr "{0} einklappen" @@ -1192,24 +1193,24 @@ msgid "Composing a reply…" msgstr "Schreibt eine Antwort…" #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx +#: src/pages/shell/transcript.tsx msgid "Computer" msgstr "Computer" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer failed to boot" msgstr "Computer konnte nicht gestartet werden" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Computer is asleep" msgstr "Computer ist im Ruhezustand" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer is asleep. Open it to wake." msgstr "Computer ist im Ruhezustand. Öffne ihn, um ihn aufzuwecken." -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer is stopped" msgstr "Computer ist gestoppt" @@ -1353,7 +1354,7 @@ msgstr "Im Hintergrund fortsetzen" msgid "Continue with email" msgstr "Mit E-Mail fortfahren" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Conversation record" msgstr "Gesprächsverlauf" @@ -1361,11 +1362,11 @@ msgstr "Gesprächsverlauf" msgid "Conversations" msgstr "Unterhaltungen" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Copy" msgstr "Kopieren" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Copy reply" msgstr "Antwort kopieren" @@ -1747,9 +1748,9 @@ msgstr "Avatare konnten nicht aktualisiert werden" msgid "Couldn't update messaging settings" msgstr "Messaging-Einstellungen konnten nicht aktualisiert werden" -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx #: src/pages/shell/dialogs.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Create" msgstr "Erstellen" @@ -1906,14 +1907,14 @@ msgstr "Standardbereich" #: src/pages/KnowledgeSection.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/RoutineEditor.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx #: src/pages/shell/dialogs.tsx msgid "Delete" msgstr "Löschen" #. placeholder {0}: bot.name #. placeholder {0}: group.name -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Delete {0}" msgstr "{0} löschen" @@ -1943,7 +1944,7 @@ msgstr "Mein Konto löschen" msgid "Delete space" msgstr "Space löschen" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "deleted" msgstr "gelöscht" @@ -2013,7 +2014,7 @@ msgstr "Verbindung wird getrennt…" msgid "Dismiss" msgstr "Ausblenden" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Dismiss error" msgstr "Fehler ausblenden" @@ -2111,7 +2112,7 @@ msgstr "Duplizieren" msgid "e.g. Hivenet Agent, Presales, Timesheets bot" msgstr "z. B. Hivenet Agent, Presales, Zeiterfassungs-Bot" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Earlier message" msgstr "Frühere Nachricht" @@ -2222,7 +2223,7 @@ msgid "Expand" msgstr "Erweitern" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Expand {0}" msgstr "{0} ausklappen" @@ -2404,6 +2405,7 @@ msgstr "Ziele für dieses Projekt, unabhängig von Chat-Nachrichten. Unterhaltun #: src/components/stage/OoStage.tsx #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Group" msgstr "Gruppe" @@ -2528,7 +2530,7 @@ msgstr "Wie soll dein Oo klingen, wenn es Antworten vorliest?" msgid "How to check" msgstr "So wird geprüft" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "I’m done" msgstr "Ich bin fertig" @@ -2635,11 +2637,11 @@ msgstr "Isoliert" msgid "Its conversation, files, and routines will be permanently deleted. Bots it created stay in your list." msgstr "Seine Unterhaltung, Dateien und Routinen werden dauerhaft gelöscht. Von ihm erstellte Bots bleiben in deiner Liste." -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Jump to latest" msgstr "Zur neuesten Nachricht springen" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Jump to replied message" msgstr "Zur beantworteten Nachricht springen" @@ -2726,7 +2728,7 @@ msgstr "Ich höre zu — was ist kaputt oder langsam?" msgid "Listening — what's the story?" msgstr "Ich höre zu — was ist die Geschichte?" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Load earlier messages" msgstr "Frühere Nachrichten laden" @@ -2779,7 +2781,7 @@ msgstr "Stimmen werden geladen…" #: src/pages/HeuteBrief.tsx #: src/pages/IntegrationSetup.tsx #: src/pages/PeerMessagesOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Loading…" msgstr "Wird geladen…" @@ -2799,7 +2801,7 @@ msgstr "Lokales Docker" msgid "Local Server Settings" msgstr "Einstellungen des lokalen Servers" -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Log out" msgstr "Abmelden" @@ -2926,7 +2928,7 @@ msgstr "Erinnerungen" msgid "Memory scope" msgstr "Erinnerungsbereich" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Mentions" msgstr "Erwähnungen" @@ -2939,11 +2941,12 @@ msgstr "Nur Erwähnungen" msgid "Message" msgstr "Nachricht" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx +#: src/pages/shell/message-preview.ts msgid "Message" msgstr "Nachricht" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Message composer" msgstr "Nachrichteneingabe" @@ -2951,11 +2954,11 @@ msgstr "Nachrichteneingabe" msgid "Message event" msgstr "Nachrichtenereignis" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Message from {peer}" msgstr "Nachricht von {peer}" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Message…" msgstr "Nachricht…" @@ -2981,7 +2984,7 @@ msgstr "Minimal" msgid "Minimize" msgstr "Minimieren" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Minimize bots" msgstr "Bots minimieren" @@ -3038,7 +3041,7 @@ msgstr "Modelle vom Server" msgid "Monthly" msgstr "Monatlich" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "More" msgstr "Mehr" @@ -3104,7 +3107,8 @@ msgstr "Braucht dich" #: src/components/MainInbox.tsx #: src/pages/ActivityList.tsx #: src/pages/HeuteBrief.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx +#: src/pages/shell/transcript.tsx msgid "Needs you" msgstr "Braucht dich" @@ -3397,12 +3401,12 @@ msgid "Only file and folder names are read." msgstr "Gelesen werden nur Datei- und Ordnernamen." #: src/pages/ScratchpadSection.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Open" msgstr "Öffnen" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Open {0}" msgstr "{0} öffnen" @@ -3418,11 +3422,11 @@ msgstr "Unterhaltung öffnen" msgid "Open in browser" msgstr "Im Browser öffnen" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Open in full window" msgstr "In vollständigem Fenster öffnen" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Open navigation" msgstr "Navigation öffnen" @@ -3438,7 +3442,7 @@ msgstr "Offene Arbeit" msgid "OpenAI-compatible server URL" msgstr "URL eines OpenAI-kompatiblen Servers" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Opened its thread." msgstr "Thread geöffnet." @@ -3679,19 +3683,19 @@ msgstr "Ende der Ruhezeiten" msgid "Quiet hours start" msgstr "Beginn der Ruhezeiten" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Quote" msgstr "Zitieren" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "React" msgstr "Reagieren" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Reactions" msgstr "Reaktionen" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Read aloud" msgstr "Vorlesen" @@ -3796,7 +3800,7 @@ msgstr "Wird aktualisiert…" msgid "Region" msgstr "Region" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Release" msgstr "Freigeben" @@ -3820,7 +3824,7 @@ msgid "Remove" msgstr "Entfernen" #. placeholder {0}: attachment.file.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove {0}" msgstr "{0} entfernen" @@ -3829,7 +3833,7 @@ msgid "Remove Git event" msgstr "Git-Ereignis entfernen" #. placeholder {0}: mention.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove mention {0}" msgstr "Erwähnung von {0} entfernen" @@ -3842,7 +3846,7 @@ msgid "Remove schedule" msgstr "Zeitplan entfernen" #. placeholder {0}: selectedSkill.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove skill {0}" msgstr "Skill {0} entfernen" @@ -3850,7 +3854,7 @@ msgstr "Skill {0} entfernen" msgid "Remove webhook" msgstr "Webhook entfernen" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Removed with chat, computer, and memory." msgstr "Zusammen mit Chat, Computer und Erinnerungen entfernt." @@ -3883,15 +3887,15 @@ msgstr "API-Schlüssel ersetzen" msgid "Replace key" msgstr "Schlüssel ersetzen" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Reply" msgstr "Antworten" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Replying to {replyName}" msgstr "Antwort an {replyName}" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Replying to {replyName}: “{replyQuote}”" msgstr "Antwort an {replyName}: „{replyQuote}“" @@ -3937,7 +3941,7 @@ msgstr "Wird zurückgesetzt…" msgid "Restart to update" msgstr "Zum Aktualisieren neu starten" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Restore" msgstr "Wiederherstellen" @@ -4142,7 +4146,7 @@ msgid "Searching…" msgstr "Suche…" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Select {0}" msgstr "{0} auswählen" @@ -4150,7 +4154,7 @@ msgstr "{0} auswählen" msgid "Self-hosted (better-auth)" msgstr "Selbst gehostet (better-auth)" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx #: src/pages/shell/message-cards.tsx msgid "Send" msgstr "Senden" @@ -4201,21 +4205,22 @@ msgid "Server URL" msgstr "Server-URL" #: src/components/stage/StageVoiceEntry.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Set up voice" msgstr "Stimme einrichten" #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx +#: src/pages/shell/user-menu.tsx msgid "Settings" msgstr "Einstellungen" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Settings: General" msgstr "Einstellungen: Allgemein" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Settings: Usage" msgstr "Einstellungen: Nutzung" @@ -4259,10 +4264,11 @@ msgid "Show all {0}" msgstr "Alle {0} anzeigen" #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Show bots" msgstr "Bots anzeigen" -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Show computer" msgstr "Computer anzeigen" @@ -4278,7 +4284,7 @@ msgstr "Mehr anzeigen" msgid "Show password" msgstr "Passwort anzeigen" -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Show settings" msgstr "Einstellungen anzeigen" @@ -4307,7 +4313,7 @@ msgid "Sketching the blueprint…" msgstr "Skizziere den Bauplan…" #. placeholder {0}: skill.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Skill {0}" msgstr "Skill {0}" @@ -4319,7 +4325,7 @@ msgstr "Skills" #: src/components/onboarding/OnboardingScanStep.tsx #: src/components/onboarding/OnboardingVoiceStep.tsx #: src/lib/onboarding-copy.ts -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Skip" msgstr "Überspringen" @@ -4373,11 +4379,11 @@ msgstr "Space-Standard" msgid "Spaces" msgstr "Spaces" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Speak" msgstr "Vorlesen" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Speak this reply" msgstr "Diese Antwort vorlesen" @@ -4431,15 +4437,15 @@ msgstr "Aufnahme starten" msgid "Start talking" msgstr "Sprechen starten" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Start the conversation — {activeName} is on stage above." msgstr "Starte die Unterhaltung — {activeName} steht oben auf der Bühne." -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Start the conversation." msgstr "Starte die Unterhaltung." -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Start voice conversation" msgstr "Sprachunterhaltung starten" @@ -4466,11 +4472,13 @@ msgid "Steps" msgstr "Schritte" #: src/components/browser/InAppBrowser.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx +#: src/pages/shell/transcript.tsx msgid "Stop" msgstr "Stoppen" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Stop speaking" msgstr "Vorlesen stoppen" @@ -4500,7 +4508,7 @@ msgstr "Stresstest fürs Portfolio…" msgid "Stronger together — {0} specialists" msgstr "Stärker zusammen — {0} Spezialisten" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "subagent" msgstr "Subagent" @@ -4565,7 +4573,7 @@ msgstr "Aufgabe wird angelernt. Beende das Anlernen, bevor du eine neue Nachrich msgid "Team" msgstr "Team" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Team Computer" msgstr "Team-Computer" @@ -4606,7 +4614,7 @@ msgstr "Der ausgewählte Erinnerungsanbieter ist in diesem Build nicht verfügba msgid "Thinking" msgstr "Denkmodus" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "This bot runs on this computer, not a Linux desktop. Shell and files use your home folder." msgstr "Dieser Bot wird auf diesem Computer und nicht auf einem Linux-Desktop ausgeführt. Shell und Dateien verwenden deinen persönlichen Ordner." @@ -4713,7 +4721,7 @@ msgid "Transcribe" msgstr "Transkribieren" #: src/components/voice/VoiceStage.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Transcript" msgstr "Transkript" @@ -4836,7 +4844,7 @@ msgstr "Hochladen" #: src/pages/AccountSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Usage" msgstr "Nutzung" @@ -4877,8 +4885,8 @@ msgid "Video workflow" msgstr "Video-Workflow" #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx +#: src/pages/shell/composer.tsx #: src/pages/VoiceSettingsOverlay.tsx msgid "Voice" msgstr "Stimme" @@ -5074,7 +5082,7 @@ msgstr "Arbeitet…" msgid "Working…" msgstr "Wird verarbeitet…" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-format.ts msgid "Yesterday" msgstr "Gestern" @@ -5092,7 +5100,7 @@ msgstr "Du kannst diesen Tab schließen, wenn du nicht automatisch weitergeleite msgid "You can close this window." msgstr "Du kannst dieses Fenster schließen." -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "You have control" msgstr "Du hast die Kontrolle" diff --git a/apps/web/src/locales/en/messages.po b/apps/web/src/locales/en/messages.po index 6fada7e..8079236 100644 --- a/apps/web/src/locales/en/messages.po +++ b/apps/web/src/locales/en/messages.po @@ -14,7 +14,7 @@ msgstr "" "Plural-Forms: \n" "X-Generator: @lingui/cli\n" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid " (unread)" msgstr " (unread)" @@ -126,22 +126,22 @@ msgid "{0}, {label}" msgstr "{0}, {label}" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, 1:1 conversation" msgstr "{0}, 1:1 conversation" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, group conversation" msgstr "{0}, group conversation" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, main conversation" msgstr "{0}, main conversation" #. placeholder {0}: active.name -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "{0}'s screen" msgstr "{0}'s screen" @@ -210,7 +210,7 @@ msgstr "{botName} traces the failure…" msgid "{botName} watches the tape…" msgstr "{botName} watches the tape…" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "{botName}’s computer" msgstr "{botName}’s computer" @@ -277,7 +277,7 @@ msgstr "{title}, {label}" msgid "{toolCount, plural, one {# tool} other {# tools}}" msgstr "{toolCount, plural, one {# tool} other {# tools}}" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "{workingBotName} is working" msgstr "{workingBotName} is working" @@ -339,6 +339,7 @@ msgstr "Action confirmations" #. placeholder {0}: sectionMenu.section.name #: src/pages/BotContextMenu.tsx #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Actions for {0}" msgstr "Actions for {0}" @@ -354,7 +355,7 @@ msgstr "Active" msgid "Active model" msgstr "Active model" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Activity" msgstr "Activity" @@ -643,15 +644,15 @@ msgstr "Approve this server to let your agent use its tools." msgid "Archive" msgstr "Archive" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "archived" msgstr "archived" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Archived" msgstr "Archived" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Archived. Chat, memory, and files kept." msgstr "Archived. Chat, memory, and files kept." @@ -711,11 +712,11 @@ msgstr "at {0}" msgid "at {timeSelect}" msgstr "at {timeSelect}" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Attach file" msgstr "Attach file" -#: src/pages/Shell.tsx +#: src/pages/shell/message-preview.ts msgid "Attachment" msgstr "Attachment" @@ -788,7 +789,7 @@ msgstr "Bearer token" msgid "Blocked in your browser settings" msgstr "Blocked in your browser settings" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Booting live desktop…" msgstr "Booting live desktop…" @@ -797,7 +798,7 @@ msgstr "Booting live desktop…" msgid "Booting up {0}’s computer" msgstr "Booting up {0}’s computer" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "bot" msgstr "bot" @@ -812,11 +813,11 @@ msgstr "Bot" msgid "Bot" msgstr "Bot" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Bot screen" msgstr "Bot screen" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Bot screen preview" msgstr "Bot screen preview" @@ -828,7 +829,7 @@ msgstr "Bot to link" msgid "Bots act without asking by default. Add an exception only when you want to review a type of action first." msgstr "Bots act without asking by default. Add an exception only when you want to review a type of action first." -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Bots are working" msgstr "Bots are working" @@ -889,7 +890,7 @@ msgstr "Cancel new bot" msgid "Cancel new group" msgstr "Cancel new group" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Cancel reply" msgstr "Cancel reply" @@ -946,7 +947,7 @@ msgstr "Chat apps, group channels, and agent connections." msgid "Chat history" msgstr "Chat history" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Chat Settings" msgstr "Chat Settings" @@ -1088,7 +1089,7 @@ msgstr "Close" msgid "Close chart" msgstr "Close chart" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Close computer" msgstr "Close computer" @@ -1128,7 +1129,7 @@ msgstr "Close navigation" #: src/components/ArtifactPane.tsx #: src/components/browser/InAppBrowser.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Close panel" msgstr "Close panel" @@ -1159,7 +1160,7 @@ msgid "Coder" msgstr "Coder" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Collapse {0}" msgstr "Collapse {0}" @@ -1192,24 +1193,24 @@ msgid "Composing a reply…" msgstr "Composing a reply…" #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx +#: src/pages/shell/transcript.tsx msgid "Computer" msgstr "Computer" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer failed to boot" msgstr "Computer failed to boot" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Computer is asleep" msgstr "Computer is asleep" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer is asleep. Open it to wake." msgstr "Computer is asleep. Open it to wake." -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer is stopped" msgstr "Computer is stopped" @@ -1353,7 +1354,7 @@ msgstr "Continue in Background" msgid "Continue with email" msgstr "Continue with email" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Conversation record" msgstr "Conversation record" @@ -1361,11 +1362,11 @@ msgstr "Conversation record" msgid "Conversations" msgstr "Conversations" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Copy" msgstr "Copy" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Copy reply" msgstr "Copy reply" @@ -1747,9 +1748,9 @@ msgstr "Couldn't update avatars" msgid "Couldn't update messaging settings" msgstr "Couldn't update messaging settings" -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx #: src/pages/shell/dialogs.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Create" msgstr "Create" @@ -1906,14 +1907,14 @@ msgstr "Default scope" #: src/pages/KnowledgeSection.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/RoutineEditor.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx #: src/pages/shell/dialogs.tsx msgid "Delete" msgstr "Delete" #. placeholder {0}: bot.name #. placeholder {0}: group.name -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Delete {0}" msgstr "Delete {0}" @@ -1943,7 +1944,7 @@ msgstr "Delete my account" msgid "Delete space" msgstr "Delete space" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "deleted" msgstr "deleted" @@ -2013,7 +2014,7 @@ msgstr "Disconnecting…" msgid "Dismiss" msgstr "Dismiss" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Dismiss error" msgstr "Dismiss error" @@ -2111,7 +2112,7 @@ msgstr "Duplicate" msgid "e.g. Hivenet Agent, Presales, Timesheets bot" msgstr "e.g. Hivenet Agent, Presales, Timesheets bot" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Earlier message" msgstr "Earlier message" @@ -2222,7 +2223,7 @@ msgid "Expand" msgstr "Expand" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Expand {0}" msgstr "Expand {0}" @@ -2404,6 +2405,7 @@ msgstr "Goals for this project, separate from chat messages. Conversations are b #: src/components/stage/OoStage.tsx #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Group" msgstr "Group" @@ -2528,7 +2530,7 @@ msgstr "How should your Oo sound when reading replies aloud?" msgid "How to check" msgstr "How to check" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "I’m done" msgstr "I’m done" @@ -2635,11 +2637,11 @@ msgstr "Isolated" msgid "Its conversation, files, and routines will be permanently deleted. Bots it created stay in your list." msgstr "Its conversation, files, and routines will be permanently deleted. Bots it created stay in your list." -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Jump to latest" msgstr "Jump to latest" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Jump to replied message" msgstr "Jump to replied message" @@ -2726,7 +2728,7 @@ msgstr "Listening — what's broken or slow?" msgid "Listening — what's the story?" msgstr "Listening — what's the story?" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Load earlier messages" msgstr "Load earlier messages" @@ -2779,7 +2781,7 @@ msgstr "Loading voices…" #: src/pages/HeuteBrief.tsx #: src/pages/IntegrationSetup.tsx #: src/pages/PeerMessagesOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Loading…" msgstr "Loading…" @@ -2799,7 +2801,7 @@ msgstr "Local Docker" msgid "Local Server Settings" msgstr "Local Server Settings" -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Log out" msgstr "Log out" @@ -2926,7 +2928,7 @@ msgstr "Memory" msgid "Memory scope" msgstr "Memory scope" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Mentions" msgstr "Mentions" @@ -2939,11 +2941,12 @@ msgstr "Mentions only" msgid "Message" msgstr "Message" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx +#: src/pages/shell/message-preview.ts msgid "Message" msgstr "Message" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Message composer" msgstr "Message composer" @@ -2951,11 +2954,11 @@ msgstr "Message composer" msgid "Message event" msgstr "Message event" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Message from {peer}" msgstr "Message from {peer}" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Message…" msgstr "Message…" @@ -2981,7 +2984,7 @@ msgstr "Minimal" msgid "Minimize" msgstr "Minimize" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Minimize bots" msgstr "Minimize bots" @@ -3038,7 +3041,7 @@ msgstr "Models from server" msgid "Monthly" msgstr "Monthly" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "More" msgstr "More" @@ -3104,7 +3107,8 @@ msgstr "Needs you" #: src/components/MainInbox.tsx #: src/pages/ActivityList.tsx #: src/pages/HeuteBrief.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx +#: src/pages/shell/transcript.tsx msgid "Needs you" msgstr "Needs you" @@ -3397,12 +3401,12 @@ msgid "Only file and folder names are read." msgstr "Only file and folder names are read." #: src/pages/ScratchpadSection.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Open" msgstr "Open" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Open {0}" msgstr "Open {0}" @@ -3418,11 +3422,11 @@ msgstr "Open conversation" msgid "Open in browser" msgstr "Open in browser" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Open in full window" msgstr "Open in full window" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Open navigation" msgstr "Open navigation" @@ -3438,7 +3442,7 @@ msgstr "Open work" msgid "OpenAI-compatible server URL" msgstr "OpenAI-compatible server URL" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Opened its thread." msgstr "Opened its thread." @@ -3679,19 +3683,19 @@ msgstr "Quiet hours end" msgid "Quiet hours start" msgstr "Quiet hours start" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Quote" msgstr "Quote" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "React" msgstr "React" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Reactions" msgstr "Reactions" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Read aloud" msgstr "Read aloud" @@ -3796,7 +3800,7 @@ msgstr "Refreshing…" msgid "Region" msgstr "Region" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Release" msgstr "Release" @@ -3820,7 +3824,7 @@ msgid "Remove" msgstr "Remove" #. placeholder {0}: attachment.file.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove {0}" msgstr "Remove {0}" @@ -3829,7 +3833,7 @@ msgid "Remove Git event" msgstr "Remove Git event" #. placeholder {0}: mention.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove mention {0}" msgstr "Remove mention {0}" @@ -3842,7 +3846,7 @@ msgid "Remove schedule" msgstr "Remove schedule" #. placeholder {0}: selectedSkill.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove skill {0}" msgstr "Remove skill {0}" @@ -3850,7 +3854,7 @@ msgstr "Remove skill {0}" msgid "Remove webhook" msgstr "Remove webhook" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Removed with chat, computer, and memory." msgstr "Removed with chat, computer, and memory." @@ -3883,15 +3887,15 @@ msgstr "Replace API key" msgid "Replace key" msgstr "Replace key" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Reply" msgstr "Reply" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Replying to {replyName}" msgstr "Replying to {replyName}" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Replying to {replyName}: “{replyQuote}”" msgstr "Replying to {replyName}: “{replyQuote}”" @@ -3937,7 +3941,7 @@ msgstr "Resetting…" msgid "Restart to update" msgstr "Restart to update" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Restore" msgstr "Restore" @@ -4142,7 +4146,7 @@ msgid "Searching…" msgstr "Searching…" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Select {0}" msgstr "Select {0}" @@ -4150,7 +4154,7 @@ msgstr "Select {0}" msgid "Self-hosted (better-auth)" msgstr "Self-hosted (better-auth)" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx #: src/pages/shell/message-cards.tsx msgid "Send" msgstr "Send" @@ -4201,21 +4205,22 @@ msgid "Server URL" msgstr "Server URL" #: src/components/stage/StageVoiceEntry.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Set up voice" msgstr "Set up voice" #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx +#: src/pages/shell/user-menu.tsx msgid "Settings" msgstr "Settings" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Settings: General" msgstr "Settings: General" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Settings: Usage" msgstr "Settings: Usage" @@ -4259,10 +4264,11 @@ msgid "Show all {0}" msgstr "Show all {0}" #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Show bots" msgstr "Show bots" -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Show computer" msgstr "Show computer" @@ -4278,7 +4284,7 @@ msgstr "Show more" msgid "Show password" msgstr "Show password" -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Show settings" msgstr "Show settings" @@ -4307,7 +4313,7 @@ msgid "Sketching the blueprint…" msgstr "Sketching the blueprint…" #. placeholder {0}: skill.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Skill {0}" msgstr "Skill {0}" @@ -4319,7 +4325,7 @@ msgstr "Skills" #: src/components/onboarding/OnboardingScanStep.tsx #: src/components/onboarding/OnboardingVoiceStep.tsx #: src/lib/onboarding-copy.ts -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Skip" msgstr "Skip" @@ -4373,11 +4379,11 @@ msgstr "Space default" msgid "Spaces" msgstr "Spaces" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Speak" msgstr "Speak" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Speak this reply" msgstr "Speak this reply" @@ -4431,15 +4437,15 @@ msgstr "Start recording" msgid "Start talking" msgstr "Start talking" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Start the conversation — {activeName} is on stage above." msgstr "Start the conversation — {activeName} is on stage above." -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Start the conversation." msgstr "Start the conversation." -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Start voice conversation" msgstr "Start voice conversation" @@ -4466,11 +4472,13 @@ msgid "Steps" msgstr "Steps" #: src/components/browser/InAppBrowser.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx +#: src/pages/shell/transcript.tsx msgid "Stop" msgstr "Stop" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Stop speaking" msgstr "Stop speaking" @@ -4500,7 +4508,7 @@ msgstr "Stress-testing the book…" msgid "Stronger together — {0} specialists" msgstr "Stronger together — {0} specialists" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "subagent" msgstr "subagent" @@ -4565,7 +4573,7 @@ msgstr "Teaching in progress. Stop teaching before sending a new message." msgid "Team" msgstr "Team" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Team Computer" msgstr "Team Computer" @@ -4606,7 +4614,7 @@ msgstr "The selected memory provider is not available in this build." msgid "Thinking" msgstr "Thinking" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "This bot runs on this computer, not a Linux desktop. Shell and files use your home folder." msgstr "This bot runs on this computer, not a Linux desktop. Shell and files use your home folder." @@ -4713,7 +4721,7 @@ msgid "Transcribe" msgstr "Transcribe" #: src/components/voice/VoiceStage.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Transcript" msgstr "Transcript" @@ -4836,7 +4844,7 @@ msgstr "Upload" #: src/pages/AccountSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Usage" msgstr "Usage" @@ -4877,8 +4885,8 @@ msgid "Video workflow" msgstr "Video workflow" #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx +#: src/pages/shell/composer.tsx #: src/pages/VoiceSettingsOverlay.tsx msgid "Voice" msgstr "Voice" @@ -5074,7 +5082,7 @@ msgstr "Working…" msgid "Working…" msgstr "Working…" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-format.ts msgid "Yesterday" msgstr "Yesterday" @@ -5092,7 +5100,7 @@ msgstr "You can close this tab if it does not redirect automatically." msgid "You can close this window." msgstr "You can close this window." -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "You have control" msgstr "You have control" diff --git a/apps/web/src/locales/es/messages.po b/apps/web/src/locales/es/messages.po index 52a19d2..47838ae 100644 --- a/apps/web/src/locales/es/messages.po +++ b/apps/web/src/locales/es/messages.po @@ -14,7 +14,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: @lingui/cli\n" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid " (unread)" msgstr " (sin leer)" @@ -126,22 +126,22 @@ msgid "{0}, {label}" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, 1:1 conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, group conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, main conversation" msgstr "" #. placeholder {0}: active.name -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "{0}'s screen" msgstr "Pantalla de {0}" @@ -210,7 +210,7 @@ msgstr "" msgid "{botName} watches the tape…" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "{botName}’s computer" msgstr "Computadora de {botName}" @@ -277,7 +277,7 @@ msgstr "{title}, {label}" msgid "{toolCount, plural, one {# tool} other {# tools}}" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "{workingBotName} is working" msgstr "{workingBotName} está trabajando" @@ -339,6 +339,7 @@ msgstr "Confirmaciones de acción" #. placeholder {0}: sectionMenu.section.name #: src/pages/BotContextMenu.tsx #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Actions for {0}" msgstr "Acciones para {0}" @@ -354,7 +355,7 @@ msgstr "Activo" msgid "Active model" msgstr "Modelo activo" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Activity" msgstr "Actividad" @@ -643,15 +644,15 @@ msgstr "Aprueba este servidor para que tu agente use sus herramientas." msgid "Archive" msgstr "Archivar" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "archived" msgstr "archivado" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Archived" msgstr "Archivado" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Archived. Chat, memory, and files kept." msgstr "Archivado. Se conservan el chat, la memoria y los archivos." @@ -711,11 +712,11 @@ msgstr "a las {0}" msgid "at {timeSelect}" msgstr "a las {timeSelect}" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Attach file" msgstr "Adjuntar archivo" -#: src/pages/Shell.tsx +#: src/pages/shell/message-preview.ts msgid "Attachment" msgstr "Archivo adjunto" @@ -788,7 +789,7 @@ msgstr "Token Bearer" msgid "Blocked in your browser settings" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Booting live desktop…" msgstr "Iniciando escritorio en vivo…" @@ -797,7 +798,7 @@ msgstr "Iniciando escritorio en vivo…" msgid "Booting up {0}’s computer" msgstr "Iniciando la computadora de {0}" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "bot" msgstr "bot" @@ -812,11 +813,11 @@ msgstr "Bot" msgid "Bot" msgstr "Bot" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Bot screen" msgstr "Pantalla del bot" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Bot screen preview" msgstr "Vista previa de la pantalla del bot" @@ -828,7 +829,7 @@ msgstr "Bot a vincular" msgid "Bots act without asking by default. Add an exception only when you want to review a type of action first." msgstr "Los bots actúan sin preguntar de forma predeterminada. Agrega una excepción solo cuando quieras revisar primero un tipo de acción." -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Bots are working" msgstr "Los bots están trabajando" @@ -889,7 +890,7 @@ msgstr "Cancelar nuevo bot" msgid "Cancel new group" msgstr "Cancelar nuevo grupo" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Cancel reply" msgstr "Cancelar respuesta" @@ -946,7 +947,7 @@ msgstr "Apps de chat, canales de grupo y conexiones de agentes." msgid "Chat history" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Chat Settings" msgstr "Configuración del chat" @@ -1088,7 +1089,7 @@ msgstr "Cerrar" msgid "Close chart" msgstr "Cerrar gráfico" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Close computer" msgstr "Cerrar computadora" @@ -1128,7 +1129,7 @@ msgstr "Cerrar navegación" #: src/components/ArtifactPane.tsx #: src/components/browser/InAppBrowser.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Close panel" msgstr "Cerrar panel" @@ -1159,7 +1160,7 @@ msgid "Coder" msgstr "" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Collapse {0}" msgstr "Contraer {0}" @@ -1192,24 +1193,24 @@ msgid "Composing a reply…" msgstr "" #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx +#: src/pages/shell/transcript.tsx msgid "Computer" msgstr "Computadora" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer failed to boot" msgstr "La computadora no pudo iniciarse" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Computer is asleep" msgstr "La computadora está en reposo" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer is asleep. Open it to wake." msgstr "La computadora está en reposo. Ábrela para despertarla." -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer is stopped" msgstr "La computadora está detenida" @@ -1353,7 +1354,7 @@ msgstr "" msgid "Continue with email" msgstr "Continuar con el correo" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Conversation record" msgstr "" @@ -1361,11 +1362,11 @@ msgstr "" msgid "Conversations" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Copy" msgstr "Copiar" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Copy reply" msgstr "" @@ -1747,9 +1748,9 @@ msgstr "No se pudieron actualizar los avatares" msgid "Couldn't update messaging settings" msgstr "No se pudo actualizar la configuración de mensajería" -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx #: src/pages/shell/dialogs.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Create" msgstr "Crear" @@ -1906,14 +1907,14 @@ msgstr "Alcance predeterminado" #: src/pages/KnowledgeSection.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/RoutineEditor.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx #: src/pages/shell/dialogs.tsx msgid "Delete" msgstr "Eliminar" #. placeholder {0}: bot.name #. placeholder {0}: group.name -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Delete {0}" msgstr "Eliminar {0}" @@ -1943,7 +1944,7 @@ msgstr "" msgid "Delete space" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "deleted" msgstr "eliminado" @@ -2013,7 +2014,7 @@ msgstr "Desconectando…" msgid "Dismiss" msgstr "Descartar" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Dismiss error" msgstr "Descartar error" @@ -2111,7 +2112,7 @@ msgstr "Duplicar" msgid "e.g. Hivenet Agent, Presales, Timesheets bot" msgstr "p. ej. Hivenet Agent, Presales, bot de hojas de horas" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Earlier message" msgstr "Mensaje anterior" @@ -2222,7 +2223,7 @@ msgid "Expand" msgstr "Expandir" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Expand {0}" msgstr "Expandir {0}" @@ -2404,6 +2405,7 @@ msgstr "" #: src/components/stage/OoStage.tsx #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Group" msgstr "Grupo" @@ -2528,7 +2530,7 @@ msgstr "" msgid "How to check" msgstr "Cómo comprobar" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "I’m done" msgstr "Listo" @@ -2635,11 +2637,11 @@ msgstr "Aislado" msgid "Its conversation, files, and routines will be permanently deleted. Bots it created stay in your list." msgstr "Su conversación, archivos y rutinas se eliminarán de forma permanente. Los bots que creó permanecerán en tu lista." -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Jump to latest" msgstr "Ir al más reciente" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Jump to replied message" msgstr "Ir al mensaje respondido" @@ -2726,7 +2728,7 @@ msgstr "" msgid "Listening — what's the story?" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Load earlier messages" msgstr "Cargar mensajes anteriores" @@ -2779,7 +2781,7 @@ msgstr "" #: src/pages/HeuteBrief.tsx #: src/pages/IntegrationSetup.tsx #: src/pages/PeerMessagesOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Loading…" msgstr "Cargando…" @@ -2799,7 +2801,7 @@ msgstr "" msgid "Local Server Settings" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Log out" msgstr "Cerrar sesión" @@ -2926,7 +2928,7 @@ msgstr "Memoria" msgid "Memory scope" msgstr "Alcance de memoria" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Mentions" msgstr "Menciones" @@ -2939,11 +2941,12 @@ msgstr "" msgid "Message" msgstr "Mensaje" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx +#: src/pages/shell/message-preview.ts msgid "Message" msgstr "Mensaje" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Message composer" msgstr "Redactor de mensajes" @@ -2951,11 +2954,11 @@ msgstr "Redactor de mensajes" msgid "Message event" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Message from {peer}" msgstr "Mensaje de {peer}" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Message…" msgstr "Mensaje…" @@ -2981,7 +2984,7 @@ msgstr "Mínimo" msgid "Minimize" msgstr "Minimizar" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Minimize bots" msgstr "" @@ -3038,7 +3041,7 @@ msgstr "Modelos del servidor" msgid "Monthly" msgstr "Mensual" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "More" msgstr "" @@ -3104,7 +3107,8 @@ msgstr "" #: src/components/MainInbox.tsx #: src/pages/ActivityList.tsx #: src/pages/HeuteBrief.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx +#: src/pages/shell/transcript.tsx msgid "Needs you" msgstr "" @@ -3397,12 +3401,12 @@ msgid "Only file and folder names are read." msgstr "" #: src/pages/ScratchpadSection.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Open" msgstr "Abrir" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Open {0}" msgstr "Abrir {0}" @@ -3418,11 +3422,11 @@ msgstr "" msgid "Open in browser" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Open in full window" msgstr "Abrir en ventana completa" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Open navigation" msgstr "Abrir navegación" @@ -3438,7 +3442,7 @@ msgstr "Trabajo abierto" msgid "OpenAI-compatible server URL" msgstr "URL de servidor compatible con OpenAI" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Opened its thread." msgstr "Se abrió su hilo." @@ -3679,19 +3683,19 @@ msgstr "" msgid "Quiet hours start" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Quote" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "React" msgstr "Reaccionar" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Reactions" msgstr "Reacciones" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Read aloud" msgstr "" @@ -3796,7 +3800,7 @@ msgstr "Actualizando…" msgid "Region" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Release" msgstr "Liberar" @@ -3820,7 +3824,7 @@ msgid "Remove" msgstr "Quitar" #. placeholder {0}: attachment.file.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove {0}" msgstr "Quitar {0}" @@ -3829,7 +3833,7 @@ msgid "Remove Git event" msgstr "" #. placeholder {0}: mention.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove mention {0}" msgstr "Quitar mención {0}" @@ -3842,7 +3846,7 @@ msgid "Remove schedule" msgstr "Quitar horario" #. placeholder {0}: selectedSkill.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove skill {0}" msgstr "Quitar habilidad {0}" @@ -3850,7 +3854,7 @@ msgstr "Quitar habilidad {0}" msgid "Remove webhook" msgstr "Quitar webhook" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Removed with chat, computer, and memory." msgstr "Eliminado junto con el chat, la computadora y la memoria." @@ -3883,15 +3887,15 @@ msgstr "Reemplazar clave de API" msgid "Replace key" msgstr "Reemplazar clave" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Reply" msgstr "Responder" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Replying to {replyName}" msgstr "Respondiendo a {replyName}" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Replying to {replyName}: “{replyQuote}”" msgstr "" @@ -3937,7 +3941,7 @@ msgstr "Restableciendo…" msgid "Restart to update" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Restore" msgstr "Restaurar" @@ -4142,7 +4146,7 @@ msgid "Searching…" msgstr "Buscando…" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Select {0}" msgstr "" @@ -4150,7 +4154,7 @@ msgstr "" msgid "Self-hosted (better-auth)" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx #: src/pages/shell/message-cards.tsx msgid "Send" msgstr "Enviar" @@ -4201,21 +4205,22 @@ msgid "Server URL" msgstr "URL del servidor" #: src/components/stage/StageVoiceEntry.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Set up voice" msgstr "" #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx +#: src/pages/shell/user-menu.tsx msgid "Settings" msgstr "Configuración" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Settings: General" msgstr "Configuración: General" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Settings: Usage" msgstr "Configuración: Uso" @@ -4259,10 +4264,11 @@ msgid "Show all {0}" msgstr "" #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Show bots" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Show computer" msgstr "" @@ -4278,7 +4284,7 @@ msgstr "Mostrar más" msgid "Show password" msgstr "Mostrar contraseña" -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Show settings" msgstr "Mostrar configuración" @@ -4307,7 +4313,7 @@ msgid "Sketching the blueprint…" msgstr "" #. placeholder {0}: skill.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Skill {0}" msgstr "Habilidad {0}" @@ -4319,7 +4325,7 @@ msgstr "Habilidades" #: src/components/onboarding/OnboardingScanStep.tsx #: src/components/onboarding/OnboardingVoiceStep.tsx #: src/lib/onboarding-copy.ts -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Skip" msgstr "Omitir" @@ -4373,11 +4379,11 @@ msgstr "Predeterminado del Space" msgid "Spaces" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Speak" msgstr "Hablar" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Speak this reply" msgstr "Leer esta respuesta" @@ -4431,15 +4437,15 @@ msgstr "Iniciar grabación" msgid "Start talking" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Start the conversation — {activeName} is on stage above." msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Start the conversation." msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Start voice conversation" msgstr "" @@ -4466,11 +4472,13 @@ msgid "Steps" msgstr "Pasos" #: src/components/browser/InAppBrowser.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx +#: src/pages/shell/transcript.tsx msgid "Stop" msgstr "Detener" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Stop speaking" msgstr "Dejar de hablar" @@ -4500,7 +4508,7 @@ msgstr "" msgid "Stronger together — {0} specialists" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "subagent" msgstr "subagente" @@ -4565,7 +4573,7 @@ msgstr "Enseñanza en curso: detén la enseñanza antes de enviar un nuevo mensa msgid "Team" msgstr "Equipo" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Team Computer" msgstr "Team Computer" @@ -4606,7 +4614,7 @@ msgstr "El proveedor de memoria seleccionado no está disponible en esta build." msgid "Thinking" msgstr "Pensando" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "This bot runs on this computer, not a Linux desktop. Shell and files use your home folder." msgstr "Este bot se ejecuta en esta computadora, no en un escritorio Linux. El shell y los archivos usan tu carpeta de inicio." @@ -4713,7 +4721,7 @@ msgid "Transcribe" msgstr "" #: src/components/voice/VoiceStage.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Transcript" msgstr "" @@ -4836,7 +4844,7 @@ msgstr "Subir" #: src/pages/AccountSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Usage" msgstr "Uso" @@ -4877,8 +4885,8 @@ msgid "Video workflow" msgstr "" #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx +#: src/pages/shell/composer.tsx #: src/pages/VoiceSettingsOverlay.tsx msgid "Voice" msgstr "Voz" @@ -5074,7 +5082,7 @@ msgstr "Trabajando…" msgid "Working…" msgstr "Trabajando…" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-format.ts msgid "Yesterday" msgstr "Ayer" @@ -5092,7 +5100,7 @@ msgstr "Puedes cerrar esta pestaña si no redirige automáticamente." msgid "You can close this window." msgstr "Puedes cerrar esta ventana." -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "You have control" msgstr "Tienes el control" diff --git a/apps/web/src/locales/hi/messages.po b/apps/web/src/locales/hi/messages.po index 9b23d13..c5ffae2 100644 --- a/apps/web/src/locales/hi/messages.po +++ b/apps/web/src/locales/hi/messages.po @@ -14,7 +14,7 @@ msgstr "" "Plural-Forms: \n" "X-Generator: @lingui/cli\n" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid " (unread)" msgstr " (अपठित)" @@ -126,22 +126,22 @@ msgid "{0}, {label}" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, 1:1 conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, group conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, main conversation" msgstr "" #. placeholder {0}: active.name -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "{0}'s screen" msgstr "" @@ -210,7 +210,7 @@ msgstr "" msgid "{botName} watches the tape…" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "{botName}’s computer" msgstr "{botName} का कंप्यूटर" @@ -277,7 +277,7 @@ msgstr "{title}, {label}" msgid "{toolCount, plural, one {# tool} other {# tools}}" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "{workingBotName} is working" msgstr "{workingBotName} काम कर रहा है" @@ -339,6 +339,7 @@ msgstr "कार्रवाई की पुष्टि" #. placeholder {0}: sectionMenu.section.name #: src/pages/BotContextMenu.tsx #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Actions for {0}" msgstr "{0} के लिए कार्रवाइयां" @@ -354,7 +355,7 @@ msgstr "" msgid "Active model" msgstr "सक्रिय मॉडल" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Activity" msgstr "गतिविधि" @@ -643,15 +644,15 @@ msgstr "अपने एजेंट को इसके टूल उपयो msgid "Archive" msgstr "आर्काइव करें" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "archived" msgstr "आर्काइव किया गया" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Archived" msgstr "आर्काइव किया गया" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Archived. Chat, memory, and files kept." msgstr "आर्काइव किया गया। चैट, मेमोरी और फ़ाइलें सुरक्षित रखी गईं।" @@ -711,11 +712,11 @@ msgstr "{0} बजे" msgid "at {timeSelect}" msgstr "{timeSelect} बजे" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Attach file" msgstr "फ़ाइल संलग्न करें" -#: src/pages/Shell.tsx +#: src/pages/shell/message-preview.ts msgid "Attachment" msgstr "अटैचमेंट" @@ -788,7 +789,7 @@ msgstr "बियरर टोकन" msgid "Blocked in your browser settings" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Booting live desktop…" msgstr "लाइव डेस्कटॉप शुरू हो रहा है…" @@ -797,7 +798,7 @@ msgstr "लाइव डेस्कटॉप शुरू हो रहा ह msgid "Booting up {0}’s computer" msgstr "{0} का कंप्यूटर शुरू हो रहा है" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "bot" msgstr "बॉट" @@ -812,11 +813,11 @@ msgstr "बॉट" msgid "Bot" msgstr "बॉट" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Bot screen" msgstr "बॉट स्क्रीन" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Bot screen preview" msgstr "बॉट स्क्रीन प्रीव्यू" @@ -828,7 +829,7 @@ msgstr "" msgid "Bots act without asking by default. Add an exception only when you want to review a type of action first." msgstr "बॉट डिफ़ॉल्ट रूप से बिना पूछे कार्रवाई करते हैं। अपवाद तभी जोड़ें जब आप किसी प्रकार की कार्रवाई की पहले समीक्षा करना चाहते हों।" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Bots are working" msgstr "बॉट काम कर रहे हैं" @@ -889,7 +890,7 @@ msgstr "नया बॉट रद्द करें" msgid "Cancel new group" msgstr "नया समूह रद्द करें" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Cancel reply" msgstr "उत्तर रद्द करें" @@ -946,7 +947,7 @@ msgstr "" msgid "Chat history" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Chat Settings" msgstr "चैट सेटिंग्स" @@ -1088,7 +1089,7 @@ msgstr "बंद करें" msgid "Close chart" msgstr "चार्ट बंद करें" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Close computer" msgstr "कंप्यूटर बंद करें" @@ -1128,7 +1129,7 @@ msgstr "नेविगेशन बंद करें" #: src/components/ArtifactPane.tsx #: src/components/browser/InAppBrowser.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Close panel" msgstr "पैनल बंद करें" @@ -1159,7 +1160,7 @@ msgid "Coder" msgstr "" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Collapse {0}" msgstr "" @@ -1192,24 +1193,24 @@ msgid "Composing a reply…" msgstr "" #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx +#: src/pages/shell/transcript.tsx msgid "Computer" msgstr "कंप्यूटर" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer failed to boot" msgstr "कंप्यूटर शुरू नहीं हो सका" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Computer is asleep" msgstr "कंप्यूटर निष्क्रिय है" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer is asleep. Open it to wake." msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer is stopped" msgstr "कंप्यूटर रुका हुआ है" @@ -1353,7 +1354,7 @@ msgstr "" msgid "Continue with email" msgstr "ईमेल से जारी रखें" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Conversation record" msgstr "" @@ -1361,11 +1362,11 @@ msgstr "" msgid "Conversations" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Copy" msgstr "कॉपी करें" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Copy reply" msgstr "" @@ -1747,9 +1748,9 @@ msgstr "" msgid "Couldn't update messaging settings" msgstr "" -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx #: src/pages/shell/dialogs.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Create" msgstr "बनाएं" @@ -1906,14 +1907,14 @@ msgstr "डिफ़ॉल्ट स्कोप" #: src/pages/KnowledgeSection.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/RoutineEditor.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx #: src/pages/shell/dialogs.tsx msgid "Delete" msgstr "डिलीट करें" #. placeholder {0}: bot.name #. placeholder {0}: group.name -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Delete {0}" msgstr "{0} डिलीट करें" @@ -1943,7 +1944,7 @@ msgstr "" msgid "Delete space" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "deleted" msgstr "डिलीट किया गया" @@ -2013,7 +2014,7 @@ msgstr "डिस्कनेक्ट हो रहा है…" msgid "Dismiss" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Dismiss error" msgstr "" @@ -2111,7 +2112,7 @@ msgstr "डुप्लिकेट" msgid "e.g. Hivenet Agent, Presales, Timesheets bot" msgstr "उदा. Hivenet Agent, Presales, टाइमशीट बॉट" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Earlier message" msgstr "पुराना संदेश" @@ -2222,7 +2223,7 @@ msgid "Expand" msgstr "विस्तृत करें" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Expand {0}" msgstr "" @@ -2404,6 +2405,7 @@ msgstr "" #: src/components/stage/OoStage.tsx #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Group" msgstr "समूह" @@ -2528,7 +2530,7 @@ msgstr "" msgid "How to check" msgstr "जांच कैसे करें" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "I’m done" msgstr "मेरा काम हो गया" @@ -2635,11 +2637,11 @@ msgstr "पृथक" msgid "Its conversation, files, and routines will be permanently deleted. Bots it created stay in your list." msgstr "इसकी बातचीत, फ़ाइलें और रूटीन स्थायी रूप से डिलीट कर दिए जाएंगे। इसके बनाए बॉट आपकी सूची में बने रहेंगे।" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Jump to latest" msgstr "नवीनतम संदेश पर जाएँ" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Jump to replied message" msgstr "जिस संदेश का उत्तर दिया गया उस पर जाएं" @@ -2726,7 +2728,7 @@ msgstr "" msgid "Listening — what's the story?" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Load earlier messages" msgstr "पुराने संदेश लोड करें" @@ -2779,7 +2781,7 @@ msgstr "" #: src/pages/HeuteBrief.tsx #: src/pages/IntegrationSetup.tsx #: src/pages/PeerMessagesOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Loading…" msgstr "लोड हो रहा है…" @@ -2799,7 +2801,7 @@ msgstr "" msgid "Local Server Settings" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Log out" msgstr "लॉग आउट" @@ -2926,7 +2928,7 @@ msgstr "मेमोरी" msgid "Memory scope" msgstr "मेमोरी स्कोप" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Mentions" msgstr "" @@ -2939,11 +2941,12 @@ msgstr "" msgid "Message" msgstr "संदेश" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx +#: src/pages/shell/message-preview.ts msgid "Message" msgstr "संदेश" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Message composer" msgstr "" @@ -2951,11 +2954,11 @@ msgstr "" msgid "Message event" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Message from {peer}" msgstr "{peer} का संदेश" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Message…" msgstr "संदेश…" @@ -2981,7 +2984,7 @@ msgstr "न्यूनतम" msgid "Minimize" msgstr "छोटा करें" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Minimize bots" msgstr "" @@ -3038,7 +3041,7 @@ msgstr "सर्वर से मॉडल" msgid "Monthly" msgstr "मासिक" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "More" msgstr "" @@ -3104,7 +3107,8 @@ msgstr "" #: src/components/MainInbox.tsx #: src/pages/ActivityList.tsx #: src/pages/HeuteBrief.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx +#: src/pages/shell/transcript.tsx msgid "Needs you" msgstr "" @@ -3397,12 +3401,12 @@ msgid "Only file and folder names are read." msgstr "" #: src/pages/ScratchpadSection.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Open" msgstr "खोलें" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Open {0}" msgstr "" @@ -3418,11 +3422,11 @@ msgstr "" msgid "Open in browser" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Open in full window" msgstr "पूरी विंडो में खोलें" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Open navigation" msgstr "नेविगेशन खोलें" @@ -3438,7 +3442,7 @@ msgstr "खुला कार्य" msgid "OpenAI-compatible server URL" msgstr "OpenAI-संगत सर्वर URL" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Opened its thread." msgstr "इसका थ्रेड खोला।" @@ -3679,19 +3683,19 @@ msgstr "" msgid "Quiet hours start" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Quote" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "React" msgstr "प्रतिक्रिया दें" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Reactions" msgstr "प्रतिक्रियाएँ" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Read aloud" msgstr "" @@ -3796,7 +3800,7 @@ msgstr "" msgid "Region" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Release" msgstr "नियंत्रण छोड़ें" @@ -3820,7 +3824,7 @@ msgid "Remove" msgstr "हटाएं" #. placeholder {0}: attachment.file.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove {0}" msgstr "{0} हटाएं" @@ -3829,7 +3833,7 @@ msgid "Remove Git event" msgstr "" #. placeholder {0}: mention.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove mention {0}" msgstr "उल्लेख {0} हटाएं" @@ -3842,7 +3846,7 @@ msgid "Remove schedule" msgstr "" #. placeholder {0}: selectedSkill.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove skill {0}" msgstr "स्किल {0} हटाएं" @@ -3850,7 +3854,7 @@ msgstr "स्किल {0} हटाएं" msgid "Remove webhook" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Removed with chat, computer, and memory." msgstr "चैट, कंप्यूटर और मेमोरी सहित हटाया गया।" @@ -3883,15 +3887,15 @@ msgstr "API कुंजी बदलें" msgid "Replace key" msgstr "कुंजी बदलें" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Reply" msgstr "उत्तर दें" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Replying to {replyName}" msgstr "{replyName} को उत्तर दे रहे हैं" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Replying to {replyName}: “{replyQuote}”" msgstr "" @@ -3937,7 +3941,7 @@ msgstr "रीसेट हो रहा है…" msgid "Restart to update" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Restore" msgstr "बहाल करें" @@ -4142,7 +4146,7 @@ msgid "Searching…" msgstr "खोजा जा रहा है…" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Select {0}" msgstr "" @@ -4150,7 +4154,7 @@ msgstr "" msgid "Self-hosted (better-auth)" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx #: src/pages/shell/message-cards.tsx msgid "Send" msgstr "भेजें" @@ -4201,21 +4205,22 @@ msgid "Server URL" msgstr "सर्वर URL" #: src/components/stage/StageVoiceEntry.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Set up voice" msgstr "" #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx +#: src/pages/shell/user-menu.tsx msgid "Settings" msgstr "सेटिंग्स" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Settings: General" msgstr "सेटिंग्स: सामान्य" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Settings: Usage" msgstr "सेटिंग्स: उपयोग" @@ -4259,10 +4264,11 @@ msgid "Show all {0}" msgstr "" #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Show bots" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Show computer" msgstr "" @@ -4278,7 +4284,7 @@ msgstr "और दिखाएँ" msgid "Show password" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Show settings" msgstr "सेटिंग्स दिखाएं" @@ -4307,7 +4313,7 @@ msgid "Sketching the blueprint…" msgstr "" #. placeholder {0}: skill.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Skill {0}" msgstr "स्किल {0}" @@ -4319,7 +4325,7 @@ msgstr "स्किल्स" #: src/components/onboarding/OnboardingScanStep.tsx #: src/components/onboarding/OnboardingVoiceStep.tsx #: src/lib/onboarding-copy.ts -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Skip" msgstr "छोड़ें" @@ -4373,11 +4379,11 @@ msgstr "स्पेस डिफ़ॉल्ट" msgid "Spaces" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Speak" msgstr "बोलें" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Speak this reply" msgstr "यह उत्तर बोलकर सुनाएं" @@ -4431,15 +4437,15 @@ msgstr "रिकॉर्डिंग शुरू करें" msgid "Start talking" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Start the conversation — {activeName} is on stage above." msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Start the conversation." msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Start voice conversation" msgstr "" @@ -4466,11 +4472,13 @@ msgid "Steps" msgstr "चरण" #: src/components/browser/InAppBrowser.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx +#: src/pages/shell/transcript.tsx msgid "Stop" msgstr "रोकें" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Stop speaking" msgstr "बोलना रोकें" @@ -4500,7 +4508,7 @@ msgstr "" msgid "Stronger together — {0} specialists" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "subagent" msgstr "सबएजेंट" @@ -4565,7 +4573,7 @@ msgstr "सिखाना जारी है। नया संदेश भ msgid "Team" msgstr "टीम" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Team Computer" msgstr "टीम कंप्यूटर" @@ -4606,7 +4614,7 @@ msgstr "चयनित मेमोरी प्रोवाइडर इस msgid "Thinking" msgstr "सोच रहा है" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "This bot runs on this computer, not a Linux desktop. Shell and files use your home folder." msgstr "यह बॉट इसी कंप्यूटर पर चलता है, किसी Linux डेस्कटॉप पर नहीं। शेल और फ़ाइलें आपके होम फ़ोल्डर का उपयोग करती हैं।" @@ -4713,7 +4721,7 @@ msgid "Transcribe" msgstr "" #: src/components/voice/VoiceStage.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Transcript" msgstr "" @@ -4836,7 +4844,7 @@ msgstr "अपलोड" #: src/pages/AccountSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Usage" msgstr "उपयोग" @@ -4877,8 +4885,8 @@ msgid "Video workflow" msgstr "" #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx +#: src/pages/shell/composer.tsx #: src/pages/VoiceSettingsOverlay.tsx msgid "Voice" msgstr "आवाज़" @@ -5074,7 +5082,7 @@ msgstr "काम चल रहा है…" msgid "Working…" msgstr "काम चल रहा है…" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-format.ts msgid "Yesterday" msgstr "कल" @@ -5092,7 +5100,7 @@ msgstr "अगर यह अपने आप रीडायरेक्ट न msgid "You can close this window." msgstr "आप यह विंडो बंद कर सकते हैं।" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "You have control" msgstr "नियंत्रण आपके पास है" diff --git a/apps/web/src/locales/ko/messages.po b/apps/web/src/locales/ko/messages.po index 6c2e14e..fae0c11 100644 --- a/apps/web/src/locales/ko/messages.po +++ b/apps/web/src/locales/ko/messages.po @@ -14,7 +14,7 @@ msgstr "" "Plural-Forms: \n" "X-Generator: @lingui/cli\n" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid " (unread)" msgstr " (읽지 않음)" @@ -126,22 +126,22 @@ msgid "{0}, {label}" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, 1:1 conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, group conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, main conversation" msgstr "" #. placeholder {0}: active.name -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "{0}'s screen" msgstr "{0}의 화면" @@ -210,7 +210,7 @@ msgstr "" msgid "{botName} watches the tape…" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "{botName}’s computer" msgstr "{botName}의 컴퓨터" @@ -277,7 +277,7 @@ msgstr "{title}, {label}" msgid "{toolCount, plural, one {# tool} other {# tools}}" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "{workingBotName} is working" msgstr "{workingBotName} 작업 중" @@ -339,6 +339,7 @@ msgstr "작업 실행 전 확인" #. placeholder {0}: sectionMenu.section.name #: src/pages/BotContextMenu.tsx #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Actions for {0}" msgstr "{0} 작업 메뉴" @@ -354,7 +355,7 @@ msgstr "활성" msgid "Active model" msgstr "현재 모델" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Activity" msgstr "활동" @@ -643,15 +644,15 @@ msgstr "이 서버를 승인하면 Bot이 제공되는 도구를 사용할 수 msgid "Archive" msgstr "보관" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "archived" msgstr "보관됨" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Archived" msgstr "보관됨" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Archived. Chat, memory, and files kept." msgstr "보관되었습니다. 대화, 기억, 파일은 유지됩니다." @@ -711,11 +712,11 @@ msgstr "{0}에" msgid "at {timeSelect}" msgstr "{timeSelect}에" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Attach file" msgstr "파일 첨부" -#: src/pages/Shell.tsx +#: src/pages/shell/message-preview.ts msgid "Attachment" msgstr "첨부 파일" @@ -788,7 +789,7 @@ msgstr "Bearer 토큰" msgid "Blocked in your browser settings" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Booting live desktop…" msgstr "라이브 데스크톱 시작 중…" @@ -797,7 +798,7 @@ msgstr "라이브 데스크톱 시작 중…" msgid "Booting up {0}’s computer" msgstr "{0}의 컴퓨터를 켜는 중" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "bot" msgstr "Bot" @@ -812,11 +813,11 @@ msgstr "Bot" msgid "Bot" msgstr "봇" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Bot screen" msgstr "Bot 화면" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Bot screen preview" msgstr "Bot 화면 미리보기" @@ -828,7 +829,7 @@ msgstr "연결할 Bot" msgid "Bots act without asking by default. Add an exception only when you want to review a type of action first." msgstr "Bot은 기본적으로 묻지 않고 작업합니다. 먼저 확인하고 싶은 작업만 예외로 추가하세요." -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Bots are working" msgstr "봇 작업 중" @@ -889,7 +890,7 @@ msgstr "새 Bot 만들기 취소" msgid "Cancel new group" msgstr "새 그룹 만들기 취소" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Cancel reply" msgstr "답장 취소" @@ -946,7 +947,7 @@ msgstr "채팅 앱, 그룹 채널 및 Agent 연결을 관리합니다." msgid "Chat history" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Chat Settings" msgstr "채팅 설정" @@ -1088,7 +1089,7 @@ msgstr "닫기" msgid "Close chart" msgstr "차트 닫기" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Close computer" msgstr "컴퓨터 닫기" @@ -1128,7 +1129,7 @@ msgstr "메뉴 닫기" #: src/components/ArtifactPane.tsx #: src/components/browser/InAppBrowser.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Close panel" msgstr "패널 닫기" @@ -1159,7 +1160,7 @@ msgid "Coder" msgstr "" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Collapse {0}" msgstr "{0} 접기" @@ -1192,24 +1193,24 @@ msgid "Composing a reply…" msgstr "" #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx +#: src/pages/shell/transcript.tsx msgid "Computer" msgstr "컴퓨터" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer failed to boot" msgstr "컴퓨터를 시작하지 못했습니다" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Computer is asleep" msgstr "컴퓨터가 절전 상태입니다" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer is asleep. Open it to wake." msgstr "컴퓨터가 절전 상태입니다. 열어 깨우세요." -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer is stopped" msgstr "컴퓨터가 중지됨" @@ -1353,7 +1354,7 @@ msgstr "" msgid "Continue with email" msgstr "이메일로 계속하기" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Conversation record" msgstr "" @@ -1361,11 +1362,11 @@ msgstr "" msgid "Conversations" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Copy" msgstr "복사" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Copy reply" msgstr "" @@ -1747,9 +1748,9 @@ msgstr "아바타를 업데이트할 수 없습니다" msgid "Couldn't update messaging settings" msgstr "메시징 설정을 업데이트할 수 없습니다" -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx #: src/pages/shell/dialogs.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Create" msgstr "만들기" @@ -1906,14 +1907,14 @@ msgstr "기본 기억 범위" #: src/pages/KnowledgeSection.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/RoutineEditor.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx #: src/pages/shell/dialogs.tsx msgid "Delete" msgstr "삭제" #. placeholder {0}: bot.name #. placeholder {0}: group.name -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Delete {0}" msgstr "{0} 삭제" @@ -1943,7 +1944,7 @@ msgstr "" msgid "Delete space" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "deleted" msgstr "삭제됨" @@ -2013,7 +2014,7 @@ msgstr "연결 해제 중…" msgid "Dismiss" msgstr "닫기" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Dismiss error" msgstr "오류 닫기" @@ -2111,7 +2112,7 @@ msgstr "복제" msgid "e.g. Hivenet Agent, Presales, Timesheets bot" msgstr "예: Hivenet Agent, Presales, 근무표 봇" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Earlier message" msgstr "이전 메시지" @@ -2222,7 +2223,7 @@ msgid "Expand" msgstr "펼치기" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Expand {0}" msgstr "{0} 펼치기" @@ -2404,6 +2405,7 @@ msgstr "" #: src/components/stage/OoStage.tsx #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Group" msgstr "그룹" @@ -2528,7 +2530,7 @@ msgstr "" msgid "How to check" msgstr "완료 확인 방법" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "I’m done" msgstr "조작 끝내기" @@ -2635,11 +2637,11 @@ msgstr "이 Bot만 사용" msgid "Its conversation, files, and routines will be permanently deleted. Bots it created stay in your list." msgstr "대화, 파일, 자동 실행이 영구 삭제됩니다. 이 Bot이 만든 다른 Bot은 목록에 남습니다." -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Jump to latest" msgstr "최신 메시지로 이동" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Jump to replied message" msgstr "답장한 메시지로 이동" @@ -2726,7 +2728,7 @@ msgstr "" msgid "Listening — what's the story?" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Load earlier messages" msgstr "이전 메시지 불러오기" @@ -2779,7 +2781,7 @@ msgstr "" #: src/pages/HeuteBrief.tsx #: src/pages/IntegrationSetup.tsx #: src/pages/PeerMessagesOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Loading…" msgstr "불러오는 중…" @@ -2799,7 +2801,7 @@ msgstr "" msgid "Local Server Settings" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Log out" msgstr "로그아웃" @@ -2926,7 +2928,7 @@ msgstr "기억" msgid "Memory scope" msgstr "기억 사용 범위" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Mentions" msgstr "멘션" @@ -2939,11 +2941,12 @@ msgstr "" msgid "Message" msgstr "메시지" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx +#: src/pages/shell/message-preview.ts msgid "Message" msgstr "메시지" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Message composer" msgstr "메시지 작성기" @@ -2951,11 +2954,11 @@ msgstr "메시지 작성기" msgid "Message event" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Message from {peer}" msgstr "{peer}의 메시지" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Message…" msgstr "메시지를 입력하세요" @@ -2981,7 +2984,7 @@ msgstr "최소" msgid "Minimize" msgstr "최소화" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Minimize bots" msgstr "" @@ -3038,7 +3041,7 @@ msgstr "서버에서 찾은 모델" msgid "Monthly" msgstr "매월" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "More" msgstr "" @@ -3104,7 +3107,8 @@ msgstr "" #: src/components/MainInbox.tsx #: src/pages/ActivityList.tsx #: src/pages/HeuteBrief.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx +#: src/pages/shell/transcript.tsx msgid "Needs you" msgstr "" @@ -3397,12 +3401,12 @@ msgid "Only file and folder names are read." msgstr "" #: src/pages/ScratchpadSection.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Open" msgstr "열기" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Open {0}" msgstr "{0} 열기" @@ -3418,11 +3422,11 @@ msgstr "" msgid "Open in browser" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Open in full window" msgstr "전체 창으로 열기" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Open navigation" msgstr "메뉴 열기" @@ -3438,7 +3442,7 @@ msgstr "진행 중인 작업" msgid "OpenAI-compatible server URL" msgstr "OpenAI 호환 서버 주소" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Opened its thread." msgstr "대화가 만들어졌습니다." @@ -3679,19 +3683,19 @@ msgstr "" msgid "Quiet hours start" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Quote" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "React" msgstr "반응하기" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Reactions" msgstr "반응" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Read aloud" msgstr "" @@ -3796,7 +3800,7 @@ msgstr "새로고침 중…" msgid "Region" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Release" msgstr "제어권 돌려주기" @@ -3820,7 +3824,7 @@ msgid "Remove" msgstr "삭제" #. placeholder {0}: attachment.file.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove {0}" msgstr "{0} 삭제" @@ -3829,7 +3833,7 @@ msgid "Remove Git event" msgstr "" #. placeholder {0}: mention.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove mention {0}" msgstr "{0} 멘션 삭제" @@ -3842,7 +3846,7 @@ msgid "Remove schedule" msgstr "일정 제거" #. placeholder {0}: selectedSkill.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove skill {0}" msgstr "작업 기술 {0} 삭제" @@ -3850,7 +3854,7 @@ msgstr "작업 기술 {0} 삭제" msgid "Remove webhook" msgstr "웹훅 제거" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Removed with chat, computer, and memory." msgstr "대화, 컴퓨터, 기억과 함께 삭제되었습니다." @@ -3883,15 +3887,15 @@ msgstr "API 키 교체" msgid "Replace key" msgstr "키 교체" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Reply" msgstr "답장" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Replying to {replyName}" msgstr "{replyName}에게 답장" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Replying to {replyName}: “{replyQuote}”" msgstr "" @@ -3937,7 +3941,7 @@ msgstr "재설정 중…" msgid "Restart to update" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Restore" msgstr "복원" @@ -4142,7 +4146,7 @@ msgid "Searching…" msgstr "검색 중…" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Select {0}" msgstr "" @@ -4150,7 +4154,7 @@ msgstr "" msgid "Self-hosted (better-auth)" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx #: src/pages/shell/message-cards.tsx msgid "Send" msgstr "보내기" @@ -4201,21 +4205,22 @@ msgid "Server URL" msgstr "서버 URL" #: src/components/stage/StageVoiceEntry.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Set up voice" msgstr "" #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx +#: src/pages/shell/user-menu.tsx msgid "Settings" msgstr "설정" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Settings: General" msgstr "설정: 일반" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Settings: Usage" msgstr "설정: 사용량" @@ -4259,10 +4264,11 @@ msgid "Show all {0}" msgstr "" #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Show bots" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Show computer" msgstr "" @@ -4278,7 +4284,7 @@ msgstr "더 보기" msgid "Show password" msgstr "비밀번호 표시" -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Show settings" msgstr "설정 보기" @@ -4307,7 +4313,7 @@ msgid "Sketching the blueprint…" msgstr "" #. placeholder {0}: skill.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Skill {0}" msgstr "작업 기술 {0}" @@ -4319,7 +4325,7 @@ msgstr "스킬" #: src/components/onboarding/OnboardingScanStep.tsx #: src/components/onboarding/OnboardingVoiceStep.tsx #: src/lib/onboarding-copy.ts -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Skip" msgstr "건너뛰기" @@ -4373,11 +4379,11 @@ msgstr "스페이스 기본값" msgid "Spaces" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Speak" msgstr "읽기" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Speak this reply" msgstr "이 답변 읽기" @@ -4431,15 +4437,15 @@ msgstr "작업 녹화 시작" msgid "Start talking" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Start the conversation — {activeName} is on stage above." msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Start the conversation." msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Start voice conversation" msgstr "" @@ -4466,11 +4472,13 @@ msgid "Steps" msgstr "실행 단계" #: src/components/browser/InAppBrowser.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx +#: src/pages/shell/transcript.tsx msgid "Stop" msgstr "중지" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Stop speaking" msgstr "읽기 중지" @@ -4500,7 +4508,7 @@ msgstr "" msgid "Stronger together — {0} specialists" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "subagent" msgstr "보조 에이전트" @@ -4565,7 +4573,7 @@ msgstr "작업을 가르치는 중입니다. 새 메시지를 보내려면 먼 msgid "Team" msgstr "팀 공용" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Team Computer" msgstr "팀 컴퓨터" @@ -4606,7 +4614,7 @@ msgstr "선택한 기억 서비스는 현재 빌드에서 사용할 수 없습 msgid "Thinking" msgstr "생각 깊이" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "This bot runs on this computer, not a Linux desktop. Shell and files use your home folder." msgstr "이 Bot은 별도 Linux 화면이 아니라 현재 컴퓨터에서 실행됩니다. 터미널과 파일 작업은 홈 폴더를 사용합니다." @@ -4713,7 +4721,7 @@ msgid "Transcribe" msgstr "" #: src/components/voice/VoiceStage.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Transcript" msgstr "" @@ -4836,7 +4844,7 @@ msgstr "업로드" #: src/pages/AccountSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Usage" msgstr "사용량" @@ -4877,8 +4885,8 @@ msgid "Video workflow" msgstr "" #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx +#: src/pages/shell/composer.tsx #: src/pages/VoiceSettingsOverlay.tsx msgid "Voice" msgstr "음성" @@ -5074,7 +5082,7 @@ msgstr "처리 중…" msgid "Working…" msgstr "처리 중…" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-format.ts msgid "Yesterday" msgstr "어제" @@ -5092,7 +5100,7 @@ msgstr "자동으로 이동하지 않으면 이 탭을 닫아도 됩니다." msgid "You can close this window." msgstr "이 창을 닫아도 됩니다." -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "You have control" msgstr "직접 조작 중" diff --git a/apps/web/src/locales/pt-BR/messages.po b/apps/web/src/locales/pt-BR/messages.po index 1e37b68..999a86b 100644 --- a/apps/web/src/locales/pt-BR/messages.po +++ b/apps/web/src/locales/pt-BR/messages.po @@ -14,7 +14,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: @lingui/cli\n" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid " (unread)" msgstr " (não lido)" @@ -126,22 +126,22 @@ msgid "{0}, {label}" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, 1:1 conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, group conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, main conversation" msgstr "" #. placeholder {0}: active.name -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "{0}'s screen" msgstr "" @@ -210,7 +210,7 @@ msgstr "" msgid "{botName} watches the tape…" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "{botName}’s computer" msgstr "Computador do {botName}" @@ -277,7 +277,7 @@ msgstr "{title}, {label}" msgid "{toolCount, plural, one {# tool} other {# tools}}" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "{workingBotName} is working" msgstr "{workingBotName} está trabalhando" @@ -339,6 +339,7 @@ msgstr "Confirmações de ação" #. placeholder {0}: sectionMenu.section.name #: src/pages/BotContextMenu.tsx #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Actions for {0}" msgstr "Ações para {0}" @@ -354,7 +355,7 @@ msgstr "" msgid "Active model" msgstr "Modelo ativo" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Activity" msgstr "Atividade" @@ -643,15 +644,15 @@ msgstr "Aprove este servidor para permitir que seu agente use suas ferramentas." msgid "Archive" msgstr "Arquivar" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "archived" msgstr "arquivado" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Archived" msgstr "Arquivado" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Archived. Chat, memory, and files kept." msgstr "Arquivado. Chat, memória e arquivos mantidos." @@ -711,11 +712,11 @@ msgstr "em {0}" msgid "at {timeSelect}" msgstr "em {timeSelect}" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Attach file" msgstr "Escolher arquivo" -#: src/pages/Shell.tsx +#: src/pages/shell/message-preview.ts msgid "Attachment" msgstr "Anexo" @@ -788,7 +789,7 @@ msgstr "Token portador" msgid "Blocked in your browser settings" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Booting live desktop…" msgstr "Iniciando a área de trabalho ao vivo..." @@ -797,7 +798,7 @@ msgstr "Iniciando a área de trabalho ao vivo..." msgid "Booting up {0}’s computer" msgstr "Inicializando o computador do {0}" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "bot" msgstr "bot" @@ -812,11 +813,11 @@ msgstr "Bot" msgid "Bot" msgstr "Bot" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Bot screen" msgstr "Tela do bot" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Bot screen preview" msgstr "Pré-visualização da tela" @@ -828,7 +829,7 @@ msgstr "" msgid "Bots act without asking by default. Add an exception only when you want to review a type of action first." msgstr "Os bots agem sem perguntar por padrão. Adicione uma exceção apenas quando quiser analisar um tipo de ação primeiro." -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Bots are working" msgstr "Bots estão trabalhando" @@ -889,7 +890,7 @@ msgstr "Cancelar novo bot" msgid "Cancel new group" msgstr "Cancelar novo grupo" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Cancel reply" msgstr "cancelar resposta" @@ -946,7 +947,7 @@ msgstr "" msgid "Chat history" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Chat Settings" msgstr "Configurações do chat" @@ -1088,7 +1089,7 @@ msgstr "Fechar" msgid "Close chart" msgstr "Fechar gráfico" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Close computer" msgstr "Fechar computador" @@ -1128,7 +1129,7 @@ msgstr "Fechar navegação" #: src/components/ArtifactPane.tsx #: src/components/browser/InAppBrowser.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Close panel" msgstr "Fechar painel" @@ -1159,7 +1160,7 @@ msgid "Coder" msgstr "" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Collapse {0}" msgstr "" @@ -1192,24 +1193,24 @@ msgid "Composing a reply…" msgstr "" #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx +#: src/pages/shell/transcript.tsx msgid "Computer" msgstr "Computador" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer failed to boot" msgstr "Falha ao inicializar o computador" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Computer is asleep" msgstr "O computador está dormindo" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer is asleep. Open it to wake." msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer is stopped" msgstr "O computador está parado" @@ -1353,7 +1354,7 @@ msgstr "" msgid "Continue with email" msgstr "Continuar com e-mail" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Conversation record" msgstr "" @@ -1361,11 +1362,11 @@ msgstr "" msgid "Conversations" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Copy" msgstr "Copiar" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Copy reply" msgstr "" @@ -1747,9 +1748,9 @@ msgstr "" msgid "Couldn't update messaging settings" msgstr "" -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx #: src/pages/shell/dialogs.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Create" msgstr "Criar" @@ -1906,14 +1907,14 @@ msgstr "Escopo padrão" #: src/pages/KnowledgeSection.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/RoutineEditor.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx #: src/pages/shell/dialogs.tsx msgid "Delete" msgstr "Excluir" #. placeholder {0}: bot.name #. placeholder {0}: group.name -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Delete {0}" msgstr "Excluir {0}" @@ -1943,7 +1944,7 @@ msgstr "" msgid "Delete space" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "deleted" msgstr "excluído" @@ -2013,7 +2014,7 @@ msgstr "Desconectando…" msgid "Dismiss" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Dismiss error" msgstr "" @@ -2111,7 +2112,7 @@ msgstr "Duplicar" msgid "e.g. Hivenet Agent, Presales, Timesheets bot" msgstr "ex.: Hivenet Agent, Presales, bot de planilhas" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Earlier message" msgstr "" @@ -2222,7 +2223,7 @@ msgid "Expand" msgstr "Expandir" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Expand {0}" msgstr "" @@ -2404,6 +2405,7 @@ msgstr "" #: src/components/stage/OoStage.tsx #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Group" msgstr "Grupo" @@ -2528,7 +2530,7 @@ msgstr "" msgid "How to check" msgstr "Como verificar" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "I’m done" msgstr "Eu terminei." @@ -2635,11 +2637,11 @@ msgstr "Isolado" msgid "Its conversation, files, and routines will be permanently deleted. Bots it created stay in your list." msgstr "Suas conversas, arquivos e rotinas serão excluídos permanentemente. Os bots criados ficam na sua lista." -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Jump to latest" msgstr "Ir para a mensagem mais recente" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Jump to replied message" msgstr "Ir para a mensagem respondida" @@ -2726,7 +2728,7 @@ msgstr "" msgid "Listening — what's the story?" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Load earlier messages" msgstr "Carregar mensagens anteriores..." @@ -2779,7 +2781,7 @@ msgstr "" #: src/pages/HeuteBrief.tsx #: src/pages/IntegrationSetup.tsx #: src/pages/PeerMessagesOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Loading…" msgstr "Carregando..." @@ -2799,7 +2801,7 @@ msgstr "" msgid "Local Server Settings" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Log out" msgstr "Sair" @@ -2926,7 +2928,7 @@ msgstr "Memória" msgid "Memory scope" msgstr "Escopo de memória" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Mentions" msgstr "" @@ -2939,11 +2941,12 @@ msgstr "" msgid "Message" msgstr "Mensagem" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx +#: src/pages/shell/message-preview.ts msgid "Message" msgstr "Mensagem" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Message composer" msgstr "" @@ -2951,11 +2954,11 @@ msgstr "" msgid "Message event" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Message from {peer}" msgstr "Mensagem de {peer}" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Message…" msgstr "Mensagem…" @@ -2981,7 +2984,7 @@ msgstr "Mínimo" msgid "Minimize" msgstr "Minimizar" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Minimize bots" msgstr "" @@ -3038,7 +3041,7 @@ msgstr "Modelos do servidor" msgid "Monthly" msgstr "Mensalmente" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "More" msgstr "" @@ -3104,7 +3107,8 @@ msgstr "" #: src/components/MainInbox.tsx #: src/pages/ActivityList.tsx #: src/pages/HeuteBrief.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx +#: src/pages/shell/transcript.tsx msgid "Needs you" msgstr "" @@ -3397,12 +3401,12 @@ msgid "Only file and folder names are read." msgstr "" #: src/pages/ScratchpadSection.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Open" msgstr "Abrir" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Open {0}" msgstr "" @@ -3418,11 +3422,11 @@ msgstr "" msgid "Open in browser" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Open in full window" msgstr "Abrir em janela cheia" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Open navigation" msgstr "Abrir a navegação" @@ -3438,7 +3442,7 @@ msgstr "Trabalho aberto" msgid "OpenAI-compatible server URL" msgstr "URL do servidor compatível com OpenAI" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Opened its thread." msgstr "Abriu a conversa." @@ -3679,19 +3683,19 @@ msgstr "" msgid "Quiet hours start" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Quote" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "React" msgstr "Reagir" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Reactions" msgstr "Reações" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Read aloud" msgstr "" @@ -3796,7 +3800,7 @@ msgstr "" msgid "Region" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Release" msgstr "Libere" @@ -3820,7 +3824,7 @@ msgid "Remove" msgstr "Remover" #. placeholder {0}: attachment.file.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove {0}" msgstr "Remover {0}" @@ -3829,7 +3833,7 @@ msgid "Remove Git event" msgstr "" #. placeholder {0}: mention.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove mention {0}" msgstr "Remover menção {0}" @@ -3842,7 +3846,7 @@ msgid "Remove schedule" msgstr "" #. placeholder {0}: selectedSkill.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove skill {0}" msgstr "Remover habilidade {0}" @@ -3850,7 +3854,7 @@ msgstr "Remover habilidade {0}" msgid "Remove webhook" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Removed with chat, computer, and memory." msgstr "Removido com chat, computador e memória." @@ -3883,15 +3887,15 @@ msgstr "Substituir chave de API" msgid "Replace key" msgstr "Substituir chave" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Reply" msgstr "Responder" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Replying to {replyName}" msgstr "Respondendo a {replyName}" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Replying to {replyName}: “{replyQuote}”" msgstr "" @@ -3937,7 +3941,7 @@ msgstr "Redefinindo…" msgid "Restart to update" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Restore" msgstr "Restaurar" @@ -4142,7 +4146,7 @@ msgid "Searching…" msgstr "Pesquisando…" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Select {0}" msgstr "" @@ -4150,7 +4154,7 @@ msgstr "" msgid "Self-hosted (better-auth)" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx #: src/pages/shell/message-cards.tsx msgid "Send" msgstr "Enviar" @@ -4201,21 +4205,22 @@ msgid "Server URL" msgstr "URL do servidor" #: src/components/stage/StageVoiceEntry.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Set up voice" msgstr "" #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx +#: src/pages/shell/user-menu.tsx msgid "Settings" msgstr "Configurações" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Settings: General" msgstr "Opções > Geral" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Settings: Usage" msgstr "Configurações: Uso" @@ -4259,10 +4264,11 @@ msgid "Show all {0}" msgstr "" #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Show bots" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Show computer" msgstr "" @@ -4278,7 +4284,7 @@ msgstr "Mostrar mais" msgid "Show password" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Show settings" msgstr "Mostrar configurações" @@ -4307,7 +4313,7 @@ msgid "Sketching the blueprint…" msgstr "" #. placeholder {0}: skill.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Skill {0}" msgstr "Habilidade {0}" @@ -4319,7 +4325,7 @@ msgstr "Habilidades" #: src/components/onboarding/OnboardingScanStep.tsx #: src/components/onboarding/OnboardingVoiceStep.tsx #: src/lib/onboarding-copy.ts -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Skip" msgstr "Pular" @@ -4373,11 +4379,11 @@ msgstr "Padrão do espaço" msgid "Spaces" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Speak" msgstr "Falar" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Speak this reply" msgstr "Fale esta resposta" @@ -4431,15 +4437,15 @@ msgstr "Começar a gravar" msgid "Start talking" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Start the conversation — {activeName} is on stage above." msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Start the conversation." msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Start voice conversation" msgstr "" @@ -4466,11 +4472,13 @@ msgid "Steps" msgstr "Passos" #: src/components/browser/InAppBrowser.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx +#: src/pages/shell/transcript.tsx msgid "Stop" msgstr "Parar" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Stop speaking" msgstr "Pare de Falar" @@ -4500,7 +4508,7 @@ msgstr "" msgid "Stronger together — {0} specialists" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "subagent" msgstr "subagente" @@ -4565,7 +4573,7 @@ msgstr "Ensino em andamento. Pare de ensinar antes de enviar uma nova mensagem." msgid "Team" msgstr "Equipe" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Team Computer" msgstr "Computador da equipe" @@ -4606,7 +4614,7 @@ msgstr "O provedor de memória selecionado não está disponível nesta compila msgid "Thinking" msgstr "Pensando" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "This bot runs on this computer, not a Linux desktop. Shell and files use your home folder." msgstr "Este bot é executado neste computador, não em um desktop Linux. Shell e arquivos usam sua pasta inicial." @@ -4713,7 +4721,7 @@ msgid "Transcribe" msgstr "" #: src/components/voice/VoiceStage.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Transcript" msgstr "" @@ -4836,7 +4844,7 @@ msgstr "Enviar" #: src/pages/AccountSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Usage" msgstr "Uso" @@ -4877,8 +4885,8 @@ msgid "Video workflow" msgstr "" #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx +#: src/pages/shell/composer.tsx #: src/pages/VoiceSettingsOverlay.tsx msgid "Voice" msgstr "Voz" @@ -5074,7 +5082,7 @@ msgstr "Funcionando" msgid "Working…" msgstr "Funcionando" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-format.ts msgid "Yesterday" msgstr "Ontem" @@ -5092,7 +5100,7 @@ msgstr "Você pode fechar esta guia se ela não for redirecionada automaticament msgid "You can close this window." msgstr "Você pode fechar esta janela." -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "You have control" msgstr "Você tem o controle" diff --git a/apps/web/src/locales/ru/messages.po b/apps/web/src/locales/ru/messages.po index ebc3f3c..4fd95f9 100644 --- a/apps/web/src/locales/ru/messages.po +++ b/apps/web/src/locales/ru/messages.po @@ -14,7 +14,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: @lingui/cli\n" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid " (unread)" msgstr " (непрочитано)" @@ -126,22 +126,22 @@ msgid "{0}, {label}" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, 1:1 conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, group conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, main conversation" msgstr "" #. placeholder {0}: active.name -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "{0}'s screen" msgstr "Экран {0}" @@ -210,7 +210,7 @@ msgstr "" msgid "{botName} watches the tape…" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "{botName}’s computer" msgstr "Компьютер {botName}" @@ -277,7 +277,7 @@ msgstr "{title}, {label}" msgid "{toolCount, plural, one {# tool} other {# tools}}" msgstr "{toolCount, plural, one {# инструмент} few {# инструмента} many {# инструментов} other {# инструмента}}" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "{workingBotName} is working" msgstr "{workingBotName} работает" @@ -339,6 +339,7 @@ msgstr "Подтверждения действий" #. placeholder {0}: sectionMenu.section.name #: src/pages/BotContextMenu.tsx #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Actions for {0}" msgstr "Действия для {0}" @@ -354,7 +355,7 @@ msgstr "Активный" msgid "Active model" msgstr "Активная модель" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Activity" msgstr "Активность" @@ -643,15 +644,15 @@ msgstr "Одобрите этот сервер, чтобы ваш агент м msgid "Archive" msgstr "Архивировать" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "archived" msgstr "в архиве" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Archived" msgstr "В архиве" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Archived. Chat, memory, and files kept." msgstr "В архиве. Чат, память и файлы сохраняются." @@ -711,11 +712,11 @@ msgstr "в {0}" msgid "at {timeSelect}" msgstr "в {timeSelect}" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Attach file" msgstr "Прикрепить файл" -#: src/pages/Shell.tsx +#: src/pages/shell/message-preview.ts msgid "Attachment" msgstr "Вложение" @@ -788,7 +789,7 @@ msgstr "Bearer-токен" msgid "Blocked in your browser settings" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Booting live desktop…" msgstr "Загрузка рабочего стола…" @@ -797,7 +798,7 @@ msgstr "Загрузка рабочего стола…" msgid "Booting up {0}’s computer" msgstr "Загрузка компьютера {0}" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "bot" msgstr "бот" @@ -812,11 +813,11 @@ msgstr "Бот" msgid "Bot" msgstr "Бот" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Bot screen" msgstr "Экран бота" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Bot screen preview" msgstr "Предварительный просмотр экрана бота" @@ -828,7 +829,7 @@ msgstr "Бот для ссылки" msgid "Bots act without asking by default. Add an exception only when you want to review a type of action first." msgstr "По умолчанию боты действуют, не спрашивая. Добавляйте исключение только в том случае, если вы хотите сначала просмотреть тип действия." -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Bots are working" msgstr "Боты работают" @@ -889,7 +890,7 @@ msgstr "Отменить создание бота" msgid "Cancel new group" msgstr "Отменить создание группы" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Cancel reply" msgstr "Отменить ответ" @@ -946,7 +947,7 @@ msgstr "Приложения чата, групповые каналы и под msgid "Chat history" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Chat Settings" msgstr "Настройки чата" @@ -1088,7 +1089,7 @@ msgstr "Закрыть" msgid "Close chart" msgstr "Закрыть график" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Close computer" msgstr "Закрыть компьютер" @@ -1128,7 +1129,7 @@ msgstr "Закрыть навигацию" #: src/components/ArtifactPane.tsx #: src/components/browser/InAppBrowser.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Close panel" msgstr "Закрыть панель" @@ -1159,7 +1160,7 @@ msgid "Coder" msgstr "" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Collapse {0}" msgstr "Свернуть {0}" @@ -1192,24 +1193,24 @@ msgid "Composing a reply…" msgstr "" #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx +#: src/pages/shell/transcript.tsx msgid "Computer" msgstr "Компьютер" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer failed to boot" msgstr "Компьютер не смог загрузиться" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Computer is asleep" msgstr "Компьютер спит" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer is asleep. Open it to wake." msgstr "Компьютер спит. Откройте его, чтобы разбудить." -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer is stopped" msgstr "Компьютер остановлен" @@ -1353,7 +1354,7 @@ msgstr "Продолжить в фоне" msgid "Continue with email" msgstr "Продолжить по электронной почте" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Conversation record" msgstr "" @@ -1361,11 +1362,11 @@ msgstr "" msgid "Conversations" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Copy" msgstr "Копировать" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Copy reply" msgstr "" @@ -1747,9 +1748,9 @@ msgstr "Не удалось обновить аватары" msgid "Couldn't update messaging settings" msgstr "Не удалось обновить настройки обмена сообщениями." -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx #: src/pages/shell/dialogs.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Create" msgstr "Создать" @@ -1906,14 +1907,14 @@ msgstr "Область действия по умолчанию" #: src/pages/KnowledgeSection.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/RoutineEditor.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx #: src/pages/shell/dialogs.tsx msgid "Delete" msgstr "Удалить" #. placeholder {0}: bot.name #. placeholder {0}: group.name -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Delete {0}" msgstr "Удалить {0}" @@ -1943,7 +1944,7 @@ msgstr "" msgid "Delete space" msgstr "Удалить пространство" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "deleted" msgstr "удалено" @@ -2013,7 +2014,7 @@ msgstr "Отключение…" msgid "Dismiss" msgstr "Закрыть" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Dismiss error" msgstr "Закрыть ошибку" @@ -2111,7 +2112,7 @@ msgstr "Дублировать" msgid "e.g. Hivenet Agent, Presales, Timesheets bot" msgstr "напр. Hivenet Agent, Presales, бот табелей" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Earlier message" msgstr "Предыдущее сообщение" @@ -2222,7 +2223,7 @@ msgid "Expand" msgstr "Развернуть" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Expand {0}" msgstr "Развернуть {0}" @@ -2404,6 +2405,7 @@ msgstr "" #: src/components/stage/OoStage.tsx #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Group" msgstr "Группа" @@ -2528,7 +2530,7 @@ msgstr "" msgid "How to check" msgstr "Как проверить" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "I’m done" msgstr "Готово" @@ -2635,11 +2637,11 @@ msgstr "изолированный" msgid "Its conversation, files, and routines will be permanently deleted. Bots it created stay in your list." msgstr "Его диалог, файлы и задачи будут безвозвратно удалены. Созданные им боты останутся в вашем списке." -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Jump to latest" msgstr "Перейти к последнему" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Jump to replied message" msgstr "Перейти к ответному сообщению" @@ -2726,7 +2728,7 @@ msgstr "" msgid "Listening — what's the story?" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Load earlier messages" msgstr "Загрузить более ранние сообщения" @@ -2779,7 +2781,7 @@ msgstr "" #: src/pages/HeuteBrief.tsx #: src/pages/IntegrationSetup.tsx #: src/pages/PeerMessagesOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Loading…" msgstr "Загрузка…" @@ -2799,7 +2801,7 @@ msgstr "" msgid "Local Server Settings" msgstr "Настройки локального сервера" -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Log out" msgstr "Выйти" @@ -2926,7 +2928,7 @@ msgstr "Память" msgid "Memory scope" msgstr "Область памяти" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Mentions" msgstr "Упоминания" @@ -2939,11 +2941,12 @@ msgstr "Только упоминания" msgid "Message" msgstr "Сообщение" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx +#: src/pages/shell/message-preview.ts msgid "Message" msgstr "Сообщение" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Message composer" msgstr "Поле сообщения" @@ -2951,11 +2954,11 @@ msgstr "Поле сообщения" msgid "Message event" msgstr "Событие сообщения" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Message from {peer}" msgstr "Сообщение от {peer}" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Message…" msgstr "Сообщение…" @@ -2981,7 +2984,7 @@ msgstr "Минимальный" msgid "Minimize" msgstr "Свернуть" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Minimize bots" msgstr "Свернуть ботов" @@ -3038,7 +3041,7 @@ msgstr "Модели с сервера" msgid "Monthly" msgstr "Ежемесячно" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "More" msgstr "Ещё" @@ -3104,7 +3107,8 @@ msgstr "Требуется ваше участие" #: src/components/MainInbox.tsx #: src/pages/ActivityList.tsx #: src/pages/HeuteBrief.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx +#: src/pages/shell/transcript.tsx msgid "Needs you" msgstr "Требуется ваше участие" @@ -3397,12 +3401,12 @@ msgid "Only file and folder names are read." msgstr "" #: src/pages/ScratchpadSection.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Open" msgstr "Открыть" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Open {0}" msgstr "Открыть {0}" @@ -3418,11 +3422,11 @@ msgstr "" msgid "Open in browser" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Open in full window" msgstr "Открыть в полном окне" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Open navigation" msgstr "Открыть навигацию" @@ -3438,7 +3442,7 @@ msgstr "Открытые задачи" msgid "OpenAI-compatible server URL" msgstr "URL-адрес сервера, совместимого с OpenAI" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Opened its thread." msgstr "Диалог открыт." @@ -3679,19 +3683,19 @@ msgstr "" msgid "Quiet hours start" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Quote" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "React" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Reactions" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Read aloud" msgstr "" @@ -3796,7 +3800,7 @@ msgstr "Обновление…" msgid "Region" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Release" msgstr "Освободить управление" @@ -3820,7 +3824,7 @@ msgid "Remove" msgstr "Удалить" #. placeholder {0}: attachment.file.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove {0}" msgstr "Удалить {0}" @@ -3829,7 +3833,7 @@ msgid "Remove Git event" msgstr "Удалить событие Git" #. placeholder {0}: mention.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove mention {0}" msgstr "Удалить упоминание {0}" @@ -3842,7 +3846,7 @@ msgid "Remove schedule" msgstr "Удалить расписание" #. placeholder {0}: selectedSkill.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove skill {0}" msgstr "Удалить навык {0}" @@ -3850,7 +3854,7 @@ msgstr "Удалить навык {0}" msgid "Remove webhook" msgstr "Удалить вебхук" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Removed with chat, computer, and memory." msgstr "Удалено вместе с чатом, компьютером и памятью." @@ -3883,15 +3887,15 @@ msgstr "Заменить ключ API" msgid "Replace key" msgstr "Заменить ключ" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Reply" msgstr "Ответить" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Replying to {replyName}" msgstr "Ответ на {replyName}" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Replying to {replyName}: “{replyQuote}”" msgstr "" @@ -3937,7 +3941,7 @@ msgstr "Сброс…" msgid "Restart to update" msgstr "Перезапустить для обновления" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Restore" msgstr "Восстановить" @@ -4142,7 +4146,7 @@ msgid "Searching…" msgstr "Поиск…" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Select {0}" msgstr "" @@ -4150,7 +4154,7 @@ msgstr "" msgid "Self-hosted (better-auth)" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx #: src/pages/shell/message-cards.tsx msgid "Send" msgstr "Отправить" @@ -4201,21 +4205,22 @@ msgid "Server URL" msgstr "URL-адрес сервера" #: src/components/stage/StageVoiceEntry.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Set up voice" msgstr "" #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx +#: src/pages/shell/user-menu.tsx msgid "Settings" msgstr "Настройки" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Settings: General" msgstr "Настройки: Общие" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Settings: Usage" msgstr "Настройки: Использование" @@ -4259,10 +4264,11 @@ msgid "Show all {0}" msgstr "" #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Show bots" msgstr "Показать ботов" -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Show computer" msgstr "" @@ -4278,7 +4284,7 @@ msgstr "Показать ещё" msgid "Show password" msgstr "Показать пароль" -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Show settings" msgstr "Показать настройки" @@ -4307,7 +4313,7 @@ msgid "Sketching the blueprint…" msgstr "" #. placeholder {0}: skill.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Skill {0}" msgstr "Навык {0}" @@ -4319,7 +4325,7 @@ msgstr "Навыки" #: src/components/onboarding/OnboardingScanStep.tsx #: src/components/onboarding/OnboardingVoiceStep.tsx #: src/lib/onboarding-copy.ts -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Skip" msgstr "Пропустить" @@ -4373,11 +4379,11 @@ msgstr "Пространство по умолчанию" msgid "Spaces" msgstr "Пространства" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Speak" msgstr "Озвучить" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Speak this reply" msgstr "Озвучить этот ответ" @@ -4431,15 +4437,15 @@ msgstr "Начать запись" msgid "Start talking" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Start the conversation — {activeName} is on stage above." msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Start the conversation." msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Start voice conversation" msgstr "" @@ -4466,11 +4472,13 @@ msgid "Steps" msgstr "Шаги" #: src/components/browser/InAppBrowser.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx +#: src/pages/shell/transcript.tsx msgid "Stop" msgstr "Остановить" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Stop speaking" msgstr "Остановить озвучивание" @@ -4500,7 +4508,7 @@ msgstr "" msgid "Stronger together — {0} specialists" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "subagent" msgstr "субагент" @@ -4565,7 +4573,7 @@ msgstr "Обучение в процессе. Прекратите обучен msgid "Team" msgstr "Команда" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Team Computer" msgstr "Командный компьютер" @@ -4606,7 +4614,7 @@ msgstr "Выбранный поставщик памяти недоступен msgid "Thinking" msgstr "рассуждение" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "This bot runs on this computer, not a Linux desktop. Shell and files use your home folder." msgstr "Этот бот работает на этом компьютере, а не на рабочем столе Linux. Оболочка и файлы используют вашу домашнюю папку." @@ -4713,7 +4721,7 @@ msgid "Transcribe" msgstr "" #: src/components/voice/VoiceStage.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Transcript" msgstr "" @@ -4836,7 +4844,7 @@ msgstr "Загрузить" #: src/pages/AccountSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Usage" msgstr "Использование" @@ -4877,8 +4885,8 @@ msgid "Video workflow" msgstr "" #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx +#: src/pages/shell/composer.tsx #: src/pages/VoiceSettingsOverlay.tsx msgid "Voice" msgstr "Голос" @@ -5074,7 +5082,7 @@ msgstr "Выполняется…" msgid "Working…" msgstr "Выполняется…" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-format.ts msgid "Yesterday" msgstr "Вчера" @@ -5092,7 +5100,7 @@ msgstr "Вы можете закрыть эту вкладку, если она msgid "You can close this window." msgstr "Вы можете закрыть это окно." -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "You have control" msgstr "Вы управляете" diff --git a/apps/web/src/locales/tr/messages.po b/apps/web/src/locales/tr/messages.po index 7dc8438..316c1ce 100644 --- a/apps/web/src/locales/tr/messages.po +++ b/apps/web/src/locales/tr/messages.po @@ -14,7 +14,7 @@ msgstr "" "Plural-Forms: \n" "X-Generator: @lingui/cli\n" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid " (unread)" msgstr " (okunmadı)" @@ -126,22 +126,22 @@ msgid "{0}, {label}" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, 1:1 conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, group conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, main conversation" msgstr "" #. placeholder {0}: active.name -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "{0}'s screen" msgstr "" @@ -210,7 +210,7 @@ msgstr "" msgid "{botName} watches the tape…" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "{botName}’s computer" msgstr "{botName} adlı botun bilgisayarı" @@ -277,7 +277,7 @@ msgstr "{title}, {label}" msgid "{toolCount, plural, one {# tool} other {# tools}}" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "{workingBotName} is working" msgstr "{workingBotName} çalışıyor" @@ -339,6 +339,7 @@ msgstr "İşlem onayları" #. placeholder {0}: sectionMenu.section.name #: src/pages/BotContextMenu.tsx #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Actions for {0}" msgstr "{0} için işlemler" @@ -354,7 +355,7 @@ msgstr "" msgid "Active model" msgstr "Etkin model" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Activity" msgstr "Etkinlik" @@ -643,15 +644,15 @@ msgstr "Agent'ının bu sunucunun araçlarını kullanabilmesi için sunucuyu on msgid "Archive" msgstr "Arşivle" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "archived" msgstr "arşivlendi" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Archived" msgstr "Arşivlendi" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Archived. Chat, memory, and files kept." msgstr "Arşivlendi. Sohbet, hafıza ve dosyalar korundu." @@ -711,11 +712,11 @@ msgstr "saat {0}" msgid "at {timeSelect}" msgstr "saat {timeSelect}" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Attach file" msgstr "Dosya ekle" -#: src/pages/Shell.tsx +#: src/pages/shell/message-preview.ts msgid "Attachment" msgstr "Ek" @@ -788,7 +789,7 @@ msgstr "Bearer token" msgid "Blocked in your browser settings" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Booting live desktop…" msgstr "Canlı masaüstü başlatılıyor…" @@ -797,7 +798,7 @@ msgstr "Canlı masaüstü başlatılıyor…" msgid "Booting up {0}’s computer" msgstr "{0} adlı botun bilgisayarı başlatılıyor" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "bot" msgstr "bot" @@ -812,11 +813,11 @@ msgstr "Bot" msgid "Bot" msgstr "Bot" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Bot screen" msgstr "Bot ekranı" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Bot screen preview" msgstr "Bot ekranı önizlemesi" @@ -828,7 +829,7 @@ msgstr "" msgid "Bots act without asking by default. Add an exception only when you want to review a type of action first." msgstr "Botlar varsayılan olarak sormadan hareket eder. Yalnızca belirli bir işlem türünü önce incelemek istediğinde istisna ekle." -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Bots are working" msgstr "Botlar çalışıyor" @@ -889,7 +890,7 @@ msgstr "Yeni botu iptal et" msgid "Cancel new group" msgstr "Yeni grubu iptal et" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Cancel reply" msgstr "Yanıtı iptal et" @@ -946,7 +947,7 @@ msgstr "" msgid "Chat history" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Chat Settings" msgstr "Sohbet Ayarları" @@ -1088,7 +1089,7 @@ msgstr "Kapat" msgid "Close chart" msgstr "Grafiği kapat" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Close computer" msgstr "Bilgisayarı kapat" @@ -1128,7 +1129,7 @@ msgstr "Gezinmeyi kapat" #: src/components/ArtifactPane.tsx #: src/components/browser/InAppBrowser.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Close panel" msgstr "Paneli kapat" @@ -1159,7 +1160,7 @@ msgid "Coder" msgstr "" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Collapse {0}" msgstr "" @@ -1192,24 +1193,24 @@ msgid "Composing a reply…" msgstr "" #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx +#: src/pages/shell/transcript.tsx msgid "Computer" msgstr "Bilgisayar" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer failed to boot" msgstr "Bilgisayar başlatılamadı" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Computer is asleep" msgstr "Bilgisayar uykuda" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer is asleep. Open it to wake." msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer is stopped" msgstr "Bilgisayar durduruldu" @@ -1353,7 +1354,7 @@ msgstr "" msgid "Continue with email" msgstr "E-posta ile devam et" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Conversation record" msgstr "" @@ -1361,11 +1362,11 @@ msgstr "" msgid "Conversations" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Copy" msgstr "Kopyala" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Copy reply" msgstr "" @@ -1747,9 +1748,9 @@ msgstr "" msgid "Couldn't update messaging settings" msgstr "" -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx #: src/pages/shell/dialogs.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Create" msgstr "Oluştur" @@ -1906,14 +1907,14 @@ msgstr "Varsayılan kapsam" #: src/pages/KnowledgeSection.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/RoutineEditor.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx #: src/pages/shell/dialogs.tsx msgid "Delete" msgstr "Sil" #. placeholder {0}: bot.name #. placeholder {0}: group.name -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Delete {0}" msgstr "{0} sil" @@ -1943,7 +1944,7 @@ msgstr "" msgid "Delete space" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "deleted" msgstr "silindi" @@ -2013,7 +2014,7 @@ msgstr "Bağlantı kesiliyor…" msgid "Dismiss" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Dismiss error" msgstr "" @@ -2111,7 +2112,7 @@ msgstr "Çoğalt" msgid "e.g. Hivenet Agent, Presales, Timesheets bot" msgstr "örn. Hivenet Agent, Presales, puantaj botu" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Earlier message" msgstr "" @@ -2222,7 +2223,7 @@ msgid "Expand" msgstr "Genişlet" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Expand {0}" msgstr "" @@ -2404,6 +2405,7 @@ msgstr "" #: src/components/stage/OoStage.tsx #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Group" msgstr "Grup" @@ -2528,7 +2530,7 @@ msgstr "" msgid "How to check" msgstr "Nasıl kontrol edilir" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "I’m done" msgstr "Bitirdim" @@ -2635,11 +2637,11 @@ msgstr "Yalıtılmış" msgid "Its conversation, files, and routines will be permanently deleted. Bots it created stay in your list." msgstr "Sohbeti, dosyaları ve rutinleri kalıcı olarak silinecek. Oluşturduğu botlar listende kalır." -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Jump to latest" msgstr "En son mesaja git" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Jump to replied message" msgstr "Yanıtlanan mesaja git" @@ -2726,7 +2728,7 @@ msgstr "" msgid "Listening — what's the story?" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Load earlier messages" msgstr "Önceki mesajları yükle" @@ -2779,7 +2781,7 @@ msgstr "" #: src/pages/HeuteBrief.tsx #: src/pages/IntegrationSetup.tsx #: src/pages/PeerMessagesOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Loading…" msgstr "Yükleniyor…" @@ -2799,7 +2801,7 @@ msgstr "" msgid "Local Server Settings" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Log out" msgstr "Çıkış yap" @@ -2926,7 +2928,7 @@ msgstr "Hafıza" msgid "Memory scope" msgstr "Hafıza kapsamı" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Mentions" msgstr "" @@ -2939,11 +2941,12 @@ msgstr "" msgid "Message" msgstr "Mesaj" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx +#: src/pages/shell/message-preview.ts msgid "Message" msgstr "Mesaj" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Message composer" msgstr "" @@ -2951,11 +2954,11 @@ msgstr "" msgid "Message event" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Message from {peer}" msgstr "{peer} botundan mesaj" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Message…" msgstr "Mesaj…" @@ -2981,7 +2984,7 @@ msgstr "Minimal" msgid "Minimize" msgstr "Küçült" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Minimize bots" msgstr "" @@ -3038,7 +3041,7 @@ msgstr "Sunucudan gelen modeller" msgid "Monthly" msgstr "Aylık" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "More" msgstr "" @@ -3104,7 +3107,8 @@ msgstr "" #: src/components/MainInbox.tsx #: src/pages/ActivityList.tsx #: src/pages/HeuteBrief.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx +#: src/pages/shell/transcript.tsx msgid "Needs you" msgstr "" @@ -3397,12 +3401,12 @@ msgid "Only file and folder names are read." msgstr "" #: src/pages/ScratchpadSection.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Open" msgstr "Aç" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Open {0}" msgstr "" @@ -3418,11 +3422,11 @@ msgstr "" msgid "Open in browser" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Open in full window" msgstr "Tam pencerede aç" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Open navigation" msgstr "Gezinmeyi aç" @@ -3438,7 +3442,7 @@ msgstr "Açık işler" msgid "OpenAI-compatible server URL" msgstr "OpenAI uyumlu sunucu URL'si" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Opened its thread." msgstr "Sohbeti açıldı." @@ -3679,19 +3683,19 @@ msgstr "" msgid "Quiet hours start" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Quote" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "React" msgstr "Tepki ver" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Reactions" msgstr "Tepkiler" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Read aloud" msgstr "" @@ -3796,7 +3800,7 @@ msgstr "" msgid "Region" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Release" msgstr "Bırak" @@ -3820,7 +3824,7 @@ msgid "Remove" msgstr "Kaldır" #. placeholder {0}: attachment.file.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove {0}" msgstr "{0} kaldır" @@ -3829,7 +3833,7 @@ msgid "Remove Git event" msgstr "" #. placeholder {0}: mention.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove mention {0}" msgstr "{0} bahsini kaldır" @@ -3842,7 +3846,7 @@ msgid "Remove schedule" msgstr "" #. placeholder {0}: selectedSkill.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove skill {0}" msgstr "{0} becerisini kaldır" @@ -3850,7 +3854,7 @@ msgstr "{0} becerisini kaldır" msgid "Remove webhook" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Removed with chat, computer, and memory." msgstr "Sohbeti, bilgisayarı ve hafızasıyla birlikte kaldırıldı." @@ -3883,15 +3887,15 @@ msgstr "API anahtarını değiştir" msgid "Replace key" msgstr "Anahtarı değiştir" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Reply" msgstr "Yanıtla" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Replying to {replyName}" msgstr "{replyName} yanıtlanıyor" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Replying to {replyName}: “{replyQuote}”" msgstr "" @@ -3937,7 +3941,7 @@ msgstr "" msgid "Restart to update" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Restore" msgstr "Geri yükle" @@ -4142,7 +4146,7 @@ msgid "Searching…" msgstr "Aranıyor…" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Select {0}" msgstr "" @@ -4150,7 +4154,7 @@ msgstr "" msgid "Self-hosted (better-auth)" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx #: src/pages/shell/message-cards.tsx msgid "Send" msgstr "Gönder" @@ -4201,21 +4205,22 @@ msgid "Server URL" msgstr "Sunucu URL'si" #: src/components/stage/StageVoiceEntry.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Set up voice" msgstr "" #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx +#: src/pages/shell/user-menu.tsx msgid "Settings" msgstr "Ayarlar" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Settings: General" msgstr "Ayarlar: Genel" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Settings: Usage" msgstr "Ayarlar: Kullanım" @@ -4259,10 +4264,11 @@ msgid "Show all {0}" msgstr "" #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Show bots" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Show computer" msgstr "" @@ -4278,7 +4284,7 @@ msgstr "Daha fazla göster" msgid "Show password" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Show settings" msgstr "Ayarları göster" @@ -4307,7 +4313,7 @@ msgid "Sketching the blueprint…" msgstr "" #. placeholder {0}: skill.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Skill {0}" msgstr "Beceri: {0}" @@ -4319,7 +4325,7 @@ msgstr "Beceriler" #: src/components/onboarding/OnboardingScanStep.tsx #: src/components/onboarding/OnboardingVoiceStep.tsx #: src/lib/onboarding-copy.ts -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Skip" msgstr "Atla" @@ -4373,11 +4379,11 @@ msgstr "Alan varsayılanı" msgid "Spaces" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Speak" msgstr "Seslendir" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Speak this reply" msgstr "Bu yanıtı seslendir" @@ -4431,15 +4437,15 @@ msgstr "Kaydı başlat" msgid "Start talking" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Start the conversation — {activeName} is on stage above." msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Start the conversation." msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Start voice conversation" msgstr "" @@ -4466,11 +4472,13 @@ msgid "Steps" msgstr "Adımlar" #: src/components/browser/InAppBrowser.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx +#: src/pages/shell/transcript.tsx msgid "Stop" msgstr "Durdur" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Stop speaking" msgstr "Seslendirmeyi durdur" @@ -4500,7 +4508,7 @@ msgstr "" msgid "Stronger together — {0} specialists" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "subagent" msgstr "alt ajan" @@ -4565,7 +4573,7 @@ msgstr "Öğretme sürüyor. Yeni mesaj göndermeden önce öğretmeyi durdur." msgid "Team" msgstr "Takım" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Team Computer" msgstr "Takım Bilgisayarı" @@ -4606,7 +4614,7 @@ msgstr "Seçilen hafıza sağlayıcısı bu sürümde kullanılamıyor." msgid "Thinking" msgstr "Düşünüyor" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "This bot runs on this computer, not a Linux desktop. Shell and files use your home folder." msgstr "Bu bot bir Linux masaüstünde değil, bu bilgisayarda çalışır. Kabuk ve dosyalar senin kullanıcı klasörünü kullanır." @@ -4713,7 +4721,7 @@ msgid "Transcribe" msgstr "" #: src/components/voice/VoiceStage.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Transcript" msgstr "" @@ -4836,7 +4844,7 @@ msgstr "Yükle" #: src/pages/AccountSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Usage" msgstr "Kullanım" @@ -4877,8 +4885,8 @@ msgid "Video workflow" msgstr "" #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx +#: src/pages/shell/composer.tsx #: src/pages/VoiceSettingsOverlay.tsx msgid "Voice" msgstr "Ses" @@ -5074,7 +5082,7 @@ msgstr "Çalışıyor…" msgid "Working…" msgstr "Çalışıyor…" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-format.ts msgid "Yesterday" msgstr "Dün" @@ -5092,7 +5100,7 @@ msgstr "Otomatik yönlendirilmezsen bu sekmeyi kapatabilirsin." msgid "You can close this window." msgstr "Bu pencereyi kapatabilirsin." -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "You have control" msgstr "Kontrol sende" diff --git a/apps/web/src/locales/zh-CN/messages.po b/apps/web/src/locales/zh-CN/messages.po index bb72f74..62d2810 100644 --- a/apps/web/src/locales/zh-CN/messages.po +++ b/apps/web/src/locales/zh-CN/messages.po @@ -14,7 +14,7 @@ msgstr "" "Plural-Forms: \n" "X-Generator: @lingui/cli\n" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid " (unread)" msgstr "(未读)" @@ -126,22 +126,22 @@ msgid "{0}, {label}" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, 1:1 conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, group conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, main conversation" msgstr "" #. placeholder {0}: active.name -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "{0}'s screen" msgstr "" @@ -210,7 +210,7 @@ msgstr "" msgid "{botName} watches the tape…" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "{botName}’s computer" msgstr "{botName} 的电脑" @@ -277,7 +277,7 @@ msgstr "{title},{label}" msgid "{toolCount, plural, one {# tool} other {# tools}}" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "{workingBotName} is working" msgstr "{workingBotName} 正在工作" @@ -339,6 +339,7 @@ msgstr "操作确认" #. placeholder {0}: sectionMenu.section.name #: src/pages/BotContextMenu.tsx #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Actions for {0}" msgstr "{0} 的操作" @@ -354,7 +355,7 @@ msgstr "启用" msgid "Active model" msgstr "当前模型" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Activity" msgstr "动态" @@ -643,15 +644,15 @@ msgstr "批准此服务器后,Agent 才能使用它的工具。" msgid "Archive" msgstr "归档" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "archived" msgstr "已归档" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Archived" msgstr "已归档" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Archived. Chat, memory, and files kept." msgstr "已归档。对话、记忆和文件保留。" @@ -711,11 +712,11 @@ msgstr "{0}" msgid "at {timeSelect}" msgstr "{timeSelect}" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Attach file" msgstr "附加文件" -#: src/pages/Shell.tsx +#: src/pages/shell/message-preview.ts msgid "Attachment" msgstr "附件" @@ -788,7 +789,7 @@ msgstr "Bearer token" msgid "Blocked in your browser settings" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Booting live desktop…" msgstr "正在启动实时桌面…" @@ -797,7 +798,7 @@ msgstr "正在启动实时桌面…" msgid "Booting up {0}’s computer" msgstr "正在启动 {0} 的电脑" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "bot" msgstr "Bot" @@ -812,11 +813,11 @@ msgstr "Bot" msgid "Bot" msgstr "Bot" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Bot screen" msgstr "Bot 屏幕" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Bot screen preview" msgstr "Bot 屏幕预览" @@ -828,7 +829,7 @@ msgstr "要关联的 Bot" msgid "Bots act without asking by default. Add an exception only when you want to review a type of action first." msgstr "默认情况下 Bot 会直接执行。只有当你想先审核某类操作时,才添加例外。" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Bots are working" msgstr "Bot 正在工作" @@ -889,7 +890,7 @@ msgstr "取消新建 Bot" msgid "Cancel new group" msgstr "取消新建群组" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Cancel reply" msgstr "取消回复" @@ -946,7 +947,7 @@ msgstr "聊天应用、群组频道和 Agent 连接。" msgid "Chat history" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Chat Settings" msgstr "聊天设置" @@ -1088,7 +1089,7 @@ msgstr "关闭" msgid "Close chart" msgstr "关闭图表" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Close computer" msgstr "关闭电脑" @@ -1128,7 +1129,7 @@ msgstr "关闭导航" #: src/components/ArtifactPane.tsx #: src/components/browser/InAppBrowser.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Close panel" msgstr "关闭面板" @@ -1159,7 +1160,7 @@ msgid "Coder" msgstr "" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Collapse {0}" msgstr "折叠 {0}" @@ -1192,24 +1193,24 @@ msgid "Composing a reply…" msgstr "" #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx +#: src/pages/shell/transcript.tsx msgid "Computer" msgstr "电脑" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer failed to boot" msgstr "电脑启动失败" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "Computer is asleep" msgstr "电脑已休眠" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer is asleep. Open it to wake." msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Computer is stopped" msgstr "电脑已停止" @@ -1353,7 +1354,7 @@ msgstr "" msgid "Continue with email" msgstr "使用邮箱继续" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Conversation record" msgstr "" @@ -1361,11 +1362,11 @@ msgstr "" msgid "Conversations" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Copy" msgstr "复制" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Copy reply" msgstr "" @@ -1747,9 +1748,9 @@ msgstr "无法更新头像" msgid "Couldn't update messaging settings" msgstr "无法更新消息设置" -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx #: src/pages/shell/dialogs.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Create" msgstr "创建" @@ -1906,14 +1907,14 @@ msgstr "默认范围" #: src/pages/KnowledgeSection.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/RoutineEditor.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx #: src/pages/shell/dialogs.tsx msgid "Delete" msgstr "删除" #. placeholder {0}: bot.name #. placeholder {0}: group.name -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Delete {0}" msgstr "删除 {0}" @@ -1943,7 +1944,7 @@ msgstr "" msgid "Delete space" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "deleted" msgstr "已删除" @@ -2013,7 +2014,7 @@ msgstr "正在断开…" msgid "Dismiss" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Dismiss error" msgstr "关闭错误" @@ -2111,7 +2112,7 @@ msgstr "复制" msgid "e.g. Hivenet Agent, Presales, Timesheets bot" msgstr "例如 Hivenet Agent、Presales、工时表机器人" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Earlier message" msgstr "更早的消息" @@ -2222,7 +2223,7 @@ msgid "Expand" msgstr "展开" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Expand {0}" msgstr "展开 {0}" @@ -2404,6 +2405,7 @@ msgstr "" #: src/components/stage/OoStage.tsx #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Group" msgstr "群组" @@ -2528,7 +2530,7 @@ msgstr "" msgid "How to check" msgstr "如何检查" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "I’m done" msgstr "我做完了" @@ -2635,11 +2637,11 @@ msgstr "隔离" msgid "Its conversation, files, and routines will be permanently deleted. Bots it created stay in your list." msgstr "它的对话、文件和例行任务将被永久删除。它创建的 Bot 仍留在列表中。" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Jump to latest" msgstr "跳到最新" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Jump to replied message" msgstr "跳到被回复的消息" @@ -2726,7 +2728,7 @@ msgstr "" msgid "Listening — what's the story?" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Load earlier messages" msgstr "加载更早的消息" @@ -2779,7 +2781,7 @@ msgstr "" #: src/pages/HeuteBrief.tsx #: src/pages/IntegrationSetup.tsx #: src/pages/PeerMessagesOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Loading…" msgstr "加载中…" @@ -2799,7 +2801,7 @@ msgstr "" msgid "Local Server Settings" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Log out" msgstr "退出登录" @@ -2926,7 +2928,7 @@ msgstr "记忆" msgid "Memory scope" msgstr "记忆范围" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Mentions" msgstr "提及" @@ -2939,11 +2941,12 @@ msgstr "" msgid "Message" msgstr "消息" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx +#: src/pages/shell/message-preview.ts msgid "Message" msgstr "消息" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Message composer" msgstr "消息输入框" @@ -2951,11 +2954,11 @@ msgstr "消息输入框" msgid "Message event" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Message from {peer}" msgstr "来自 {peer} 的消息" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Message…" msgstr "消息…" @@ -2981,7 +2984,7 @@ msgstr "最低" msgid "Minimize" msgstr "最小化" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Minimize bots" msgstr "" @@ -3038,7 +3041,7 @@ msgstr "来自服务器的模型" msgid "Monthly" msgstr "每月" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "More" msgstr "" @@ -3104,7 +3107,8 @@ msgstr "" #: src/components/MainInbox.tsx #: src/pages/ActivityList.tsx #: src/pages/HeuteBrief.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx +#: src/pages/shell/transcript.tsx msgid "Needs you" msgstr "" @@ -3397,12 +3401,12 @@ msgid "Only file and folder names are read." msgstr "" #: src/pages/ScratchpadSection.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Open" msgstr "打开" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Open {0}" msgstr "打开 {0}" @@ -3418,11 +3422,11 @@ msgstr "" msgid "Open in browser" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-panel-preview.tsx msgid "Open in full window" msgstr "在完整窗口中打开" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Open navigation" msgstr "打开导航" @@ -3438,7 +3442,7 @@ msgstr "待办" msgid "OpenAI-compatible server URL" msgstr "OpenAI 兼容服务器 URL" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Opened its thread." msgstr "已打开其对话。" @@ -3679,19 +3683,19 @@ msgstr "" msgid "Quiet hours start" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Quote" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "React" msgstr "回应" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Reactions" msgstr "表情回应" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Read aloud" msgstr "" @@ -3796,7 +3800,7 @@ msgstr "" msgid "Region" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Release" msgstr "释放" @@ -3820,7 +3824,7 @@ msgid "Remove" msgstr "移除" #. placeholder {0}: attachment.file.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove {0}" msgstr "移除 {0}" @@ -3829,7 +3833,7 @@ msgid "Remove Git event" msgstr "" #. placeholder {0}: mention.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove mention {0}" msgstr "移除提及 {0}" @@ -3842,7 +3846,7 @@ msgid "Remove schedule" msgstr "移除计划" #. placeholder {0}: selectedSkill.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Remove skill {0}" msgstr "移除技能 {0}" @@ -3850,7 +3854,7 @@ msgstr "移除技能 {0}" msgid "Remove webhook" msgstr "移除 Webhook" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Removed with chat, computer, and memory." msgstr "已连同对话、电脑和记忆一起移除。" @@ -3883,15 +3887,15 @@ msgstr "替换 API 密钥" msgid "Replace key" msgstr "替换密钥" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Reply" msgstr "回复" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Replying to {replyName}" msgstr "正在回复 {replyName}" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Replying to {replyName}: “{replyQuote}”" msgstr "" @@ -3937,7 +3941,7 @@ msgstr "正在重置…" msgid "Restart to update" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Restore" msgstr "恢复" @@ -4142,7 +4146,7 @@ msgid "Searching…" msgstr "正在搜索…" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Select {0}" msgstr "" @@ -4150,7 +4154,7 @@ msgstr "" msgid "Self-hosted (better-auth)" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx #: src/pages/shell/message-cards.tsx msgid "Send" msgstr "发送" @@ -4201,21 +4205,22 @@ msgid "Server URL" msgstr "服务器 URL" #: src/components/stage/StageVoiceEntry.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Set up voice" msgstr "" #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx +#: src/pages/shell/user-menu.tsx msgid "Settings" msgstr "设置" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Settings: General" msgstr "设置:通用" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Settings: Usage" msgstr "设置:用量" @@ -4259,10 +4264,11 @@ msgid "Show all {0}" msgstr "" #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Show bots" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Show computer" msgstr "" @@ -4278,7 +4284,7 @@ msgstr "显示更多" msgid "Show password" msgstr "显示密码" -#: src/pages/Shell.tsx +#: src/pages/shell/side-panel-header.tsx msgid "Show settings" msgstr "显示设置" @@ -4307,7 +4313,7 @@ msgid "Sketching the blueprint…" msgstr "" #. placeholder {0}: skill.name -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Skill {0}" msgstr "技能 {0}" @@ -4319,7 +4325,7 @@ msgstr "技能" #: src/components/onboarding/OnboardingScanStep.tsx #: src/components/onboarding/OnboardingVoiceStep.tsx #: src/lib/onboarding-copy.ts -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Skip" msgstr "跳过" @@ -4373,11 +4379,11 @@ msgstr "工作区默认" msgid "Spaces" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Speak" msgstr "朗读" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Speak this reply" msgstr "朗读这条回复" @@ -4431,15 +4437,15 @@ msgstr "开始录制" msgid "Start talking" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Start the conversation — {activeName} is on stage above." msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Start the conversation." msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx msgid "Start voice conversation" msgstr "" @@ -4466,11 +4472,13 @@ msgid "Steps" msgstr "步骤" #: src/components/browser/InAppBrowser.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/composer.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx +#: src/pages/shell/transcript.tsx msgid "Stop" msgstr "停止" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Stop speaking" msgstr "停止朗读" @@ -4500,7 +4508,7 @@ msgstr "" msgid "Stronger together — {0} specialists" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "subagent" msgstr "子 Agent" @@ -4565,7 +4573,7 @@ msgstr "正在示范,发送新消息前请先停止示范。" msgid "Team" msgstr "团队" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "Team Computer" msgstr "团队电脑" @@ -4606,7 +4614,7 @@ msgstr "所选记忆提供方在此构建中不可用。" msgid "Thinking" msgstr "思考" -#: src/pages/Shell.tsx +#: src/pages/shell/computer-screen.tsx msgid "This bot runs on this computer, not a Linux desktop. Shell and files use your home folder." msgstr "此 Bot 运行在这台电脑上,而不是 Linux 桌面。Shell 和文件使用你的主目录。" @@ -4713,7 +4721,7 @@ msgid "Transcribe" msgstr "" #: src/components/voice/VoiceStage.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/transcript.tsx msgid "Transcript" msgstr "" @@ -4836,7 +4844,7 @@ msgstr "上传" #: src/pages/AccountSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Usage" msgstr "用量" @@ -4877,8 +4885,8 @@ msgid "Video workflow" msgstr "" #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx +#: src/pages/shell/composer.tsx #: src/pages/VoiceSettingsOverlay.tsx msgid "Voice" msgstr "语音" @@ -5074,7 +5082,7 @@ msgstr "处理中…" msgid "Working…" msgstr "处理中…" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-format.ts msgid "Yesterday" msgstr "昨天" @@ -5092,7 +5100,7 @@ msgstr "如果没有自动跳转,可以关闭此标签页。" msgid "You can close this window." msgstr "可以关闭此窗口。" -#: src/pages/Shell.tsx +#: src/pages/shell/fullscreen-computer-overlay.tsx msgid "You have control" msgstr "你已接管" diff --git a/apps/web/src/pages/Shell.tsx b/apps/web/src/pages/Shell.tsx index 5afd237..7ebf9cf 100644 --- a/apps/web/src/pages/Shell.tsx +++ b/apps/web/src/pages/Shell.tsx @@ -1,38 +1,22 @@ -import { - closestCenter, - DndContext, - DragOverlay, - MouseSensor, - TouchSensor, - useSensor, - useSensors, -} from "@dnd-kit/core"; +import { closestCenter, DndContext, DragOverlay } from "@dnd-kit/core"; import { SortableContext, sortableKeyboardCoordinates, verticalListSortingStrategy, } from "@dnd-kit/sortable"; import { CSS as DndCSS } from "@dnd-kit/utilities"; -import { i18n } from "@lingui/core"; -import { t } from "@lingui/core/macro"; import { Trans, useLingui } from "@lingui/react/macro"; -import { ChatMarkdown } from "@rakazo/chat-ui/web"; import type { - AgentSkillCatalogEntry, Bot, BotSection, ComputerMode, ComputerReleaseReason, ComputerStatus, - Connection, - ConnectionCatalogItem, Group, ImportBotInput, MainConversationRef, Me, - ProductEvent, Routine, - SearchHit, Space, SpaceMemoryConfig, TaughtSkill, @@ -41,46 +25,31 @@ import type { VoiceStatus, } from "@rakazo/contracts"; import { - ATTACHMENT_ALLOWED_MIME_TYPES, ATTACHMENT_MAX_COUNT, - canReactToThreadMessage, - MESSAGE_REACTIONS, type MessageReaction, normalizeCreateBotProfile, } from "@rakazo/contracts"; import { applyWorkspaceFocus, attachmentsForThread, - buildComposerMentionOptions, type ComposerMention, - clampMentionHighlightIndex, cronFromPreset, deriveWorkspaceFocus, - groupBotsForSidebar, inferAttachmentMimeType, isActive, - isPeerReceiptBlocks, isRunTerminalEvent, - isToolActivityBlock, latestAnswerableAskMessageId, liveScreenRunId, matchVoiceByName, - mentionChipKey, type PaneState, parseVoiceChatCommand, - projectMessageReactions, recordScreenPaneChoice, reorderBotTo, resolveComposerSendPlan, - resolveMentionPickerKey, runThreadSubscription, - SLASH_ACTIONS, - type SlashActionId, screenPaneMode, searchHitThreadTarget, - serializeComposerPrompt, speechFromBlocks, - truncateSlashDescription, userVisibleMessages, type WorkspaceArtifact, type WorkspaceFocus, @@ -89,12 +58,7 @@ import { AvatarStyleProvider, BotAvatar, Button, - cn, - DropdownMenu, - DropdownMenuContent, DropdownMenuItem, - DropdownMenuTrigger, - EvooMascot, GroupAvatar, type GroupAvatarMember, InputGroup, @@ -103,58 +67,25 @@ import { Popover, PopoverContent, PopoverTrigger, - resolvePersonaColorDef, - Wordmark, } from "@rakazo/ui-web"; import { - ArrowDown, ArrowLeft, - ArrowUp, - Bell, - Box, Calendar, - ChevronDown, - Clock, - Copy, - Folder, - Gauge, Globe, - GripVertical, LayoutGrid, - Lock, - LogOut, - Maximize2, - Menu, - Mic, - MoreHorizontal, - PanelLeftClose, - PanelLeftOpen, PanelRight, - Paperclip, Pencil, Plus, - Puzzle, RefreshCw, - Reply, Search, Settings, - Smile, - Square, - TextQuote, Trash2, - Volume2, X, } from "lucide-react"; import { - type ClipboardEvent, - type DragEvent, - type MutableRefObject, - memo, - type RefObject, Suspense, useCallback, useEffect, - useId, useLayoutEffect, useMemo, useRef, @@ -162,52 +93,22 @@ import { } from "react"; import { createPortal } from "react-dom"; import { useNavigate, useParams, useSearchParams } from "react-router-dom"; -import { ArtifactFileCard } from "../components/ArtifactFileCard"; import { ArtifactPane } from "../components/ArtifactPane"; -import { AskCard } from "../components/AskCard"; -import { ActiveBotGlyph, CollaborationMarker } from "../components/ai/CollaborationMarker"; -import { DelegatedTaskCard, SentMessageCard } from "../components/ai/DelegatedTaskCard"; -import { ProjectCreatedCard } from "../components/ai/ProjectCreatedCard"; import { InAppBrowser } from "../components/browser/InAppBrowser"; -import { CloudAgentCard } from "../components/CloudAgentCard"; -import { ComputerMaintenanceActions } from "../components/ComputerMaintenanceActions"; -import { - ComputersUnavailableHint, - computersAreUnavailable, -} from "../components/ComputersUnavailableHint"; import { ComputerUpdateProgress } from "../components/ComputerUpdateProgress"; -import { AgentCursor } from "../components/computer/AgentCursor"; import { MainInbox } from "../components/MainInbox"; -import { MessageHoverMetadata } from "../components/MessageHoverMetadata"; -import { MediaCard } from "../components/media/MediaCard"; -import { MediaPlayer } from "../components/media/MediaPlayer"; import { OoGroupStage, OoStage } from "../components/stage/OoStage"; -import { SkillDraftCard } from "../components/teach/SkillDraftCard"; -import { TeachCaptureOverlay } from "../components/teach/TeachCaptureOverlay"; -import { TeachComputerOverlayControl } from "../components/teach/TeachComputerOverlay"; -import { TeachRecordingChrome, TeachStopButton } from "../components/teach/TeachRecordingChrome"; -import { VoiceAuroraRim } from "../components/voice/VoiceAurora"; import { useSidebarResize } from "../hooks/useSidebarResize"; import { useWideLayout } from "../hooks/useWideLayout"; import { readActivityMode, writeActivityMode } from "../lib/activity-mode"; -import { needsYouChipLabel, rosterActivitySubtitle, rosterStatusDot } from "../lib/agent-activity"; +import { rosterActivitySubtitle } from "../lib/agent-activity"; import { agentPointerFeed } from "../lib/agent-pointer"; import type { ArtifactTarget } from "../lib/artifact-open"; import { attachmentMaxBytes, uploadAttachment } from "../lib/artifact-upload"; import { authClient } from "../lib/auth"; import { takeInitialBootstrap } from "../lib/bootstrap"; -import { - BOTS_SIDEBAR_EDGE_DRAG_PX, - readBotsSidebarCollapsed, - writeBotsSidebarCollapsed, -} from "../lib/bots-sidebar-pref"; -import { - deliverBrowserNotification as deliverNativeBrowserNotification, - requestBrowserNotificationPermission, - shouldNotifyBrowser, -} from "../lib/browser-notifications"; +import { requestBrowserNotificationPermission } from "../lib/browser-notifications"; import { loadComputerScreen } from "../lib/computer-screen"; -import { desktopBridge } from "../lib/desktop"; import { scheduleFocusPrompt } from "../lib/focus-prompt"; import { formatBytes } from "../lib/format-bytes"; import { @@ -215,25 +116,14 @@ import { resolveActiveGroupSpeaker, resolveWorkingGroupBots, } from "../lib/group-stage"; -import { buildHeuteBrief } from "../lib/heute-brief"; import { lazyWithRecovery } from "../lib/lazy-recovery"; import { localTimezone } from "../lib/local-timezone"; -import { copyableMessageText } from "../lib/message-text"; -import { messageProviderLabel } from "../lib/messaging"; -import { localizedPreview, withIntakeNoteText } from "../lib/onboarding-copy"; -import { wireOoAudioVoiceDucking } from "../lib/oo-audio-voice-wire"; +import { localizedPreview } from "../lib/onboarding-copy"; import { ooSound } from "../lib/oo-sound"; import { ooVocals } from "../lib/oo-vocals"; -import { ooVoiceMark } from "../lib/oo-voice-mark"; -import { - isFileDrag, - isFilePaste, - revokePendingAttachmentPreviews, -} from "../lib/pending-attachments"; +import { revokePendingAttachmentPreviews } from "../lib/pending-attachments"; import { markAfterPaint, markOnce } from "../lib/performance"; import { isEmptyProjectSpace } from "../lib/project-empty-state"; -import { readProjectSidebarOrder, writeProjectSidebarOrder } from "../lib/project-sidebar-order"; -import { quoteDraftForSelection } from "../lib/quote-selection"; import { routineSaveName } from "../lib/routine-name"; import { clearSpaceSelection, rpc, selectedSpaceId, selectSpace } from "../lib/rpc"; import { readSeenRunErrorIds, rememberSeenRunErrorId } from "../lib/run-error-storage"; @@ -244,22 +134,14 @@ import { clearActiveThreadRuns, computerPanelAutoBoot, computerPanelAutoUsesBoot, - computerPanelNeedsMaintenance, computerTakeoverBlocked, isComputerStatusEvent, - isThreadSnapshotEvent, prependThreadMessagePage, reconcileRefreshedThread, - reduceComputerStatus, - reduceThreadSnapshot, threadRunError, userHoldsComputerControl, } from "../lib/thread-events"; -import { - transcriptCanSnapAfterFrame, - transcriptIsNearEnd, - transcriptMovedDown, -} from "../lib/transcript-scroll"; +import { transcriptCanSnapAfterFrame, transcriptIsNearEnd } from "../lib/transcript-scroll"; import { speaker } from "../lib/tts"; import { disableWebPush } from "../lib/web-push"; import { readScreenPaneHabit, writeScreenPaneHabit } from "../lib/workspace-pane-pref"; @@ -280,9 +162,17 @@ import { } from "./RoutineEditor"; import type { SettingsSection } from "./SettingsOverlay"; import { SpaceSearchResults } from "./SpaceSearch"; +import { ArchivedSection } from "./shell/archived-section"; import { BotSettings, CreateBotForm } from "./shell/bot-panel"; -import { BotCreatePicker, ConversationBotPicker } from "./shell/bot-picker"; +import { ConversationBotPicker } from "./shell/bot-picker"; +import { + collapsedSidebarSectionsStorageKey, + readCollapsedSidebarSections, +} from "./shell/collapsed-sidebar-sections"; import { CommandPalette, isCommandPaletteHotkey } from "./shell/command-palette"; +import { Composer } from "./shell/composer"; +import { ComputerPanelPreview } from "./shell/computer-panel-preview"; +import { embeddableScreenUrl } from "./shell/computer-screen"; import { ClearConversationDialog, DeleteBotDialog, @@ -292,22 +182,37 @@ import { PickerInfoDialog, RenameBotSectionDialog, } from "./shell/dialogs"; +import { FullscreenComputerOverlay } from "./shell/fullscreen-computer-overlay"; import { MainConversationRow } from "./shell/main-conversation-row"; +import { PointerMenu } from "./shell/pointer-menu"; +import { cleanRosterPreview, formatRosterTime } from "./shell/roster-format"; +import { rosterRowClass } from "./shell/roster-row-style"; +import { ProjectRosterRow, TeamRosterRow } from "./shell/roster-rows"; +import type { PendingAttachment } from "./shell/shell-types"; +import { FALLBACK_BOT_COLOR } from "./shell/shell-types"; +import { SidePanelHeader } from "./shell/side-panel-header"; +import { SidebarGroupHeader } from "./shell/sidebar-group-header"; +import { SidebarHeader } from "./shell/sidebar-header"; +import { SidebarToggleButtons } from "./shell/sidebar-toggle-buttons"; import { - AppConnectCard, - ArtifactImage, - ChartBlockView, - ChoiceCard, - McpApprovalCard, -} from "./shell/message-cards"; -import { - rosterNameClass, - rosterPreviewClass, - rosterRowClass, - rosterTimeClass, - rosterUnreadDotClass, -} from "./shell/roster-row-style"; -import { WindowChrome } from "./WindowChrome"; + applyThreadEvent, + firstThreadRoute, + newClientNonce, + threadSnapshotSignal, +} from "./shell/thread-state"; +import { Transcript } from "./shell/transcript"; +import { useAgentSkills } from "./shell/use-agent-skills"; +import { useBotsSidebarCollapse } from "./shell/use-bots-sidebar-collapse"; +import { useBrowserNotifications } from "./shell/use-browser-notifications"; +import { useComputerViewport } from "./shell/use-computer-viewport"; +import { useHeuteActionCount } from "./shell/use-heute-action-count"; +import { useMentionTargets } from "./shell/use-mention-targets"; +import { useMessagingStatus } from "./shell/use-messaging-status"; +import { useMobileSidebar } from "./shell/use-mobile-sidebar"; +import { useShellSounds } from "./shell/use-shell-sounds"; +import { useSidebarModel } from "./shell/use-sidebar-model"; +import { useSpaceSearch } from "./shell/use-space-search"; +import { UserMenu } from "./shell/user-menu"; const BotContextMenu = lazyWithRecovery("BotContextMenu", () => import("./BotContextMenu").then((module) => ({ default: module.BotContextMenu })), @@ -344,28 +249,8 @@ type Panel = | "artifact" | null; -type PendingAttachment = { - id: string; - threadKey: string; - file: File; - previewUrl?: string; -}; - -type PendingBrowserNotification = { - event: Pick; - botId: string; - botName: string; - groupNotification: boolean; -}; - -const ATTACHMENT_ACCEPT = ATTACHMENT_ALLOWED_MIME_TYPES.join(","); -/** Identity colour for bots the roster no longer knows about. */ -const FALLBACK_BOT_COLOR = "#85858A"; -const THREAD_SNAPSHOT_TIMEOUT_MS = 2_000; /** Bound Settings leave so a hung voice status refresh cannot block dismissal. */ const VOICE_STATUS_REFRESH_TIMEOUT_MS = 10_000; -const MOBILE_SIDEBAR_SWIPE_EDGE_PX = 32; -const MOBILE_SIDEBAR_SWIPE_DISTANCE_PX = 56; /** The screen lingers after the work so its final state and the bot's reply land first. */ const AUTO_SCREEN_CLOSE_DELAY_MS = 4_000; /** How long one pointer announcement counts as the bot working on its screen. */ @@ -375,10 +260,6 @@ function defaultWorkspacePaneWidth(): number { return Math.round(Math.max(420, Math.min(760, window.innerWidth * 0.42))); } -function threadSnapshotSignal(parent: AbortSignal): AbortSignal { - return AbortSignal.any([parent, AbortSignal.timeout(THREAD_SNAPSHOT_TIMEOUT_MS)]); -} - function voiceStatusRefreshTimeout(): Promise { return new Promise((_, reject) => { AbortSignal.timeout(VOICE_STATUS_REFRESH_TIMEOUT_MS).addEventListener("abort", () => { @@ -387,36 +268,9 @@ function voiceStatusRefreshTimeout(): Promise { }); } -function collapsedSidebarSectionsStorageKey(userId: string | null | undefined): string | null { - if (!userId) return null; - return `rakazo:collapsed-sidebar-sections:${userId}`; -} - -function readCollapsedSidebarSections(userId: string | null | undefined): Set { - const storageKey = collapsedSidebarSectionsStorageKey(userId); - if (!storageKey) return new Set(); - try { - const value = window.localStorage.getItem(storageKey); - const keys: unknown = value ? JSON.parse(value) : []; - return new Set( - Array.isArray(keys) ? keys.filter((key): key is string => typeof key === "string") : [], - ); - } catch { - return new Set(); - } -} - export type NavPillar = "heute" | "team" | "projekte"; -function stripSpaceTitlePrefix(title: string | null, spaceName: string): string | null { - if (!title) return null; - const prefix = `${spaceName} · `; - if (title.startsWith(prefix)) return title.slice(prefix.length); - if (title === spaceName) return null; - return title; -} - -import { ProjectDragGrip, SortableGroup } from "../components/SortableGroup"; +import { SortableGroup } from "../components/SortableGroup"; export function ShellPage() { const { t } = useLingui(); @@ -479,7 +333,6 @@ export function ShellPage() { "rakazo:workspace-pane-width", ); - const [heuteActionCount, setHeuteActionCount] = useState(0); const [archivedOpen, setArchivedOpen] = useState(false); const [expandedTeamGroups, setExpandedTeamGroups] = useState>({}); const [collapsedSidebarSections, setCollapsedSidebarSections] = useState(() => new Set()); @@ -487,9 +340,14 @@ export function ShellPage() { useEffect(() => { setCollapsedSidebarSections(readCollapsedSidebarSections(userId)); }, [userId]); - useEffect(() => { - setBotsSidebarCollapsed(readBotsSidebarCollapsed(userId)); - }, [userId]); + const { + botsSidebarCollapsed, + setBotsSidebarCollapsedPref, + onBotsSidebarEdgePointerDown, + onBotsSidebarEdgePointerMove, + onBotsSidebarEdgePointerUp, + onBotsSidebarEdgePointerCancel, + } = useBotsSidebarCollapse(userId); const [panel, setPanel] = useState(null); /** The pane the conversation's focus opened; cleared as soon as the user changes the pane. */ @@ -504,21 +362,6 @@ export function ShellPage() { const [showCreateBotModal, setShowCreateBotModal] = useState(false); - // Persisted project (space) sort order - const [projectOrder, setProjectOrder] = useState(() => readProjectSidebarOrder()); - const handleReorderProjects = useCallback((orderedIds: string[]) => { - setProjectOrder(orderedIds); - writeProjectSidebarOrder(orderedIds); - }, []); - const [draggedProjectId, setDraggedProjectId] = useState(null); - const sensors = useSensors( - useSensor(MouseSensor, { activationConstraint: { distance: 8 } }), - useSensor(TouchSensor, { activationConstraint: { distance: 8 } }), - ); - - const [query, setQuery] = useState(""); - const [searchHits, setSearchHits] = useState([]); - const [searchLoading, setSearchLoading] = useState(false); const [snapshot, setSnapshot] = useState(null); const snapshotRef = useRef(null); const [pendingAttachments, setPendingAttachments] = useState([]); @@ -547,16 +390,6 @@ export function ShellPage() { const [routinesBotId, setRoutinesBotId] = useState(null); const [taughtSkills, setTaughtSkills] = useState([]); const [taughtSkillsBotId, setTaughtSkillsBotId] = useState(null); - const [agentSkills, setAgentSkills] = useState([]); - const [mentionRoutines, setMentionRoutines] = useState>([]); - const [mentionConnectors, setMentionConnectors] = useState< - Array<{ - id: string; - name: string; - authStatus: "connected" | "needs_auth"; - connectionId?: string; - }> - >([]); const [teachBusy, setTeachBusy] = useState(false); const [computer, setComputer] = useState(null); const computerRef = useRef(null); @@ -614,8 +447,6 @@ export function ShellPage() { const [settingsSection, setSettingsSection] = useState("general"); const [messagingSettingsOpen, setMessagingSettingsOpen] = useState(false); - const [messagingSurfaceEnabled, setMessagingSurfaceEnabled] = useState(false); - const [messagingProviders, setMessagingProviders] = useState([]); const [memoryProviderConfig, setMemoryProviderConfig] = useState< SpaceMemoryConfig | null | undefined >(undefined); @@ -626,17 +457,18 @@ export function ShellPage() { const [dismissedRunErrorIds, setDismissedRunErrorIds] = useState>(readSeenRunErrorIds); const [menuOpen, setMenuOpen] = useState(false); - const [mobileSidebarOpen, setMobileSidebarOpen] = useState(false); - const mobileSidebarSwipeRef = useRef<{ startX: number; startY: number } | null>(null); + const { + mobileSidebarOpen, + setMobileSidebarOpen, + onMobileSidebarTouchStart, + onMobileSidebarTouchEnd, + onMobileSidebarTouchCancel, + } = useMobileSidebar(); const [draggedBotId, setDraggedBotId] = useState(null); const [createMenuOpen, setCreateMenuOpen] = useState(false); const [conversationPickerOpen, setConversationPickerOpen] = useState(false); - const [botsSidebarCollapsed, setBotsSidebarCollapsed] = useState(false); const focusPromptAbortRef = useRef(null); const focusPromptBotIdRef = useRef(null); - const botsSidebarEdgeDragRef = useRef<{ startX: number; mode: "expand" | "collapse" } | null>( - null, - ); const [newSpaceOpen, setNewSpaceOpen] = useState(false); const [newSpaceDialogVariant, setNewSpaceDialogVariant] = useState<"space" | "project">("space"); const openNewSpaceDialog = useCallback((variant: "space" | "project") => { @@ -646,15 +478,6 @@ export function ShellPage() { const [pickerInfoTopic, setPickerInfoTopic] = useState<"group" | "space" | null>(null); const [commandPaletteOpen, setCommandPaletteOpen] = useState(false); - useEffect(() => { - const desktop = window.matchMedia("(min-width: 768px)"); - function closeMobileSidebar() { - if (desktop.matches) setMobileSidebarOpen(false); - } - closeMobileSidebar(); - desktop.addEventListener("change", closeMobileSidebar); - return () => desktop.removeEventListener("change", closeMobileSidebar); - }, []); const [activityMode, setActivityMode] = useState(readActivityMode); const toggleActivityMode = useCallback(() => { setActivityMode((on) => { @@ -724,60 +547,12 @@ export function ShellPage() { const [routineError, setRoutineError] = useState(null); const [screenUrl, setScreenUrl] = useState(null); const [computerOpen, setComputerOpen] = useState(false); - const [computerViewport, setComputerViewport] = useState<{ - height: number; - offsetTop: number; - } | null>(null); const [computerError, setComputerError] = useState(null); // Screen-load failures can sit beside a still-valid embed URL; boot and // takeover failures must stay visible even when a URL remains. const [computerErrorFromScreen, setComputerErrorFromScreen] = useState(false); - useEffect(() => { - if (!computerOpen) { - setComputerViewport(null); - return; - } - const viewport = window.visualViewport; - if (!viewport) return; - const sync = () => { - const height = Math.round(viewport.height); - const offsetTop = Math.round(viewport.offsetTop); - // Desktop scrollbars and sub-pixel viewport events must not rewrite the - // overlay height: that feedback loop moves the maintenance menu forever. - const keyboardInset = Math.round(window.innerHeight) - height - offsetTop; - if (keyboardInset < 80) { - setComputerViewport((current) => (current === null ? current : null)); - return; - } - setComputerViewport((current) => { - if (current && current.height === height && current.offsetTop === offsetTop) return current; - return { height, offsetTop }; - }); - }; - sync(); - viewport.addEventListener("resize", sync); - viewport.addEventListener("scroll", sync); - return () => { - viewport.removeEventListener("resize", sync); - viewport.removeEventListener("scroll", sync); - }; - }, [computerOpen]); - useEffect(() => { - if (!session.data?.user) return; - let cancelled = false; - void rpc.messaging - .status() - .then((status) => { - if (!cancelled) { - setMessagingSurfaceEnabled(status.enabled); - setMessagingProviders(status.providers); - } - }) - .catch(() => undefined); - return () => { - cancelled = true; - }; - }, [session.data?.user]); + const computerViewport = useComputerViewport(computerOpen); + const { messagingSurfaceEnabled, messagingProviders } = useMessagingStatus(session); const [usage, setUsage] = useState<{ inputTokens: number; outputTokens: number; @@ -813,8 +588,6 @@ export function ShellPage() { } | null>(null); const manuallyUnread = useRef(new Set()); const readVisibleGroups = useRef(new Set()); - const notifiedBrowserEvents = useRef(new Set()); - const pendingBrowserNotifications = useRef(new Map()); const computerVisible = useRef(false); computerVisible.current = panel === "computer" || computerOpen; const autoSpoken = useRef(null); @@ -901,71 +674,8 @@ export function ShellPage() { }, [markBotRead], ); - const deliverBrowserNotification = useCallback((pending: PendingBrowserNotification): boolean => { - const currentBot = botsRef.current.find((bot) => bot.id === pending.botId); - if (!currentBot || typeof Notification === "undefined") return true; - const result = deliverNativeBrowserNotification( - pending.event, - currentBot.name || pending.botName, - { - enabled: pending.groupNotification || currentBot.notifyOnFinish, - pageVisible: document.visibilityState === "visible", - windowFocused: document.hasFocus(), - permission: Notification.permission, - notifiedEventIds: notifiedBrowserEvents.current, - show: (title, body, tag) => new Notification(title, { body, tag }), - }, - ); - return result !== "pending"; - }, []); - const flushPendingBrowserNotifications = useCallback(() => { - for (const [threadId, pending] of pendingBrowserNotifications.current) { - if (deliverBrowserNotification(pending)) { - pendingBrowserNotifications.current.delete(threadId); - } - } - }, [deliverBrowserNotification]); - const notifyBrowserForEvent = useCallback( - ( - event: Pick, - subscribedThreadId: string | undefined, - initialCursor: number, - streamReady: boolean, - botName: string, - enabled: boolean, - groupNotification: boolean, - ) => { - const botId = event.botId; - if (typeof botId !== "string") return; - const eligible = shouldNotifyBrowser(event, { - subscribedThreadId: subscribedThreadId ?? "", - initialCursor, - streamReady, - pageVisible: document.visibilityState === "visible", - windowFocused: document.hasFocus(), - permission: "granted", - notifiedEventIds: notifiedBrowserEvents.current, - }); - if (!eligible || !enabled) return; - const pending = { - event, - botId, - botName, - groupNotification, - } satisfies PendingBrowserNotification; - if (typeof Notification === "undefined" || Notification.permission === "denied") return; - if (Notification.permission === "default") { - pendingBrowserNotifications.current.set(event.threadId, pending); - return; - } - if (deliverBrowserNotification(pending)) { - pendingBrowserNotifications.current.delete(event.threadId); - } else { - pendingBrowserNotifications.current.set(event.threadId, pending); - } - }, - [deliverBrowserNotification], - ); + const { flushPendingBrowserNotifications, notifyBrowserForEvent } = + useBrowserNotifications(botsRef); const refreshBots = useCallback( async (includeArchived = false, replaceBotOrder = false) => { @@ -1325,27 +1035,7 @@ export function ShellPage() { }; }, []); - useEffect(() => { - let cancelled = false; - void rpc.agentSkills - .list() - .then((skills) => { - if (!cancelled) setAgentSkills(skills); - }) - .catch(() => { - if (!cancelled) setAgentSkills([]); - }); - return () => { - cancelled = true; - }; - }, []); - - const refreshAgentSkills = useCallback(() => { - void rpc.agentSkills - .list() - .then(setAgentSkills) - .catch(() => undefined); - }, []); + const { agentSkills, setAgentSkills, refreshAgentSkills } = useAgentSkills(); useEffect(() => { void rpc.voice @@ -1622,213 +1312,27 @@ export function ShellPage() { }; }, [activeGroup?.id, groupId, notifyBrowserForEvent]); - const sidebarGroups = useMemo(() => { - const needle = query.toLowerCase(); - const sidebarSpaces = - spaces.length > 0 - ? spaces.map((space) => - space.id === bootstrapMe?.spaceId ? { ...space, bots, groups, botSections } : space, - ) - : bootstrapMe - ? [ - { - id: bootstrapMe.spaceId, - name: "Personal", - isDefault: true, - hasContent: true, - canDelete: false, - bots, - groups, - botSections, - }, - ] - : []; - const showSpaceNames = sidebarSpaces.length > 1; - return sidebarSpaces.flatMap((space) => { - const visibleBots = space.bots.filter((bot) => - `${bot.name} ${bot.title ?? ""} ${bot.preview ?? ""}`.toLowerCase().includes(needle), - ); - const visibleGroups = space.groups.filter((group) => - `${group.name} ${group.preview}`.toLowerCase().includes(needle), - ); - const sections = groupBotsForSidebar( - [ - ...visibleBots.map((chat) => ({ kind: "bot" as const, chat })), - ...visibleGroups.map((chat) => ({ kind: "group" as const, chat })), - ].map((item) => ({ ...item, pinned: item.chat.pinned, sectionId: item.chat.sectionId })), - space.botSections, - ).map((group, index) => ({ - ...group, - sectionId: group.key.startsWith("section:") ? group.key.slice("section:".length) : null, - key: showSpaceNames ? `space:${space.id}:${group.key}` : group.key, - title: showSpaceNames - ? group.title - ? `${space.name} · ${group.title}` - : space.name - : group.title, - showLock: showSpaceNames, - emptySpaceId: undefined as string | undefined, - /** A project without its main conversation yet offers to start it. */ - startSpaceId: undefined as string | undefined, - spaceId: space.id, - spaceName: space.name, - canDeleteSpace: index === 0 && space.canDelete === true, - })); - if (sections.length > 0) return sections; - // Keep empty spaces selectable; chat clicks are the only switch control. - if (!showSpaceNames) return []; - if (needle && (space.bots.length > 0 || space.groups.length > 0)) return []; - return [ - { - key: `space:${space.id}:empty`, - title: space.name, - bots: [], - sectionId: null, - showLock: true, - emptySpaceId: space.id, - startSpaceId: undefined, - spaceId: space.id, - spaceName: space.name, - canDeleteSpace: space.canDelete === true, - }, - ]; - }); - }, [bootstrapMe, botSections, bots, groups, spaces, query]); - - const homeSpaceBots = useMemo(() => { - if (!homeSpaceId) return bots; - const home = spaces.find((space) => space.id === homeSpaceId); - return home?.bots ?? bots; - }, [bots, homeSpaceId, spaces]); - - const conversationSidebarGroups = useMemo(() => { - if (!homeSpaceId) return []; - return sidebarGroups - .filter((group) => group.spaceId === homeSpaceId) - .map((group) => ({ - ...group, - title: stripSpaceTitlePrefix(group.title, group.spaceName), - showLock: false, - bots: group.bots - .filter((item) => item.kind === "bot") - .filter((item) => item.chat.kind !== "main"), - })) - .filter((group) => group.bots.length > 0); - }, [homeSpaceId, sidebarGroups]); - - const mainConversationEntry = useMemo(() => { - if (!mainConversation) return null; - const inCurrentSpace = mainConversation.spaceId === bootstrapMe?.spaceId; - const space = spaces.find((item) => item.id === mainConversation.spaceId); - const bot = (inCurrentSpace ? bots : space?.bots)?.find( - (item) => item.id === mainConversation.botId, - ); - const group = (inCurrentSpace ? groups : space?.groups)?.find( - (item) => item.id === mainConversation.groupId, - ); - if (!bot || !group) return null; - return { ...mainConversation, bot, group }; - }, [bootstrapMe?.spaceId, bots, groups, mainConversation, spaces]); - - const projectSidebarGroups = useMemo(() => { - if (!homeSpaceId) return []; - const entries: typeof sidebarGroups = []; - const seenProjectSpaceIds = new Set(); - const seenProjectGroupChatIds = new Set(); - - const dedupeSidebarBots = (bots: (typeof sidebarGroups)[number]["bots"]) => { - const seen = new Set(); - return bots.filter((item) => { - const key = `${item.kind}:${item.chat.id}`; - if (seen.has(key)) return false; - seen.add(key); - return true; - }); - }; - - for (const space of spaces) { - if (space.id === homeSpaceId || seenProjectSpaceIds.has(space.id)) continue; - seenProjectSpaceIds.add(space.id); - const groupsInSpace = sidebarGroups.flatMap((group) => - group.spaceId === space.id ? group.bots.filter((item) => item.kind === "group") : [], - ); - // The project's main conversation, where the user talks to its main agent, comes first. - const projectBots = dedupeSidebarBots(groupsInSpace).sort( - (left, right) => Number(right.chat.kind === "main") - Number(left.chat.kind === "main"), - ); - const hasMain = projectBots.some((item) => item.chat.kind === "main"); - entries.push({ - key: - projectBots.length > 0 ? `project-space:${space.id}` : `project-space:${space.id}:empty`, - title: space.name, - bots: projectBots, - sectionId: null, - showLock: true, - emptySpaceId: projectBots.length > 0 ? undefined : space.id, - startSpaceId: hasMain ? undefined : space.id, - spaceId: space.id, - spaceName: space.name, - canDeleteSpace: space.canDelete === true, - }); - } - - for (const group of sidebarGroups) { - if (group.spaceId !== homeSpaceId) continue; - const groupChats = dedupeSidebarBots( - group.bots.filter((item) => item.kind === "group" && item.chat.kind !== "main"), - ).filter((item) => { - if (seenProjectGroupChatIds.has(item.chat.id)) return false; - seenProjectGroupChatIds.add(item.chat.id); - return true; - }); - if (groupChats.length === 0) continue; - entries.push({ - ...group, - title: stripSpaceTitlePrefix(group.title, group.spaceName), - showLock: false, - emptySpaceId: undefined, - bots: groupChats, - }); - } - - // Apply persisted drag-to-reorder order if present - if (projectOrder.length > 0) { - const orderMap = new Map(entries.map((e, i) => [e.spaceId, i])); - entries.sort((a, b) => { - const aInOrder = orderMap.has(a.spaceId); - const bInOrder = orderMap.has(b.spaceId); - if (aInOrder && bInOrder) - return (orderMap.get(a.spaceId) ?? 0) - (orderMap.get(b.spaceId) ?? 0); - if (aInOrder) return -1; - if (bInOrder) return 1; - return 0; - }); - } - - return entries; - }, [homeSpaceId, sidebarGroups, spaces, projectOrder]); - - // DnD handlers - const handleProjectDragEnd = useCallback( - (event: { active: { id: string | number }; over: { id: string | number } | null }) => { - if (!event.over) return; - const activeId = String(event.active.id); - const overId = String(event.over.id); - if (activeId === overId) return; - const sorted: any[] = [...projectSidebarGroups]; - const activeIdx = sorted.findIndex((g) => g.spaceId === activeId); - const overIdx = sorted.findIndex((g) => g.spaceId === overId); - if (activeIdx === -1 || overIdx === -1) return; - const [moved] = sorted.splice(activeIdx, 1); - sorted.splice(overIdx, 0, moved); - const ids = sorted.map((g: any) => g.spaceId) as string[]; - handleReorderProjects(ids); - }, - [projectSidebarGroups, handleReorderProjects], - ); - const handleProjectDragStart = useCallback((event: { active: { id: string | number } }) => { - setDraggedProjectId(String(event.active.id)); - }, []); + const { query, setQuery, searchHits, searchLoading, showSpaceSearch, jumpToSearchHit } = + useSpaceSearch(navigate); + const { + homeSpaceBots, + conversationSidebarGroups, + mainConversationEntry, + projectSidebarGroups, + sensors, + setDraggedProjectId, + handleProjectDragEnd, + handleProjectDragStart, + } = useSidebarModel({ + query, + spaces, + bots, + groups, + botSections, + bootstrapMe, + homeSpaceId, + mainConversation, + }); const openSpaceChat = useCallback( (spaceId: string, path: string) => { @@ -1946,47 +1450,6 @@ export function ShellPage() { }, [userId], ); - const spaceQuery = query.trim(); - const showSpaceSearch = spaceQuery.length > 0; - - useEffect(() => { - if (!showSpaceSearch) { - setSearchHits([]); - setSearchLoading(false); - return; - } - const abort = new AbortController(); - const timer = window.setTimeout(() => { - setSearchLoading(true); - void rpc.search - .query({ q: spaceQuery }) - .then((result) => { - if (!abort.signal.aborted) setSearchHits(result.hits); - }) - .catch(() => { - if (!abort.signal.aborted) setSearchHits([]); - }) - .finally(() => { - if (!abort.signal.aborted) setSearchLoading(false); - }); - }, 200); - return () => { - abort.abort(); - window.clearTimeout(timer); - }; - }, [showSpaceSearch, Calendar, Settings, spaceQuery]); - - async function jumpToSearchHit(hit: SearchHit) { - setQuery(""); - setSearchHits([]); - const params = new URLSearchParams(); - if (hit.messageId) params.set("m", hit.messageId); - if (hit.routineId) params.set("routine", hit.routineId); - navigate({ - pathname: hit.groupId ? `/app/g/${hit.groupId}` : `/app/${hit.botId}`, - search: params.toString() ? `?${params.toString()}` : undefined, - }); - } async function jumpToMessage(target: { botId?: string; groupId?: string; messageId: string }) { const threadTarget = searchHitThreadTarget(target); @@ -2307,114 +1770,15 @@ export function ShellPage() { openSettings("voice"); }, [voiceEntry, showProjectTimeline, callOpen, voiceCallBot, voiceStatus?.ready]); - const prevTranscriptRunning = useRef(false); - const prevRunErrorId = useRef(null); - const seenHandoffKeys = useRef(new Set()); - const appSoundStarted = useRef(false); - const prevBotStatuses = useRef(new Map()); - - useEffect(() => wireOoAudioVoiceDucking(), []); - - useEffect(() => { - if (appSoundStarted.current) return; - appSoundStarted.current = true; - ooSound.play("app-start"); - window.setTimeout(() => ooVoiceMark.maybePlayColdOpen(), 280); - }, []); - - useEffect(() => { - let cancelled = false; - let timer: number | undefined; - - const tick = async () => { - try { - const [active, recent] = await Promise.all([ - rpc.runs.list({ filter: "active" }), - rpc.runs.list({ filter: "recent" }), - ]); - if (cancelled) return; - const brief = buildHeuteBrief({ - bots: botsRef.current, - groups, - activeRuns: active.runs, - recentRuns: recent.runs, - }); - setHeuteActionCount(brief.actionCount); - } catch { - if (cancelled) return; - } finally { - if (!cancelled) { - timer = window.setTimeout(() => void tick(), 15_000); - } - } - }; - - void tick(); - return () => { - cancelled = true; - if (timer !== undefined) window.clearTimeout(timer); - }; - }, [groups]); - - useEffect(() => { - for (const bot of bots) { - const prev = prevBotStatuses.current.get(bot.id); - if ( - prev !== bot.status && - (bot.status === "waiting_input" || bot.status === "waiting_takeover") - ) { - ooSound.play("need-you"); - ooVocals.reactForEvent("need-you"); - } - prevBotStatuses.current.set(bot.id, bot.status); - } - }, [bots]); - - useEffect(() => { - if (prevTranscriptRunning.current && !transcriptRunning && !callOpen) { - ooSound.play("success-resolve"); - ooVocals.reactForEvent("success"); - } - prevTranscriptRunning.current = transcriptRunning; - }, [transcriptRunning, callOpen]); - - useEffect(() => { - const runId = displayedRunErrorId; - if (runId && runId !== prevRunErrorId.current) { - ooSound.play("attention"); - } - prevRunErrorId.current = runId; - }, [displayedRunErrorId]); - - const seenGroupSparkKeys = useRef(new Set()); - - useEffect(() => { - for (const message of activeSnapshot?.messages ?? []) { - for (const block of message.blocks) { - if (block.kind === "handoff") { - const key = `${message.id}:handoff:${block.toBotId}`; - if (seenHandoffKeys.current.has(key)) continue; - seenHandoffKeys.current.add(key); - if (seenHandoffKeys.current.size > 80) { - const oldest = seenHandoffKeys.current.values().next().value; - if (oldest !== undefined) seenHandoffKeys.current.delete(oldest); - } - ooSound.play("handoff"); - continue; - } - if (inGroup && block.kind === "bot_message_received") { - const key = `${message.id}:peer:${block.fromBotId}`; - if (seenGroupSparkKeys.current.has(key)) continue; - seenGroupSparkKeys.current.add(key); - if (seenGroupSparkKeys.current.size > 80) { - const oldest = seenGroupSparkKeys.current.values().next().value; - if (oldest !== undefined) seenGroupSparkKeys.current.delete(oldest); - } - ooSound.play("group-spark"); - } - } - } - }, [activeSnapshot?.messages, inGroup]); + const heuteActionCount = useHeuteActionCount(groups, botsRef); + useShellSounds({ + bots, + transcriptRunning, + callOpen, + displayedRunErrorId, + activeSnapshot, + inGroup, + }); const resolveTranscriptMemberName = useCallback( (botId: string | undefined) => @@ -2427,48 +1791,15 @@ export function ShellPage() { ? t`You` : (resolveTranscriptMemberName(activeReplyTarget.botId) ?? active?.name ?? t`Bot`) : undefined; - const composerMentionTargets = useMemo(() => { - const mentionBots = new Map( - bots.map((bot) => [bot.id, { id: bot.id, name: bot.name, color: bot.color }]), - ); - // Group members stay mentionable when the sidebar bot list is still catching up - // after creating the group and remounting the shell. - if (inGroup) { - for (const member of [...(activeGroup?.members ?? []), ...(activeSnapshot?.members ?? [])]) { - if (!mentionBots.has(member.botId)) { - mentionBots.set(member.botId, { - id: member.botId, - name: member.name, - color: member.color, - }); - } - } - } - return buildComposerMentionOptions({ - query: "", - includeEveryone: inGroup, - currentGroupId: groupId, - bots: [...mentionBots.values()], - groups: groups.map((group) => ({ id: group.id, name: group.name })), - routines: mentionRoutines.map((routine) => ({ - id: routine.id, - name: routine.name, - crons: routine.crons, - botId: routine.botId, - botName: routine.botName, - })), - connectors: mentionConnectors, - }); - }, [ - activeGroup?.members, - activeSnapshot?.members, + const composerMentionTargets = useMentionTargets({ bots, - groupId, groups, + groupId, inGroup, - mentionConnectors, - mentionRoutines, - ]); + activeGroup, + activeSnapshot, + initialBotsLoaded, + }); const shellReady = initialBotsLoaded && (inGroup @@ -2483,78 +1814,6 @@ export function ShellPage() { const jumpToMessageRef = useRef(jumpToMessage); jumpToMessageRef.current = jumpToMessage; - const mentionBotsKey = useMemo( - () => bots.map((bot) => `${bot.id}:${bot.name}`).join(","), - [bots], - ); - const botsForMentionsRef = useRef(bots); - botsForMentionsRef.current = bots; - - useEffect(() => { - const bots = botsForMentionsRef.current; - if (!initialBotsLoaded || bots.length === 0) { - setMentionRoutines([]); - setMentionConnectors([]); - return; - } - let cancelled = false; - const botNameById = new Map(bots.map((bot) => [bot.id, bot.name])); - void Promise.all( - bots.map((bot) => - rpc.routines - .list({ botId: bot.id }) - .then((rows) => - rows.map((routine) => ({ - ...routine, - botName: botNameById.get(bot.id) ?? bot.name, - })), - ) - .catch(() => [] as Array), - ), - ).then((lists) => { - if (!cancelled) setMentionRoutines(lists.flat()); - }); - void Promise.all([ - rpc.connections.list().catch(() => [] as Connection[]), - rpc.connections.catalog({}).catch(() => [] as ConnectionCatalogItem[]), - ]).then(([connections, catalog]) => { - if (cancelled) return; - const connected = connections.filter((row) => row.status === "connected"); - const options: Array<{ - id: string; - name: string; - authStatus: "connected" | "needs_auth"; - connectionId?: string; - }> = connected.map((row) => ({ - id: row.id, - name: row.displayName, - authStatus: "connected" as const, - connectionId: row.id, - })); - for (const item of catalog) { - if (item.connected || item.noAuth) continue; - if ( - connected.some( - (row) => - row.provider.toLowerCase() === item.slug.toLowerCase() || - row.displayName.toLowerCase() === item.name.toLowerCase(), - ) - ) { - continue; - } - options.push({ - id: `catalog:${item.connectorId}:${item.slug}`, - name: item.name, - authStatus: "needs_auth", - }); - } - setMentionConnectors(options); - }); - return () => { - cancelled = true; - }; - }, [initialBotsLoaded, mentionBotsKey]); - useLayoutEffect(() => { if (initialBotsLoaded) { markOnce("rk:renderer:bots-committed"); @@ -3098,11 +2357,6 @@ export function ShellPage() { focusPromptBotIdRef.current = null; } - function setBotsSidebarCollapsedPref(collapsed: boolean) { - setBotsSidebarCollapsed(collapsed); - writeBotsSidebarCollapsed(userId, collapsed); - } - function openSettings(section: SettingsSection = "general") { setSettingsSection(section); setSettingsOpen(true); @@ -3399,47 +2653,9 @@ export function ShellPage() { data-testid="shell-root" data-ready={shellReady} className="relative flex h-full min-w-0 overflow-hidden bg-background text-foreground/90 p-0 md:p-3 gap-0 md:gap-3" - onTouchStartCapture={(event) => { - if ( - mobileSidebarOpen || - event.touches.length !== 1 || - window.matchMedia("(min-width: 768px)").matches - ) { - mobileSidebarSwipeRef.current = null; - return; - } - const touch = event.touches[0]; - if (!touch) return; - const rtl = document.documentElement.getAttribute("dir") === "rtl"; - const startsAtEdge = rtl - ? touch.clientX >= window.innerWidth - MOBILE_SIDEBAR_SWIPE_EDGE_PX - : touch.clientX <= MOBILE_SIDEBAR_SWIPE_EDGE_PX; - mobileSidebarSwipeRef.current = startsAtEdge - ? { startX: touch.clientX, startY: touch.clientY } - : null; - }} - onTouchEndCapture={(event) => { - const swipe = mobileSidebarSwipeRef.current; - mobileSidebarSwipeRef.current = null; - const touch = event.changedTouches[0]; - if ( - !swipe || - !touch || - mobileSidebarOpen || - window.matchMedia("(min-width: 768px)").matches - ) { - return; - } - const rtl = document.documentElement.getAttribute("dir") === "rtl"; - const horizontal = rtl ? swipe.startX - touch.clientX : touch.clientX - swipe.startX; - const vertical = Math.abs(touch.clientY - swipe.startY); - if (horizontal >= MOBILE_SIDEBAR_SWIPE_DISTANCE_PX && horizontal > vertical * 1.25) { - setMobileSidebarOpen(true); - } - }} - onTouchCancelCapture={() => { - mobileSidebarSwipeRef.current = null; - }} + onTouchStartCapture={onMobileSidebarTouchStart} + onTouchEndCapture={onMobileSidebarTouchEnd} + onTouchCancelCapture={onMobileSidebarTouchCancel} > { @@ -3484,85 +2700,20 @@ export function ShellPage() { onPointerDown={startResizingLeft} className="absolute -right-2 top-0 bottom-0 w-4 cursor-col-resize z-50 hidden md:block" /> -
- -
- -
-
- - - - - + - - {/* Unmount with the state change so the panel it opens never coexists with the menu. */} - {createMenuOpen ? ( - - { - setCreateMenuOpen(false); - setMobileSidebarOpen(false); - setPanel("create"); - }} - onOpenBot={(id) => { - setCreateMenuOpen(false); - setMobileSidebarOpen(false); - navigate(`/app/${id}`); - }} - onCreateGroup={() => { - setCreateMenuOpen(false); - setMobileSidebarOpen(false); - setPanel("create-group"); - }} - onCreateSpace={() => { - setCreateMenuOpen(false); - setMobileSidebarOpen(false); - openNewSpaceDialog("space"); - }} - onShowGroupInfo={() => { - setCreateMenuOpen(false); - setMobileSidebarOpen(false); - setPickerInfoTopic("group"); - }} - onShowSpaceInfo={() => { - setCreateMenuOpen(false); - setMobileSidebarOpen(false); - setPickerInfoTopic("space"); - }} - /> - - ) : null} - -
-
+ setMobileSidebarOpen(false)} + bots={bots} + onCreateBot={() => setPanel("create")} + onOpenBot={(id) => navigate(`/app/${id}`)} + onCreateGroup={() => setPanel("create-group")} + onCreateSpace={() => openNewSpaceDialog("space")} + onShowGroupInfo={() => setPickerInfoTopic("group")} + onShowSpaceInfo={() => setPickerInfoTopic("space")} + /> {group.title ? ( -
- - {group.canDeleteSpace ? ( - - ) : null} -
+ openSpaceChat(spaceId, "/onboarding")} + onToggle={toggleSidebarSection} + sectionMenuAnchor={sectionMenuAnchor} + onSectionMenu={setSectionMenu} + spaceMenuAnchor={spaceMenuAnchor} + onSpaceMenu={setSpaceMenu} + /> ) : null} {!collapsed && group.bots .slice(0, expandedTeamGroups[group.key] ? undefined : 4) .map((item) => ( - + activeSpaceId={bootstrapMe?.spaceId} + menuAnchor={botMenuAnchor} + onMenu={setBotMenu} + /> ))} {!collapsed && group.bots.length > 4 && ( - {group.canDeleteSpace ? ( - - ) : null} - + void startProject(spaceId)} + onToggle={toggleSidebarSection} + sectionMenuAnchor={sectionMenuAnchor} + onSectionMenu={setSectionMenu} + spaceMenuAnchor={spaceMenuAnchor} + onSpaceMenu={setSpaceMenu} + /> ) : null} {!collapsed && group.startSpaceId ? (
@@ -4103,17 +2988,15 @@ export function ShellPage() { ) : null} {!collapsed && group.bots.map((item) => ( - + activeSpaceId={bootstrapMe?.spaceId} + menuAnchor={botMenuAnchor} + onMenu={setBotMenu} + /> ))}
@@ -4199,154 +3021,46 @@ export function ShellPage() { )} {archivedBots.length + archivedGroups.length > 0 && !showSpaceSearch ? ( -
- - {archivedOpen ? ( - <> - {archivedBots.map((bot) => ( -
- - - {bot.name} - - - -
- ))} - {archivedGroups.map((group) => ( -
- - - {group.name} - - - -
- ))} - - ) : null} -
+ setArchivedOpen((open) => !open)} + onRestoreBot={(bot) => + void rpc.bots.restore({ botId: bot.id }).then(() => refreshBots(true)) + } + onRestoreGroup={(group) => + void rpc.groups.restore({ groupId: group.id }).then(() => refreshBots(true)) + } + onDeleteBot={setDeleteTarget} + onDeleteGroup={setDeleteGroupTarget} + /> ) : null} - - - - {initials} - - {userName} - - {menuOpen ? ( - - - - - - ) : null} - + openSettings("general")} + onOpenUsage={() => { + void rpc.usage + .summary() + .then(setUsage) + .catch(() => undefined); + openSettings("usage"); + }} + onLogOut={() => + // This browser stops receiving the account's pushes once it signs out. + void disableWebPush() + .catch(() => undefined) + .then(() => authClient.signOut()) + .then(() => { + clearSpaceSelection(); + navigate("/"); + }) + } + /> - + setMobileSidebarOpen(true)} + /> @@ -4462,30 +3129,11 @@ export function ShellPage() { <>
- {/* Collapsed bots sidebar: this header is the leading edge for window chrome. */} - {botsSidebarCollapsed && desktopBridge() ? : null} - - + setMobileSidebarOpen(true)} + /> {inGroup && projectSessionKey ? ( - ) : null} - -
-
+ ) : null} {panel === "computer" && active ? (
-
- {computerOpen ? ( -
- Open in full window -
- ) : computer?.kind === "desktop" ? ( - - ) : computer?.state === "running" && embeddedScreenUrl && !computerScreenError ? ( - <> -