@wrongstack/webui 0.318.0 → 0.319.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AgentRosterView-C46rL23K.js → AgentRosterView-VIctzKMy.js} +1 -1
- package/dist/assets/{AnalyticsDashboard-B8r_8kNv.js → AnalyticsDashboard-Dr67MeEY.js} +1 -1
- package/dist/assets/{AudienceMemoryPanel-Ciybycpn.js → AudienceMemoryPanel-DoaZfrjf.js} +1 -1
- package/dist/assets/{ChangesView-BREfCsEq.js → ChangesView-s7Mn7iE2.js} +1 -1
- package/dist/assets/ChimeraReviewsView-Cverzv0b.js +1 -0
- package/dist/assets/{ChronicleDashboard-bo2jv52s.js → ChronicleDashboard-CzqPfaPc.js} +1 -1
- package/dist/assets/{CodeEditor-C_KzNkIb.js → CodeEditor-DXQoTSH5.js} +1 -1
- package/dist/assets/{CodeMap-DA_k3u5g.js → CodeMap-D34FOPgR.js} +1 -1
- package/dist/assets/{ConfirmModal-gukSikBD.js → ConfirmModal-B6BGiiN8.js} +1 -1
- package/dist/assets/{CronJobsPanel-D-43oYQ-.js → CronJobsPanel-CenxuaN9.js} +1 -1
- package/dist/assets/{DeadCodeScanPanel-VnMQatbH.js → DeadCodeScanPanel-DooqnEMF.js} +1 -1
- package/dist/assets/{DebugDashboard-DNDadwro.js → DebugDashboard-DWaUg6e1.js} +1 -1
- package/dist/assets/{DesignGalleryView-B9ZMJPOQ.js → DesignGalleryView-BKtjn4px.js} +1 -1
- package/dist/assets/{GoalView-BkoCNN8l.js → GoalView-BZ62_vF-.js} +1 -1
- package/dist/assets/{KanbanView-nql6LkaS.js → KanbanView-DsWnTpxr.js} +1 -1
- package/dist/assets/{MailboxDetailView-CdHRfnNq.js → MailboxDetailView-DS1P9DRT.js} +1 -1
- package/dist/assets/{MemoryDrawer-CfukdhlF.js → MemoryDrawer-BJEY1v4P.js} +1 -1
- package/dist/assets/{MemoryManager-BD_VnFAu.js → MemoryManager-D-kuyTQe.js} +1 -1
- package/dist/assets/{ModelPicker-C3r7IFfh.js → ModelPicker-CLs0qQgg.js} +1 -1
- package/dist/assets/{OfficeMapPanel-B47jfEHf.js → OfficeMapPanel-BqoCcniD.js} +1 -1
- package/dist/assets/{ProcessMonitor-CvHdN8Bn.js → ProcessMonitor-CHNNqCk9.js} +1 -1
- package/dist/assets/{PromptJournalView-CXZ9notj.js → PromptJournalView-Biu4DknM.js} +1 -1
- package/dist/assets/{QueuePanel-DOcgHRH3.js → QueuePanel-CzTXq6j4.js} +1 -1
- package/dist/assets/{RefreshDebugView-BYmeORMQ.js → RefreshDebugView-d9iU3sFX.js} +1 -1
- package/dist/assets/{RequirementIntakeView-CFgVx_0T.js → RequirementIntakeView-BVyF2zXR.js} +1 -1
- package/dist/assets/{SageTabs-BRJG0fhZ.js → SageTabs-YASyEFo6.js} +2 -2
- package/dist/assets/{SddFlowGraph-BsfhxlDK.js → SddFlowGraph-Bj_Aqq5B.js} +1 -1
- package/dist/assets/{SddHub-Br1vyCgq.js → SddHub-rmGGEYZe.js} +1 -1
- package/dist/assets/{SessionInspectView-BSRjWErA.js → SessionInspectView-iaKkGAAM.js} +1 -1
- package/dist/assets/{SessionList-BkaI91oW.js → SessionList-vmAS2Fg5.js} +1 -1
- package/dist/assets/{SessionsDashboard-BEQs4Div.js → SessionsDashboard-x3iyhrGl.js} +1 -1
- package/dist/assets/SetupScreen-huPJT0Bv.js +1 -0
- package/dist/assets/{SkillDetailView-DqxkOnb8.js → SkillDetailView-BcD9z7zG.js} +1 -1
- package/dist/assets/{SpecsView-COS0-sxq.js → SpecsView-ok8HZ8ws.js} +1 -1
- package/dist/assets/{TechStackView-Dr8vI0hK.js → TechStackView-DmMtwb4l.js} +1 -1
- package/dist/assets/{TerminalPanel-DlIyvxm6.js → TerminalPanel-cbM6oQWQ.js} +1 -1
- package/dist/assets/{activity-q85HXQNv.js → activity-BU6MNvBJ.js} +1 -1
- package/dist/assets/{activity-B2_Vr2oD.js → activity-C7dkJqBU.js} +1 -1
- package/dist/assets/{activity-DYMBKGt0.js → activity-C_18AaRY.js} +1 -1
- package/dist/assets/{activity-IxgYWPDt.js → activity-CpnSsE22.js} +1 -1
- package/dist/assets/{activity-BF1idM4Y.js → activity-CtTKsSX6.js} +1 -1
- package/dist/assets/{activity-C-kOJZXC.js → activity-D1rp3dH9.js} +1 -1
- package/dist/assets/{activity-DPpMW8BU.js → activity-hTPcI4q1.js} +1 -1
- package/dist/assets/{chat-DTI7lNDx.js → chat-6dE2AJNN.js} +1 -1
- package/dist/assets/{chat-BvKkSd09.js → chat-B3AJmhGD.js} +1 -1
- package/dist/assets/{chat-BNWqeV-N.js → chat-BHsbpaVt.js} +1 -1
- package/dist/assets/{chat-BlllxfpP.js → chat-BITJe8-v.js} +1 -1
- package/dist/assets/{chat-DlhXGxxi.js → chat-U-Jjb8_k.js} +1 -1
- package/dist/assets/{chat-B60h8Cji.js → chat-_Xp5fDnj.js} +1 -1
- package/dist/assets/{chat-B5a3cvps.js → chat-mSbSzPl5.js} +1 -1
- package/dist/assets/{chat-store-DIcs826A.js → chat-store-oW_-zcJP.js} +1 -1
- package/dist/assets/{i18n-Cv65b1SP.js → i18n-D06uU1PM.js} +2 -2
- package/dist/assets/index-BQ7PJ-sA.js +144 -0
- package/dist/assets/index-CWYymMpa.css +1 -0
- package/dist/assets/{roster-ws-D5JW3IPJ.js → roster-ws-BQUI8QuW.js} +1 -1
- package/dist/assets/setup-B0D9CK3-.js +1 -0
- package/dist/assets/setup-B58YVaGU.js +1 -0
- package/dist/assets/setup-C2H9Uv0Q.js +1 -0
- package/dist/assets/setup-CzM4dkkU.js +1 -0
- package/dist/assets/setup-Di56FlHP.js +1 -0
- package/dist/assets/setup-Dwt58Mpz.js +1 -0
- package/dist/assets/setup-DznVdlJy.js +1 -0
- package/dist/assets/{stores-CNuMLG8X.js → stores-C7Vvce-6.js} +1 -1
- package/dist/assets/ui-store-Dm7ujR9u.js +1 -0
- package/dist/assets/useWebSocket-9lfOsI_r.js +27 -0
- package/dist/assets/{view-navigation-DPOY0lyt.js → view-navigation-wOKaM_Rf.js} +1 -1
- package/dist/assets/{ws-client-D-d32pHb.js → ws-client-DtTZLD8e.js} +2 -2
- package/dist/components/ChatInput/use-speech-recognition.d.ts +1 -1
- package/dist/components/DependencyGraph.d.ts +1 -1
- package/dist/components/DiffView.d.ts +1 -1
- package/dist/components/MessageBubble/ToolLedgerCard.d.ts +1 -1
- package/dist/components/SetupScreen/CustomProviderSection.d.ts +1 -1
- package/dist/components/agents/AgentRosterCard.d.ts +1 -1
- package/dist/components/context-editor/ContextWindowEditor.d.ts +1 -1
- package/dist/components/ui/dropdown-menu.d.ts +1 -1
- package/dist/components/vector-memory-panel/index.d.ts +1 -1
- package/dist/index.html +14 -14
- package/dist/index.js +5788 -3483
- package/dist/lib/launch-builtin-round.d.ts +43 -0
- package/dist/lib/perf-run-message.d.ts +51 -0
- package/dist/manifest.json +1 -1
- package/dist/stores/fleet-store.d.ts +4 -0
- package/dist/stores/index.d.ts +2 -2
- package/dist/stores/types.d.ts +9 -0
- package/dist/stores/ui-store.d.ts +0 -2
- package/package.json +10 -10
- package/dist/assets/ChimeraReviewsView-aSYmQ8tC.js +0 -1
- package/dist/assets/SetupScreen-zY4541lT.js +0 -1
- package/dist/assets/index-DSyVpLgL.css +0 -1
- package/dist/assets/index-DbprKWmG.js +0 -137
- package/dist/assets/setup-BQLPzL3N.js +0 -1
- package/dist/assets/setup-C9lrNwQF.js +0 -1
- package/dist/assets/setup-CcxP7cUl.js +0 -1
- package/dist/assets/setup-CtKKNpH9.js +0 -1
- package/dist/assets/setup-D4rp2jda.js +0 -1
- package/dist/assets/setup-MvmOtwNp.js +0 -1
- package/dist/assets/setup-blxUcxNU.js +0 -1
- package/dist/assets/ui-store-DpKUBLWd.js +0 -1
- package/dist/assets/useWebSocket-VIItbvVK.js +0 -27
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={title:`Willkommen bei WrongStack`,subtitle:`Verbinde einen Anbieter, um loszulegen.`,heroTitle:`Wo möchtest du starten?`,heroTitleInProject:`Wo möchtest du in {{name}} starten?`,heroSubtitle:`Der Agent ist mit deinem Projekt verbunden und bereit, Code zu lesen, zu bearbeiten, Befehle auszuführen, die Codebasis zu durchsuchen, Todos zu verfolgen und den Kontext über Sitzungen hinweg zu speichern. Wähle unten einen Start-Prompt, schreib deinen eigenen oder gib / für die vollständige Befehls-Palette ein.`,workingDirectory:`Arbeitsverzeichnis: {{cwd}}`,noKeyTitle:`Noch kein API-Schlüssel konfiguriert`,noKeyBody:`Registriere einen Anbieter in den Einstellungen, bevor du eine Nachricht sendest — sonst hat der Agent niemanden, mit dem er reden kann. Anthropic, OpenAI, Google und jeder OpenAI-kompatible Endpunkt funktionieren.`,openSettings:`Einstellungen öffnen`,bugHunterTitle:`Elite Bug Hunter starten`,bugHunterBody:`Findet, beweist und behebt genau einen echten Fehler, prüft ihn und hält dann an.`,bugHunterScope:`Bereich`,bugHunterWholeProject:`Ganzes Projekt`,bugHunterDirectoryScope:`{{path}} und darunter`,bugHunterMaxBugs:`Max. Fehler`,bugHunterStart:`Suche starten`,soloSessionTitle:`Solo-Sitzung`,soloSessionBody:`Blockiert Chimera, Delegierung und alle Hintergrundagenten. Nach der ersten Nachricht gesperrt.`,on:`Ein`,off:`Aus`,bugHunterError:`Der Elite-Bug-Hunter-Prompt konnte nicht geladen werden. Prüfe die Prompt-Bibliothek und versuche es erneut.`,pickBackUp:`Fortsetzen`,recentPrompts:`Zuletzt verwendete Prompts`,quickCommands:`Schnellbefehle`,startingPrompts:`Start-Prompts`,shufflePrompts:`Mischen`,shufflePromptsHint:`Einen neuen Satz Start-Prompts anzeigen`,empty:`(leer)`,card:{understand:{title:`Verstehen`,hint:`Codebasis erkunden und analysieren`},create:{title:`Erstellen`,hint:`Neue Features und Funktionen bauen`},investigate:{title:`Untersuchen`,hint:`Probleme debuggen und Ursachen finden`},improve:{title:`Verbessern`,hint:`Bestehenden Code refactorn und optimieren`}},slashRef:{help:`alle Slash-Befehle auflisten`,diag:`Laufzeitdiagnose`,stats:`Token · Cache · Kosten · Dauer`,tools:`registrierte Tools anzeigen`,memory:`gemerkte Notizen anzeigen`,compact:`Kontext verkleinern`,clear:`aktuellen Kontext löschen`,new:`neue Sitzung`}},t={heading:`Anbieter wählen`,keyPlaceholder:`API-Schlüssel einfügen`,connect:`Verbinden`,connected:`Verbunden`},n={header:{title:`Willkommen bei WrongStack`,subtitle:`Füge mindestens einen API-Schlüssel hinzu, um loszulegen`,continue:`Weiter`},steps:{addKeys:`API-Schlüssel hinzufügen`,pickModel:`Modell wählen`,start:`Start`,keys:`Schlüssel`},security:{title:`Deine Schlüssel bleiben auf deinem Gerät`,body:`API-Schlüssel werden verschlüsselt und lokal gespeichert. Sie werden nur an den API-Endpunkt des Anbieters gesendet — nie an uns oder Dritte.`},errors:{backendUnreachable:`Backend nicht erreichbar`,backendNotResponding:`Das Backend reagiert nicht. Es könnte abgestürzt sein oder die Verbindung wurde getrennt.`,retry:`Erneut versuchen`,modelSwitchTimeout:`Zeitüberschreitung beim Modellwechsel. Bitte erneut versuchen.`,noModels:`Keine Modelle verfügbar. Überprüfe deinen API-Schlüssel und versuche es erneut.`},providers:{popular:`Beliebte Anbieter`,more:`Weitere Anbieter`,selfHosted:`Selbst gehostet`,updating:`Wird aktualisiert...`,refresh:`Aktualisieren`,refreshTitle:`Anbieterliste aktualisieren`,modelsAvailable_one:`{{count}} Modell verfügbar`,modelsAvailable_other:`{{count}} Modelle verfügbar`,catalogDescription:`{{family}} · {{count}} Modelle`},start:{pickAndStart:`Modell wählen und starten`,addMoreKeys:`← Weitere Schlüssel hinzufügen`,chooseProvider:`Anbieter wählen`,chooseModel:`Modell wählen`,modelsFor:`Verfügbare Modelle für {{provider}}`,activeKeys_one:`{{count}} aktiver Schlüssel`,activeKeys_other:`{{count}} aktive Schlüssel`,startSession:`Sitzung starten`,saveConfig:`Konfiguration speichern`,saveConfigHint:`Anbieter und Modell gespeichert. Chatten Sie, wann Sie bereit sind.`},card:{keySaved:`Schlüssel gespeichert`,referral:`Empfehlung`,save:`Speichern`,getKey:`API-Schlüssel abrufen`,copied:`Kopiert`,copyReferral:`Empfehlungslink kopieren`,share:`Teilen`,qrAlt:`{{name}} Empfehlungs-QR-Code`},share:{title:`{{name}}-Empfehlung teilen`,description:`Teile diesen Empfehlungslink mit Freunden und verdiene Belohnungen!`,hint:`Scanne den QR-Code oder kopiere den Link zum Teilen`,twitter:`Auf X/Twitter teilen`,linkedin:`Auf LinkedIn teilen`,telegram:`Auf Telegram teilen`,whatsapp:`Auf WhatsApp teilen`,reddit:`Auf Reddit teilen`,facebook:`Auf Facebook teilen`,email:`Per E-Mail teilen`},custom:{title:`Benutzerdefinierter / selbst gehosteter Anbieter`,description:`Beliebigen OpenAI-kompatiblen Endpunkt hinzufügen (Ollama, vLLM, Together usw.)`,localServers:`Lokale Server — zum Ausfüllen klicken`,providerId:`Anbieter-ID *`,family:`Familie`,familyOpenAiCompatible:`OpenAI-kompatibel`,baseUrl:`Basis-URL (optional)`,apiKey:`API-Schlüssel (optional — einige lokale Anbieter benötigen keinen)`,apiKeyPlaceholder:`API-Schlüssel (falls erforderlich)`,add:`Anbieter hinzufügen`,models:`Modelle`,addModel:`Modell hinzufügen`,modelSearchPlaceholder:`Katalogmodelle durchsuchen…`,noCatalogMatch:`Kein passendes Katalogmodell.`,useCustomId:`Benutzerdefinierte ID eingeben`,customModelIdPlaceholder:`Benutzerdefinierte Modell-ID`,cancel:`Abbrechen`,modelSingular:`Modell`,modelPlural:`Modelle`},time:{justNow:`gerade eben`,secondsAgo:`vor {{count}} Sek.`,minutesAgo:`vor {{count}} Min.`,hoursAgo:`vor {{count}} Std.`,daysAgo:`vor {{count}} T.`},probe:{checking:`Verbindungsprüfung…`,connected:`Verbunden`,models:`Modelle`,failed:`Test fehlgeschlagen`,noBaseUrl:`Keine Basis-URL konfiguriert`,unreachable:`Keine Verbindung möglich`,httpStatus:`Status`},toasts:{keySaved:`{{name}} API-Schlüssel gespeichert`,keySaveFailed:`{{name}} API-Schlüssel konnte nicht gespeichert werden`,referralCopied:`Empfehlungslink in die Zwischenablage kopiert`,referralCopyFailed:`Empfehlungslink konnte nicht kopiert werden`,providerAdded:`Anbieter "{{id}}" hinzugefügt`,providerAddFailed:`Anbieter konnte nicht hinzugefügt werden`,providersLoadedNew:`{{count}} Anbieter geladen ({{diff}} neu)`,providersLoadedRemoved:`{{count}} Anbieter geladen ({{diff}} entfernt)`,providersLoadedNoChanges:`{{count}} Anbieter geladen (keine Änderungen)`,providersRefreshFailed:`Anbieter konnten nicht aktualisiert werden`}},r={welcome:e,provider:t,screen:n};export{r as default,t as provider,n as screen,e as welcome};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-hePW80VL.js";var t=e({default:()=>a,provider:()=>r,screen:()=>i,welcome:()=>n}),n={title:`Welcome to WrongStack`,subtitle:`Connect a provider to get started.`,heroTitle:`Where do you want to start?`,heroTitleInProject:`Where do you want to start in {{name}}?`,heroSubtitle:`The agent is connected to your project and ready to read, edit, run commands, search the codebase, track todos, and remember context across sessions. Pick a starting prompt below, write your own, or type / for the full command palette.`,workingDirectory:`Working directory: {{cwd}}`,noKeyTitle:`No API key configured yet`,noKeyBody:`Register a provider in Settings before sending a message — otherwise the agent has nothing to talk to. Anthropic, OpenAI, Google, and any OpenAI-compatible endpoint all work.`,openSettings:`Open Settings`,bugHunterTitle:`Start Elite Bug Hunter`,bugHunterBody:`Find, prove, and fix one real bug, verify it, then stop for review.`,bugHunterScope:`Scope`,bugHunterWholeProject:`Whole project`,bugHunterDirectoryScope:`{{path}} and below`,bugHunterMaxBugs:`Max bugs`,bugHunterStart:`Start hunt`,soloSessionTitle:`Solo session`,soloSessionBody:`Blocks Chimera, delegation, and every background subagent. Locks after your first message.`,on:`On`,off:`Off`,bugHunterError:`The Elite Bug Hunter prompt could not be loaded. Check the prompt library and try again.`,pickBackUp:`Pick back up`,recentPrompts:`Recent prompts`,quickCommands:`Quick commands`,startingPrompts:`Starting prompts`,shufflePrompts:`Shuffle`,shufflePromptsHint:`Show a fresh set of starting prompts`,empty:`(empty)`,card:{understand:{title:`Understand`,hint:`Explore and analyze the codebase`},create:{title:`Create`,hint:`Build new features and functionality`},investigate:{title:`Investigate`,hint:`Debug issues and find root causes`},improve:{title:`Improve`,hint:`Refactor and optimize existing code`}},slashRef:{help:`list every slash command`,diag:`runtime diagnostics`,stats:`tokens · cache · cost · elapsed`,tools:`show registered tools`,memory:`show remembered notes`,compact:`shrink context`,clear:`wipe current context`,new:`fresh session`}},r={heading:`Choose a provider`,keyPlaceholder:`Paste your API key`,connect:`Connect`,connected:`Connected`},i={header:{title:`Welcome to WrongStack`,subtitle:`Add at least one API key to get started`,continue:`Continue`},steps:{addKeys:`Add API Keys`,pickModel:`Pick a Model`,start:`Start`,keys:`Keys`},security:{title:`Your keys stay on your machine`,body:`API keys are encrypted and stored locally. They're only sent to the provider's API endpoint — never to us or any third party.`},errors:{backendUnreachable:`Can't reach the backend`,backendNotResponding:`The backend is not responding. It may have crashed or the connection dropped.`,retry:`Retry`,modelSwitchTimeout:`Model switch timed out. Please try again.`,noModels:`No models available. Check your API key and try again.`},providers:{popular:`Popular Providers`,more:`More Providers`,selfHosted:`Self-hosted`,updating:`Updating...`,refresh:`Refresh`,refreshTitle:`Refresh provider list`,modelsAvailable_one:`{{count}} model available`,modelsAvailable_other:`{{count}} models available`,catalogDescription:`{{family}} · {{count}} models`},start:{pickAndStart:`Pick a model and start`,addMoreKeys:`← Add more keys`,chooseProvider:`Choose a Provider`,chooseModel:`Choose a Model`,modelsFor:`Models available for {{provider}}`,activeKeys_one:`{{count}} active key`,activeKeys_other:`{{count}} active keys`,startSession:`Start Session`,saveConfig:`Save Configuration`,saveConfigHint:`Saved provider and model. Start chatting when you're ready.`},card:{keySaved:`Key saved`,referral:`Referral`,save:`Save`,getKey:`Get your API key`,copied:`Copied`,copyReferral:`Copy referral link`,share:`Share`,qrAlt:`{{name}} referral QR code`},share:{title:`Share {{name}} Referral`,description:`Share this referral link with friends and earn rewards!`,hint:`Scan the QR code or copy the link to share`,twitter:`Share on X/Twitter`,linkedin:`Share on LinkedIn`,telegram:`Share on Telegram`,whatsapp:`Share on WhatsApp`,reddit:`Share on Reddit`,facebook:`Share on Facebook`,email:`Share via Email`},custom:{title:`Custom / Self-hosted Provider`,description:`Add any OpenAI-compatible endpoint (Ollama, vLLM, Together, etc.)`,localServers:`Local servers — click to pre-fill`,providerId:`Provider ID *`,family:`Family`,familyOpenAiCompatible:`OpenAI Compatible`,baseUrl:`Base URL (optional)`,apiKey:`API Key (optional — some local providers don't need one)`,apiKeyPlaceholder:`API key (if required)`,add:`Add Provider`,models:`Models`,addModel:`Add model`,modelSearchPlaceholder:`Search catalog models…`,noCatalogMatch:`No catalog match.`,useCustomId:`Enter custom ID`,customModelIdPlaceholder:`Custom model id`,cancel:`Cancel`,modelSingular:`model`,modelPlural:`models`},time:{justNow:`just now`,secondsAgo:`{{count}}s ago`,minutesAgo:`{{count}}m ago`,hoursAgo:`{{count}}h ago`,daysAgo:`{{count}}d ago`},probe:{checking:`Checking connection…`,connected:`Connected`,models:`models`,failed:`Probe failed`,noBaseUrl:`No base URL configured`,unreachable:`Could not connect`,httpStatus:`Status`},toasts:{keySaved:`{{name}} API key saved`,keySaveFailed:`Failed to save {{name}} API key`,referralCopied:`Referral link copied to clipboard`,referralCopyFailed:`Failed to copy referral link`,providerAdded:`Provider "{{id}}" added`,providerAddFailed:`Failed to add provider`,providersLoadedNew:`{{count}} providers loaded ({{diff}} new)`,providersLoadedRemoved:`{{count}} providers loaded ({{diff}} removed)`,providersLoadedNoChanges:`{{count}} providers loaded (no changes)`,providersRefreshFailed:`Failed to refresh providers`}},a={welcome:n,provider:r,screen:i};export{t as n,a as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={title:`Bienvenue sur WrongStack`,subtitle:`Connectez un fournisseur pour démarrer.`,heroTitle:`Par où voulez-vous commencer ?`,heroTitleInProject:`Par où voulez-vous commencer dans {{name}} ?`,heroSubtitle:`L'agent est connecté à votre projet et prêt à lire, modifier, exécuter des commandes, rechercher dans la base de code, suivre les tâches et mémoriser le contexte entre les sessions. Choisissez un prompt de départ ci-dessous, rédigez le vôtre, ou tapez / pour la palette de commandes complète.`,workingDirectory:`Répertoire de travail : {{cwd}}`,noKeyTitle:`Aucune clé API configurée pour le moment`,noKeyBody:`Enregistrez un fournisseur dans les Paramètres avant d'envoyer un message — sinon l'agent n'aura personne à qui parler. Anthropic, OpenAI, Google et tout point de terminaison OpenAI-compatible fonctionnent.`,openSettings:`Ouvrir les Paramètres`,bugHunterTitle:`Lancer Elite Bug Hunter`,bugHunterBody:`Trouve, prouve et corrige un bug réel, le vérifie, puis s'arrête pour validation.`,bugHunterScope:`Périmètre`,bugHunterWholeProject:`Projet entier`,bugHunterDirectoryScope:`{{path}} et ses sous-dossiers`,bugHunterMaxBugs:`Bugs max.`,bugHunterStart:`Démarrer la recherche`,soloSessionTitle:`Session solo`,soloSessionBody:`Bloque Chimera, la délégation et tous les sous-agents en arrière-plan. Verrouillé après le premier message.`,on:`Activé`,off:`Désactivé`,bugHunterError:`Le prompt Elite Bug Hunter n'a pas pu être chargé. Vérifiez la bibliothèque de prompts et réessayez.`,pickBackUp:`Reprendre`,recentPrompts:`Prompts récents`,quickCommands:`Commandes rapides`,startingPrompts:`Prompts de départ`,shufflePrompts:`Mélanger`,shufflePromptsHint:`Afficher un nouveau lot de prompts de départ`,empty:`(vide)`,card:{understand:{title:`Comprendre`,hint:`Explorer et analyser la base de code`},create:{title:`Créer`,hint:`Construire de nouvelles fonctionnalités`},investigate:{title:`Investiguer`,hint:`Déboguer les problèmes et trouver les causes profondes`},improve:{title:`Améliorer`,hint:`Refactorer et optimiser le code existant`}},slashRef:{help:`lister toutes les commandes slash`,diag:`diagnostics d'exécution`,stats:`jetons · cache · coût · durée`,tools:`afficher les outils enregistrés`,memory:`afficher les notes mémorisées`,compact:`réduire le contexte`,clear:`effacer le contexte actuel`,new:`nouvelle session`}},t={heading:`Choisissez un fournisseur`,keyPlaceholder:`Collez votre clé API`,connect:`Connecter`,connected:`Connecté`},n={header:{title:`Bienvenue sur WrongStack`,subtitle:`Ajoutez au moins une clé API pour démarrer`,continue:`Continuer`},steps:{addKeys:`Ajouter des clés API`,pickModel:`Choisir un modèle`,start:`Démarrer`,keys:`Clés`},security:{title:`Vos clés restent sur votre machine`,body:`Les clés API sont chiffrées et stockées localement. Elles ne sont envoyées qu'au point de terminaison API du fournisseur — jamais à nous ni à un tiers.`},errors:{backendUnreachable:`Backend inaccessible`,backendNotResponding:`Le backend ne répond pas. Il a peut-être planté ou la connexion a été interrompue.`,retry:`Réessayer`,modelSwitchTimeout:`Le changement de modèle a expiré. Veuillez réessayer.`,noModels:`Aucun modèle disponible. Vérifiez votre clé API et réessayez.`},providers:{popular:`Fournisseurs populaires`,more:`Plus de fournisseurs`,selfHosted:`Auto-hébergé`,updating:`Mise à jour...`,refresh:`Actualiser`,refreshTitle:`Actualiser la liste des fournisseurs`,modelsAvailable_one:`{{count}} modèle disponible`,modelsAvailable_other:`{{count}} modèles disponibles`,catalogDescription:`{{family}} · {{count}} modèles`},start:{pickAndStart:`Choisir un modèle et démarrer`,addMoreKeys:`← Ajouter d'autres clés`,chooseProvider:`Choisir un fournisseur`,chooseModel:`Choisir un modèle`,modelsFor:`Modèles disponibles pour {{provider}}`,activeKeys_one:`{{count}} clé active`,activeKeys_other:`{{count}} clés actives`,startSession:`Démarrer la session`,saveConfig:`Sauvegarder la configuration`,saveConfigHint:`Fournisseur et modèle enregistrés. Discutez quand vous êtes prêt.`},card:{keySaved:`Clé enregistrée`,referral:`Parrainage`,save:`Enregistrer`,getKey:`Obtenir votre clé API`,copied:`Copié`,copyReferral:`Copier le lien de parrainage`,share:`Partager`,qrAlt:`QR code de parrainage {{name}}`},share:{title:`Partager le parrainage {{name}}`,description:`Partagez ce lien de parrainage avec vos amis et gagnez des récompenses !`,hint:`Scannez le QR code ou copiez le lien pour partager`,twitter:`Partager sur X/Twitter`,linkedin:`Partager sur LinkedIn`,telegram:`Partager sur Telegram`,whatsapp:`Partager sur WhatsApp`,reddit:`Partager sur Reddit`,facebook:`Partager sur Facebook`,email:`Partager par e-mail`},custom:{title:`Fournisseur personnalisé / auto-hébergé`,description:`Ajoutez n'importe quel point de terminaison compatible OpenAI (Ollama, vLLM, Together, etc.)`,localServers:`Serveurs locaux — cliquez pour pré-remplir`,providerId:`ID du fournisseur *`,family:`Famille`,familyOpenAiCompatible:`Compatible OpenAI`,baseUrl:`URL de base (facultatif)`,apiKey:`Clé API (facultatif — certains fournisseurs locaux n'en ont pas besoin)`,apiKeyPlaceholder:`Clé API (si requise)`,add:`Ajouter le fournisseur`,models:`Modèles`,addModel:`Ajouter un modèle`,modelSearchPlaceholder:`Rechercher des modèles dans le catalogue…`,noCatalogMatch:`Aucun modèle correspondant dans le catalogue.`,useCustomId:`Saisir un ID personnalisé`,customModelIdPlaceholder:`ID de modèle personnalisé`,cancel:`Annuler`,modelSingular:`modèle`,modelPlural:`modèles`},time:{justNow:`à l'instant`,secondsAgo:`il y a {{count}} s`,minutesAgo:`il y a {{count}} min`,hoursAgo:`il y a {{count}} h`,daysAgo:`il y a {{count}} j`},probe:{checking:`Vérification de la connexion…`,connected:`Connecté`,models:`modèles`,failed:`Test échoué`,noBaseUrl:`Aucune URL de base configurée`,unreachable:`Connexion impossible`,httpStatus:`Statut`},toasts:{keySaved:`Clé API {{name}} enregistrée`,keySaveFailed:`Échec de l'enregistrement de la clé API {{name}}`,referralCopied:`Lien de parrainage copié dans le presse-papiers`,referralCopyFailed:`Échec de la copie du lien de parrainage`,providerAdded:`Fournisseur « {{id}} » ajouté`,providerAddFailed:`Échec de l'ajout du fournisseur`,providersLoadedNew:`{{count}} fournisseurs chargés ({{diff}} nouveau)`,providersLoadedRemoved:`{{count}} fournisseurs chargés ({{diff}} supprimé)`,providersLoadedNoChanges:`{{count}} fournisseurs chargés (aucun changement)`,providersRefreshFailed:`Échec de l'actualisation des fournisseurs`}},r={welcome:e,provider:t,screen:n};export{r as default,t as provider,n as screen,e as welcome};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={title:`WrongStack'a hoş geldiniz`,subtitle:`Başlamak için bir sağlayıcı bağlayın.`,heroTitle:`Nereden başlamak istersin?`,heroTitleInProject:`{{name}} içinde nereden başlamak istersin?`,heroSubtitle:`Vekil, projenize bağlı ve dosyaları okumaya, düzenlemeye, komut çalıştırmaya, kod tabanında arama yapmaya, yapılacakları takip etmeye ve oturumlar arasında bağlamı hatırlamaya hazır. Aşağıdan bir başlangıç promptu seçin, kendiniz yazın veya tüm komut paleti için / yazın.`,workingDirectory:`Çalışma dizini: {{cwd}}`,noKeyTitle:`Henüz API anahtarı yapılandırılmadı`,noKeyBody:`Mesaj göndermeden önce Ayarlar'dan bir sağlayıcı kaydedin — yoksa vekilin bağlanacağı biri olmaz. Anthropic, OpenAI, Google ve OpenAI uyumlu herhangi bir uç nokta çalışır.`,openSettings:`Ayarları aç`,bugHunterTitle:`Elite Bug Hunter'ı başlat`,bugHunterBody:`Gerçek bir bug bulur, kanıtlar, düzeltir, doğrular ve inceleme için durur.`,bugHunterScope:`Kapsam`,bugHunterWholeProject:`Tüm proje`,bugHunterDirectoryScope:`{{path}} ve altı`,bugHunterMaxBugs:`En çok bug`,bugHunterStart:`Avı başlat`,soloSessionTitle:`Solo session`,soloSessionBody:`Chimera, delegasyon ve tüm arka plan subagent'larını engeller. İlk mesajdan sonra kilitlenir.`,on:`Açık`,off:`Kapalı`,bugHunterError:`Elite Bug Hunter promptu yüklenemedi. Prompt library'yi kontrol edip tekrar deneyin.`,pickBackUp:`Kaldığın yerden devam et`,recentPrompts:`Son promptlar`,quickCommands:`Hızlı komutlar`,startingPrompts:`Başlangıç promptları`,shufflePrompts:`Karıştır`,shufflePromptsHint:`Yeni bir başlangıç promptları seti göster`,empty:`(boş)`,card:{understand:{title:`Anla`,hint:`Kod tabanını keşfet ve analiz et`},create:{title:`Oluştur`,hint:`Yeni özellikler ve işlevler oluştur`},investigate:{title:`Araştır`,hint:`Sorunları ayıkla ve kök nedenleri bul`},improve:{title:`Geliştir`,hint:`Mevcut kodu yeniden düzenle ve iyileştir`}},slashRef:{help:`tüm slash komutlarını listele`,diag:`çalışma zamanı tanılamaları`,stats:`token · önbellek · maliyet · geçen süre`,tools:`kayıtlı araçları göster`,memory:`hatırlanan notları göster`,compact:`bağlamı daralt`,clear:`mevcut bağlamı sil`,new:`temiz oturum`}},t={heading:`Bir sağlayıcı seçin`,keyPlaceholder:`API anahtarınızı yapıştırın`,connect:`Bağlan`,connected:`Bağlandı`},n={header:{title:`WrongStack'a hoş geldiniz`,subtitle:`Başlamak için en az bir API anahtarı ekleyin`,continue:`Devam et`},steps:{addKeys:`API Anahtarları Ekle`,pickModel:`Model Seç`,start:`Başla`,keys:`Anahtarlar`},security:{title:`Anahtarlarınız makinenizde kalır`,body:`API anahtarları şifrelenir ve yerel olarak saklanır. Yalnızca sağlayıcının API uç noktasına gönderilir — bize veya üçüncü taraflara asla.`},errors:{backendUnreachable:`Arka uca ulaşılamıyor`,backendNotResponding:`Arka uç yanıt vermiyor. Çökmüş veya bağlantı kopmuş olabilir.`,retry:`Yeniden dene`,modelSwitchTimeout:`Model geçişi zaman aşamına uğradı. Lütfen tekrar deneyin.`,noModels:`Kullanılabilir model yok. API anahtarınızı kontrol edip tekrar deneyin.`},providers:{popular:`Popüler Sağlayıcılar`,more:`Diğer Sağlayıcılar`,selfHosted:`Kendi sunucunuzda`,updating:`Güncelleniyor...`,refresh:`Yenile`,refreshTitle:`Sağlayıcı listesini yenile`,modelsAvailable_one:`{{count}} model kullanılabilir`,modelsAvailable_other:`{{count}} model kullanılabilir`,catalogDescription:`{{family}} · {{count}} model`},start:{pickAndStart:`Bir model seç ve başla`,addMoreKeys:`← Daha fazla anahtar ekle`,chooseProvider:`Bir Sağlayıcı Seç`,chooseModel:`Bir Model Seç`,modelsFor:`{{provider}} için kullanılabilir modeller`,activeKeys_one:`{{count}} etkin anahtar`,activeKeys_other:`{{count}} etkin anahtar`,startSession:`Oturumu Başlat`,saveConfig:`Yapılandırmayı Kaydet`,saveConfigHint:`Sağlayıcı ve model kaydedildi. Hazır olduğunuzda sohbete başlayın.`},card:{keySaved:`Anahtar kaydedildi`,referral:`Davet`,save:`Kaydet`,getKey:`API anahtarınızı alın`,copied:`Kopyalandı`,copyReferral:`Davet bağlantısını kopyala`,share:`Paylaş`,qrAlt:`{{name}} davet QR kodu`},share:{title:`{{name}} davetini paylaş`,description:`Bu davet bağlantısını arkadaşlarınızla paylaşın ve ödüller kazanın!`,hint:`Paylaşmak için QR kodunu tarayın veya bağlantıyı kopyalayın`,twitter:`X/Twitter'da paylaş`,linkedin:`LinkedIn'de paylaş`,telegram:`Telegram'da paylaş`,whatsapp:`WhatsApp'ta paylaş`,reddit:`Reddit'te paylaş`,facebook:`Facebook'ta paylaş`,email:`E-posta ile paylaş`},custom:{title:`Özel / Kendi Sunucunuzda Sağlayıcı`,description:`Herhangi bir OpenAI uyumlu uç nokta ekleyin (Ollama, vLLM, Together vb.)`,localServers:`Yerel sunucular — doldurmak için tıklayın`,providerId:`Sağlayıcı kimliği *`,family:`Aile`,familyOpenAiCompatible:`OpenAI Uyumlu`,baseUrl:`Temel URL (isteğe bağlı)`,apiKey:`API Anahtarı (isteğe bağlı — bazı yerel sağlayıcılar bunu gerektirmez)`,apiKeyPlaceholder:`API anahtarı (gerekliyse)`,add:`Sağlayıcı Ekle`,models:`Modeller`,addModel:`Model ekle`,modelSearchPlaceholder:`Katalog modellerinde ara…`,noCatalogMatch:`Katalogda eşleşen model yok.`,useCustomId:`Özel kimlik gir`,customModelIdPlaceholder:`Özel model kimliği`,cancel:`İptal`,modelSingular:`model`,modelPlural:`modeller`},time:{justNow:`az önce`,secondsAgo:`{{count}} sn önce`,minutesAgo:`{{count}} dk önce`,hoursAgo:`{{count}} sa önce`,daysAgo:`{{count}} gün önce`},probe:{checking:`Bağlantı kontrol ediliyor…`,connected:`Bağlandı`,models:`model`,failed:`Test başarısız`,noBaseUrl:`Temel URL yapılandırılmamış`,unreachable:`Bağlanılamadı`,httpStatus:`Durum`},toasts:{keySaved:`{{name}} API anahtarı kaydedildi`,keySaveFailed:`{{name}} API anahtarı kaydedilemedi`,referralCopied:`Davet bağlantısı panoya kopyalandı`,referralCopyFailed:`Davet bağlantısı kopyalanamadı`,providerAdded:`"{{id}}" sağlayıcısı eklendi`,providerAddFailed:`Sağlayıcı eklenemedi`,providersLoadedNew:`{{count}} sağlayıcı yüklendi ({{diff}} yeni)`,providersLoadedRemoved:`{{count}} sağlayıcı yüklendi ({{diff}} kaldırıldı)`,providersLoadedNoChanges:`{{count}} sağlayıcı yüklendi (değişiklik yok)`,providersRefreshFailed:`Sağlayıcılar yenilenemedi`}},r={welcome:e,provider:t,screen:n};export{r as default,t as provider,n as screen,e as welcome};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={title:`Te damos la bienvenida a WrongStack`,subtitle:`Conecta un proveedor para empezar.`,heroTitle:`¿Por dónde quieres empezar?`,heroTitleInProject:`¿Por dónde quieres empezar en {{name}}?`,heroSubtitle:`El agente está conectado a tu proyecto y listo para leer, editar, ejecutar comandos, buscar en el código, hacer seguimiento de tareas y recordar el contexto entre sesiones. Elige un prompt de inicio a continuación, escribe el tuyo propio, o escribe / para ver la paleta de comandos completa.`,workingDirectory:`Directorio de trabajo: {{cwd}}`,noKeyTitle:`Aún no se ha configurado ninguna clave de API`,noKeyBody:`Registra un proveedor en Ajustes antes de enviar un mensaje; de lo contrario, el agente no tendrá con quién comunicarse. Anthropic, OpenAI, Google y cualquier endpoint compatible con OpenAI funcionan.`,openSettings:`Abrir Ajustes`,bugHunterTitle:`Iniciar Elite Bug Hunter`,bugHunterBody:`Encuentra, demuestra y corrige un error real, lo verifica y se detiene para revisión.`,bugHunterScope:`Ámbito`,bugHunterWholeProject:`Todo el proyecto`,bugHunterDirectoryScope:`{{path}} y debajo`,bugHunterMaxBugs:`Máx. errores`,bugHunterStart:`Iniciar búsqueda`,soloSessionTitle:`Sesión individual`,soloSessionBody:`Bloquea Chimera, la delegación y todos los subagentes en segundo plano. Se bloquea tras el primer mensaje.`,on:`Activado`,off:`Desactivado`,bugHunterError:`No se pudo cargar el prompt de Elite Bug Hunter. Revisa la biblioteca de prompts e inténtalo de nuevo.`,pickBackUp:`Retomar`,recentPrompts:`Prompts recientes`,quickCommands:`Comandos rápidos`,startingPrompts:`Prompts iniciales`,shufflePrompts:`Mezclar`,shufflePromptsHint:`Mostrar un nuevo conjunto de prompts iniciales`,empty:`(vacío)`,card:{understand:{title:`Comprender`,hint:`Explora y analiza el código`},create:{title:`Crear`,hint:`Crea nuevas funciones y características`},investigate:{title:`Investigar`,hint:`Depura problemas y encuentra causas raíz`},improve:{title:`Mejorar`,hint:`Refactoriza y optimiza el código existente`}},slashRef:{help:`listar todos los comandos slash`,diag:`diagnóstico en tiempo de ejecución`,stats:`tokens · caché · costo · transcurrido`,tools:`mostrar herramientas registradas`,memory:`mostrar notas guardadas`,compact:`reducir contexto`,clear:`borrar el contexto actual`,new:`sesión nueva`}},t={heading:`Elige un proveedor`,keyPlaceholder:`Pega tu clave de API`,connect:`Conectar`,connected:`Conectado`},n={header:{title:`Te damos la bienvenida a WrongStack`,subtitle:`Añade al menos una clave de API para empezar`,continue:`Continuar`},steps:{addKeys:`Añadir claves de API`,pickModel:`Elegir un modelo`,start:`Empezar`,keys:`Claves`},security:{title:`Tus claves se quedan en tu equipo`,body:`Las claves de API se cifran y se guardan localmente. Solo se envían al endpoint de API del proveedor — nunca a nosotros ni a terceros.`},errors:{backendUnreachable:`No se puede acceder al backend`,backendNotResponding:`El backend no responde. Puede que se haya bloqueado o que se haya interrumpido la conexión.`,retry:`Reintentar`,modelSwitchTimeout:`El cambio de modelo superó el tiempo de espera. Inténtalo de nuevo.`,noModels:`No hay modelos disponibles. Comprueba tu clave de API e inténtalo de nuevo.`},providers:{popular:`Proveedores populares`,more:`Más proveedores`,selfHosted:`Autoalojado`,updating:`Actualizando...`,refresh:`Actualizar`,refreshTitle:`Actualizar la lista de proveedores`,modelsAvailable_one:`{{count}} modelo disponible`,modelsAvailable_other:`{{count}} modelos disponibles`,catalogDescription:`{{family}} · {{count}} modelos`},start:{pickAndStart:`Elige un modelo y empieza`,addMoreKeys:`← Añadir más claves`,chooseProvider:`Elige un proveedor`,chooseModel:`Elige un modelo`,modelsFor:`Modelos disponibles para {{provider}}`,activeKeys_one:`{{count}} clave activa`,activeKeys_other:`{{count}} claves activas`,startSession:`Iniciar sesión`,saveConfig:`Guardar configuración`,saveConfigHint:`Proveedor y modelo guardados. Chatea cuando estés listo.`},card:{keySaved:`Clave guardada`,referral:`Referido`,save:`Guardar`,getKey:`Obtén tu clave de API`,copied:`Copiado`,copyReferral:`Copiar enlace de referido`,share:`Compartir`,qrAlt:`Código QR de referido de {{name}}`},share:{title:`Compartir referido de {{name}}`,description:`¡Comparte este enlace de referido con tus amigos y gana recompensas!`,hint:`Escanea el código QR o copia el enlace para compartir`,twitter:`Compartir en X/Twitter`,linkedin:`Compartir en LinkedIn`,telegram:`Compartir en Telegram`,whatsapp:`Compartir en WhatsApp`,reddit:`Compartir en Reddit`,facebook:`Compartir en Facebook`,email:`Compartir por correo`},custom:{title:`Proveedor personalizado / autoalojado`,description:`Añade cualquier endpoint compatible con OpenAI (Ollama, vLLM, Together, etc.)`,localServers:`Servidores locales — haz clic para autocompletar`,providerId:`ID del proveedor *`,family:`Familia`,familyOpenAiCompatible:`Compatible con OpenAI`,baseUrl:`URL base (opcional)`,apiKey:`Clave de API (opcional — algunos proveedores locales no la necesitan)`,apiKeyPlaceholder:`Clave de API (si se requiere)`,add:`Añadir proveedor`,models:`Modelos`,addModel:`Añadir modelo`,modelSearchPlaceholder:`Buscar modelos del catálogo…`,noCatalogMatch:`No hay coincidencias en el catálogo.`,useCustomId:`Introducir ID personalizado`,customModelIdPlaceholder:`ID de modelo personalizado`,cancel:`Cancelar`,modelSingular:`modelo`,modelPlural:`modelos`},time:{justNow:`justo ahora`,secondsAgo:`hace {{count}} s`,minutesAgo:`hace {{count}} min`,hoursAgo:`hace {{count}} h`,daysAgo:`hace {{count}} d`},probe:{checking:`Comprobando conexión…`,connected:`Conectado`,models:`modelos`,failed:`Prueba fallida`,noBaseUrl:`Sin URL base configurada`,unreachable:`No se pudo conectar`,httpStatus:`Estado`},toasts:{keySaved:`Clave de API de {{name}} guardada`,keySaveFailed:`Error al guardar la clave de API de {{name}}`,referralCopied:`Enlace de referido copiado al portapapeles`,referralCopyFailed:`Error al copiar el enlace de referido`,providerAdded:`Proveedor «{{id}}» añadido`,providerAddFailed:`Error al añadir el proveedor`,providersLoadedNew:`{{count}} proveedores cargados ({{diff}} nuevo)`,providersLoadedRemoved:`{{count}} proveedores cargados ({{diff}} eliminado)`,providersLoadedNoChanges:`{{count}} proveedores cargados (sin cambios)`,providersRefreshFailed:`Error al actualizar los proveedores`}},r={welcome:e,provider:t,screen:n};export{r as default,t as provider,n as screen,e as welcome};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={title:`Benvenuto in WrongStack`,subtitle:`Collega un provider per iniziare.`,heroTitle:`Da dove vuoi iniziare?`,heroTitleInProject:`Da dove vuoi iniziare in {{name}}?`,heroSubtitle:`L'agente è connesso al tuo progetto e pronto a leggere, modificare, eseguire comandi, cercare nel codebase, tenere traccia dei todo e ricordare il contesto tra le sessioni. Scegli un prompt di partenza qui sotto, scrivi il tuo, oppure digita / per la palette dei comandi completa.`,workingDirectory:`Directory di lavoro: {{cwd}}`,noKeyTitle:`Nessuna chiave API configurata`,noKeyBody:`Registra un provider in Impostazioni prima di inviare un messaggio — altrimenti l'agente non ha nessuno con cui parlare. Anthropic, OpenAI, Google e qualsiasi endpoint compatibile con OpenAI funzionano tutti.`,openSettings:`Apri Impostazioni`,bugHunterTitle:`Avvia Elite Bug Hunter`,bugHunterBody:`Trova, dimostra e corregge un bug reale, lo verifica e poi si ferma per la revisione.`,bugHunterScope:`Ambito`,bugHunterWholeProject:`Intero progetto`,bugHunterDirectoryScope:`{{path}} e sottocartelle`,bugHunterMaxBugs:`Bug max`,bugHunterStart:`Avvia ricerca`,soloSessionTitle:`Sessione singola`,soloSessionBody:`Blocca Chimera, la delega e tutti i subagenti in background. Si blocca dopo il primo messaggio.`,on:`Attivo`,off:`Disattivo`,bugHunterError:`Impossibile caricare il prompt Elite Bug Hunter. Controlla la libreria dei prompt e riprova.`,pickBackUp:`Riprendi`,recentPrompts:`Prompt recenti`,quickCommands:`Comandi rapidi`,startingPrompts:`Prompt iniziali`,shufflePrompts:`Mescola`,shufflePromptsHint:`Mostra un nuovo set di prompt iniziali`,empty:`(vuoto)`,card:{understand:{title:`Capire`,hint:`Esplora e analizza il codebase`},create:{title:`Creare`,hint:`Crea nuove funzionalità`},investigate:{title:`Indagare`,hint:`Esegui il debug dei problemi e trova le cause principali`},improve:{title:`Migliorare`,hint:`Effettua il refactoring e ottimizza il codice esistente`}},slashRef:{help:`elenca ogni comando slash`,diag:`diagnostica di runtime`,stats:`token · cache · costo · tempo trascorso`,tools:`mostra gli strumenti registrati`,memory:`mostra le note memorizzate`,compact:`riduci il contesto`,clear:`cancella il contesto corrente`,new:`nuova sessione`}},t={heading:`Scegli un provider`,keyPlaceholder:`Incolla la tua chiave API`,connect:`Connetti`,connected:`Connesso`},n={header:{title:`Benvenuto in WrongStack`,subtitle:`Aggiungi almeno una chiave API per iniziare`,continue:`Continua`},steps:{addKeys:`Aggiungi chiavi API`,pickModel:`Scegli un modello`,start:`Avvia`,keys:`Chiavi`},security:{title:`Le tue chiavi restano sul tuo dispositivo`,body:`Le chiavi API sono crittografate e salvate localmente. Vengono inviate solo all'endpoint API del provider — mai a noi o a terzi.`},errors:{backendUnreachable:`Backend non raggiungibile`,backendNotResponding:`Il backend non risponde. Potrebbe essersi bloccato o la connessione potrebbe essere caduta.`,retry:`Riprova`,modelSwitchTimeout:`Timeout del cambio modello. Riprova.`,noModels:`Nessun modello disponibile. Controlla la tua chiave API e riprova.`},providers:{popular:`Provider popolari`,more:`Altri provider`,selfHosted:`Self-hosted`,updating:`Aggiornamento...`,refresh:`Aggiorna`,refreshTitle:`Aggiorna l'elenco dei provider`,modelsAvailable_one:`{{count}} modello disponibile`,modelsAvailable_other:`{{count}} modelli disponibili`,catalogDescription:`{{family}} · {{count}} modelli`},start:{pickAndStart:`Scegli un modello e avvia`,addMoreKeys:`← Aggiungi altre chiavi`,chooseProvider:`Scegli un provider`,chooseModel:`Scegli un modello`,modelsFor:`Modelli disponibili per {{provider}}`,activeKeys_one:`{{count}} chiave attiva`,activeKeys_other:`{{count}} chiavi attive`,startSession:`Avvia sessione`,saveConfig:`Salva configurazione`,saveConfigHint:`Fornitore e modello salvati. Chatta quando sei pronto.`},card:{keySaved:`Chiave salvata`,referral:`Invito`,save:`Salva`,getKey:`Ottieni la tua chiave API`,copied:`Copiato`,copyReferral:`Copia link di invito`,share:`Condividi`,qrAlt:`Codice QR di invito {{name}}`},share:{title:`Condividi invito {{name}}`,description:`Condividi questo link di invito con gli amici e ottieni ricompense!`,hint:`Scansiona il codice QR o copia il link per condividere`,twitter:`Condividi su X/Twitter`,linkedin:`Condividi su LinkedIn`,telegram:`Condividi su Telegram`,whatsapp:`Condividi su WhatsApp`,reddit:`Condividi su Reddit`,facebook:`Condividi su Facebook`,email:`Condividi via email`},custom:{title:`Provider personalizzato / self-hosted`,description:`Aggiungi qualsiasi endpoint compatibile con OpenAI (Ollama, vLLM, Together, ecc.)`,localServers:`Server locali — clicca per precompilare`,providerId:`ID provider *`,family:`Famiglia`,familyOpenAiCompatible:`Compatibile con OpenAI`,baseUrl:`URL di base (facoltativo)`,apiKey:`Chiave API (facoltativa — alcuni provider locali non la richiedono)`,apiKeyPlaceholder:`Chiave API (se richiesta)`,add:`Aggiungi provider`,models:`Modelli`,addModel:`Aggiungi modello`,modelSearchPlaceholder:`Cerca modelli nel catalogo…`,noCatalogMatch:`Nessuna corrispondenza nel catalogo.`,useCustomId:`Inserisci ID personalizzato`,customModelIdPlaceholder:`ID modello personalizzato`,cancel:`Annulla`,modelSingular:`modello`,modelPlural:`modelli`},time:{justNow:`adesso`,secondsAgo:`{{count}} sec fa`,minutesAgo:`{{count}} min fa`,hoursAgo:`{{count}} h fa`,daysAgo:`{{count}} g fa`},probe:{checking:`Controllo connessione…`,connected:`Connesso`,models:`modelli`,failed:`Test fallito`,noBaseUrl:`Nessun URL di base configurato`,unreachable:`Impossibile connettersi`,httpStatus:`Stato`},toasts:{keySaved:`Chiave API {{name}} salvata`,keySaveFailed:`Salvataggio della chiave API {{name}} non riuscito`,referralCopied:`Link di invito copiato negli appunti`,referralCopyFailed:`Copia del link di invito non riuscita`,providerAdded:`Provider "{{id}}" aggiunto`,providerAddFailed:`Aggiunta del provider non riuscita`,providersLoadedNew:`{{count}} provider caricati ({{diff}} nuovo)`,providersLoadedRemoved:`{{count}} provider caricati ({{diff}} rimosso)`,providersLoadedNoChanges:`{{count}} provider caricati (nessuna modifica)`,providersRefreshFailed:`Aggiornamento dei provider non riuscito`}},r={welcome:e,provider:t,screen:n};export{r as default,t as provider,n as screen,e as welcome};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={title:`Bem-vindo ao WrongStack`,subtitle:`Conecte um provedor para começar.`,heroTitle:`Por onde você quer começar?`,heroTitleInProject:`Por onde você quer começar em {{name}}?`,heroSubtitle:`O agente está conectado ao seu projeto e pronto para ler, editar, executar comandos, buscar na base de código, acompanhar tarefas e lembrar o contexto entre sessões. Escolha um prompt inicial abaixo, escreva o seu, ou digite / para a paleta de comandos completa.`,workingDirectory:`Diretório de trabalho: {{cwd}}`,noKeyTitle:`Nenhuma chave de API configurada ainda`,noKeyBody:`Registre um provedor em Configurações antes de enviar uma mensagem — caso contrário, o agente não terá com quem conversar. Anthropic, OpenAI, Google e qualquer endpoint compatível com OpenAI funcionam.`,openSettings:`Abrir Configurações`,bugHunterTitle:`Iniciar Elite Bug Hunter`,bugHunterBody:`Encontra, comprova e corrige um bug real, verifica a correção e para para revisão.`,bugHunterScope:`Escopo`,bugHunterWholeProject:`Projeto inteiro`,bugHunterDirectoryScope:`{{path}} e abaixo`,bugHunterMaxBugs:`Máx. bugs`,bugHunterStart:`Iniciar busca`,soloSessionTitle:`Sessão solo`,soloSessionBody:`Bloqueia Chimera, delegação e todos os subagentes em segundo plano. Bloqueia após a primeira mensagem.`,on:`Ligado`,off:`Desligado`,bugHunterError:`Não foi possível carregar o prompt Elite Bug Hunter. Verifique a biblioteca de prompts e tente novamente.`,pickBackUp:`Retomar de onde parou`,recentPrompts:`Prompts recentes`,quickCommands:`Comandos rápidos`,startingPrompts:`Prompts iniciais`,shufflePrompts:`Embaralhar`,shufflePromptsHint:`Mostrar um novo conjunto de prompts iniciais`,empty:`(vazio)`,card:{understand:{title:`Entender`,hint:`Explorar e analisar a base de código`},create:{title:`Criar`,hint:`Construir novos recursos e funcionalidades`},investigate:{title:`Investigar`,hint:`Depurar problemas e encontrar causas raiz`},improve:{title:`Melhorar`,hint:`Refatorar e otimizar o código existente`}},slashRef:{help:`listar todos os comandos slash`,diag:`diagnósticos de tempo de execução`,stats:`tokens · cache · custo · decorrido`,tools:`mostrar ferramentas registradas`,memory:`mostrar notas memorizadas`,compact:`reduzir o contexto`,clear:`limpar o contexto atual`,new:`nova sessão`}},t={heading:`Escolha um provedor`,keyPlaceholder:`Cole sua chave de API`,connect:`Conectar`,connected:`Conectado`},n={header:{title:`Bem-vindo ao WrongStack`,subtitle:`Adicione pelo menos uma chave de API para começar`,continue:`Continuar`},steps:{addKeys:`Adicionar chaves de API`,pickModel:`Escolher um modelo`,start:`Iniciar`,keys:`Chaves`},security:{title:`Suas chaves ficam na sua máquina`,body:`As chaves de API são criptografadas e armazenadas localmente. Elas são enviadas apenas ao endpoint de API do provedor — nunca para nós ou terceiros.`},errors:{backendUnreachable:`Não foi possível acessar o backend`,backendNotResponding:`O backend não está respondendo. Ele pode ter travado ou a conexão foi interrompida.`,retry:`Tentar novamente`,modelSwitchTimeout:`A troca de modelo atingiu o tempo limite. Tente novamente.`,noModels:`Nenhum modelo disponível. Verifique sua chave de API e tente novamente.`},providers:{popular:`Provedores populares`,more:`Mais provedores`,selfHosted:`Auto-hospedado`,updating:`Atualizando...`,refresh:`Atualizar`,refreshTitle:`Atualizar lista de provedores`,modelsAvailable_one:`{{count}} modelo disponível`,modelsAvailable_other:`{{count}} modelos disponíveis`,catalogDescription:`{{family}} · {{count}} modelos`},start:{pickAndStart:`Escolha um modelo e inicie`,addMoreKeys:`← Adicionar mais chaves`,chooseProvider:`Escolha um provedor`,chooseModel:`Escolha um modelo`,modelsFor:`Modelos disponíveis para {{provider}}`,activeKeys_one:`{{count}} chave ativa`,activeKeys_other:`{{count}} chaves ativas`,startSession:`Iniciar sessão`,saveConfig:`Salvar configuração`,saveConfigHint:`Provedor e modelo salvos. Converse quando estiver pronto.`},card:{keySaved:`Chave salva`,referral:`Indicação`,save:`Salvar`,getKey:`Obtenha sua chave de API`,copied:`Copiado`,copyReferral:`Copiar link de indicação`,share:`Compartilhar`,qrAlt:`QR code de indicação do {{name}}`},share:{title:`Compartilhar indicação do {{name}}`,description:`Compartilhe este link de indicação com amigos e ganhe recompensas!`,hint:`Escaneie o QR code ou copie o link para compartilhar`,twitter:`Compartilhar no X/Twitter`,linkedin:`Compartilhar no LinkedIn`,telegram:`Compartilhar no Telegram`,whatsapp:`Compartilhar no WhatsApp`,reddit:`Compartilhar no Reddit`,facebook:`Compartilhar no Facebook`,email:`Compartilhar por e-mail`},custom:{title:`Provedor personalizado / auto-hospedado`,description:`Adicione qualquer endpoint compatível com OpenAI (Ollama, vLLM, Together, etc.)`,localServers:`Servidores locais — clique para preencher`,providerId:`ID do provedor *`,family:`Família`,familyOpenAiCompatible:`Compatível com OpenAI`,baseUrl:`URL base (opcional)`,apiKey:`Chave de API (opcional — alguns provedores locais não precisam)`,apiKeyPlaceholder:`Chave de API (se necessária)`,add:`Adicionar provedor`,models:`Modelos`,addModel:`Adicionar modelo`,modelSearchPlaceholder:`Pesquisar modelos no catálogo…`,noCatalogMatch:`Nenhum modelo correspondente no catálogo.`,useCustomId:`Inserir ID personalizado`,customModelIdPlaceholder:`ID de modelo personalizado`,cancel:`Cancelar`,modelSingular:`modelo`,modelPlural:`modelos`},time:{justNow:`agora mesmo`,secondsAgo:`há {{count}} s`,minutesAgo:`há {{count}} min`,hoursAgo:`há {{count}} h`,daysAgo:`há {{count}} d`},probe:{checking:`Verificando conexão…`,connected:`Conectado`,models:`modelos`,failed:`Teste falhou`,noBaseUrl:`Nenhuma URL base configurada`,unreachable:`Não foi possível conectar`,httpStatus:`Status`},toasts:{keySaved:`Chave de API do {{name}} salva`,keySaveFailed:`Falha ao salvar a chave de API do {{name}}`,referralCopied:`Link de indicação copiado para a área de transferência`,referralCopyFailed:`Falha ao copiar o link de indicação`,providerAdded:`Provedor "{{id}}" adicionado`,providerAddFailed:`Falha ao adicionar o provedor`,providersLoadedNew:`{{count}} provedores carregados ({{diff}} novo)`,providersLoadedRemoved:`{{count}} provedores carregados ({{diff}} removido)`,providersLoadedNoChanges:`{{count}} provedores carregados (sem alterações)`,providersRefreshFailed:`Falha ao atualizar os provedores`}},r={welcome:e,provider:t,screen:n};export{r as default,t as provider,n as screen,e as welcome};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Qa as e,Za as t}from"./vendor-enc0q-Va.js";var n=2048,r=2097152,i=new Set([`image/png`,`image/jpeg`,`image/webp`,`image/gif`]),a=class extends Error{reason;constructor(e,t){super(e),this.reason=t,this.name=`ImageAttachmentError`}};function o(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=()=>n(r.error),r.readAsDataURL(e)})}function s(e){let t=e.indexOf(`,`),n=t>=0?e.length-t-1:e.length;return Math.floor(n*3/4)}function c(e){return/^data:([^;,]+)/.exec(e)?.[1]??`image/png`}async function l(e){try{return await createImageBitmap(e)}catch{let t=URL.createObjectURL(e);try{return await new Promise((e,n)=>{let r=new Image;r.onload=()=>e(r),r.onerror=()=>n(Error(`image decode failed`)),r.src=t})}finally{URL.revokeObjectURL(t)}}}function u(e,t,n,r,i){let o=document.createElement(`canvas`);o.width=t,o.height=n;let s=o.getContext(`2d`);if(!s)throw new a(`canvas 2d context unavailable`,`decode_failed`);s.drawImage(e,0,0,t,n);let c=o.toDataURL(`image/webp`,i);return c.startsWith(`data:image/webp`)?c:r?o.toDataURL(`image/png`):o.toDataURL(`image/jpeg`,i)}var d=0;function f(){return d+=1,`img_${Date.now()}_${d}`}async function p(e){let t=i.has(e.type),d;try{d=await l(e)}catch{throw new a(`Could not decode image "${e.name}"`,`decode_failed`)}let p=d.width,m=d.height,h=Math.max(p,m);if(!(!t||h>n||e.size>r)){let t=await o(e);return{id:f(),dataUrl:t,mediaType:e.type,bytes:s(t),name:e.name||void 0,width:p,height:m}}let g=e.type!==`image/jpeg`,_=Math.min(1,n/h),v=.85,y=u(d,Math.max(1,Math.round(p*_)),Math.max(1,Math.round(m*_)),g,v);s(y)>4194304&&(_=Math.min(_,1280/h),v=.7,y=u(d,Math.max(1,Math.round(p*_)),Math.max(1,Math.round(m*_)),g,v)),`close`in d&&d.close();let b=s(y);if(b>4194304)throw new a(`Image "${e.name}" is too large after compression`,`too_large`);return{id:f(),dataUrl:y,mediaType:c(y),bytes:b,name:e.name||void 0,width:Math.max(1,Math.round(p*_)),height:Math.max(1,Math.round(m*_))}}function m(e){return e.map(e=>{let t=e.dataUrl.indexOf(`,`);return{data:t>=0?e.dataUrl.slice(t+1):e.dataUrl,mediaType:e.mediaType,...e.name?{name:e.name}:{}}})}var h=[`chat`,`agents`,`files`,`changes`,`mailbox`,`skills`,`design`];function g(e){return h.includes(e)?e:e===`context`||e===`history`||e===`sessions`||e===`projects`?`chat`:e===`worktrees`?`changes`:`chat`}var _=`chat.settings.memory.roster.context.goal.kanban.sddhub.files.changes.sessions.session-inspect.setup.skill.mailbox.debug.design-gallery.refresh-debug.analytics.codemap.techstack.chronicle.intake.deadcode.prompts.chimera`.split(`.`);function v(e){return _.includes(e)?e:`chat`}var y=[`goal`,`goal-state`,`fleet`,`work`,`worktrees`,`collab`];function b(e){return e==null||!y.includes(e)?null:e}var x=[`general`,`provider`,`connection`,`agent`,`execution`,`fallbacks`,`routing`,`fleet`,`integrations`,`chimera`,`context`,`logs`,`security`,`display`];function S(e){return x.includes(e)?e:`general`}function C(){if(typeof window>`u`)return!1;if(window.wrongstackDesktopHost)return!0;try{return new URLSearchParams(window.location.search).get(`shell`)===`desktop`}catch{return!1}}function w(e={}){return{currentView:`chat`,activeActivity:`chat`,sidebarOpen:e.sidebarOpen??!1,dockSection:null,chromeSessionId:null,chromeBySession:{},dockCustomizeOpen:!1,fleetMonitorOpen:!1,agentsMonitorOpen:!1,processMonitorOpen:!1,queuePanelOpen:!1,cronJobsOpen:!1,sideContextBreakdownOpen:!1,inspectorOpen:!1,inspectorTab:`fleet`,inspectorTarget:null,inspectorFocusedAgentId:null,subagentChatFocusId:null,subagentChatFocusSessionId:null,subagentChatFocusBySession:{},terminalOpen:!1,paletteOpen:!1,shortcutsOpen:!1,searchOpen:!1,searchQuery:``,searchActiveMessageId:null,modelSwitcherOpen:!1,promptLibraryOpen:!1,selectedMailMessage:null,refinePanel:null,skillsState:T(),chatSwitcherOpen:!1,chatCheckpointOpen:!1,chatMemoryPanelOpen:!1,chatContextBreakdownOpen:!1,chatContextEditorOpen:!1,chatToolStatsOpen:!1,chatInputCollapsed:!1}}function T(){return{selectedSkill:null,navHistory:[],historyIndex:-1,detailOpen:!1,knownRefs:{},updateAvailableCount:0}}function E(){return{sidebarOpen:!0,activeActivity:`chat`,currentView:`chat`,inspectSessionId:null,searchOpen:!1,searchQuery:``,searchActiveMessageId:null,scrollTarget:null,modelSwitcherOpen:!1,promptLibraryOpen:!1,promptInsertRequest:null,refinePanel:null,draftInput:``,draftImages:[],processMonitorOpen:!1,queuePanelOpen:!1,cronJobsOpen:!1,sideContextBreakdownOpen:!1,terminalOpen:!1,dockSection:null,workDashboardTab:`todos`,inspectorOpen:!1,inspectorTab:`fleet`,inspectorTarget:null,inspectorFocusedAgentId:null,agentRosterActiveTab:`live`,changesPanelTab:`changes`,dockCustomizeOpen:!1,skillsState:T(),selectedMailMessage:null,scrollPositions:{},chatSwitcherOpen:!1,chatCheckpointOpen:!1,chatMemoryPanelOpen:!1,chatContextBreakdownOpen:!1,chatContextEditorOpen:!1,chatToolStatsOpen:!1,chatInputCollapsed:!1}}function D(e){return{sidebarOpen:e.sidebarOpen,activeActivity:e.activeActivity,currentView:e.currentView,inspectSessionId:e.inspectSessionId,searchOpen:e.searchOpen,searchQuery:e.searchQuery,searchActiveMessageId:e.searchActiveMessageId,scrollTarget:e.scrollTarget,modelSwitcherOpen:e.modelSwitcherOpen,promptLibraryOpen:e.promptLibraryOpen,promptInsertRequest:e.promptInsertRequest,refinePanel:e.refinePanel,draftInput:e.draftInput,draftImages:e.draftImages,processMonitorOpen:e.processMonitorOpen,queuePanelOpen:e.queuePanelOpen,cronJobsOpen:e.cronJobsOpen,sideContextBreakdownOpen:e.sideContextBreakdownOpen,terminalOpen:e.terminalOpen,dockSection:e.dockSection,workDashboardTab:e.workDashboardTab,inspectorOpen:e.inspectorOpen,inspectorTab:e.inspectorTab,inspectorTarget:e.inspectorTarget,inspectorFocusedAgentId:e.inspectorFocusedAgentId,agentRosterActiveTab:e.agentRosterActiveTab,changesPanelTab:e.changesPanelTab,dockCustomizeOpen:e.dockCustomizeOpen,skillsState:e.skillsState,selectedMailMessage:e.selectedMailMessage,scrollPositions:e.scrollPositions,chatSwitcherOpen:e.chatSwitcherOpen,chatCheckpointOpen:e.chatCheckpointOpen,chatMemoryPanelOpen:e.chatMemoryPanelOpen,chatContextBreakdownOpen:e.chatContextBreakdownOpen,chatContextEditorOpen:e.chatContextEditorOpen,chatToolStatsOpen:e.chatToolStatsOpen,chatInputCollapsed:e.chatInputCollapsed}}function O(e,t){return e.chromeSessionId?{chromeBySession:{...e.chromeBySession,[e.chromeSessionId]:{...D(e),...t}}}:{}}var k=e()(t(e=>({sidebarOpen:!0,activeActivity:`chat`,settingsOpen:!1,currentView:`chat`,showConfirmDialog:!1,confirmInfo:null,paletteOpen:!1,shortcutsOpen:!1,searchOpen:!1,searchQuery:``,searchActiveMessageId:null,scrollTarget:null,promptHistory:[],sidebarWidth:304,pinnedIds:[],compactMode:!1,modelSwitcherOpen:!1,favoriteSessionIds:[],sessionNicknames:{},fileExplorerWidth:220,refineEnabled:!0,refinePanel:null,promptLibraryOpen:!1,promptInsertRequest:null,dockSection:null,workDashboardTab:`todos`,chromeSessionId:null,chromeBySession:{},hiddenChips:[],dockCustomizeOpen:!1,fleetMonitorOpen:!1,agentsMonitorOpen:!1,inspectorOpen:!1,inspectorTab:`fleet`,inspectorTarget:null,inspectorFocusedAgentId:null,subagentChatFocusId:null,subagentChatFocusSessionId:null,subagentChatFocusBySession:{},processMonitorOpen:!1,queuePanelOpen:!1,cronJobsOpen:!1,inspectSessionId:null,terminalOpen:!1,terminalCreateNonce:0,agentRosterActiveTab:`live`,changesPanelTab:`changes`,settingsActiveTab:`general`,scrollPositions:{},draftInput:``,draftImages:[],sideContextBreakdownOpen:!1,chatSwitcherOpen:!1,chatCheckpointOpen:!1,chatMemoryPanelOpen:!1,chatContextBreakdownOpen:!1,chatContextEditorOpen:!1,chatToolStatsOpen:!1,chatInputCollapsed:!1,selectedMailMessage:null,skillsState:T(),selectActivity:t=>e(e=>({activeActivity:t,...O(e,{activeActivity:t})})),toggleSidebar:()=>e(e=>{let t=!e.sidebarOpen;return{sidebarOpen:t,...O(e,{sidebarOpen:t})}}),setSidebarOpen:t=>e(e=>({sidebarOpen:t,...O(e,{sidebarOpen:t})})),setSettingsOpen:t=>e({settingsOpen:t}),setCurrentView:t=>e(e=>{let n=v(t);return{currentView:n,...O(e,{currentView:n})}}),showConfirm:t=>e({showConfirmDialog:!0,confirmInfo:t}),hideConfirm:()=>e({showConfirmDialog:!1,confirmInfo:null}),setPaletteOpen:t=>e({paletteOpen:t}),setShortcutsOpen:t=>e({shortcutsOpen:t}),setSearchOpen:t=>e(e=>({searchOpen:t,searchQuery:``,searchActiveMessageId:null,...O(e,{searchOpen:t,searchQuery:``,searchActiveMessageId:null})})),setSearchQuery:t=>e(e=>({searchQuery:t,...O(e,{searchQuery:t})})),setSearchActiveMessageId:t=>e(e=>({searchActiveMessageId:t,...O(e,{searchActiveMessageId:t})})),requestScrollToMessage:t=>e(e=>{let n={id:t,nonce:(e.scrollTarget?.nonce??0)+1};return{scrollTarget:n,...O(e,{scrollTarget:n})}}),pushPrompt:t=>e(e=>{let n=t.trim();return n?{promptHistory:[n,...e.promptHistory.filter(e=>e!==n)].slice(0,50)}:e}),setSidebarWidth:t=>e({sidebarWidth:Math.max(240,Math.min(560,Math.round(t)))}),togglePin:t=>e(e=>({pinnedIds:e.pinnedIds.includes(t)?e.pinnedIds.filter(e=>e!==t):[...e.pinnedIds,t]})),unpinAll:()=>e({pinnedIds:[]}),toggleCompactMode:()=>e(e=>({compactMode:!e.compactMode})),setModelSwitcherOpen:t=>e(e=>({modelSwitcherOpen:t,...O(e,{modelSwitcherOpen:t})})),toggleFavoriteSession:t=>e(e=>({favoriteSessionIds:e.favoriteSessionIds.includes(t)?e.favoriteSessionIds.filter(e=>e!==t):[...e.favoriteSessionIds,t]})),setSessionNickname:(t,n)=>e(e=>{let r=n.trim(),i={...e.sessionNicknames};return r?i[t]=r:delete i[t],{sessionNicknames:i}}),setFileExplorerWidth:t=>e({fileExplorerWidth:Math.max(160,Math.min(400,Math.round(t)))}),toggleRefineEnabled:()=>e(e=>({refineEnabled:!e.refineEnabled})),setRefinePanel:t=>e(e=>({refinePanel:t,...O(e,{refinePanel:t})})),setPromptLibraryOpen:t=>e(e=>({promptLibraryOpen:t,...O(e,{promptLibraryOpen:t})})),requestPromptInsert:t=>e(e=>({promptInsertRequest:t,promptLibraryOpen:!1,...O(e,{promptInsertRequest:t,promptLibraryOpen:!1})})),clearPromptInsert:()=>e(e=>({promptInsertRequest:null,...O(e,{promptInsertRequest:null})})),setDockSection:t=>e(e=>({dockSection:t,...O(e,{dockSection:t,inspectorOpen:!t&&e.inspectorOpen}),...t?{inspectorOpen:!1}:{}})),setWorkDashboardTab:t=>e(e=>({workDashboardTab:t,...O(e,{workDashboardTab:t})})),bindSessionChrome:t=>e(e=>{if(e.chromeSessionId===t)return{};let n={...e.chromeBySession};if(e.chromeSessionId){let t=D(e);n[e.chromeSessionId]=t.refinePanel?{...t,refinePanel:null,draftInput:t.refinePanel.original}:t}let r=(t?n[t]:void 0)??E();return{chromeSessionId:t,chromeBySession:n,subagentChatFocusId:t?e.subagentChatFocusBySession[t]??null:null,subagentChatFocusSessionId:t,sidebarOpen:r.sidebarOpen??E().sidebarOpen,activeActivity:r.activeActivity,currentView:r.currentView,inspectSessionId:r.inspectSessionId,searchOpen:r.searchOpen,searchQuery:r.searchQuery,searchActiveMessageId:r.searchActiveMessageId,scrollTarget:r.scrollTarget,modelSwitcherOpen:r.modelSwitcherOpen,promptLibraryOpen:r.promptLibraryOpen,promptInsertRequest:r.promptInsertRequest,refinePanel:r.refinePanel,draftInput:r.draftInput,draftImages:r.draftImages,processMonitorOpen:r.processMonitorOpen,queuePanelOpen:r.queuePanelOpen,cronJobsOpen:r.cronJobsOpen,sideContextBreakdownOpen:r.sideContextBreakdownOpen,terminalOpen:r.terminalOpen,dockSection:r.dockSection,workDashboardTab:r.workDashboardTab,inspectorOpen:r.inspectorOpen,inspectorTab:r.inspectorTab,inspectorTarget:r.inspectorTarget,inspectorFocusedAgentId:r.inspectorFocusedAgentId,agentRosterActiveTab:r.agentRosterActiveTab,changesPanelTab:r.changesPanelTab,dockCustomizeOpen:r.dockCustomizeOpen??!1,skillsState:r.skillsState??T(),selectedMailMessage:r.selectedMailMessage??null,scrollPositions:r.scrollPositions??{},chatSwitcherOpen:r.chatSwitcherOpen??!1,chatCheckpointOpen:r.chatCheckpointOpen??!1,chatMemoryPanelOpen:r.chatMemoryPanelOpen??!1,chatContextBreakdownOpen:r.chatContextBreakdownOpen??!1,chatContextEditorOpen:r.chatContextEditorOpen??!1,chatInputCollapsed:r.chatInputCollapsed??!1}}),toggleDockSection:t=>e(e=>{let n=e.dockSection===t?null:t;return{dockSection:n,...O(e,{dockSection:n,inspectorOpen:!n&&e.inspectorOpen}),...n?{inspectorOpen:!1}:{}}}),toggleChipHidden:t=>e(e=>{let n=e.hiddenChips.includes(t),r=!n&&e.dockSection===t?null:e.dockSection;return{hiddenChips:n?e.hiddenChips.filter(e=>e!==t):[...e.hiddenChips,t],dockSection:r,...O(e,{dockSection:r})}}),showDockChip:t=>e(e=>({hiddenChips:e.hiddenChips.filter(e=>e!==t)})),setDockCustomizeOpen:t=>e(e=>({dockCustomizeOpen:t,...O(e,{dockCustomizeOpen:t})})),setAgentRosterActiveTab:t=>e(e=>({agentRosterActiveTab:t,...O(e,{agentRosterActiveTab:t})})),setChangesPanelTab:t=>e(e=>({changesPanelTab:t,...O(e,{changesPanelTab:t})})),setFleetMonitorOpen:t=>e(e=>({fleetMonitorOpen:!1,inspectorOpen:t?!0:e.inspectorTab!==`fleet`&&e.inspectorOpen,inspectorTab:t?`fleet`:e.inspectorTab,...O(e,{inspectorOpen:t?!0:e.inspectorTab!==`fleet`&&e.inspectorOpen,inspectorTab:t?`fleet`:e.inspectorTab,dockSection:t?null:e.dockSection}),...t?{dockSection:null}:{}})),setAgentsMonitorOpen:t=>e(e=>({agentsMonitorOpen:!1,inspectorOpen:t?!0:e.inspectorTab!==`agents`&&e.inspectorOpen,inspectorTab:t?`agents`:e.inspectorTab,...O(e,{inspectorOpen:t?!0:e.inspectorTab!==`agents`&&e.inspectorOpen,inspectorTab:t?`agents`:e.inspectorTab,dockSection:t?null:e.dockSection}),...t?{dockSection:null}:{}})),setInspectorOpen:t=>e(e=>({inspectorOpen:t,...t?{dockSection:null}:{inspectorTarget:null},...O(e,{inspectorOpen:t,dockSection:t?null:e.dockSection,inspectorTarget:t?e.inspectorTarget:null})})),setInspectorTab:t=>e(e=>({inspectorTab:t,...O(e,{inspectorTab:t})})),openInspectorTarget:t=>e(e=>{let n=e.inspectorTab,r=e.inspectorFocusedAgentId;return t.kind===`fleet`?n=t.tab??`fleet`:t.kind===`agent`?(n=`agents`,r=t.agentId):t.kind===`sideEffects`?n=`sideEffects`:t.kind===`council`&&(n=`council`),{inspectorOpen:!0,inspectorTarget:t,inspectorTab:n,inspectorFocusedAgentId:r,dockSection:null,...O(e,{inspectorOpen:!0,inspectorTarget:t,inspectorTab:n,inspectorFocusedAgentId:r,dockSection:null})}}),closeInspector:()=>e(e=>({inspectorOpen:!1,inspectorTarget:null,...O(e,{inspectorOpen:!1,inspectorTarget:null})})),setInspectorFocusedAgentId:t=>e(e=>({inspectorFocusedAgentId:t,...O(e,{inspectorFocusedAgentId:t})})),setSubagentChatFocus:(t,n)=>e(e=>{let r=(n===``?null:n)??e.chromeSessionId??e.subagentChatFocusSessionId;return{subagentChatFocusId:t,subagentChatFocusSessionId:r??null,subagentChatFocusBySession:r?{...e.subagentChatFocusBySession,[r]:t}:e.subagentChatFocusBySession}}),forgetSession:t=>e(e=>{let n=t in e.subagentChatFocusBySession||e.subagentChatFocusSessionId===t,r=t in e.chromeBySession||e.chromeSessionId===t;if(!n&&!r)return e;let i={...e.subagentChatFocusBySession};delete i[t];let a={...e.chromeBySession};delete a[t];let o=e.subagentChatFocusSessionId===t,s=e.chromeSessionId===t;return{subagentChatFocusBySession:i,chromeBySession:a,...o?{subagentChatFocusId:null,subagentChatFocusSessionId:null}:{},...s?{chromeSessionId:null,...E()}:{}}}),toggleInspector:()=>e(e=>{let t=!e.inspectorOpen,n=t?null:e.dockSection;return{inspectorOpen:t,dockSection:n,...O(e,{inspectorOpen:t,dockSection:n})}}),setProcessMonitorOpen:t=>e(e=>({processMonitorOpen:t,...O(e,{processMonitorOpen:t})})),setQueuePanelOpen:t=>e(e=>({queuePanelOpen:t,...O(e,{queuePanelOpen:t})})),setCronJobsOpen:t=>e(e=>({cronJobsOpen:t,...O(e,{cronJobsOpen:t})})),setInspectSession:t=>e(e=>({inspectSessionId:t,currentView:`session-inspect`,...O(e,{inspectSessionId:t,currentView:`session-inspect`})})),clearInspectSession:()=>e(e=>({inspectSessionId:null,currentView:`chat`,...O(e,{inspectSessionId:null,currentView:`chat`})})),setTerminalOpen:t=>e(e=>({terminalOpen:t,...O(e,{terminalOpen:t})})),toggleTerminal:()=>e(e=>{let t=!e.terminalOpen;return{terminalOpen:t,...O(e,{terminalOpen:t})}}),requestTerminalCreate:()=>e(e=>({terminalCreateNonce:e.terminalCreateNonce+1})),setSettingsActiveTab:t=>e({settingsActiveTab:S(t)}),setScrollPosition:(t,n)=>e(e=>{let r={...e.scrollPositions,[t]:n};return{scrollPositions:r,...O(e,{scrollPositions:r})}}),setDraftInput:t=>e(e=>({draftInput:t,...O(e,{draftInput:t})})),setDraftImages:t=>e(e=>{let n=t.slice(-8);return{draftImages:n,...O(e,{draftImages:n})}}),setSideContextBreakdownOpen:t=>e(e=>({sideContextBreakdownOpen:t,...O(e,{sideContextBreakdownOpen:t})})),setChatSwitcherOpen:t=>e(e=>({chatSwitcherOpen:t,...O(e,{chatSwitcherOpen:t})})),setChatCheckpointOpen:t=>e(e=>({chatCheckpointOpen:t,...O(e,{chatCheckpointOpen:t})})),setChatMemoryPanelOpen:t=>e(e=>({chatMemoryPanelOpen:t,...O(e,{chatMemoryPanelOpen:t})})),setChatContextBreakdownOpen:t=>e(e=>({chatContextBreakdownOpen:t,...O(e,{chatContextBreakdownOpen:t})})),setChatToolStatsOpen:t=>e(e=>({chatToolStatsOpen:t,...O(e,{chatToolStatsOpen:t})})),setChatContextEditorOpen:t=>e(e=>({chatContextEditorOpen:t,...O(e,{chatContextEditorOpen:t})})),setChatInputCollapsed:t=>e(e=>({chatInputCollapsed:t,...O(e,{chatInputCollapsed:t})})),setSkillsState:t=>e(e=>({skillsState:t,...O(e,{skillsState:t})})),setSelectedMailMessage:t=>e(e=>({selectedMailMessage:t,...O(e,{selectedMailMessage:t})}))}),{name:`wrongstack-ui`,version:7,migrate:(e,t)=>{let n=e??{};return n.activeActivity=g(n.activeActivity),typeof n.sidebarWidth==`number`&&(n.sidebarWidth=Math.max(240,Math.min(560,n.sidebarWidth))),t<2&&(delete n.fleetDrawerOpen,delete n.agentsDrawerOpen),`currentView`in n&&(n.currentView=v(n.currentView)),`dockSection`in n&&(n.dockSection=b(n.dockSection)),`settingsActiveTab`in n&&(n.settingsActiveTab=S(n.settingsActiveTab)),t<6&&delete n.draftInput,t<7&&(delete n.chromeSessionId,delete n.chromeBySession),n},merge:(e,t)=>{let n={...t,...e??{}};return n.activeActivity=g(n.activeActivity),n.currentView=v(n.currentView),n.dockSection=b(n.dockSection),n.settingsActiveTab=S(n.settingsActiveTab),typeof n.chromeSessionId!=`string`&&(n.chromeSessionId=null),(typeof n.chromeBySession!=`object`||n.chromeBySession===null)&&(n.chromeBySession={}),n.sidebarWidth=Math.max(240,Math.min(560,n.sidebarWidth)),C()?{...n,...w({sidebarOpen:!1})}:n},partialize:e=>({sidebarOpen:e.sidebarOpen,activeActivity:e.activeActivity,sidebarWidth:e.sidebarWidth,promptHistory:e.promptHistory,pinnedIds:e.pinnedIds,compactMode:e.compactMode,favoriteSessionIds:e.favoriteSessionIds,sessionNicknames:e.sessionNicknames,fileExplorerWidth:e.fileExplorerWidth,refineEnabled:e.refineEnabled,hiddenChips:e.hiddenChips,workDashboardTab:e.workDashboardTab,inspectorOpen:e.inspectorOpen,inspectorTab:e.inspectorTab,skillsState:e.skillsState,currentView:e.currentView,dockSection:e.dockSection,settingsActiveTab:e.settingsActiveTab,scrollPositions:e.scrollPositions})}));function A(e={}){k.setState(w(e))}export{m as a,p as i,k as n,a as r,A as t};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{$ as t,At as n,Bt as r,Ct as i,D as a,Et as o,Ft as s,H as c,Ht as l,It as u,J as d,K as f,Lt as p,Nt as m,Ot as h,Q as g,Rt as _,St as v,T as ee,Tt as te,V as y,Vt as b,X as x,Z as S,a as C,c as w,ct as ne,d as re,dt as ie,ft as ae,g as T,gt as oe,h as se,ht as ce,i as le,j as E,jt as D,l as O,lt as k,o as A,pt as ue,r as j,s as M,t as N,u as P,ut as de,wt as fe,x as F,xt as I,y as L,zt as R}from"./ws-client-D-d32pHb.js";import{io as pe,oo as me}from"./vendor-enc0q-Va.js";import{n as he,t as ge}from"./i18n-Cv65b1SP.js";import{a as _e,n as z,t as ve}from"./ui-store-DpKUBLWd.js";import{i as B,n as V}from"./codemap-activity-store-Br4b57a0.js";import{C as ye,S as be,a as xe,d as Se,g as Ce,h as we,i as Te,m as H,n as U,o as Ee,p as De,r as Oe,s as ke,t as W,u as Ae,x as je,y as Me}from"./stores-CNuMLG8X.js";import{r as Ne}from"./mailbox-store-B9DIvRgo.js";import{n as Pe,o as Fe}from"./view-navigation-DPOY0lyt.js";import{t as Ie}from"./codemap-index-store-tSmlp7Uz.js";var G=e(me(),1);function Le(e,t){if(t)return!0;try{return new URLSearchParams(e).get(`shell`)===`desktop`}catch{return!1}}function Re(){return typeof window>`u`?!1:Le(window.location.search,!!window.wrongstackDesktopHost)}var ze=new Set([`mode_changed`,`compaction`,`checkpoint`,`skill_activated`,`skill_deactivated`,`agent_spawned`,`agent_session_linked`,`agent_stopped`,`agent_error`,`delegate_started`,`delegate_completed`,`loop_detected`,`model_switched`,`error`,`provider_retry`,`provider_error`,`message_truncated`]),Be=new Set([`checkpoint`,`agent_spawned`,`agent_session_linked`,`agent_stopped`,`agent_error`,`delegate_started`,`delegate_completed`]);new Set([...ze].filter(e=>!Be.has(e)));function Ve(e){switch(e.type){case`compaction`:{let t=(e.before/1e3).toFixed(0),n=(e.after/1e3).toFixed(0),r=e.level?` (${e.level})`:``,i=e.reductions&&e.reductions.length>0?` [${e.reductions.map(e=>`${e.phase}: \u2212${e.saved}`).join(`, `)}]`:``;return{ts:e.ts,source:e.type,level:`info`,text:`\u27F2 context compacted${r}: ${t}K \u2192 ${n}K tokens${i}`}}case`error`:return{ts:e.ts,source:e.type,level:`error`,text:e.phase?`[${e.phase}] ${e.message}`:e.message};case`provider_retry`:{let t=(e.delayMs/1e3).toFixed(e.delayMs>=1e3?1:2);return{ts:e.ts,source:e.type,level:`warn`,text:e.status?`\u27F3 retry ${e.attempt} (HTTP ${e.status}) after ${t}s \u2014 ${e.description}`:`\u27F3 retry ${e.attempt} after ${t}s \u2014 ${e.description}`}}case`provider_error`:return{ts:e.ts,source:e.type,level:`error`,text:e.status?`provider error (HTTP ${e.status}, ${e.retryable?`retryable`:`fatal`}): ${e.description}`:`provider error (${e.retryable?`retryable`:`fatal`}): ${e.description}`};case`checkpoint`:return{ts:e.ts,source:e.type,level:`info`,text:`\u2713 checkpoint #${e.promptIndex}: "${e.promptPreview.slice(0,60)}"`};case`agent_spawned`:return{ts:e.ts,source:e.type,level:`info`,text:`spawned as ${e.role}`,agentId:e.agentId};case`agent_session_linked`:return{ts:e.ts,source:e.type,level:`info`,text:`transcript \u2192 ${e.transcriptPath??e.agentSessionId}`,agentId:e.agentId};case`agent_stopped`:return{ts:e.ts,source:e.type,level:`info`,text:`stopped`,agentId:e.agentId};case`delegate_started`:return{ts:e.ts,source:e.type,level:`info`,text:`\u{1F91D} delegating \u2192 ${e.target}: ${e.task.length>100?`${e.task.slice(0,99)}\u2026`:e.task}`,agentId:e.subagentId,detail:{kind:`delegate_started`,target:e.target,task:e.task}};case`delegate_completed`:{let t=e.costUsd&&e.costUsd>0?` \xB7 $${e.costUsd.toFixed(4)}`:``;return{ts:e.ts,source:e.type,level:e.ok?`info`:`error`,text:`${e.ok?`✅`:`❌`} ${e.summary}${t}`,agentId:e.subagentId,detail:{kind:`delegate_completed`,target:e.target,task:e.task,ok:e.ok,status:e.status,summary:e.summary,durationMs:e.durationMs,iterations:e.iterations,toolCalls:e.toolCalls,costUsd:e.costUsd}}}case`loop_detected`:{let t=e.kind===`message`?`the same reply`:e.tools?`\`${e.tools}\``:`the same step`;return{ts:e.ts,source:e.type,level:`warn`,text:e.action===`steer`?`\u{1F501} Loop detected \u2014 ${t} repeated ${e.repeatCount}\xD7 ; the run was steered.`:`\u{1F501} Loop detected \u2014 ${t} repeated ${e.repeatCount}\xD7 ; the run was stopped.`}}case`model_switched`:{let t=`${e.to.providerId}/${e.to.model}`,n=e.from?`${e.from.providerId}/${e.from.model} \u2192 `:``;return{ts:e.ts,source:e.type,level:e.reason===`fallback`?`warn`:`info`,text:e.reason===`fallback`?`\u26A0 fallback${e.status?` (HTTP ${e.status})`:``}: ${n}${t}`:`model: ${n}${t}`}}case`agent_error`:return{ts:e.ts,source:e.type,level:`error`,text:`error: ${e.error.slice(0,80)}`,agentId:e.agentId};case`mode_changed`:return{ts:e.ts,source:e.type,level:`info`,text:`mode: ${e.from} \u2192 ${e.to}`};case`skill_activated`:return{ts:e.ts,source:e.type,level:`info`,text:`skill activated: ${e.skillName}`};case`skill_deactivated`:return{ts:e.ts,source:e.type,level:`info`,text:`skill deactivated: ${e.skillName}`};case`message_truncated`:return{ts:e.ts,source:e.type,level:`warn`,text:e.after<e.before?`message truncated: ${e.before} \u2192 ${e.after} tokens`:`message truncated at ${e.after} tokens`};default:return null}}function He(e,t=ze){let n=[];for(let r of e){if(!t.has(r.type))continue;let e=Ve(r);e&&n.push(e)}return n}var Ue=[`[MAILBOX]`,`[MAILBOX BTW]`,`[BY THE WAY —`,`[QUEUED MESSAGES —`,`[FLEET PULSE]`,`[loop-detector]`,`[tool_history_digest:`,`[session.resume] Request targeted session`];function We(e){let t=e.trimStart();for(let e of Ue)if(t.startsWith(e))return!0;return!1}function Ge(e){let t=[];for(let n of e)n.type===`tool_call_end`&&t.push({id:n.id,name:n.name,durationMs:n.durationMs,outputBytes:n.outputBytes??n.outputSize,outputTokens:n.outputTokens,outputLines:n.outputLines,ok:n.ok,agentId:n.agentId});return t}function Ke(e){let t=new Map;if(!e)return t;for(let n of e)t.set(n.id,n);return t}function qe(e){let t=[];for(let n of e)n.type===`image`&&t.push({mediaType:n.source.media_type,data:n.source.data,url:n.source.url});return t.length>0?t:void 0}function Je(e){return typeof e==`string`?e:JSON.stringify(e)}function Ye(e){let{messages:t,events:n,thinkingPlacement:r=`inline`,textBlocks:i=`split`,textSeparator:a=``,hideSystemInjections:o=!0}=e,s=e.markers??(n?He(n,e.markerSources??ze):[]),c=Ke(e.toolMeta??(n?Ge(n):void 0)),l=[],u=new Map,d=0,f=``,p=(e,t,n,r)=>{let i=t.trim();i&&(o&&We(i)||(e===`assistant`?l.push({kind:`assistant`,ts:n,text:i,final:r}):e===`system`?l.push({kind:`system`,ts:n,text:i}):l.push({kind:`user`,ts:n,text:i})))},m=(e,t)=>{e.trim()&&(d+=1,l.push({kind:`thinking`,ts:t,text:e,index:d}))};for(let e of t){let t=e.ts??f;if(e.ts&&(f=e.ts),typeof e.content==`string`){p(e.role,e.content,t,!0);continue}let n=e.content;if(r===`inline`)for(let e of n)e.type===`thinking`&&m(e.thinking,t);let o=e.role===`user`?qe(n):void 0,s=!n.some(e=>e.type===`tool_use`),d=[],h=()=>{if(i===`join`)return;let n=d.join(a).trim();n&&p(e.role,n,t,s),d.length=0};if(i===`join`){let r=n.filter(e=>e.type===`text`).map(e=>e.text).join(a).trim();r&&p(e.role,r,t,s)}for(let e of n){if(e.type===`text`){d.push(e.text);continue}if(e.type===`tool_use`){h();let n=c.get(e.id),r={kind:`tool`,ts:t,toolUseId:e.id,name:e.name,input:e.input,ok:n?.ok,durationMs:n?.durationMs,outputBytes:n?.outputBytes,outputTokens:n?.outputTokens,outputLines:n?.outputLines,agentId:n?.agentId};l.push(r),u.set(e.id,r);continue}if(e.type!==`tool_result`)continue;h();let n=u.get(e.tool_use_id);if(n){n.output=Je(e.content),n.ok=!e.is_error,u.delete(e.tool_use_id);continue}let r=c.get(e.tool_use_id);l.push({kind:`tool`,ts:t,toolUseId:e.tool_use_id,name:e.name??r?.name??e.tool_use_id,output:Je(e.content),ok:!e.is_error,durationMs:r?.durationMs,outputBytes:r?.outputBytes,outputTokens:r?.outputTokens,outputLines:r?.outputLines,agentId:r?.agentId})}if(h(),r===`merged-after`&&m(n.filter(e=>e.type===`thinking`).map(e=>e.thinking).join(`
|
|
2
|
-
|
|
3
|
-
`).trim(),t),o){let e=l[l.length-1];e?.kind===`user`&&e.ts===t?e.images=o:l.push({kind:`user`,ts:t,text:``,images:o})}}let h=[],g=0,_=0;for(;g<l.length&&_<s.length;){let e=s[_];e.ts<l[g].ts?(h.push(Xe(e)),_+=1):(h.push(l[g]),g+=1)}for(;g<l.length;)h.push(l[g++]);for(;_<s.length;)h.push(Xe(s[_++]));return h}function Xe(e){return{kind:`marker`,ts:e.ts,source:e.source,level:e.level,text:e.text,agentId:e.agentId,detail:e.detail}}function Ze(e){return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
|
|
4
|
-
<rect width="64" height="64" fill="#121210" />
|
|
5
|
-
<path fill="#FD9F02" d="M5 27h10v10H5zM27 27h10v10H27zM38 27h10v10H38zM49 27h10v10H49z" />
|
|
6
|
-
<path fill="#FE2E5F" d="M16 32h10v10H16z" />
|
|
7
|
-
${e===`ready`?`<circle cx="50" cy="14" r="14" fill="#22c55e" stroke="#fff" stroke-width="3" />`:e===`error`?`<circle cx="50" cy="14" r="14" fill="#ef4444" stroke="#fff" stroke-width="3" />`:e===`running`?`<circle cx="50" cy="14" r="14" fill="#f59e0b" stroke="#fff" stroke-width="3" />`:e===`attention`?`<circle cx="50" cy="14" r="14" fill="#eab308" stroke="#fff" stroke-width="3"><animate attributeName="opacity" values="1;0.3;1" dur="1s" repeatCount="indefinite"/></circle>`:``}
|
|
8
|
-
</svg>`}function Qe(e){return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`}function $e(){if(typeof document>`u`)return null;let e=document.querySelector(`link[rel="icon"]`);return e||(e=document.createElement(`link`),e.rel=`icon`,e.type=`image/svg+xml`,document.head.appendChild(e)),e}var et=`idle`;function K(e){et=e;let t=$e();t&&(t.href=Qe(Ze(e)))}var tt=!1;function nt(){tt||typeof document>`u`||(tt=!0,document.addEventListener(`visibilitychange`,()=>{!document.hidden&&(et===`ready`||et===`error`||et===`attention`)&&K(`idle`)}))}var rt=null;function it(){if(typeof window>`u`)return null;if(rt)return rt;let e=window.AudioContext||window.webkitAudioContext;if(!e)return null;try{rt=new e}catch{return null}return rt}function at(e,t,n){let r=it();if(!r)return;let i=r.currentTime+t,a=r.createOscillator(),o=r.createGain();a.type=`sine`,a.frequency.value=e,o.gain.setValueAtTime(0,i),o.gain.linearRampToValueAtTime(.18,i+.01),o.gain.exponentialRampToValueAtTime(1e-4,i+n),a.connect(o).connect(r.destination),a.start(i),a.stop(i+n+.02)}function ot(){at(659.25,0,.18),at(880,.12,.24)}function st(){at(523.25,0,.15),at(659.25,.1,.15),at(783.99,.2,.25)}var q=`default`;q=typeof window<`u`&&`Notification`in window?Notification.permission:`unsupported`;async function ct(){if(q===`unsupported`||q===`granted`||q===`denied`)return q;try{let e=await Notification.requestPermission();return q=e,e}catch{return`denied`}}function lt(e,t,n){if(!(typeof document>`u`||!document.hidden)&&q===`granted`)try{let r=new Notification(e,{body:t,icon:`/wrongstack.svg`,tag:n??`wrongstack-run`,requireInteraction:n===`wrongstack-confirm`});r.onclick=()=>{window.focus(),r.close()}}catch{}}function ut(e){let t=e.payload;return typeof t?.agentName==`string`&&t.agentName.length>0?t.agentName:void 0}var dt={"iteration.started":bt,"provider.text_delta":xt,"provider.thinking_delta":St,"tool.started":Ct,"tool.progress":wt,"tool.executed":Tt,"tool.confirm_needed":Et,"run.result":Ot,"session.run_state":Dt},ft=new Map,pt=new Map;function mt(e){let t=ft.get(e);return t||(t=new Map,ft.set(e,t)),t}function ht(e){return`__thinking__:${e}`}function gt(e){return e.sessionId===v()}function _t(e){return z.getState().sessionNicknames[e]??`session ${e.slice(0,8)}`}function vt(e){return`wrongstack-run:${e}`}function yt(e){ft.delete(e),pt.delete(e),b.drop(ht(e))}h(yt);function bt(e){let t=j(e);if(!t)return;M(e),e.payload.index===1&&(ft.delete(t.sessionId),pt.delete(t.sessionId));let n=e.payload,r=O(e);r?.setIteration({index:n.index,max:n.maxIterations??0}),t.setLoading(!0),typeof document<`u`&&document.hidden&>(t)&&K(`running`),t.runStart===null&&t.setRunStart({at:Date.now(),cost:r?.data.cost??0}),t.setCurrentAssistantMessage(null)}function xt(e){let t=j(e);if(!t)return;let n=_(e);if(n?.kind!==`text-delta`)return;b.flush(ht(t.sessionId)),t.clearThinking();let r=t.currentAssistantMessageId;r||(r=t.addMessage({role:`assistant`,content:``,streaming:!0}),t.setCurrentAssistantMessage(r)),b.push(r,n.text,(e,n)=>t.appendToMessage(e,n))}function St(e){let t=j(e);if(!t)return;let n=_(e);n?.kind===`thinking-delta`&&b.push(ht(t.sessionId),n.text,(e,n)=>t.appendThinking(n))}function Ct(e){let t=j(e);if(!t)return;M(e);let n=r(e);if(n?.kind!==`started`)return;n.name===`nextsteps`&&n.id&&mt(t.sessionId).set(n.id,p(n.input));let i=t.getToolMessageId(n.id);if(i){t.setCurrentToolId(i);return}b.flushAll(),t.clearThinking();let a=t.currentAssistantMessageId;a&&t.finalizeMessage(a,{final:!1}),t.setCurrentAssistantMessage(null);let o=t.addMessage({role:`tool`,content:``,toolName:n.name,toolInput:n.input,toolUseId:n.id});t.setCurrentToolId(o),t.addExecution({id:n.id,name:n.name,input:n.input,ok:!0,startedAt:Date.now()}),L.getState().recordToolStarted(t.sessionId,{name:n.name,agentName:ut(e)})}function wt(e){let t=j(e);if(!t)return;let n=r(e);if(n?.kind!==`progress`)return;let i=n.text;if(!i)return;let a=t.getToolMessageId(n.id);if(!a)return;let o=n.eventType===`warning`?`⚠ `:``;b.push(a,`${o}${i}\n`,(e,r)=>t.appendToolProgressLinesByUseId(n.id,r.split(`
|
|
9
|
-
`).filter(e=>e.length>0)))}function Tt(e){let t=j(e);if(!t)return;M(e);let n=r(e);if(n?.kind!==`executed`)return;if(n.name===`nextsteps`&&n.id){let e=mt(t.sessionId),r=e.get(n.id)??[];e.delete(n.id),n.ok&&r.length>0&&pt.set(t.sessionId,r)}let{currentToolId:i}=t,a=n.id?t.getToolMessageId(n.id):i;a&&(b.drop(a),n.id?t.setToolResultByUseId(n.id,n.output??``,n.ok):t.setToolResult(a,n.output??``,n.ok),t.updateMessage(a,{toolDurationMs:n.durationMs,...n.sage&&n.sage.length>0?{sageLines:n.sage}:{}})),n.id&&t.updateExecution(n.id,{completedAt:Date.now(),durationMs:n.durationMs,output:n.output,ok:n.ok}),L.getState().recordToolExecuted(t.sessionId,{name:n.name,ok:n.ok,durationMs:n.durationMs,agentName:ut(e)}),i&&a===i&&t.setCurrentToolId(null)}function Et(e){let n=j(e);if(!n)return;let r=e.payload;if(ge(n.sessionId,`yolo`)===!0&&!r.boundaryReason){N(t.getState().wsUrl).sendConfirm(r.id,`yes`),z.getState().hideConfirm();return}if(!gt(n)){n.setPendingConfirm(r),T.getState().setAttention(n.sessionId,!0),ct(),lt(`${x.getState().projectName||`Agent`} needs approval`,`Another tab is waiting on "${r.toolName}".`,`agent-confirm`);return}n.setPendingConfirm(r),z.getState().showConfirm({id:r.id,toolName:r.toolName,input:r.input,suggestedPattern:r.suggestedPattern,decisionSource:r.decisionSource,riskTier:r.riskTier,boundaryReason:r.boundaryReason});try{st()}catch{}ct(),lt(`${x.getState().projectName||`Agent`} needs approval`,`Tool "${r.toolName}" is waiting for your decision.`,`agent-confirm`),typeof document<`u`&&document.hidden&&K(`attention`)}function Dt(e){let t=j(e);if(!t)return;let n=w(e,{isRunning:`boolean`},{});n&&t.isLoading!==n.isRunning&&(t.setLoading(n.isRunning),n.isRunning||(b.flushAll(),t.flushThinkingLog(1),O(e)?.setIteration(null),t.clearThinking(),t.setRunStart(null)))}function Ot(e){let n=j(e);if(!n)return;let r=w(e,{status:`string`},{requestId:`string`,iterations:`number`,finalText:`string`,error:`object`});if(!r)return;let i=r.iterations??1;b.flushAll(),n.flushThinkingLog(Math.max(1,i));let a=O(e);a?.setIteration(null),n.setLoading(!1);let o=n.currentAssistantMessageId,s=r.status===`done`?r.finalText?.trim():void 0;if(o){let e=n.messages.find(e=>e.id===o);n.updateMessage(o,{content:e?.content?.trim()?e.content:s??e?.content??``}),n.finalizeMessage(o,{final:!0})}else if(s){let e=n.runStart,t=u(s).stripped.trim(),r=n.messages,i;for(let t=r.length-1;t>=0;t--){let n=r[t];if(n?.role===`assistant`&&(!e||n.timestamp>=e.at)){i=n;break}}let a=i?.content.trim();if(a===void 0||a!==s&&a!==t){let e=n.addMessage({role:`assistant`,content:s});n.finalizeMessage(e,{final:!0})}}let c=pt.get(n.sessionId)??[];r.status===`done`&&c.length>0&&(n.messages.some(e=>e.role===`assistant`&&(e.nextSteps?.steps.length??0)>0)||n.addMessage({role:`assistant`,content:``,nextSteps:{steps:c}}),pt.delete(n.sessionId)),n.setCurrentAssistantMessage(null),n.clearThinking();let d=n.runStart;if(d&&r.status===`done`){let e=n.messages,t=-1,r=0;for(let n=e.length-1;n>=0;n--){let i=l(e[n]);if(i.role===`assistant`&&t===-1&&i.content&&(t=n),i.role===`tool`&&i.timestamp>=d.at&&(r+=1),i.role===`user`&&i.timestamp<=d.at)break}if(t!==-1){let o=a?.data.cost??0;n.updateMessage(e[t]?.id,{runSummary:{iterations:i,tools:r,durationMs:Date.now()-d.at,costDelta:Math.max(0,o-d.cost)}})}}if(n.setRunStart(null),r.status!==`done`&&r.error){r.requestId&&n.updateMessage(r.requestId,{status:`failed`}),n.addMessage({role:`assistant`,content:`Error: ${r.error.message}`,isError:!0});let e=r.error.message===`User aborted`||r.error.message===`aborted`,t=gt(n);e||(t?f.error(`Run ended: ${r.error.message}`):T.getState().setAttention(n.sessionId,!0)),lt(t?`${x.getState().projectName||`Agent`} run failed`:`${_t(n.sessionId)} run failed`,r.error.message,vt(n.sessionId)),typeof document<`u`&&document.hidden&>(n)&&K(`error`)}else if(r.status===`done`){if(typeof document<`u`&&document.hidden){let e=gt(n);e?f.success(`Run completed in ${i} iteration${i===1?``:`s`}`):T.getState().setAttention(n.sessionId,!0),lt(e?`${x.getState().projectName||`Agent`} run finished`:`${_t(n.sessionId)} run finished`,`Completed in ${i} iteration${i===1?``:`s`}.`,vt(n.sessionId)),e&&K(`ready`)}if(ct(),t.getState().soundOnComplete)try{ot()}catch{}typeof document<`u`&>(n)&&document.dispatchEvent(new CustomEvent(`chat:next-step-countdown`))}let p=n,m=p.queue[0];if(!m)return;if(m.alreadyDispatched===!0){kt(n,m);let e=p.dequeueDrainable();return e?At(n,e):void 0}let h=p.dequeue();if(h)return At(n,h)}function kt(e,t){if(t.bubbleAdded===!0)return;let n=t.images??[];e.addMessage({role:`user`,content:t.text,...n.length>0?{attachments:n.map(e=>({id:e.id,kind:`image`,dataUrl:e.dataUrl,mediaType:e.mediaType,bytes:e.bytes,name:e.name}))}:{}}),t.bubbleAdded=!0}function At(e,n){let r=N(t.getState().wsUrl),i=n.images??[];if(e.addMessage({role:`user`,content:n.text,...i.length>0?{attachments:i.map(e=>({id:e.id,kind:`image`,dataUrl:e.dataUrl,mediaType:e.mediaType,bytes:e.bytes,name:e.name}))}:{}}),n.mode===`btw`){n.alreadyDispatched!==!0&&r.sendMailboxMessage({type:`btw`,to:`leader`,subject:`btw from WebUI`,body:n.text,priority:`normal`,audience:`all`},e.sessionId);return}e.setLoading(!0),r.sendMessage(n.text,i.length>0?_e(i):void 0,!1,e.sessionId)}function J(e){return be.for(A(e)).getState()}function jt(e){let t=A(e);return!t||t===v()}var Mt={"coordinator.status":e=>{let t=e.payload;J(e).setCoordinatorStatus(t.status,t.mode),t.taskQueue&&J(e).updateCoordinatorStats({total:t.subagentCount??0,running:0,idle:0,stopped:0,inFlight:t.taskQueue.running,pending:t.taskQueue.pending,completed:t.taskQueue.completed})},"coordinator.stats":e=>{let t=e.payload;J(e).updateCoordinatorStats(t)},"budget.threshold_reached":e=>{let t=e.payload;J(e).pushEvent(`budget.threshold_reached`,t,t.ts??Date.now(),t.subagentId,t.taskId),t.limit>0&&t.used/t.limit*100>=85&&J(e).recordBudgetAlert(t.subagentId,t.kind,t.used,t.limit),J(e).updateSubagentBudget(t.subagentId,{budgetUsage:{iterations:0,toolCalls:0,tokens:0,costUsd:0,elapsedMs:t.used??0}})},"budget.decision":e=>{let t=e.payload,n=t.extended?.timeoutMs??t.extended?.maxIterations??t.extended?.maxToolCalls;J(e).recordBudgetDecision(t.subagentId,t.kind,t.decision,n),J(e).pushEvent(`budget.decision`,{subagentId:t.subagentId,kind:t.kind,decision:t.decision,newLimit:n},Date.now(),t.subagentId)},"subagent.budget_extended":e=>{let t=e.payload;J(e).recordBudgetExtended(t.subagentId,t.kind,t.extendedTo),J(e).pushEvent(`subagent.budget_extended`,t,Date.now(),t.subagentId)},"consensus.vote_initiated":e=>{let t=e.payload;J(e).pushConsensusVote(t.changeId,t.title,t.eligible),J(e).pushEvent(`consensus.vote_initiated`,t,Date.now()),jt(e)&&f.info(`Vote started: `+t.title)},"consensus.vote_cast":e=>{let t=e.payload,n=J(e).consensusVotes.get(t.changeId)?.eligible.find(e=>e.agentId===t.voterId);J(e).recordConsensusVote(t.changeId,t.voterId,n?.agentName??t.voterId,t.value),J(e).pushEvent(`consensus.vote_cast`,t,Date.now(),t.voterId)},"consensus.vote_resolved":e=>{let t=e.payload;J(e).resolveConsensusVote(t.changeId,t.result,t.approveCount,t.rejectCount),J(e).pushEvent(`consensus.vote_resolved`,t,Date.now()),jt(e)&&f.info(`Vote resolved: `+t.result+` (y`+t.approveCount+` n`+t.rejectCount+`)`)},"task.pending":e=>{let t=e.payload;J(e).pushTaskPending(t.taskId,t.description,t.priority),J(e).pushEvent(`task.pending`,t,Date.now())},"task.started":e=>{let t=e.payload;J(e).startTask(t.taskId,t.subagentId),J(e).pushEvent(`task.started`,t,Date.now(),t.subagentId)},"task.completed":e=>{let t=e.payload;J(e).completeTask(t.taskId,t.status,t.durationMs),J(e).pushEvent(`task.completed`,t,Date.now(),t.subagentId)},"task.failed":e=>{let t=e.payload;J(e).failTask(t.taskId,t.error),J(e).pushEvent(`task.failed`,{taskId:t.taskId,subagentId:t.subagentId,error:String(t.error).slice(0,120)},Date.now(),t.subagentId),jt(e)&&f.error(`Task failed: `+String(t.error).slice(0,80))}};function Nt(){let e=N();e?.send?.({type:`mailbox.messages`,payload:{limit:30,incompleteOnly:!0}}),e?.send?.({type:`mailbox.agents`,payload:{}})}var Pt=null;function Ft(){Pt!==null&&clearTimeout(Pt),Pt=setTimeout(()=>{Pt=null,Nt()},300)}function It(e,t){return t?{...e,sessionId:t}:e}function Lt(e,t){let n=g.getState();return t&&n.fileSessionId!==t?n.filesBySession[t]?.hydratingPaths.has(e)??!1:n.hydratingPaths.has(e)}function Rt(e,t=k()??x.getState().session?.id??null){let n=g.getState(),r=t&&n.fileSessionId!==t?n.filesBySession[t]:n,i=r?.openFiles??[],a=r?.projectIdentity??``;if(i.length===0){n.setProjectIdentity(e,t);return}if(a&&a!==e){n.clearOpenTabs(t),n.setProjectIdentity(e,t);return}n.setProjectIdentity(e,t);let o=i.filter(e=>e.content===``&&!e.dirty).map(e=>e.path);if(o.length===0)return;g.getState().setHydratingPaths(o,t);let s=N();for(let e of o)s?.send?.({type:`files.read`,payload:It({filePath:e},t)})}function zt(e){let t=e.payload,n=A(e);if(t.error){g.getState().setError(t.error,n);return}g.getState().setTree(t.root,t.tree,n)}function Bt(e){let t=e.payload,n=A(e),r=g.getState();if(t.error){if(Lt(t.filePath,n)){r.hydrateFileFailed(t.filePath,n);return}r.setError(t.error,n);return}if(t.binary||t.tooLarge){if(Lt(t.filePath,n)){r.hydrateFileFailed(t.filePath,n);return}r.setError(t.binary?`Binary file not displayed: ${t.filePath}`:`File exceeds the 2 MB display limit: ${t.filePath}`,n);return}if(Lt(t.filePath,n)){r.hydrateFileContent(t.filePath,t.content,n);return}r.openFile(t.filePath,t.content,n),z.getState().setCurrentView(`files`)}function Vt(e){let t=e.payload,n=A(e);t.success?g.getState().markSaved(t.filePath,n):t.error&&g.getState().setError(`Save failed: ${t.error}`,n)}function Ht(e){let t=e.payload;!t.success&&t.error&&g.getState().setError(`Create failed: ${t.error}`,A(e))}function Ut(e){let t=e.payload,n=A(e);t.success?g.getState().closeFile(t.filePath,n):t.error&&g.getState().setError(`Delete failed: ${t.error}`,n)}function Wt(e){let t=e.payload,n=A(e);t.success?g.getState().closeFile(t.oldPath,n):t.error&&g.getState().setError(`Rename failed: ${t.error}`,n)}function Gt(e){let t=e.payload,n=A(e);t.success?g.getState().closeFile(t.srcPath,n):t.error&&g.getState().setError(`Move failed: ${t.error}`,n)}var Kt=null,qt=500;function Jt(e){let t=A(e);Kt&&clearTimeout(Kt),Kt=setTimeout(()=>{Kt=null;let e=x.getState().cwd;g.getState().setTreeLoading(!0,t),N().send({type:`files.tree`,payload:It({path:e},t)})},qt)}function Yt(e){let t=re(`mailbox.event`,e.payload);t&&(P.getState().pushEvent(t),P.getState().setActive(!0)),Ft()}function Xt(e){let t=e.payload;t?.messages&&Ne.getState().setMessages(t.messages)}function Zt(e){let t=e.payload;t?.agents&&Ne.getState().setAgents(t.agents)}function Qt(e){let t=re(`mailbox.received`,e.payload);t&&(P.getState().pushEvent(t),P.getState().setActive(!0)),Ft()}function $t(e){Ft()}function en(e){let t=e.payload;t?.agentId&&Ne.getState().removeAgent(t.agentId)}function tn(e){Ne.getState().setMessages([]),Nt()}function nn(e){Ft()}function rn(e){let t=e.payload;t&&typeof t.totalRemoved==`number`&&Ne.getState().setLastCompaction({readByAllRemoved:t.readByAllRemoved??0,expiredRemoved:t.expiredRemoved??0,stalePurged:t.stalePurged??0,totalRemoved:t.totalRemoved,remaining:t.remaining??0}),Ft()}function an(e){let t=e.payload;if(t?.success){Ft();return}f.error(`Mailbox action failed: ${t?.error??`unknown error`}`)}var on={"files.tree":zt,"files.tree.changed":Jt,"files.read":Bt,"files.written":Vt,"files.created":Ht,"files.deleted":Ut,"files.renamed":Wt,"files.moved":Gt,"mailbox.event":Yt,"mailbox.messages":Xt,"mailbox.agents":Zt,"mailbox.received":Qt,"mailbox.agent_registered":$t,"mailbox.agent_deregistered":en,"mailbox.cleared":tn,"mailbox.purged":nn,"mailbox.compacted":rn,"mailbox.action_result":an};function sn(e){let t=e.payload;W.getState().setSnapshot(t.worktrees??[],t.baseBranch??``)}function cn(e){let t=e.payload;W.getState().pushEvent(t)}function ln(e){let t=e.payload;W.getState().setOrphans(t.orphans??[],t.canClean??!1,t.reason)}function un(e){let t=e.payload;W.getState().setCleanResult({...t,at:Date.now()})}function dn(e){let t=e.payload;W.getState().setMergeResult({...t,at:Date.now()})}function fn(e){let t=e.payload;W.getState().setDiff(t.dir,t.summary)}function pn(e){E.getState().applyEvent(e.payload);let t=re(`subagent.event`,e.payload);t&&(P.getState().pushEvent(t),P.getState().setActive(!0))}function mn(e){let t=R(e);t?.kind===`concurrency`&&E.setState({fleetConcurrency:t.active,fleetConcurrencyMax:t.maximum,...t.maxSpawns===void 0?{}:{fleetMaxSpawns:t.maxSpawns},...t.usedSpawns===void 0?{}:{fleetUsedSpawns:t.usedSpawns},...t.remainingSpawns===void 0?{}:{fleetRemainingSpawns:t.remainingSpawns},...t.effectiveSource===void 0?{}:{fleetBudgetSource:t.effectiveSource},...t.checkpointMaxSpawns===void 0?{}:{fleetCheckpointMaxSpawns:t.checkpointMaxSpawns},...t.ceilingMismatch===void 0?{}:{fleetCeilingMismatch:t.ceilingMismatch}})}function hn(e){let t=R(e);if(t?.kind!==`client-status`)return;let n=t.status;Ae.getState().setCurrentSession({clientType:n.clientType,clientId:n.clientId,agentCount:n.agentCount,model:n.model,mode:n.mode,toolCalls:n.toolCalls,inputTokens:n.inputTokens,outputTokens:n.outputTokens,cacheTokens:n.cacheTokens,costUsd:n.costUsd,timestamp:n.timestamp})}function gn(e){let t=R(e);if(t?.kind!==`sessions`)return;Ae.getState().setLiveSessions(t.sessions);let n=Date.now();if(n-vn>=5e3&&(vn=n,Nt()),n-_n<1e3)return;_n=n;let r=re(`sessions.status_update`,e.payload);r&&(P.getState().pushEvent(r),P.getState().setActive(!0))}var _n=0,vn=0,yn={"worktree.state":sn,"worktree.event":cn,"worktree.orphans":ln,"worktree.cleanup_result":un,"worktree.merge_result":dn,"worktree.diff_result":fn,"subagent.event":pn,"fleet.concurrency_update":mn,"client.status_update":hn,"sessions.status_update":gn};function bn(e,t){let n=e=>e.trim().replace(/\s+/g,` `).toLowerCase();return n(e)===n(t)}var xn=50,Sn=200;function Cn(e){return e.length<=300?e:`${e.slice(0,299)}…`}function wn(e){return{...e,text:Cn(e.text)}}function Tn(e){let t=[];for(let n of Object.values(e))n.state===`exited`&&t.push(n);if(t.length<=Sn)return e;t.sort((e,t)=>(t.exitedAt??t.lastSeenAt).localeCompare(e.exitedAt??e.lastSeenAt));let n={...e};for(let e of t.slice(Sn))delete n[e.id];return n}var En=ye(e=>({traces:[],contextMemories:{},transitions:[],pushTrace:t=>e(e=>{let n={...e.contextMemories},r=[...e.transitions],i=t.injected.map(wn),a=t.activated.map(wn);for(let e of i){let i=n[e.id];n[e.id]={...e,state:i?.state===`active`?`active`:`injected`,trigger:t.trigger,enteredAt:i?.enteredAt??t.at,lastSeenAt:t.at};let a=`${t.at}_injected_${e.id}`;r.some(e=>e.id===a)||r.unshift({id:a,at:t.at,memoryId:e.id,action:`injected`,reason:`${t.trigger} · score ${e.score.toFixed(2)}`})}return{traces:[{...t,activated:a,injected:i},...e.traces.filter(e=>e.runId!==t.runId)].slice(0,xn),contextMemories:Tn(n),transitions:r.slice(0,100)}}),applyContextSnapshot:t=>e(e=>{let n={...e.contextMemories},r=[...e.transitions],i=new Set(t.activeMemoryIds);for(let e of t.activeMemoryIds){let r=n[e];n[e]=r?{...r,state:`active`,lastSeenAt:t.at,exitedAt:void 0}:Dn(e,t.at,`active`)}for(let e of t.enteredMemoryIds){let n=`${t.at}_entered_${e}`;r.some(e=>e.id===n)||r.unshift({id:n,at:t.at,memoryId:e,action:`entered`,reason:`present in provider request`})}for(let e of t.exitedMemoryIds){let i=n[e];i&&(n[e]={...i,state:`exited`,exitedAt:t.at});let a=`${t.at}_exited_${e}`;r.some(e=>e.id===a)||r.unshift({id:a,at:t.at,memoryId:e,action:`exited`,reason:`absent from provider request`})}for(let[e,a]of Object.entries(n))if((a.state===`injected`||a.state===`active`)&&!i.has(e)&&(n[e]={...a,state:`exited`,exitedAt:t.at},!t.exitedMemoryIds.includes(e))){let n=`${t.at}_exited_before_provider_${e}`;r.some(e=>e.id===n)||r.unshift({id:n,at:t.at,memoryId:e,action:`exited`,reason:a.state===`injected`?`removed before provider request`:`absent from provider context snapshot`})}return{contextMemories:Tn(n),transitions:r.slice(0,100)}}),resetContext:()=>e({contextMemories:{},transitions:[]}),clear:()=>e({traces:[],contextMemories:{},transitions:[]})}));function Dn(e,t,n){return{id:e,kind:`unknown`,text:`Memory details were not present in this UI process.`,score:0,relationStrength:0,anchors:[],tags:[],activationReasons:[],importance:0,confidence:0,freshness:0,persistence:`unknown`,state:n,trigger:`context snapshot`,enteredAt:t,lastSeenAt:t,isPlaceholder:!0}}var On=100,kn=new Set([`exited`,`superseded`,`archived`,`staled`,`contradicted`]);function An(e,t=new Date){let n=e.event,r=Y(e.memoryId),i=Y(e.at)??t.toISOString(),a={id:`${n}_${t.getTime()}_${Math.random().toString(36).slice(2,7)}`,at:i,event:n};if(n===`memory.accepted`&&r)return{...a,action:`entered`,memoryId:r,label:`${r} entered memory`,detail:Nn(e)};if(n===`memory.merged`&&r){let t=Array.isArray(e.mergedIds)?e.mergedIds.length:0;return{...a,action:`merged`,memoryId:r,label:`${r} merged`,detail:t>0?`${t} records folded in`:void 0}}if(n===`memory.recovered`&&r)return{...a,action:`recovered`,memoryId:r,label:`${r} recovered`,detail:Y(e.reason)};if(n===`memory.deleted`&&r)return{...a,action:`exited`,memoryId:r,label:`${r} exited memory`,detail:Pn(e)};if(n===`memory.updated`&&r){let t=Y(e.status)??`updated`;return{...a,action:t===`deleted`?`exited`:`updated`,memoryId:r,label:t===`deleted`?`${r} exited memory`:`${r} updated → ${t}`,detail:Nn(e)}}if(n===`memory.graph_edge_added`){let t=Y(e.from),n=Y(e.to);if(!t?.startsWith(`mem:`)||!n?.startsWith(`mem:`))return null;let r=Y(e.relation)??`related_to`,i=Mn(e.weight),o=Array.isArray(e.evidence)?e.evidence.filter(e=>typeof e==`string`):[];return{...a,action:`related`,memoryId:t.startsWith(`mem:`)?t.slice(4):void 0,label:`${Fn(t)} ↔ ${Fn(n)}`,detail:[r,i===void 0?void 0:`weight ${i.toFixed(2)}`,o.length>0?`why: ${o.join(`, `)}`:void 0].filter(Boolean).join(` · `)}}return n===`memory.relationships_rebuilt`?{...a,action:`related`,label:`Memory relationships rebuilt`,detail:`${Mn(e.added)??0} added / ${Mn(e.proposed)??0} proposed`}:n===`memory.superseded`&&r?{...a,action:`superseded`,memoryId:r,label:`${r} → superseded`,detail:Y(e.reason)??Nn(e)}:n===`memory.archived`&&r?{...a,action:`archived`,memoryId:r,label:`${r} → archived`,detail:Y(e.reason)}:n===`memory.staled`&&r?{...a,action:`staled`,memoryId:r,label:`${r} → staled`,detail:Y(e.reason)??`anchor drift detected`}:n===`memory.contradicted`&&r?{...a,action:`contradicted`,memoryId:r,label:`${r} → contradicted`,detail:Y(e.reason)??`conflicting evidence`}:null}var jn=ye(e=>({items:[],pushEvent:t=>e(e=>{let n=An(t);return n?{items:[n,...kn.has(n.action)?e.items.filter(e=>!(kn.has(e.action)&&e.memoryId===n.memoryId)):e.items].slice(0,On)}:e}),clear:()=>e({items:[]})}));function Y(e){return typeof e==`string`&&e.length>0?e:void 0}function Mn(e){return typeof e==`number`&&Number.isFinite(e)?e:void 0}function Nn(e){let t=[Y(e.kind),Y(e.persistence)],n=Mn(e.confidence),r=Mn(e.freshness);return n!==void 0&&t.push(`confidence ${n.toFixed(2)}`),r!==void 0&&t.push(`freshness ${r.toFixed(2)}`),t.filter(Boolean).join(` · `)||void 0}function Pn(e){let t=Y(e.reason),n=Mn(e.removedEdges);return[t,n===void 0?void 0:`${n} edges removed`].filter(Boolean).join(` · `)||void 0}function Fn(e){let t=e.replace(/^mem:/,``);return t.length>26?`${t.slice(0,23)}…`:t}function In(e){return je.for(A(e)).getState()}function Ln(e){if(!e||e.length===0)return;let t=e.map(e=>e.status);return t.some(e=>e===`failed`)?`failed`:t.every(e=>e===`completed`||e===`skipped`)?`completed`:t.some(e=>e===`paused`)?`paused`:`running`}function Rn(e){let t=e.payload,n=Array.isArray(t.phases)?t.phases:void 0,r=Ln(n);H.getState().setState({phases:n,activePhaseId:typeof t.activePhaseId==`string`?t.activePhaseId:void 0,overallPercent:typeof t.overallPercent==`number`?t.overallPercent:void 0,autonomous:typeof t.autonomous==`boolean`?t.autonomous:void 0,title:typeof t.title==`string`?t.title:void 0,goal:typeof t.goal==`string`?t.goal:void 0,status:r,multiBoard:t.multiBoard===!0,lastError:r===`failed`?H.getState().lastError:null})}function zn(e){let t=e.payload,n={totalPhases:typeof t.totalPhases==`number`?t.totalPhases:0,completed:typeof t.completed==`number`?t.completed:0,failed:typeof t.failed==`number`?t.failed:0,totalTasks:typeof t.totalTasks==`number`?t.totalTasks:0,completedTasks:typeof t.completedTasks==`number`?t.completedTasks:0,failedTasks:typeof t.failedTasks==`number`?t.failedTasks:0};H.getState().setState({progress:n,overallPercent:typeof t.percentComplete==`number`?Math.round(t.percentComplete):void 0,status:n.failed>0||n.failedTasks>0?`failed`:`running`,lastEvent:`progress`})}function X(e){let t=e.payload,n=typeof t.title==`string`&&t.title?t.title:`Goal`,r=typeof t.error==`string`&&t.error?t.error:void 0;if(e.type===`goal.paused`){H.getState().setState({status:`paused`,autonomous:!1,lastEvent:`paused`}),f.info(`Goal paused`);return}if(e.type===`goal.resumed`){H.getState().setState({status:`running`,autonomous:!0,lastEvent:`resumed`}),f.info(`Goal resumed`);return}if(e.type===`goal.stopped`){H.getState().setState({status:`stopped`,autonomous:!1,lastEvent:`stopped`}),f.warn(`Goal stopped`);return}if(e.type===`goal.cleared`){H.getState().clear();return}if(e.type===`goal.reverted`){let e=t.ok===!0,n=typeof t.reverted==`number`?t.reverted:0,r=typeof t.reason==`string`?t.reason:void 0;e?f.success(n>0?`Reverted ${n} commit${n===1?``:`s`}`:`Nothing to revert`):f.error(`Revert failed: ${r??`unknown error`}`),H.getState().setState({lastEvent:`reverted`});return}if(e.type===`goal.saved`){H.getState().setState({lastEvent:`saved`}),f.success(`Goal graph saved`);return}if(e.type===`goal.completed`){H.getState().setState({status:`completed`,autonomous:!1,overallPercent:100,lastEvent:`completed`,lastError:null}),f.success(`${n} completed`);return}if(e.type===`goal.failed`||e.type===`goal.error`){let e=r??(typeof t.message==`string`?t.message:`${n} failed`);H.getState().setState({status:`failed`,autonomous:!1,lastEvent:`failed`,lastError:e}),f.error(e)}}function Bn(e){let t=e.payload;H.getState().setState({lastEvent:`list`,graphs:Array.isArray(t.graphs)?t.graphs:[]})}function Vn(e){let t=e.payload;De.getState().setGoal(t)}function Hn(e){let t=e.payload,n=A(e);if(he.getState().applyRemote(t,n??void 0),t.yolo!==!0||n&&n!==he.getState().activeSessionId)return;let r=z.getState().confirmInfo;r&&(D(r.id),z.getState().hideConfirm())}function Un(e){let t=e.payload;!t||!Array.isArray(t.variants)||F.getState().setInfo(t,t.sessionId)}function Wn(e){let t=j(e)??I(),n=e.payload,r;if(n.decision.type===`answer`){let e=n.decision.rationale&&n.decision.rationale!==n.decision.text?`\n\n_${n.decision.rationale}_`:``;r=`🧠 ${n.decision.text??``}${e}`}else r=n.decision.type===`deny`?`🧠 Denied: ${n.decision.reason??``}`:`🧠 The Brain escalated this question back to you — it needs human judgement.`;let i={kind:n.decision.type===`answer`?`answered`:n.decision.type===`deny`?`denied`:`ask_human`,question:n.question,decisionType:n.decision.type,text:n.decision.text,rationale:n.decision.rationale,reason:n.decision.reason,optionId:n.decision.optionId,at:Date.now()};t.addMessage({role:`assistant`,content:r,brainDecision:i})}function Gn(e){let t=j(e)??I(),n=e.payload,r=n.requestId??n.request?.id;if(r&&n.request?.question&&In(e).noteQuestion(r,n.request.question),n.event===`brain.council_vote`){In(e).recordVote(n);let t=n.requestId??`unknown`;P.getState().pushEvent({id:`council_${t}_${n.seatId??`seat-${Date.now()}`}`,kind:`brain:council_vote`,timestamp:Date.now(),source:n.model??n.persona??`seat`,target:`brain`,label:`${n.persona??`voter`} → ${n.status===`valid`?n.optionId??`stance`:n.status??`failed`}`,data:n,color:`#38bdf8`,flowGroup:`brain`});return}if(n.event===`brain.council_resolved`){In(e).recordResolution(n);let r=n.requestId??`unknown`,i=In(e).panels.find(e=>e.requestId===r),a=i?.seats??[],o=a.map(e=>`- **${e.persona}**${e.veto?` (veto)`:``} → ${e.status===`valid`?e.optionId??`stance`:e.status}${e.model?` · \`${e.model}\``:``}`),s=[`⚖️ **Council ${n.resolution??`resolved`}**`,`${n.validVoteCount??a.length}/${n.configuredSeatCount??a.length} seats`,`${n.distinctTargetCount??0} distinct target${n.distinctTargetCount===1?``:`s`}`,n.judgeUsed?`judge used`:void 0,n.usage?.totalTokens?`${n.usage.totalTokens} tok`:void 0].filter(Boolean).join(` · `),c={requestId:r,status:n.status??i?.status??`decided`,resolution:n.resolution??i?.resolution??`decided`,optionId:n.optionId??i?.optionId,question:i?.question??n.request?.question,reason:n.reason??i?.reason,configuredSeatCount:n.configuredSeatCount??i?.configuredSeatCount??a.length,validVoteCount:n.validVoteCount??i?.validVoteCount??a.length,distinctTargetCount:n.distinctTargetCount??i?.distinctTargetCount??new Set(a.map(e=>e.model||e.persona)).size,judgeUsed:!!(n.judgeUsed??i?.judgeUsed),totalTokens:n.usage?.totalTokens??i?.totalTokens,durationMs:n.usage?.durationMs??i?.durationMs,warnings:n.warnings??i?.warnings,seats:a.length>0?a:i?.seats??[]};t.addMessage({role:`assistant`,content:[s,...o,...(n.warnings??[]).map(e=>`> ⚠ ${e}`)].filter(Boolean).join(`
|
|
10
|
-
`),councilDecision:c});for(let e of n.warnings??[])f.warn(e);return}if(n.event===`brain.intervention`){let e=n.decision?.rationale??n.decision?.text??``,r=n.intervened?`🧠 **Brain intervention** — corrective guidance was sent to the agent.`:`🧠 **Brain check** — a distress signal was reviewed; no action needed.`,i={id:n.requestId??n.request?.id,kind:n.intervened?`intervention`:`check`,intervened:!!n.intervened,question:n.request?.question,source:n.request?.source,risk:n.request?.risk,decisionType:n.decision?.type??(n.intervened?`steer`:`observe`),optionId:n.decision?.optionId,text:n.decision?.text,rationale:e,reason:n.decision?.reason,at:Date.now()};t.addMessage({role:`assistant`,content:[r,n.request?.question??``,e?`_${e}_`:``].filter(Boolean).join(`
|
|
11
|
-
|
|
12
|
-
`),brainDecision:i}),n.intervened&&f.info(`Brain intervened: agent steered`)}else if(n.event===`brain.decision_denied`){let e=n.decision?.reason??n.request?.question??`request`,r={id:n.requestId??n.request?.id,kind:`denied`,question:n.request?.question,source:n.request?.source,risk:n.request?.risk,decisionType:`deny`,reason:e,rationale:n.decision?.rationale,at:Date.now()};t.addMessage({role:`assistant`,content:`🧠 Denied: ${e}`,brainDecision:r}),f.warn(`Brain denied: ${e}`)}else if(n.event===`brain.decision_answered`){let e=n.decision?.text??n.decision?.optionId??``,r=n.decision?.rationale??``,i={id:n.requestId??n.request?.id,kind:`answered`,question:n.request?.question,source:n.request?.source,risk:n.request?.risk,decisionType:n.decision?.type??`answer`,optionId:n.decision?.optionId,text:e,rationale:r,reason:n.decision?.reason,at:Date.now()};t.addMessage({role:`assistant`,content:`🧠 ${e}${r?`\n\n_${r}_`:``}`,brainDecision:i})}else if(n.event===`brain.decision_ask_human`){let e={id:n.requestId??n.request?.id,kind:`ask_human`,question:n.request?.question,source:n.request?.source,risk:n.request?.risk,decisionType:`ask_human`,rationale:n.decision?.rationale,reason:n.decision?.reason,at:Date.now()};t.addMessage({role:`assistant`,content:`🧠 The Brain escalated this question back to you — it needs human judgement.`,brainDecision:e})}}function Kn(e){let t=En.for(A(e)),n=jn.for(A(e)),r=e.payload;P.getState().pushEvent({id:`memory_${Date.now()}_${Math.random().toString(36).slice(2,7)}`,kind:`memory:event`,timestamp:Date.now(),source:`sage`,target:`leader`,label:r.event.replace(/^memory\./,``),data:r,color:`#a78bfa`,flowGroup:`memory`}),r.event===`memory.injector_run`&&t.getState().pushTrace(r),r.event===`memory.context_snapshot`&&t.getState().applyContextSnapshot(r),n.getState().pushEvent(r),r.event===`memory.staled`?f.warn(`Memory became stale: ${String(r.memoryId??``)}`):r.event===`memory.contradicted`?f.warn(`Memory contradicted: ${String(r.memoryId??``)}`):r.event===`memory.hygiene_completed`&&f.info(`SAGE hygiene completed`)}function qn(e){let t=e.payload,n=typeof t.kind==`string`?t.kind:typeof t.event==`string`?t.event:`collab.event`;P.getState().pushEvent({id:`collab_${Date.now()}_${Math.random().toString(36).slice(2,7)}`,kind:`collab:event`,timestamp:Date.now(),source:`collab`,target:typeof t.sessionId==`string`?t.sessionId:`session`,label:n,magnitude:1,data:t,raw:e.payload,color:`hsl(200, 70%, 55%)`,flowGroup:`collab`}),P.getState().setActive(!0)}function Jn(e){qn(e);let t=e.payload;t?.phase===`consumed`?f.success(`Tool injection applied${t.toolName?` to ${t.toolName}`:``}`):f.info(`Collab tool injection queued`)}function Yn(e){let t=e.payload?.entry;if(!t)return;let n=typeof t.iteration==`number`?t.iteration:0,r=typeof t.task==`string`?t.task:void 0,i=typeof t.status==`string`?t.status:void 0,a=typeof t.at==`string`?t.at:new Date().toISOString();De.getState().appendJournalEntry({iteration:n,task:r,status:i,timestamp:a}),P.getState().pushEvent({id:`eternal_${Date.now()}_${n}`,kind:`eternal:iteration`,timestamp:Date.now(),source:`eternal`,target:`goal`,label:r?`L${n}: ${r}`:`Eternal iteration ${n}`,magnitude:typeof t.costUsd==`number`?t.costUsd:1,data:t,raw:e.payload,color:i===`failure`?`hsl(0, 80%, 55%)`:`hsl(220, 80%, 60%)`,flowGroup:`eternal`}),P.getState().setActive(!0)}function Xn(e){let t=e.payload,n=A(e);x.getState().setEnv({cwd:t.cwd,projectRoot:t.projectRoot,projectName:t.projectRoot.split(/[/\\]/).pop()||t.projectRoot}),g.getState().setTreeLoading(!0,n),Rt(t.projectRoot,n),N().send({type:`files.tree`,payload:n?{path:t.cwd,sessionId:n}:{path:t.cwd}})}function Zn(e){let t=e.payload,n=z.getState().refinePanel,r=A(e)??n?.sessionId??null,i=j(e)??(r?fe(r):null),a=i?.pendingRefinement??null;if(n?.sessionId&&r&&n.sessionId!==r||n?.sessionId&&!i)return;if(!n&&a&&i){i.setRefining(!1);let e=a.text,n=a.images?.length?a.images.map((e,t)=>({id:`pr_${Date.now()}_${t}`,dataUrl:`data:${e.mime};base64,${e.data}`,mediaType:e.mime,bytes:Math.round(e.data.length*3/4)})):void 0,r=n&&n.length>0&&a.mode===`btw`?`queue`:a.mode??`queue`;if(t.error){i.setPendingRefinement(null),i.enqueue(e,r,n);return}let o=t.refined??``;if(!o||bn(o,e)){i.setPendingRefinement(null),i.enqueue(e,r,n);return}i.setPendingRefinement(null),z.getState().setRefinePanel({original:e,refined:o,english:t.english||o,status:`ready`,mode:n&&n.length>0&&a.mode===`btw`?`queue`:a.mode,images:n,...t.refinedWith?{provider:t.refinedWith.provider,model:t.refinedWith.model}:{},error:void 0,errorKind:void 0,sessionId:i.sessionId,resolve:()=>{}});return}if(!n)return;if(t.error){if(t.errorKind===`timeout`&&!n.retried&&t.retryTimeoutMs){z.getState().setRefinePanel({...n,status:`refining`,retried:!0}),N().refineModel(n.original,{timeoutMs:t.retryTimeoutMs});return}z.getState().setRefinePanel({...n,status:`failed`,error:t.error,errorKind:t.errorKind,fallbackRef:t.fallbackRef});return}let o=n.original;if(bn(t.refined,o)){z.getState().setRefinePanel(null);let e=i??I();e.addMessage({role:`user`,content:o}),e.setLoading(!0);let t=e.sessionId===`__unbound__`?void 0:e.sessionId;N().sendMessage(o,void 0,!1,t);return}z.getState().setRefinePanel({...n,status:`ready`,refined:t.refined,english:t.english,...t.refinedWith?{provider:t.refinedWith.provider,model:t.refinedWith.model}:{},error:void 0,errorKind:void 0})}function Qn(e){let t=e.payload;Ce.getState().setInfo({...t,fetchedAt:Date.now()})}function $n(e){let t=e.payload;S.getState().setFiles(t.files??[],t.error??null,t.repoPrefix??``,t.dirs??{})}function er(e){let t=e.payload;S.getState().selectedPath===t.path&&S.getState().setDiff({path:t.path,oldText:t.oldText??``,newText:t.newText??``,binary:t.binary,tooLarge:t.tooLarge,error:t.error})}function tr(e){let t=e.payload;if(!t.ok){f.error(t.error??`Git ${t.action} failed`);return}let n=N();n.getGitChanges(),n.getGitInfo()}function nr(e){let t=e.payload;Me.getState().setSnapshot({count:t.count,maxConcurrent:t.maxConcurrent,jobs:t.jobs??[]})}function rr(e){let t=e.payload;Me.getState().recordFired(t.name,t.ts)}function ir(e){let t=e.payload;f.info(t.message??`🦂 Chimera report ready. No follow-up started; open the mailbox to inspect it.`,8e3);let n=A(e);!t.reportId||!n||!c.getState().recordReport({reportId:t.reportId,sessionId:n,message:t.message??``,findingCount:t.findingCount??0,fileCount:t.fileCount??0,hasActionableFindings:t.hasActionableFindings===!0,receivedAt:Date.now(),actionedAt:null,source:`event`})||t.hasActionableFindings!==!0||j(e)?.addMessage({role:`system`,content:t.message??`🦂 Chimera report ${t.reportId} is ready — findings await review.`,chimeraReport:{reportId:t.reportId,actionable:!0,actionedAt:null}})}function ar(e){let t=A(e);if(!t)return;let n=e.payload.reports??[];c.getState().hydrateReports(t,n.filter(e=>e.reportId&&e.totalFindings>0&&e.lifecycleStatus!==`completed`&&e.lifecycleStatus!==`skipped`).map(e=>{let n=Date.parse(e.reviewedAt);return{reportId:e.reportId,sessionId:t,message:`🦂 Chimera report ready — ${e.totalFindings} finding(s) recorded for this session.`,findingCount:e.totalFindings,fileCount:0,hasActionableFindings:e.hasActionableFindings===!0,receivedAt:Number.isFinite(n)?n:Date.now(),actionedAt:null,source:`hydrate`}}))}var or={"goal-state.updated":Vn,"prefs.updated":Hn,"system_prompt.info":Un,"goal.state":Rn,"goal.progress":zn,"goal.paused":X,"goal.resumed":X,"goal.stopped":X,"goal.cleared":X,"goal.reverted":X,"goal.saved":X,"goal.completed":X,"goal.failed":X,"goal.error":X,"goal.list":Bn,"brain.answer":Wn,"brain.event":Gn,"memory.event":Kn,"collab.event":qn,"collab.injection.granted":Jn,"eternal.iteration":Yn,"working_dir.changed":Xn,"model.refine_result":Zn,"git.info":Qn,"git.changes":$n,"git.diff":er,"git.action_result":tr,"cron.snapshot":nr,"cron.job_fired":rr,"chimera.report_available":ir,"chimera.reports":ar},sr=new Map;function cr(e){let t=e??`__unbound__`,n=sr.get(t);if(n)return n;let r=new Set;return sr.set(t,r),r}function lr(e=I()){b.flush(`__thinking__:${e.sessionId}`);let t=ae(e.sessionId).iteration;e.flushThinkingLog(Math.max(1,t?.index??1)),e.clearThinking()}function ur(e){let t=j(e);if(!t)return;let n=e.payload,r=e=>e.toLocaleString(),i=[...n.tools.breakdown].sort((e,t)=>t.tokens-e.tokens).slice(0,8),a=[...n.messages.breakdown].sort((e,t)=>t.tokens-e.tokens).slice(0,8);t.addMessage({role:`assistant`,content:[`📊 **Context breakdown** (heuristic — 4 chars/token)`,``,`**Total estimate:** ${r(n.total)} tokens`,`• System prompt: ${r(n.systemPrompt)}`,`• Tool schemas: ${r(n.tools.total)} (${n.tools.count} tools)`,`• Messages: ${r(n.messages.total)} (${n.messages.count} messages)`,``,`**Top tool schemas:**`,...i.map(e=>` · ${e.name}: ${r(e.tokens)}`),``,`**Top messages:**`,...a.map(e=>` · #${e.index} ${e.role}: ${r(e.tokens)} — ${e.preview||`(empty)`}`)].join(`
|
|
13
|
-
`)})}function dr(e){let n=e.payload;!n||typeof n.message!=`string`||n.message.startsWith(`Resumed session`)||n.message.includes(`Session is already active`)||n.message.startsWith(`Swapped session`)||(n.success?f.success(n.message):f.error(n.message),N(t.getState().wsUrl).listSavedProviders())}function fr(e){let n=e.payload;if(!n.success||!n.provider||!n.model)return;let r=j(e),i=O(e);if(!r||!i)return;let a=i.data.session;i.setSession({id:a?.id??r.sessionId,startedAt:a?.startedAt??Date.now(),provider:n.provider,model:n.model,...a?.title?{title:a.title}:{}}),r.sessionId===v()&&(t.getState().setProvider(n.provider),t.getState().setModel(n.model));let o=n.previousProvider&&n.previousModel?`${n.previousProvider} / ${n.previousModel}`:pe.t(`settings:toast.previousModel`),s=`${n.provider} / ${n.model}`;r.addMessage({role:`system`,content:pe.t(n.runActive?`settings:toast.modelSwitchedRunActive`:`settings:toast.modelSwitchedNextRequest`,{from:o,to:s})})}function pr(e){let t=j(e);if(!t)return;M(e);let n=e.payload,r=n.reductions.length?n.reductions.map(e=>`${e.phase}: ${e.saved}`).join(`, `):`no-op`;n.repaired&&(r+=`; repaired ${n.repaired.removedToolUses?.length??0} tool_use, ${n.repaired.removedToolResults?.length??0} tool_result, ${n.repaired.removedMessages} empty messages`),t.addMessage({role:`system`,content:`🗜️ Context compacted: ${n.before} → ${n.after} tokens (saved ~${n.saved}). ${r}`}),O(e)?.patch({lastInputTokens:n.after})}function mr(e){let t=j(e);if(!t)return;M(e);let n=e.payload,r,i;n.budget&&n.budget.availableInputTokens>0?(r=Math.min(100,Math.max(0,Math.round(n.budget.load*100))),i=`input budget`):(r=n.maxContext>0?Math.min(100,Math.max(0,Math.round(n.tokens/n.maxContext*100))):0,i=`context`),t.addMessage({role:`assistant`,content:`Compaction failed at ${n.level} (${r}% ${i}): ${n.message}`,isError:n.fatal}),t.sessionId===v()&&f.error(`Compaction failed: ${n.message}`)}function hr(e){if(!C(e))return;let t=e.payload,n=`${t.tool}: ${t.pattern}`;t.decision===`always`?f.success(`Always allowed ${n}`):f.warn(`Denied ${n}`)}function gr(e){let t=j(e);if(!t)return;M(e);let n=e.payload,r=n.removedToolUses.length+n.removedToolResults.length+n.removedMessages,i=n.beforeMessages!==void 0&&n.afterMessages!==void 0?` Messages: ${n.beforeMessages} -> ${n.afterMessages}.`:``;t.addMessage({role:`assistant`,content:`Context repaired: removed ${r} orphan protocol item(s).${i} tool_use ${n.removedToolUses.length}, tool_result ${n.removedToolResults.length}.`})}function _r(e){let t=O(e);if(!t)return;M(e);let n=e.payload;t.setContextUsage(n.tokens,n.maxContext)}function vr(e){let t=O(e);if(!t)return;let n=e.payload;t.setEnvRates({maxContext:n.maxContext});let r=t.data;n.source===`provider`&&n.decreased===!0&&typeof n.previousMaxContext==`number`&&n.previousMaxContext>n.maxContext?t.setContextLimitWarning({previousMaxContext:n.previousMaxContext,maxContext:n.maxContext,providerId:n.providerId??r.session?.provider??`provider`,modelId:n.modelId??r.session?.model??`model`}):(n.decreased===!1||n.source===`configured`)&&t.setContextLimitWarning(null)}function yr(e){let t=O(e);if(!t)return;let n=e.payload;t.setContextUsage(n.used,n.limit);let r=n.limit>0?Math.round(n.used/n.limit*100):0;t.sessionId===v()&&f.warn(`Token threshold reached (${r}%)`)}function br(e){let t=A(e),n=e.payload.model||`<unknown>`,r=cr(t);r.has(n)||(r.add(n),(!t||t===v())&&f.warn(`Cost estimate unavailable for ${n}`))}function xr(e){let t=e.payload;oe({contextModes:t.modes.map(e=>({id:e.id,name:e.name,description:e.description,thresholds:e.thresholds,preserveK:e.preserveK,eliseThreshold:e.eliseThreshold,custom:e.custom}))}),(O(e)??null)?.setEnvRates({contextMode:t.activeId})}function Sr(e){let t=O(e);if(!t)return;let n=e.payload;t.setEnvRates({contextMode:n.id})}function Cr(e){let t=e.payload;typeof t.sessionId==`string`&&t.sessionId.length!==0&&ee.getState().update(t.sessionId,{stage:typeof t.stage==`string`?t.stage:`open_journal`,loadedBytes:typeof t.loadedBytes==`number`?t.loadedBytes:0,totalBytes:typeof t.totalBytes==`number`?t.totalBytes:0})}function wr(e){let t=e.payload;if(t.phase===`session.resume`||t.phase===`session.focus`){let n=typeof t.requestedSessionId==`string`?t.requestedSessionId:A(e);n&&ee.getState().end(n)}if(t.phase===`todos.get`||typeof t.requestedSessionId==`string`)return;if(t.code===`session_not_ready`){let n=A(e),r=typeof t.content==`string`?t.content:``;if(n&&r){let i=Array.isArray(t.images)?t.images:void 0,a=N();if(a.armNotReadyResend(n,{content:r,freshContext:t.freshContext===!0,...i?{images:i}:{}})){a.resumeSession(n);let t=j(e);t?.addMessage({role:`assistant`,content:`ℹ️ Session is reopening — your message will be resent automatically.`}),t?.setLoading(!1);return}}}let n=j(e)??I();lr(n),n.addMessage({role:`assistant`,content:`[${t.phase}] ${t.message}`,isError:!0}),n.setLoading(!1)}function Tr(e,t=180){let n=e.replace(/\s+/g,` `).trim();return n.length>t?`${n.slice(0,t-1)}…`:n}var Er=640;function Dr(){let[e,t]=(0,G.useState)({isMobile:!1,isSmall:!1,width:0});return(0,G.useEffect)(()=>{if(typeof window>`u`)return;let e=window.matchMedia(`(max-width: 768px)`),n=window.matchMedia(`(max-width: ${Er}px)`),r=()=>{t({isMobile:e.matches,isSmall:n.matches,width:window.innerWidth})};return r(),e.addEventListener(`change`,r),n.addEventListener(`change`,r),()=>{e.removeEventListener(`change`,r),n.removeEventListener(`change`,r)}},[]),e}function Or(){return typeof window>`u`?!1:window.matchMedia(`(max-width: 768px)`).matches}var kr=`<!-- wrongstack-bug-hunt`,Ar=/^<!-- wrongstack-bug-hunt scope="([^"]*)" max-bugs="([123])" -->\n/;function jr(e,t){return`${kr} scope="${encodeURIComponent(t.scope)}" max-bugs="${t.maxBugs}" -->\n${e}`}function Mr(e){let t=Ar.exec(e);if(t)try{return{scope:decodeURIComponent(t[1]??``),maxBugs:Number(t[2])}}catch{return}}function Nr(e){if(typeof e!=`string`)return Date.now();let t=Date.parse(e);return Number.isFinite(t)?t:Date.now()}function Pr(e){return`replay_${Date.now()}_${e}`}function Fr(){return typeof window>`u`?!1:window.location.pathname===`/debug`||window.location.pathname===`/analytics`||window.location.pathname===`/refresh-debug`}function Ir(e){return typeof e==`string`?e:Array.isArray(e)?e.filter(e=>!!e&&typeof e==`object`&&e.type===`text`&&typeof e.text==`string`).map(e=>e.text).join(`
|
|
14
|
-
`):``}function Lr(e){if(typeof e==`string`)return e.trim();if(!e||typeof e!=`object`||Array.isArray(e))return``;let t=e;for(let e of[`id`,`name`,`type`]){let n=t[e];if(typeof n==`string`&&n.trim())return n.trim()}return``}function Rr(e,t=[],n=[]){let r=Ye({messages:(Array.isArray(e)?e:[]).filter(e=>!!(e&&typeof e==`object`&&typeof e.role==`string`&&(e.role===`user`||e.role===`assistant`||e.role===`system`))),markers:t.filter(e=>!Br(e.source)),toolMeta:n,thinkingPlacement:`merged-after`}),i=[];for(let e of r){let t=Nr(e.ts),n=Pr(i.length);switch(e.kind){case`user`:{let r=Mr(e.text);i.push({id:n,role:`user`,content:e.text,timestamp:t,...r?{bugHunt:r}:{},...e.images?{attachments:Vr(e.images,n)}:{}});break}case`assistant`:i.push({id:n,role:`assistant`,content:e.text,timestamp:t});break;case`system`:i.push({id:n,role:`system`,content:e.text,timestamp:t});break;case`thinking`:i.push({id:n,role:`system`,content:``,timestamp:t,thinkingLog:{iteration:e.index,text:e.text,startedAt:t,durationMs:0,replayed:!0}});break;case`tool`:i.push({id:n,role:`tool`,content:``,toolName:e.name,toolInput:e.input,toolUseId:e.toolUseId,timestamp:t,...e.output===void 0?{}:{toolResult:e.output},...e.ok===void 0?{}:{isError:!e.ok},...e.durationMs===void 0?{}:{toolDurationMs:e.durationMs}});break;case`marker`:i.push({id:n,role:`system`,content:e.text,timestamp:t,isError:e.level===`error`||void 0})}}return i}var zr=new Set([`agent_spawned`,`agent_session_linked`,`agent_stopped`,`agent_error`,`delegate_started`,`delegate_completed`]);function Br(e){return zr.has(e)}function Vr(e,t){return e.map((e,n)=>{let r=e.mediaType??`image/png`,i=e.data?`data:${r};base64,${e.data}`:e.url;return{id:`${t}_img_${n}`,kind:`image`,mediaType:r,bytes:e.data?Math.floor(e.data.length*3/4):0,...i?{dataUrl:i}:{}}})}function Hr(e){let n=re(`session.start`,e.payload);n&&(P.getState().pushEvent(n),P.getState().setActive(!0));let r=e?.payload&&typeof e.payload==`object`?e.payload:{},a=r.sessionId;if(!a)return;ee.getState().end(a),`openSessionIds`in r&&se(Array.isArray(r.openSessionIds)?r.openSessionIds.filter(e=>typeof e==`string`):[]),(r.appVersion||r.latestVersion)&&oe({appVersion:String(r.appVersion??``),latestVersion:String(r.latestVersion??``),updateAvailable:!!r.updateAvailable}),Array.isArray(r.providerStatuses)&&ke.getState().hydrate(r.providerStatuses.map(e=>({providerId:e.providerId,model:e.model,state:e.state,reason:e.lastErrorKind??e.state,updatedAt:e.lastFailureAt??Date.now(),stateExpiresAt:e.stateExpiresAt??void 0}))),r.needsSetup&&Pe(`setup`);let s={};r.projectRoot!==void 0&&(s.projectRoot=r.projectRoot),r.projectName!==void 0&&(s.projectName=r.projectName),r.cwd!==void 0&&(s.cwd=r.cwd),Object.keys(s).length>0&&oe(s);let c=!o(a);i(a),de(a),te(a),ie(a);let l=fe(a),u=ue(a),f=t.getState(),p=u.data.session,h=Lr(r.provider),_=Lr(r.model),y=h||p?.provider||f.provider||``,b=_||p?.model||f.model||``,S=typeof r.startedAt==`string`?Date.parse(r.startedAt):NaN,C=Number.isFinite(S)?S:Date.now(),w=!!r.isRunning,ne=Ur(a),ae=r.replayReason===`focus`,le=!c&&(ae||v()!==a),D=c||r.reset===!0&&!le;D?(u.startSession({id:a,startedAt:C,model:b,provider:y}),En.for(a).getState().clear()):u.setSession({id:a,startedAt:p?.startedAt??C,model:b,provider:y,...p?.title?{title:p.title}:{}}),u.setEnvRates({maxContext:r.maxContext,mode:r.mode,contextMode:r.contextMode,inputCost:r.inputCost,outputCost:r.outputCost,cacheReadCost:r.cacheReadCost,reasoningEffortLevels:r.reasoningEffortLevels,hasReasoningEffortKey:`reasoningEffortLevels`in r,effortSupported:r.effortSupported===!0||r.effortSupported===!1?r.effortSupported:void 0,hasEffortSupportedKey:`effortSupported`in r,projectReasoningEffort:typeof r.projectReasoningEffort==`string`?r.projectReasoningEffort:void 0,hasProjectEffortKey:`projectReasoningEffort`in r});let O=r.replayMessages,k=Array.isArray(O)&&O.length>0,A=k?Rr(O,r.replayMarkers??[],r.replayToolMeta??[]):[],j=l.messages.length>0,M=j&&(w||le&&!ne);if(r.replayReason===`redisplay`&&j&&A.length>0){let e=l.messages[0]?.timestamp??0,t=A.filter(t=>t.timestamp<e);t.length>0&&l.setMessages([...t,...l.messages])}else A.length>0&&!M?l.setMessages(A):D&&r.reset===!0&&A.length===0&&!w&&l.clearMessages();w||l.clearThinking(),l.setLoading(w);let F=r.replayUsage;if(O&&F){let e=u.data,t=F.input??0,n=F.output??0,r=F.cacheRead??0,i=F.cacheWrite??0;u.patch({totalTokens:{input:t,output:n,cacheRead:r,cacheWrite:i},cost:((t+i)*e.inputCost+n*e.outputCost+r*e.cacheReadCost)/1e6})}let I=r.lastInputTokens;typeof I==`number`&&I>0&&u.patch({lastInputTokens:I});let L=r.clearedSessionId;if(L){let e=new Map;for(let[t,n]of E.getState().agents)n.sessionId!==L&&e.set(t,n);E.setState({agents:e})}Array.isArray(r.agentSessions)&&r.agentSessions.length>0&&E.getState().hydrateAgentSessions(r.agentSessions,a);let R=v(),pe=R===`__unbound__`||!o(R),me=T.getState(),he=D&&!k&&!r.needsSetup&&!Re()&&!Fr()?{currentView:z.getState().currentView,activeActivity:z.getState().activeActivity,sidebarOpen:z.getState().sidebarOpen}:null;!ne&&!pe&&R!==a||(me.openTabIds.includes(a)?(m(a),ce(a),d(a),me.markSeen(a)):me.openTab(a,{}),y&&b?t.getState().setConfig({provider:y,model:b}):y&&t.getState().setConfig({provider:y}),K(w?`running`:`ready`),D&&(!r.needsSetup&&Re()&&!Fr()&&ve({sidebarOpen:!1}),z.getState().setSearchActiveMessageId(null),g.getState().setTreeLoading(!0,a),Rt(x.getState().projectRoot,a),N().send({type:`files.tree`,payload:{path:x.getState().cwd,sessionId:a}})),he&&z.setState(he),k&&!r.needsSetup&&!Fr()&&(Re()?ve({sidebarOpen:!1}):z.getState().currentView!==`chat`&&Fe(`chat`)),k&&Or()&&z.getState().setSidebarOpen(!1))}function Ur(e){try{return N().consumeRequestedSwitch(e)}catch{return!1}}function Z(e,t){e.sessionId===v()&&t()}function Wr(e){let t=j(e),n=O(e);if(!t||!n)return;M(e);let r=e.payload&&typeof e.payload==`object`?e.payload:{},i=Ir(r.content),a=r.usage,o=(a?.input??0)+(a?.cacheRead??0)+(a?.cacheWrite??0);if(o>0&&n.patch({lastInputTokens:o}),r.usage){n.updateUsage(r.usage,r.provider);let{inputCost:e,outputCost:t,cacheReadCost:i}=n.data,a=((r.usage.input??0)*e+(r.usage.cacheWrite??0)*e+(r.usage.output??0)*t+(r.usage.cacheRead??0)*i)/1e6;a>0&&n.addCost(a)}let c=s(r.stopReason);c&&t.setLoading(!1);let l=t.currentAssistantMessageId;if(l){b.flush(l);let e=t.messages.find(e=>e.id===l)?.content??``;i.trim()&&(e.trim()?i.startsWith(e)&&i.length>e.length&&t.updateMessage(l,{content:i}):t.updateMessage(l,{content:i})),t.finalizeMessage(l,{final:c}),r.usage&&(r.usage.output??0)>0&&t.updateMessage(l,{usage:r.usage})}else if(i.trim()){let e=t.addMessage({role:`assistant`,content:i,usage:r.usage&&(r.usage.output??0)>0?r.usage:void 0});t.finalizeMessage(e,{final:c})}t.setCurrentAssistantMessage(null),b.flush(`__thinking__:${t.sessionId}`),t.clearThinking()}function Gr(e){let t=j(e);if(!t)return;M(e);let n=e.payload;b.flush(`__thinking__:${t.sessionId}`),t.flushThinkingLog(n.index),t.clearThinking();let r=O(e),i=r?.data.iteration;r&&i&&r.setIteration({index:n.index,max:i.max})}function Kr(e){let t=j(e);if(!t)return;let n=e.payload;t.addMessage({role:`assistant`,content:`Iteration limit reached: ${n.currentIterations}/${n.currentLimit}.`,isError:!0}),Z(t,()=>f.warn(`Iteration limit reached (${n.currentIterations}/${n.currentLimit})`))}function qr(e){let t=j(e);if(!t)return;let n=e.payload,r=Math.max(0,Math.round(n.delayMs/100)/10);Z(t,()=>f.warn(`${n.providerId} retry ${n.attempt} after ${r}s (${n.status})`))}function Jr(e){let t=j(e);if(!t)return;let n=e.payload;t.addMessage({role:`assistant`,content:[`Provider error from \`${n.providerId}\` (${n.status}).`,n.description,n.retryable?`_Retryable; WrongStack may recover automatically._`:``].filter(Boolean).join(`
|
|
15
|
-
|
|
16
|
-
`),isError:!0}),Z(t,()=>f.error(`${n.providerId} provider error (${n.status})`))}function Yr(e,n,r){let i=O(n),a=i?.data.session;i&&a&&i.setSession({...a,provider:r.providerId,model:r.model}),e.sessionId===v()&&t.getState().setConfig({provider:r.providerId,model:r.model})}function Xr(e){let t=j(e);if(!t)return;let r=e.payload,i=`${r.from.providerId}/${r.from.model}`,a=`${r.to.providerId}/${r.to.model}`;Yr(t,e,r.to),t.addMessage({role:`assistant`,content:`Provider fallback: \`${i}\` returned ${r.status}; switching to \`${a}\`${r.providerSwitched?` with provider change`:``}.`}),Z(t,()=>f.warn(`Fallback to ${a}`)),n(t.sessionId).pendingFallback&&t.setPendingFallback(null);let o=y.getState().pending;o&&t.sessionId===v()&&o.from.providerId===r.from.providerId&&o.from.model===r.from.model&&(typeof r.requestId==`string`&&r.requestId.length>0&&o.requestId!==r.requestId||y.getState().clear())}function Zr(e){let t=j(e);if(!t)return;let n=e.payload,r=`${n.to.providerId}/${n.to.model}`,i=n.from?`${n.from.providerId}/${n.from.model}`:``;Yr(t,e,n.to),t.addMessage({role:`assistant`,content:i?`Model switched: \`${i}\` → \`${r}\``:`Model switched to \`${r}\``}),Z(t,()=>f.info(`Model: ${r}`))}function Qr(e){let t=j(e);if(!t)return;let n=e.payload,r={requestId:n.requestId,from:n.from,status:n.status,candidates:n.candidates,autoSwitchSeconds:n.autoSwitchSeconds,timestamp:Date.now()};if(t.setPendingFallback(r),t.sessionId===v()){y.getState().setPending(r);return}T.getState().setAttention(t.sessionId,!0)}function $r(e){let t=e.payload;ke.getState().update({providerId:t.providerId,model:t.model,state:t.newState,reason:t.reason,updatedAt:t.timestamp,stateExpiresAt:t.stateExpiresAt,lastErrorKind:t.lastErrorKind,lastErrorStatus:t.lastErrorStatus??void 0,lastErrorMessage:t.lastErrorMessage??void 0,lastSessionId:t.lastSessionId??void 0,lastAgentId:t.lastAgentId??void 0});let n=`${t.providerId}/${t.model}`;t.newState===`blocked`&&t.oldState!==`blocked`?f.warn(`${n} entered the limit-reset waiting room`):t.newState===`healthy`&&t.oldState!==`healthy`&&f.success(`${n} recovered and rejoined model routing`)}function ei(e){let t=e.payload;if(t&&typeof t==`object`&&`error`in t){ke.getState().setError(`Provider status tracking not available`);return}ke.getState().applySnapshot(t)}function ti(e){let t=e.payload,n=Array.isArray(t?.lines)?t.lines:[],r=[];for(let e of n){if(!e||typeof e!=`object`)continue;let t=e,n=typeof t.providerId==`string`?t.providerId:``,i=typeof t.model==`string`?t.model:``,a=t.from,o=t.to;if(!n||!i||a!==`healthy`&&a!==`degraded`&&a!==`blocked`||o!==`healthy`&&o!==`degraded`&&o!==`blocked`)continue;let s=t.error??null;r.push({ts:typeof t.ts==`number`?t.ts:0,providerId:n,model:i,from:a,to:o,reason:typeof t.reason==`string`?t.reason:``,expiresAt:typeof t.expiresAt==`number`?t.expiresAt:null,error:s})}ke.getState().setAudit(r)}function ni(e){let t=j(e);if(!t)return;let n=e.payload;t.addMessage({role:`assistant`,content:`Waiting room skipped \`${n.providerId}/${n.model}\`. ${n.lastError}`})}function ri(e){let t=j(e);if(!t)return;M(e);let n=e.payload;Z(t,()=>f.warn(`Provider stream event skipped: ${n.eventType}`)),t.addMessage({role:`assistant`,content:`Provider stream warning (${n.eventType}): ${n.message}`,isError:!0})}function ii(e){let t=j(e);if(!t)return;M(e);let n=e.payload,r=n.tools||n.kind||`assistant response`;if(n.action===`steer`){Z(t,()=>f.info(`Possible repetition noticed for ${r}; changing approach.`));return}t.addMessage({role:`assistant`,content:`Loop guard stopped the turn: ${r} made no progress ${n.repeatCount} time(s) (iteration ${n.iteration+1}).`,isError:!0}),Z(t,()=>f.warn(`Loop guard stopped the turn`))}function ai(e){let t=j(e);if(!t)return;M(e);let n=e.payload,r=Tr(n.task),i=n.subagentId??n.target,a=E.getState();a.applyEvent({kind:`spawned`,subagentId:i,name:n.target,description:r,sessionId:t.sessionId}),L.getState().recordDelegateStarted(t.sessionId,{target:n.target}),a.applyEvent({kind:`task_started`,subagentId:i,name:n.target,description:r,sessionId:t.sessionId}),a.pushAgentTimelineEntry({subagentId:i,agentName:n.target,content:r,kind:`status`,iteration:0,ts:new Date().toISOString(),status:`delegating`,sessionId:t.sessionId})}function oi(e){let t=j(e);if(!t)return;M(e);let n=e.payload,r=E.getState(),i=n.subagentId??n.target;r.applyEvent({kind:`task_completed`,subagentId:i,name:n.target,sessionId:t.sessionId,status:n.ok?`success`:n.status===`timeout`||n.status===`host_timeout`?`timeout`:`failed`,iterations:n.iterations,toolCalls:n.toolCalls,finalText:n.summary,...n.ok?{}:{failureReason:n.status??`failed`}}),L.getState().recordDelegateCompleted(t.sessionId,{target:n.target,ok:n.ok,toolCalls:n.toolCalls}),r.pushAgentTimelineEntry({subagentId:i,agentName:n.target,content:n.summary,kind:n.ok?`status`:`error`,iteration:n.iterations,ts:new Date().toISOString(),status:n.status??(n.ok?`completed`:`failed`),sessionId:t.sessionId}),n.ok||Z(t,()=>f.warn(`Delegate failed: ${n.target}`))}function si(e){let t=j(e);if(!t)return;let n=e.payload;t.addMessage({role:`assistant`,content:`Session ${n.sessionId} is damaged: ${n.detail}`,isError:!0}),Z(t,()=>f.error(`Session damage detected`))}function ci(e){let t=j(e);if(!t)return;let n=e.payload;t.addMessage({role:`assistant`,content:`Session rewound to prompt #${n.toPromptIndex}. Removed ${n.removedEvents} event(s); reverted ${n.revertedFiles.length} file(s).`}),Z(t,()=>f.info(`Session rewound`))}function li(e){let t=j(e);if(!t)return;let n=e.payload;Z(t,()=>f.success(`Checkpoint #${n.promptIndex} written (${n.fileCount} file(s))`))}function ui(e){if(!C(e))return;let t=e.payload;P.getState().pushEvent({id:`inflight_${Date.now()}`,kind:`session:start`,timestamp:Date.now(),source:`session`,target:`leader`,label:`In-flight: ${t.context}`,magnitude:1,data:t,raw:e.payload,flowGroup:`session`})}function di(e){C(e)&&e.payload.reason===`recovered`&&f.info(`Recovered previous in-flight operation`)}function fi(){typeof document<`u`&&document.dispatchEvent(new CustomEvent(`chat:session-end`))}function pi(e){let t=e.payload,n=k(),r=n&&n!==`__unbound__`?n:null,i=(t.sessions??[]).map(e=>({...e,isCurrent:r?e.id===r:e.isCurrent}));a.getState().setEntries(i,t.error??null)}var mi={"context.debug":ur,"key.operation_result":dr,"model.switch_result":fr,"context.compacted":pr,"compaction.failed":mr,"provider.response":Wr,"iteration.completed":Gr,"iteration.limit_reached":Kr,"provider.retry":qr,"provider.error":Jr,"provider.fallback":Xr,"provider.fallback_pending":Qr,"provider.model_switched":Zr,"provider.status_changed":$r,"provider.active_blocked":ni,"provider.stream_error":ri,"tool.loop_detected":ii,"delegate.started":ai,"delegate.completed":oi,"trust.persisted":hr,"context.repaired":gr,"ctx.pct":_r,"ctx.max_context":vr,"token.threshold":yr,"token.cost_estimate_unavailable":br,"session.end":fi,"session.resume_progress":Cr,"session.damaged":si,"session.rewound":ci,"checkpoint.written":li,"in_flight.started":ui,"in_flight.ended":di,"context.modes.list":xr,"context.mode.changed":Sr,"sessions.list":pi,"provider.status.snapshot":ei,"provider.audit.history":ti,error:wr};function hi(e){let t=e.payload;!t.jobId||!t.kind||U.getState().jobStarted(t.jobId,t.kind)}function gi(e){let t=e.payload;!t.jobId||!t.phase||!Number.isFinite(t.completed)||!Number.isFinite(t.total)||U.getState().jobProgress(t.jobId,{phase:t.phase,completed:t.completed??0,total:t.total??0})}function _i(e){let t=e.payload;t.workspaceId&&U.getState().workspaceCompleted(t.workspaceId)}function vi(e){let t=e.payload;t.snapshot&&U.getState().setSnapshot(t.snapshot,t.stale??!1)}function yi(e){let t=e.payload;t.reportId&&U.getState().reportReady(t.reportId)}function bi(e){let t=e.payload;t.jobId&&U.getState().jobFailed(t.jobId,t.error??`TechStack job failed`)}function xi(e){let t=e.payload;t.jobId&&U.getState().jobCancelled(t.jobId)}var Si={"techstack.job.started":hi,"techstack.job.progress":gi,"techstack.workspace.completed":_i,"techstack.snapshot.updated":vi,"techstack.report.ready":yi,"techstack.job.failed":bi,"techstack.job.cancelled":xi};function Q(e){return j(e)??I()}function Ci(e){return O(e)??ne()}function wi(e){let t=e.payload;Q(e).addMessage({role:`assistant`,content:[`🛠️ **Registered tools** (${t.tools.length})`,``,...t.tools.map(e=>`• \`${e.name}\`${e.params.length?` (${e.params.join(`, `)})`:``} — ${e.description||`_no description_`}`)].join(`
|
|
17
|
-
`)})}function Ti(e){let t=e.payload,n=t.text?.trim();Q(e).addMessage({role:`assistant`,content:t.error?`Memory read failed: ${t.error}`:n?`🧠 **Memory** \n\n${n}`:`🧠 **Memory**
|
|
18
|
-
|
|
19
|
-
_empty — nothing remembered yet_`})}function Ei(e){let t=e.payload,n=Q(e);if(!t.success){n.addMessage({role:`assistant`,content:`❌ **Config Doctor failed**\n\n${t.error??`Unknown config error.`}`,isError:!0});return}if(!t.changed){n.addMessage({role:`assistant`,content:`✅ **Config Doctor** — active profile config is healthy.\n\n\`${t.configPath}\``});return}let r=t.changes.slice(0,40),i=[t.applied?`✅ **Config Doctor** — repaired ${t.changes.length} field(s).`:`🩺 **Config Doctor** — found ${t.changes.length} repairable field(s).`,``,...r.map(e=>`- \`${e.path}\` — ${e.action===`added`?`missing default`:`invalid shape; default required`}`)];t.changes.length>r.length&&i.push(`- _…and ${t.changes.length-r.length} more_`),i.push(``,`Config: \`${t.configPath}\``),t.applied&&t.backupPath&&i.push(`Backup: \`${t.backupPath}\``),t.applied||i.push(``,"Run `/doctor fix` to apply these repairs."),n.addMessage({role:`assistant`,content:i.join(`
|
|
20
|
-
`)})}function Di(e){let t=e.payload;if(t.error){Q(e).addMessage({role:`assistant`,content:`❌ ${t.error}`});return}let n=t.memories??[],r=t.stats,i=[`## 🧠 SAGE`];if(r){let e=r.byStatus.active??0,t=r.byStatus.stale??0,n=r.byStatus.archived??0;i.push(`**Total:** ${r.total} · Active: ${e} · Stale: ${t} · Archived: ${n} · Graph edges: ${r.edges}`);let a=Object.entries(r.byKind).filter(([,e])=>e>0).map(([e,t])=>`${e}=${t}`).join(`, `);a&&i.push(`**Kinds:** ${a}`),i.push(``)}if(n.length===0)i.push(`_No entries to display._`);else{for(let e of n.slice(0,20)){let t=e.text.length>80?`${e.text.slice(0,78)}…`:e.text,n=e.tags.length>0?e.tags.map(e=>`\`${e}\``).join(` `):``,r=e.createdAt.slice(0,10);i.push(`- \`${e.id.slice(0,12)}…\` [${e.kind}|${e.status}] ${r} — ${t}${n?` ${n}`:``}`)}n.length>20&&i.push(`_…and ${n.length-20} more_`)}i.push(``),i.push("*Use `/memory` in the TUI or build a Memory Manager panel for full editing.*"),Q(e).addMessage({role:`assistant`,content:i.join(`
|
|
21
|
-
`)})}function Oi(e){let t=e.payload;if(t.error){Q(e).addMessage({role:`assistant`,content:`❌ ${t.error}`});return}if(!t.memory){Q(e).addMessage({role:`assistant`,content:`❌ Memory not found.`});return}let n=t.memory,r=n.tags.length>0?n.tags.map(e=>`\`${e}\``).join(` `):`—`,i=n.anchors.length>0?n.anchors.map(e=>e.path??e.type).join(`, `):`—`,a=[`## 🧠 Memory: \`${n.id}\``,``,`**Text:** ${n.text}`,`**Kind:** \`${n.kind}\` · **Status:** \`${n.status}\``,`**Created:** ${n.createdAt.slice(0,10)} · **Updated:** ${n.updatedAt.slice(0,10)}`,`**Importance:** ${n.importance} · **Confidence:** ${n.confidence}`,`**Tags:** ${r}`,`**Anchors:** ${i}`];Q(e).addMessage({role:`assistant`,content:a.join(`
|
|
22
|
-
`)})}function ki(e){let t=e.payload;if(t.error){Q(e).addMessage({role:`assistant`,content:`❌ Update failed: ${t.error}`});return}if(t.memory){let n=String(t.memory.id??``);Q(e).addMessage({role:`assistant`,content:`✅ Memory \`${n}\` updated.`})}}function Ai(e){let t=e.payload;if(t.error){Q(e).addMessage({role:`assistant`,content:`❌ Failed to create memory: ${t.error}`});return}if(t.memory){let n=String(t.memory.id??``);Q(e).addMessage({role:`assistant`,content:`✅ Memory \`${n}\` created.`})}}function ji(e){let t=e.payload,n=Q(e);if(t.error){n.addMessage({role:`assistant`,content:`❌ Recover failed: ${t.error}`});return}if(!t.memory)return;let r=String(t.memory.id??``);if(t.noop){let e=t.activeId??r;n.addMessage({role:`assistant`,content:`ℹ️ Nothing to recover — \`${e}\` is already the active version.`});return}n.addMessage({role:`assistant`,content:`✅ Memory \`${r}\` recovered.`})}function Mi(e){let t=e.payload,n=Q(e);if(t.error){n.addMessage({role:`assistant`,content:`❌ Candidate resolve failed: ${t.error}`});return}if(!t.candidate)return;let r=t.resolvedAction===`reject`?`rejected`:`accepted`;n.addMessage({role:`assistant`,content:`✅ Candidate \`${t.candidate.id}\` ${r}.`})}function Ni(e){let t=e.payload,n=Q(e);if(t.error){n.addMessage({role:`assistant`,content:`❌ Backfill failed: ${t.error}`});return}let r=`examined ${t.examined??0} · recoverable ${t.recoverable??0} · recovered ${t.recovered??0}`;n.addMessage({role:`assistant`,content:t.dryRun?`ℹ️ Backfill preview (dry-run) — ${r}. Re-run with apply to write.`:`✅ Backfill applied — ${r}.`})}function Pi(e){let t=e.payload;if(!t.enabled){Q(e).addMessage({role:`assistant`,content:`🎯 **Skills**
|
|
23
|
-
|
|
24
|
-
_disabled (config.features.skills = false)_`});return}let n=[`🎯 **Skills** (${t.skills.length})`,``,...t.skills.length===0?[`_none registered_`]:t.skills.map(e=>`• \`${e.name}\`${e.version?` v${e.version}`:``} _(${e.source})_ — ${e.description||e.trigger||`_no description_`}`)];t.error&&n.push(``,`⚠ ${t.error}`),Q(e).addMessage({role:`assistant`,content:n.join(`
|
|
25
|
-
`)})}function Fi(e){let t=e.payload;Ci(e).setDroppedTools((t.maxTools??0)>0?t.droppedTools??0:0),Q(e).addMessage({role:`assistant`,content:[`🩺 **Runtime diagnostics**`,``,`**Provider:** \`${t.provider}\` / \`${t.model}\``,`**Mode:** \`${t.mode}\``,`**Session:** \`${t.sessionId}\``,`**CWD:** \`${t.cwd}\``,``,`**Tools:** ${t.tools.count}`,`**Messages:** ${t.messages} · **Todos:** ${t.todos}`,`**Usage:** ${t.usage.input.toLocaleString()} in · ${t.usage.output.toLocaleString()} out${t.usage.cacheRead?` · ${t.usage.cacheRead.toLocaleString()} cache`:``}`,``,`**Features:** memory=${t.features.memory?`✓`:`✗`} · skills=${t.features.skills?`✓`:`✗`} · modelsRegistry=${t.features.modelsRegistry?`✓`:`✗`}`].join(`
|
|
26
|
-
`)})}function Ii(e){let t=e.payload,n=Math.floor(t.elapsedMs/1e3),r=n<60?`${n}s`:n<3600?`${Math.floor(n/60)}m ${n%60}s`:`${Math.floor(n/3600)}h ${Math.floor(n%3600/60)}m`,i=Ci(e).data.lastInputTokens,a=t.currentRequest?.cacheRead??0;Ci(e).setCacheStats(t.cache?{readTokens:t.cache.readTokens,writeTokens:t.cache.writeTokens,hitRatio:t.cache.hitRatio,providers:t.cache.providers??[],coverageTokens:Math.max(0,Math.min(i,a))}:null),Q(e).addMessage({role:`assistant`,content:[`📈 **Session stats**`,``,`**Session:** \`${t.sessionId}\``,`**Provider/Model:** \`${t.provider}\` / \`${t.model}\``,`**Elapsed:** ${r}`,``,`**Usage:** ${t.usage.input.toLocaleString()} in · ${t.usage.output.toLocaleString()} out`,...t.cache&&t.cache.readTokens>0?[`**Cache:** ${t.cache.readTokens.toLocaleString()} read · ${t.cache.writeTokens.toLocaleString()} write · hit ratio ${(t.cache.hitRatio*100).toFixed(1)}%`]:[],`**Cost:** ${t.cost.toFixed(4)}`,``,`**Messages:** ${t.messages} · **Files read:** ${t.readFiles} · **Tools available:** ${t.tools}`,...t.sideEffectCount?[`**Side effects:** ⚠ ${t.sideEffectCount}`]:[]].join(`
|
|
27
|
-
`)})}function Li(e){let t=e.payload,n=O(e);n&&n.setTodos(t.todos??[])}function Ri(e){let t=e.payload;x.getState().setModes(t.modes.map(e=>({id:e.id,name:e.name,description:e.description}))),Ci(e).setEnvRates({mode:t.activeId})}function $(e){Se.getState().handleResult(e.type,e.payload)}var zi={...dt,...mi,...yn,...on,...or,...Mt,...Si,"config.doctor.result":Ei,"session.start":e=>{Hr(e),Nt()},"specs.list":e=>{let t=e.payload;Oe.getState().setSpecs(t.specs??[])},"specs.detail":e=>{Oe.getState().setDetail(e.payload)},"sdd.board.snapshot":e=>{Ee.getState().setSnapshot(e.payload)},"sdd.board.list":e=>{let t=e.payload;Ee.getState().setBoards(t.boards??[])},"sdd.board.lifecycle_result":e=>{let t=e.payload,n=Ee.getState();n.setLifecycleResult({...t,at:Date.now()}),n.setDestroying(!1),t.op===`destroy`&&t.ok&&xe.getState().reset()},"sdd.spec.snapshot":e=>{xe.getState().setSnapshot(e.payload)},"sdd.spec.agent_text":e=>{xe.getState().setAgentText(e.payload.text??``)},"sdd.spec.error":e=>{xe.getState().setError(e.payload.message??`Error`)},"sdd.run.started":e=>{xe.getState().setStartedRunId(e.payload.runId??null)},"goal.assess.result":e=>{let t=e.payload;we.getState().setResult({realistic:t.realistic,durationClaimed:t.durationClaimed,explanation:t.explanation,recommendedDuration:t.recommendedDuration,concerns:t.concerns,parseFailed:t.parseFailed,parseError:t.parseError,reqSeq:t.reqSeq??0})},"kanban.list":$,"kanban.get":$,"kanban.health":$,"kanban.workbench":$,"kanban.create":$,"kanban.duplicate":$,"kanban.update":$,"kanban.delete":$,"kanban.generate":$,"kanban.snapshot":$,"kanban.taskgraph.export":$,"kanban.taskgraph.sync":$,"kanban.task.ready":$,"kanban.task.add":$,"kanban.task.split":$,"kanban.task.merge":$,"kanban.task.update":$,"kanban.task.move":$,"kanban.task.copy":$,"kanban.task.transfer":$,"kanban.task.transition":$,"kanban.task.chain":$,"kanban.task.chain.get":$,"kanban.task.claim":$,"kanban.task.release":$,"kanban.task.metric.add":$,"kanban.task.metric.update":$,"kanban.task.check.add":$,"kanban.task.check.update":$,"kanban.task.note.add":$,"kanban.task.assign":$,"kanban.task.dispatch":$,"kanban.task.remove":$,"kanban.task.get":$,"kanban.board.history":$,"kanban.run.start":$,"kanban.supervisor.status":$,"kanban.supervisor.audit":$,"kanban.task.verify":$,"kanban.task.verification_started":$,"kanban.task.verification_completed":$,"kanban.decomposition.approve":$,"kanban.decomposition.reject":$,"kanban.decomposition.resolved":$,"kanban.decomposition.applied":$,"tools.list":wi,"memory.list":Ti,"memory.sage.list":Di,"memory.sage.get":Oi,"memory.sage.update":ki,"memory.sage.remember":Ai,"memory.sage.recover":ji,"memory.sage.candidateResolve":Mi,"memory.sage.backfillRecoverable":Ni,"skills.list":Pi,"diag.get":Fi,"stats.get":Ii,side_effects:e=>{let t=e.payload;Te.for(A(e)).getState().setSideEffects(t.sideEffects??[])},"todos.updated":Li,"todos.cleared":e=>{let t=O(e);t&&t.setTodos([])},"agent.timeline.message":e=>{let t=e.payload;E.getState().pushAgentTimelineEntry({subagentId:t.subagentId,sessionId:A(e)??void 0,agentName:t.agentName,content:t.content,kind:t.kind,iteration:t.iteration,ts:t.ts,toolName:t.toolName,toolOk:t.toolOk,costUsd:t.costUsd})},"agent.status_changed":e=>{let t=e.payload;E.getState().pushAgentTimelineEntry({subagentId:t.subagentId,sessionId:A(e)??void 0,agentName:t.agentName,content:t.summary??t.status,kind:`status`,iteration:0,ts:t.ts,status:t.status})},"tasks.updated":e=>{},"plan.updated":e=>{},"modes.list":Ri,"session.checkpoints":e=>{},"process.list":e=>{},"projects.list":e=>{},"projects.added":e=>{},"projects.selected":e=>{},"tool.disabled":e=>{},"tool.enabled":e=>{},"provider.response":e=>{Wr(e)},"tool.progress":e=>{wt(e);let t=V(e),n=B.getState();for(let e of t)n.recordFileEvent(e)},"tool.started":e=>{Ct(e);let t=V(e);t.length>0&&B.getState().startActivities(t)},"tool.executed":e=>{Tt(e);let t=e.payload;t.id&&B.getState().finishTool(t.id,{durationMs:t.durationMs,ok:t.ok!==!1})},"codemap.tool_started":e=>{M(e);let t=V(e);t.length>0&&B.getState().startActivities(t)},"codemap.tool_executed":e=>{M(e);let t=e.payload;t.id&&B.getState().finishTool(t.id,{durationMs:t.durationMs,ok:t.ok!==!1})},"codemap.file_event":e=>{let t=V(e),n=B.getState();for(let e of t)n.recordFileEvent(e)},"codemap.index_updated":e=>{let t=e.payload;Ie.getState().notifyIndexUpdated(t?.at)},"file.saved":e=>{let t=V(e);if(t.length>0){let e=B.getState();for(let n of t)e.recordFileEvent(n)}},"memory.event":e=>{Kn(e);let t=V(e);if(t.length>0){let e=B.getState();for(let n of t)e.recordActivity(n)}}};function Bi(e){let t=[];for(let[n,r]of Object.entries(zi))r&&t.push(e.on(n,t=>{e.consumeSuppressedChatEcho(n)||r(t)}));return()=>{for(let e of t)e()}}function Vi(){let{autoConnect:e,wsUrl:n}=t(),r=t(e=>e.setWsStatus);(0,G.useEffect)(()=>{if(!e)return;nt();let t=N(n),i=!1,a=t.onStatus(e=>{i||r(e)});t.connect().then(()=>{if(!i){try{let e=new URLSearchParams(window.location.search).get(`session`);e&&t.resumeSessionById(e)}catch{}t.getPrefs(le()??void 0),t.getSystemPrompt()}}).catch(e=>{i||console.warn(JSON.stringify({level:`warn`,event:`webui.ws_connection_failed`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))});let o=Bi(t);return()=>{i=!0,o(),a()}},[e,n,r])}function Hi(){let{wsUrl:e}=t(),n=N(e),r=(0,G.useCallback)((e,t,r=!1)=>n.isConnected?r?n.sendMessage(e,t,!0):n.sendMessage(e,t):null,[n]),i=(0,G.useCallback)(()=>n.sendAbort(),[n]),o=(0,G.useCallback)(e=>n.adviseTopic(e),[n]),s=(0,G.useCallback)(e=>n.sendMailboxMessage(e),[n]),{hideConfirm:c}=z(),l=(0,G.useCallback)((e,t)=>{n.sendConfirm(e,t),D(e),c()},[n,c]),u=(0,G.useCallback)((e,t)=>n.switchModel(e,t),[n]),d=(0,G.useCallback)(()=>n.listProviders(),[n]),f=(0,G.useCallback)(e=>n.listProviderModels(e),[n]),p=(0,G.useCallback)(()=>n.listSavedProviders(),[n]),m=(0,G.useCallback)((e,t,r)=>n.addKey(e,t,r),[n]),h=(0,G.useCallback)((e,t,r)=>n.updateKey(e,t,r),[n]),g=(0,G.useCallback)((e,t)=>n.deleteKey(e,t),[n]),_=(0,G.useCallback)((e,t)=>n.setActiveKey(e,t),[n]),v=(0,G.useCallback)((e,t,r,i,a,o)=>n.addProvider(e,t,r,i,a,o),[n]),ee=(0,G.useCallback)(e=>n.removeProvider(e),[n]),te=(0,G.useCallback)(e=>{a.getState().setLoading(!0),n.listSessions(e)},[n]),y=(0,G.useCallback)(e=>n.deleteSession(e),[n]),b=(0,G.useCallback)((e,t)=>{a.getState().updateEntryName(e,t),n.renameSession(e,t)},[n]),x=(0,G.useCallback)(e=>n.resumeSessionById(e),[n]),S=(0,G.useCallback)(()=>n.newSession(),[n]),C=(0,G.useCallback)(e=>n.inspectSession(e),[n]),w=(0,G.useCallback)(()=>n.saveSession(),[n]),ne=(0,G.useCallback)(e=>n.listTools(e),[n]),re=(0,G.useCallback)(e=>n.listMemory(e),[n]),ie=(0,G.useCallback)(e=>n.listSageMemories(e),[n]),ae=(0,G.useCallback)((e,t)=>n.listSageMemoriesPage(e,t),[n]),T=(0,G.useCallback)((e,t)=>n.searchSageBreakdown(e,t),[n]),oe=(0,G.useCallback)((e,t)=>n.listMemoryCandidates(e,t),[n]),se=(0,G.useCallback)((e,t)=>n.getSage(e,t),[n]),ce=(0,G.useCallback)((e,t,r)=>n.getSageGraph(e,t,r),[n]),le=(0,G.useCallback)((e,t,r)=>n.updateSage(e,t,r),[n]),E=(0,G.useCallback)((e,t)=>n.deleteSage(e,t),[n]),O=(0,G.useCallback)((e,t)=>n.rememberSage(e,t),[n]),k=(0,G.useCallback)((e,t)=>n.findMemoriesForFile(e,t),[n]),A=(0,G.useCallback)((e,t)=>n.recoverSage(e,t),[n]),ue=(0,G.useCallback)((e,t)=>n.resolveMemoryCandidate(e,t),[n]),j=(0,G.useCallback)((e,t)=>n.backfillRecoverable(e,t),[n]),M=(0,G.useCallback)(e=>n.listSkills(e),[n]),P=(0,G.useCallback)(e=>n.getDiag(e),[n]),de=(0,G.useCallback)(e=>n.getStats(e),[n]),fe=(0,G.useCallback)(()=>n.getPlan(),[n]),F=(0,G.useCallback)(()=>n.listModes(),[n]),I=(0,G.useCallback)(e=>n.switchMode(e),[n]),L=(0,G.useCallback)(()=>n.listContextModes(),[n]),R=(0,G.useCallback)(e=>n.switchContextMode(e),[n]),pe=(0,G.useCallback)(e=>n.createContextMode(e),[n]),me=(0,G.useCallback)((e,t)=>n.updateContextMode(e,t),[n]),he=(0,G.useCallback)(e=>n.deleteContextMode(e),[n]),ge=(0,G.useCallback)(()=>n.repairContext(),[n]),_e=(0,G.useCallback)((e,t)=>n.refineModel(e,t),[n]),ve=(0,G.useCallback)(e=>n.switchAutonomy(e),[n]),B=(0,G.useCallback)(e=>n.updatePrefs(e),[n]);return{client:n,sendMessage:r,adviseTopic:o,sendAbort:i,sendMailboxMessage:s,sendConfirm:l,switchModel:u,listProviders:d,listProviderModels:f,listSavedProviders:p,addKey:m,updateKey:h,deleteKey:g,setActiveKey:_,addProvider:v,removeProvider:ee,listSessions:te,deleteSession:y,renameSession:b,resumeSession:x,newSession:S,inspectSession:C,saveSession:w,listTools:ne,listMemory:re,listSageMemories:ie,listSageMemoriesPage:ae,searchSageBreakdown:T,listMemoryCandidates:oe,getSage:se,getSageGraph:ce,updateSage:le,deleteSage:E,rememberSage:O,findMemoriesForFile:k,recoverSage:A,resolveMemoryCandidate:ue,backfillRecoverable:j,listSkills:M,getDiag:P,getStats:de,getPlan:fe,listModes:F,switchMode:I,listContextModes:L,switchContextMode:R,createContextMode:pe,updateContextMode:me,deleteContextMode:he,repairContext:ge,toggleGoalAutonomous:(0,G.useCallback)(e=>{n.send({type:`goal.toggleAutonomous`,payload:{autonomous:e}})},[n]),startGoal:(0,G.useCallback)((e,t,r=!0)=>{n.send({type:`goal.start`,payload:{title:e,phases:t,autonomous:r}})},[n]),pauseGoal:(0,G.useCallback)(()=>{n.send({type:`goal.pause`,payload:{}})},[n]),resumeGoal:(0,G.useCallback)(()=>{n.send({type:`goal.resume`,payload:{}})},[n]),stopGoal:(0,G.useCallback)(()=>{n.send({type:`goal.stop`,payload:{}})},[n]),selectGoal:(0,G.useCallback)(e=>{n.send({type:`goal.selectPhase`,payload:{phaseId:e}})},[n]),switchAutonomy:ve,updatePrefs:B,refineModel:_e,stageGit:(0,G.useCallback)(e=>n.stageGit(e),[n]),unstageGit:(0,G.useCallback)(e=>n.unstageGit(e),[n]),discardGit:(0,G.useCallback)(e=>n.discardGit(e),[n]),commitGit:(0,G.useCallback)(e=>n.commitGit(e),[n])}}export{jn as a,Re as c,Dr as i,Vi as n,En as o,jr as r,ot as s,Hi as t};
|