@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
package/dist/sdk.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// Superficie pubblica per l'embedding di Vascend Talos in un'altra applicazione
|
|
2
|
+
// (es. il processo main di vascend-terminal). Quattro modalita' condividono
|
|
3
|
+
// lo stesso nucleo: TUI, print, RPC e questo SDK.
|
|
4
|
+
export { bootstrap } from "./core/bootstrap.js";
|
|
5
|
+
export { runTurn } from "./core/agent.js";
|
|
6
|
+
export { FileCoordinationHub, fileActor, formatFileConflicts, withFileActor } from "./core/file-coordination.js";
|
|
7
|
+
// Casella dei messaggi scritti mentre l'agente lavora: un host che usa runTurn
|
|
8
|
+
// direttamente (senza HorizonEngine) la crea e la passa fra le dipendenze.
|
|
9
|
+
export { createUserInbox, pendingText } from "./core/user-inbox.js";
|
|
10
|
+
export { WorkspaceSession, workspaceSessionKey } from "./core/workspace-sessions.js";
|
|
11
|
+
export { Session } from "./core/session.js";
|
|
12
|
+
export { ToolRegistry } from "./tools/registry.js";
|
|
13
|
+
export { registerComputerUse } from "./tools/computer-use.js";
|
|
14
|
+
export { executionPathKey, executionTargetKey, localExecutionTarget, normalizeExecutionTarget, workspaceUri, } from "./core/execution-target.js";
|
|
15
|
+
export { MCP_APP_MIME_TYPE, MCP_PROTOCOL_VERSION, MCP_UI_EXTENSION_ID, isToolVisibleToModel, mcpAppUiMeta, normalizeMcpToolResult, supportsMcpApps, textFromMcpToolResult, toolDefinitionForCapabilities, toolInputSchema, } from "./mcp/protocol.js";
|
|
16
|
+
export { builtinTools } from "./tools/builtin.js";
|
|
17
|
+
export { resolveTool } from "./tools/resolve.js";
|
|
18
|
+
export { executeTool } from "./tools/execute.js";
|
|
19
|
+
export { ProviderRegistry, defaultRegistry } from "./providers/registry.js";
|
|
20
|
+
export { ModelRegistry, loadModelRegistry } from "./providers/model-registry.js";
|
|
21
|
+
export { KnowledgeBase, knowledgeBase } from "./vascend/competitor-knowledge.js";
|
|
22
|
+
export { AnthropicProvider } from "./providers/anthropic.js";
|
|
23
|
+
// Catalogo autoritativo dei provider: lo espone il core perche' l'host (la
|
|
24
|
+
// dashboard di Horizon) deve mostrare gli STESSI provider che il registry sa
|
|
25
|
+
// servire. Una seconda lista scritta a mano nella UI divergerebbe al primo
|
|
26
|
+
// provider aggiunto.
|
|
27
|
+
export { PROVIDER_CATALOG } from "./providers/catalog.js";
|
|
28
|
+
export { buildConfig, BASE_SYSTEM } from "./core/config.js";
|
|
29
|
+
export { VIBE_MODE_IDS, listVibeModes, parseVibeMode, routeVibeMode, vibeModeSpec, } from "./core/vibe-modes.js";
|
|
30
|
+
export { buildContextFabric, contextFramePath, contextProjectKey, loadContextFrame, renderContextFrame, resetContextFrame, updateContextPins, } from "./vascend/context-fabric.js";
|
|
31
|
+
// Stato della memoria per gli host che vogliono mostrarlo (frontiera, costo
|
|
32
|
+
// dell'indice vivo, densita' del grafo). Legge solo lo store delle stanze.
|
|
33
|
+
export { memoryStatus } from "./vascend/memory-status.js";
|
|
34
|
+
// Composizione della finestra di contesto: l'host la riceve nell'evento
|
|
35
|
+
// `context_window` a ogni turno e puo' ricostruirla da se' (es. per un pannello
|
|
36
|
+
// che mostra dove sono finiti i token prima di inviare).
|
|
37
|
+
export { buildContextLedger } from "./core/context-ledger.js";
|
|
38
|
+
// Indice dei tool result: retrocessione dei risultati vecchi a riferimento
|
|
39
|
+
// richiamabile (`output_page id="tr7"`) e archivio su disco che li risolve.
|
|
40
|
+
export { applyMediaEviction, applyToolResultDemotion, mediaBudgetPolicy, planMediaEviction, planToolResultDemotion, slimMessageForSession, slimToolResultForSession, toolIndexPolicy, DEFAULT_MEDIA_BUDGET, DEFAULT_TOOL_INDEX, } from "./core/tool-result-index.js";
|
|
41
|
+
export { ToolOutputStore } from "./core/tool-result-store.js";
|
|
42
|
+
// Lavoro autonomo di lunga durata: il ciclo vive FUORI dalla conversazione.
|
|
43
|
+
// Coda durevole con lease (un crash diventa un ritardo), runner che apre un
|
|
44
|
+
// agente NUOVO per ogni unita' (il costo per unita' non cresce), verifica
|
|
45
|
+
// esterna come arbitro.
|
|
46
|
+
export { claim, claimable, complete, counts, expire, fail, formatQueue, heartbeat, makeItem, WorkQueue, DEFAULT_LEASE_MS, DEFAULT_MAX_ATTEMPTS, } from "./vascend/work-queue.js";
|
|
47
|
+
export { runWorkLoop } from "./vascend/work-runner.js";
|
|
48
|
+
export { briefFor, createFreshAgentRunner, parseOutcome } from "./vascend/work-agent.js";
|
|
49
|
+
// Funzionalita' di architettura: mappa moduli/dipendenze/cicli del workspace.
|
|
50
|
+
// Stessa sorgente del tool `architecture_map` e del comando TUI /arch: un host
|
|
51
|
+
// (es. Vascend Terminal) puo' costruirci sopra pannelli nativi.
|
|
52
|
+
export { buildArchitectureMap, renderArchitectureMap, scanArchitectureMap, } from "./vascend/architecture-map.js";
|
|
53
|
+
// Diagnostica ambiente (stessa del comando `talos --doctor`).
|
|
54
|
+
export { doctorExitCode, renderDoctorReport, runDoctor } from "./core/doctor.js";
|
|
55
|
+
// Horizon: facade headless stabile per l'embedding in Vascend Terminal.
|
|
56
|
+
export { HORIZON_CAPABILITIES, HorizonContextUnavailableError, HorizonEngine, HorizonMainTeam, needsGuideArbitration, HorizonSessionNotFoundError, HorizonStateError, routeWorkerModels, } from "./horizon/index.js";
|
|
57
|
+
// Modulo Cowork: workspace condivisi collaborativi su engine Talos (desktop).
|
|
58
|
+
export { CoworkManager, localIdentity, CoworkStore, CoworkSyncChannel, CoworkEngine, createCoworkIpc, createCoworkClient, } from "./cowork/index.js";
|
|
59
|
+
// Kingdoms Mode osservabile e INTERROGABILE dall'host: scrivere a un singolo
|
|
60
|
+
// collaboratore mentre lavora, e sapere chi e' ancora vivo nel regno.
|
|
61
|
+
export { kingdomLive, KingdomLive } from "./vascend/kingdom-live.js";
|
|
62
|
+
export { loadModelsDev, cachedModelCatalog, modelCapabilities } from "./providers/models-dev.js";
|
|
63
|
+
export { ModelCatalog, parseModelCatalog } from "./providers/model-catalog.js";
|
|
64
|
+
export { modelEfforts } from "./providers/model-effort.js";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface Skill {
|
|
2
|
+
readonly name: string;
|
|
3
|
+
readonly description: string;
|
|
4
|
+
readonly allowedTools: readonly string[] | null;
|
|
5
|
+
readonly disableModelInvocation: boolean;
|
|
6
|
+
readonly body: string;
|
|
7
|
+
readonly path: string;
|
|
8
|
+
}
|
|
9
|
+
export interface SkillDiscoveryOptions {
|
|
10
|
+
readonly extraPaths?: readonly string[];
|
|
11
|
+
readonly disabled?: boolean;
|
|
12
|
+
readonly projectTrusted?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function discoverSkills(cwd: string, opts?: SkillDiscoveryOptions): readonly Skill[];
|
|
15
|
+
export declare function findSkill(skills: readonly Skill[], name: string): Skill | undefined;
|
|
16
|
+
export declare function skillsSystemBlock(skills: readonly Skill[]): string;
|
|
17
|
+
export declare function renderSkillInvocation(skill: Skill, args: string): string;
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
function unquote(s) {
|
|
5
|
+
if (s.length >= 2 && ((s[0] === '"' && s.at(-1) === '"') || (s[0] === "'" && s.at(-1) === "'"))) {
|
|
6
|
+
return s.slice(1, -1);
|
|
7
|
+
}
|
|
8
|
+
return s;
|
|
9
|
+
}
|
|
10
|
+
function parseList(value) {
|
|
11
|
+
const inner = value.replace(/^\[/, "").replace(/\]$/, "");
|
|
12
|
+
return inner.split(",").map((s) => unquote(s.trim())).filter(Boolean);
|
|
13
|
+
}
|
|
14
|
+
function parseFrontmatter(raw) {
|
|
15
|
+
const m = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/.exec(raw);
|
|
16
|
+
if (!m)
|
|
17
|
+
return { body: raw };
|
|
18
|
+
const head = m[1] ?? "";
|
|
19
|
+
const body = m[2] ?? "";
|
|
20
|
+
const out = {};
|
|
21
|
+
for (const line of head.split(/\r?\n/)) {
|
|
22
|
+
const kv = /^([A-Za-z0-9_-]+)\s*:\s*(.*)$/.exec(line.trim());
|
|
23
|
+
if (!kv)
|
|
24
|
+
continue;
|
|
25
|
+
const key = (kv[1] ?? "").toLowerCase();
|
|
26
|
+
const value = (kv[2] ?? "").trim();
|
|
27
|
+
if (key === "name")
|
|
28
|
+
out.name = unquote(value);
|
|
29
|
+
else if (key === "description")
|
|
30
|
+
out.description = unquote(value);
|
|
31
|
+
else if (key === "allowed-tools" || key === "allowedtools")
|
|
32
|
+
out.allowedTools = parseList(value);
|
|
33
|
+
else if (key === "disable-model-invocation" || key === "disablemodelinvocation") {
|
|
34
|
+
out.disableModelInvocation = /^(1|true|yes|on)$/i.test(value);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return { ...out, body };
|
|
38
|
+
}
|
|
39
|
+
const NAME_RE = /^[a-z0-9-]{1,64}$/;
|
|
40
|
+
function skillFromFile(path, fallbackName) {
|
|
41
|
+
try {
|
|
42
|
+
const raw = readFileSync(path, "utf8");
|
|
43
|
+
const fm = parseFrontmatter(raw);
|
|
44
|
+
const name = fm.name && NAME_RE.test(fm.name) ? fm.name : fallbackName;
|
|
45
|
+
if (!fm.description)
|
|
46
|
+
return null;
|
|
47
|
+
return {
|
|
48
|
+
name,
|
|
49
|
+
description: fm.description.slice(0, 1024),
|
|
50
|
+
allowedTools: fm.allowedTools ?? null,
|
|
51
|
+
disableModelInvocation: fm.disableModelInvocation ?? false,
|
|
52
|
+
body: fm.body.replace(/^\s+/, ""),
|
|
53
|
+
path,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function globalRootDirs() {
|
|
61
|
+
return [
|
|
62
|
+
join(homedir(), ".talos", "agent", "skills"),
|
|
63
|
+
join(homedir(), ".talos", "skills"),
|
|
64
|
+
];
|
|
65
|
+
}
|
|
66
|
+
function projectRootDirs(cwd) {
|
|
67
|
+
return [join(cwd, ".talos", "skills")];
|
|
68
|
+
}
|
|
69
|
+
// Scopre le skill in una dir radice: i .md diretti sono skill individuali; le
|
|
70
|
+
// sottocartelle con SKILL.md sono skill (ricorsivamente).
|
|
71
|
+
function discoverInRoot(root, into) {
|
|
72
|
+
if (!existsSync(root))
|
|
73
|
+
return;
|
|
74
|
+
let entries;
|
|
75
|
+
try {
|
|
76
|
+
entries = readdirSync(root);
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
for (const entry of entries) {
|
|
82
|
+
const full = join(root, entry);
|
|
83
|
+
let st;
|
|
84
|
+
try {
|
|
85
|
+
st = statSync(full);
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
if (st.isFile() && entry.toLowerCase().endsWith(".md")) {
|
|
91
|
+
const skill = skillFromFile(full, entry.replace(/\.md$/i, ""));
|
|
92
|
+
if (skill)
|
|
93
|
+
into.set(skill.name, skill);
|
|
94
|
+
}
|
|
95
|
+
else if (st.isDirectory()) {
|
|
96
|
+
const skillMd = join(full, "SKILL.md");
|
|
97
|
+
if (existsSync(skillMd)) {
|
|
98
|
+
const skill = skillFromFile(skillMd, entry);
|
|
99
|
+
if (skill)
|
|
100
|
+
into.set(skill.name, skill);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
discoverInRoot(full, into); // ricorsione nelle sottocartelle
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// Tutte le skill disponibili (dir radici + path extra da --skill). Con
|
|
109
|
+
// `disabled` solo le skill esplicite da extraPaths vengono caricate. Le skill
|
|
110
|
+
// di progetto richiedono projectTrusted.
|
|
111
|
+
export function discoverSkills(cwd, opts = {}) {
|
|
112
|
+
const byName = new Map();
|
|
113
|
+
if (!opts.disabled) {
|
|
114
|
+
for (const root of globalRootDirs())
|
|
115
|
+
discoverInRoot(root, byName);
|
|
116
|
+
if (opts.projectTrusted !== false) {
|
|
117
|
+
for (const root of projectRootDirs(cwd))
|
|
118
|
+
discoverInRoot(root, byName);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
for (const path of opts.extraPaths ?? []) {
|
|
122
|
+
const file = path.toLowerCase().endsWith(".md") ? path : join(path, "SKILL.md");
|
|
123
|
+
const skill = skillFromFile(file, path.replace(/.*[\\/]/, "").replace(/\.md$/i, ""));
|
|
124
|
+
if (skill)
|
|
125
|
+
byName.set(skill.name, skill);
|
|
126
|
+
}
|
|
127
|
+
return [...byName.values()];
|
|
128
|
+
}
|
|
129
|
+
export function findSkill(skills, name) {
|
|
130
|
+
return skills.find((s) => s.name === name);
|
|
131
|
+
}
|
|
132
|
+
// Progressive disclosure: nel system prompt entra solo nome+descrizione in XML.
|
|
133
|
+
// Il corpo completo viene letto solo quando la skill e' invocata.
|
|
134
|
+
export function skillsSystemBlock(skills) {
|
|
135
|
+
const invocable = skills.filter((s) => !s.disableModelInvocation);
|
|
136
|
+
if (!invocable.length)
|
|
137
|
+
return "";
|
|
138
|
+
const items = invocable
|
|
139
|
+
.map((s) => ` <skill name="${escapeXml(s.name)}">${escapeXml(s.description)}</skill>`)
|
|
140
|
+
.join("\n");
|
|
141
|
+
return [
|
|
142
|
+
"<available-skills>",
|
|
143
|
+
"Capacita' on-demand. Per usarne una, leggi il file della skill o invoca /skill:<nome>.",
|
|
144
|
+
items,
|
|
145
|
+
"</available-skills>",
|
|
146
|
+
].join("\n");
|
|
147
|
+
}
|
|
148
|
+
function escapeXml(s) {
|
|
149
|
+
return s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
150
|
+
}
|
|
151
|
+
// Costruisce il messaggio utente per l'invocazione esplicita /skill:name [args].
|
|
152
|
+
export function renderSkillInvocation(skill, args) {
|
|
153
|
+
const head = `# Skill: ${skill.name}\n\n${skill.body}`;
|
|
154
|
+
return args.trim() ? `${head}\n\nUser: ${args.trim()}` : head;
|
|
155
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Sanitizzazione del testo che entra in MEMORIA/CONTEXT (metodo Danilov).
|
|
2
|
+
//
|
|
3
|
+
// Output di tool (bash, web_fetch, ...), incolla da terminale e contenuti
|
|
4
|
+
// esterni possono trascinare sequenze di escape ANSI (es. \x1b[31m), OSC
|
|
5
|
+
// (hyperlink), e byte di controllo non-stampabili. Se finiscono nei title/
|
|
6
|
+
// terms/body delle stanze o nei summary degli eventi, vengono iniettati TALI
|
|
7
|
+
// E QUALI nel memory packet -> system prompt: sono i "caratteri strani" che
|
|
8
|
+
// si leggono nel context e che lo sporcano (e gonfiano inutilmente i token).
|
|
9
|
+
//
|
|
10
|
+
// Questa funzione e' PURA e DETERMINISTICA: strip ANSI/OSC + caratteri di
|
|
11
|
+
// controllo, preservando solo \n e \t (la collassatura degli spazi resta agli
|
|
12
|
+
// helper oneLine/escapeValue gia' esistenti).
|
|
13
|
+
// CSI: ESC [ ... lettera finale. OSC: ESC ] ... (BEL | ESC \).
|
|
14
|
+
// Singoli ESC + intro a 1/2 byte (es. ESC ( B, ESC =) inclusi.
|
|
15
|
+
const ANSI_RE =
|
|
16
|
+
// eslint-disable-next-line no-control-regex
|
|
17
|
+
/[\u001b\u009b][[\]()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PR-TZcf-ntqry=><~]|[\u001b\u009b][@-Z\\-_]/g;
|
|
18
|
+
// Caratteri di controllo C0/C1 non-stampabili, ESCLUSI \t (0x09) e \n (0x0a).
|
|
19
|
+
// Anche \r (0x0d) viene rimosso: lo normalizziamo via newline a monte.
|
|
20
|
+
// eslint-disable-next-line no-control-regex
|
|
21
|
+
const CONTROL_RE = /[\u0000-\u0008\u000b-\u001f\u007f-\u009f]/g;
|
|
22
|
+
// Rimuove escape ANSI/OSC e byte di controllo non-stampabili dal testo.
|
|
23
|
+
// Mantiene \n e \t. Non collassa gli spazi (lo fanno oneLine/escapeValue).
|
|
24
|
+
export function sanitizeText(value) {
|
|
25
|
+
if (!value)
|
|
26
|
+
return "";
|
|
27
|
+
return value.replace(ANSI_RE, "").replace(CONTROL_RE, "");
|
|
28
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { requestAnswer } from "../core/user-input.js";
|
|
3
|
+
function questionResult(result, question, required) {
|
|
4
|
+
const labels = {
|
|
5
|
+
unavailable: "L'host non dispone di un canale per le domande.",
|
|
6
|
+
unanswered: "L'utente non ha risposto alla domanda.",
|
|
7
|
+
cancelled: "La richiesta e' stata interrotta.",
|
|
8
|
+
failed: "Il canale delle domande ha restituito un errore.",
|
|
9
|
+
};
|
|
10
|
+
const output = result.status === "answered" ? `risposta utente: ${result.answer}`
|
|
11
|
+
: `${labels[result.status]} ${required
|
|
12
|
+
? "L'informazione necessaria resta mancante: non inventare una risposta e non eseguire il lavoro che ne dipende. Prosegui con il lavoro indipendente e segnala cosa resta da chiarire."
|
|
13
|
+
: "Per questa preferenza facoltativa puoi scegliere un valore ragionevole, reversibile e dichiarato."} L'assenza di risposta non e' un consenso.`;
|
|
14
|
+
return {
|
|
15
|
+
output,
|
|
16
|
+
structuredContent: { ...result, question, required },
|
|
17
|
+
...(result.status !== "answered" && (required || result.status === "cancelled") ? { isError: true } : {}),
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export const askUserTool = {
|
|
21
|
+
name: "ask_user",
|
|
22
|
+
description: "Chiedi all'utente un requisito mancante o una decisione che cambia il risultato. "
|
|
23
|
+
+ "Attende una risposta libera o una scelta tra options. required=true (default) mantiene esplicito il blocco se manca la risposta; "
|
|
24
|
+
+ "usa required=false solo per preferenze facoltative con un default reversibile. Prima controlla il contesto disponibile. "
|
|
25
|
+
+ "Disponibile anche ai collaboratori; le domande dello stesso host vengono mostrate una alla volta.",
|
|
26
|
+
schema: {
|
|
27
|
+
type: "object",
|
|
28
|
+
properties: {
|
|
29
|
+
question: { type: "string", description: "domanda breve e autosufficiente, con il motivo della scelta" },
|
|
30
|
+
options: { type: "array", items: { type: "string" }, maxItems: 8, description: "scelte facoltative, distinte e comprensibili" },
|
|
31
|
+
required: { type: "boolean", default: true, description: "false solo per una preferenza facoltativa; mai per chiedere un'autorizzazione" },
|
|
32
|
+
},
|
|
33
|
+
required: ["question"],
|
|
34
|
+
},
|
|
35
|
+
handler: async (input, ctx) => {
|
|
36
|
+
const invalid = (output) => ({ isError: true, output });
|
|
37
|
+
if (typeof input["question"] !== "string" || !input["question"].trim())
|
|
38
|
+
return invalid("errore: question deve essere una domanda non vuota");
|
|
39
|
+
if (input["required"] !== undefined && typeof input["required"] !== "boolean")
|
|
40
|
+
return invalid("errore: required deve essere booleano");
|
|
41
|
+
const rawOptions = input["options"];
|
|
42
|
+
if (rawOptions !== undefined && (!Array.isArray(rawOptions) || rawOptions.length > 8
|
|
43
|
+
|| rawOptions.some((option) => typeof option !== "string" || !option.trim()))) {
|
|
44
|
+
return invalid("errore: options deve contenere al massimo 8 stringhe non vuote");
|
|
45
|
+
}
|
|
46
|
+
const options = rawOptions?.map((option) => option.trim());
|
|
47
|
+
if (options && new Set(options).size !== options.length)
|
|
48
|
+
return invalid("errore: options contiene scelte duplicate");
|
|
49
|
+
const question = input["question"].trim();
|
|
50
|
+
const required = input["required"] !== false;
|
|
51
|
+
const shownQuestion = ctx.kingdom?.self ? `[${ctx.kingdom.self}] ${question}` : question;
|
|
52
|
+
const result = ctx.signal.aborted ? { status: "cancelled" }
|
|
53
|
+
: ctx.ask ? await requestAnswer(ctx.ask, shownQuestion, options?.length ? options : undefined, ctx.signal)
|
|
54
|
+
: { status: "unavailable" };
|
|
55
|
+
const response = questionResult(result, question, required);
|
|
56
|
+
return { ...response, structuredContent: { ...response.structuredContent, questionId: randomUUID(),
|
|
57
|
+
actor: ctx.kingdom?.self ?? "main", teamId: ctx.kingdom?.id ?? null,
|
|
58
|
+
taskIds: ctx.planTasks ?? [], sessionId: ctx.sessionId ?? null } };
|
|
59
|
+
},
|
|
60
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { Tool } from "../core/types.js";
|
|
2
|
+
export { askUserTool } from "./ask-user.js";
|
|
3
|
+
export declare const bashTool: Tool;
|
|
4
|
+
export declare const bashOutputTool: Tool;
|
|
5
|
+
export declare const readTool: Tool;
|
|
6
|
+
export declare const writeTool: Tool;
|
|
7
|
+
export interface EditMatch {
|
|
8
|
+
readonly result: string;
|
|
9
|
+
readonly via: "exact" | "eol" | "whitespace";
|
|
10
|
+
}
|
|
11
|
+
export declare function findEditMatch(cur: string, old: string, next: string): EditMatch | string;
|
|
12
|
+
export declare const editTool: Tool;
|
|
13
|
+
export declare const fileActivityTool: Tool;
|
|
14
|
+
export declare const lsTool: Tool;
|
|
15
|
+
export declare const recallTool: Tool;
|
|
16
|
+
export declare const imageGenerateTool: Tool;
|
|
17
|
+
export declare const webFetchTool: Tool;
|
|
18
|
+
export declare const WIDE_SEARCH_FILES = 3000;
|
|
19
|
+
/**
|
|
20
|
+
* Nota di ampiezza da appendere al risultato di una ricerca.
|
|
21
|
+
*
|
|
22
|
+
* Perche' esiste: con la conversazione puntata alla radice di un monorepo, una
|
|
23
|
+
* grep cammina su decine di migliaia di file (misurato: 28.575 file, ~25
|
|
24
|
+
* secondi, contro 137 file della sottocartella del task) e il modello non ha
|
|
25
|
+
* modo di saperlo — vede solo un risultato lento e rumoroso, e continua a
|
|
26
|
+
* cercare in largo. Qui il costo diventa esplicito insieme al rimedio: `path`.
|
|
27
|
+
*/
|
|
28
|
+
export declare function wideSearchNote(root: string, visited: number): Promise<string>;
|
|
29
|
+
export declare const globTool: Tool;
|
|
30
|
+
export declare const grepTool: Tool;
|
|
31
|
+
export declare const vascendPlanTool: Tool;
|
|
32
|
+
export declare const vascendNoteTool: Tool;
|
|
33
|
+
export declare const vascendSkillTool: Tool;
|
|
34
|
+
export declare const vascendAddRoomsTool: Tool;
|
|
35
|
+
export declare const waitTool: Tool;
|
|
36
|
+
export declare const vascendMarkTool: Tool;
|
|
37
|
+
export declare const toolSearchTool: Tool;
|
|
38
|
+
export declare const toolInvokeTool: Tool;
|
|
39
|
+
export declare const skillSearchTool: Tool;
|
|
40
|
+
export declare const skillLoadTool: Tool;
|
|
41
|
+
export declare const DEFERRED_TOOLS: ReadonlySet<string>;
|
|
42
|
+
export declare function resetOutputPageCounters(): void;
|
|
43
|
+
export declare const outputPageTool: Tool;
|
|
44
|
+
export declare const architectureMapTool: Tool;
|
|
45
|
+
export declare const marketCompareTool: Tool;
|
|
46
|
+
export declare const userProfileTool: Tool;
|
|
47
|
+
export declare const workQueueTool: Tool;
|
|
48
|
+
export declare const builtinTools: readonly Tool[];
|