@vascend/talos 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/README.md +202 -0
- package/dist/backend/asset-events.d.ts +31 -0
- package/dist/backend/asset-events.js +149 -0
- package/dist/backend/assets.d.ts +31 -0
- package/dist/backend/assets.js +210 -0
- package/dist/backend/auth.d.ts +18 -0
- package/dist/backend/auth.js +59 -0
- package/dist/backend/config.d.ts +14 -0
- package/dist/backend/config.js +41 -0
- package/dist/backend/conversations.d.ts +21 -0
- package/dist/backend/conversations.js +141 -0
- package/dist/backend/crypto.d.ts +9 -0
- package/dist/backend/crypto.js +68 -0
- package/dist/backend/engine.d.ts +13 -0
- package/dist/backend/engine.js +78 -0
- package/dist/backend/http.d.ts +25 -0
- package/dist/backend/http.js +112 -0
- package/dist/backend/index.d.ts +1 -0
- package/dist/backend/index.js +24 -0
- package/dist/backend/routes.d.ts +14 -0
- package/dist/backend/routes.js +169 -0
- package/dist/backend/sdk.d.ts +12 -0
- package/dist/backend/sdk.js +11 -0
- package/dist/backend/server.d.ts +12 -0
- package/dist/backend/server.js +91 -0
- package/dist/backend/temp-image-store.d.ts +46 -0
- package/dist/backend/temp-image-store.js +197 -0
- package/dist/backend/types.d.ts +103 -0
- package/dist/backend/types.js +29 -0
- package/dist/backend/users.d.ts +13 -0
- package/dist/backend/users.js +76 -0
- package/dist/backend/ws-handler.d.ts +14 -0
- package/dist/backend/ws-handler.js +72 -0
- package/dist/backend/ws.d.ts +19 -0
- package/dist/backend/ws.js +146 -0
- package/dist/core/agent.d.ts +56 -0
- package/dist/core/agent.js +1783 -0
- package/dist/core/background.d.ts +45 -0
- package/dist/core/background.js +140 -0
- package/dist/core/bootstrap.d.ts +45 -0
- package/dist/core/bootstrap.js +294 -0
- package/dist/core/cli-args.d.ts +41 -0
- package/dist/core/cli-args.js +282 -0
- package/dist/core/collapsible-output.d.ts +38 -0
- package/dist/core/collapsible-output.js +143 -0
- package/dist/core/compaction-checkpoint.d.ts +9 -0
- package/dist/core/compaction-checkpoint.js +58 -0
- package/dist/core/compaction.d.ts +42 -0
- package/dist/core/compaction.js +270 -0
- package/dist/core/config.d.ts +49 -0
- package/dist/core/config.js +417 -0
- package/dist/core/context-ledger.d.ts +99 -0
- package/dist/core/context-ledger.js +222 -0
- package/dist/core/context-policy.d.ts +17 -0
- package/dist/core/context-policy.js +81 -0
- package/dist/core/continuation-review.d.ts +23 -0
- package/dist/core/continuation-review.js +64 -0
- package/dist/core/crash-report.d.ts +3 -0
- package/dist/core/crash-report.js +27 -0
- package/dist/core/credentials.d.ts +11 -0
- package/dist/core/credentials.js +183 -0
- package/dist/core/doctor.d.ts +24 -0
- package/dist/core/doctor.js +125 -0
- package/dist/core/effort.d.ts +5 -0
- package/dist/core/effort.js +42 -0
- package/dist/core/env-paths.d.ts +3 -0
- package/dist/core/env-paths.js +38 -0
- package/dist/core/execution-guidance.d.ts +9 -0
- package/dist/core/execution-guidance.js +73 -0
- package/dist/core/execution-target.d.ts +41 -0
- package/dist/core/execution-target.js +69 -0
- package/dist/core/file-coordination.d.ts +66 -0
- package/dist/core/file-coordination.js +176 -0
- package/dist/core/file-lease-store.d.ts +14 -0
- package/dist/core/file-lease-store.js +89 -0
- package/dist/core/image-limits.d.ts +26 -0
- package/dist/core/image-limits.js +205 -0
- package/dist/core/interruptible-completion.d.ts +3 -0
- package/dist/core/interruptible-completion.js +42 -0
- package/dist/core/kingdoms-mode-state.d.ts +24 -0
- package/dist/core/kingdoms-mode-state.js +139 -0
- package/dist/core/licenza.d.ts +38 -0
- package/dist/core/licenza.js +125 -0
- package/dist/core/model-limits.d.ts +2 -0
- package/dist/core/model-limits.js +36 -0
- package/dist/core/output-lifecycle.d.ts +44 -0
- package/dist/core/output-lifecycle.js +190 -0
- package/dist/core/package-update.d.ts +15 -0
- package/dist/core/package-update.js +121 -0
- package/dist/core/permission-queue.d.ts +2 -0
- package/dist/core/permission-queue.js +20 -0
- package/dist/core/prompt-attachment.d.ts +21 -0
- package/dist/core/prompt-attachment.js +123 -0
- package/dist/core/request-plan.d.ts +16 -0
- package/dist/core/request-plan.js +36 -0
- package/dist/core/run-timing.d.ts +17 -0
- package/dist/core/run-timing.js +123 -0
- package/dist/core/self-update.d.ts +17 -0
- package/dist/core/self-update.js +54 -0
- package/dist/core/session-refs.d.ts +27 -0
- package/dist/core/session-refs.js +126 -0
- package/dist/core/session-storage.d.ts +4 -0
- package/dist/core/session-storage.js +48 -0
- package/dist/core/session-title.d.ts +1 -0
- package/dist/core/session-title.js +21 -0
- package/dist/core/session-usage.d.ts +17 -0
- package/dist/core/session-usage.js +74 -0
- package/dist/core/session.d.ts +58 -0
- package/dist/core/session.js +296 -0
- package/dist/core/settings.d.ts +17 -0
- package/dist/core/settings.js +107 -0
- package/dist/core/storage-retention.d.ts +21 -0
- package/dist/core/storage-retention.js +227 -0
- package/dist/core/text-sanitize.d.ts +1 -0
- package/dist/core/text-sanitize.js +35 -0
- package/dist/core/tool-artifacts.d.ts +6 -0
- package/dist/core/tool-artifacts.js +51 -0
- package/dist/core/tool-compress.d.ts +8 -0
- package/dist/core/tool-compress.js +111 -0
- package/dist/core/tool-executor.d.ts +16 -0
- package/dist/core/tool-executor.js +97 -0
- package/dist/core/tool-result-index.d.ts +52 -0
- package/dist/core/tool-result-index.js +327 -0
- package/dist/core/tool-result-store.d.ts +38 -0
- package/dist/core/tool-result-store.js +190 -0
- package/dist/core/tool-scheduler.d.ts +16 -0
- package/dist/core/tool-scheduler.js +35 -0
- package/dist/core/trust.d.ts +21 -0
- package/dist/core/trust.js +95 -0
- package/dist/core/types.d.ts +402 -0
- package/dist/core/types.js +1 -0
- package/dist/core/update-check.d.ts +26 -0
- package/dist/core/update-check.js +89 -0
- package/dist/core/update-process.d.ts +10 -0
- package/dist/core/update-process.js +31 -0
- package/dist/core/user-inbox.d.ts +23 -0
- package/dist/core/user-inbox.js +56 -0
- package/dist/core/user-input.d.ts +10 -0
- package/dist/core/user-input.js +35 -0
- package/dist/core/version.d.ts +1 -0
- package/dist/core/version.js +10 -0
- package/dist/core/vibe-modes.d.ts +38 -0
- package/dist/core/vibe-modes.js +383 -0
- package/dist/core/workspace-roots.d.ts +13 -0
- package/dist/core/workspace-roots.js +91 -0
- package/dist/core/workspace-sessions.d.ts +51 -0
- package/dist/core/workspace-sessions.js +243 -0
- package/dist/cowork/client.d.ts +29 -0
- package/dist/cowork/client.js +49 -0
- package/dist/cowork/engine-bridge.d.ts +22 -0
- package/dist/cowork/engine-bridge.js +98 -0
- package/dist/cowork/index.d.ts +11 -0
- package/dist/cowork/index.js +16 -0
- package/dist/cowork/ipc.d.ts +97 -0
- package/dist/cowork/ipc.js +96 -0
- package/dist/cowork/manager.d.ts +66 -0
- package/dist/cowork/manager.js +325 -0
- package/dist/cowork/store.d.ts +23 -0
- package/dist/cowork/store.js +182 -0
- package/dist/cowork/sync.d.ts +20 -0
- package/dist/cowork/sync.js +164 -0
- package/dist/cowork/types.d.ts +78 -0
- package/dist/cowork/types.js +21 -0
- package/dist/extensions/ext-tools.d.ts +3 -0
- package/dist/extensions/ext-tools.js +73 -0
- package/dist/extensions/loader.d.ts +91 -0
- package/dist/extensions/loader.js +474 -0
- package/dist/extensions/settings.d.ts +20 -0
- package/dist/extensions/settings.js +86 -0
- package/dist/extensions/types.d.ts +219 -0
- package/dist/extensions/types.js +1 -0
- package/dist/horizon/async-queue.d.ts +9 -0
- package/dist/horizon/async-queue.js +46 -0
- package/dist/horizon/engine.d.ts +85 -0
- package/dist/horizon/engine.js +603 -0
- package/dist/horizon/index.d.ts +4 -0
- package/dist/horizon/index.js +2 -0
- package/dist/horizon/main-team.d.ts +163 -0
- package/dist/horizon/main-team.js +774 -0
- package/dist/horizon/types.d.ts +233 -0
- package/dist/horizon/types.js +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +233 -0
- package/dist/mcp/protocol.d.ts +81 -0
- package/dist/mcp/protocol.js +122 -0
- package/dist/package.json +1 -0
- package/dist/packages/packages.d.ts +12 -0
- package/dist/packages/packages.js +323 -0
- package/dist/prompts/templates.d.ts +13 -0
- package/dist/prompts/templates.js +139 -0
- package/dist/providers/anthropic-oauth.d.ts +13 -0
- package/dist/providers/anthropic-oauth.js +124 -0
- package/dist/providers/anthropic.d.ts +27 -0
- package/dist/providers/anthropic.js +526 -0
- package/dist/providers/catalog.d.ts +15 -0
- package/dist/providers/catalog.js +166 -0
- package/dist/providers/effort.d.ts +12 -0
- package/dist/providers/effort.js +102 -0
- package/dist/providers/model-catalog.d.ts +43 -0
- package/dist/providers/model-catalog.js +70 -0
- package/dist/providers/model-effort.d.ts +5 -0
- package/dist/providers/model-effort.js +43 -0
- package/dist/providers/model-registry.d.ts +39 -0
- package/dist/providers/model-registry.js +142 -0
- package/dist/providers/models-dev.d.ts +9 -0
- package/dist/providers/models-dev.js +97 -0
- package/dist/providers/oauth-callback-server.d.ts +28 -0
- package/dist/providers/oauth-callback-server.js +184 -0
- package/dist/providers/oauth-orchestrator.d.ts +58 -0
- package/dist/providers/oauth-orchestrator.js +159 -0
- package/dist/providers/oauth-store.d.ts +12 -0
- package/dist/providers/oauth-store.js +139 -0
- package/dist/providers/open-browser.d.ts +20 -0
- package/dist/providers/open-browser.js +92 -0
- package/dist/providers/openai-compat.d.ts +14 -0
- package/dist/providers/openai-compat.js +523 -0
- package/dist/providers/openai-oauth.d.ts +15 -0
- package/dist/providers/openai-oauth.js +382 -0
- package/dist/providers/openrouter-auth.d.ts +73 -0
- package/dist/providers/openrouter-auth.js +321 -0
- package/dist/providers/openrouter-manual-fallback.d.ts +25 -0
- package/dist/providers/openrouter-manual-fallback.js +161 -0
- package/dist/providers/openrouter.d.ts +15 -0
- package/dist/providers/openrouter.js +107 -0
- package/dist/providers/plan-limits.d.ts +6 -0
- package/dist/providers/plan-limits.js +175 -0
- package/dist/providers/provider-reset.d.ts +4 -0
- package/dist/providers/provider-reset.js +83 -0
- package/dist/providers/quota-limits.d.ts +4 -0
- package/dist/providers/quota-limits.js +33 -0
- package/dist/providers/registry.d.ts +33 -0
- package/dist/providers/registry.js +213 -0
- package/dist/providers/retry.d.ts +37 -0
- package/dist/providers/retry.js +347 -0
- package/dist/rpc/server.d.ts +23 -0
- package/dist/rpc/server.js +222 -0
- package/dist/sdk.d.ts +67 -0
- package/dist/sdk.js +64 -0
- package/dist/skills/skills.d.ts +17 -0
- package/dist/skills/skills.js +155 -0
- package/dist/text-sanitize.js +28 -0
- package/dist/tools/ask-user.d.ts +2 -0
- package/dist/tools/ask-user.js +60 -0
- package/dist/tools/builtin.d.ts +48 -0
- package/dist/tools/builtin.js +2494 -0
- package/dist/tools/capabilities.d.ts +5 -0
- package/dist/tools/capabilities.js +55 -0
- package/dist/tools/computer-capture.d.ts +2 -0
- package/dist/tools/computer-capture.js +91 -0
- package/dist/tools/computer-posix.d.ts +5 -0
- package/dist/tools/computer-posix.js +136 -0
- package/dist/tools/computer-use.d.ts +14 -0
- package/dist/tools/computer-use.js +108 -0
- package/dist/tools/discovery.d.ts +12 -0
- package/dist/tools/discovery.js +205 -0
- package/dist/tools/execute.d.ts +2 -0
- package/dist/tools/execute.js +73 -0
- package/dist/tools/normalize-input.d.ts +17 -0
- package/dist/tools/normalize-input.js +174 -0
- package/dist/tools/output-artifact.d.ts +3 -0
- package/dist/tools/output-artifact.js +80 -0
- package/dist/tools/pagination.d.ts +15 -0
- package/dist/tools/pagination.js +93 -0
- package/dist/tools/plan-status.d.ts +2 -0
- package/dist/tools/plan-status.js +109 -0
- package/dist/tools/program-input.d.ts +3 -0
- package/dist/tools/program-input.js +19 -0
- package/dist/tools/program.d.ts +3 -0
- package/dist/tools/program.js +567 -0
- package/dist/tools/protocol-catalog.d.ts +12 -0
- package/dist/tools/protocol-catalog.js +46 -0
- package/dist/tools/ramification-tools.d.ts +12 -0
- package/dist/tools/ramification-tools.js +528 -0
- package/dist/tools/regex-compat.d.ts +9 -0
- package/dist/tools/regex-compat.js +96 -0
- package/dist/tools/registry.d.ts +51 -0
- package/dist/tools/registry.js +185 -0
- package/dist/tools/resolve.d.ts +2 -0
- package/dist/tools/resolve.js +107 -0
- package/dist/tools/shell-env.d.ts +2 -0
- package/dist/tools/shell-env.js +7 -0
- package/dist/tools/team-input.d.ts +3 -0
- package/dist/tools/team-input.js +129 -0
- package/dist/tools/team-tools.d.ts +7 -0
- package/dist/tools/team-tools.js +348 -0
- package/dist/tools/workspace-sessions.d.ts +2 -0
- package/dist/tools/workspace-sessions.js +35 -0
- package/dist/tui/account-entry.d.ts +1 -0
- package/dist/tui/account-entry.js +93 -0
- package/dist/tui/attachment-highlight.d.ts +1 -0
- package/dist/tui/attachment-highlight.js +24 -0
- package/dist/tui/attachment-refs.d.ts +2 -0
- package/dist/tui/attachment-refs.js +3 -0
- package/dist/tui/bottom-input.d.ts +219 -0
- package/dist/tui/bottom-input.js +1958 -0
- package/dist/tui/branding.d.ts +107 -0
- package/dist/tui/branding.js +750 -0
- package/dist/tui/clipboard-image.d.ts +10 -0
- package/dist/tui/clipboard-image.js +163 -0
- package/dist/tui/clipboard-text.d.ts +9 -0
- package/dist/tui/clipboard-text.js +51 -0
- package/dist/tui/clipboard-windows.d.ts +8 -0
- package/dist/tui/clipboard-windows.js +84 -0
- package/dist/tui/collapsible-command.d.ts +15 -0
- package/dist/tui/collapsible-command.js +48 -0
- package/dist/tui/command-feedback.d.ts +10 -0
- package/dist/tui/command-feedback.js +46 -0
- package/dist/tui/command-output-registry.d.ts +28 -0
- package/dist/tui/command-output-registry.js +103 -0
- package/dist/tui/command-transcript.d.ts +12 -0
- package/dist/tui/command-transcript.js +90 -0
- package/dist/tui/commands.d.ts +20 -0
- package/dist/tui/commands.js +131 -0
- package/dist/tui/context-bar.d.ts +4 -0
- package/dist/tui/context-bar.js +74 -0
- package/dist/tui/context-meter.d.ts +25 -0
- package/dist/tui/context-meter.js +81 -0
- package/dist/tui/cost-binding.d.ts +8 -0
- package/dist/tui/cost-binding.js +43 -0
- package/dist/tui/cost-tracker.d.ts +49 -0
- package/dist/tui/cost-tracker.js +122 -0
- package/dist/tui/diff.d.ts +9 -0
- package/dist/tui/diff.js +119 -0
- package/dist/tui/i18n-catalog.d.ts +5 -0
- package/dist/tui/i18n-catalog.js +184 -0
- package/dist/tui/i18n.d.ts +6 -0
- package/dist/tui/i18n.js +10 -0
- package/dist/tui/image-attachments.d.ts +46 -0
- package/dist/tui/image-attachments.js +167 -0
- package/dist/tui/images.d.ts +12 -0
- package/dist/tui/images.js +87 -0
- package/dist/tui/intro.d.ts +13 -0
- package/dist/tui/intro.js +109 -0
- package/dist/tui/language-preference.d.ts +6 -0
- package/dist/tui/language-preference.js +24 -0
- package/dist/tui/live-output.d.ts +2 -0
- package/dist/tui/live-output.js +18 -0
- package/dist/tui/locales.d.ts +19 -0
- package/dist/tui/locales.js +22 -0
- package/dist/tui/login-menu.d.ts +17 -0
- package/dist/tui/login-menu.js +58 -0
- package/dist/tui/logo.d.ts +8 -0
- package/dist/tui/logo.js +305 -0
- package/dist/tui/markdown-inline.d.ts +3 -0
- package/dist/tui/markdown-inline.js +99 -0
- package/dist/tui/markdown-table.d.ts +4 -0
- package/dist/tui/markdown-table.js +63 -0
- package/dist/tui/markdown.d.ts +11 -0
- package/dist/tui/markdown.js +257 -0
- package/dist/tui/mcp-transcript.d.ts +7 -0
- package/dist/tui/mcp-transcript.js +40 -0
- package/dist/tui/model-details.d.ts +2 -0
- package/dist/tui/model-details.js +21 -0
- package/dist/tui/model-selection.d.ts +7 -0
- package/dist/tui/model-selection.js +41 -0
- package/dist/tui/native-scrollback.d.ts +27 -0
- package/dist/tui/native-scrollback.js +134 -0
- package/dist/tui/onboarding.d.ts +72 -0
- package/dist/tui/onboarding.js +207 -0
- package/dist/tui/paste-collapse.d.ts +39 -0
- package/dist/tui/paste-collapse.js +117 -0
- package/dist/tui/perm-mode.d.ts +8 -0
- package/dist/tui/perm-mode.js +41 -0
- package/dist/tui/prompt-queue-store.d.ts +26 -0
- package/dist/tui/prompt-queue-store.js +87 -0
- package/dist/tui/prompt-queue.d.ts +47 -0
- package/dist/tui/prompt-queue.js +187 -0
- package/dist/tui/provider-menu.d.ts +33 -0
- package/dist/tui/provider-menu.js +175 -0
- package/dist/tui/question.d.ts +24 -0
- package/dist/tui/question.js +32 -0
- package/dist/tui/queue-screen.d.ts +25 -0
- package/dist/tui/queue-screen.js +152 -0
- package/dist/tui/queue-team.d.ts +3 -0
- package/dist/tui/queue-team.js +28 -0
- package/dist/tui/queued-questions.d.ts +20 -0
- package/dist/tui/queued-questions.js +163 -0
- package/dist/tui/quick-help.d.ts +1 -0
- package/dist/tui/quick-help.js +53 -0
- package/dist/tui/repl.d.ts +78 -0
- package/dist/tui/repl.js +4130 -0
- package/dist/tui/restore-queued-input.d.ts +3 -0
- package/dist/tui/restore-queued-input.js +20 -0
- package/dist/tui/review-detail.d.ts +6 -0
- package/dist/tui/review-detail.js +56 -0
- package/dist/tui/review-files.d.ts +3 -0
- package/dist/tui/review-files.js +22 -0
- package/dist/tui/review-render.d.ts +22 -0
- package/dist/tui/review-render.js +98 -0
- package/dist/tui/review-screen.d.ts +38 -0
- package/dist/tui/review-screen.js +358 -0
- package/dist/tui/review-store.d.ts +60 -0
- package/dist/tui/review-store.js +270 -0
- package/dist/tui/review-team.d.ts +2 -0
- package/dist/tui/review-team.js +27 -0
- package/dist/tui/selector-mouse.d.ts +26 -0
- package/dist/tui/selector-mouse.js +65 -0
- package/dist/tui/selector.d.ts +51 -0
- package/dist/tui/selector.js +299 -0
- package/dist/tui/session-replay.d.ts +10 -0
- package/dist/tui/session-replay.js +78 -0
- package/dist/tui/session-usage.d.ts +22 -0
- package/dist/tui/session-usage.js +55 -0
- package/dist/tui/skill-transcript.d.ts +5 -0
- package/dist/tui/skill-transcript.js +31 -0
- package/dist/tui/startup.d.ts +5 -0
- package/dist/tui/startup.js +61 -0
- package/dist/tui/status-line-loader.d.ts +8 -0
- package/dist/tui/status-line-loader.js +33 -0
- package/dist/tui/status-line.d.ts +38 -0
- package/dist/tui/status-line.js +213 -0
- package/dist/tui/system-language.d.ts +8 -0
- package/dist/tui/system-language.js +41 -0
- package/dist/tui/task-labels.d.ts +2 -0
- package/dist/tui/task-labels.js +7 -0
- package/dist/tui/term-bg.d.ts +4 -0
- package/dist/tui/term-bg.js +67 -0
- package/dist/tui/terminal-screen.d.ts +12 -0
- package/dist/tui/terminal-screen.js +1 -0
- package/dist/tui/terminal-text.d.ts +7 -0
- package/dist/tui/terminal-text.js +123 -0
- package/dist/tui/theme.d.ts +25 -0
- package/dist/tui/theme.js +383 -0
- package/dist/tui/tool-style.d.ts +7 -0
- package/dist/tui/tool-style.js +119 -0
- package/dist/tui/update-prompt.d.ts +14 -0
- package/dist/tui/update-prompt.js +104 -0
- package/dist/tui/usage-footer.d.ts +9 -0
- package/dist/tui/usage-footer.js +123 -0
- package/dist/tui/vascend-login.d.ts +68 -0
- package/dist/tui/vascend-login.js +355 -0
- package/dist/tui/web-login.d.ts +28 -0
- package/dist/tui/web-login.js +115 -0
- package/dist/vascend/activity-status.d.ts +12 -0
- package/dist/vascend/activity-status.js +68 -0
- package/dist/vascend/architecture-map.d.ts +73 -0
- package/dist/vascend/architecture-map.js +424 -0
- package/dist/vascend/attention-layout.d.ts +19 -0
- package/dist/vascend/attention-layout.js +141 -0
- package/dist/vascend/budget-allocator.d.ts +31 -0
- package/dist/vascend/budget-allocator.js +79 -0
- package/dist/vascend/candidate-collector.d.ts +20 -0
- package/dist/vascend/candidate-collector.js +220 -0
- package/dist/vascend/code-events.d.ts +24 -0
- package/dist/vascend/code-events.js +304 -0
- package/dist/vascend/code-graph-memory.d.ts +38 -0
- package/dist/vascend/code-graph-memory.js +334 -0
- package/dist/vascend/code-graph-runtime.d.ts +19 -0
- package/dist/vascend/code-graph-runtime.js +190 -0
- package/dist/vascend/code-graph-types.d.ts +58 -0
- package/dist/vascend/code-graph-types.js +50 -0
- package/dist/vascend/code-parser.d.ts +4 -0
- package/dist/vascend/code-parser.js +257 -0
- package/dist/vascend/competitor-knowledge.d.ts +53 -0
- package/dist/vascend/competitor-knowledge.js +262 -0
- package/dist/vascend/completeness.d.ts +16 -0
- package/dist/vascend/completeness.js +90 -0
- package/dist/vascend/context-autotuner.d.ts +45 -0
- package/dist/vascend/context-autotuner.js +231 -0
- package/dist/vascend/context-candidate.d.ts +45 -0
- package/dist/vascend/context-candidate.js +150 -0
- package/dist/vascend/context-capsule.d.ts +51 -0
- package/dist/vascend/context-capsule.js +133 -0
- package/dist/vascend/context-fabric.d.ts +108 -0
- package/dist/vascend/context-fabric.js +480 -0
- package/dist/vascend/context-feedback-loop.d.ts +56 -0
- package/dist/vascend/context-feedback-loop.js +204 -0
- package/dist/vascend/context-learning-identity.d.ts +4 -0
- package/dist/vascend/context-learning-identity.js +8 -0
- package/dist/vascend/context-links.d.ts +14 -0
- package/dist/vascend/context-links.js +83 -0
- package/dist/vascend/context-lint.d.ts +22 -0
- package/dist/vascend/context-lint.js +91 -0
- package/dist/vascend/context-market-selection.d.ts +17 -0
- package/dist/vascend/context-market-selection.js +50 -0
- package/dist/vascend/context-metrics.d.ts +25 -0
- package/dist/vascend/context-metrics.js +57 -0
- package/dist/vascend/context-pack-render.d.ts +16 -0
- package/dist/vascend/context-pack-render.js +52 -0
- package/dist/vascend/context-pareto.d.ts +33 -0
- package/dist/vascend/context-pareto.js +165 -0
- package/dist/vascend/context-pattern-explorer.d.ts +41 -0
- package/dist/vascend/context-pattern-explorer.js +276 -0
- package/dist/vascend/context-regret.d.ts +32 -0
- package/dist/vascend/context-regret.js +93 -0
- package/dist/vascend/context-retriever.d.ts +22 -0
- package/dist/vascend/context-retriever.js +243 -0
- package/dist/vascend/context-scope-index.d.ts +5 -0
- package/dist/vascend/context-scope-index.js +96 -0
- package/dist/vascend/context-scorer.d.ts +35 -0
- package/dist/vascend/context-scorer.js +162 -0
- package/dist/vascend/context-search-index.d.ts +12 -0
- package/dist/vascend/context-search-index.js +25 -0
- package/dist/vascend/context-snapshot.d.ts +22 -0
- package/dist/vascend/context-snapshot.js +135 -0
- package/dist/vascend/context-window-compiler.d.ts +42 -0
- package/dist/vascend/context-window-compiler.js +237 -0
- package/dist/vascend/contract-memory.d.ts +61 -0
- package/dist/vascend/contract-memory.js +435 -0
- package/dist/vascend/council.d.ts +58 -0
- package/dist/vascend/council.js +337 -0
- package/dist/vascend/decision-promotion.d.ts +48 -0
- package/dist/vascend/decision-promotion.js +410 -0
- package/dist/vascend/delta-context.d.ts +12 -0
- package/dist/vascend/delta-context.js +36 -0
- package/dist/vascend/dev-context-compiler.d.ts +27 -0
- package/dist/vascend/dev-context-compiler.js +133 -0
- package/dist/vascend/dev-context-layout.d.ts +30 -0
- package/dist/vascend/dev-context-layout.js +262 -0
- package/dist/vascend/evidence-slots.d.ts +14 -0
- package/dist/vascend/evidence-slots.js +55 -0
- package/dist/vascend/expansion-levels.d.ts +15 -0
- package/dist/vascend/expansion-levels.js +178 -0
- package/dist/vascend/file-lock.d.ts +7 -0
- package/dist/vascend/file-lock.js +95 -0
- package/dist/vascend/granular-kingdom.d.ts +25 -0
- package/dist/vascend/granular-kingdom.js +259 -0
- package/dist/vascend/granular-launcher.d.ts +48 -0
- package/dist/vascend/granular-launcher.js +202 -0
- package/dist/vascend/kingdom-bus.d.ts +25 -0
- package/dist/vascend/kingdom-bus.js +54 -0
- package/dist/vascend/kingdom-channel.d.ts +22 -0
- package/dist/vascend/kingdom-channel.js +180 -0
- package/dist/vascend/kingdom-kpi.d.ts +48 -0
- package/dist/vascend/kingdom-kpi.js +172 -0
- package/dist/vascend/kingdom-live.d.ts +28 -0
- package/dist/vascend/kingdom-live.js +61 -0
- package/dist/vascend/kingdom-run.d.ts +18 -0
- package/dist/vascend/kingdom-run.js +506 -0
- package/dist/vascend/kingdom-scribe.d.ts +20 -0
- package/dist/vascend/kingdom-scribe.js +52 -0
- package/dist/vascend/kingdom.d.ts +79 -0
- package/dist/vascend/kingdom.js +870 -0
- package/dist/vascend/lexical-index.d.ts +10 -0
- package/dist/vascend/lexical-index.js +99 -0
- package/dist/vascend/lexical-search.d.ts +29 -0
- package/dist/vascend/lexical-search.js +262 -0
- package/dist/vascend/long-term-context.d.ts +51 -0
- package/dist/vascend/long-term-context.js +194 -0
- package/dist/vascend/mandate.d.ts +33 -0
- package/dist/vascend/mandate.js +107 -0
- package/dist/vascend/memory-packet.d.ts +13 -0
- package/dist/vascend/memory-packet.js +155 -0
- package/dist/vascend/memory-status.d.ts +22 -0
- package/dist/vascend/memory-status.js +73 -0
- package/dist/vascend/memory-store.d.ts +62 -0
- package/dist/vascend/memory-store.js +273 -0
- package/dist/vascend/objective-revision.d.ts +69 -0
- package/dist/vascend/objective-revision.js +319 -0
- package/dist/vascend/patch-plan-store.d.ts +33 -0
- package/dist/vascend/patch-plan-store.js +240 -0
- package/dist/vascend/patch-plan.d.ts +97 -0
- package/dist/vascend/patch-plan.js +345 -0
- package/dist/vascend/plan-progress.d.ts +11 -0
- package/dist/vascend/plan-progress.js +68 -0
- package/dist/vascend/plan-store.d.ts +64 -0
- package/dist/vascend/plan-store.js +460 -0
- package/dist/vascend/proof-chains.d.ts +19 -0
- package/dist/vascend/proof-chains.js +120 -0
- package/dist/vascend/ramification-store.d.ts +25 -0
- package/dist/vascend/ramification-store.js +94 -0
- package/dist/vascend/ramification.d.ts +193 -0
- package/dist/vascend/ramification.js +583 -0
- package/dist/vascend/recall-planner.d.ts +17 -0
- package/dist/vascend/recall-planner.js +109 -0
- package/dist/vascend/requirements.d.ts +31 -0
- package/dist/vascend/requirements.js +151 -0
- package/dist/vascend/reviewer.d.ts +9 -0
- package/dist/vascend/reviewer.js +93 -0
- package/dist/vascend/room-graph.d.ts +29 -0
- package/dist/vascend/room-graph.js +242 -0
- package/dist/vascend/room-memory.d.ts +57 -0
- package/dist/vascend/room-memory.js +631 -0
- package/dist/vascend/runtime.d.ts +84 -0
- package/dist/vascend/runtime.js +286 -0
- package/dist/vascend/self-improve.d.ts +104 -0
- package/dist/vascend/self-improve.js +396 -0
- package/dist/vascend/session-search.d.ts +52 -0
- package/dist/vascend/session-search.js +349 -0
- package/dist/vascend/supersession-graph.d.ts +14 -0
- package/dist/vascend/supersession-graph.js +70 -0
- package/dist/vascend/team-areas.d.ts +9 -0
- package/dist/vascend/team-areas.js +28 -0
- package/dist/vascend/team-handoff.d.ts +24 -0
- package/dist/vascend/team-handoff.js +37 -0
- package/dist/vascend/team-scheduler.d.ts +13 -0
- package/dist/vascend/team-scheduler.js +74 -0
- package/dist/vascend/team-session.d.ts +42 -0
- package/dist/vascend/team-session.js +142 -0
- package/dist/vascend/test-failure-memory.d.ts +76 -0
- package/dist/vascend/test-failure-memory.js +354 -0
- package/dist/vascend/token-market.d.ts +42 -0
- package/dist/vascend/token-market.js +144 -0
- package/dist/vascend/tuner-baseline-store.d.ts +52 -0
- package/dist/vascend/tuner-baseline-store.js +446 -0
- package/dist/vascend/user-profile.d.ts +44 -0
- package/dist/vascend/user-profile.js +131 -0
- package/dist/vascend/vision.d.ts +94 -0
- package/dist/vascend/vision.js +375 -0
- package/dist/vascend/work-agent.d.ts +12 -0
- package/dist/vascend/work-agent.js +83 -0
- package/dist/vascend/work-queue.d.ts +62 -0
- package/dist/vascend/work-queue.js +255 -0
- package/dist/vascend/work-runner.d.ts +64 -0
- package/dist/vascend/work-runner.js +137 -0
- package/dist/vascend/worktree.d.ts +38 -0
- package/dist/vascend/worktree.js +206 -0
- package/dist/vendor/computer-use/README.md +7 -0
- package/dist/vendor/computer-use/computer-desktop.js +211 -0
- package/dist/vendor/computer-use/computer-observe.js +315 -0
- package/dist/vendor/computer-use/computer-scripts.js +1230 -0
- package/dist/vendor/computer-use/computer-tools.js +2136 -0
- package/dist/vendor/computer-use/package.json +1 -0
- package/dist/vendor/computer-use/rac/atomic-input.js +91 -0
- package/dist/vendor/computer-use/rac/grammatica.js +101 -0
- package/dist/vendor/computer-use/rac/parser.js +185 -0
- package/dist/vendor/computer-use/rac/protocol.js +136 -0
- package/install.ps1 +30 -0
- package/install.sh +50 -0
- package/package.json +56 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
// Tracker del COSTO e dell'utilizzo accumulato per modello, alimentato a ogni
|
|
2
|
+
// turno con l'Usage del provider. Il pricing si legge dal registro modelli
|
|
3
|
+
// (model-registry) tramite una funzione INIETTABILE, cosi' questo modulo non
|
|
4
|
+
// dipende a compile-time dal registry e resta testabile in isolamento.
|
|
5
|
+
//
|
|
6
|
+
// Filosofia: primitiva pura, immutabile verso l'esterno. Lo stato e' un
|
|
7
|
+
// accumulo per id-modello + un totale di sessione. La status line legge i
|
|
8
|
+
// totali a ogni frame => sempre live.
|
|
9
|
+
export function promptTokens(usage) {
|
|
10
|
+
return usage.inputTokens + (usage.cacheReadTokens ?? 0) + (usage.cacheWriteTokens ?? 0);
|
|
11
|
+
}
|
|
12
|
+
export function formatTokenCount(value) {
|
|
13
|
+
const rounded = Math.max(0, Math.round(Number.isFinite(value) ? value : 0));
|
|
14
|
+
return String(rounded).replace(/\B(?=(\d{3})+(?!\d))/g, ".");
|
|
15
|
+
}
|
|
16
|
+
function emptyModel(modelId) {
|
|
17
|
+
return {
|
|
18
|
+
modelId,
|
|
19
|
+
inputTokens: 0,
|
|
20
|
+
outputTokens: 0,
|
|
21
|
+
cacheReadTokens: 0,
|
|
22
|
+
cacheWriteTokens: 0,
|
|
23
|
+
cost: 0,
|
|
24
|
+
priced: false,
|
|
25
|
+
turns: 0,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
// Tracker mutabile internamente, ma che espone solo snapshot immutabili.
|
|
29
|
+
export class CostTracker {
|
|
30
|
+
byModel = new Map();
|
|
31
|
+
estimate;
|
|
32
|
+
constructor(estimate) {
|
|
33
|
+
this.estimate = estimate;
|
|
34
|
+
}
|
|
35
|
+
// Registra l'usage di un turno per il modello indicato. Il costo input
|
|
36
|
+
// include i token di cache (read+write) sommati ai token di input "freschi",
|
|
37
|
+
// perche' anche i token cache vengono fatturati (a tariffe diverse, ma qui
|
|
38
|
+
// approssimiamo col prezzo input del registro: best-effort, sempre meglio di
|
|
39
|
+
// niente).
|
|
40
|
+
record(modelId, usage, subscription = false) {
|
|
41
|
+
const prev = this.byModel.get(modelId) ?? emptyModel(modelId);
|
|
42
|
+
const cacheRead = usage.cacheReadTokens ?? 0;
|
|
43
|
+
const cacheWrite = usage.cacheWriteTokens ?? 0;
|
|
44
|
+
const billedInput = usage.inputTokens + cacheRead + cacheWrite;
|
|
45
|
+
let est;
|
|
46
|
+
try {
|
|
47
|
+
est = this.estimate(modelId, billedInput, usage.outputTokens);
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
est = { inputCost: 0, outputCost: 0, totalCost: 0, known: false };
|
|
51
|
+
}
|
|
52
|
+
if (subscription)
|
|
53
|
+
est = { inputCost: 0, outputCost: 0, totalCost: 0, known: false };
|
|
54
|
+
else if (usage.costUsd !== undefined && Number.isFinite(usage.costUsd) && usage.costUsd >= 0) {
|
|
55
|
+
est = { inputCost: 0, outputCost: 0, totalCost: usage.costUsd, known: true };
|
|
56
|
+
}
|
|
57
|
+
this.byModel.set(modelId, {
|
|
58
|
+
modelId,
|
|
59
|
+
inputTokens: prev.inputTokens + usage.inputTokens,
|
|
60
|
+
outputTokens: prev.outputTokens + usage.outputTokens,
|
|
61
|
+
cacheReadTokens: prev.cacheReadTokens + cacheRead,
|
|
62
|
+
cacheWriteTokens: prev.cacheWriteTokens + cacheWrite,
|
|
63
|
+
cost: prev.cost + (est.known ? est.totalCost : 0),
|
|
64
|
+
priced: prev.priced || est.known,
|
|
65
|
+
turns: prev.turns + 1,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
// Snapshot per la status line. `currentModel` evidenzia il modello attivo.
|
|
69
|
+
snapshot(currentModel) {
|
|
70
|
+
const perModel = [...this.byModel.values()].sort((a, b) => b.cost - a.cost);
|
|
71
|
+
let totalCost = 0;
|
|
72
|
+
let totalInputTokens = 0;
|
|
73
|
+
let totalOutputTokens = 0;
|
|
74
|
+
let totalCacheReadTokens = 0;
|
|
75
|
+
let totalCacheWriteTokens = 0;
|
|
76
|
+
let totalTurns = 0;
|
|
77
|
+
let anyPriced = false;
|
|
78
|
+
for (const m of perModel) {
|
|
79
|
+
totalCost += m.cost;
|
|
80
|
+
totalInputTokens += m.inputTokens;
|
|
81
|
+
totalOutputTokens += m.outputTokens;
|
|
82
|
+
totalCacheReadTokens += m.cacheReadTokens;
|
|
83
|
+
totalCacheWriteTokens += m.cacheWriteTokens;
|
|
84
|
+
totalTurns += m.turns;
|
|
85
|
+
anyPriced = anyPriced || m.priced;
|
|
86
|
+
}
|
|
87
|
+
const current = currentModel ? this.byModel.get(currentModel) : undefined;
|
|
88
|
+
const totalPromptTokens = totalInputTokens + totalCacheReadTokens + totalCacheWriteTokens;
|
|
89
|
+
return {
|
|
90
|
+
totalCost,
|
|
91
|
+
totalInputTokens,
|
|
92
|
+
totalOutputTokens,
|
|
93
|
+
totalCacheReadTokens,
|
|
94
|
+
totalCacheWriteTokens,
|
|
95
|
+
totalPromptTokens,
|
|
96
|
+
totalProviderTokens: totalPromptTokens + totalOutputTokens,
|
|
97
|
+
totalTurns,
|
|
98
|
+
current,
|
|
99
|
+
perModel,
|
|
100
|
+
anyPriced,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
// Reset totale (es. /clear o nuova sessione).
|
|
104
|
+
reset() {
|
|
105
|
+
this.byModel.clear();
|
|
106
|
+
}
|
|
107
|
+
// true se non e' stato registrato alcun turno.
|
|
108
|
+
isEmpty() {
|
|
109
|
+
return this.byModel.size === 0;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// Formatta un costo in USD per la status line. Sotto il centesimo usa piu'
|
|
113
|
+
// decimali per non mostrare "$0.00" su sessioni leggere.
|
|
114
|
+
export function formatCost(usd) {
|
|
115
|
+
if (!Number.isFinite(usd) || usd <= 0)
|
|
116
|
+
return "$0";
|
|
117
|
+
if (usd < 0.01)
|
|
118
|
+
return `$${usd.toFixed(4)}`;
|
|
119
|
+
if (usd < 1)
|
|
120
|
+
return `$${usd.toFixed(3)}`;
|
|
121
|
+
return `$${usd.toFixed(2)}`;
|
|
122
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { TuiTheme } from "./branding.js";
|
|
2
|
+
export interface DiffOptions {
|
|
3
|
+
readonly path?: string;
|
|
4
|
+
readonly verb?: string;
|
|
5
|
+
readonly context?: number;
|
|
6
|
+
readonly columns?: number;
|
|
7
|
+
readonly wrapLines?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function renderDiff(oldText: string, newText: string, theme: TuiTheme, opts?: DiffOptions): string;
|
package/dist/tui/diff.js
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { fitLine, padLine, plainText, wrapText } from "./terminal-text.js";
|
|
2
|
+
// Riduce prima il problema alle righe cambiate; limita la matrice quadratica.
|
|
3
|
+
function diffLines(oldLines, newLines) {
|
|
4
|
+
let prefix = 0;
|
|
5
|
+
while (prefix < oldLines.length && prefix < newLines.length && oldLines[prefix] === newLines[prefix])
|
|
6
|
+
prefix++;
|
|
7
|
+
let suffix = 0;
|
|
8
|
+
while (suffix < oldLines.length - prefix && suffix < newLines.length - prefix &&
|
|
9
|
+
oldLines[oldLines.length - suffix - 1] === newLines[newLines.length - suffix - 1])
|
|
10
|
+
suffix++;
|
|
11
|
+
const before = oldLines.slice(prefix, oldLines.length - suffix);
|
|
12
|
+
const after = newLines.slice(prefix, newLines.length - suffix);
|
|
13
|
+
return [...oldLines.slice(0, prefix).map(line => ({ kind: "eq", line })),
|
|
14
|
+
...diffMiddle(before, after),
|
|
15
|
+
...oldLines.slice(oldLines.length - suffix).map(line => ({ kind: "eq", line }))];
|
|
16
|
+
}
|
|
17
|
+
function diffMiddle(oldLines, newLines) {
|
|
18
|
+
const n = oldLines.length;
|
|
19
|
+
const m = newLines.length;
|
|
20
|
+
// Per riscritture enormi mostra entrambe le versioni della regione: il
|
|
21
|
+
// confronto resta completo, senza bloccare la UI per cercare il delta minimo.
|
|
22
|
+
if (!n || !m || n * m > 400_000)
|
|
23
|
+
return [
|
|
24
|
+
...oldLines.map(line => ({ kind: "del", line })),
|
|
25
|
+
...newLines.map(line => ({ kind: "add", line })),
|
|
26
|
+
];
|
|
27
|
+
const lcs = Array.from({ length: n + 1 }, () => new Array(m + 1).fill(0));
|
|
28
|
+
for (let i = n - 1; i >= 0; i -= 1) {
|
|
29
|
+
for (let j = m - 1; j >= 0; j -= 1) {
|
|
30
|
+
lcs[i][j] = oldLines[i] === newLines[j]
|
|
31
|
+
? (lcs[i + 1][j + 1] + 1)
|
|
32
|
+
: Math.max(lcs[i + 1][j], lcs[i][j + 1]);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const ops = [];
|
|
36
|
+
let i = 0;
|
|
37
|
+
let j = 0;
|
|
38
|
+
while (i < n && j < m) {
|
|
39
|
+
if (oldLines[i] === newLines[j]) {
|
|
40
|
+
ops.push({ kind: "eq", line: oldLines[i] });
|
|
41
|
+
i += 1;
|
|
42
|
+
j += 1;
|
|
43
|
+
}
|
|
44
|
+
else if (lcs[i + 1][j] >= lcs[i][j + 1]) {
|
|
45
|
+
ops.push({ kind: "del", line: oldLines[i] });
|
|
46
|
+
i += 1;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
ops.push({ kind: "add", line: newLines[j] });
|
|
50
|
+
j += 1;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
while (i < n) {
|
|
54
|
+
ops.push({ kind: "del", line: oldLines[i] });
|
|
55
|
+
i += 1;
|
|
56
|
+
}
|
|
57
|
+
while (j < m) {
|
|
58
|
+
ops.push({ kind: "add", line: newLines[j] });
|
|
59
|
+
j += 1;
|
|
60
|
+
}
|
|
61
|
+
return ops;
|
|
62
|
+
}
|
|
63
|
+
export function renderDiff(oldText, newText, theme, opts = {}) {
|
|
64
|
+
const context = opts.context ?? 3;
|
|
65
|
+
const cols = Math.max(4, opts.columns ?? 80);
|
|
66
|
+
const oldLines = oldText === "" ? [] : plainText(oldText).replace(/\r?\n$/, "").split(/\r?\n/);
|
|
67
|
+
const newLines = newText === "" ? [] : plainText(newText).replace(/\r?\n$/, "").split(/\r?\n/);
|
|
68
|
+
const ops = diffLines(oldLines, newLines);
|
|
69
|
+
const added = ops.filter((o) => o.kind === "add").length;
|
|
70
|
+
const deleted = ops.filter((o) => o.kind === "del").length;
|
|
71
|
+
if (added === 0 && deleted === 0)
|
|
72
|
+
return "";
|
|
73
|
+
// Numero di riga lato NUOVO file (per add/contesto); le rimozioni non ne hanno.
|
|
74
|
+
let n = 0;
|
|
75
|
+
const rows = ops.map((op) => ({ ...op, no: op.kind === "del" ? null : (n += 1) }));
|
|
76
|
+
// Tieni solo le righe entro `context` da una modifica; il resto e' un "gap".
|
|
77
|
+
const keep = new Array(rows.length).fill(false);
|
|
78
|
+
rows.forEach((r, i) => {
|
|
79
|
+
if (r.kind === "eq")
|
|
80
|
+
return;
|
|
81
|
+
for (let k = Math.max(0, i - context); k <= Math.min(rows.length - 1, i + context); k += 1)
|
|
82
|
+
keep[k] = true;
|
|
83
|
+
});
|
|
84
|
+
const numW = Math.max(2, String(newLines.length || 1).length);
|
|
85
|
+
const verb = opts.verb ?? "modificato";
|
|
86
|
+
const path = plainText(opts.path ?? "file").replace(/[\r\n]/g, " ");
|
|
87
|
+
const bodyWidth = Math.max(1, cols - numW - 5);
|
|
88
|
+
// Estende il testo (privo di ANSI) fino a `cols` colonne, cosi' lo sfondo del
|
|
89
|
+
// pittore copre l'intera larghezza della riga (look "a blocco" del diff).
|
|
90
|
+
const pad = (s) => padLine(fitLine(s, cols), cols);
|
|
91
|
+
const out = [
|
|
92
|
+
"",
|
|
93
|
+
theme.diffHeader(pad(` ${verb} ${path} +${added} −${deleted}`)),
|
|
94
|
+
];
|
|
95
|
+
let gap = 0;
|
|
96
|
+
rows.forEach((r, i) => {
|
|
97
|
+
if (!keep[i]) {
|
|
98
|
+
gap += 1;
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
if (gap > 0) {
|
|
102
|
+
out.push(theme.diffBorder(fitLine(` ${" ".repeat(numW)} ⋯ ${gap} righe invariate`, cols)));
|
|
103
|
+
gap = 0;
|
|
104
|
+
}
|
|
105
|
+
const numStr = r.no === null ? " ".repeat(numW) : String(r.no).padStart(numW);
|
|
106
|
+
const text = r.line.replace(/\t/g, " ");
|
|
107
|
+
const lines = opts.wrapLines ? wrapText(text, bodyWidth) : [fitLine(text, bodyWidth)];
|
|
108
|
+
lines.forEach((line, part) => {
|
|
109
|
+
const number = part ? " ".repeat(numW) : numStr;
|
|
110
|
+
if (r.kind === "add")
|
|
111
|
+
out.push(theme.diffAdded(pad(` ${number} + ${line}`)));
|
|
112
|
+
else if (r.kind === "del")
|
|
113
|
+
out.push(theme.diffRemoved(pad(` ${number} - ${line}`)));
|
|
114
|
+
else
|
|
115
|
+
out.push(theme.diffContext(pad(` ${number} ${line}`)));
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
return out.join("\n") + "\n";
|
|
119
|
+
}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
// English keys correspond to tr()'s stable fallback. User text, tool output,
|
|
2
|
+
// command names and model identifiers never pass through this catalogue.
|
|
3
|
+
export const TRANSLATION_ROWS = [
|
|
4
|
+
["Set reasoning depth", "Ajusta la profundidad del razonamiento", "Denktiefe festlegen"],
|
|
5
|
+
["7d n/a", "7d n/d", "7T k. A."],
|
|
6
|
+
["Queued follow-up inputs", "Solicitudes en cola", "Anfragen in der Warteschlange"],
|
|
7
|
+
["1 question", "1 pregunta", "1 Frage"],
|
|
8
|
+
["{count} questions", "{count} preguntas", "{count} Fragen"],
|
|
9
|
+
["Shift+← to answer", "Shift+← para responder", "Shift+← zum Antworten"],
|
|
10
|
+
["Enter submit · Ctrl+] skip · Alt+↓ main prompt", "Intro envía · Ctrl+] omite · Alt+↓ prompt", "Enter senden · Ctrl+] überspringen · Alt+↓ Eingabe"],
|
|
11
|
+
["Other", "Otra respuesta", "Andere Antwort"],
|
|
12
|
+
["Exploring", "Explorando", "Wird erkundet"],
|
|
13
|
+
["Explored", "Explorado", "Erkundet"],
|
|
14
|
+
["Read", "Lectura", "Gelesen"],
|
|
15
|
+
["Reading skill {name}", "Leyendo skill {name}", "Skill {name} wird gelesen"],
|
|
16
|
+
["Awaiting answer", "Esperando respuesta", "Antwort ausstehend"],
|
|
17
|
+
["[Text #{index} · {count} characters]", "[Text #{index} · {count} caracteres]", "[Text #{index} · {count} Zeichen]"],
|
|
18
|
+
["Permissions: {mode}", "Permisos: {mode}", "Berechtigungen: {mode}"],
|
|
19
|
+
["Running", "Ejecutando", "Wird ausgeführt"], ["Executed", "Ejecutado", "Ausgeführt"],
|
|
20
|
+
["Started", "Iniciado", "Gestartet"], ["Stopped", "Detenido", "Gestoppt"],
|
|
21
|
+
["… +{count} lines · Ctrl+R details", "… +{count} líneas · Ctrl+R detalles", "… +{count} Zeilen · Ctrl+R Details"],
|
|
22
|
+
["Calling", "Ejecutando", "Wird ausgeführt"], ["Called", "Ejecutado", "Ausgeführt"],
|
|
23
|
+
["Calling {name}", "Ejecutando {name}", "{name} wird ausgeführt"],
|
|
24
|
+
[" · Ctrl+R details", " · Ctrl+R detalles", " · Ctrl+R Details"],
|
|
25
|
+
["… Ctrl+R details", "… Ctrl+R detalles", "… Ctrl+R Details"],
|
|
26
|
+
["no output", "sin salida", "keine Ausgabe"], ["(empty command)", "(comando vacío)", "(leerer Befehl)"],
|
|
27
|
+
["{count}s ago", "hace {count}s", "vor {count}s"], ["{count}m ago", "hace {count}m", "vor {count}m"],
|
|
28
|
+
["{count}h ago", "hace {count}h", "vor {count}h"], ["{count}d ago", "hace {count}d", "vor {count}T"],
|
|
29
|
+
["Unable to open session {id}: {error}", "No se puede abrir la sesión {id}: {error}", "Sitzung {id} kann nicht geöffnet werden: {error}"],
|
|
30
|
+
["Collaborators", "Colaboradores", "Mitarbeiter"], ["Task list", "Lista de tareas", "Aufgabenliste"],
|
|
31
|
+
["Task status", "Estado de tarea", "Aufgabenstatus"], ["Add tasks", "Añadir tareas", "Aufgaben hinzufügen"],
|
|
32
|
+
["JavaScript · {count} lines · Ctrl+R details", "JavaScript · {count} líneas · Ctrl+R detalles", "JavaScript · {count} Zeilen · Ctrl+R Details"],
|
|
33
|
+
["{count} tasks", "{count} tareas", "{count} Aufgaben"],
|
|
34
|
+
["1 line", "1 línea", "1 Zeile"], ["{count} lines", "{count} líneas", "{count} Zeilen"],
|
|
35
|
+
["(lines {from}-{to} of {total})", "(líneas {from}-{to} de {total})", "(Zeilen {from}-{to} von {total})"],
|
|
36
|
+
[" (partial)", " (parcial)", " (teilweise)"], ["empty file", "archivo vacío", "leere Datei"], ["empty folder", "carpeta vacía", "leerer Ordner"],
|
|
37
|
+
["{count} entries ({dirs} folders, {files} files)", "{count} elementos ({dirs} carpetas, {files} archivos)", "{count} Einträge ({dirs} Ordner, {files} Dateien)"],
|
|
38
|
+
["running terminal command", "ejecutando comando del terminal", "Terminalbefehl wird ausgeführt"],
|
|
39
|
+
["Account connected", "Cuenta conectada", "Konto verbunden"],
|
|
40
|
+
["Plan", "Plan", "Tarif"],
|
|
41
|
+
["Offline account · signed proof valid", "Cuenta sin conexión · prueba firmada válida", "Offline-Konto · signierter Nachweis gültig"],
|
|
42
|
+
["Sign in to Vascend Talos", "Iniciar sesión en Vascend Talos", "Bei Vascend Talos anmelden"],
|
|
43
|
+
["Sign in on the website and approve the connection to Talos.", "Inicia sesión en el sitio y autoriza la conexión con Talos.", "Melde dich auf der Website an und bestätige die Verbindung mit Talos."],
|
|
44
|
+
["Code", "Código", "Code"],
|
|
45
|
+
["Compare the code on the website. Waiting for approval · Ctrl+C cancel", "Compara el código en el sitio. Esperando confirmación · Ctrl+C cancela", "Code auf der Website vergleichen. Warte auf Bestätigung · Ctrl+C abbrechen"],
|
|
46
|
+
["Sign-in cancelled.", "Inicio de sesión cancelado.", "Anmeldung abgebrochen."],
|
|
47
|
+
["Link expired. Restart Talos to try again.", "Enlace caducado. Reinicia Talos para reintentarlo.", "Link abgelaufen. Starte Talos neu, um es erneut zu versuchen."],
|
|
48
|
+
["Connection cancelled on the website.", "Conexión cancelada en el sitio.", "Verbindung auf der Website abgebrochen."],
|
|
49
|
+
["Website sign-in is unavailable. Please try again shortly.", "El acceso desde el sitio no está disponible. Inténtalo en unos momentos.", "Anmeldung über die Website nicht verfügbar. Bitte gleich erneut versuchen."],
|
|
50
|
+
[" Ctrl+R details", " Ctrl+R detalles", " Ctrl+R Details"],
|
|
51
|
+
[" Edit queued message · Enter save · Alt+S send now · Esc cancel", " Editar mensaje en cola · Intro guarda · Alt+S envía ahora · Esc cancela", " Nachricht bearbeiten · Enter speichern · Alt+S sofort senden · Esc abbrechen"],
|
|
52
|
+
["stop work and pause the queue", "detener el trabajo y pausar la cola", "die Arbeit zu stoppen und die Warteschlange anzuhalten"],
|
|
53
|
+
["clear the draft", "borrar el borrador", "den Entwurf zu leeren"],
|
|
54
|
+
["exit", "salir", "zu beenden"],
|
|
55
|
+
[" Ctrl+C again within 2s to {warning}. Any other key cancels.", " Pulsa Ctrl+C de nuevo en 2 s para {warning}. Otra tecla cancela.", " Innerhalb von 2 s erneut Ctrl+C drücken, um {warning}. Andere Taste bricht ab."],
|
|
56
|
+
[" Reading clipboard image...", " Leyendo imagen del portapapeles...", " Bild aus der Zwischenablage wird gelesen..."],
|
|
57
|
+
["Working", "Trabajando", "In Bearbeitung"],
|
|
58
|
+
["Alt+S send now · Esc stop", "Alt+S envía ahora · Esc detiene", "Alt+S sofort senden · Esc stoppen"],
|
|
59
|
+
["Esc stop", "Esc detiene", "Esc stoppen"],
|
|
60
|
+
["Clipboard error", "Error del portapapeles", "Fehler der Zwischenablage"],
|
|
61
|
+
["Work interrupted. {queued} messages paused · Alt+Q or /queue to manage.", "Trabajo interrumpido. {queued} mensajes en pausa · Alt+Q o /queue para gestionarlos.", "Arbeit unterbrochen. {queued} Nachrichten angehalten · Alt+Q oder /queue zur Verwaltung."],
|
|
62
|
+
["Reply here · Enter confirm · Esc cancel", "Responde aquí · Intro confirma · Esc cancela", "Hier antworten · Enter bestätigen · Esc abbrechen"],
|
|
63
|
+
["Message not queued", "Mensaje no añadido a la cola", "Nachricht nicht eingereiht"],
|
|
64
|
+
["Error", "Error", "Fehler"],
|
|
65
|
+
["Queue paused.", "Cola en pausa.", "Warteschlange angehalten."],
|
|
66
|
+
["session", "sesión", "Sitzung"],
|
|
67
|
+
["model and provider", "modelo y proveedor", "Modell und Anbieter"],
|
|
68
|
+
["workflow and context", "flujo de trabajo y contexto", "Arbeitsablauf und Kontext"],
|
|
69
|
+
["Vascend workflow", "flujo de trabajo de Vascend", "Vascend-Arbeitsablauf"],
|
|
70
|
+
["task list", "lista de tareas", "Aufgabenliste"],
|
|
71
|
+
["interface", "interfaz", "Oberfläche"],
|
|
72
|
+
["system", "sistema", "System"],
|
|
73
|
+
["Browse commands with arrow keys or the mouse", "Explora los comandos con las flechas o el ratón", "Befehle mit Pfeiltasten oder Maus durchsuchen"],
|
|
74
|
+
["Copy the last response or the specified text", "Copia la última respuesta o el texto indicado", "Letzte Antwort oder angegebenen Text kopieren"],
|
|
75
|
+
["Manage queued messages; Alt+Q; Alt+T sends 3 or more requests to a team", "Gestiona la cola; Alt+Q; Alt+T envía 3 o más solicitudes a un equipo", "Warteschlange verwalten; Alt+Q; Alt+T sendet mindestens 3 Anfragen an ein Team"],
|
|
76
|
+
["Name the current chat", "Pon un nombre al chat actual", "Aktuellen Chat benennen"],
|
|
77
|
+
["Search and open all commands", "Busca y abre todos los comandos", "Alle Befehle suchen und öffnen"],
|
|
78
|
+
["Choose or set the model", "Elige o establece el modelo", "Modell auswählen oder festlegen"],
|
|
79
|
+
["Browse available models", "Explora los modelos disponibles", "Verfügbare Modelle durchsuchen"],
|
|
80
|
+
["Manage configured providers", "Gestiona los proveedores configurados", "Konfigurierte Anbieter verwalten"],
|
|
81
|
+
["Manage sign-ins and subscriptions", "Gestiona accesos y suscripciones", "Anmeldungen und Abonnements verwalten"],
|
|
82
|
+
["Session tokens, subscription limits and resets", "Tokens de la sesión, límites de suscripción y restablecimientos", "Sitzungstokens, Abonnementlimits und Zurücksetzungen"],
|
|
83
|
+
["Choose a supported effort for the current model", "Elige el esfuerzo disponible para el modelo actual", "Unterstützte Denkintensität für das aktuelle Modell wählen"],
|
|
84
|
+
["Manage fast mode and its indicator", "Gestiona el modo rápido y su indicador", "Schnellmodus und Anzeige verwalten"],
|
|
85
|
+
["Choose a work profile", "Elige un perfil de trabajo", "Arbeitsprofil wählen"],
|
|
86
|
+
["Manage context and pinned information", "Gestiona el contexto y la información fijada", "Kontext und angeheftete Informationen verwalten"],
|
|
87
|
+
["Explore project modules and dependencies", "Explora los módulos y dependencias del proyecto", "Projektmodule und Abhängigkeiten erkunden"],
|
|
88
|
+
["Customize terminal appearance", "Personaliza el aspecto del terminal", "Terminaldarstellung anpassen"],
|
|
89
|
+
["Review tasks and changes; Ctrl+R", "Revisa tareas y cambios; Ctrl+R", "Aufgaben und Änderungen prüfen; Ctrl+R"],
|
|
90
|
+
["Compact while preserving the goal, open tasks and recent work; save a checkpoint", "Compacta conservando el objetivo, las tareas abiertas y el trabajo reciente; guarda un punto de control", "Komprimieren und Ziel, offene Aufgaben und jüngste Arbeit erhalten; Kontrollpunkt speichern"],
|
|
91
|
+
["Configure the Vascend workflow", "Configura el flujo de trabajo de Vascend", "Vascend-Arbeitsablauf konfigurieren"],
|
|
92
|
+
["Task list: pending, running, completed and failed; Ctrl+G", "Lista de tareas: pendientes, en curso, completadas y fallidas; Ctrl+G", "Aufgabenliste: ausstehend, laufend, abgeschlossen und fehlgeschlagen; Ctrl+G"],
|
|
93
|
+
["Assign parallel tasks to collaborators", "Asigna tareas en paralelo a colaboradores", "Parallele Aufgaben an Mitarbeiter zuweisen"],
|
|
94
|
+
["Background shell tasks (Ctrl+B); view output or stop a task", "Tareas de shell en segundo plano (Ctrl+B); ver salida o detener", "Shell-Aufgaben im Hintergrund (Ctrl+B); Ausgabe anzeigen oder stoppen"],
|
|
95
|
+
["Reload extensions from .talos/extensions", "Recarga las extensiones de .talos/extensions", "Erweiterungen aus .talos/extensions neu laden"],
|
|
96
|
+
["List and manage extensions and settings", "Lista y gestiona extensiones y ajustes", "Erweiterungen und Einstellungen anzeigen und verwalten"],
|
|
97
|
+
["Expand recent operation details", "Abre los detalles de las últimas operaciones", "Details der letzten Vorgänge aufklappen"],
|
|
98
|
+
["Attach an image; Ctrl+V to paste", "Adjunta una imagen; Ctrl+V para pegar", "Bild anhängen; Ctrl+V zum Einfügen"],
|
|
99
|
+
["Customize settings", "Personaliza los ajustes", "Einstellungen anpassen"],
|
|
100
|
+
["Show the project; safely switch with talos -C after restarting", "Muestra el proyecto; cambia de forma segura al reiniciar con talos -C", "Projekt anzeigen; nach Neustart mit talos -C sicher wechseln"],
|
|
101
|
+
["Browse the session tree; use an ID to move the head, or /tree close to hide it", "Explora el árbol de la sesión; usa un ID para cambiar de nodo o /tree close para ocultarlo", "Sitzungsbaum durchsuchen; mit ID den aktiven Knoten wechseln, mit /tree close ausblenden"],
|
|
102
|
+
["List saved sessions; /sessions close hides the list", "Lista las sesiones guardadas; /sessions close oculta la lista", "Gespeicherte Sitzungen anzeigen; /sessions close blendet die Liste aus"],
|
|
103
|
+
["Find and reopen saved chats", "Busca y abre los chats guardados", "Gespeicherte Chats suchen und öffnen"],
|
|
104
|
+
["Start an empty chat; the previous chat stays saved", "Abre un chat vacío; el anterior queda guardado", "Leeren Chat starten; der vorherige bleibt gespeichert"],
|
|
105
|
+
["Sign out of Vascend; sign-in is required on the next start", "Cierra sesión en Vascend; se pedirá acceso al iniciar de nuevo", "Von Vascend abmelden; beim nächsten Start erneut anmelden"],
|
|
106
|
+
["Exit Talos", "Salir de Talos", "Talos beenden"],
|
|
107
|
+
["Context~", "Contexto~", "Kontext~"], ["act ", "act ", "akt "], ["active ", "activo ", "aktiv "],
|
|
108
|
+
["session expired, sign in again", "sesión caducada, inicia sesión de nuevo", "Sitzung abgelaufen, erneut anmelden"],
|
|
109
|
+
["subscription detected", "suscripción detectada", "Abonnement erkannt"],
|
|
110
|
+
["sign in with Claude Pro or Max", "accede con Claude Pro o Max", "mit Claude Pro oder Max anmelden"],
|
|
111
|
+
["sign in with ChatGPT Plus or Pro", "accede con ChatGPT Plus o Pro", "mit ChatGPT Plus oder Pro anmelden"],
|
|
112
|
+
["account or API key connected", "cuenta o clave API conectada", "Konto oder API-Schlüssel verbunden"],
|
|
113
|
+
["browser OAuth or API key", "OAuth en el navegador o clave API", "OAuth im Browser oder API-Schlüssel"],
|
|
114
|
+
["Other providers", "Otros proveedores", "Andere Anbieter"],
|
|
115
|
+
["Anthropic, OpenAI, Gemini, Grok and others via API key", "Anthropic, OpenAI, Gemini, Grok y otros mediante clave API", "Anthropic, OpenAI, Gemini, Grok und andere per API-Schlüssel"],
|
|
116
|
+
["renew sign-in", "renovar acceso", "Anmeldung erneuern"], ["connected", "conectado", "verbunden"], ["not connected", "no conectado", "nicht verbunden"],
|
|
117
|
+
["⏵ edits", "⏵ cambios", "⏵ Änderungen"], ["accept edits", "aceptar cambios", "Änderungen akzeptieren"], ["normal", "normal", "normal"],
|
|
118
|
+
["to team · ", "al equipo · ", "an Team · "],
|
|
119
|
+
["send now · waiting for operation", "enviar ahora · esperando operación", "sofort senden · warte auf Vorgang"],
|
|
120
|
+
["during work", "durante el trabajo", "während der Arbeit"], ["after response", "tras la respuesta", "nach der Antwort"],
|
|
121
|
+
["sending to team", "enviando al equipo", "wird an Team gesendet"], ["sending", "enviando", "wird gesendet"],
|
|
122
|
+
["paused", "en pausa", "angehalten"], ["after response or operation", "tras la respuesta u operación", "nach Antwort oder Vorgang"],
|
|
123
|
+
["Message", "Mensaje", "Nachricht"], ["messages", "mensajes", "Nachrichten"], ["to team", "al equipo", "an Team"],
|
|
124
|
+
["after response/tool", "tras respuesta/operación", "nach Antwort/Vorgang"],
|
|
125
|
+
["Enter resume", "Intro reanuda", "Enter fortsetzen"], ["Alt+S send now", "Alt+S envía ahora", "Alt+S sofort senden"],
|
|
126
|
+
["Queued messages", "Mensajes en cola", "Nachrichten in der Warteschlange"], [" · paused", " · en pausa", " · angehalten"],
|
|
127
|
+
["Delivery is paused while this screen is open.", "El envío queda en pausa mientras esta pantalla está abierta.", "Der Versand pausiert, solange diese Ansicht geöffnet ist."],
|
|
128
|
+
["↑↓ select · Enter edit · Del remove · Shift+↑↓ reorder", "↑↓ elige · Intro edita · Supr elimina · Shift+↑↓ reordena", "↑↓ wählen · Enter bearbeiten · Entf löschen · Shift+↑↓ umordnen"],
|
|
129
|
+
["s Send now · t timing · p pause/resume · Esc chat", "s Envía ahora · t momento · p pausa/reanuda · Esc chat", "s Sofort senden · t Zeitpunkt · p pausieren/fortsetzen · Esc Chat"],
|
|
130
|
+
["g / Alt+T · Send {count} requests to team", "g / Alt+T · Envía {count} solicitudes al equipo", "g / Alt+T · {count} Anfragen an Team senden"],
|
|
131
|
+
["No queued messages.", "No hay mensajes en espera.", "Keine wartenden Nachrichten."],
|
|
132
|
+
["Text", "Texto", "Text"], ["PgUp/PgDn scroll", "RePág/AvPág desplaza", "Bild↑/Bild↓ blättern"],
|
|
133
|
+
["Send now interrupts the response; a running operation finishes first.", "Enviar ahora interrumpe la respuesta; una operación iniciada termina primero.", "Sofort senden unterbricht die Antwort; ein laufender Vorgang wird zuerst beendet."],
|
|
134
|
+
["During work: after the current response or operation.", "Durante el trabajo: tras la respuesta u operación actual.", "Während der Arbeit: nach der aktuellen Antwort oder dem Vorgang."],
|
|
135
|
+
["After response: a new turn, in queue order.", "Tras la respuesta: un turno nuevo, por orden de cola.", "Nach der Antwort: ein neuer Durchlauf in der Reihenfolge der Warteschlange."],
|
|
136
|
+
["Send to team requires at least 3 queued requests, excluding commands.", "Enviar al equipo requiere al menos 3 solicitudes en cola, sin contar comandos.", "An Team senden erfordert mindestens 3 Anfragen in der Warteschlange, ohne Befehle."],
|
|
137
|
+
["Commands run after the response.", "Los comandos se ejecutan tras la respuesta.", "Befehle werden nach der Antwort ausgeführt."],
|
|
138
|
+
["locally estimated tokens · /context for details", "tokens estimados localmente · /context para detalles", "lokal geschätzte Tokens · /context für Details"],
|
|
139
|
+
["From queue · delivered", "De la cola · entregado", "Aus der Warteschlange · zugestellt"],
|
|
140
|
+
["Ask Talos to do anything", "Pide a Talos que haga algo", "Sag Talos, was es tun soll"],
|
|
141
|
+
["final plan review", "revisión final del plan", "abschließende Planprüfung"], ["starting", "iniciando", "wird gestartet"],
|
|
142
|
+
["checking", "comprobando", "wird geprüft"], ["checking goal completion", "comprobando el cumplimiento del objetivo", "Zielerreichung wird geprüft"],
|
|
143
|
+
["reviewing", "revisando", "wird überprüft"], ["working", "trabajando", "in Bearbeitung"], ["responding", "respondiendo", "Antwort wird erstellt"],
|
|
144
|
+
["starting operation", "iniciando operación", "Vorgang wird gestartet"],
|
|
145
|
+
["Sent immediately · received", "Enviado inmediatamente · recibido", "Sofort gesendet · empfangen"],
|
|
146
|
+
["From queue · delivered while working", "De la cola · entregado durante el trabajo", "Aus der Warteschlange · während der Arbeit zugestellt"],
|
|
147
|
+
["extension", "extensión", "Erweiterung"], ["Commands", "Comandos", "Befehle"], ["model sign-in", "acceso a modelos", "Modellanmeldung"],
|
|
148
|
+
["sign in again", "accede de nuevo", "erneut anmelden"], ["sign in", "iniciar sesión", "anmelden"],
|
|
149
|
+
["opens the sign-in flow in the current terminal", "abre el acceso en el terminal actual", "öffnet die Anmeldung im aktuellen Terminal"],
|
|
150
|
+
["choose a model", "elige un modelo", "Modell wählen"], ["use this subscription on the next turn", "usa esta suscripción en el próximo turno", "dieses Abonnement im nächsten Durchlauf nutzen"],
|
|
151
|
+
["Search", "Buscar", "Suchen"], [" No results. Change your search.", " Sin resultados. Cambia la búsqueda.", " Keine Ergebnisse. Suche ändern."], ["of", "de", "von"],
|
|
152
|
+
["↑↓ scroll · Tab list · Enter · Esc", "↑↓ desplaza · Tab lista · Intro · Esc", "↑↓ blättern · Tab Liste · Enter · Esc"],
|
|
153
|
+
["↑↓ / click · Enter open · Tab details · Esc", "↑↓ / clic · Intro abre · Tab detalles · Esc", "↑↓ / Klick · Enter öffnen · Tab Details · Esc"],
|
|
154
|
+
["↑↓ · Enter select · Tab details · Esc", "↑↓ · Intro elige · Tab detalles · Esc", "↑↓ · Enter wählen · Tab Details · Esc"],
|
|
155
|
+
["Tab list · Enter · Esc", "Tab lista · Intro · Esc", "Tab Liste · Enter · Esc"], ["↑↓ · Enter · Tab · Esc", "↑↓ · Intro · Tab · Esc", "↑↓ · Enter · Tab · Esc"],
|
|
156
|
+
["Ask before actions", "Confirmar acciones", "Aktionen bestätigen"], ["Automatic edits", "Cambios automáticos", "Automatische Änderungen"], ["No confirmations", "Sin confirmaciones", "Ohne Bestätigungen"],
|
|
157
|
+
["permissions:", "permisos:", "Berechtigungen:"], ["model:", "modelo:", "Modell:"], [" /model change", " /model cambiar", " /model ändern"],
|
|
158
|
+
["directory:", "carpeta:", "Ordner:"], ["Project ", "Proyecto ", "Projekt "],
|
|
159
|
+
["Tip: /help commands · /chats recent chats", "Consejo: /help comandos · /chats chats recientes", "Tipp: /help Befehle · /chats letzte Chats"],
|
|
160
|
+
["pending", "pendiente", "ausstehend"], ["running", "en curso", "läuft"], ["completed", "completada", "abgeschlossen"], ["failed", "fallida", "fehlgeschlagen"],
|
|
161
|
+
["7d", "7d", "7T"], ["remaining", "disponible", "verbleibend"], ["quota unavailable", "cuota no disponible", "Kontingent nicht verfügbar"],
|
|
162
|
+
["Quota 2 (window unknown)", "Cuota 2 (duración desconocida)", "Kontingent 2 (Zeitraum unbekannt)"],
|
|
163
|
+
["Quota 1 (window unknown)", "Cuota 1 (duración desconocida)", "Kontingent 1 (Zeitraum unbekannt)"],
|
|
164
|
+
[" · limit reached", " · límite alcanzado", " · Limit erreicht"], [" (outdated)", " (desactualizado)", " (veraltet)"],
|
|
165
|
+
["Subscription", "Suscripción", "Abonnement"], ["Provider limits", "Límites del proveedor", "Anbieterlimits"],
|
|
166
|
+
[" Quota unavailable. Updates when the provider reports limits in a response.", " Cuota no disponible. Se actualiza cuando el proveedor informa de los límites.", " Kontingent nicht verfügbar. Wird aktualisiert, sobald der Anbieter Limits meldet."],
|
|
167
|
+
["Last update", "Última actualización", "Letzte Aktualisierung"],
|
|
168
|
+
[" Shared account quota, separate from this session's token usage.", " Cuota compartida de la cuenta, separada de los tokens de esta sesión.", " Gemeinsames Kontingent des Kontos, getrennt vom Tokenverbrauch dieser Sitzung."],
|
|
169
|
+
["reset n/a", "reinicio n/d", "Zurücksetzung k. A."], ["reset pending", "reinicio pendiente", "Zurücksetzung ausstehend"],
|
|
170
|
+
["d", "d", "T"], ["n/a", "n/d", "k. A."], ["left", "rest.", "übrig"], [" · unsaved", " · sin guardar", " · ungespeichert"], ["Context~ n/a", "Contexto~ n/d", "Kontext~ k. A."],
|
|
171
|
+
["Language", "Idioma", "Sprache"], ["Automatic (system)", "Automático (sistema)", "Automatisch (System)"],
|
|
172
|
+
["Choose the interface language or follow the system", "Elige el idioma de la interfaz o sigue el del sistema", "Sprache der Oberfläche wählen oder dem System folgen"],
|
|
173
|
+
["Language saved", "Idioma guardado", "Sprache gespeichert"], ["Unable to save the language preference", "No se puede guardar la preferencia de idioma", "Spracheinstellung kann nicht gespeichert werden"],
|
|
174
|
+
["Usage: /language system|it|en|es|de", "Uso: /language system|it|en|es|de", "Verwendung: /language system|it|en|es|de"],
|
|
175
|
+
["Saved chats", "Chats guardados", "Gespeicherte Chats"], ["Type to search · Enter open · Esc return to the current chat", "Escribe para buscar · Intro abre · Esc vuelve al chat actual", "Zum Suchen tippen · Enter öffnen · Esc zum aktuellen Chat"],
|
|
176
|
+
["current", "actual", "aktuell"], ["No saved sessions", "No hay sesiones guardadas", "Keine gespeicherten Sitzungen"],
|
|
177
|
+
["session not found", "sesión no encontrada", "Sitzung nicht gefunden"],
|
|
178
|
+
["New session {id} · previous chat saved: /resume {previous}", "Nueva sesión {id} · chat anterior guardado: /resume {previous}", "Neue Sitzung {id} · vorheriger Chat gespeichert: /resume {previous}"],
|
|
179
|
+
["Resumed session {name}({id}) · {count} messages", "Sesión reanudada {name}({id}) · {count} mensajes", "Sitzung fortgesetzt {name}({id}) · {count} Nachrichten"],
|
|
180
|
+
["Context restored: continue from here", "Contexto restaurado: continúa desde aquí", "Kontext wiederhergestellt: hier fortfahren"],
|
|
181
|
+
["Tool", "Herramienta", "Werkzeug"], ["Result", "Resultado", "Ergebnis"], ["System", "Sistema", "System"],
|
|
182
|
+
["image", "imagen", "Bild"], ["(no output)", "(sin salida)", "(keine Ausgabe)"],
|
|
183
|
+
];
|
|
184
|
+
export const TRANSLATIONS = new Map(TRANSLATION_ROWS.map(([english, es, de]) => [english, { es, de }]));
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Language } from "./locales.js";
|
|
2
|
+
export { systemLanguage } from "./system-language.js";
|
|
3
|
+
export { SUPPORTED_LANGUAGES, LANGUAGES, normalizeLanguage } from "./locales.js";
|
|
4
|
+
export declare function setLanguage(value: Language): void;
|
|
5
|
+
export declare function getLanguage(): Language;
|
|
6
|
+
export declare function tr(italian: string, english: string, values?: Readonly<Record<string, string | number>>): string;
|
package/dist/tui/i18n.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TRANSLATIONS } from "./i18n-catalog.js";
|
|
2
|
+
export { systemLanguage } from "./system-language.js";
|
|
3
|
+
export { SUPPORTED_LANGUAGES, LANGUAGES, normalizeLanguage } from "./locales.js";
|
|
4
|
+
let language = "it";
|
|
5
|
+
export function setLanguage(value) { language = value; }
|
|
6
|
+
export function getLanguage() { return language; }
|
|
7
|
+
export function tr(italian, english, values) {
|
|
8
|
+
const translated = language === "it" ? italian : language === "en" ? english : TRANSLATIONS.get(english)?.[language] ?? english;
|
|
9
|
+
return values ? translated.replace(/\{(\w+)\}/g, (match, key) => String(values[key] ?? match)) : translated;
|
|
10
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { ImagePart } from "../core/types.js";
|
|
2
|
+
export interface ImageAttachment {
|
|
3
|
+
readonly index: number;
|
|
4
|
+
readonly ref: string;
|
|
5
|
+
readonly kind: "file" | "data";
|
|
6
|
+
readonly path?: string;
|
|
7
|
+
readonly bytes?: Buffer;
|
|
8
|
+
readonly mime?: string;
|
|
9
|
+
readonly label: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function detectImageSource(raw: string, cwd: string): {
|
|
12
|
+
kind: "data";
|
|
13
|
+
bytes: Buffer;
|
|
14
|
+
mime: string;
|
|
15
|
+
} | {
|
|
16
|
+
kind: "file";
|
|
17
|
+
path: string;
|
|
18
|
+
} | null;
|
|
19
|
+
export declare class ImageRegistry {
|
|
20
|
+
private readonly items;
|
|
21
|
+
private seq;
|
|
22
|
+
addFile(path: string, label?: string): ImageAttachment;
|
|
23
|
+
addData(bytes: Buffer, mime: string, label?: string): ImageAttachment;
|
|
24
|
+
add(src: {
|
|
25
|
+
kind: "data";
|
|
26
|
+
bytes: Buffer;
|
|
27
|
+
mime: string;
|
|
28
|
+
} | {
|
|
29
|
+
kind: "file";
|
|
30
|
+
path: string;
|
|
31
|
+
}): ImageAttachment;
|
|
32
|
+
get(index: number): ImageAttachment | undefined;
|
|
33
|
+
resolveRef(ref: string): ImageAttachment | undefined;
|
|
34
|
+
all(): readonly ImageAttachment[];
|
|
35
|
+
imagePartsFor(text: string, opts?: {
|
|
36
|
+
maxTotalBytes?: number;
|
|
37
|
+
}): readonly ImagePart[];
|
|
38
|
+
get count(): number;
|
|
39
|
+
clear(): void;
|
|
40
|
+
}
|
|
41
|
+
export declare function findImageRefs(text: string): number[];
|
|
42
|
+
export declare function imageTokenSpanAt(text: string, cursor: number): {
|
|
43
|
+
start: number;
|
|
44
|
+
end: number;
|
|
45
|
+
index: number;
|
|
46
|
+
} | null;
|