@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,337 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Valutatori (read-only) — uno per asse, prompt in notazione Danilov
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Coda comune dei prompt: ogni valutatore risponde SOLO JSON con lo stesso schema.
|
|
5
|
+
const VERDICT_SCHEMA = `OUTPUT: SOLO JSON {"score": 0-100, "approve": bool, "rationale": "1-2 frasi", "gaps": [stringhe brevi]}. ` +
|
|
6
|
+
`Niente prosa fuori dal JSON, niente markdown.`;
|
|
7
|
+
const EVAL_COMPLETENESS = {
|
|
8
|
+
id: "completeness",
|
|
9
|
+
axis: "completeness",
|
|
10
|
+
title: "Valutatore completezza",
|
|
11
|
+
weight: 1,
|
|
12
|
+
system: `# Valutatore del concilio — asse COMPLETEZZA
|
|
13
|
+
INDICE
|
|
14
|
+
1 = goal
|
|
15
|
+
2 = consegna
|
|
16
|
+
3 = lacuna
|
|
17
|
+
|
|
18
|
+
DEFINIZIONI
|
|
19
|
+
@goal[reale]: l'obiettivo VERO dell'utente, non il piano svolto
|
|
20
|
+
@consegna[criterio]: completa = tutti i pezzi essenziali presenti e funzionanti (dati, flussi, UI, integrazioni richieste)
|
|
21
|
+
@lacuna[regola]: elenca SOLO pezzi ESSENZIALI assenti; niente nice-to-have
|
|
22
|
+
@score[scala]: 100=tutto consegnato, 0=nulla di sostanziale; misura la copertura del goal
|
|
23
|
+
|
|
24
|
+
RELAZIONI
|
|
25
|
+
@R1: @goal[reale] -> @consegna[criterio] [ misura la consegna sul goal vero ]
|
|
26
|
+
@R2: @consegna[criterio] -> @lacuna[regola] [ approve=false se manca l'essenziale ]
|
|
27
|
+
|
|
28
|
+
${VERDICT_SCHEMA}`,
|
|
29
|
+
};
|
|
30
|
+
const EVAL_CORRECTNESS = {
|
|
31
|
+
id: "correctness",
|
|
32
|
+
axis: "correctness",
|
|
33
|
+
title: "Valutatore correttezza",
|
|
34
|
+
weight: 1,
|
|
35
|
+
system: `# Valutatore del concilio — asse CORRETTEZZA
|
|
36
|
+
INDICE
|
|
37
|
+
1 = comportamento
|
|
38
|
+
2 = errori
|
|
39
|
+
3 = rischio
|
|
40
|
+
|
|
41
|
+
DEFINIZIONI
|
|
42
|
+
@comportamento[atteso]: l'operato fa cio' che il goal richiede senza rotture evidenti
|
|
43
|
+
@errori[segnali]: bug logici, regressioni, casi limite ignorati, contratti violati
|
|
44
|
+
@rischio[regola]: approve=false se ci sono difetti che rompono il flusso principale
|
|
45
|
+
@score[scala]: 100=corretto e robusto, 0=non funziona; penalizza i bug sul percorso critico
|
|
46
|
+
|
|
47
|
+
RELAZIONI
|
|
48
|
+
@R1: @comportamento[atteso] -> @errori[segnali] [ cerca difetti sul percorso critico ]
|
|
49
|
+
@R2: @errori[segnali] -> @rischio[regola] [ i difetti gravi abbassano score e approve ]
|
|
50
|
+
|
|
51
|
+
${VERDICT_SCHEMA}`,
|
|
52
|
+
};
|
|
53
|
+
const EVAL_QUALITY = {
|
|
54
|
+
id: "quality",
|
|
55
|
+
axis: "quality",
|
|
56
|
+
title: "Valutatore qualita' e test",
|
|
57
|
+
weight: 1,
|
|
58
|
+
system: `# Valutatore del concilio — asse QUALITA'/TEST
|
|
59
|
+
INDICE
|
|
60
|
+
1 = qualita
|
|
61
|
+
2 = test
|
|
62
|
+
3 = manutenibilita
|
|
63
|
+
|
|
64
|
+
DEFINIZIONI
|
|
65
|
+
@qualita[criterio]: codice coeso, convenzioni del progetto rispettate, niente duplicazione inutile
|
|
66
|
+
@test[criterio]: i percorsi importanti hanno verifica (test o prova esplicita); assente = lacuna
|
|
67
|
+
@manutenibilita[regola]: approve=false solo se la qualita' compromette l'uso o la tenuta del lavoro
|
|
68
|
+
@score[scala]: 100=pulito e verificato, 0=fragile e non testato; non essere perfezionista
|
|
69
|
+
|
|
70
|
+
RELAZIONI
|
|
71
|
+
@R1: @qualita[criterio] -> @test[criterio] [ qualita' include la verifica ]
|
|
72
|
+
@R2: @test[criterio] -> @manutenibilita[regola] [ pesa l'impatto reale, non l'estetica ]
|
|
73
|
+
|
|
74
|
+
${VERDICT_SCHEMA}`,
|
|
75
|
+
};
|
|
76
|
+
const EVAL_REQUIREMENTS = {
|
|
77
|
+
id: "requirements",
|
|
78
|
+
axis: "requirements",
|
|
79
|
+
title: "Valutatore allineamento requisiti",
|
|
80
|
+
weight: 1,
|
|
81
|
+
system: `# Valutatore del concilio — asse REQUISITI
|
|
82
|
+
INDICE
|
|
83
|
+
1 = requisiti
|
|
84
|
+
2 = copertura
|
|
85
|
+
3 = deriva
|
|
86
|
+
|
|
87
|
+
DEFINIZIONI
|
|
88
|
+
@requisiti[fonte]: i requisiti espliciti/impliciti del goal (e quelli estratti, se forniti)
|
|
89
|
+
@copertura[criterio]: ogni requisito ha una risposta nell'operato; mappa requisito->evidenza
|
|
90
|
+
@deriva[regola]: approve=false se requisiti chiave restano scoperti o l'operato devia dal richiesto
|
|
91
|
+
@score[scala]: 100=tutti i requisiti coperti, 0=fuori tema; misura l'aderenza al richiesto
|
|
92
|
+
|
|
93
|
+
RELAZIONI
|
|
94
|
+
@R1: @requisiti[fonte] -> @copertura[criterio] [ confronta operato e requisiti ]
|
|
95
|
+
@R2: @copertura[criterio] -> @deriva[regola] [ requisiti chiave scoperti = no approve ]
|
|
96
|
+
|
|
97
|
+
${VERDICT_SCHEMA}`,
|
|
98
|
+
};
|
|
99
|
+
// Registro dei valutatori disponibili, per asse.
|
|
100
|
+
const ALL_EVALUATORS = {
|
|
101
|
+
completeness: EVAL_COMPLETENESS,
|
|
102
|
+
correctness: EVAL_CORRECTNESS,
|
|
103
|
+
quality: EVAL_QUALITY,
|
|
104
|
+
requirements: EVAL_REQUIREMENTS,
|
|
105
|
+
};
|
|
106
|
+
// Ordine di default del concilio (tutti gli assi).
|
|
107
|
+
const DEFAULT_AXES = ["completeness", "correctness", "quality", "requirements"];
|
|
108
|
+
function isAxis(value) {
|
|
109
|
+
return value === "completeness" || value === "correctness" || value === "quality" || value === "requirements";
|
|
110
|
+
}
|
|
111
|
+
// Seleziona i valutatori in base agli assi richiesti (deduplicati, ordine stabile).
|
|
112
|
+
// Assi sconosciuti vengono ignorati; lista vuota -> tutti gli assi di default.
|
|
113
|
+
export function selectEvaluators(axes) {
|
|
114
|
+
const wanted = (axes && axes.length ? axes : DEFAULT_AXES)
|
|
115
|
+
.map((a) => a.trim().toLowerCase())
|
|
116
|
+
.filter(isAxis);
|
|
117
|
+
const seen = new Set();
|
|
118
|
+
const out = [];
|
|
119
|
+
for (const axis of wanted.length ? wanted : DEFAULT_AXES) {
|
|
120
|
+
if (seen.has(axis))
|
|
121
|
+
continue;
|
|
122
|
+
seen.add(axis);
|
|
123
|
+
out.push(ALL_EVALUATORS[axis]);
|
|
124
|
+
}
|
|
125
|
+
return out;
|
|
126
|
+
}
|
|
127
|
+
// ---------------------------------------------------------------------------
|
|
128
|
+
// Aggregazione: verdetti dei valutatori -> verdetto del concilio
|
|
129
|
+
// ---------------------------------------------------------------------------
|
|
130
|
+
function clampScore(n) {
|
|
131
|
+
if (!Number.isFinite(n))
|
|
132
|
+
return 0;
|
|
133
|
+
return Math.max(0, Math.min(100, Math.round(n)));
|
|
134
|
+
}
|
|
135
|
+
// Aggrega i verdetti in un CouncilVerdict motivato. La soglia (0-100) determina
|
|
136
|
+
// l'approvazione: la consegna e' approvata se il grado di completamento pesato
|
|
137
|
+
// raggiunge la soglia E nessun valutatore segnala un blocco (approve=false).
|
|
138
|
+
export function aggregateVerdicts(verdicts, threshold) {
|
|
139
|
+
if (!verdicts.length) {
|
|
140
|
+
return {
|
|
141
|
+
completion: 0,
|
|
142
|
+
approved: false,
|
|
143
|
+
consensus: { approve: 0, total: 0 },
|
|
144
|
+
verdicts: [],
|
|
145
|
+
dissent: [],
|
|
146
|
+
gaps: [],
|
|
147
|
+
summary: "concilio vuoto: nessun valutatore",
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
// Grado di completamento = media PESATA dei punteggi.
|
|
151
|
+
const totalWeight = verdicts.reduce((s, v) => s + (v.weight > 0 ? v.weight : 1), 0);
|
|
152
|
+
const weighted = verdicts.reduce((s, v) => s + clampScore(v.score) * (v.weight > 0 ? v.weight : 1), 0);
|
|
153
|
+
const completion = clampScore(totalWeight > 0 ? weighted / totalWeight : 0);
|
|
154
|
+
const approveCount = verdicts.filter((v) => v.approve).length;
|
|
155
|
+
const dissent = verdicts.filter((v) => !v.approve).map((v) => v.title);
|
|
156
|
+
// Carenze deduplicate da tutti gli assi.
|
|
157
|
+
const gapSet = new Set();
|
|
158
|
+
for (const v of verdicts)
|
|
159
|
+
for (const g of v.gaps) {
|
|
160
|
+
const t = g.trim();
|
|
161
|
+
if (t)
|
|
162
|
+
gapSet.add(t);
|
|
163
|
+
}
|
|
164
|
+
const gaps = [...gapSet].slice(0, 16);
|
|
165
|
+
// Approvazione: soglia raggiunta E nessun dissenso (nessun blocco su un asse).
|
|
166
|
+
const approved = completion >= threshold && dissent.length === 0;
|
|
167
|
+
const summary = approved
|
|
168
|
+
? `concilio: APPROVATO (${completion}/100, ${approveCount}/${verdicts.length} a favore)`
|
|
169
|
+
: `concilio: NON approvato (${completion}/100, soglia ${threshold}; dissenso: ${dissent.join(", ") || "nessuno"})`;
|
|
170
|
+
return {
|
|
171
|
+
completion,
|
|
172
|
+
approved,
|
|
173
|
+
consensus: { approve: approveCount, total: verdicts.length },
|
|
174
|
+
verdicts,
|
|
175
|
+
dissent,
|
|
176
|
+
gaps,
|
|
177
|
+
summary,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
// Steer in notazione Danilov: se il concilio NON approva, fa continuare l'agente
|
|
181
|
+
// sui pezzi mancanti, riportando il grado di completamento e i dissensi per asse.
|
|
182
|
+
export function buildCouncilSteer(goal, verdict) {
|
|
183
|
+
const dissentRows = verdict.verdicts
|
|
184
|
+
.filter((v) => !v.approve)
|
|
185
|
+
.map((v) => `@asse[${v.axis}]: score=${v.score}/100, motivo="${v.rationale.replace(/"/g, "'").slice(0, 160)}"`)
|
|
186
|
+
.join("\n");
|
|
187
|
+
const gapRows = verdict.gaps.map((g, i) => `(${i + 1}) ${g}`).join(" ; ");
|
|
188
|
+
return `[VASCEND_CONCILIO]
|
|
189
|
+
INDICE
|
|
190
|
+
1 = goal
|
|
191
|
+
2 = verdetto
|
|
192
|
+
3 = dissenso
|
|
193
|
+
4 = azione
|
|
194
|
+
|
|
195
|
+
DEFINIZIONI
|
|
196
|
+
@goal[reale]: "${goal.replace(/"/g, "'").slice(0, 200)}"
|
|
197
|
+
@verdetto[grado]: completamento=${verdict.completion}/100, consenso=${verdict.consensus.approve}/${verdict.consensus.total}
|
|
198
|
+
${dissentRows || "@dissenso[nessuno]: tutti gli assi approvano tranne la soglia"}
|
|
199
|
+
@mancante[pezzi]: ${gapRows || "nessuna lacuna esplicita: alza il grado sugli assi in dissenso"}
|
|
200
|
+
@azione[continua]: chiudi i dissensi degli assi e copri le lacune, poi il concilio rivota
|
|
201
|
+
|
|
202
|
+
RELAZIONI
|
|
203
|
+
@R1: @dissenso[assi] -> @azione[continua] [ risolvi prima gli assi che non approvano ]
|
|
204
|
+
@R2: @mancante[pezzi] -> @goal[reale] [ copri le lacune finche' il concilio approva ]
|
|
205
|
+
|
|
206
|
+
OUTPUT: lavora sui pezzi mancanti e sui dissensi elencati, poi completa le attivita. Il concilio rivaluta: punta ad approvazione (grado alto e zero dissensi).`;
|
|
207
|
+
}
|
|
208
|
+
// ---------------------------------------------------------------------------
|
|
209
|
+
// Esecuzione: interroga il provider per ogni valutatore, in parallelo
|
|
210
|
+
// ---------------------------------------------------------------------------
|
|
211
|
+
// Parsing robusto del verdetto di un valutatore: estrae il primo blocco JSON e
|
|
212
|
+
// normalizza i campi. In caso di parsing fallito ritorna null (il chiamante usa
|
|
213
|
+
// un fallback prudente che NON blocca).
|
|
214
|
+
export function parseEvaluatorVerdict(text, ev) {
|
|
215
|
+
const m = /\{[\s\S]*\}/.exec(text);
|
|
216
|
+
if (!m)
|
|
217
|
+
return null;
|
|
218
|
+
try {
|
|
219
|
+
const raw = JSON.parse(m[0]);
|
|
220
|
+
const score = clampScore(Number(raw.score));
|
|
221
|
+
const gaps = Array.isArray(raw.gaps)
|
|
222
|
+
? raw.gaps.map(String).map((s) => s.trim()).filter(Boolean).slice(0, 12)
|
|
223
|
+
: [];
|
|
224
|
+
// approve: se esplicito usa quello; altrimenti deduci (score alto e niente lacune).
|
|
225
|
+
const approve = typeof raw.approve === "boolean" ? raw.approve : score >= 70 && gaps.length === 0;
|
|
226
|
+
const rationale = typeof raw.rationale === "string" ? raw.rationale.trim().slice(0, 400) : "";
|
|
227
|
+
return {
|
|
228
|
+
id: ev.id,
|
|
229
|
+
axis: ev.axis,
|
|
230
|
+
title: ev.title,
|
|
231
|
+
weight: ev.weight,
|
|
232
|
+
score,
|
|
233
|
+
approve,
|
|
234
|
+
rationale: rationale || (approve ? "approva" : "non approva"),
|
|
235
|
+
gaps,
|
|
236
|
+
fallback: false,
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
catch {
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
// Verdetto di fallback prudente: NON blocca (approve=true, score neutro) cosi'
|
|
244
|
+
// un valutatore in errore non ferma da solo la consegna; e' marcato fallback.
|
|
245
|
+
function fallbackVerdict(ev) {
|
|
246
|
+
return {
|
|
247
|
+
id: ev.id,
|
|
248
|
+
axis: ev.axis,
|
|
249
|
+
title: ev.title,
|
|
250
|
+
weight: ev.weight,
|
|
251
|
+
score: 100,
|
|
252
|
+
approve: true,
|
|
253
|
+
rationale: "valutatore non disponibile: verdetto neutro (non blocca)",
|
|
254
|
+
gaps: [],
|
|
255
|
+
fallback: true,
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
// Convoca il concilio: interroga il provider per OGNI valutatore IN PARALLELO,
|
|
259
|
+
// poi aggrega. Read-only e privo di tool. Robusto: ogni valutatore ha il suo
|
|
260
|
+
// fallback, e un errore globale non lancia (ritorna un verdetto neutro).
|
|
261
|
+
export async function runCouncil(input) {
|
|
262
|
+
const { harness, goal, evidence, signal } = input;
|
|
263
|
+
const threshold = clampThreshold(input.threshold ?? 75);
|
|
264
|
+
const evaluators = selectEvaluators(input.axes);
|
|
265
|
+
const resolved = harness.providers.resolve(harness.config.model);
|
|
266
|
+
if (!resolved) {
|
|
267
|
+
// Senza provider: concilio neutro che non blocca.
|
|
268
|
+
return aggregateVerdicts(evaluators.map(fallbackVerdict), threshold);
|
|
269
|
+
}
|
|
270
|
+
const reqBlock = input.requirements && input.requirements.length
|
|
271
|
+
? `\n\nREQUISITI ESTRATTI (riferimento per l'asse requisiti):\n${input.requirements.map((r, i) => `(${i + 1}) ${r}`).join("\n")}`
|
|
272
|
+
: "";
|
|
273
|
+
const ask = async (ev) => {
|
|
274
|
+
const user = `GOAL dell'utente:\n${goal}\n\n` +
|
|
275
|
+
`OPERATO DELL'AGENTE (sintesi + attivita + output):\n${evidence}${reqBlock}\n\n` +
|
|
276
|
+
`Valuta SOLO il tuo asse (${ev.axis}). Rispondi SOLO JSON con score, approve, rationale, gaps.`;
|
|
277
|
+
try {
|
|
278
|
+
const res = await resolved.provider.complete({
|
|
279
|
+
system: ev.system,
|
|
280
|
+
messages: [{ role: "user", content: [{ type: "text", text: user }] }],
|
|
281
|
+
tools: [],
|
|
282
|
+
model: resolved.modelId,
|
|
283
|
+
maxTokens: harness.config.maxTokens,
|
|
284
|
+
signal,
|
|
285
|
+
sessionId: `council-${ev.id}-${harness.session.id}`,
|
|
286
|
+
});
|
|
287
|
+
return parseEvaluatorVerdict(res.text, ev) ?? fallbackVerdict(ev);
|
|
288
|
+
}
|
|
289
|
+
catch {
|
|
290
|
+
return fallbackVerdict(ev);
|
|
291
|
+
}
|
|
292
|
+
};
|
|
293
|
+
// Interrogazione PARALLELA: ogni valutatore e' indipendente.
|
|
294
|
+
const verdicts = await Promise.all(evaluators.map(ask));
|
|
295
|
+
return aggregateVerdicts(verdicts, threshold);
|
|
296
|
+
}
|
|
297
|
+
function clampThreshold(n) {
|
|
298
|
+
if (!Number.isFinite(n))
|
|
299
|
+
return 75;
|
|
300
|
+
return Math.max(0, Math.min(100, Math.round(n)));
|
|
301
|
+
}
|
|
302
|
+
// Il concilio e' OPT-IN (default OFF): e' un layer di valutazione piu' pesante
|
|
303
|
+
// del singolo critico. Si attiva con TALOS_COUNCIL=1/on/true/yes.
|
|
304
|
+
export function councilEnabled(env) {
|
|
305
|
+
const v = (env["TALOS_COUNCIL"] ?? "").trim().toLowerCase();
|
|
306
|
+
return v === "1" || v === "on" || v === "true" || v === "yes";
|
|
307
|
+
}
|
|
308
|
+
// Soglia di approvazione 0-100 (default 75).
|
|
309
|
+
export function councilThreshold(env) {
|
|
310
|
+
const n = Number(env["TALOS_COUNCIL_THRESHOLD"]);
|
|
311
|
+
return Number.isFinite(n) && n >= 0 && n <= 100 ? Math.round(n) : 75;
|
|
312
|
+
}
|
|
313
|
+
// Quante volte al massimo rivotare/svegliare l'agente (anti-loop, default 1).
|
|
314
|
+
export function councilRounds(env) {
|
|
315
|
+
const n = Number(env["TALOS_COUNCIL_ROUNDS"]);
|
|
316
|
+
return Number.isInteger(n) && n >= 0 ? n : 1;
|
|
317
|
+
}
|
|
318
|
+
// Assi da convocare, da CSV (es. "completeness,requirements"); default tutti.
|
|
319
|
+
export function councilAxes(env) {
|
|
320
|
+
const csv = (env["TALOS_COUNCIL_AXES"] ?? "").split(",").map((s) => s.trim()).filter(Boolean);
|
|
321
|
+
return selectEvaluators(csv).map((e) => e.axis);
|
|
322
|
+
}
|
|
323
|
+
export function councilOptions(env) {
|
|
324
|
+
return {
|
|
325
|
+
enabled: councilEnabled(env),
|
|
326
|
+
threshold: councilThreshold(env),
|
|
327
|
+
rounds: councilRounds(env),
|
|
328
|
+
axes: councilAxes(env),
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
// Riga di sintesi human-readable del verdetto del concilio (per la TUI).
|
|
332
|
+
export function formatCouncilVerdict(verdict) {
|
|
333
|
+
const rows = verdict.verdicts
|
|
334
|
+
.map((v) => ` ${v.approve ? "✓" : "✗"} ${v.title}: ${v.score}/100${v.fallback ? " (neutro)" : ""}${v.rationale ? ` — ${v.rationale}` : ""}`)
|
|
335
|
+
.join("\n");
|
|
336
|
+
return `${verdict.summary}\n${rows}`;
|
|
337
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { Message } from "../core/types.js";
|
|
2
|
+
import type { RoomRecord } from "./room-memory.js";
|
|
3
|
+
export interface DecisionEvent {
|
|
4
|
+
readonly type: "decision.made";
|
|
5
|
+
readonly domain: "decisions";
|
|
6
|
+
readonly id: string;
|
|
7
|
+
readonly decision: string;
|
|
8
|
+
readonly reason: string;
|
|
9
|
+
readonly context: string;
|
|
10
|
+
readonly task: string | null;
|
|
11
|
+
readonly subject: string;
|
|
12
|
+
readonly summary: string;
|
|
13
|
+
readonly source: "user" | "assistant";
|
|
14
|
+
readonly createdAt: number;
|
|
15
|
+
}
|
|
16
|
+
export interface DecisionMatch {
|
|
17
|
+
readonly decision: string;
|
|
18
|
+
readonly reason: string;
|
|
19
|
+
readonly context: string;
|
|
20
|
+
readonly source: "user" | "assistant";
|
|
21
|
+
}
|
|
22
|
+
export declare function detectDecisions(text: string, source: "user" | "assistant"): readonly DecisionMatch[];
|
|
23
|
+
export declare function promoteDecisions(messages: readonly Message[], opts: {
|
|
24
|
+
task?: string | null;
|
|
25
|
+
ns?: string;
|
|
26
|
+
now: number;
|
|
27
|
+
startNum?: number;
|
|
28
|
+
}): readonly DecisionEvent[];
|
|
29
|
+
export declare function decisionToRoomRecord(ev: DecisionEvent): RoomRecord;
|
|
30
|
+
export interface DecisionSearchHit {
|
|
31
|
+
readonly event: DecisionEvent;
|
|
32
|
+
readonly score: number;
|
|
33
|
+
}
|
|
34
|
+
export declare class DecisionStore {
|
|
35
|
+
private readonly file;
|
|
36
|
+
private events;
|
|
37
|
+
private constructor();
|
|
38
|
+
static open(sessionDir: string, storeId: string): DecisionStore;
|
|
39
|
+
count(): number;
|
|
40
|
+
all(): readonly DecisionEvent[];
|
|
41
|
+
nextNum(ns?: string): number;
|
|
42
|
+
append(event: DecisionEvent): boolean;
|
|
43
|
+
appendAll(events: readonly DecisionEvent[]): readonly DecisionEvent[];
|
|
44
|
+
private reloadFromDisk;
|
|
45
|
+
byTask(task: string): readonly DecisionEvent[];
|
|
46
|
+
search(query: string, limit?: number): readonly DecisionSearchHit[];
|
|
47
|
+
indexBlock(): string;
|
|
48
|
+
}
|