talos-code 0.0.1 → 0.1.0
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/LICENSE +661 -0
- package/README.md +111 -3
- package/THIRD_PARTY_NOTICES.md +40 -0
- package/dist/archive/zip.js +73 -0
- package/dist/args.js +97 -0
- package/dist/automations/history-store.js +34 -0
- package/dist/automations/policy-store.js +43 -0
- package/dist/automations/runner.js +107 -0
- package/dist/automations/schedule.js +85 -0
- package/dist/automations/windows-task.js +53 -0
- package/dist/commands/advanced-cli.js +233 -0
- package/dist/commands/checkpoint-cli.js +45 -0
- package/dist/commands/config-cli.js +107 -0
- package/dist/commands/context.js +17 -0
- package/dist/commands/extensions-cli.js +207 -0
- package/dist/commands/project-cli.js +74 -0
- package/dist/commands/project-commands.js +143 -0
- package/dist/commands/provider-cli.js +185 -0
- package/dist/commands/services-cli.js +248 -0
- package/dist/commands/session-cli.js +171 -0
- package/dist/commands/system-cli.js +405 -0
- package/dist/config/commands.js +60 -0
- package/dist/config/load.js +382 -0
- package/dist/config/migrations.js +48 -0
- package/dist/config/types.js +11 -0
- package/dist/diagnostics/development-log.js +154 -0
- package/dist/diagnostics/doctor.js +104 -0
- package/dist/diagnostics/redact.js +80 -0
- package/dist/diagnostics/zip.js +52 -0
- package/dist/errors.js +156 -0
- package/dist/events/bridge.js +130 -0
- package/dist/extensions/installer.js +178 -0
- package/dist/extensions/package-schema.js +24 -0
- package/dist/headless/result.js +84 -0
- package/dist/headless/run.js +230 -0
- package/dist/i18n/en/approval.js +43 -0
- package/dist/i18n/en/common.js +9 -0
- package/dist/i18n/en/credentials.js +82 -0
- package/dist/i18n/en/errors.js +246 -0
- package/dist/i18n/en/firstrun.js +89 -0
- package/dist/i18n/en/providers.js +37 -0
- package/dist/i18n/en/screen.js +736 -0
- package/dist/i18n/en/tools.js +127 -0
- package/dist/i18n/en.js +14 -0
- package/dist/i18n/error-view.js +307 -0
- package/dist/i18n/index.js +19 -0
- package/dist/i18n/kernel-map.js +139 -0
- package/dist/io.js +45 -0
- package/dist/main.js +330 -0
- package/dist/paths.js +41 -0
- package/dist/protocol/v2/codec.js +9 -0
- package/dist/protocol/v2/events.js +555 -0
- package/dist/protocol/v2/index.js +4 -0
- package/dist/protocol/v2/replay.js +28 -0
- package/dist/protocol/v2/types.js +1 -0
- package/dist/provider/control-plane.js +135 -0
- package/dist/provider/environment-keys.js +275 -0
- package/dist/provider/health.js +110 -0
- package/dist/provider/missing-key.js +48 -0
- package/dist/provider/model-catalog.js +168 -0
- package/dist/provider/provider-text.js +13 -0
- package/dist/provider/store.js +95 -0
- package/dist/provider/system-keyring.js +214 -0
- package/dist/runtime/active-run.js +63 -0
- package/dist/runtime/agent-tree.js +74 -0
- package/dist/runtime/attachments.js +84 -0
- package/dist/runtime/brokered-executor.js +395 -0
- package/dist/runtime/context-status.js +76 -0
- package/dist/runtime/create-runtime.js +111 -0
- package/dist/runtime/model-profile.js +361 -0
- package/dist/runtime/output-store.js +137 -0
- package/dist/runtime/provider-attempts.js +185 -0
- package/dist/runtime/replay-buffer.js +153 -0
- package/dist/runtime/repo.js +95 -0
- package/dist/runtime/session-facade.js +135 -0
- package/dist/runtime/session-summary.js +125 -0
- package/dist/runtime/supervisor.js +262 -0
- package/dist/runtime/talos-composition.js +1006 -0
- package/dist/runtime/types.js +5 -0
- package/dist/runtime/usage-snapshot.js +82 -0
- package/dist/security/auto-classifier.js +38 -0
- package/dist/security/credential-free-environment.js +54 -0
- package/dist/security/evaluate.js +243 -0
- package/dist/security/execution-backends.js +236 -0
- package/dist/security/execution-broker.js +102 -0
- package/dist/security/forge-scan.js +74 -0
- package/dist/security/from-approval.js +39 -0
- package/dist/security/mxc-execution-backend.js +281 -0
- package/dist/security/permission-engine.js +138 -0
- package/dist/security/permission-explanation.js +54 -0
- package/dist/security/persist.js +179 -0
- package/dist/security/plugin-guard.js +230 -0
- package/dist/security/process-tree-evidence-store.js +74 -0
- package/dist/security/process-tree-probe.js +554 -0
- package/dist/security/project-resource-inventory.js +186 -0
- package/dist/security/project-trust-gate.js +38 -0
- package/dist/security/project-trust.js +367 -0
- package/dist/security/rule-parser.js +201 -0
- package/dist/security/shell-segmentation.js +68 -0
- package/dist/security/trust-authority.js +324 -0
- package/dist/security/types.js +1 -0
- package/dist/security/workspace-identity.js +102 -0
- package/dist/services/automation-facade.js +59 -0
- package/dist/services/forge-facade.js +77 -0
- package/dist/services/hook-facade.js +240 -0
- package/dist/services/index.js +16 -0
- package/dist/services/library-facade.js +174 -0
- package/dist/services/mcp-facade.js +348 -0
- package/dist/services/memory-facade.js +126 -0
- package/dist/services/notes-facade.js +157 -0
- package/dist/services/plugin-facade.js +308 -0
- package/dist/services/research-facade.js +110 -0
- package/dist/services/task-board-facade.js +236 -0
- package/dist/services/workflow-catalog.js +246 -0
- package/dist/sessions/export-format.js +98 -0
- package/dist/sessions/metadata-store.js +160 -0
- package/dist/sessions/share.js +122 -0
- package/dist/sessions/transfer.js +16 -0
- package/dist/subcommands.js +62 -0
- package/dist/tui/agent-roster.js +36 -0
- package/dist/tui/app.js +3761 -0
- package/dist/tui/approval.js +36 -0
- package/dist/tui/boot/boot-sequence.js +76 -0
- package/dist/tui/boot/cinematic.js +243 -0
- package/dist/tui/boot/desktop-logo.js +82 -0
- package/dist/tui/boot.js +3 -0
- package/dist/tui/busy-input.js +58 -0
- package/dist/tui/catalog-service.js +559 -0
- package/dist/tui/components/assistant-stream.js +1 -0
- package/dist/tui/components/command-menu.js +68 -0
- package/dist/tui/components/composer.js +219 -0
- package/dist/tui/components/diff.js +35 -0
- package/dist/tui/components/footer.js +48 -0
- package/dist/tui/components/header.js +6 -0
- package/dist/tui/components/markdown.js +305 -0
- package/dist/tui/components/status-indicator.js +32 -0
- package/dist/tui/components/terminal-shell.js +205 -0
- package/dist/tui/components/thinking-row.js +19 -0
- package/dist/tui/components/tool-row.js +97 -0
- package/dist/tui/components/transcript-virtualizer.js +165 -0
- package/dist/tui/components/transcript.js +43 -0
- package/dist/tui/diff-model.js +77 -0
- package/dist/tui/editor-history.js +21 -0
- package/dist/tui/editor.js +210 -0
- package/dist/tui/event-adapter.js +436 -0
- package/dist/tui/exit-output.js +58 -0
- package/dist/tui/external-editor.js +53 -0
- package/dist/tui/file-completion.js +89 -0
- package/dist/tui/focus-manager.js +5 -0
- package/dist/tui/highlight.js +30 -0
- package/dist/tui/input-router.js +18 -0
- package/dist/tui/interrupt.js +99 -0
- package/dist/tui/keybindings.js +194 -0
- package/dist/tui/keymap-resolver.js +91 -0
- package/dist/tui/launch-state.js +139 -0
- package/dist/tui/line-diff.js +57 -0
- package/dist/tui/live-activity.js +45 -0
- package/dist/tui/metrics.js +123 -0
- package/dist/tui/onboarding.js +36 -0
- package/dist/tui/overlays/agent-tree.js +39 -0
- package/dist/tui/overlays/approval-dialog.js +640 -0
- package/dist/tui/overlays/automation-center.js +51 -0
- package/dist/tui/overlays/checkpoint-picker.js +47 -0
- package/dist/tui/overlays/context-inspector.js +36 -0
- package/dist/tui/overlays/effort-line.js +110 -0
- package/dist/tui/overlays/forge-center.js +46 -0
- package/dist/tui/overlays/help-dialog.js +16 -0
- package/dist/tui/overlays/history-picker.js +37 -0
- package/dist/tui/overlays/hook-center.js +70 -0
- package/dist/tui/overlays/library-center.js +55 -0
- package/dist/tui/overlays/mcp-center.js +60 -0
- package/dist/tui/overlays/memory-center.js +63 -0
- package/dist/tui/overlays/model-picker.js +72 -0
- package/dist/tui/overlays/notes-center.js +53 -0
- package/dist/tui/overlays/overlay-host.js +8 -0
- package/dist/tui/overlays/plugin-center.js +76 -0
- package/dist/tui/overlays/provider-picker.js +145 -0
- package/dist/tui/overlays/queue-editor.js +32 -0
- package/dist/tui/overlays/research-center.js +59 -0
- package/dist/tui/overlays/scroll-window.js +234 -0
- package/dist/tui/overlays/session-picker.js +115 -0
- package/dist/tui/overlays/tasks-center.js +83 -0
- package/dist/tui/overlays/theme-picker.js +21 -0
- package/dist/tui/overlays/transcript-search.js +58 -0
- package/dist/tui/overlays/trust-center.js +29 -0
- package/dist/tui/overlays/workflow-center.js +46 -0
- package/dist/tui/project-file-index.js +214 -0
- package/dist/tui/project-references.js +85 -0
- package/dist/tui/project-trust-prompt.js +287 -0
- package/dist/tui/prompt-history-store.js +116 -0
- package/dist/tui/queue-store.js +110 -0
- package/dist/tui/regions/budget.js +59 -0
- package/dist/tui/regions/views.js +96 -0
- package/dist/tui/render-coordinator.js +148 -0
- package/dist/tui/render-scheduler.js +4 -0
- package/dist/tui/run.js +69 -0
- package/dist/tui/selection-list.js +29 -0
- package/dist/tui/session-controller.js +778 -0
- package/dist/tui/session-export.js +54 -0
- package/dist/tui/shell-input.js +35 -0
- package/dist/tui/shell-layout.js +48 -0
- package/dist/tui/shell-model.js +98 -0
- package/dist/tui/slash-commands.js +80 -0
- package/dist/tui/state.js +151 -0
- package/dist/tui/status-bar.js +125 -0
- package/dist/tui/status-view.js +40 -0
- package/dist/tui/terminal-capabilities.js +9 -0
- package/dist/tui/terminal-session.js +11 -0
- package/dist/tui/text-width.js +66 -0
- package/dist/tui/theme-catalog.js +25 -0
- package/dist/tui/theme-store.js +23 -0
- package/dist/tui/theme.js +23 -0
- package/dist/tui/tool-display.js +135 -0
- package/dist/tui/tool-facts.js +1 -0
- package/dist/tui/tools/bash-renderer.js +32 -0
- package/dist/tui/tools/change.js +61 -0
- package/dist/tui/tools/edit-renderer.js +17 -0
- package/dist/tui/tools/generic-renderer.js +13 -0
- package/dist/tui/tools/list-renderer.js +14 -0
- package/dist/tui/tools/read-renderer.js +13 -0
- package/dist/tui/tools/registry.js +20 -0
- package/dist/tui/tools/row-format.js +187 -0
- package/dist/tui/tools/search-renderer.js +38 -0
- package/dist/tui/tools/shared.js +97 -0
- package/dist/tui/tools/write-renderer.js +15 -0
- package/dist/tui/transcript-model.js +441 -0
- package/dist/tui/ui-preferences.js +79 -0
- package/dist/tui/usage-view.js +77 -0
- package/dist/tui/vim-mode.js +99 -0
- package/dist/update/check.js +15 -0
- package/dist/update/npm.js +51 -0
- package/dist/update/run.js +129 -0
- package/dist/version.js +2 -0
- package/dist/workspace/checkpoint-store.js +210 -0
- package/dist/workspace/checkpoint.js +413 -0
- package/dist/workspace/restore.js +232 -0
- package/package.json +63 -5
- package/vendor/context-engine/package.json +11 -0
- package/vendor/context-engine/src/compaction-planner.mjs +57 -0
- package/vendor/context-engine/src/contracts.mjs +48 -0
- package/vendor/context-engine/src/engine.mjs +445 -0
- package/vendor/context-engine/src/node/context-export.mjs +164 -0
- package/vendor/context-engine/src/node/legacy-import.mjs +92 -0
- package/vendor/context-engine/src/node/migrations/001-context.sql +126 -0
- package/vendor/context-engine/src/node/sqlite-store.mjs +85 -0
- package/vendor/context-engine/src/node/sqlite-worker.mjs +559 -0
- package/vendor/context-engine/src/profiles.mjs +10 -0
- package/vendor/context-engine/src/retrieval.mjs +104 -0
- package/vendor/context-engine/src/summary.mjs +97 -0
- package/vendor/context-engine/src/usage.mjs +34 -0
- package/vendor/harness-ui/package.json +38 -0
- package/vendor/harness-ui/src/acp-agent.mjs +350 -0
- package/vendor/harness-ui/src/agent-service.mjs +2188 -0
- package/vendor/harness-ui/src/agui-events.mjs +452 -0
- package/vendor/harness-ui/src/ambiente-solo-server.mjs +121 -0
- package/vendor/harness-ui/src/artifact-store.mjs +39 -0
- package/vendor/harness-ui/src/assistenza.mjs +123 -0
- package/vendor/harness-ui/src/automation-scheduler.mjs +69 -0
- package/vendor/harness-ui/src/automation-store.mjs +145 -0
- package/vendor/harness-ui/src/browser-annota.mjs +639 -0
- package/vendor/harness-ui/src/browser-frame.mjs +211 -0
- package/vendor/harness-ui/src/browser-proxy-universale.mjs +519 -0
- package/vendor/harness-ui/src/browser-proxy.mjs +87 -0
- package/vendor/harness-ui/src/browser-sessione-viva.mjs +329 -0
- package/vendor/harness-ui/src/browser-stream.mjs +445 -0
- package/vendor/harness-ui/src/browser-vivo.mjs +694 -0
- package/vendor/harness-ui/src/chat-image-attachments.mjs +72 -0
- package/vendor/harness-ui/src/config.mjs +697 -0
- package/vendor/harness-ui/src/contesto-del-progetto.mjs +385 -0
- package/vendor/harness-ui/src/context-asset-adapter.mjs +72 -0
- package/vendor/harness-ui/src/context-desktop-service.mjs +253 -0
- package/vendor/harness-ui/src/context-embedding-runtime.mjs +252 -0
- package/vendor/harness-ui/src/context-inference-scheduler.mjs +81 -0
- package/vendor/harness-ui/src/context-native-compaction.mjs +75 -0
- package/vendor/harness-ui/src/context-provider-adapter.mjs +141 -0
- package/vendor/harness-ui/src/context-runtime.mjs +118 -0
- package/vendor/harness-ui/src/context-token-counters.mjs +184 -0
- package/vendor/harness-ui/src/context-tool-catalog.mjs +86 -0
- package/vendor/harness-ui/src/context-tool-output.mjs +72 -0
- package/vendor/harness-ui/src/costo-elenco.mjs +252 -0
- package/vendor/harness-ui/src/custom-task.mjs +171 -0
- package/vendor/harness-ui/src/doctor.mjs +142 -0
- package/vendor/harness-ui/src/document-filename.mjs +97 -0
- package/vendor/harness-ui/src/document-generator.mjs +493 -0
- package/vendor/harness-ui/src/document-report.mjs +331 -0
- package/vendor/harness-ui/src/duckduckgo-search.mjs +155 -0
- package/vendor/harness-ui/src/elenco-profondo.mjs +337 -0
- package/vendor/harness-ui/src/favicon-proxy.mjs +113 -0
- package/vendor/harness-ui/src/forge-contract.mjs +221 -0
- package/vendor/harness-ui/src/frequent-dirs.mjs +134 -0
- package/vendor/harness-ui/src/generated-image-store.mjs +147 -0
- package/vendor/harness-ui/src/generation-idle.mjs +332 -0
- package/vendor/harness-ui/src/gguf-header.mjs +207 -0
- package/vendor/harness-ui/src/git-service.mjs +626 -0
- package/vendor/harness-ui/src/gitignore-elenco.mjs +604 -0
- package/vendor/harness-ui/src/harness-receipt-keypair.mjs +207 -0
- package/vendor/harness-ui/src/hf-direct-transfer.mjs +170 -0
- package/vendor/harness-ui/src/hf-hub-client.mjs +106 -0
- package/vendor/harness-ui/src/hf-image-proxy.mjs +105 -0
- package/vendor/harness-ui/src/hf-model-transfer.mjs +245 -0
- package/vendor/harness-ui/src/hook-registry.mjs +186 -0
- package/vendor/harness-ui/src/http-app.mjs +6259 -0
- package/vendor/harness-ui/src/http-lifecycle.mjs +132 -0
- package/vendor/harness-ui/src/id-archivio.mjs +27 -0
- package/vendor/harness-ui/src/image-generator.mjs +143 -0
- package/vendor/harness-ui/src/istruzioni-di-progetto.mjs +234 -0
- package/vendor/harness-ui/src/kernel/dist/kernelPerIlBanco.js +518 -0
- package/vendor/harness-ui/src/kernel/talosHarness.mjs +10437 -0
- package/vendor/harness-ui/src/library-policy-store.mjs +175 -0
- package/vendor/harness-ui/src/library-store.mjs +652 -0
- package/vendor/harness-ui/src/llama-server-supervisor.mjs +629 -0
- package/vendor/harness-ui/src/local-model-store.mjs +339 -0
- package/vendor/harness-ui/src/local-runtime-contract.mjs +66 -0
- package/vendor/harness-ui/src/local-runtime-events.mjs +44 -0
- package/vendor/harness-ui/src/local-runtime-llama-server.mjs +244 -0
- package/vendor/harness-ui/src/local-runtime-probe.mjs +401 -0
- package/vendor/harness-ui/src/machine-capacity.mjs +66 -0
- package/vendor/harness-ui/src/mappa-cartelle.mjs +491 -0
- package/vendor/harness-ui/src/mcp-client.mjs +98 -0
- package/vendor/harness-ui/src/mcp-registry.mjs +157 -0
- package/vendor/harness-ui/src/mcp-session.mjs +177 -0
- package/vendor/harness-ui/src/memory-store.mjs +227 -0
- package/vendor/harness-ui/src/model-catalog-models-dev.mjs +276 -0
- package/vendor/harness-ui/src/model-catalog.mjs +129 -0
- package/vendor/harness-ui/src/model-destination.mjs +189 -0
- package/vendor/harness-ui/src/modifica-ancorata.mjs +177 -0
- package/vendor/harness-ui/src/native-provider-adapter.mjs +205 -0
- package/vendor/harness-ui/src/notes-store.mjs +250 -0
- package/vendor/harness-ui/src/openai-compatible-runtime.mjs +428 -0
- package/vendor/harness-ui/src/openrouter-oauth.mjs +339 -0
- package/vendor/harness-ui/src/path-policy.mjs +442 -0
- package/vendor/harness-ui/src/plugin-registry.mjs +780 -0
- package/vendor/harness-ui/src/plugin-session.mjs +180 -0
- package/vendor/harness-ui/src/process-policy.mjs +345 -0
- package/vendor/harness-ui/src/prompt-enhancer-provider.mjs +94 -0
- package/vendor/harness-ui/src/provider-auth-cloud.mjs +95 -0
- package/vendor/harness-ui/src/provider-credential-store.mjs +541 -0
- package/vendor/harness-ui/src/provider-probe.mjs +582 -0
- package/vendor/harness-ui/src/provider-registry.mjs +1633 -0
- package/vendor/harness-ui/src/pty-terminal.mjs +312 -0
- package/vendor/harness-ui/src/public-problem.mjs +109 -0
- package/vendor/harness-ui/src/research/card.mjs +235 -0
- package/vendor/harness-ui/src/research/citations.mjs +142 -0
- package/vendor/harness-ui/src/research/collector.mjs +275 -0
- package/vendor/harness-ui/src/research/deposito-a-pezzi.mjs +139 -0
- package/vendor/harness-ui/src/research/dossier.mjs +114 -0
- package/vendor/harness-ui/src/research/esportazioni.mjs +560 -0
- package/vendor/harness-ui/src/research/fetch-cache.mjs +465 -0
- package/vendor/harness-ui/src/research/fidelity.mjs +122 -0
- package/vendor/harness-ui/src/research/independence.mjs +159 -0
- package/vendor/harness-ui/src/research/ledger.mjs +166 -0
- package/vendor/harness-ui/src/research/markdown-server.mjs +565 -0
- package/vendor/harness-ui/src/research/narration.mjs +181 -0
- package/vendor/harness-ui/src/research/open-cards.mjs +131 -0
- package/vendor/harness-ui/src/research/opposing.mjs +305 -0
- package/vendor/harness-ui/src/research/outline.mjs +111 -0
- package/vendor/harness-ui/src/research/page-budget.mjs +209 -0
- package/vendor/harness-ui/src/research/pdf.mjs +291 -0
- package/vendor/harness-ui/src/research/plan.mjs +301 -0
- package/vendor/harness-ui/src/research/raccolta-viva.mjs +452 -0
- package/vendor/harness-ui/src/research/recheck-document.mjs +69 -0
- package/vendor/harness-ui/src/research/recheck-history.mjs +192 -0
- package/vendor/harness-ui/src/research/recheck.mjs +194 -0
- package/vendor/harness-ui/src/research/report.mjs +203 -0
- package/vendor/harness-ui/src/research/run.mjs +527 -0
- package/vendor/harness-ui/src/research/synthesis.mjs +318 -0
- package/vendor/harness-ui/src/research/verification.mjs +572 -0
- package/vendor/harness-ui/src/research-orchestrator.mjs +2679 -0
- package/vendor/harness-ui/src/research-store.mjs +1133 -0
- package/vendor/harness-ui/src/runtime-build-manifest.mjs +26 -0
- package/vendor/harness-ui/src/runtime-contract.mjs +59 -0
- package/vendor/harness-ui/src/runtime-owner-adapter.mjs +1348 -0
- package/vendor/harness-ui/src/runtime-owner-contract.mjs +32 -0
- package/vendor/harness-ui/src/scheda-di-lavoro.mjs +249 -0
- package/vendor/harness-ui/src/search-source-store.mjs +172 -0
- package/vendor/harness-ui/src/session-registry.mjs +6095 -0
- package/vendor/harness-ui/src/session-store.mjs +220 -0
- package/vendor/harness-ui/src/sessione-pronta.mjs +73 -0
- package/vendor/harness-ui/src/setup-stato.mjs +31 -0
- package/vendor/harness-ui/src/sezioni-istruzioni.mjs +204 -0
- package/vendor/harness-ui/src/skill-registry.mjs +120 -0
- package/vendor/harness-ui/src/sse-replay-coalescente.mjs +0 -0
- package/vendor/harness-ui/src/static-files.mjs +96 -0
- package/vendor/harness-ui/src/stream-partition.mjs +123 -0
- package/vendor/harness-ui/src/subagent-orchestrator.mjs +453 -0
- package/vendor/harness-ui/src/task-catalog.mjs +65 -0
- package/vendor/harness-ui/src/tasks-store.mjs +220 -0
- package/vendor/harness-ui/src/terminal-registry.mjs +312 -0
- package/vendor/harness-ui/src/terminal-ws.mjs +170 -0
- package/vendor/harness-ui/src/tool-forge-store.mjs +299 -0
- package/vendor/harness-ui/src/tool-schema-normalize.mjs +100 -0
- package/vendor/harness-ui/src/usage-cache.mjs +315 -0
- package/vendor/harness-ui/src/workspace-browser.mjs +213 -0
- package/vendor/harness-ui/src/workspace-context.mjs +124 -0
- package/vendor/harness-ui/src/workspace-disk.mjs +62 -0
- package/vendor/harness-ui/src/workspace-files.mjs +589 -0
- package/vendor/harness-ui/src/workspace-info.mjs +189 -0
- package/vendor/harness-ui/src/workspace-launch-store.mjs +150 -0
- package/vendor/harness-ui/src/workspace-tree.mjs +67 -0
- package/vendor/harness-ui/src/workspace-watcher.mjs +161 -0
- package/vendor/manifest.json +170 -0
|
@@ -0,0 +1,736 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* R2 lane D: the CLI's own screen words (statuses, notices, overlays, footer) (gate E1, E10; owner decisions Q-R2-1,
|
|
3
|
+
* Q-R2-10). Everything the acceptance frames show and every chrome label reads from here; the detail rows of the
|
|
4
|
+
* centers that no acceptance frame opens are counted by the prose ratchet (test/i18n/r2-prose-ratchet.test.ts) and
|
|
5
|
+
* move here by R5. Never here: what the MODEL receives (tool names, argument keys, the kernel-contract markers of
|
|
6
|
+
* `runtime/brokered-executor.ts`, gate E2).
|
|
7
|
+
*/
|
|
8
|
+
export const screen = {
|
|
9
|
+
'screen.none': '—',
|
|
10
|
+
/* Words used in several places. */
|
|
11
|
+
'screen.word.none': 'none',
|
|
12
|
+
'screen.word.yes': 'yes',
|
|
13
|
+
'screen.word.no': 'no',
|
|
14
|
+
'screen.word.ok': 'ok',
|
|
15
|
+
'screen.word.local': 'local',
|
|
16
|
+
'screen.word.cloud': 'cloud',
|
|
17
|
+
/* Errors: lane E's anatomy (Q-R2-4) with the action that failed in front of the headline. */
|
|
18
|
+
'screen.error.context': '{context} failed: {what}',
|
|
19
|
+
'screen.error.rejected': '{context} rejected: {what}',
|
|
20
|
+
'screen.error.withNote': '{what} {note}',
|
|
21
|
+
'screen.action.modelPicker': 'Model picker',
|
|
22
|
+
'screen.action.providerChoice': 'Saving the provider choice',
|
|
23
|
+
'screen.action.providerPicker': 'Provider picker',
|
|
24
|
+
'screen.action.healthCheck': '{provider} health check',
|
|
25
|
+
'screen.action.sessionPicker': 'Session picker',
|
|
26
|
+
'screen.action.trustCenter': 'Trust center',
|
|
27
|
+
'screen.action.mcpCenter': 'MCP center',
|
|
28
|
+
'screen.action.mcp': 'MCP {action}',
|
|
29
|
+
'screen.action.hookCenter': 'Hook center',
|
|
30
|
+
'screen.action.hook': 'Hook {action}',
|
|
31
|
+
'screen.action.pluginCenter': 'Plugin Center',
|
|
32
|
+
'screen.action.plugin': 'Plugin {action}',
|
|
33
|
+
'screen.action.memoryCenter': 'Memory Center',
|
|
34
|
+
'screen.action.notesCenter': 'Notes Center',
|
|
35
|
+
'screen.action.taskBoard': 'Task Board',
|
|
36
|
+
'screen.action.libraryCenter': 'Library Center',
|
|
37
|
+
'screen.action.forgeCenter': 'Forge Center',
|
|
38
|
+
'screen.action.automationCenter': 'Automation Center',
|
|
39
|
+
'screen.action.researchCenter': 'Research Center',
|
|
40
|
+
'screen.action.modelChange': 'Model change',
|
|
41
|
+
'screen.action.effortChange': 'Model/effort change',
|
|
42
|
+
'screen.action.command': '/{command}',
|
|
43
|
+
'screen.action.commandOperation': '/{command} {operation}',
|
|
44
|
+
'screen.action.resume': 'Resume',
|
|
45
|
+
'screen.action.fork': 'Fork',
|
|
46
|
+
'screen.action.queueClear': 'Queue clear',
|
|
47
|
+
'screen.action.queueDispatch': 'Queue dispatch',
|
|
48
|
+
'screen.action.queueEdit': 'Queue edit',
|
|
49
|
+
'screen.action.queueMove': 'Queue move',
|
|
50
|
+
'screen.action.queueDelete': 'Queue delete',
|
|
51
|
+
'screen.action.queueResume': 'Queue resume',
|
|
52
|
+
'screen.action.contextInspection': 'Context inspection',
|
|
53
|
+
'screen.action.permissionDryRun': 'Permission dry-run',
|
|
54
|
+
'screen.action.cancel': 'Cancel',
|
|
55
|
+
'screen.action.answer': 'Recording the answer',
|
|
56
|
+
'screen.action.keyTest': 'Key test',
|
|
57
|
+
'screen.action.sessionAction': 'Session action',
|
|
58
|
+
'screen.action.approval': 'Approval',
|
|
59
|
+
'screen.action.interrupt': 'Interrupt',
|
|
60
|
+
'screen.action.agentTree': 'Agent tree',
|
|
61
|
+
'screen.action.steering': 'Steering',
|
|
62
|
+
'screen.action.externalEditor': 'External editor',
|
|
63
|
+
'screen.action.forgeDetail': 'Forge detail',
|
|
64
|
+
'screen.action.forgeToggle': 'Forge enable/disable',
|
|
65
|
+
'screen.action.forgeRollback': 'Forge rollback',
|
|
66
|
+
'screen.action.automationDetail': 'Automation detail',
|
|
67
|
+
'screen.action.automationDryRun': 'Automation dry-run',
|
|
68
|
+
'screen.action.researchDetail': 'Research detail',
|
|
69
|
+
'screen.action.researchPause': 'Research pause',
|
|
70
|
+
'screen.action.researchResume': 'Research resume',
|
|
71
|
+
'screen.action.researchCancel': 'Research cancel',
|
|
72
|
+
'screen.action.researchExport': 'Research export',
|
|
73
|
+
'screen.action.libraryPreview': 'Library preview',
|
|
74
|
+
'screen.action.libraryDuplicates': 'Library duplicate scan',
|
|
75
|
+
'screen.action.libraryAttach': 'Library attach',
|
|
76
|
+
'screen.action.noteAttach': 'Note composer attach',
|
|
77
|
+
'screen.action.copy': 'Copy',
|
|
78
|
+
'screen.action.startup': 'Startup',
|
|
79
|
+
'screen.action.run': 'Run',
|
|
80
|
+
/* Notices the app writes into the transcript. */
|
|
81
|
+
'screen.compact.already': 'Context is already compact.',
|
|
82
|
+
'screen.compact.done': 'Context compacted.',
|
|
83
|
+
'screen.readiness.unavailable': 'Provider selection is unavailable here, so nothing was sent.',
|
|
84
|
+
'screen.readiness.unchecked': 'Provider selection could not be checked ({code}), so nothing was sent.',
|
|
85
|
+
'screen.queue.restored.one': 'Restored {count} queued item in PAUSED state. Review with /queue; nothing will run until you explicitly resume it.',
|
|
86
|
+
'screen.queue.restored.other': 'Restored {count} queued items in PAUSED state. Review with /queue; nothing will run until you explicitly resume it.',
|
|
87
|
+
'screen.queue.cleared.one': 'Cleared {count} queued item.',
|
|
88
|
+
'screen.queue.cleared.other': 'Cleared {count} queued items.',
|
|
89
|
+
'screen.queue.empty': 'Queue is empty.',
|
|
90
|
+
'screen.queue.busy': 'The queue has not been resumed; finish or cancel the active turn first.',
|
|
91
|
+
'screen.queue.resumed': 'Queued work explicitly resumed.',
|
|
92
|
+
'screen.queue.resumeBusy': 'Finish or cancel the active run before explicitly resuming restored queue work.',
|
|
93
|
+
'screen.queue.cancelledRun.one': 'Cancelled the active run; {count} queued item was not sent. It remains in input history for recovery.',
|
|
94
|
+
'screen.queue.cancelledRun.other': 'Cancelled the active run; {count} queued items were not sent. They remain in input history for recovery.',
|
|
95
|
+
'screen.steer.requested': 'Steering requested — waiting for the next safe boundary.',
|
|
96
|
+
'screen.steer.applied': 'Steered at safe boundary.',
|
|
97
|
+
'screen.steer.cancelled': 'Steering cancelled.',
|
|
98
|
+
'screen.copy.nothing': 'Nothing selected to copy.',
|
|
99
|
+
'screen.copy.requested': 'Copy requested through the terminal clipboard (OSC 52).',
|
|
100
|
+
'screen.copy.tooLarge': 'Selected transcript text exceeds the explicit copy byte limit.',
|
|
101
|
+
'screen.onboarding.setup': 'Setup:',
|
|
102
|
+
'screen.provider.notReady': '{provider} is not ready.',
|
|
103
|
+
'screen.provider.envKeyUsed': '{variable} will be used for {provider} if the provider accepts it.',
|
|
104
|
+
'screen.provider.envKeyFallback': 'The environment key',
|
|
105
|
+
'screen.provider.keyNotSaved': 'The key was not saved.',
|
|
106
|
+
'screen.provider.keySaved': '{message} {saved}',
|
|
107
|
+
'screen.provider.benchedRetry': '{benched}. Enter another key to test it, or Esc to wait.',
|
|
108
|
+
'screen.model.loading': 'Loading the live model list…',
|
|
109
|
+
'screen.model.unknownProvider': '{provider} is not a provider TALOS can send to. Choose one with /provider.',
|
|
110
|
+
'screen.model.configureFirst': 'Configure {provider} with /provider before selecting one of its models.',
|
|
111
|
+
'screen.model.changed': 'Model changed to {model} for subsequent runs.',
|
|
112
|
+
'screen.model.changedNoEffort': 'Model changed to {model} for subsequent runs. This model does not advertise configurable reasoning effort; using model default in this process.',
|
|
113
|
+
'screen.model.changedEffortCleared': 'Model changed to {model}. The project reasoning-effort override was cleared; new sessions in this process use model default. A lower-precedence config may apply next launch.',
|
|
114
|
+
'screen.model.changedEffortClearedKept': 'Model changed to {model}. The project reasoning-effort override was cleared; new sessions in this process use model default, while the current session keeps {effort}. A lower-precedence config may apply next launch.',
|
|
115
|
+
'screen.model.changedEffort': 'Model changed to {model}. Reasoning effort {effort} applies to subsequent runs.',
|
|
116
|
+
'screen.model.changedEffortSession': 'Model changed to {model}. Reasoning effort {effort} applies to this session and to subsequent runs.',
|
|
117
|
+
'screen.model.noneProvider': 'none · /provider',
|
|
118
|
+
'screen.model.noneModel': 'none · /model',
|
|
119
|
+
'screen.effort.notAffirmed': 'Configured reasoning effort "{effort}" is not affirmed for {model}; using model default in this process.',
|
|
120
|
+
'screen.effort.modelDefault': 'model default',
|
|
121
|
+
'screen.reasoning.line': 'Reasoning · effort {effort} · {usage}',
|
|
122
|
+
'screen.reasoning.notReported': 'Reasoning usage not reported',
|
|
123
|
+
'screen.reasoning.tokensNotReported': 'reasoning tokens not reported',
|
|
124
|
+
'screen.reasoning.tokens.one': '{count} reasoning token',
|
|
125
|
+
'screen.reasoning.tokens.other': '{count} reasoning tokens',
|
|
126
|
+
'screen.reasoning.cost': 'reasoning cost ${cost}',
|
|
127
|
+
'screen.session.attached': 'Attached to {id}',
|
|
128
|
+
'screen.session.forked': 'Forked from {from}: this is a new conversation ({id}); the earlier one is unchanged.',
|
|
129
|
+
/* R4 Q-R4-13: /status is a small titled block; the mode is named in words (Q-R4-12). */
|
|
130
|
+
'screen.status.block': 'Status\n session {session}\n running {running}\n model {model}\n mode {mode}\n tools {tools}',
|
|
131
|
+
'screen.status.noSession': 'none yet — it starts with your first message',
|
|
132
|
+
'screen.status.mode': '{mode} · Shift+Tab cycle',
|
|
133
|
+
/* R5b D7 (Q-R5-17): what /status adds — sandbox, rules by scope, tasks and notes, usage. */
|
|
134
|
+
'screen.status.sandboxVerified': ' sandbox verified: commands run isolated',
|
|
135
|
+
'screen.status.sandboxNone': ' sandbox none: commands run unsandboxed',
|
|
136
|
+
'screen.status.sandboxUnknown': ' sandbox not checked yet',
|
|
137
|
+
'screen.status.rules': ' rules allow {allow} · ask {ask} · deny {deny} (user {user} · project {project} · yours here {projectUser})',
|
|
138
|
+
'screen.status.rulesNone': ' rules none: every action follows the mode',
|
|
139
|
+
'screen.status.rulesUnknown': ' rules could not be read',
|
|
140
|
+
'screen.status.work': ' work tasks open {open} (in progress {doing}) · notes {notes}',
|
|
141
|
+
'screen.status.workUnknown': ' work tasks and notes not available here',
|
|
142
|
+
'screen.status.usage': ' usage {usage}',
|
|
143
|
+
'screen.status.usageNone': ' usage nothing measured yet',
|
|
144
|
+
/* R5b D7 (Q-R5-17): the /help groups. */
|
|
145
|
+
'screen.help.group.session': 'Session',
|
|
146
|
+
'screen.help.group.turn': 'Model and turn',
|
|
147
|
+
'screen.help.group.view': 'View',
|
|
148
|
+
'screen.help.group.work': 'Work surfaces',
|
|
149
|
+
'screen.help.group.extensions': 'Extensions',
|
|
150
|
+
/* R5b (R5a open 2): a turn that asked the Context Engine for summaries and had none accepted. */
|
|
151
|
+
'screen.compaction.summaryNotAccepted.one': 'The context summary was requested once this turn and it was not accepted; each request is billed, and the conversation keeps its whole context.',
|
|
152
|
+
/* Desktop CE fix (aligned 2026-09-25): automatic compaction paused after a summary that was not accepted. */
|
|
153
|
+
'screen.compaction.paused.one': 'Automatic compaction is paused: its summary was not accepted ({code}). The next automatic try is after {time}; /compact tries now.',
|
|
154
|
+
'screen.compaction.paused.other': 'Automatic compaction is paused: its summary was not accepted {count} times in a row ({code}). The next automatic try is after {time}; /compact tries now.',
|
|
155
|
+
'screen.compaction.summaryNotAccepted.other': 'The context summary was requested {count} times this turn and none was accepted; each request is billed, and the conversation keeps its whole context.',
|
|
156
|
+
/* R5b (Q-R5-19): /retry and /copy. */
|
|
157
|
+
'screen.slash.retry': 'Send your last message again',
|
|
158
|
+
'screen.slash.copy': 'Copy TALOS’s last answer, or the n-th from the end, to the clipboard',
|
|
159
|
+
'screen.retry.none': 'Nothing to retry yet: no message was sent in this conversation.',
|
|
160
|
+
'screen.copy.answer': 'Copied answer {n} from the end ({chars} characters) through the terminal clipboard (OSC 52); a terminal without OSC 52 copies nothing.',
|
|
161
|
+
'screen.copy.noAnswer': 'There is no answer to copy yet.',
|
|
162
|
+
'screen.copy.noSuchAnswer.one': 'There is only {count} answer in this conversation.',
|
|
163
|
+
'screen.copy.noSuchAnswer.other': 'There are only {count} answers in this conversation.',
|
|
164
|
+
/* R5b (owner 2026-09-25): /history, the messages sent in this project. */
|
|
165
|
+
'screen.slash.history': 'Your messages in this project, to put one back in the composer',
|
|
166
|
+
'screen.history.title': 'Your messages · this project · {count}',
|
|
167
|
+
'screen.history.search': 'search: {query}',
|
|
168
|
+
'screen.history.keys': 'Type to search · ↑ ↓ choose · Enter puts it in the composer · Esc closes',
|
|
169
|
+
'screen.history.empty': 'No messages sent in this project yet.',
|
|
170
|
+
'screen.history.noMatch': 'No message matches "{query}"',
|
|
171
|
+
'screen.usage.copy': 'Usage: /copy [n] — n counts answers from the end; 1 is the last.',
|
|
172
|
+
'screen.forge.needsSessionAndTool': 'Forge enable/disable needs an active owner session and tool id.',
|
|
173
|
+
'screen.forge.needsSession': 'Forge enable/disable needs an active owner session.',
|
|
174
|
+
'screen.forge.rollbackNeedsSession': 'Forge rollback needs an active owner session.',
|
|
175
|
+
'screen.forge.noEarlierRevision': 'No earlier retained owner revision to roll back to.',
|
|
176
|
+
'screen.automation.runner': 'Automation runner: {state}',
|
|
177
|
+
'screen.research.exported': 'Research exported: {path}',
|
|
178
|
+
'screen.hooks.historyLimit': 'Hook history limit must be an integer from 1 to 50.',
|
|
179
|
+
'screen.hooks.dryRunBusy': 'Finish or cancel the active run before executing a hook dry-run.',
|
|
180
|
+
'screen.hooks.noEvent': 'This hook declares no event that can be dry-run.',
|
|
181
|
+
'screen.hooks.manualQuarantine': 'manual quarantine from Hook Center',
|
|
182
|
+
'screen.plugins.manualQuarantine': 'manual quarantine from Plugin Center',
|
|
183
|
+
'screen.context.noSession': 'No active session has context to inspect.',
|
|
184
|
+
'screen.context.unavailable': 'Context inspection is unavailable in this runtime.',
|
|
185
|
+
'screen.plan.enabled': 'Plan mode enabled.',
|
|
186
|
+
'screen.plan.disabled': 'Plan mode disabled.',
|
|
187
|
+
'screen.agents.none': 'No native agent tree is available for this session.',
|
|
188
|
+
'screen.slash.unknown': 'Unknown /{name}',
|
|
189
|
+
'screen.slash.unknownSuggest': 'Unknown /{name}. Did you mean {suggestions}?',
|
|
190
|
+
'screen.slash.notAvailable': '/{name} is not available in this TUI context.',
|
|
191
|
+
'screen.slash.childFailed': '/{name} failed:',
|
|
192
|
+
/* Usage lines (the syntax is the command's own; the sentence around it is English). */
|
|
193
|
+
'screen.usage.model': 'Usage: /model provider:model',
|
|
194
|
+
'screen.usage.forge': 'Usage: /forge [list|inspect|validate|scan|simulate|install|versions|rollback|enable|disable] [args...]',
|
|
195
|
+
'screen.usage.forgeInspect': 'Usage: /forge inspect <tool-id>',
|
|
196
|
+
'screen.usage.forgeRollback': 'Usage: /forge rollback <tool-id> <revision> (with an active owner session)',
|
|
197
|
+
'screen.usage.automations': 'Usage: /automations [list|read|dry-run|history|health|schedule|add|enable|disable|delete|run] [args...]',
|
|
198
|
+
'screen.usage.automationsOperation': 'Usage: /automations {operation} <automation-id>',
|
|
199
|
+
'screen.usage.research': 'Usage: /research [list|read|pause|resume|cancel|export|start|rename|delete] [args...]',
|
|
200
|
+
'screen.usage.researchRead': 'Usage: /research read <research-id>',
|
|
201
|
+
'screen.usage.researchOperation': 'Usage: /research {operation} <research-id>',
|
|
202
|
+
'screen.usage.researchExport': 'Usage: /research export <research-id> [md|json|bib|ris|html|pdf|docx] [output]',
|
|
203
|
+
'screen.usage.library': 'Usage: /library [list|search|read|preview|duplicates|context-ref|import|export|rename|delete] [args...]',
|
|
204
|
+
'screen.usage.tasks': 'Usage: /tasks [list|add|update|complete|delete|depend|undepend|evidence|unevidence|assign|unassign|schedule|unschedule] [args...]',
|
|
205
|
+
'screen.usage.tasksOperation': 'Usage: /tasks {operation} <task-id> <target-id>',
|
|
206
|
+
'screen.usage.notes': 'Usage: /notes [list|add|update|delete|link|unlink] [args...]',
|
|
207
|
+
'screen.usage.notesOperation': 'Usage: /notes {operation} <note-id> <session|task|research> <target-id>',
|
|
208
|
+
'screen.usage.memory': 'Usage: /memory [list|search <query>|add|update|delete]',
|
|
209
|
+
'screen.usage.memorySearch': 'Usage: /memory search <query>',
|
|
210
|
+
'screen.usage.mcp': 'Usage: /mcp [list|test|trust|untrust] [server-id]',
|
|
211
|
+
'screen.usage.hooks': 'Usage: /hooks [list|dry-run|history|trust|untrust|quarantine|release] [hook-id] [args...]',
|
|
212
|
+
'screen.usage.hooksHistory': 'Usage: /hooks history <hook-id> [limit]',
|
|
213
|
+
'screen.usage.hooksDryRun': 'Usage: /hooks dry-run <hook-id> <event-type> [action]',
|
|
214
|
+
'screen.usage.hooksTrust': 'Usage: /hooks trust <hook-id>',
|
|
215
|
+
'screen.usage.hooksUntrust': 'Usage: /hooks untrust <hook-id>',
|
|
216
|
+
'screen.usage.hooksRelease': 'Usage: /hooks release <hook-id>',
|
|
217
|
+
'screen.usage.plugins': 'Usage: /plugins [list|install|remove|trust|untrust|quarantine|release] [plugin-id] [args...]',
|
|
218
|
+
'screen.usage.pluginsOperation': 'Usage: /plugins {operation} <plugin-id>',
|
|
219
|
+
'screen.usage.pluginsTrust': 'Usage: /plugins trust <plugin-id>',
|
|
220
|
+
'screen.usage.pluginsUntrust': 'Usage: /plugins untrust <plugin-id>',
|
|
221
|
+
'screen.usage.pluginsRelease': 'Usage: /plugins release <plugin-id>',
|
|
222
|
+
'screen.usage.queue': 'Usage: /queue [clear|run]',
|
|
223
|
+
'screen.usage.permissionsDryRun': 'Usage: /permissions dry-run <shell command>',
|
|
224
|
+
/* The transcript, the header and the chrome under the composer. */
|
|
225
|
+
'screen.transcript.you': 'You',
|
|
226
|
+
'screen.transcript.assistant': 'TALOS',
|
|
227
|
+
'screen.transcript.reasoning': 'Reasoning',
|
|
228
|
+
'screen.transcript.run': 'Run · {status}',
|
|
229
|
+
'screen.transcript.earlierMessages.one': '↑ {count} earlier message above',
|
|
230
|
+
'screen.transcript.earlierMessages.other': '↑ {count} earlier messages above',
|
|
231
|
+
'screen.transcript.earlierItems.one': '↑ {count} earlier item above',
|
|
232
|
+
'screen.transcript.earlierItems.other': '↑ {count} earlier items above',
|
|
233
|
+
'screen.transcript.youSaid': 'You: {prompt}',
|
|
234
|
+
'screen.state.truncated': '…[truncated in TUI]',
|
|
235
|
+
'screen.approval.label': 'Approval',
|
|
236
|
+
'screen.header.interactive': 'interactive',
|
|
237
|
+
'screen.header.degraded': 'degraded',
|
|
238
|
+
'screen.diff.title': 'Diff · {mode}',
|
|
239
|
+
'screen.diff.noChanges': '(no changes)',
|
|
240
|
+
'screen.diff.failed': 'git diff failed',
|
|
241
|
+
'screen.markdown.column': 'Column {number}',
|
|
242
|
+
'screen.composer.multilineHint': 'Shift+Enter / Ctrl+J newline · Enter send',
|
|
243
|
+
'screen.layout.tooSmall': 'Terminal too small — need {columns}×{rows}',
|
|
244
|
+
'screen.shortcut.mode': 'mode {mode} · Shift+Tab cycle',
|
|
245
|
+
'screen.shortcut.interrupt': 'Esc/Ctrl+C interrupt',
|
|
246
|
+
'screen.shortcut.queue': 'queue {count}',
|
|
247
|
+
'screen.shortcut.transcript': 'PageUp/PageDown transcript',
|
|
248
|
+
'screen.shortcut.help': '? help',
|
|
249
|
+
'screen.status.ready': 'ready',
|
|
250
|
+
/* R4 Q-R4-12: the permission modes on screen, in Claude Code's words (permission-modes.md :134, :160-168, 2.1.278 →
|
|
251
|
+
2026-09-19, gate B.4) and R3's "why" vocabulary; the ids the runtime and the model receive are unchanged. */
|
|
252
|
+
'screen.mode.default': 'manual',
|
|
253
|
+
'screen.mode.acceptEdits': 'accept edits',
|
|
254
|
+
'screen.mode.plan': 'plan',
|
|
255
|
+
'screen.mode.auto': 'auto',
|
|
256
|
+
'screen.mode.dontAsk': "don't ask",
|
|
257
|
+
'screen.mode.bypassPermissions': 'Full access',
|
|
258
|
+
/* R4 Q-R4-7: the exit hint names the key that armed it (R1 kept "Press Ctrl+C again to exit"). */
|
|
259
|
+
'screen.exit.hint': 'Press {key} again to exit',
|
|
260
|
+
'screen.status.error': 'error',
|
|
261
|
+
/* R3 Q-R3-13 (R0 decisions 1 and 4): the persistent safety labels on the footer. */
|
|
262
|
+
'screen.footer.fullAccess': 'Full access',
|
|
263
|
+
'screen.footer.noSandbox': 'No sandbox',
|
|
264
|
+
'screen.busy.starting': 'starting',
|
|
265
|
+
'screen.busy.thinking': 'thinking',
|
|
266
|
+
/* R3 Q-R3-7 (gate E7): the status words while a turn runs and after it. */
|
|
267
|
+
'screen.busy.tool': 'running',
|
|
268
|
+
'screen.busy.toolNamed': 'running {tool}',
|
|
269
|
+
'screen.busy.writing': 'writing',
|
|
270
|
+
'screen.busy.waiting': 'waiting for you',
|
|
271
|
+
'screen.busy.done': 'done',
|
|
272
|
+
'screen.busy.interrupted': 'interrupted',
|
|
273
|
+
'screen.busy.failed': 'failed',
|
|
274
|
+
'screen.busy.compacting': 'compacting',
|
|
275
|
+
'screen.busy.connecting': 'connecting',
|
|
276
|
+
'screen.busy.updating': 'updating',
|
|
277
|
+
'screen.busy.idle': 'idle',
|
|
278
|
+
'screen.busy.error': 'error',
|
|
279
|
+
'screen.roster.main': '{marker} main · {status} · model {model}',
|
|
280
|
+
'screen.roster.queue': '{marker} queue · {count} pending{preview}',
|
|
281
|
+
'screen.roster.mainName': 'main',
|
|
282
|
+
'screen.roster.agent': 'agent',
|
|
283
|
+
'screen.roster.agentNamed': 'agent {name}',
|
|
284
|
+
'screen.roster.model': 'model {model}',
|
|
285
|
+
'screen.roster.collision': 'COLLISION {count}',
|
|
286
|
+
'screen.outcome.running': 'running',
|
|
287
|
+
/* Owner decision (R3 follow-up): one vocabulary after a turn — the roster says done / interrupted / failed like the
|
|
288
|
+
status row, never the kernel's session words (completed, cancelled, stopped). */
|
|
289
|
+
'screen.outcome.completed': 'done',
|
|
290
|
+
'screen.outcome.failed': 'failed',
|
|
291
|
+
'screen.outcome.stopped': 'interrupted',
|
|
292
|
+
'screen.outcome.cancelled': 'interrupted',
|
|
293
|
+
'screen.outcome.interrupted': 'interrupted',
|
|
294
|
+
'screen.outcome.unknown': 'unknown',
|
|
295
|
+
'screen.footer.unseen': '{count} new',
|
|
296
|
+
'screen.footer.session': 'session {id}',
|
|
297
|
+
'screen.footer.context': 'context {input}/{window} · {percent}%',
|
|
298
|
+
'screen.footer.contextStale': 'context {input}/{window} · {percent}% stale',
|
|
299
|
+
'screen.footer.usage': 'usage {total}',
|
|
300
|
+
/* /help and the command menu. */
|
|
301
|
+
'screen.help.title': 'Help',
|
|
302
|
+
'screen.help.commands': 'Commands',
|
|
303
|
+
'screen.help.keyboard': 'Keyboard',
|
|
304
|
+
'screen.help.close': 'Esc / Enter / ? closes help',
|
|
305
|
+
'screen.slash.help': 'Show commands',
|
|
306
|
+
'screen.slash.provider': 'Choose the AI provider',
|
|
307
|
+
'screen.slash.model': 'Choose a model from the chosen provider',
|
|
308
|
+
'screen.slash.queue': 'Show or manage queued follow-ups',
|
|
309
|
+
'screen.slash.permissions': 'Show permission mode',
|
|
310
|
+
'screen.slash.permissionsUsage': '[dry-run <shell command>]',
|
|
311
|
+
'screen.slash.plan': 'Toggle plan-oriented guidance',
|
|
312
|
+
'screen.slash.diff': 'Show current Git diff',
|
|
313
|
+
'screen.slash.status': 'Show session status',
|
|
314
|
+
'screen.slash.context': 'Show context/session information',
|
|
315
|
+
'screen.slash.compact': 'Compact context',
|
|
316
|
+
'screen.slash.clear': 'Clear terminal transcript',
|
|
317
|
+
'screen.slash.redraw': 'Redraw terminal',
|
|
318
|
+
'screen.slash.resume': 'Resume a session',
|
|
319
|
+
'screen.slash.fork': 'Fork a session',
|
|
320
|
+
'screen.slash.mcp': 'Manage MCP servers',
|
|
321
|
+
'screen.slash.hooks': 'Manage hooks',
|
|
322
|
+
'screen.slash.plugins': 'Manage plugins',
|
|
323
|
+
'screen.slash.doctor': 'Run diagnostics',
|
|
324
|
+
'screen.slash.memory': 'Memory operations',
|
|
325
|
+
'screen.slash.notes': 'Notes operations',
|
|
326
|
+
'screen.slash.tasks': 'Tasks operations',
|
|
327
|
+
'screen.slash.library': 'Library operations',
|
|
328
|
+
'screen.slash.research': 'Deep Research operations',
|
|
329
|
+
'screen.slash.automations': 'Automation operations',
|
|
330
|
+
'screen.slash.forge': 'Tool Forge operations',
|
|
331
|
+
'screen.slash.exit': 'Exit TALOS',
|
|
332
|
+
/* The keymap, as /help lists it. */
|
|
333
|
+
'screen.key.command-complete': 'Complete command',
|
|
334
|
+
/* R5a Q-R5-7: while TALOS works Enter follows /busy (queue by default); Alt+S steers and Esc interrupts in every mode. */
|
|
335
|
+
'screen.key.submit': 'Send prompt; while TALOS works, queue, steer or interrupt as /busy says, queue by default',
|
|
336
|
+
'screen.key.newline': 'Insert newline',
|
|
337
|
+
'screen.key.interrupt': 'Cancel the run; close a dialog; clear the draft (Up brings it back)',
|
|
338
|
+
'screen.key.exit': 'Exit: press twice on an empty composer',
|
|
339
|
+
'screen.key.clear-draft': 'Clear the draft; Up brings it back',
|
|
340
|
+
'screen.key.undo': 'Undo editor change',
|
|
341
|
+
'screen.key.redo': 'Redo editor change',
|
|
342
|
+
'screen.key.vim-toggle': 'Toggle Vim input (NORMAL h/j/k/l b/w 0/$ x u Ctrl+R i/a/I/A; INSERT Esc)',
|
|
343
|
+
'screen.key.steer': 'Steer active run at next safe boundary',
|
|
344
|
+
'screen.key.agent-tree': 'Inspect native agent tree',
|
|
345
|
+
'screen.key.left': 'Move cursor left',
|
|
346
|
+
'screen.key.right': 'Move cursor right',
|
|
347
|
+
'screen.key.home': 'Move to line start',
|
|
348
|
+
'screen.key.end': 'Move to line end',
|
|
349
|
+
'screen.key.word-left': 'Move back one word',
|
|
350
|
+
'screen.key.word-right': 'Move forward one word',
|
|
351
|
+
'screen.key.select-left': 'Extend selection left',
|
|
352
|
+
'screen.key.select-right': 'Extend selection right',
|
|
353
|
+
'screen.key.select-home': 'Extend selection to line start',
|
|
354
|
+
'screen.key.select-end': 'Extend selection to line end',
|
|
355
|
+
'screen.key.select-up': 'Extend selection up',
|
|
356
|
+
'screen.key.select-down': 'Extend selection down',
|
|
357
|
+
'screen.key.select-word-left': 'Extend selection back one word',
|
|
358
|
+
'screen.key.select-word-right': 'Extend selection forward one word',
|
|
359
|
+
'screen.key.copy-selection': 'Copy selection to yank buffer',
|
|
360
|
+
'screen.key.backspace': 'Delete before cursor',
|
|
361
|
+
'screen.key.delete-forward': 'Delete at cursor',
|
|
362
|
+
'screen.key.kill-start': 'Cut to line start',
|
|
363
|
+
'screen.key.kill-end': 'Cut to line end',
|
|
364
|
+
'screen.key.kill-word': 'Cut previous word or selection',
|
|
365
|
+
'screen.key.yank': 'Paste killed text',
|
|
366
|
+
'screen.key.history-prev': 'Previous prompt',
|
|
367
|
+
'screen.key.history-next': 'Next prompt',
|
|
368
|
+
'screen.key.history-search': 'Search prompt history',
|
|
369
|
+
'screen.key.palette': 'Complete a command or an @ path',
|
|
370
|
+
'screen.key.transcript-search': 'Search transcript',
|
|
371
|
+
'screen.key.transcript-raw': 'Toggle sanitized raw transcript',
|
|
372
|
+
'screen.key.transcript-copy': 'Copy selected transcript item',
|
|
373
|
+
'screen.key.page-up': 'Scroll transcript up',
|
|
374
|
+
'screen.key.page-down': 'Scroll transcript down',
|
|
375
|
+
'screen.key.transcript-top': 'Scroll transcript to the first message',
|
|
376
|
+
'screen.key.transcript-bottom': 'Scroll transcript to the latest output',
|
|
377
|
+
'screen.key.redraw': 'Redraw the screen (also /redraw)',
|
|
378
|
+
'screen.key.permission-cycle': 'Cycle manual, accept edits and plan',
|
|
379
|
+
'screen.key.model-picker': 'Open model picker (the provider list first when none is chosen)',
|
|
380
|
+
'screen.key.provider-picker': 'Open provider picker',
|
|
381
|
+
'screen.key.reasoning-toggle': 'Show or hide all reasoning; the choice is remembered',
|
|
382
|
+
'screen.key.external-editor': 'Open configured external editor',
|
|
383
|
+
'screen.key.tool-details': 'Toggle tool details',
|
|
384
|
+
'screen.key.approval-once': 'Allow once',
|
|
385
|
+
/* R3 gate E11 (Q-R3-5/6/14): the approval keys say what each one does now. */
|
|
386
|
+
'screen.key.approval-session': 'Allow for this session',
|
|
387
|
+
'screen.key.approval-always': 'Always allow matching operation',
|
|
388
|
+
'screen.key.approval-deny-once': 'Deny; the turn goes on',
|
|
389
|
+
'screen.key.approval-deny-always': 'Always deny matching operation (in the full review)',
|
|
390
|
+
'screen.key.approval-cancel': 'Deny and stop the turn (Esc in the full review goes back)',
|
|
391
|
+
'screen.key.approval-view': 'Open or close the full review',
|
|
392
|
+
'screen.key.approval-up': 'Move the highlight up',
|
|
393
|
+
'screen.key.approval-down': 'Move the highlight down',
|
|
394
|
+
'screen.key.approval-confirm': 'Choose the highlighted answer',
|
|
395
|
+
'screen.key.overlay-close': 'Close help',
|
|
396
|
+
'screen.key.help': 'Show keyboard help',
|
|
397
|
+
'screen.key.picker-up': 'picker up',
|
|
398
|
+
'screen.key.picker-down': 'picker down',
|
|
399
|
+
'screen.key.picker-page-up': 'picker page up',
|
|
400
|
+
'screen.key.picker-page-down': 'picker page down',
|
|
401
|
+
'screen.key.picker-home': 'picker home',
|
|
402
|
+
'screen.key.picker-end': 'picker end',
|
|
403
|
+
'screen.key.picker-confirm': 'picker confirm',
|
|
404
|
+
'screen.key.picker-cancel': 'picker cancel',
|
|
405
|
+
'screen.key.picker-backspace': 'picker backspace',
|
|
406
|
+
/* Pickers. */
|
|
407
|
+
'screen.picker.search': 'search: {query}',
|
|
408
|
+
'screen.picker.searchChoose': 'search: {query} · Enter chooses',
|
|
409
|
+
'screen.model.title': 'Model · {label} · {state}',
|
|
410
|
+
'screen.model.stateLoading': 'loading',
|
|
411
|
+
'screen.model.stateLive': 'live list',
|
|
412
|
+
'screen.model.stateUnverified': 'NOT VERIFIED',
|
|
413
|
+
'screen.model.count.one': 'search: {query} · {count} model',
|
|
414
|
+
'screen.model.count.other': 'search: {query} · {count} models',
|
|
415
|
+
'screen.model.rowReasoning': 'reasoning',
|
|
416
|
+
'screen.model.rowImage': 'image',
|
|
417
|
+
'screen.model.rowEffort': 'effort {efforts}',
|
|
418
|
+
'screen.model.rowUnverified': '[not verified]',
|
|
419
|
+
'screen.model.chooseProviderFirst': 'Choose a provider first with /provider.',
|
|
420
|
+
'screen.model.listFailed': 'The model list could not be loaded.',
|
|
421
|
+
'screen.effort.title': 'Reasoning effort · {model}',
|
|
422
|
+
'screen.effort.policy': 'Only efforts affirmed for this model are shown. “model default” sends no effort override.',
|
|
423
|
+
'screen.provider.title': 'Provider',
|
|
424
|
+
'screen.provider.titleNamed': 'Provider · {provider}',
|
|
425
|
+
'screen.provider.consentQuestion': '{variable} was found in the environment. Use it for {provider}?',
|
|
426
|
+
'screen.provider.consentVariableFallback': 'A key',
|
|
427
|
+
'screen.provider.consentNo': 'No (recommended)',
|
|
428
|
+
'screen.provider.consentYes': 'Yes, use it',
|
|
429
|
+
'screen.provider.consentFoot': 'Enter confirms · Esc cancels · the answer is remembered, the key is not stored',
|
|
430
|
+
'screen.provider.keyBenched': 'key benched',
|
|
431
|
+
'screen.provider.keyBenchedCause': ' ({cause})',
|
|
432
|
+
'screen.provider.keyBenchedUntil': ' until {clock}',
|
|
433
|
+
'screen.provider.keySavedLabel': 'key saved',
|
|
434
|
+
'screen.provider.keyFrom': 'key from {variable}',
|
|
435
|
+
'screen.provider.keyFromEnvironment': 'the environment',
|
|
436
|
+
'screen.provider.keyUnanswered': 'key in environment, not used',
|
|
437
|
+
'screen.provider.keyDeclined': 'environment key declined',
|
|
438
|
+
'screen.provider.keyNotRequired': 'no key needed',
|
|
439
|
+
'screen.provider.keyMissing': 'no key',
|
|
440
|
+
'screen.provider.keyPrompt': 'API key for {provider}: {masked}',
|
|
441
|
+
'screen.provider.keyTesting': 'Testing the key with {provider}…',
|
|
442
|
+
'screen.provider.keyResult': '{result} The key was not saved.',
|
|
443
|
+
'screen.provider.keyFoot': 'Enter tests the key; it is saved only if the test passes · Esc cancels',
|
|
444
|
+
'screen.session.resumeTitle': 'Resume session',
|
|
445
|
+
'screen.session.forkTitle': 'Fork session',
|
|
446
|
+
/* R4 Q-R4-13: every list lane N draws says when it is empty, with the next step (gate §5.2). */
|
|
447
|
+
'screen.session.empty': 'No saved sessions for this folder yet. Send a message to start one.',
|
|
448
|
+
'screen.session.noMatch': 'No sessions match "{query}"',
|
|
449
|
+
'screen.commands.none': 'No commands match "/{query}" · Enter sends it as typed',
|
|
450
|
+
/* R4 Q-R4-8: the live `@` list. */
|
|
451
|
+
'screen.completion.title': 'Files · Tab inserts · Esc closes',
|
|
452
|
+
'screen.completion.none': 'No files match {path}',
|
|
453
|
+
'screen.completion.emptyFolder': 'No files in {folder}',
|
|
454
|
+
'screen.completion.thisFolder': 'this folder',
|
|
455
|
+
/* R5b D6 (Q-R5-16; plan Part III items 2 and 5): where the @ rows come from, and how many there were. */
|
|
456
|
+
'screen.completion.sourceFolder': 'In {folder}',
|
|
457
|
+
'screen.completion.sourceProject': 'Project search, .gitignore respected: {found} found',
|
|
458
|
+
'screen.completion.sourceProjectMore': 'Project search, .gitignore respected: first {shown} of {found} shown',
|
|
459
|
+
'screen.completion.sourceCapped': ' · the search stopped at {max} files',
|
|
460
|
+
/* Overlays and centers: titles, empty states, the way out, and the kernel enum values they print. */
|
|
461
|
+
'screen.center.closeRefresh': 'Esc/q close · r refresh',
|
|
462
|
+
'screen.center.closeRefreshU': 'Esc/q close · u refresh',
|
|
463
|
+
'screen.center.escRefresh': 'Esc closes · r refresh',
|
|
464
|
+
'screen.center.escQRefresh': 'Esc / q closes · r refresh',
|
|
465
|
+
'screen.center.closes': 'Esc / Enter / q closes',
|
|
466
|
+
'screen.center.selectRefresh': '↑/↓ select · r refresh · Esc/q close',
|
|
467
|
+
'screen.writer.modello': 'model',
|
|
468
|
+
'screen.writer.persona': 'you',
|
|
469
|
+
'screen.noteFormat.testo': 'plain text',
|
|
470
|
+
'screen.noteFormat.markdown': 'Markdown',
|
|
471
|
+
'screen.agents.title': 'Agents · native delegation tree',
|
|
472
|
+
'screen.agents.empty': 'No native agent rows. · Esc close',
|
|
473
|
+
'screen.agents.steerHint': 'Alt+S steer active session from composer · Esc close',
|
|
474
|
+
'screen.agents.inspectOnly': 'inspection only · steering unavailable for selected session · Esc close',
|
|
475
|
+
'screen.automation.title': 'Automation Center',
|
|
476
|
+
'screen.automation.empty': '(no automations)',
|
|
477
|
+
'screen.automation.keys': '↑/↓ select · d dry-run/detail · u refresh · Esc/q close',
|
|
478
|
+
'screen.context.title': 'Context · {session}',
|
|
479
|
+
'screen.context.unmeasured': 'Prepared context measurement unavailable{reason}.',
|
|
480
|
+
'screen.forge.title': 'Forge Center',
|
|
481
|
+
'screen.forge.empty': '(no forged tools)',
|
|
482
|
+
'screen.forge.keys': '↑/↓ select · e enable/disable · b rollback previous revision · r refresh · Esc/q close',
|
|
483
|
+
'screen.hooks.title': 'TALOS · Hooks control center',
|
|
484
|
+
'screen.hooks.empty': 'No project hooks declared.',
|
|
485
|
+
'screen.hooks.keys': '↑/↓ select · d dry-run {event} · t trust · u untrust · q quarantine/release · r refresh · Esc close',
|
|
486
|
+
'screen.hooks.declaredEvent': 'declared event',
|
|
487
|
+
'screen.library.title': 'Library Center',
|
|
488
|
+
'screen.library.empty': '(no Library entries)',
|
|
489
|
+
'screen.library.keys': '↑/↓ select · p preview · u exact duplicates · a attach · d detach · r refresh · Esc/q close',
|
|
490
|
+
'screen.mcp.title': 'TALOS · MCP control center',
|
|
491
|
+
'screen.mcp.empty': 'No MCP servers declared.',
|
|
492
|
+
'screen.mcp.keys': '↑/↓ select · p/Enter probe · t trust · u untrust · r refresh · Esc/q close',
|
|
493
|
+
'screen.memory.title': 'Memory Center',
|
|
494
|
+
'screen.memory.empty': '(no memories)',
|
|
495
|
+
'screen.notes.title': 'Notes Center',
|
|
496
|
+
'screen.notes.empty': '(no notes)',
|
|
497
|
+
'screen.notes.keys': '↑/↓ select · c attach to composer · r refresh · Esc/q close',
|
|
498
|
+
'screen.notes.linkHelp': 'Link: /notes link <note-id> <session|task|research> <target-id>',
|
|
499
|
+
'screen.notes.unlinkHelp': 'Unlink: /notes unlink <note-id> <session|task|research> <target-id>',
|
|
500
|
+
'screen.plugins.title': 'TALOS · Plugin Center',
|
|
501
|
+
'screen.plugins.empty': 'No project plugins discovered.',
|
|
502
|
+
'screen.plugins.keys': '↑/↓ select · t trust · u revoke · q quarantine/release · r refresh · Esc close',
|
|
503
|
+
'screen.plugins.blocked': 'TRUST BLOCKED: Plugin Guard marked the current package dangerous.',
|
|
504
|
+
'screen.research.title': 'Research Center',
|
|
505
|
+
'screen.research.empty': '(no research)',
|
|
506
|
+
'screen.research.keys': '↑/↓ select · p pause · r resume · c cancel · e export Markdown · u refresh · Esc/q close',
|
|
507
|
+
'screen.tasks.title': 'Task Board',
|
|
508
|
+
'screen.tasks.empty': '(no tasks)',
|
|
509
|
+
'screen.tasks.edges': 'Edges: /tasks depend|undepend <task-id> <task-id>',
|
|
510
|
+
'screen.tasks.edgesEvidence': ' /tasks evidence|unevidence <task-id> <session-id>',
|
|
511
|
+
'screen.tasks.edgesAssign': ' /tasks assign|unassign <task-id> <agent-session-id>',
|
|
512
|
+
'screen.tasks.edgesSchedule': ' /tasks schedule|unschedule <task-id> <automation-id>',
|
|
513
|
+
'screen.workflow.title': 'TALOS · Workflow Center',
|
|
514
|
+
'screen.workflow.empty': 'No custom commands, workflows or project skills discovered.',
|
|
515
|
+
'screen.trust.title': 'TALOS · Security & trust',
|
|
516
|
+
'screen.trust.trusted': 'TRUSTED',
|
|
517
|
+
'screen.trust.notTrusted': 'NOT TRUSTED · {reason}',
|
|
518
|
+
'screen.trust.project': 'Project: {root}',
|
|
519
|
+
'screen.trust.projectTrust': 'Project trust: {status}',
|
|
520
|
+
'screen.trust.permissionMode': 'Permission mode: {mode}',
|
|
521
|
+
'screen.trust.policy': 'Project/resource trust does not replace per-action permission policy.',
|
|
522
|
+
'screen.trust.noResources': 'No executable or instruction resources discovered.',
|
|
523
|
+
'screen.trust.nested.one': 'Nested repository · {path} · {count} resource',
|
|
524
|
+
'screen.trust.nested.other': 'Nested repository · {path} · {count} resources',
|
|
525
|
+
'screen.trust.noNested': 'Nested repositories: none',
|
|
526
|
+
'screen.trust.resources': 'Resources',
|
|
527
|
+
'screen.trust.actions': 'Actions',
|
|
528
|
+
'screen.trust.review': 'Review: talos project status',
|
|
529
|
+
'screen.trust.accept': 'Accept current snapshot: talos project trust',
|
|
530
|
+
'screen.trust.revoke': 'Revoke project trust: talos project revoke',
|
|
531
|
+
'screen.trust.migrateNested': 'Migrate legacy store with explicit nested-boundary consent: talos project migrate-trust --include-nested',
|
|
532
|
+
'screen.trust.migrate': 'Migrate legacy store explicitly: talos project migrate-trust',
|
|
533
|
+
'screen.trust.rollback': 'Rollback migration: talos project rollback-trust-migration',
|
|
534
|
+
'screen.queueEditor.restored': 'Queue · RESTORED · paused',
|
|
535
|
+
'screen.queueEditor.live': 'Queue · live',
|
|
536
|
+
'screen.queueEditor.count.one': '{count} queued item',
|
|
537
|
+
'screen.queueEditor.count.other': '{count} queued items',
|
|
538
|
+
'screen.queueEditor.uncertain': 'uncertain · may have been delivered',
|
|
539
|
+
'screen.queueEditor.attachments.one': '{count} attachment',
|
|
540
|
+
'screen.queueEditor.attachments.other': '{count} attachments',
|
|
541
|
+
'screen.queueEditor.followUp': 'follow-up · ',
|
|
542
|
+
'screen.queueEditor.edit': 'edit: {draft}',
|
|
543
|
+
'screen.queueEditor.editKeys': 'Enter save · Esc cancel edit',
|
|
544
|
+
'screen.queueEditor.keys': 'Up/Down select · Shift+Up/Down move · e edit · d delete · c clear · r resume · Esc/q close',
|
|
545
|
+
'screen.queueEditor.retryWarning': 'Resume may retry an uncertain entry whose final acknowledgement was lost.',
|
|
546
|
+
'screen.search.header': 'Transcript search · {mode} · {position}/{total} matches · {view}',
|
|
547
|
+
'screen.search.viewRaw': 'raw',
|
|
548
|
+
'screen.search.viewSemantic': 'semantic',
|
|
549
|
+
'screen.search.query': 'query: {query} · Tab literal/fuzzy · Alt+R raw · Alt+C copy · Enter jump · Esc close',
|
|
550
|
+
'screen.search.none': 'No matches.',
|
|
551
|
+
'screen.search.selected': 'selected: {id}',
|
|
552
|
+
/* The execution row of a shell command (EXECUTION_TEXT). Its kernel-contract markers are NOT here (gate E2). */
|
|
553
|
+
'screen.exec.on': 'on',
|
|
554
|
+
'screen.exec.off': 'off',
|
|
555
|
+
'screen.exec.isolation.sandbox': '⛉ sandbox ({backend})',
|
|
556
|
+
'screen.exec.isolation.sandboxWithoutEvidence': '⛉ sandbox (no evidence reported)',
|
|
557
|
+
'screen.exec.isolation.host': '⛶ host',
|
|
558
|
+
'screen.exec.isolation.hostNotIsolated': '⛶ host · not isolated',
|
|
559
|
+
'screen.exec.isolation.wsl2': '⛶ wsl2',
|
|
560
|
+
'screen.exec.isolation.device': '⛶ device',
|
|
561
|
+
'screen.exec.isolation.named': '⛶ {name}',
|
|
562
|
+
'screen.exec.reason.verified': 'isolation verified: AppContainer {appContainer}, filesystem {filesystem}, network {network}, process tree {processTree}',
|
|
563
|
+
'screen.exec.reason.backendUnavailable': 'no isolation backend on this host: {why}',
|
|
564
|
+
'screen.exec.reason.brokerNotConfigured': 'no isolation broker is configured in this build, so the command ran outside the isolation',
|
|
565
|
+
'screen.exec.reason.brokerConstructionFailed': 'the isolation broker could not be built ({detail}), so the command ran outside the isolation',
|
|
566
|
+
'screen.exec.reason.destinationMobile': 'an AppContainer cannot host an adb shell, so the command ran on the device',
|
|
567
|
+
'screen.exec.reason.destinationWsl2': 'an AppContainer cannot host a WSL2 distribution, so the command ran in WSL2',
|
|
568
|
+
'screen.exec.reason.platformNotWindows': 'the isolation backend is Windows-only and this host is {platform}',
|
|
569
|
+
'screen.exec.reason.timedOut': 'the isolated run did not finish within {seconds}s and was stopped',
|
|
570
|
+
'screen.exec.reason.stoppedOnRequest': 'you stopped the isolated run before it finished',
|
|
571
|
+
'screen.exec.reason.sandboxUnverified': 'the Windows sandbox could not be verified on this host ({why}), so the command ran on the host',
|
|
572
|
+
'screen.exec.reason.brokerUnbuildable': 'the isolation broker could not be built ({detail}), so the command ran on the host',
|
|
573
|
+
'screen.exec.reason.hostPlatform': 'the Windows sandbox is Windows-only and this host is {platform}, so the command ran on the host',
|
|
574
|
+
'screen.exec.reason.hostNoBroker': 'no isolation broker is configured, so the command ran on the host',
|
|
575
|
+
'screen.exec.shellSessionRequired': 'Start a session before running a command with !',
|
|
576
|
+
'screen.exec.why.unverified': 'verified Windows sandbox isolation is unavailable',
|
|
577
|
+
'screen.exec.why.mobile': 'mobile execution is outside the Windows AppContainer boundary',
|
|
578
|
+
'screen.exec.why.wsl2': 'WSL2 execution is outside the Windows AppContainer boundary',
|
|
579
|
+
'screen.exec.why.platform': 'TALOS CLI v1 sandboxing requires Windows x64; this host is {platform}',
|
|
580
|
+
'screen.exec.why.noBroker': 'no CLI isolation broker is configured',
|
|
581
|
+
'screen.exec.why.notRun': '{why}; the command was not run',
|
|
582
|
+
'screen.exec.why.noDetail': 'no detail',
|
|
583
|
+
'screen.exec.why.noBackend': 'no verified Windows sandbox backend',
|
|
584
|
+
'screen.exec.why.noEnforcement': 'no execution backend satisfies the requested enforcement',
|
|
585
|
+
/* R5a S1 (Q-R5-2, Q-R5-5; gate E1, E2): the one status row in the Hermes form. `?` is unknown, `~` an estimate; a cost
|
|
586
|
+
is a list-price estimate from a named source, `local` an engine with no price. */
|
|
587
|
+
'screen.statusbar.model': 'model {model}',
|
|
588
|
+
'screen.statusbar.tokens': '↑{input} ↓{output}',
|
|
589
|
+
'screen.statusbar.cached': 'cached {count}',
|
|
590
|
+
'screen.statusbar.context': 'ctx {used}/{window} {percent}%',
|
|
591
|
+
'screen.statusbar.contextShort': 'ctx {percent}%',
|
|
592
|
+
'screen.statusbar.contextUnknown': 'ctx ?',
|
|
593
|
+
'screen.statusbar.cost': '~${cost}',
|
|
594
|
+
'screen.statusbar.costReported': '${cost}',
|
|
595
|
+
'screen.statusbar.costUnknown': 'cost ?',
|
|
596
|
+
'screen.statusbar.local': 'local',
|
|
597
|
+
'screen.statusbar.compactions': 'cmp {count}',
|
|
598
|
+
'screen.statusbar.unknown': '?',
|
|
599
|
+
/* /usage (Q-R5-8: a view, it runs at once during a turn). */
|
|
600
|
+
'screen.usageView.block': 'Usage\n model {model}\n tokens {tokens}\n context {context}\n cost {cost}\n compactions {compactions}',
|
|
601
|
+
'screen.usageView.tokens': '{input} in · {output} out',
|
|
602
|
+
'screen.usageView.tokensCached': '{input} in · {output} out · {cached} cached',
|
|
603
|
+
'screen.usageView.tokensUnknown': 'not reported yet',
|
|
604
|
+
'screen.usageView.estimated': '{text} (estimated)',
|
|
605
|
+
'screen.usageView.context': '{used} of {window} tokens · {percent}% · window from {source}',
|
|
606
|
+
'screen.usageView.contextUsedUnknown': '{window}-token window from {source} · used not reported yet',
|
|
607
|
+
'screen.usageView.contextUnknown': 'window unknown, so no percentage is shown',
|
|
608
|
+
'screen.usageView.sourceDated': '{source}, {date}',
|
|
609
|
+
'screen.usageView.source.registry': 'the TALOS model registry',
|
|
610
|
+
'screen.usageView.source.provider': "the provider's model list",
|
|
611
|
+
'screen.usageView.source.ollama-show': 'Ollama (/api/show)',
|
|
612
|
+
'screen.usageView.source.override': 'your configuration',
|
|
613
|
+
'screen.usageView.source.models.dev': 'models.dev',
|
|
614
|
+
'screen.usageView.sourceUnnamed': 'an unnamed source',
|
|
615
|
+
'screen.usageView.cost': '~${cost} at list price · source {source}',
|
|
616
|
+
'screen.usageView.costUnknown': 'unknown: no price source for this model',
|
|
617
|
+
'screen.usageView.local': 'local engine, no cost',
|
|
618
|
+
'screen.usageView.compactionsEarly': '{count} · at 50% of the window',
|
|
619
|
+
'screen.usageView.compactionsKernel': '{count} · every 8 model calls (window unknown)',
|
|
620
|
+
'screen.usageView.compactionsSmallWindow': '{count} · every 8 model calls (window below 64k: simple mode)',
|
|
621
|
+
'screen.context.smallWindow': '{model} has a {window}-token window: too small for the Context Engine, since TALOS\u2019s own instructions and tools take about 11k. TALOS uses its simple mode: it compacts every 8 model calls and cuts long tool results at 8,000 characters, saying so. For the Context Engine set a window of {min} or more (Ollama: num_ctx).',
|
|
622
|
+
/* R5a S3 (Q-R5-4, E9): a compaction is named when it happens: the engine, what was summarized, tokens before and after. */
|
|
623
|
+
'screen.compaction.contextEngine': 'Context compacted by the Context Engine at 50% of the window: {summary} · /context',
|
|
624
|
+
'screen.compaction.kernel': 'Context compacted by the kernel (every 8 model calls while the window is unknown): {summary} · /context',
|
|
625
|
+
'screen.compaction.messages.one': '{count} earlier message summarized',
|
|
626
|
+
'screen.compaction.messages.other': '{count} earlier messages summarized',
|
|
627
|
+
'screen.compaction.messagesUnknown': 'earlier messages summarized',
|
|
628
|
+
'screen.compaction.tokens': '{before} → {after} tokens',
|
|
629
|
+
'screen.compaction.tokensBefore': '{before} tokens before',
|
|
630
|
+
'screen.compaction.tokensAfter': '{after} tokens after',
|
|
631
|
+
'screen.compaction.tokensUnknown': 'token counts not reported',
|
|
632
|
+
/* R5a S4 (Q-R5-6, E5): the retry line on the live activity row; a countdown only when the wait is known. */
|
|
633
|
+
'screen.busy.retrying': 'retrying',
|
|
634
|
+
'screen.retry.title': 'Retrying',
|
|
635
|
+
'screen.retry.attempt': 'attempt {attempt} of {max}',
|
|
636
|
+
'screen.retry.http': 'HTTP {status}',
|
|
637
|
+
'screen.retry.noResponse': 'no response',
|
|
638
|
+
'screen.retry.in': 'in {seconds} s',
|
|
639
|
+
'screen.retry.asked': 'the provider asked to wait {seconds} s',
|
|
640
|
+
/* R5a S5 (Q-R5-7, Q-R5-8, E8): what Enter does while TALOS works. */
|
|
641
|
+
'screen.shortcut.modeShort': 'mode {mode}',
|
|
642
|
+
'screen.busyLine.queue': 'Enter queues · Alt+S steers · Esc interrupts',
|
|
643
|
+
'screen.busyLine.steer': 'Enter steers · Esc interrupts',
|
|
644
|
+
'screen.busyLine.interrupt': 'Enter interrupts and sends · Alt+S steers · Esc interrupts',
|
|
645
|
+
'screen.busyInput.effect.queue': 'Enter queues your message until the turn ends',
|
|
646
|
+
'screen.busyInput.effect.steer': 'Enter steers the running turn with your message',
|
|
647
|
+
'screen.busyInput.effect.interrupt': 'Enter stops the turn and sends your message',
|
|
648
|
+
'screen.busyInput.tip': 'Tip: while TALOS works, {effect}; Alt+S steers, Esc interrupts, /busy changes it.',
|
|
649
|
+
'screen.busyInput.show': 'Busy input: {mode}. While TALOS works, {effect}. /busy queue|steer|interrupt changes it.',
|
|
650
|
+
'screen.busyInput.set': 'Busy input set to {mode}: while TALOS works, {effect}.',
|
|
651
|
+
'screen.busyInput.queuedSlash': '/{name} runs when this turn ends (queued).',
|
|
652
|
+
'screen.usage.busy': 'Usage: /busy [queue|steer|interrupt]',
|
|
653
|
+
'screen.action.saveSetting': 'Saving the setting',
|
|
654
|
+
'screen.slash.busy': 'Choose what Enter does while TALOS works',
|
|
655
|
+
/* R5a (owner 2026-09-24): /effort, a line of nodes (tui/overlays/effort-line.ts). */
|
|
656
|
+
'screen.slash.effort': 'Choose the reasoning effort of the current model',
|
|
657
|
+
'screen.slash.export': 'Save this conversation to a file (Markdown by default)',
|
|
658
|
+
'screen.slash.rename': 'Give this conversation a name',
|
|
659
|
+
'screen.rename.done': 'Renamed this conversation to "{name}".',
|
|
660
|
+
'screen.rename.cleared': 'This conversation has no name now.',
|
|
661
|
+
'screen.session.renamedCli': 'Renamed {id} to {name}',
|
|
662
|
+
'screen.session.nameClearedCli': 'Cleared the name of {id}',
|
|
663
|
+
'screen.rename.noSession': 'There is no conversation to name yet.',
|
|
664
|
+
'screen.usage.rename': 'Usage: /rename <name> (up to 80 characters), or /rename --clear',
|
|
665
|
+
'screen.session.ageNow': 'just now',
|
|
666
|
+
'screen.session.ageMinutes': '{count} min ago',
|
|
667
|
+
'screen.session.ageHours': '{count} h ago',
|
|
668
|
+
'screen.session.ageDays': '{count} d ago',
|
|
669
|
+
/* R5b (acceptance s09, 2026-09-25): one turn is "1 turn". */
|
|
670
|
+
'screen.session.turns.one': '{count} turn',
|
|
671
|
+
'screen.session.turns.other': '{count} turns',
|
|
672
|
+
'screen.export.saved': 'Conversation saved ({format}): {path}',
|
|
673
|
+
'screen.export.nothing': 'There is no conversation to save yet.',
|
|
674
|
+
'screen.usage.export': 'Usage: /export [md|json|jsonl] [file]',
|
|
675
|
+
'screen.effort.lineTitle': 'Effort · {model}',
|
|
676
|
+
'screen.effort.keys': '← → adjust · Enter confirm · Esc cancel',
|
|
677
|
+
'screen.effort.faster': 'Faster',
|
|
678
|
+
'screen.effort.smarter': 'Smarter',
|
|
679
|
+
'screen.effort.inUse': 'In use now: {level}',
|
|
680
|
+
'screen.effort.describe.default': 'Default: the model’s own setting, no override.',
|
|
681
|
+
'screen.effort.describe.low': 'Low: quick answers, the least reasoning.',
|
|
682
|
+
'screen.effort.describe.medium': 'Medium: balanced reasoning.',
|
|
683
|
+
'screen.effort.describe.high': 'High: deeper reasoning, slower, more tokens.',
|
|
684
|
+
'screen.effort.describe.xhigh': 'Extra high: very deep reasoning, slower still.',
|
|
685
|
+
'screen.effort.describe.max': 'Max: the deepest reasoning, the slowest and most tokens.',
|
|
686
|
+
'screen.effort.describe.other': '{level}: a level this model declares.',
|
|
687
|
+
'screen.effort.none': '{model} declares no reasoning effort levels, so there is nothing to choose.',
|
|
688
|
+
'screen.effort.invalid': '"{level}" is not a level {model} declares. Its levels: {choices}.',
|
|
689
|
+
'screen.slash.usage': 'Show tokens, context window, cost and compactions',
|
|
690
|
+
/* R5a S8 (Q-R5-9): a hidden reasoning block leaves one dim line. */
|
|
691
|
+
'screen.thought.duration': 'Thought for {duration} · Ctrl+T shows',
|
|
692
|
+
'screen.thought.noDuration': 'Thought · Ctrl+T shows',
|
|
693
|
+
'screen.roster.mainStatus': '{marker} main · {status}',
|
|
694
|
+
/* R5b D4 (Q-R5-14): the /theme picker and command. */
|
|
695
|
+
'screen.slash.theme': 'Choose the colour theme (the arrows preview it)',
|
|
696
|
+
'screen.theme.title': 'Theme',
|
|
697
|
+
'screen.theme.inUse': 'in use',
|
|
698
|
+
'screen.theme.mono': 'Mono',
|
|
699
|
+
'screen.theme.noColour': 'no colour',
|
|
700
|
+
'screen.theme.keys': '↑ ↓ preview · Enter keep · Esc back to {current}',
|
|
701
|
+
'screen.theme.set': 'Theme: {theme}. Saved for every project.',
|
|
702
|
+
'screen.theme.setUnsaved': 'Theme: {theme}, for this session (it could not be saved).',
|
|
703
|
+
'screen.theme.invalid': '"{name}" is not a theme. The themes: {choices}.',
|
|
704
|
+
/* R5b D3 (Q-R5-13): the files a checkpoint changed, in `talos checkpoint list` and the /undo picker. */
|
|
705
|
+
'screen.checkpoint.files.one': '{count} file: {list}',
|
|
706
|
+
'screen.checkpoint.files.other': '{count} files: {list}',
|
|
707
|
+
'screen.checkpoint.noFiles': 'no files changed',
|
|
708
|
+
'screen.checkpoint.change.added': 'added',
|
|
709
|
+
'screen.checkpoint.change.modified': 'modified',
|
|
710
|
+
'screen.checkpoint.change.deleted': 'deleted',
|
|
711
|
+
/* R5b D3 (Q-R5-13 and the owner's answers of 2026-09-25): the /undo picker. */
|
|
712
|
+
'screen.slash.undo': 'Go back to an earlier point of this conversation’s files (also /rewind, /checkpoint)',
|
|
713
|
+
'screen.undo.title': 'Rewind files · this conversation',
|
|
714
|
+
'screen.undo.kind.turn': 'turn',
|
|
715
|
+
'screen.undo.kind.command': 'your command',
|
|
716
|
+
'screen.undo.undone': 'undone',
|
|
717
|
+
'screen.undo.keys': '↑ ↓ choose · Enter go back (on an undone row: re-apply) · Esc close',
|
|
718
|
+
'screen.undo.note': 'Only files are restored; the conversation stays. A file changed outside TALOS since then stops it: nothing is overwritten.',
|
|
719
|
+
'screen.undo.confirmRewind.one': 'Go back to before this turn? {count} turn undone',
|
|
720
|
+
'screen.undo.confirmRewind.other': 'Go back to before this turn? {count} turns undone',
|
|
721
|
+
'screen.undo.confirmReapply.one': 'Re-apply up to this turn? {count} turn',
|
|
722
|
+
'screen.undo.confirmReapply.other': 'Re-apply up to this turn? {count} turns',
|
|
723
|
+
'screen.undo.cancel': 'Cancel',
|
|
724
|
+
'screen.undo.goBack': 'Go back',
|
|
725
|
+
'screen.undo.reapply': 'Re-apply',
|
|
726
|
+
'screen.undo.confirmKeys': '↑ ↓ choose · Enter confirm · Esc back to the list',
|
|
727
|
+
'screen.undo.done.one': 'Went back: {count} turn undone. {files}',
|
|
728
|
+
'screen.undo.done.other': 'Went back: {count} turns undone. {files}',
|
|
729
|
+
'screen.undo.redone.one': 'Re-applied: {count} turn. {files}',
|
|
730
|
+
'screen.undo.redone.other': 'Re-applied: {count} turns. {files}',
|
|
731
|
+
'screen.undo.busy': 'TALOS is working: /undo is available when this turn ends.',
|
|
732
|
+
'screen.undo.otherRun': 'Another TALOS is working on this project: /undo waits until it ends.',
|
|
733
|
+
'screen.undo.none': 'Nothing to undo in this conversation yet: no turn has changed a file.',
|
|
734
|
+
'screen.undo.unavailable': 'Checkpoints are not available here, so there is nothing to undo.',
|
|
735
|
+
'screen.undo.marker': 'Checkpoint · {files} · /undo goes back',
|
|
736
|
+
};
|