@evalops/maestro 0.10.50 → 0.10.53
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 +1 -3
- package/dist/agent/agent-outcome.d.ts +54 -0
- package/dist/agent/agent-outcome.d.ts.map +1 -0
- package/dist/agent/agent-outcome.js +142 -0
- package/dist/agent/agent-outcome.js.map +1 -0
- package/dist/agent/agent-resume.d.ts.map +1 -1
- package/dist/agent/agent-resume.js +3 -3
- package/dist/agent/agent-resume.js.map +1 -1
- package/dist/agent/agent-run-summary.d.ts +37 -0
- package/dist/agent/agent-run-summary.d.ts.map +1 -0
- package/dist/agent/agent-run-summary.js +15 -0
- package/dist/agent/agent-run-summary.js.map +1 -0
- package/dist/agent/agent-work-board.d.ts +82 -0
- package/dist/agent/agent-work-board.d.ts.map +1 -0
- package/dist/agent/agent-work-board.js +312 -0
- package/dist/agent/agent-work-board.js.map +1 -0
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/auto-compaction.d.ts +7 -2
- package/dist/agent/auto-compaction.d.ts.map +1 -1
- package/dist/agent/auto-compaction.js +23 -10
- package/dist/agent/auto-compaction.js.map +1 -1
- package/dist/agent/compaction.d.ts.map +1 -1
- package/dist/agent/compaction.js +1 -1
- package/dist/agent/compaction.js.map +1 -1
- package/dist/agent/context-handoff.d.ts.map +1 -1
- package/dist/agent/context-handoff.js +2 -1
- package/dist/agent/context-handoff.js.map +1 -1
- package/dist/agent/index.d.ts +8 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +8 -1
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/mission-artifacts.d.ts +62 -0
- package/dist/agent/mission-artifacts.d.ts.map +1 -0
- package/dist/agent/mission-artifacts.js +438 -0
- package/dist/agent/mission-artifacts.js.map +1 -0
- package/dist/agent/mission-manifest.d.ts +139 -3
- package/dist/agent/mission-manifest.d.ts.map +1 -1
- package/dist/agent/mission-manifest.js +549 -3
- package/dist/agent/mission-manifest.js.map +1 -1
- package/dist/agent/mission-store.d.ts +80 -0
- package/dist/agent/mission-store.d.ts.map +1 -0
- package/dist/agent/mission-store.js +603 -0
- package/dist/agent/mission-store.js.map +1 -0
- package/dist/agent/modes.d.ts +3 -3
- package/dist/agent/modes.d.ts.map +1 -1
- package/dist/agent/modes.js +66 -3
- package/dist/agent/modes.js.map +1 -1
- package/dist/agent/oracle-consultation-policy.d.ts +22 -0
- package/dist/agent/oracle-consultation-policy.d.ts.map +1 -0
- package/dist/agent/oracle-consultation-policy.js +72 -0
- package/dist/agent/oracle-consultation-policy.js.map +1 -0
- package/dist/agent/oracle-policy-experiment.d.ts +27 -0
- package/dist/agent/oracle-policy-experiment.d.ts.map +1 -0
- package/dist/agent/oracle-policy-experiment.js +59 -0
- package/dist/agent/oracle-policy-experiment.js.map +1 -0
- package/dist/agent/oracle-policy-rollout.d.ts +42 -0
- package/dist/agent/oracle-policy-rollout.d.ts.map +1 -0
- package/dist/agent/oracle-policy-rollout.js +80 -0
- package/dist/agent/oracle-policy-rollout.js.map +1 -0
- package/dist/agent/plugin-agent-api.d.ts +13 -0
- package/dist/agent/plugin-agent-api.d.ts.map +1 -0
- package/dist/agent/plugin-agent-api.js +11 -0
- package/dist/agent/plugin-agent-api.js.map +1 -0
- package/dist/agent/plugin-agent-loader.d.ts +17 -0
- package/dist/agent/plugin-agent-loader.d.ts.map +1 -0
- package/dist/agent/plugin-agent-loader.js +81 -0
- package/dist/agent/plugin-agent-loader.js.map +1 -0
- package/dist/agent/plugin-agent-registry.d.ts +62 -0
- package/dist/agent/plugin-agent-registry.d.ts.map +1 -0
- package/dist/agent/plugin-agent-registry.js +109 -0
- package/dist/agent/plugin-agent-registry.js.map +1 -0
- package/dist/agent/profile-loader.d.ts +7 -0
- package/dist/agent/profile-loader.d.ts.map +1 -0
- package/dist/agent/profile-loader.js +115 -0
- package/dist/agent/profile-loader.js.map +1 -0
- package/dist/agent/profiles.d.ts +30 -0
- package/dist/agent/profiles.d.ts.map +1 -0
- package/dist/agent/profiles.js +146 -0
- package/dist/agent/profiles.js.map +1 -0
- package/dist/agent/prompt-cache.d.ts +0 -4
- package/dist/agent/prompt-cache.d.ts.map +1 -1
- package/dist/agent/prompt-cache.js +1 -7
- package/dist/agent/prompt-cache.js.map +1 -1
- package/dist/agent/providers/codex-app-server.d.ts.map +1 -1
- package/dist/agent/providers/codex-app-server.js +1 -3
- package/dist/agent/providers/codex-app-server.js.map +1 -1
- package/dist/agent/providers/google-gemini-cli.js +204 -107
- package/dist/agent/providers/google.js +101 -41
- package/dist/agent/providers/scripted.d.ts.map +1 -1
- package/dist/agent/providers/scripted.js +1 -3
- package/dist/agent/providers/scripted.js.map +1 -1
- package/dist/agent/providers/validation.d.ts.map +1 -1
- package/dist/agent/providers/validation.js +1 -3
- package/dist/agent/providers/validation.js.map +1 -1
- package/dist/agent/providers/vertex.js +204 -107
- package/dist/agent/routing-receipt.d.ts +34 -0
- package/dist/agent/routing-receipt.d.ts.map +1 -0
- package/dist/agent/routing-receipt.js +55 -0
- package/dist/agent/routing-receipt.js.map +1 -0
- package/dist/agent/skill-artifact-metadata.d.ts +14 -0
- package/dist/agent/skill-artifact-metadata.d.ts.map +1 -0
- package/dist/agent/skill-artifact-metadata.js +49 -0
- package/dist/agent/skill-artifact-metadata.js.map +1 -0
- package/dist/agent/snapshot-store.d.ts +32 -0
- package/dist/agent/snapshot-store.d.ts.map +1 -0
- package/dist/agent/snapshot-store.js +195 -0
- package/dist/agent/snapshot-store.js.map +1 -0
- package/dist/agent/specialist-profiles.d.ts +36 -0
- package/dist/agent/specialist-profiles.d.ts.map +1 -0
- package/dist/agent/specialist-profiles.js +159 -0
- package/dist/agent/specialist-profiles.js.map +1 -0
- package/dist/agent/subagent-specs.d.ts +5 -2
- package/dist/agent/subagent-specs.d.ts.map +1 -1
- package/dist/agent/subagent-specs.js +83 -10
- package/dist/agent/subagent-specs.js.map +1 -1
- package/dist/agent/swarm/coverage-gate.d.ts +37 -0
- package/dist/agent/swarm/coverage-gate.d.ts.map +1 -0
- package/dist/agent/swarm/coverage-gate.js +48 -0
- package/dist/agent/swarm/coverage-gate.js.map +1 -0
- package/dist/agent/swarm/executor.d.ts +1 -0
- package/dist/agent/swarm/executor.d.ts.map +1 -1
- package/dist/agent/swarm/executor.js +151 -15
- package/dist/agent/swarm/executor.js.map +1 -1
- package/dist/agent/swarm/orchestrator-prompt.d.ts +25 -0
- package/dist/agent/swarm/orchestrator-prompt.d.ts.map +1 -0
- package/dist/agent/swarm/orchestrator-prompt.js +48 -0
- package/dist/agent/swarm/orchestrator-prompt.js.map +1 -0
- package/dist/agent/swarm/plan-parser.d.ts.map +1 -1
- package/dist/agent/swarm/plan-parser.js +27 -2
- package/dist/agent/swarm/plan-parser.js.map +1 -1
- package/dist/agent/swarm/types.d.ts +17 -0
- package/dist/agent/swarm/types.d.ts.map +1 -1
- package/dist/agent/swarm/types.js.map +1 -1
- package/dist/agent/swarm/validation-directive.d.ts +21 -0
- package/dist/agent/swarm/validation-directive.d.ts.map +1 -0
- package/dist/agent/swarm/validation-directive.js +25 -0
- package/dist/agent/swarm/validation-directive.js.map +1 -0
- package/dist/agent/token-counter.d.ts +40 -0
- package/dist/agent/token-counter.d.ts.map +1 -0
- package/dist/agent/token-counter.js +74 -0
- package/dist/agent/token-counter.js.map +1 -0
- package/dist/agent/transport/events.d.ts +1 -1
- package/dist/agent/transport/events.d.ts.map +1 -1
- package/dist/agent/transport/events.js +1 -1
- package/dist/agent/transport/events.js.map +1 -1
- package/dist/agent/transport/tool-execution-bridge.d.ts.map +1 -1
- package/dist/agent/transport/tool-execution-bridge.js +4 -1
- package/dist/agent/transport/tool-execution-bridge.js.map +1 -1
- package/dist/agent/types.d.ts +4 -2
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/api/enterprise-routes.d.ts.map +1 -1
- package/dist/api/enterprise-routes.js +87 -10
- package/dist/api/enterprise-routes.js.map +1 -1
- package/dist/api/org-settings-merge.d.ts +12 -0
- package/dist/api/org-settings-merge.d.ts.map +1 -0
- package/dist/api/org-settings-merge.js +38 -0
- package/dist/api/org-settings-merge.js.map +1 -0
- package/dist/api/user-settings-merge.d.ts +16 -0
- package/dist/api/user-settings-merge.d.ts.map +1 -0
- package/dist/api/user-settings-merge.js +37 -0
- package/dist/api/user-settings-merge.js.map +1 -0
- package/dist/app-server/daemon-lifecycle-api.d.ts.map +1 -1
- package/dist/app-server/daemon-lifecycle-api.js +1 -3
- package/dist/app-server/daemon-lifecycle-api.js.map +1 -1
- package/dist/app-server/external-agent-import-api.d.ts.map +1 -1
- package/dist/app-server/external-agent-import-api.js +1 -3
- package/dist/app-server/external-agent-import-api.js.map +1 -1
- package/dist/app-server/network-governance-api.d.ts.map +1 -1
- package/dist/app-server/network-governance-api.js +1 -3
- package/dist/app-server/network-governance-api.js.map +1 -1
- package/dist/app-server/plugin-bundle-api.d.ts.map +1 -1
- package/dist/app-server/plugin-bundle-api.js +2 -3
- package/dist/app-server/plugin-bundle-api.js.map +1 -1
- package/dist/app-server/policy-control-api.d.ts.map +1 -1
- package/dist/app-server/policy-control-api.js +1 -3
- package/dist/app-server/policy-control-api.js.map +1 -1
- package/dist/app-server/protocol-modes-api.d.ts.map +1 -1
- package/dist/app-server/protocol-modes-api.js +1 -3
- package/dist/app-server/protocol-modes-api.js.map +1 -1
- package/dist/app-server/session-api.d.ts.map +1 -1
- package/dist/app-server/session-api.js +15 -2
- package/dist/app-server/session-api.js.map +1 -1
- package/dist/audit/logger.d.ts +5 -5
- package/dist/cli/args.d.ts +4 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +33 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/commands/a2a.d.ts.map +1 -1
- package/dist/cli/commands/a2a.js +1 -3
- package/dist/cli/commands/a2a.js.map +1 -1
- package/dist/cli/commands/mission.d.ts +4 -0
- package/dist/cli/commands/mission.d.ts.map +1 -0
- package/dist/cli/commands/mission.js +196 -0
- package/dist/cli/commands/mission.js.map +1 -0
- package/dist/cli/commands/value.d.ts +10 -0
- package/dist/cli/commands/value.d.ts.map +1 -0
- package/dist/cli/commands/value.js +33 -0
- package/dist/cli/commands/value.js.map +1 -0
- package/dist/cli/direct-runtime-command.d.ts +1 -0
- package/dist/cli/direct-runtime-command.d.ts.map +1 -1
- package/dist/cli/direct-runtime-command.js +25 -3
- package/dist/cli/direct-runtime-command.js.map +1 -1
- package/dist/cli/headless-protocol.d.ts.map +1 -1
- package/dist/cli/headless-protocol.js +1 -3
- package/dist/cli/headless-protocol.js.map +1 -1
- package/dist/cli/headless.d.ts +3 -19
- package/dist/cli/headless.d.ts.map +1 -1
- package/dist/cli/headless.js +8 -619
- package/dist/cli/headless.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +13 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/native-tui-launcher.d.ts +126 -0
- package/dist/cli/native-tui-launcher.d.ts.map +1 -0
- package/dist/cli/native-tui-launcher.js +425 -0
- package/dist/cli/native-tui-launcher.js.map +1 -0
- package/dist/cli/rpc-mode.d.ts +3 -27
- package/dist/cli/rpc-mode.d.ts.map +1 -1
- package/dist/cli/rpc-mode.js +8 -177
- package/dist/cli/rpc-mode.js.map +1 -1
- package/dist/cli/session.d.ts +11 -19
- package/dist/cli/session.d.ts.map +1 -1
- package/dist/cli/session.js +6 -64
- package/dist/cli/session.js.map +1 -1
- package/dist/cli/system-prompt.d.ts.map +1 -1
- package/dist/cli/system-prompt.js +38 -7
- package/dist/cli/system-prompt.js.map +1 -1
- package/dist/cli-command-runtime.d.ts.map +1 -1
- package/dist/cli-command-runtime.js +26 -24
- package/dist/cli-command-runtime.js.map +1 -1
- package/dist/cli-runtime.js +41729 -121859
- package/dist/codex/app-server-client.d.ts.map +1 -1
- package/dist/codex/app-server-client.js +1 -3
- package/dist/codex/app-server-client.js.map +1 -1
- package/dist/codex/compatibility.d.ts.map +1 -1
- package/dist/codex/compatibility.js +1 -3
- package/dist/codex/compatibility.js.map +1 -1
- package/dist/codex/subagent-dispatch-table.d.ts +8 -0
- package/dist/codex/subagent-dispatch-table.d.ts.map +1 -1
- package/dist/codex/subagent-dispatch-table.js +23 -0
- package/dist/codex/subagent-dispatch-table.js.map +1 -1
- package/dist/config/env-vars.d.ts +12 -0
- package/dist/config/env-vars.d.ts.map +1 -1
- package/dist/config/env-vars.js +12 -0
- package/dist/config/env-vars.js.map +1 -1
- package/dist/config/ui-state.d.ts +32 -0
- package/dist/config/ui-state.d.ts.map +1 -0
- package/dist/config/ui-state.js +88 -0
- package/dist/config/ui-state.js.map +1 -0
- package/dist/context/manifest.d.ts.map +1 -1
- package/dist/context/manifest.js +1 -3
- package/dist/context/manifest.js.map +1 -1
- package/dist/context/repo-map.d.ts.map +1 -1
- package/dist/context/repo-map.js +1 -7
- package/dist/context/repo-map.js.map +1 -1
- package/dist/context/token-optimizer.d.ts.map +1 -1
- package/dist/context/token-optimizer.js +1 -8
- package/dist/context/token-optimizer.js.map +1 -1
- package/dist/conversation/render-model.d.ts +0 -36
- package/dist/conversation/render-model.d.ts.map +1 -1
- package/dist/conversation/render-model.js +1 -3
- package/dist/conversation/render-model.js.map +1 -1
- package/dist/customer-value/ambient-learning.d.ts +75 -0
- package/dist/customer-value/ambient-learning.d.ts.map +1 -0
- package/dist/customer-value/ambient-learning.js +472 -0
- package/dist/customer-value/ambient-learning.js.map +1 -0
- package/dist/customer-value/internal-helpers.d.ts +13 -0
- package/dist/customer-value/internal-helpers.d.ts.map +1 -0
- package/dist/customer-value/internal-helpers.js +70 -0
- package/dist/customer-value/internal-helpers.js.map +1 -0
- package/dist/customer-value/report.d.ts +282 -0
- package/dist/customer-value/report.d.ts.map +1 -0
- package/dist/customer-value/report.js +2085 -0
- package/dist/customer-value/report.js.map +1 -0
- package/dist/db/schema.d.ts +7 -3
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js.map +1 -1
- package/dist/evalops/agent-bootstrap.d.ts.map +1 -1
- package/dist/evalops/agent-bootstrap.js +1 -3
- package/dist/evalops/agent-bootstrap.js.map +1 -1
- package/dist/evalops/agent-mcp-metadata.d.ts.map +1 -1
- package/dist/evalops/agent-mcp-metadata.js +1 -3
- package/dist/evalops/agent-mcp-metadata.js.map +1 -1
- package/dist/hooks/notification-hooks.d.ts +1 -1
- package/dist/hooks/notification-hooks.d.ts.map +1 -1
- package/dist/hooks/notification-hooks.js.map +1 -1
- package/dist/hooks/tui-surface.d.ts +35 -0
- package/dist/hooks/tui-surface.d.ts.map +1 -0
- package/dist/hooks/tui-surface.js +11 -0
- package/dist/hooks/tui-surface.js.map +1 -0
- package/dist/hooks/types.d.ts +2 -1
- package/dist/hooks/types.d.ts.map +1 -1
- package/dist/hooks/types.js.map +1 -1
- package/dist/hooks/typescript-loader.d.ts.map +1 -1
- package/dist/hooks/typescript-loader.js.map +1 -1
- package/dist/hooks/ui-context.d.ts.map +1 -1
- package/dist/hooks/ui-context.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/installers/maestro-review-workflow.d.ts +38 -0
- package/dist/installers/maestro-review-workflow.d.ts.map +1 -0
- package/dist/installers/maestro-review-workflow.js +163 -0
- package/dist/installers/maestro-review-workflow.js.map +1 -0
- package/dist/load-env.d.ts.map +1 -1
- package/dist/load-env.js +2 -1
- package/dist/load-env.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +201 -840
- package/dist/main.js.map +1 -1
- package/dist/mcp/config.d.ts.map +1 -1
- package/dist/mcp/config.js +1 -3
- package/dist/mcp/config.js.map +1 -1
- package/dist/mcp/elicitation.d.ts.map +1 -1
- package/dist/mcp/elicitation.js +1 -3
- package/dist/mcp/elicitation.js.map +1 -1
- package/dist/mcp/official-registry.d.ts.map +1 -1
- package/dist/mcp/official-registry.js +1 -3
- package/dist/mcp/official-registry.js.map +1 -1
- package/dist/mcp/workspace-trust.d.ts.map +1 -1
- package/dist/mcp/workspace-trust.js +1 -3
- package/dist/mcp/workspace-trust.js.map +1 -1
- package/dist/memory/service-client.d.ts.map +1 -1
- package/dist/memory/service-client.js +1 -3
- package/dist/memory/service-client.js.map +1 -1
- package/dist/models/config-loader.d.ts +5 -5
- package/dist/models/config-loader.d.ts.map +1 -1
- package/dist/models/config-loader.js +1 -3
- package/dist/models/config-loader.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/index.d.ts +46 -0
- package/dist/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/index.js +3 -0
- package/dist/node_modules/@evalops/contracts/dist/index.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts +284 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.js +41 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.d.ts +61 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.d.ts.map +1 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.js +183 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.js.map +1 -0
- package/dist/node_modules/@evalops/contracts/dist/schemas.d.ts +986 -0
- package/dist/node_modules/@evalops/contracts/dist/schemas.d.ts.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/schemas.js +49 -0
- package/dist/node_modules/@evalops/contracts/dist/schemas.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/token-estimation.d.ts +56 -0
- package/dist/node_modules/@evalops/contracts/dist/token-estimation.d.ts.map +1 -0
- package/dist/node_modules/@evalops/contracts/dist/token-estimation.js +86 -0
- package/dist/node_modules/@evalops/contracts/dist/token-estimation.js.map +1 -0
- package/dist/node_modules/@evalops/contracts/package.json +1 -1
- package/dist/oauth/connectors.d.ts.map +1 -1
- package/dist/oauth/connectors.js +1 -3
- package/dist/oauth/connectors.js.map +1 -1
- package/dist/oauth/evalops.d.ts.map +1 -1
- package/dist/oauth/evalops.js +1 -3
- package/dist/oauth/evalops.js.map +1 -1
- package/dist/packages/discovery.d.ts.map +1 -1
- package/dist/packages/discovery.js +1 -0
- package/dist/packages/discovery.js.map +1 -1
- package/dist/packages/inspection.d.ts.map +1 -1
- package/dist/packages/inspection.js +7 -1
- package/dist/packages/inspection.js.map +1 -1
- package/dist/packages/loader.d.ts.map +1 -1
- package/dist/packages/loader.js +8 -1
- package/dist/packages/loader.js.map +1 -1
- package/dist/packages/runtime.d.ts +1 -0
- package/dist/packages/runtime.d.ts.map +1 -1
- package/dist/packages/runtime.js +9 -1
- package/dist/packages/runtime.js.map +1 -1
- package/dist/packages/types.d.ts +6 -0
- package/dist/packages/types.d.ts.map +1 -1
- package/dist/packages/types.js.map +1 -1
- package/dist/platform/a2a-client.d.ts.map +1 -1
- package/dist/platform/a2a-client.js +1 -3
- package/dist/platform/a2a-client.js.map +1 -1
- package/dist/platform/a2a-cockpit.d.ts +1 -0
- package/dist/platform/a2a-cockpit.d.ts.map +1 -1
- package/dist/platform/a2a-cockpit.js +42 -11
- package/dist/platform/a2a-cockpit.js.map +1 -1
- package/dist/platform/a2a-completion-audit.d.ts +1 -1
- package/dist/platform/a2a-completion-audit.d.ts.map +1 -1
- package/dist/platform/a2a-completion-audit.js +7 -11
- package/dist/platform/a2a-completion-audit.js.map +1 -1
- package/dist/platform/a2a-maestro-peer.js +16 -0
- package/dist/platform/a2a-maestro-peer.js.map +1 -1
- package/dist/platform/a2a-peer-pairing.d.ts.map +1 -1
- package/dist/platform/a2a-peer-pairing.js +1 -3
- package/dist/platform/a2a-peer-pairing.js.map +1 -1
- package/dist/platform/a2a-peer-registry.d.ts.map +1 -1
- package/dist/platform/a2a-peer-registry.js +1 -3
- package/dist/platform/a2a-peer-registry.js.map +1 -1
- package/dist/platform/a2a-task-ledger.d.ts +20 -0
- package/dist/platform/a2a-task-ledger.d.ts.map +1 -1
- package/dist/platform/a2a-task-ledger.js +207 -11
- package/dist/platform/a2a-task-ledger.js.map +1 -1
- package/dist/platform/a2a-work-graph.d.ts.map +1 -1
- package/dist/platform/a2a-work-graph.js +1 -3
- package/dist/platform/a2a-work-graph.js.map +1 -1
- package/dist/platform/operating-layer.d.ts.map +1 -1
- package/dist/platform/operating-layer.js +14 -8
- package/dist/platform/operating-layer.js.map +1 -1
- package/dist/platform/tool-execution-client.d.ts.map +1 -1
- package/dist/platform/tool-execution-client.js +19 -2
- package/dist/platform/tool-execution-client.js.map +1 -1
- package/dist/providers/auth.d.ts.map +1 -1
- package/dist/providers/auth.js +1 -3
- package/dist/providers/auth.js.map +1 -1
- package/dist/runtime/agent-runtime.d.ts +22 -6
- package/dist/runtime/agent-runtime.d.ts.map +1 -1
- package/dist/runtime/agent-runtime.js +1 -1
- package/dist/runtime/agent-runtime.js.map +1 -1
- package/dist/runtime/env.d.ts +10 -1
- package/dist/runtime/env.d.ts.map +1 -1
- package/dist/runtime/env.js +64 -1
- package/dist/runtime/env.js.map +1 -1
- package/dist/runtime/prompt-queue.d.ts.map +1 -0
- package/dist/runtime/prompt-queue.js.map +1 -0
- package/dist/safety/policy.d.ts.map +1 -1
- package/dist/safety/policy.js +1 -4
- package/dist/safety/policy.js.map +1 -1
- package/dist/sandbox/docker-sandbox.d.ts.map +1 -1
- package/dist/sandbox/docker-sandbox.js +6 -1
- package/dist/sandbox/docker-sandbox.js.map +1 -1
- package/dist/server/handlers/chat-ws.d.ts +2 -1
- package/dist/server/handlers/chat-ws.d.ts.map +1 -1
- package/dist/server/handlers/chat-ws.js +150 -5
- package/dist/server/handlers/chat-ws.js.map +1 -1
- package/dist/server/handlers/chat.d.ts.map +1 -1
- package/dist/server/handlers/chat.js +78 -5
- package/dist/server/handlers/chat.js.map +1 -1
- package/dist/server/handlers/hosted-runner-drain.d.ts.map +1 -1
- package/dist/server/handlers/hosted-runner-drain.js +1 -3
- package/dist/server/handlers/hosted-runner-drain.js.map +1 -1
- package/dist/server/handlers/package.d.ts.map +1 -1
- package/dist/server/handlers/package.js +1 -0
- package/dist/server/handlers/package.js.map +1 -1
- package/dist/server/handlers/platform-a2a-push.d.ts.map +1 -1
- package/dist/server/handlers/platform-a2a-push.js +53 -2
- package/dist/server/handlers/platform-a2a-push.js.map +1 -1
- package/dist/server/handlers/queue.js +1 -1
- package/dist/server/handlers/queue.js.map +1 -1
- package/dist/server/handlers/runtime-app-server-ws.d.ts.map +1 -1
- package/dist/server/handlers/runtime-app-server-ws.js +1 -3
- package/dist/server/handlers/runtime-app-server-ws.js.map +1 -1
- package/dist/server/handlers/ui.js +1 -1
- package/dist/server/handlers/ui.js.map +1 -1
- package/dist/server/handlers/zen.js +1 -1
- package/dist/server/handlers/zen.js.map +1 -1
- package/dist/server/headless-runtime-service.d.ts +16 -0
- package/dist/server/headless-runtime-service.d.ts.map +1 -1
- package/dist/server/headless-runtime-service.js +232 -206
- package/dist/server/headless-runtime-service.js.map +1 -1
- package/dist/server/hosted-agent-runtime-progress.d.ts.map +1 -1
- package/dist/server/hosted-agent-runtime-progress.js +12 -3
- package/dist/server/hosted-agent-runtime-progress.js.map +1 -1
- package/dist/server/hosted-session-manager.d.ts +3 -0
- package/dist/server/hosted-session-manager.d.ts.map +1 -1
- package/dist/server/hosted-session-manager.js +26 -0
- package/dist/server/hosted-session-manager.js.map +1 -1
- package/dist/server/model-selection.d.ts +1 -0
- package/dist/server/model-selection.d.ts.map +1 -1
- package/dist/server/model-selection.js +4 -0
- package/dist/server/model-selection.js.map +1 -1
- package/dist/server/pending-request-payload.d.ts.map +1 -1
- package/dist/server/pending-request-payload.js +1 -3
- package/dist/server/pending-request-payload.js.map +1 -1
- package/dist/server/route-auth.d.ts.map +1 -1
- package/dist/server/route-auth.js +2 -0
- package/dist/server/route-auth.js.map +1 -1
- package/dist/server/session-serialization.d.ts.map +1 -1
- package/dist/server/session-serialization.js +4 -3
- package/dist/server/session-serialization.js.map +1 -1
- package/dist/server/session-timeline.d.ts.map +1 -1
- package/dist/server/session-timeline.js +1 -1
- package/dist/server/session-timeline.js.map +1 -1
- package/dist/server/sse-session.d.ts +2 -0
- package/dist/server/sse-session.d.ts.map +1 -1
- package/dist/server/sse-session.js +3 -0
- package/dist/server/sse-session.js.map +1 -1
- package/dist/server/stores/ui-store.d.ts +1 -1
- package/dist/server/stores/ui-store.d.ts.map +1 -1
- package/dist/server/stores/ui-store.js.map +1 -1
- package/dist/server/utils/token-estimator.d.ts +2 -2
- package/dist/server/utils/token-estimator.d.ts.map +1 -1
- package/dist/server/utils/token-estimator.js +2 -12
- package/dist/server/utils/token-estimator.js.map +1 -1
- package/dist/server/validation.d.ts +54 -0
- package/dist/server/validation.d.ts.map +1 -1
- package/dist/services/compliance/normalize.d.ts.map +1 -1
- package/dist/services/compliance/normalize.js +1 -3
- package/dist/services/compliance/normalize.js.map +1 -1
- package/dist/services/image-providers/cost.d.ts +70 -0
- package/dist/services/image-providers/cost.d.ts.map +1 -0
- package/dist/services/image-providers/cost.js +164 -0
- package/dist/services/image-providers/cost.js.map +1 -0
- package/dist/services/image-providers/flux.d.ts +40 -0
- package/dist/services/image-providers/flux.d.ts.map +1 -0
- package/dist/services/image-providers/flux.js +99 -0
- package/dist/services/image-providers/flux.js.map +1 -0
- package/dist/services/image-providers/index.d.ts +24 -0
- package/dist/services/image-providers/index.d.ts.map +1 -0
- package/dist/services/image-providers/index.js +27 -0
- package/dist/services/image-providers/index.js.map +1 -0
- package/dist/services/image-providers/masks.d.ts +51 -0
- package/dist/services/image-providers/masks.d.ts.map +1 -0
- package/dist/services/image-providers/masks.js +132 -0
- package/dist/services/image-providers/masks.js.map +1 -0
- package/dist/services/image-providers/openai.d.ts +35 -0
- package/dist/services/image-providers/openai.d.ts.map +1 -0
- package/dist/services/image-providers/openai.js +93 -0
- package/dist/services/image-providers/openai.js.map +1 -0
- package/dist/services/image-providers/types.d.ts +61 -0
- package/dist/services/image-providers/types.d.ts.map +1 -0
- package/dist/services/image-providers/types.js +17 -0
- package/dist/services/image-providers/types.js.map +1 -0
- package/dist/services/intelligent-router/index.d.ts +1 -0
- package/dist/services/intelligent-router/index.d.ts.map +1 -1
- package/dist/services/intelligent-router/index.js +1 -0
- package/dist/services/intelligent-router/index.js.map +1 -1
- package/dist/services/intelligent-router/normalize.d.ts +1 -0
- package/dist/services/intelligent-router/normalize.d.ts.map +1 -1
- package/dist/services/intelligent-router/normalize.js +18 -3
- package/dist/services/intelligent-router/normalize.js.map +1 -1
- package/dist/services/intelligent-router/outcome.d.ts +19 -0
- package/dist/services/intelligent-router/outcome.d.ts.map +1 -0
- package/dist/services/intelligent-router/outcome.js +51 -0
- package/dist/services/intelligent-router/outcome.js.map +1 -0
- package/dist/services/intelligent-router/recorder.d.ts +2 -0
- package/dist/services/intelligent-router/recorder.d.ts.map +1 -1
- package/dist/services/intelligent-router/recorder.js +72 -1
- package/dist/services/intelligent-router/recorder.js.map +1 -1
- package/dist/services/intelligent-router/service.d.ts +1 -0
- package/dist/services/intelligent-router/service.d.ts.map +1 -1
- package/dist/services/intelligent-router/service.js +60 -11
- package/dist/services/intelligent-router/service.js.map +1 -1
- package/dist/services/intelligent-router/types.d.ts +18 -0
- package/dist/services/intelligent-router/types.d.ts.map +1 -1
- package/dist/services/intelligent-router/types.js.map +1 -1
- package/dist/services/revenue-attribution/normalize.d.ts.map +1 -1
- package/dist/services/revenue-attribution/normalize.js +1 -3
- package/dist/services/revenue-attribution/normalize.js.map +1 -1
- package/dist/services/traces/normalize.d.ts.map +1 -1
- package/dist/services/traces/normalize.js +1 -3
- package/dist/services/traces/normalize.js.map +1 -1
- package/dist/services/workspace-config/middleware.d.ts +2 -0
- package/dist/services/workspace-config/middleware.d.ts.map +1 -1
- package/dist/services/workspace-config/middleware.js +25 -28
- package/dist/services/workspace-config/middleware.js.map +1 -1
- package/dist/services/workspace-config/normalize.d.ts.map +1 -1
- package/dist/services/workspace-config/normalize.js +1 -3
- package/dist/services/workspace-config/normalize.js.map +1 -1
- package/dist/session/agent-lineage-projection.d.ts +30 -0
- package/dist/session/agent-lineage-projection.d.ts.map +1 -0
- package/dist/session/agent-lineage-projection.js +109 -0
- package/dist/session/agent-lineage-projection.js.map +1 -0
- package/dist/session/manager.d.ts +3 -0
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +24 -0
- package/dist/session/manager.js.map +1 -1
- package/dist/session/session-graph-projection.d.ts +11 -0
- package/dist/session/session-graph-projection.d.ts.map +1 -1
- package/dist/session/session-graph-projection.js +28 -0
- package/dist/session/session-graph-projection.js.map +1 -1
- package/dist/session/types.d.ts +2 -0
- package/dist/session/types.d.ts.map +1 -1
- package/dist/session/types.js.map +1 -1
- package/dist/telemetry/agent-workforce-native-event.d.ts.map +1 -1
- package/dist/telemetry/agent-workforce-native-event.js +1 -3
- package/dist/telemetry/agent-workforce-native-event.js.map +1 -1
- package/dist/telemetry/maestro-event-bus.d.ts +1 -1
- package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
- package/dist/telemetry/maestro-event-bus.js +42 -81
- package/dist/telemetry/maestro-event-bus.js.map +1 -1
- package/dist/telemetry/maestro-platform-replay-fixture.d.ts.map +1 -1
- package/dist/telemetry/maestro-platform-replay-fixture.js +1 -3
- package/dist/telemetry/maestro-platform-replay-fixture.js.map +1 -1
- package/dist/telemetry/maestro-publisher-conformance-fixture.js.map +1 -1
- package/dist/telemetry/oracle-policy.d.ts +6 -0
- package/dist/telemetry/oracle-policy.d.ts.map +1 -0
- package/dist/telemetry/oracle-policy.js +17 -0
- package/dist/telemetry/oracle-policy.js.map +1 -0
- package/dist/telemetry/wide-events.d.ts +1 -1
- package/dist/telemetry/wide-events.d.ts.map +1 -1
- package/dist/telemetry/wide-events.js.map +1 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +54 -43
- package/dist/telemetry.js.map +1 -1
- package/dist/theme/theme-loader.d.ts.map +1 -1
- package/dist/theme/theme-loader.js +1 -3
- package/dist/theme/theme-loader.js.map +1 -1
- package/dist/theme/theme.d.ts +2 -8
- package/dist/theme/theme.d.ts.map +1 -1
- package/dist/theme/theme.js +7 -0
- package/dist/theme/theme.js.map +1 -1
- package/dist/theme/tui-theme-helpers.d.ts +2 -1
- package/dist/theme/tui-theme-helpers.d.ts.map +1 -1
- package/dist/theme/tui-theme-helpers.js.map +1 -1
- package/dist/theme/tui-theme-types.d.ts +39 -0
- package/dist/theme/tui-theme-types.d.ts.map +1 -0
- package/dist/theme/tui-theme-types.js +10 -0
- package/dist/theme/tui-theme-types.js.map +1 -0
- package/dist/tools/apply-patch.d.ts.map +1 -1
- package/dist/tools/apply-patch.js +76 -8
- package/dist/tools/apply-patch.js.map +1 -1
- package/dist/tools/diff-preview.d.ts.map +1 -1
- package/dist/tools/diff-preview.js +10 -1
- package/dist/tools/diff-preview.js.map +1 -1
- package/dist/tools/edit.d.ts.map +1 -1
- package/dist/tools/edit.js +17 -0
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/index.d.ts +199 -160
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/lazy-registry.d.ts.map +1 -1
- package/dist/tools/lazy-registry.js +1 -0
- package/dist/tools/lazy-registry.js.map +1 -1
- package/dist/tools/oracle.d.ts +9 -0
- package/dist/tools/oracle.d.ts.map +1 -1
- package/dist/tools/oracle.js +26 -24
- package/dist/tools/oracle.js.map +1 -1
- package/dist/tools/painter.d.ts +73 -0
- package/dist/tools/painter.d.ts.map +1 -0
- package/dist/tools/painter.js +283 -0
- package/dist/tools/painter.js.map +1 -0
- package/dist/tools/typebox-tool.d.ts.map +1 -1
- package/dist/tools/typebox-tool.js +1 -1
- package/dist/tools/typebox-tool.js.map +1 -1
- package/dist/tools/write.d.ts.map +1 -1
- package/dist/tools/write.js +9 -0
- package/dist/tools/write.js.map +1 -1
- package/dist/undo/tracker.d.ts +5 -0
- package/dist/undo/tracker.d.ts.map +1 -1
- package/dist/undo/tracker.js +13 -0
- package/dist/undo/tracker.js.map +1 -1
- package/dist/utils/fs.d.ts +1 -1
- package/dist/utils/fs.d.ts.map +1 -1
- package/dist/utils/fs.js +29 -2
- package/dist/utils/fs.js.map +1 -1
- package/dist/utils/git-stash.d.ts.map +1 -1
- package/dist/utils/git-stash.js +15 -8
- package/dist/utils/git-stash.js.map +1 -1
- package/dist/utils/json.d.ts +11 -0
- package/dist/utils/json.d.ts.map +1 -1
- package/dist/utils/json.js +9 -0
- package/dist/utils/json.js.map +1 -1
- package/dist/utils/shell-env.d.ts.map +1 -1
- package/dist/utils/shell-env.js +2 -0
- package/dist/utils/shell-env.js.map +1 -1
- package/dist/utils/terminal-image.d.ts +52 -0
- package/dist/utils/terminal-image.d.ts.map +1 -0
- package/dist/utils/terminal-image.js +95 -0
- package/dist/utils/terminal-image.js.map +1 -0
- package/dist/utils/terminal-text.d.ts +11 -0
- package/dist/utils/terminal-text.d.ts.map +1 -0
- package/dist/utils/terminal-text.js +21 -0
- package/dist/utils/terminal-text.js.map +1 -0
- package/dist/utils/url-extractor-git.d.ts +26 -0
- package/dist/utils/url-extractor-git.d.ts.map +1 -0
- package/dist/utils/url-extractor-git.js +259 -0
- package/dist/utils/url-extractor-git.js.map +1 -0
- package/dist/utils/url-extractor.d.ts.map +1 -1
- package/dist/utils/url-extractor.js +23 -251
- package/dist/utils/url-extractor.js.map +1 -1
- package/dist/version.json +2 -2
- package/dist/web-server.d.ts.map +1 -1
- package/dist/web-server.js +24 -2
- package/dist/web-server.js.map +1 -1
- package/package.json +312 -306
- package/skills/incident-triage/SKILL.md +20 -1
- package/skills/install-code-review/SKILL.md +69 -0
- package/skills/security-review/SKILL.md +68 -0
- package/skills/security-review/reference/rubric.md +85 -0
- package/dist/cli/commands/agents.d.ts +0 -20
- package/dist/cli/commands/agents.d.ts.map +0 -1
- package/dist/cli/commands/agents.js +0 -280
- package/dist/cli/commands/agents.js.map +0 -1
- package/dist/cli/commands/anthropic.d.ts +0 -2
- package/dist/cli/commands/anthropic.d.ts.map +0 -1
- package/dist/cli/commands/anthropic.js +0 -6
- package/dist/cli/commands/anthropic.js.map +0 -1
- package/dist/cli/commands/cost.d.ts +0 -13
- package/dist/cli/commands/cost.d.ts.map +0 -1
- package/dist/cli/commands/cost.js +0 -143
- package/dist/cli/commands/cost.js.map +0 -1
- package/dist/cli/commands/exec-constants.d.ts +0 -3
- package/dist/cli/commands/exec-constants.d.ts.map +0 -1
- package/dist/cli/commands/exec-constants.js +0 -3
- package/dist/cli/commands/exec-constants.js.map +0 -1
- package/dist/cli/commands/exec.d.ts +0 -19
- package/dist/cli/commands/exec.d.ts.map +0 -1
- package/dist/cli/commands/exec.js +0 -207
- package/dist/cli/commands/exec.js.map +0 -1
- package/dist/cli/commands/hooks.d.ts +0 -2
- package/dist/cli/commands/hooks.d.ts.map +0 -1
- package/dist/cli/commands/hooks.js +0 -25
- package/dist/cli/commands/hooks.js.map +0 -1
- package/dist/cli/commands/hosted-runner.d.ts +0 -25
- package/dist/cli/commands/hosted-runner.d.ts.map +0 -1
- package/dist/cli/commands/hosted-runner.js +0 -278
- package/dist/cli/commands/hosted-runner.js.map +0 -1
- package/dist/cli/commands/memory.d.ts +0 -2
- package/dist/cli/commands/memory.d.ts.map +0 -1
- package/dist/cli/commands/memory.js +0 -208
- package/dist/cli/commands/memory.js.map +0 -1
- package/dist/cli/commands/models.d.ts +0 -3
- package/dist/cli/commands/models.d.ts.map +0 -1
- package/dist/cli/commands/models.js +0 -154
- package/dist/cli/commands/models.js.map +0 -1
- package/dist/cli/commands/modes.d.ts +0 -8
- package/dist/cli/commands/modes.d.ts.map +0 -1
- package/dist/cli/commands/modes.js +0 -151
- package/dist/cli/commands/modes.js.map +0 -1
- package/dist/cli/commands/openai.d.ts +0 -2
- package/dist/cli/commands/openai.d.ts.map +0 -1
- package/dist/cli/commands/openai.js +0 -116
- package/dist/cli/commands/openai.js.map +0 -1
- package/dist/cli/commands/session-transfer.d.ts +0 -5
- package/dist/cli/commands/session-transfer.d.ts.map +0 -1
- package/dist/cli/commands/session-transfer.js +0 -43
- package/dist/cli/commands/session-transfer.js.map +0 -1
- package/dist/cli/commands/sessions.d.ts +0 -8
- package/dist/cli/commands/sessions.d.ts.map +0 -1
- package/dist/cli/commands/sessions.js +0 -152
- package/dist/cli/commands/sessions.js.map +0 -1
- package/dist/cli/commands/skill.d.ts +0 -10
- package/dist/cli/commands/skill.d.ts.map +0 -1
- package/dist/cli/commands/skill.js +0 -303
- package/dist/cli/commands/skill.js.map +0 -1
- package/dist/cli/commands/stats.d.ts +0 -7
- package/dist/cli/commands/stats.d.ts.map +0 -1
- package/dist/cli/commands/stats.js +0 -167
- package/dist/cli/commands/stats.js.map +0 -1
- package/dist/cli/commands/status.d.ts +0 -2
- package/dist/cli/commands/status.d.ts.map +0 -1
- package/dist/cli/commands/status.js +0 -11
- package/dist/cli/commands/status.js.map +0 -1
- package/dist/cli/commands/update.d.ts +0 -12
- package/dist/cli/commands/update.d.ts.map +0 -1
- package/dist/cli/commands/update.js +0 -148
- package/dist/cli/commands/update.js.map +0 -1
- package/dist/cli-tui/about-view.d.ts +0 -48
- package/dist/cli-tui/about-view.d.ts.map +0 -1
- package/dist/cli-tui/about-view.js +0 -206
- package/dist/cli-tui/about-view.js.map +0 -1
- package/dist/cli-tui/agent-event-router.d.ts +0 -28
- package/dist/cli-tui/agent-event-router.d.ts.map +0 -1
- package/dist/cli-tui/agent-event-router.js +0 -126
- package/dist/cli-tui/agent-event-router.js.map +0 -1
- package/dist/cli-tui/approval/approval-controller.d.ts +0 -28
- package/dist/cli-tui/approval/approval-controller.d.ts.map +0 -1
- package/dist/cli-tui/approval/approval-controller.js +0 -99
- package/dist/cli-tui/approval/approval-controller.js.map +0 -1
- package/dist/cli-tui/approval/approval-modal.d.ts +0 -26
- package/dist/cli-tui/approval/approval-modal.d.ts.map +0 -1
- package/dist/cli-tui/approval/approval-modal.js +0 -143
- package/dist/cli-tui/approval/approval-modal.js.map +0 -1
- package/dist/cli-tui/assistant-message.d.ts +0 -41
- package/dist/cli-tui/assistant-message.d.ts.map +0 -1
- package/dist/cli-tui/assistant-message.js +0 -236
- package/dist/cli-tui/assistant-message.js.map +0 -1
- package/dist/cli-tui/auth-state.d.ts +0 -7
- package/dist/cli-tui/auth-state.d.ts.map +0 -1
- package/dist/cli-tui/auth-state.js +0 -46
- package/dist/cli-tui/auth-state.js.map +0 -1
- package/dist/cli-tui/background/background-tasks-controller.d.ts +0 -31
- package/dist/cli-tui/background/background-tasks-controller.d.ts.map +0 -1
- package/dist/cli-tui/background/background-tasks-controller.js +0 -84
- package/dist/cli-tui/background/background-tasks-controller.js.map +0 -1
- package/dist/cli-tui/base-view.d.ts +0 -111
- package/dist/cli-tui/base-view.d.ts.map +0 -1
- package/dist/cli-tui/base-view.js +0 -145
- package/dist/cli-tui/base-view.js.map +0 -1
- package/dist/cli-tui/bash/background-launcher.d.ts +0 -14
- package/dist/cli-tui/bash/background-launcher.d.ts.map +0 -1
- package/dist/cli-tui/bash/background-launcher.js +0 -50
- package/dist/cli-tui/bash/background-launcher.js.map +0 -1
- package/dist/cli-tui/bash/bash-autocomplete.d.ts +0 -40
- package/dist/cli-tui/bash/bash-autocomplete.d.ts.map +0 -1
- package/dist/cli-tui/bash/bash-autocomplete.js +0 -347
- package/dist/cli-tui/bash/bash-autocomplete.js.map +0 -1
- package/dist/cli-tui/bash/bash-history.d.ts +0 -21
- package/dist/cli-tui/bash/bash-history.d.ts.map +0 -1
- package/dist/cli-tui/bash/bash-history.js +0 -72
- package/dist/cli-tui/bash/bash-history.js.map +0 -1
- package/dist/cli-tui/bash/bash-syntax.d.ts +0 -5
- package/dist/cli-tui/bash/bash-syntax.d.ts.map +0 -1
- package/dist/cli-tui/bash/bash-syntax.js +0 -176
- package/dist/cli-tui/bash/bash-syntax.js.map +0 -1
- package/dist/cli-tui/bash/index.d.ts +0 -4
- package/dist/cli-tui/bash/index.d.ts.map +0 -1
- package/dist/cli-tui/bash/index.js +0 -4
- package/dist/cli-tui/bash/index.js.map +0 -1
- package/dist/cli-tui/bash-mode-view.d.ts +0 -86
- package/dist/cli-tui/bash-mode-view.d.ts.map +0 -1
- package/dist/cli-tui/bash-mode-view.js +0 -560
- package/dist/cli-tui/bash-mode-view.js.map +0 -1
- package/dist/cli-tui/bash-shell-block.d.ts +0 -50
- package/dist/cli-tui/bash-shell-block.d.ts.map +0 -1
- package/dist/cli-tui/bash-shell-block.js +0 -119
- package/dist/cli-tui/bash-shell-block.js.map +0 -1
- package/dist/cli-tui/changelog-view.d.ts +0 -13
- package/dist/cli-tui/changelog-view.d.ts.map +0 -1
- package/dist/cli-tui/changelog-view.js +0 -34
- package/dist/cli-tui/changelog-view.js.map +0 -1
- package/dist/cli-tui/clean-mode.d.ts +0 -13
- package/dist/cli-tui/clean-mode.d.ts.map +0 -1
- package/dist/cli-tui/clean-mode.js +0 -32
- package/dist/cli-tui/clean-mode.js.map +0 -1
- package/dist/cli-tui/client-tools/client-tool-controller.d.ts +0 -41
- package/dist/cli-tui/client-tools/client-tool-controller.d.ts.map +0 -1
- package/dist/cli-tui/client-tools/client-tool-controller.js +0 -862
- package/dist/cli-tui/client-tools/client-tool-controller.js.map +0 -1
- package/dist/cli-tui/client-tools/local-client-tool-service.d.ts +0 -33
- package/dist/cli-tui/client-tools/local-client-tool-service.d.ts.map +0 -1
- package/dist/cli-tui/client-tools/local-client-tool-service.js +0 -94
- package/dist/cli-tui/client-tools/local-client-tool-service.js.map +0 -1
- package/dist/cli-tui/commands/a2a-handlers.d.ts +0 -7
- package/dist/cli-tui/commands/a2a-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/a2a-handlers.js +0 -215
- package/dist/cli-tui/commands/a2a-handlers.js.map +0 -1
- package/dist/cli-tui/commands/access-command.d.ts +0 -3
- package/dist/cli-tui/commands/access-command.d.ts.map +0 -1
- package/dist/cli-tui/commands/access-command.js +0 -89
- package/dist/cli-tui/commands/access-command.js.map +0 -1
- package/dist/cli-tui/commands/argument-parser.d.ts +0 -12
- package/dist/cli-tui/commands/argument-parser.d.ts.map +0 -1
- package/dist/cli-tui/commands/argument-parser.js +0 -135
- package/dist/cli-tui/commands/argument-parser.js.map +0 -1
- package/dist/cli-tui/commands/audit-command.d.ts +0 -5
- package/dist/cli-tui/commands/audit-command.d.ts.map +0 -1
- package/dist/cli-tui/commands/audit-command.js +0 -35
- package/dist/cli-tui/commands/audit-command.js.map +0 -1
- package/dist/cli-tui/commands/background-handlers.d.ts +0 -14
- package/dist/cli-tui/commands/background-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/background-handlers.js +0 -115
- package/dist/cli-tui/commands/background-handlers.js.map +0 -1
- package/dist/cli-tui/commands/command-catalog.d.ts +0 -29
- package/dist/cli-tui/commands/command-catalog.d.ts.map +0 -1
- package/dist/cli-tui/commands/command-catalog.js +0 -666
- package/dist/cli-tui/commands/command-catalog.js.map +0 -1
- package/dist/cli-tui/commands/command-registry-adapter.d.ts +0 -12
- package/dist/cli-tui/commands/command-registry-adapter.d.ts.map +0 -1
- package/dist/cli-tui/commands/command-registry-adapter.js +0 -129
- package/dist/cli-tui/commands/command-registry-adapter.js.map +0 -1
- package/dist/cli-tui/commands/command-suite-catalog.d.ts +0 -14
- package/dist/cli-tui/commands/command-suite-catalog.d.ts.map +0 -1
- package/dist/cli-tui/commands/command-suite-catalog.js +0 -147
- package/dist/cli-tui/commands/command-suite-catalog.js.map +0 -1
- package/dist/cli-tui/commands/command-suite-handlers.d.ts +0 -111
- package/dist/cli-tui/commands/command-suite-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/command-suite-handlers.js +0 -110
- package/dist/cli-tui/commands/command-suite-handlers.js.map +0 -1
- package/dist/cli-tui/commands/composer-handlers.d.ts +0 -8
- package/dist/cli-tui/commands/composer-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/composer-handlers.js +0 -90
- package/dist/cli-tui/commands/composer-handlers.js.map +0 -1
- package/dist/cli-tui/commands/framework-handlers.d.ts +0 -18
- package/dist/cli-tui/commands/framework-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/framework-handlers.js +0 -57
- package/dist/cli-tui/commands/framework-handlers.js.map +0 -1
- package/dist/cli-tui/commands/guardian-handlers.d.ts +0 -20
- package/dist/cli-tui/commands/guardian-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/guardian-handlers.js +0 -48
- package/dist/cli-tui/commands/guardian-handlers.js.map +0 -1
- package/dist/cli-tui/commands/handlers/mode-handler.d.ts +0 -32
- package/dist/cli-tui/commands/handlers/mode-handler.d.ts.map +0 -1
- package/dist/cli-tui/commands/handlers/mode-handler.js +0 -153
- package/dist/cli-tui/commands/handlers/mode-handler.js.map +0 -1
- package/dist/cli-tui/commands/hotkeys-command.d.ts +0 -8
- package/dist/cli-tui/commands/hotkeys-command.d.ts.map +0 -1
- package/dist/cli-tui/commands/hotkeys-command.js +0 -61
- package/dist/cli-tui/commands/hotkeys-command.js.map +0 -1
- package/dist/cli-tui/commands/limits-command.d.ts +0 -3
- package/dist/cli-tui/commands/limits-command.d.ts.map +0 -1
- package/dist/cli-tui/commands/limits-command.js +0 -88
- package/dist/cli-tui/commands/limits-command.js.map +0 -1
- package/dist/cli-tui/commands/mcp-handlers.d.ts +0 -12
- package/dist/cli-tui/commands/mcp-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/mcp-handlers.js +0 -1306
- package/dist/cli-tui/commands/mcp-handlers.js.map +0 -1
- package/dist/cli-tui/commands/memory-handlers.d.ts +0 -28
- package/dist/cli-tui/commands/memory-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/memory-handlers.js +0 -414
- package/dist/cli-tui/commands/memory-handlers.js.map +0 -1
- package/dist/cli-tui/commands/otel-handlers.d.ts +0 -11
- package/dist/cli-tui/commands/otel-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/otel-handlers.js +0 -20
- package/dist/cli-tui/commands/otel-handlers.js.map +0 -1
- package/dist/cli-tui/commands/package-handlers.d.ts +0 -30
- package/dist/cli-tui/commands/package-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/package-handlers.js +0 -499
- package/dist/cli-tui/commands/package-handlers.js.map +0 -1
- package/dist/cli-tui/commands/pii-command.d.ts +0 -3
- package/dist/cli-tui/commands/pii-command.d.ts.map +0 -1
- package/dist/cli-tui/commands/pii-command.js +0 -54
- package/dist/cli-tui/commands/pii-command.js.map +0 -1
- package/dist/cli-tui/commands/registry.d.ts +0 -3
- package/dist/cli-tui/commands/registry.d.ts.map +0 -1
- package/dist/cli-tui/commands/registry.js +0 -36
- package/dist/cli-tui/commands/registry.js.map +0 -1
- package/dist/cli-tui/commands/safety-handlers.d.ts +0 -36
- package/dist/cli-tui/commands/safety-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/safety-handlers.js +0 -62
- package/dist/cli-tui/commands/safety-handlers.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/auth-commands.d.ts +0 -26
- package/dist/cli-tui/commands/subcommands/auth-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/auth-commands.js +0 -79
- package/dist/cli-tui/commands/subcommands/auth-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/config-commands.d.ts +0 -23
- package/dist/cli-tui/commands/subcommands/config-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/config-commands.js +0 -61
- package/dist/cli-tui/commands/subcommands/config-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/diag-commands.d.ts +0 -46
- package/dist/cli-tui/commands/subcommands/diag-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/diag-commands.js +0 -163
- package/dist/cli-tui/commands/subcommands/diag-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/git-commands.d.ts +0 -18
- package/dist/cli-tui/commands/subcommands/git-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/git-commands.js +0 -50
- package/dist/cli-tui/commands/subcommands/git-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/index.d.ts +0 -18
- package/dist/cli-tui/commands/subcommands/index.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/index.js +0 -18
- package/dist/cli-tui/commands/subcommands/index.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/safety-commands.d.ts +0 -26
- package/dist/cli-tui/commands/subcommands/safety-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/safety-commands.js +0 -149
- package/dist/cli-tui/commands/subcommands/safety-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/session-commands.d.ts +0 -36
- package/dist/cli-tui/commands/subcommands/session-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/session-commands.js +0 -112
- package/dist/cli-tui/commands/subcommands/session-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/tools-commands.d.ts +0 -27
- package/dist/cli-tui/commands/subcommands/tools-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/tools-commands.js +0 -80
- package/dist/cli-tui/commands/subcommands/tools-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/ui-commands.d.ts +0 -30
- package/dist/cli-tui/commands/subcommands/ui-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/ui-commands.js +0 -74
- package/dist/cli-tui/commands/subcommands/ui-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/undo-commands.d.ts +0 -25
- package/dist/cli-tui/commands/subcommands/undo-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/undo-commands.js +0 -74
- package/dist/cli-tui/commands/subcommands/undo-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/usage-commands.d.ts +0 -19
- package/dist/cli-tui/commands/subcommands/usage-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/usage-commands.js +0 -63
- package/dist/cli-tui/commands/subcommands/usage-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/utils.d.ts +0 -127
- package/dist/cli-tui/commands/subcommands/utils.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/utils.js +0 -395
- package/dist/cli-tui/commands/subcommands/utils.js.map +0 -1
- package/dist/cli-tui/commands/types.d.ts +0 -105
- package/dist/cli-tui/commands/types.d.ts.map +0 -1
- package/dist/cli-tui/commands/types.js +0 -2
- package/dist/cli-tui/commands/types.js.map +0 -1
- package/dist/cli-tui/commands/undo-handlers.d.ts +0 -29
- package/dist/cli-tui/commands/undo-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/undo-handlers.js +0 -300
- package/dist/cli-tui/commands/undo-handlers.js.map +0 -1
- package/dist/cli-tui/commands/utility-handlers.d.ts +0 -55
- package/dist/cli-tui/commands/utility-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/utility-handlers.js +0 -137
- package/dist/cli-tui/commands/utility-handlers.js.map +0 -1
- package/dist/cli-tui/commands/workflow-handlers.d.ts +0 -22
- package/dist/cli-tui/commands/workflow-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/workflow-handlers.js +0 -227
- package/dist/cli-tui/commands/workflow-handlers.js.map +0 -1
- package/dist/cli-tui/compact-boundary-message.d.ts +0 -9
- package/dist/cli-tui/compact-boundary-message.d.ts.map +0 -1
- package/dist/cli-tui/compact-boundary-message.js +0 -18
- package/dist/cli-tui/compact-boundary-message.js.map +0 -1
- package/dist/cli-tui/compaction-recovery.d.ts +0 -6
- package/dist/cli-tui/compaction-recovery.d.ts.map +0 -1
- package/dist/cli-tui/compaction-recovery.js +0 -13
- package/dist/cli-tui/compaction-recovery.js.map +0 -1
- package/dist/cli-tui/config-view.d.ts +0 -30
- package/dist/cli-tui/config-view.d.ts.map +0 -1
- package/dist/cli-tui/config-view.js +0 -255
- package/dist/cli-tui/config-view.js.map +0 -1
- package/dist/cli-tui/context-view.d.ts +0 -20
- package/dist/cli-tui/context-view.d.ts.map +0 -1
- package/dist/cli-tui/context-view.js +0 -191
- package/dist/cli-tui/context-view.js.map +0 -1
- package/dist/cli-tui/custom-editor.d.ts +0 -25
- package/dist/cli-tui/custom-editor.d.ts.map +0 -1
- package/dist/cli-tui/custom-editor.js +0 -241
- package/dist/cli-tui/custom-editor.js.map +0 -1
- package/dist/cli-tui/editor-view.d.ts +0 -34
- package/dist/cli-tui/editor-view.d.ts.map +0 -1
- package/dist/cli-tui/editor-view.js +0 -102
- package/dist/cli-tui/editor-view.js.map +0 -1
- package/dist/cli-tui/feedback-view.d.ts +0 -35
- package/dist/cli-tui/feedback-view.d.ts.map +0 -1
- package/dist/cli-tui/feedback-view.js +0 -271
- package/dist/cli-tui/feedback-view.js.map +0 -1
- package/dist/cli-tui/footer.d.ts +0 -56
- package/dist/cli-tui/footer.d.ts.map +0 -1
- package/dist/cli-tui/footer.js +0 -228
- package/dist/cli-tui/footer.js.map +0 -1
- package/dist/cli-tui/git/commit-modal.d.ts +0 -14
- package/dist/cli-tui/git/commit-modal.d.ts.map +0 -1
- package/dist/cli-tui/git/commit-modal.js +0 -56
- package/dist/cli-tui/git/commit-modal.js.map +0 -1
- package/dist/cli-tui/git/git-preview-modal.d.ts +0 -40
- package/dist/cli-tui/git/git-preview-modal.d.ts.map +0 -1
- package/dist/cli-tui/git/git-preview-modal.js +0 -123
- package/dist/cli-tui/git/git-preview-modal.js.map +0 -1
- package/dist/cli-tui/git/git-view.d.ts +0 -65
- package/dist/cli-tui/git/git-view.d.ts.map +0 -1
- package/dist/cli-tui/git/git-view.js +0 -529
- package/dist/cli-tui/git/git-view.js.map +0 -1
- package/dist/cli-tui/history/history-config.d.ts +0 -7
- package/dist/cli-tui/history/history-config.d.ts.map +0 -1
- package/dist/cli-tui/history/history-config.js +0 -49
- package/dist/cli-tui/history/history-config.js.map +0 -1
- package/dist/cli-tui/history/prompt-history.d.ts +0 -33
- package/dist/cli-tui/history/prompt-history.d.ts.map +0 -1
- package/dist/cli-tui/history/prompt-history.js +0 -185
- package/dist/cli-tui/history/prompt-history.js.map +0 -1
- package/dist/cli-tui/history/tool-history.d.ts +0 -50
- package/dist/cli-tui/history/tool-history.d.ts.map +0 -1
- package/dist/cli-tui/history/tool-history.js +0 -253
- package/dist/cli-tui/history/tool-history.js.map +0 -1
- package/dist/cli-tui/hook-message.d.ts +0 -13
- package/dist/cli-tui/hook-message.d.ts.map +0 -1
- package/dist/cli-tui/hook-message.js +0 -56
- package/dist/cli-tui/hook-message.js.map +0 -1
- package/dist/cli-tui/hooks/hook-input-modal.d.ts +0 -22
- package/dist/cli-tui/hooks/hook-input-modal.d.ts.map +0 -1
- package/dist/cli-tui/hooks/hook-input-modal.js +0 -63
- package/dist/cli-tui/hooks/hook-input-modal.js.map +0 -1
- package/dist/cli-tui/hotkeys-view.d.ts +0 -13
- package/dist/cli-tui/hotkeys-view.d.ts.map +0 -1
- package/dist/cli-tui/hotkeys-view.js +0 -96
- package/dist/cli-tui/hotkeys-view.js.map +0 -1
- package/dist/cli-tui/import-view.d.ts +0 -28
- package/dist/cli-tui/import-view.d.ts.map +0 -1
- package/dist/cli-tui/import-view.js +0 -184
- package/dist/cli-tui/import-view.js.map +0 -1
- package/dist/cli-tui/info-view.d.ts +0 -18
- package/dist/cli-tui/info-view.d.ts.map +0 -1
- package/dist/cli-tui/info-view.js +0 -107
- package/dist/cli-tui/info-view.js.map +0 -1
- package/dist/cli-tui/instruction-panel.d.ts +0 -11
- package/dist/cli-tui/instruction-panel.d.ts.map +0 -1
- package/dist/cli-tui/instruction-panel.js +0 -86
- package/dist/cli-tui/instruction-panel.js.map +0 -1
- package/dist/cli-tui/interrupt-controller.d.ts +0 -78
- package/dist/cli-tui/interrupt-controller.d.ts.map +0 -1
- package/dist/cli-tui/interrupt-controller.js +0 -104
- package/dist/cli-tui/interrupt-controller.js.map +0 -1
- package/dist/cli-tui/keybindings-config.d.ts +0 -27
- package/dist/cli-tui/keybindings-config.d.ts.map +0 -1
- package/dist/cli-tui/keybindings-config.js +0 -372
- package/dist/cli-tui/keybindings-config.js.map +0 -1
- package/dist/cli-tui/keybindings-watcher.d.ts +0 -8
- package/dist/cli-tui/keybindings-watcher.d.ts.map +0 -1
- package/dist/cli-tui/keybindings-watcher.js +0 -56
- package/dist/cli-tui/keybindings-watcher.js.map +0 -1
- package/dist/cli-tui/keybindings.d.ts +0 -13
- package/dist/cli-tui/keybindings.d.ts.map +0 -1
- package/dist/cli-tui/keybindings.js +0 -223
- package/dist/cli-tui/keybindings.js.map +0 -1
- package/dist/cli-tui/loader/loader-stage-manager.d.ts +0 -43
- package/dist/cli-tui/loader/loader-stage-manager.d.ts.map +0 -1
- package/dist/cli-tui/loader/loader-stage-manager.js +0 -241
- package/dist/cli-tui/loader/loader-stage-manager.js.map +0 -1
- package/dist/cli-tui/loader/loader-stage-telemetry.d.ts +0 -14
- package/dist/cli-tui/loader/loader-stage-telemetry.d.ts.map +0 -1
- package/dist/cli-tui/loader/loader-stage-telemetry.js +0 -34
- package/dist/cli-tui/loader/loader-stage-telemetry.js.map +0 -1
- package/dist/cli-tui/loader/loader-view.d.ts +0 -41
- package/dist/cli-tui/loader/loader-view.d.ts.map +0 -1
- package/dist/cli-tui/loader/loader-view.js +0 -162
- package/dist/cli-tui/loader/loader-view.js.map +0 -1
- package/dist/cli-tui/lsp-view.d.ts +0 -21
- package/dist/cli-tui/lsp-view.d.ts.map +0 -1
- package/dist/cli-tui/lsp-view.js +0 -183
- package/dist/cli-tui/lsp-view.js.map +0 -1
- package/dist/cli-tui/mermaid-renderer.d.ts +0 -2
- package/dist/cli-tui/mermaid-renderer.d.ts.map +0 -1
- package/dist/cli-tui/mermaid-renderer.js +0 -391
- package/dist/cli-tui/mermaid-renderer.js.map +0 -1
- package/dist/cli-tui/message-view.d.ts +0 -27
- package/dist/cli-tui/message-view.d.ts.map +0 -1
- package/dist/cli-tui/message-view.js +0 -169
- package/dist/cli-tui/message-view.js.map +0 -1
- package/dist/cli-tui/modal-manager.d.ts +0 -77
- package/dist/cli-tui/modal-manager.d.ts.map +0 -1
- package/dist/cli-tui/modal-manager.js +0 -131
- package/dist/cli-tui/modal-manager.js.map +0 -1
- package/dist/cli-tui/notification-view.d.ts +0 -16
- package/dist/cli-tui/notification-view.d.ts.map +0 -1
- package/dist/cli-tui/notification-view.js +0 -53
- package/dist/cli-tui/notification-view.js.map +0 -1
- package/dist/cli-tui/oauth/index.d.ts +0 -2
- package/dist/cli-tui/oauth/index.d.ts.map +0 -1
- package/dist/cli-tui/oauth/index.js +0 -2
- package/dist/cli-tui/oauth/index.js.map +0 -1
- package/dist/cli-tui/oauth/oauth-flow-controller.d.ts +0 -65
- package/dist/cli-tui/oauth/oauth-flow-controller.d.ts.map +0 -1
- package/dist/cli-tui/oauth/oauth-flow-controller.js +0 -400
- package/dist/cli-tui/oauth/oauth-flow-controller.js.map +0 -1
- package/dist/cli-tui/ollama-view.d.ts +0 -38
- package/dist/cli-tui/ollama-view.d.ts.map +0 -1
- package/dist/cli-tui/ollama-view.js +0 -395
- package/dist/cli-tui/ollama-view.js.map +0 -1
- package/dist/cli-tui/paste/index.d.ts +0 -2
- package/dist/cli-tui/paste/index.d.ts.map +0 -1
- package/dist/cli-tui/paste/index.js +0 -2
- package/dist/cli-tui/paste/index.js.map +0 -1
- package/dist/cli-tui/paste/paste-handler.d.ts +0 -54
- package/dist/cli-tui/paste/paste-handler.d.ts.map +0 -1
- package/dist/cli-tui/paste/paste-handler.js +0 -128
- package/dist/cli-tui/paste/paste-handler.js.map +0 -1
- package/dist/cli-tui/plan/plan-controller.d.ts +0 -28
- package/dist/cli-tui/plan/plan-controller.d.ts.map +0 -1
- package/dist/cli-tui/plan/plan-controller.js +0 -66
- package/dist/cli-tui/plan/plan-controller.js.map +0 -1
- package/dist/cli-tui/plan-panel-modal.d.ts +0 -28
- package/dist/cli-tui/plan-panel-modal.d.ts.map +0 -1
- package/dist/cli-tui/plan-panel-modal.js +0 -193
- package/dist/cli-tui/plan-panel-modal.js.map +0 -1
- package/dist/cli-tui/plan-view.d.ts +0 -57
- package/dist/cli-tui/plan-view.d.ts.map +0 -1
- package/dist/cli-tui/plan-view.js +0 -404
- package/dist/cli-tui/plan-view.js.map +0 -1
- package/dist/cli-tui/prompt-queue.d.ts.map +0 -1
- package/dist/cli-tui/prompt-queue.js.map +0 -1
- package/dist/cli-tui/queue/follow-up-shortcut.d.ts +0 -6
- package/dist/cli-tui/queue/follow-up-shortcut.d.ts.map +0 -1
- package/dist/cli-tui/queue/follow-up-shortcut.js +0 -12
- package/dist/cli-tui/queue/follow-up-shortcut.js.map +0 -1
- package/dist/cli-tui/queue/index.d.ts +0 -3
- package/dist/cli-tui/queue/index.d.ts.map +0 -1
- package/dist/cli-tui/queue/index.js +0 -3
- package/dist/cli-tui/queue/index.js.map +0 -1
- package/dist/cli-tui/queue/queue-controller.d.ts +0 -109
- package/dist/cli-tui/queue/queue-controller.d.ts.map +0 -1
- package/dist/cli-tui/queue/queue-controller.js +0 -327
- package/dist/cli-tui/queue/queue-controller.js.map +0 -1
- package/dist/cli-tui/queue/queue-panel-controller.d.ts +0 -34
- package/dist/cli-tui/queue/queue-panel-controller.d.ts.map +0 -1
- package/dist/cli-tui/queue/queue-panel-controller.js +0 -163
- package/dist/cli-tui/queue/queue-panel-controller.js.map +0 -1
- package/dist/cli-tui/queue/queued-follow-up-edit-binding.d.ts +0 -7
- package/dist/cli-tui/queue/queued-follow-up-edit-binding.d.ts.map +0 -1
- package/dist/cli-tui/queue/queued-follow-up-edit-binding.js +0 -14
- package/dist/cli-tui/queue/queued-follow-up-edit-binding.js.map +0 -1
- package/dist/cli-tui/queue-panel-modal.d.ts +0 -26
- package/dist/cli-tui/queue-panel-modal.d.ts.map +0 -1
- package/dist/cli-tui/queue-panel-modal.js +0 -159
- package/dist/cli-tui/queue-panel-modal.js.map +0 -1
- package/dist/cli-tui/run/run-command-view.d.ts +0 -17
- package/dist/cli-tui/run/run-command-view.d.ts.map +0 -1
- package/dist/cli-tui/run/run-command-view.js +0 -62
- package/dist/cli-tui/run/run-command-view.js.map +0 -1
- package/dist/cli-tui/run/run-controller.d.ts +0 -24
- package/dist/cli-tui/run/run-controller.d.ts.map +0 -1
- package/dist/cli-tui/run/run-controller.js +0 -38
- package/dist/cli-tui/run/run-controller.js.map +0 -1
- package/dist/cli-tui/run/run-shell-command.d.ts +0 -13
- package/dist/cli-tui/run/run-shell-command.d.ts.map +0 -1
- package/dist/cli-tui/run/run-shell-command.js +0 -51
- package/dist/cli-tui/run/run-shell-command.js.map +0 -1
- package/dist/cli-tui/run/streaming-shell-command.d.ts +0 -19
- package/dist/cli-tui/run/streaming-shell-command.d.ts.map +0 -1
- package/dist/cli-tui/run/streaming-shell-command.js +0 -107
- package/dist/cli-tui/run/streaming-shell-command.js.map +0 -1
- package/dist/cli-tui/search/file-search-view.d.ts +0 -22
- package/dist/cli-tui/search/file-search-view.d.ts.map +0 -1
- package/dist/cli-tui/search/file-search-view.js +0 -68
- package/dist/cli-tui/search/file-search-view.js.map +0 -1
- package/dist/cli-tui/search/file-search.d.ts +0 -13
- package/dist/cli-tui/search/file-search.d.ts.map +0 -1
- package/dist/cli-tui/search/file-search.js +0 -52
- package/dist/cli-tui/search/file-search.js.map +0 -1
- package/dist/cli-tui/security-status.d.ts +0 -83
- package/dist/cli-tui/security-status.d.ts.map +0 -1
- package/dist/cli-tui/security-status.js +0 -214
- package/dist/cli-tui/security-status.js.map +0 -1
- package/dist/cli-tui/selectors/base-selector.d.ts +0 -27
- package/dist/cli-tui/selectors/base-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/base-selector.js +0 -47
- package/dist/cli-tui/selectors/base-selector.js.map +0 -1
- package/dist/cli-tui/selectors/branch-summary-modal.d.ts +0 -18
- package/dist/cli-tui/selectors/branch-summary-modal.d.ts.map +0 -1
- package/dist/cli-tui/selectors/branch-summary-modal.js +0 -24
- package/dist/cli-tui/selectors/branch-summary-modal.js.map +0 -1
- package/dist/cli-tui/selectors/model-selector-view.d.ts +0 -22
- package/dist/cli-tui/selectors/model-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/model-selector-view.js +0 -31
- package/dist/cli-tui/selectors/model-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/model-selector.d.ts +0 -30
- package/dist/cli-tui/selectors/model-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/model-selector.js +0 -218
- package/dist/cli-tui/selectors/model-selector.js.map +0 -1
- package/dist/cli-tui/selectors/oauth-selector-view.d.ts +0 -20
- package/dist/cli-tui/selectors/oauth-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/oauth-selector-view.js +0 -28
- package/dist/cli-tui/selectors/oauth-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/oauth-selector.d.ts +0 -19
- package/dist/cli-tui/selectors/oauth-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/oauth-selector.js +0 -120
- package/dist/cli-tui/selectors/oauth-selector.js.map +0 -1
- package/dist/cli-tui/selectors/queue-mode-selector-view.d.ts +0 -19
- package/dist/cli-tui/selectors/queue-mode-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/queue-mode-selector-view.js +0 -29
- package/dist/cli-tui/selectors/queue-mode-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/queue-mode-selector.d.ts +0 -5
- package/dist/cli-tui/selectors/queue-mode-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/queue-mode-selector.js +0 -34
- package/dist/cli-tui/selectors/queue-mode-selector.js.map +0 -1
- package/dist/cli-tui/selectors/report-selector-view.d.ts +0 -17
- package/dist/cli-tui/selectors/report-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/report-selector-view.js +0 -29
- package/dist/cli-tui/selectors/report-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/report-selector.d.ts +0 -7
- package/dist/cli-tui/selectors/report-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/report-selector.js +0 -31
- package/dist/cli-tui/selectors/report-selector.js.map +0 -1
- package/dist/cli-tui/selectors/theme-selector-view.d.ts +0 -19
- package/dist/cli-tui/selectors/theme-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/theme-selector-view.js +0 -41
- package/dist/cli-tui/selectors/theme-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/theme-selector.d.ts +0 -14
- package/dist/cli-tui/selectors/theme-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/theme-selector.js +0 -46
- package/dist/cli-tui/selectors/theme-selector.js.map +0 -1
- package/dist/cli-tui/selectors/thinking-selector-view.d.ts +0 -20
- package/dist/cli-tui/selectors/thinking-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/thinking-selector-view.js +0 -31
- package/dist/cli-tui/selectors/thinking-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/thinking-selector.d.ts +0 -9
- package/dist/cli-tui/selectors/thinking-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/thinking-selector.js +0 -47
- package/dist/cli-tui/selectors/thinking-selector.js.map +0 -1
- package/dist/cli-tui/selectors/tree-selector-view.d.ts +0 -32
- package/dist/cli-tui/selectors/tree-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/tree-selector-view.js +0 -407
- package/dist/cli-tui/selectors/tree-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/tree-selector.d.ts +0 -27
- package/dist/cli-tui/selectors/tree-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/tree-selector.js +0 -194
- package/dist/cli-tui/selectors/tree-selector.js.map +0 -1
- package/dist/cli-tui/selectors/user-message-selector-view.d.ts +0 -25
- package/dist/cli-tui/selectors/user-message-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/user-message-selector-view.js +0 -101
- package/dist/cli-tui/selectors/user-message-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/user-message-selector.d.ts +0 -30
- package/dist/cli-tui/selectors/user-message-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/user-message-selector.js +0 -114
- package/dist/cli-tui/selectors/user-message-selector.js.map +0 -1
- package/dist/cli-tui/session/branch-controller.d.ts +0 -65
- package/dist/cli-tui/session/branch-controller.d.ts.map +0 -1
- package/dist/cli-tui/session/branch-controller.js +0 -125
- package/dist/cli-tui/session/branch-controller.js.map +0 -1
- package/dist/cli-tui/session/conversation-compactor.d.ts +0 -64
- package/dist/cli-tui/session/conversation-compactor.d.ts.map +0 -1
- package/dist/cli-tui/session/conversation-compactor.js +0 -77
- package/dist/cli-tui/session/conversation-compactor.js.map +0 -1
- package/dist/cli-tui/session/session-context.d.ts +0 -59
- package/dist/cli-tui/session/session-context.d.ts.map +0 -1
- package/dist/cli-tui/session/session-context.js +0 -79
- package/dist/cli-tui/session/session-context.js.map +0 -1
- package/dist/cli-tui/session/session-data-provider.d.ts +0 -23
- package/dist/cli-tui/session/session-data-provider.d.ts.map +0 -1
- package/dist/cli-tui/session/session-data-provider.js +0 -22
- package/dist/cli-tui/session/session-data-provider.js.map +0 -1
- package/dist/cli-tui/session/session-list.d.ts +0 -18
- package/dist/cli-tui/session/session-list.d.ts.map +0 -1
- package/dist/cli-tui/session/session-list.js +0 -103
- package/dist/cli-tui/session/session-list.js.map +0 -1
- package/dist/cli-tui/session/session-selector.d.ts +0 -12
- package/dist/cli-tui/session/session-selector.d.ts.map +0 -1
- package/dist/cli-tui/session/session-selector.js +0 -37
- package/dist/cli-tui/session/session-selector.js.map +0 -1
- package/dist/cli-tui/session/session-summary-controller.d.ts +0 -24
- package/dist/cli-tui/session/session-summary-controller.d.ts.map +0 -1
- package/dist/cli-tui/session/session-summary-controller.js +0 -96
- package/dist/cli-tui/session/session-summary-controller.js.map +0 -1
- package/dist/cli-tui/session/session-switcher-view.d.ts +0 -20
- package/dist/cli-tui/session/session-switcher-view.d.ts.map +0 -1
- package/dist/cli-tui/session/session-switcher-view.js +0 -43
- package/dist/cli-tui/session/session-switcher-view.js.map +0 -1
- package/dist/cli-tui/session/session-switcher.d.ts +0 -38
- package/dist/cli-tui/session/session-switcher.d.ts.map +0 -1
- package/dist/cli-tui/session/session-switcher.js +0 -204
- package/dist/cli-tui/session/session-switcher.js.map +0 -1
- package/dist/cli-tui/session/session-view.d.ts +0 -46
- package/dist/cli-tui/session/session-view.d.ts.map +0 -1
- package/dist/cli-tui/session/session-view.js +0 -311
- package/dist/cli-tui/session/session-view.js.map +0 -1
- package/dist/cli-tui/slash/index.d.ts +0 -2
- package/dist/cli-tui/slash/index.d.ts.map +0 -1
- package/dist/cli-tui/slash/index.js +0 -2
- package/dist/cli-tui/slash/index.js.map +0 -1
- package/dist/cli-tui/slash/slash-command-matcher.d.ts +0 -55
- package/dist/cli-tui/slash/slash-command-matcher.d.ts.map +0 -1
- package/dist/cli-tui/slash/slash-command-matcher.js +0 -113
- package/dist/cli-tui/slash/slash-command-matcher.js.map +0 -1
- package/dist/cli-tui/smart-autocomplete-provider.d.ts +0 -5
- package/dist/cli-tui/smart-autocomplete-provider.d.ts.map +0 -1
- package/dist/cli-tui/smart-autocomplete-provider.js +0 -44
- package/dist/cli-tui/smart-autocomplete-provider.js.map +0 -1
- package/dist/cli-tui/startup-announcements.d.ts +0 -15
- package/dist/cli-tui/startup-announcements.d.ts.map +0 -1
- package/dist/cli-tui/startup-announcements.js +0 -75
- package/dist/cli-tui/startup-announcements.js.map +0 -1
- package/dist/cli-tui/status/cost-view.d.ts +0 -27
- package/dist/cli-tui/status/cost-view.d.ts.map +0 -1
- package/dist/cli-tui/status/cost-view.js +0 -212
- package/dist/cli-tui/status/cost-view.js.map +0 -1
- package/dist/cli-tui/status/diagnostics-templates.d.ts +0 -34
- package/dist/cli-tui/status/diagnostics-templates.d.ts.map +0 -1
- package/dist/cli-tui/status/diagnostics-templates.js +0 -167
- package/dist/cli-tui/status/diagnostics-templates.js.map +0 -1
- package/dist/cli-tui/status/diagnostics-view.d.ts +0 -48
- package/dist/cli-tui/status/diagnostics-view.d.ts.map +0 -1
- package/dist/cli-tui/status/diagnostics-view.js +0 -249
- package/dist/cli-tui/status/diagnostics-view.js.map +0 -1
- package/dist/cli-tui/status/diagnostics.d.ts +0 -39
- package/dist/cli-tui/status/diagnostics.d.ts.map +0 -1
- package/dist/cli-tui/status/diagnostics.js +0 -286
- package/dist/cli-tui/status/diagnostics.js.map +0 -1
- package/dist/cli-tui/status/health-snapshot.d.ts +0 -17
- package/dist/cli-tui/status/health-snapshot.d.ts.map +0 -1
- package/dist/cli-tui/status/health-snapshot.js +0 -28
- package/dist/cli-tui/status/health-snapshot.js.map +0 -1
- package/dist/cli-tui/status/quota-view.d.ts +0 -37
- package/dist/cli-tui/status/quota-view.d.ts.map +0 -1
- package/dist/cli-tui/status/quota-view.js +0 -309
- package/dist/cli-tui/status/quota-view.js.map +0 -1
- package/dist/cli-tui/status/telemetry-view.d.ts +0 -23
- package/dist/cli-tui/status/telemetry-view.d.ts.map +0 -1
- package/dist/cli-tui/status/telemetry-view.js +0 -77
- package/dist/cli-tui/status/telemetry-view.js.map +0 -1
- package/dist/cli-tui/status/training-view.d.ts +0 -23
- package/dist/cli-tui/status/training-view.d.ts.map +0 -1
- package/dist/cli-tui/status/training-view.js +0 -71
- package/dist/cli-tui/status/training-view.js.map +0 -1
- package/dist/cli-tui/streaming-view.d.ts +0 -43
- package/dist/cli-tui/streaming-view.d.ts.map +0 -1
- package/dist/cli-tui/streaming-view.js +0 -176
- package/dist/cli-tui/streaming-view.js.map +0 -1
- package/dist/cli-tui/terminal/index.d.ts +0 -2
- package/dist/cli-tui/terminal/index.d.ts.map +0 -1
- package/dist/cli-tui/terminal/index.js +0 -2
- package/dist/cli-tui/terminal/index.js.map +0 -1
- package/dist/cli-tui/terminal/terminal-utils.d.ts +0 -44
- package/dist/cli-tui/terminal/terminal-utils.d.ts.map +0 -1
- package/dist/cli-tui/terminal/terminal-utils.js +0 -145
- package/dist/cli-tui/terminal/terminal-utils.js.map +0 -1
- package/dist/cli-tui/tips/tip-scheduler.d.ts +0 -19
- package/dist/cli-tui/tips/tip-scheduler.d.ts.map +0 -1
- package/dist/cli-tui/tips/tip-scheduler.js +0 -135
- package/dist/cli-tui/tips/tip-scheduler.js.map +0 -1
- package/dist/cli-tui/tool-execution.d.ts +0 -76
- package/dist/cli-tui/tool-execution.d.ts.map +0 -1
- package/dist/cli-tui/tool-execution.js +0 -217
- package/dist/cli-tui/tool-execution.js.map +0 -1
- package/dist/cli-tui/tool-output-view.d.ts +0 -22
- package/dist/cli-tui/tool-output-view.d.ts.map +0 -1
- package/dist/cli-tui/tool-output-view.js +0 -71
- package/dist/cli-tui/tool-output-view.js.map +0 -1
- package/dist/cli-tui/tool-renderers/index.d.ts +0 -4
- package/dist/cli-tui/tool-renderers/index.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/index.js +0 -19
- package/dist/cli-tui/tool-renderers/index.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-bash.d.ts +0 -6
- package/dist/cli-tui/tool-renderers/render-bash.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-bash.js +0 -90
- package/dist/cli-tui/tool-renderers/render-bash.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-batch.d.ts +0 -12
- package/dist/cli-tui/tool-renderers/render-batch.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-batch.js +0 -133
- package/dist/cli-tui/tool-renderers/render-batch.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-edit.d.ts +0 -6
- package/dist/cli-tui/tool-renderers/render-edit.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-edit.js +0 -125
- package/dist/cli-tui/tool-renderers/render-edit.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-generic.d.ts +0 -6
- package/dist/cli-tui/tool-renderers/render-generic.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-generic.js +0 -66
- package/dist/cli-tui/tool-renderers/render-generic.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-read.d.ts +0 -9
- package/dist/cli-tui/tool-renderers/render-read.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-read.js +0 -108
- package/dist/cli-tui/tool-renderers/render-read.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-style.d.ts +0 -21
- package/dist/cli-tui/tool-renderers/render-style.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-style.js +0 -51
- package/dist/cli-tui/tool-renderers/render-style.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-write.d.ts +0 -5
- package/dist/cli-tui/tool-renderers/render-write.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-write.js +0 -60
- package/dist/cli-tui/tool-renderers/render-write.js.map +0 -1
- package/dist/cli-tui/tool-renderers/types.d.ts +0 -20
- package/dist/cli-tui/tool-renderers/types.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/types.js +0 -2
- package/dist/cli-tui/tool-renderers/types.js.map +0 -1
- package/dist/cli-tui/tool-retry/tool-retry-controller.d.ts +0 -29
- package/dist/cli-tui/tool-retry/tool-retry-controller.d.ts.map +0 -1
- package/dist/cli-tui/tool-retry/tool-retry-controller.js +0 -110
- package/dist/cli-tui/tool-retry/tool-retry-controller.js.map +0 -1
- package/dist/cli-tui/tool-retry/tool-retry-modal.d.ts +0 -27
- package/dist/cli-tui/tool-retry/tool-retry-modal.d.ts.map +0 -1
- package/dist/cli-tui/tool-retry/tool-retry-modal.js +0 -118
- package/dist/cli-tui/tool-retry/tool-retry-modal.js.map +0 -1
- package/dist/cli-tui/tool-status-view.d.ts +0 -32
- package/dist/cli-tui/tool-status-view.d.ts.map +0 -1
- package/dist/cli-tui/tool-status-view.js +0 -86
- package/dist/cli-tui/tool-status-view.js.map +0 -1
- package/dist/cli-tui/tui-renderer/agent-event-bridge.d.ts +0 -59
- package/dist/cli-tui/tui-renderer/agent-event-bridge.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/agent-event-bridge.js +0 -129
- package/dist/cli-tui/tui-renderer/agent-event-bridge.js.map +0 -1
- package/dist/cli-tui/tui-renderer/approval-setup.d.ts +0 -13
- package/dist/cli-tui/tui-renderer/approval-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/approval-setup.js +0 -5
- package/dist/cli-tui/tui-renderer/approval-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/attachment-controller.d.ts +0 -54
- package/dist/cli-tui/tui-renderer/attachment-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/attachment-controller.js +0 -160
- package/dist/cli-tui/tui-renderer/attachment-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/background-tasks-setup.d.ts +0 -9
- package/dist/cli-tui/tui-renderer/background-tasks-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/background-tasks-setup.js +0 -7
- package/dist/cli-tui/tui-renderer/background-tasks-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/branch-controller.d.ts +0 -41
- package/dist/cli-tui/tui-renderer/branch-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/branch-controller.js +0 -102
- package/dist/cli-tui/tui-renderer/branch-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/clear-controller.d.ts +0 -75
- package/dist/cli-tui/tui-renderer/clear-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/clear-controller.js +0 -75
- package/dist/cli-tui/tui-renderer/clear-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/client-tools-setup.d.ts +0 -14
- package/dist/cli-tui/tui-renderer/client-tools-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/client-tools-setup.js +0 -5
- package/dist/cli-tui/tui-renderer/client-tools-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/command-registry-options.d.ts +0 -111
- package/dist/cli-tui/tui-renderer/command-registry-options.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/command-registry-options.js +0 -163
- package/dist/cli-tui/tui-renderer/command-registry-options.js.map +0 -1
- package/dist/cli-tui/tui-renderer/command-registry.d.ts +0 -16
- package/dist/cli-tui/tui-renderer/command-registry.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/command-registry.js +0 -23
- package/dist/cli-tui/tui-renderer/command-registry.js.map +0 -1
- package/dist/cli-tui/tui-renderer/command-suite-wiring.d.ts +0 -29
- package/dist/cli-tui/tui-renderer/command-suite-wiring.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/command-suite-wiring.js +0 -108
- package/dist/cli-tui/tui-renderer/command-suite-wiring.js.map +0 -1
- package/dist/cli-tui/tui-renderer/compaction-controller.d.ts +0 -100
- package/dist/cli-tui/tui-renderer/compaction-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/compaction-controller.js +0 -160
- package/dist/cli-tui/tui-renderer/compaction-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/custom-commands-controller.d.ts +0 -42
- package/dist/cli-tui/tui-renderer/custom-commands-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/custom-commands-controller.js +0 -106
- package/dist/cli-tui/tui-renderer/custom-commands-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/delegating-command-handlers.d.ts +0 -37
- package/dist/cli-tui/tui-renderer/delegating-command-handlers.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/delegating-command-handlers.js +0 -139
- package/dist/cli-tui/tui-renderer/delegating-command-handlers.js.map +0 -1
- package/dist/cli-tui/tui-renderer/editor-bindings.d.ts +0 -21
- package/dist/cli-tui/tui-renderer/editor-bindings.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/editor-bindings.js +0 -76
- package/dist/cli-tui/tui-renderer/editor-bindings.js.map +0 -1
- package/dist/cli-tui/tui-renderer/footer-hints-controller.d.ts +0 -90
- package/dist/cli-tui/tui-renderer/footer-hints-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/footer-hints-controller.js +0 -152
- package/dist/cli-tui/tui-renderer/footer-hints-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/history-controller.d.ts +0 -35
- package/dist/cli-tui/tui-renderer/history-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/history-controller.js +0 -153
- package/dist/cli-tui/tui-renderer/history-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/hook-ui-controller.d.ts +0 -83
- package/dist/cli-tui/tui-renderer/hook-ui-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/hook-ui-controller.js +0 -309
- package/dist/cli-tui/tui-renderer/hook-ui-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/initial-preferences.d.ts +0 -19
- package/dist/cli-tui/tui-renderer/initial-preferences.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/initial-preferences.js +0 -54
- package/dist/cli-tui/tui-renderer/initial-preferences.js.map +0 -1
- package/dist/cli-tui/tui-renderer/input-controller.d.ts +0 -56
- package/dist/cli-tui/tui-renderer/input-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/input-controller.js +0 -104
- package/dist/cli-tui/tui-renderer/input-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/interrupt-setup.d.ts +0 -19
- package/dist/cli-tui/tui-renderer/interrupt-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/interrupt-setup.js +0 -18
- package/dist/cli-tui/tui-renderer/interrupt-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/loader-setup.d.ts +0 -14
- package/dist/cli-tui/tui-renderer/loader-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/loader-setup.js +0 -13
- package/dist/cli-tui/tui-renderer/loader-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/mcp-events-setup.d.ts +0 -55
- package/dist/cli-tui/tui-renderer/mcp-events-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/mcp-events-setup.js +0 -143
- package/dist/cli-tui/tui-renderer/mcp-events-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/misc-handlers.d.ts +0 -59
- package/dist/cli-tui/tui-renderer/misc-handlers.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/misc-handlers.js +0 -143
- package/dist/cli-tui/tui-renderer/misc-handlers.js.map +0 -1
- package/dist/cli-tui/tui-renderer/oauth-setup.d.ts +0 -14
- package/dist/cli-tui/tui-renderer/oauth-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/oauth-setup.js +0 -26
- package/dist/cli-tui/tui-renderer/oauth-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/plan-setup.d.ts +0 -19
- package/dist/cli-tui/tui-renderer/plan-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/plan-setup.js +0 -23
- package/dist/cli-tui/tui-renderer/plan-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.d.ts +0 -21
- package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.js +0 -64
- package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.js.map +0 -1
- package/dist/cli-tui/tui-renderer/queue-setup.d.ts +0 -18
- package/dist/cli-tui/tui-renderer/queue-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/queue-setup.js +0 -42
- package/dist/cli-tui/tui-renderer/queue-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/quick-settings-controller.d.ts +0 -53
- package/dist/cli-tui/tui-renderer/quick-settings-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/quick-settings-controller.js +0 -100
- package/dist/cli-tui/tui-renderer/quick-settings-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/session-setup.d.ts +0 -31
- package/dist/cli-tui/tui-renderer/session-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/session-setup.js +0 -45
- package/dist/cli-tui/tui-renderer/session-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/session-state-controller.d.ts +0 -66
- package/dist/cli-tui/tui-renderer/session-state-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/session-state-controller.js +0 -139
- package/dist/cli-tui/tui-renderer/session-state-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/skills-controller.d.ts +0 -70
- package/dist/cli-tui/tui-renderer/skills-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/skills-controller.js +0 -411
- package/dist/cli-tui/tui-renderer/skills-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/slash-hint-controller.d.ts +0 -90
- package/dist/cli-tui/tui-renderer/slash-hint-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/slash-hint-controller.js +0 -131
- package/dist/cli-tui/tui-renderer/slash-hint-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/tool-retry-setup.d.ts +0 -13
- package/dist/cli-tui/tui-renderer/tool-retry-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/tool-retry-setup.js +0 -5
- package/dist/cli-tui/tui-renderer/tool-retry-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/tooling-views-setup.d.ts +0 -38
- package/dist/cli-tui/tui-renderer/tooling-views-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/tooling-views-setup.js +0 -48
- package/dist/cli-tui/tui-renderer/tooling-views-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/ui-state-controller.d.ts +0 -70
- package/dist/cli-tui/tui-renderer/ui-state-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/ui-state-controller.js +0 -184
- package/dist/cli-tui/tui-renderer/ui-state-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/ui-state-setup.d.ts +0 -13
- package/dist/cli-tui/tui-renderer/ui-state-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/ui-state-setup.js +0 -11
- package/dist/cli-tui/tui-renderer/ui-state-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/utility-views-setup.d.ts +0 -26
- package/dist/cli-tui/tui-renderer/utility-views-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/utility-views-setup.js +0 -23
- package/dist/cli-tui/tui-renderer/utility-views-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/viewport-controller.d.ts +0 -33
- package/dist/cli-tui/tui-renderer/viewport-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/viewport-controller.js +0 -98
- package/dist/cli-tui/tui-renderer/viewport-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer.d.ts +0 -268
- package/dist/cli-tui/tui-renderer.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer.js +0 -2131
- package/dist/cli-tui/tui-renderer.js.map +0 -1
- package/dist/cli-tui/ui-state.d.ts +0 -27
- package/dist/cli-tui/ui-state.d.ts.map +0 -1
- package/dist/cli-tui/ui-state.js +0 -88
- package/dist/cli-tui/ui-state.js.map +0 -1
- package/dist/cli-tui/update-view.d.ts +0 -16
- package/dist/cli-tui/update-view.d.ts.map +0 -1
- package/dist/cli-tui/update-view.js +0 -45
- package/dist/cli-tui/update-view.js.map +0 -1
- package/dist/cli-tui/user-message.d.ts +0 -17
- package/dist/cli-tui/user-message.d.ts.map +0 -1
- package/dist/cli-tui/user-message.js +0 -83
- package/dist/cli-tui/user-message.js.map +0 -1
- package/dist/cli-tui/utils/borders.d.ts +0 -131
- package/dist/cli-tui/utils/borders.d.ts.map +0 -1
- package/dist/cli-tui/utils/borders.js +0 -254
- package/dist/cli-tui/utils/borders.js.map +0 -1
- package/dist/cli-tui/utils/commands/command-palette-view.d.ts +0 -22
- package/dist/cli-tui/utils/commands/command-palette-view.d.ts.map +0 -1
- package/dist/cli-tui/utils/commands/command-palette-view.js +0 -31
- package/dist/cli-tui/utils/commands/command-palette-view.js.map +0 -1
- package/dist/cli-tui/utils/commands/command-palette.d.ts +0 -29
- package/dist/cli-tui/utils/commands/command-palette.d.ts.map +0 -1
- package/dist/cli-tui/utils/commands/command-palette.js +0 -213
- package/dist/cli-tui/utils/commands/command-palette.js.map +0 -1
- package/dist/cli-tui/utils/commands/command-registry-builder.d.ts +0 -8
- package/dist/cli-tui/utils/commands/command-registry-builder.d.ts.map +0 -1
- package/dist/cli-tui/utils/commands/command-registry-builder.js +0 -9
- package/dist/cli-tui/utils/commands/command-registry-builder.js.map +0 -1
- package/dist/cli-tui/utils/commands/review-prompt.d.ts +0 -10
- package/dist/cli-tui/utils/commands/review-prompt.d.ts.map +0 -1
- package/dist/cli-tui/utils/commands/review-prompt.js +0 -90
- package/dist/cli-tui/utils/commands/review-prompt.js.map +0 -1
- package/dist/cli-tui/utils/commands/slash-hint-bar.d.ts +0 -15
- package/dist/cli-tui/utils/commands/slash-hint-bar.d.ts.map +0 -1
- package/dist/cli-tui/utils/commands/slash-hint-bar.js +0 -106
- package/dist/cli-tui/utils/commands/slash-hint-bar.js.map +0 -1
- package/dist/cli-tui/utils/env-detect.d.ts +0 -11
- package/dist/cli-tui/utils/env-detect.d.ts.map +0 -1
- package/dist/cli-tui/utils/env-detect.js +0 -107
- package/dist/cli-tui/utils/env-detect.js.map +0 -1
- package/dist/cli-tui/utils/external-editor.d.ts +0 -7
- package/dist/cli-tui/utils/external-editor.d.ts.map +0 -1
- package/dist/cli-tui/utils/external-editor.js +0 -53
- package/dist/cli-tui/utils/external-editor.js.map +0 -1
- package/dist/cli-tui/utils/footer-utils.d.ts +0 -169
- package/dist/cli-tui/utils/footer-utils.d.ts.map +0 -1
- package/dist/cli-tui/utils/footer-utils.js +0 -716
- package/dist/cli-tui/utils/footer-utils.js.map +0 -1
- package/dist/cli-tui/utils/footer-visual-widgets.d.ts +0 -38
- package/dist/cli-tui/utils/footer-visual-widgets.d.ts.map +0 -1
- package/dist/cli-tui/utils/footer-visual-widgets.js +0 -141
- package/dist/cli-tui/utils/footer-visual-widgets.js.map +0 -1
- package/dist/cli-tui/utils/git-branch-tracker.d.ts +0 -38
- package/dist/cli-tui/utils/git-branch-tracker.d.ts.map +0 -1
- package/dist/cli-tui/utils/git-branch-tracker.js +0 -90
- package/dist/cli-tui/utils/git-branch-tracker.js.map +0 -1
- package/dist/cli-tui/utils/glyphs.d.ts +0 -207
- package/dist/cli-tui/utils/glyphs.d.ts.map +0 -1
- package/dist/cli-tui/utils/glyphs.js +0 -249
- package/dist/cli-tui/utils/glyphs.js.map +0 -1
- package/dist/cli-tui/utils/layout.d.ts +0 -77
- package/dist/cli-tui/utils/layout.d.ts.map +0 -1
- package/dist/cli-tui/utils/layout.js +0 -83
- package/dist/cli-tui/utils/layout.js.map +0 -1
- package/dist/cli-tui/utils/links.d.ts +0 -2
- package/dist/cli-tui/utils/links.d.ts.map +0 -1
- package/dist/cli-tui/utils/links.js +0 -14
- package/dist/cli-tui/utils/links.js.map +0 -1
- package/dist/cli-tui/utils/motion.d.ts +0 -4
- package/dist/cli-tui/utils/motion.d.ts.map +0 -1
- package/dist/cli-tui/utils/motion.js +0 -28
- package/dist/cli-tui/utils/motion.js.map +0 -1
- package/dist/cli-tui/utils/runtime-badges.d.ts +0 -26
- package/dist/cli-tui/utils/runtime-badges.d.ts.map +0 -1
- package/dist/cli-tui/utils/runtime-badges.js +0 -178
- package/dist/cli-tui/utils/runtime-badges.js.map +0 -1
- package/dist/cli-tui/utils/shimmer.d.ts +0 -12
- package/dist/cli-tui/utils/shimmer.d.ts.map +0 -1
- package/dist/cli-tui/utils/shimmer.js +0 -57
- package/dist/cli-tui/utils/shimmer.js.map +0 -1
- package/dist/cli-tui/utils/stage-labels.d.ts +0 -9
- package/dist/cli-tui/utils/stage-labels.d.ts.map +0 -1
- package/dist/cli-tui/utils/stage-labels.js +0 -65
- package/dist/cli-tui/utils/stage-labels.js.map +0 -1
- package/dist/cli-tui/utils/text-formatting.d.ts +0 -13
- package/dist/cli-tui/utils/text-formatting.d.ts.map +0 -1
- package/dist/cli-tui/utils/text-formatting.js +0 -109
- package/dist/cli-tui/utils/text-formatting.js.map +0 -1
- package/dist/cli-tui/utils/text-preview.d.ts +0 -10
- package/dist/cli-tui/utils/text-preview.d.ts.map +0 -1
- package/dist/cli-tui/utils/text-preview.js +0 -26
- package/dist/cli-tui/utils/text-preview.js.map +0 -1
- package/dist/cli-tui/utils/tool-text-utils.d.ts +0 -42
- package/dist/cli-tui/utils/tool-text-utils.d.ts.map +0 -1
- package/dist/cli-tui/utils/tool-text-utils.js +0 -361
- package/dist/cli-tui/utils/tool-text-utils.js.map +0 -1
- package/dist/cli-tui/welcome-animation.d.ts +0 -24
- package/dist/cli-tui/welcome-animation.d.ts.map +0 -1
- package/dist/cli-tui/welcome-animation.js +0 -99
- package/dist/cli-tui/welcome-animation.js.map +0 -1
- package/dist/cli-tui/welcome-colors.d.ts +0 -3
- package/dist/cli-tui/welcome-colors.d.ts.map +0 -1
- package/dist/cli-tui/welcome-colors.js +0 -39
- package/dist/cli-tui/welcome-colors.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/autocomplete.d.ts +0 -304
- package/dist/node_modules/@evalops/tui/dist/autocomplete.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/autocomplete.js +0 -712
- package/dist/node_modules/@evalops/tui/dist/autocomplete.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/editor.d.ts +0 -185
- package/dist/node_modules/@evalops/tui/dist/components/editor.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/editor.js +0 -1460
- package/dist/node_modules/@evalops/tui/dist/components/editor.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/input.d.ts +0 -117
- package/dist/node_modules/@evalops/tui/dist/components/input.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/input.js +0 -391
- package/dist/node_modules/@evalops/tui/dist/components/input.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/layout.d.ts +0 -256
- package/dist/node_modules/@evalops/tui/dist/components/layout.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/layout.js +0 -478
- package/dist/node_modules/@evalops/tui/dist/components/layout.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/loader.d.ts +0 -199
- package/dist/node_modules/@evalops/tui/dist/components/loader.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/loader.js +0 -374
- package/dist/node_modules/@evalops/tui/dist/components/loader.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/markdown.d.ts +0 -65
- package/dist/node_modules/@evalops/tui/dist/components/markdown.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/markdown.js +0 -562
- package/dist/node_modules/@evalops/tui/dist/components/markdown.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/scroll-container.d.ts +0 -262
- package/dist/node_modules/@evalops/tui/dist/components/scroll-container.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/scroll-container.js +0 -575
- package/dist/node_modules/@evalops/tui/dist/components/scroll-container.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/select-list.d.ts +0 -131
- package/dist/node_modules/@evalops/tui/dist/components/select-list.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/select-list.js +0 -257
- package/dist/node_modules/@evalops/tui/dist/components/select-list.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/spacer.d.ts +0 -11
- package/dist/node_modules/@evalops/tui/dist/components/spacer.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/spacer.js +0 -19
- package/dist/node_modules/@evalops/tui/dist/components/spacer.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/status-bar.d.ts +0 -22
- package/dist/node_modules/@evalops/tui/dist/components/status-bar.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/status-bar.js +0 -44
- package/dist/node_modules/@evalops/tui/dist/components/status-bar.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/text.d.ts +0 -26
- package/dist/node_modules/@evalops/tui/dist/components/text.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/text.js +0 -181
- package/dist/node_modules/@evalops/tui/dist/components/text.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/truncated-text.d.ts +0 -15
- package/dist/node_modules/@evalops/tui/dist/components/truncated-text.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/truncated-text.js +0 -84
- package/dist/node_modules/@evalops/tui/dist/components/truncated-text.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/index.d.ts +0 -87
- package/dist/node_modules/@evalops/tui/dist/index.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/index.js +0 -85
- package/dist/node_modules/@evalops/tui/dist/index.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/keymap.d.ts +0 -189
- package/dist/node_modules/@evalops/tui/dist/keymap.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/keymap.js +0 -363
- package/dist/node_modules/@evalops/tui/dist/keymap.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.d.ts +0 -25
- package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.js +0 -828
- package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.d.ts +0 -40
- package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.js +0 -474
- package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/terminal.d.ts +0 -201
- package/dist/node_modules/@evalops/tui/dist/terminal.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/terminal.js +0 -241
- package/dist/node_modules/@evalops/tui/dist/terminal.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/tui.d.ts +0 -263
- package/dist/node_modules/@evalops/tui/dist/tui.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/tui.js +0 -694
- package/dist/node_modules/@evalops/tui/dist/tui.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.d.ts +0 -14
- package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.js +0 -44
- package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/utils.d.ts +0 -32
- package/dist/node_modules/@evalops/tui/dist/utils.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/utils.js +0 -556
- package/dist/node_modules/@evalops/tui/dist/utils.js.map +0 -1
- package/dist/node_modules/@evalops/tui/package.json +0 -58
- package/dist/skills/artifact-metadata.d.ts +0 -16
- package/dist/skills/artifact-metadata.d.ts.map +0 -1
- package/dist/skills/artifact-metadata.js +0 -86
- package/dist/skills/artifact-metadata.js.map +0 -1
- package/dist/skills/composer-diagnostics.d.ts +0 -69
- package/dist/skills/composer-diagnostics.d.ts.map +0 -1
- package/dist/skills/composer-diagnostics.js +0 -78
- package/dist/skills/composer-diagnostics.js.map +0 -1
- package/dist/skills/composer.d.ts +0 -19
- package/dist/skills/composer.d.ts.map +0 -1
- package/dist/skills/composer.js +0 -52
- package/dist/skills/composer.js.map +0 -1
- package/dist/skills/eval-harness.d.ts +0 -38
- package/dist/skills/eval-harness.d.ts.map +0 -1
- package/dist/skills/eval-harness.js +0 -112
- package/dist/skills/eval-harness.js.map +0 -1
- package/dist/skills/index.d.ts +0 -40
- package/dist/skills/index.d.ts.map +0 -1
- package/dist/skills/index.js +0 -40
- package/dist/skills/index.js.map +0 -1
- package/dist/skills/linter.d.ts +0 -36
- package/dist/skills/linter.d.ts.map +0 -1
- package/dist/skills/linter.js +0 -399
- package/dist/skills/linter.js.map +0 -1
- package/dist/skills/loader.d.ts +0 -252
- package/dist/skills/loader.d.ts.map +0 -1
- package/dist/skills/loader.js +0 -957
- package/dist/skills/loader.js.map +0 -1
- package/dist/skills/package-contract.d.ts +0 -45
- package/dist/skills/package-contract.d.ts.map +0 -1
- package/dist/skills/package-contract.js +0 -153
- package/dist/skills/package-contract.js.map +0 -1
- package/dist/skills/runtime-activation.d.ts +0 -68
- package/dist/skills/runtime-activation.d.ts.map +0 -1
- package/dist/skills/runtime-activation.js +0 -228
- package/dist/skills/runtime-activation.js.map +0 -1
- package/dist/skills/scaffold-from-template.d.ts +0 -58
- package/dist/skills/scaffold-from-template.d.ts.map +0 -1
- package/dist/skills/scaffold-from-template.js +0 -72
- package/dist/skills/scaffold-from-template.js.map +0 -1
- package/dist/skills/scaffolder.d.ts +0 -65
- package/dist/skills/scaffolder.d.ts.map +0 -1
- package/dist/skills/scaffolder.js +0 -167
- package/dist/skills/scaffolder.js.map +0 -1
- package/dist/skills/service-client.d.ts +0 -56
- package/dist/skills/service-client.d.ts.map +0 -1
- package/dist/skills/service-client.js +0 -266
- package/dist/skills/service-client.js.map +0 -1
- package/dist/skills/skill-templates.d.ts +0 -70
- package/dist/skills/skill-templates.d.ts.map +0 -1
- package/dist/skills/skill-templates.js +0 -154
- package/dist/skills/skill-templates.js.map +0 -1
- package/dist/skills/tool.d.ts +0 -21
- package/dist/skills/tool.d.ts.map +0 -1
- package/dist/skills/tool.js +0 -334
- package/dist/skills/tool.js.map +0 -1
- package/dist/skills/trust-cache.d.ts +0 -58
- package/dist/skills/trust-cache.d.ts.map +0 -1
- package/dist/skills/trust-cache.js +0 -130
- package/dist/skills/trust-cache.js.map +0 -1
- package/dist/skills/types.d.ts +0 -91
- package/dist/skills/types.d.ts.map +0 -1
- package/dist/skills/types.js +0 -8
- package/dist/skills/types.js.map +0 -1
- /package/dist/{cli-tui → runtime}/prompt-queue.d.ts +0 -0
- /package/dist/{cli-tui → runtime}/prompt-queue.js +0 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export function deriveRoutingOutcome(evidence) {
|
|
2
|
+
const shared = {
|
|
3
|
+
...(evidence.attempts !== undefined
|
|
4
|
+
? { attempts: Math.max(1, Math.floor(evidence.attempts)) }
|
|
5
|
+
: {}),
|
|
6
|
+
...(evidence.totalCostUsd !== undefined
|
|
7
|
+
? { totalCostUsd: Math.max(0, evidence.totalCostUsd) }
|
|
8
|
+
: {}),
|
|
9
|
+
};
|
|
10
|
+
if (evidence.userRejected) {
|
|
11
|
+
return {
|
|
12
|
+
verified: true,
|
|
13
|
+
success: false,
|
|
14
|
+
qualityScore: 0,
|
|
15
|
+
reasons: ["user_rejected"],
|
|
16
|
+
...shared,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
if (evidence.userRetried) {
|
|
20
|
+
return {
|
|
21
|
+
verified: true,
|
|
22
|
+
success: false,
|
|
23
|
+
qualityScore: 0,
|
|
24
|
+
reasons: ["user_retried"],
|
|
25
|
+
...shared,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
if (evidence.verificationPassed || evidence.userAccepted) {
|
|
29
|
+
return {
|
|
30
|
+
verified: true,
|
|
31
|
+
success: true,
|
|
32
|
+
qualityScore: 1,
|
|
33
|
+
reasons: [
|
|
34
|
+
evidence.verificationPassed ? "verification_passed" : "user_accepted",
|
|
35
|
+
],
|
|
36
|
+
...shared,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
verified: false,
|
|
41
|
+
success: false,
|
|
42
|
+
qualityScore: 0,
|
|
43
|
+
reasons: [
|
|
44
|
+
evidence.assistantCompleted
|
|
45
|
+
? "assistant_completed_without_verification"
|
|
46
|
+
: "assistant_did_not_complete",
|
|
47
|
+
],
|
|
48
|
+
...shared,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=outcome.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outcome.js","sourceRoot":"","sources":["../../../src/services/intelligent-router/outcome.ts"],"names":[],"mappings":"AAmBA,MAAM,UAAU,oBAAoB,CACnC,QAAgC;IAEhC,MAAM,MAAM,GAAG;QACd,GAAG,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS;YAClC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE;YAC1D,CAAC,CAAC,EAAE,CAAC;QACN,GAAG,CAAC,QAAQ,CAAC,YAAY,KAAK,SAAS;YACtC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE;YACtD,CAAC,CAAC,EAAE,CAAC;KACN,CAAC;IACF,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC3B,OAAO;YACN,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,CAAC;YACf,OAAO,EAAE,CAAC,eAAe,CAAC;YAC1B,GAAG,MAAM;SACT,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC1B,OAAO;YACN,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,CAAC;YACf,OAAO,EAAE,CAAC,cAAc,CAAC;YACzB,GAAG,MAAM;SACT,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,kBAAkB,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC1D,OAAO;YACN,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,CAAC;YACf,OAAO,EAAE;gBACR,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,eAAe;aACrE;YACD,GAAG,MAAM;SACT,CAAC;IACH,CAAC;IACD,OAAO;QACN,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,CAAC;QACf,OAAO,EAAE;YACR,QAAQ,CAAC,kBAAkB;gBAC1B,CAAC,CAAC,0CAA0C;gBAC5C,CAAC,CAAC,4BAA4B;SAC/B;QACD,GAAG,MAAM;KACT,CAAC;AACH,CAAC","sourcesContent":["export interface RoutingOutcomeEvidence {\n\tassistantCompleted: boolean;\n\tverificationPassed?: boolean;\n\tuserAccepted?: boolean;\n\tuserRejected?: boolean;\n\tuserRetried?: boolean;\n\tattempts?: number;\n\ttotalCostUsd?: number;\n}\n\nexport interface RoutingOutcome {\n\tverified: boolean;\n\tsuccess: boolean;\n\tqualityScore: number;\n\treasons: string[];\n\tattempts?: number;\n\ttotalCostUsd?: number;\n}\n\nexport function deriveRoutingOutcome(\n\tevidence: RoutingOutcomeEvidence,\n): RoutingOutcome {\n\tconst shared = {\n\t\t...(evidence.attempts !== undefined\n\t\t\t? { attempts: Math.max(1, Math.floor(evidence.attempts)) }\n\t\t\t: {}),\n\t\t...(evidence.totalCostUsd !== undefined\n\t\t\t? { totalCostUsd: Math.max(0, evidence.totalCostUsd) }\n\t\t\t: {}),\n\t};\n\tif (evidence.userRejected) {\n\t\treturn {\n\t\t\tverified: true,\n\t\t\tsuccess: false,\n\t\t\tqualityScore: 0,\n\t\t\treasons: [\"user_rejected\"],\n\t\t\t...shared,\n\t\t};\n\t}\n\tif (evidence.userRetried) {\n\t\treturn {\n\t\t\tverified: true,\n\t\t\tsuccess: false,\n\t\t\tqualityScore: 0,\n\t\t\treasons: [\"user_retried\"],\n\t\t\t...shared,\n\t\t};\n\t}\n\tif (evidence.verificationPassed || evidence.userAccepted) {\n\t\treturn {\n\t\t\tverified: true,\n\t\t\tsuccess: true,\n\t\t\tqualityScore: 1,\n\t\t\treasons: [\n\t\t\t\tevidence.verificationPassed ? \"verification_passed\" : \"user_accepted\",\n\t\t\t],\n\t\t\t...shared,\n\t\t};\n\t}\n\treturn {\n\t\tverified: false,\n\t\tsuccess: false,\n\t\tqualityScore: 0,\n\t\treasons: [\n\t\t\tevidence.assistantCompleted\n\t\t\t\t? \"assistant_completed_without_verification\"\n\t\t\t\t: \"assistant_did_not_complete\",\n\t\t],\n\t\t...shared,\n\t};\n}\n"]}
|
|
@@ -9,6 +9,8 @@ export interface RoutedModelSelection {
|
|
|
9
9
|
export declare function registeredRoutingModels(): RoutingModelCandidate[];
|
|
10
10
|
export declare function resolveIntelligentRouterTaskType(req: IncomingMessage, body?: unknown): string;
|
|
11
11
|
export declare function resolveIntelligentRouterStrategy(req: IncomingMessage): RoutingStrategy | undefined;
|
|
12
|
+
export declare function resolveIntelligentRouterProfileHint(req: IncomingMessage, body?: unknown): string | undefined;
|
|
13
|
+
export declare function resolveIntelligentRouterTaskSummary(body: unknown): string | undefined;
|
|
12
14
|
export declare function selectIntelligentRouterModel(params: {
|
|
13
15
|
req: IncomingMessage;
|
|
14
16
|
requestedModel?: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../../src/services/intelligent-router/recorder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAM7D,OAAO,KAAK,EAEX,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,oBAAoB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;CACtB;AAmBD,wBAAgB,uBAAuB,IAAI,qBAAqB,EAAE,CAQjE;AAED,wBAAgB,gCAAgC,CAC/C,GAAG,EAAE,eAAe,EACpB,IAAI,CAAC,EAAE,OAAO,GACZ,MAAM,CAaR;AAED,wBAAgB,gCAAgC,CAC/C,GAAG,EAAE,eAAe,GAClB,eAAe,GAAG,SAAS,CAU7B;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE;IACpD,GAAG,EAAE,eAAe,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;CACf,GAAG,oBAAoB,
|
|
1
|
+
{"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../../src/services/intelligent-router/recorder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAM7D,OAAO,KAAK,EAEX,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,oBAAoB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;CACtB;AAmBD,wBAAgB,uBAAuB,IAAI,qBAAqB,EAAE,CAQjE;AAED,wBAAgB,gCAAgC,CAC/C,GAAG,EAAE,eAAe,EACpB,IAAI,CAAC,EAAE,OAAO,GACZ,MAAM,CAaR;AAED,wBAAgB,gCAAgC,CAC/C,GAAG,EAAE,eAAe,GAClB,eAAe,GAAG,SAAS,CAU7B;AAED,wBAAgB,mCAAmC,CAClD,GAAG,EAAE,eAAe,EACpB,IAAI,CAAC,EAAE,OAAO,GACZ,MAAM,GAAG,SAAS,CAYpB;AAED,wBAAgB,mCAAmC,CAClD,IAAI,EAAE,OAAO,GACX,MAAM,GAAG,SAAS,CAqCpB;AAiBD,wBAAgB,4BAA4B,CAAC,MAAM,EAAE;IACpD,GAAG,EAAE,eAAe,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;CACf,GAAG,oBAAoB,CAyBvB;AAED,wBAAgB,iCAAiC,CAAC,MAAM,EAAE;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,gBAAgB,CAAC;CAC1B,GAAG,IAAI,CA0BP"}
|
|
@@ -53,15 +53,85 @@ export function resolveIntelligentRouterStrategy(req) {
|
|
|
53
53
|
? strategy
|
|
54
54
|
: undefined;
|
|
55
55
|
}
|
|
56
|
+
export function resolveIntelligentRouterProfileHint(req, body) {
|
|
57
|
+
const header = firstHeader(req, [
|
|
58
|
+
"x-maestro-agent-profile",
|
|
59
|
+
"x-composer-agent-profile",
|
|
60
|
+
]);
|
|
61
|
+
if (header)
|
|
62
|
+
return header;
|
|
63
|
+
if (!body || typeof body !== "object" || !("profile" in body))
|
|
64
|
+
return undefined;
|
|
65
|
+
const profile = body.profile;
|
|
66
|
+
return typeof profile === "string" && profile.trim()
|
|
67
|
+
? profile.trim()
|
|
68
|
+
: undefined;
|
|
69
|
+
}
|
|
70
|
+
export function resolveIntelligentRouterTaskSummary(body) {
|
|
71
|
+
if (!body || typeof body !== "object")
|
|
72
|
+
return undefined;
|
|
73
|
+
if ("taskSummary" in body) {
|
|
74
|
+
const summary = body.taskSummary;
|
|
75
|
+
if (typeof summary === "string" && summary.trim())
|
|
76
|
+
return summary.trim();
|
|
77
|
+
}
|
|
78
|
+
if (!("messages" in body) ||
|
|
79
|
+
!Array.isArray(body.messages)) {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
const messages = body.messages;
|
|
83
|
+
for (let index = messages.length - 1; index >= 0; index -= 1) {
|
|
84
|
+
const message = messages[index];
|
|
85
|
+
if (!message || typeof message !== "object" || !("content" in message))
|
|
86
|
+
continue;
|
|
87
|
+
if ("role" in message && message.role !== "user")
|
|
88
|
+
continue;
|
|
89
|
+
const content = message.content;
|
|
90
|
+
if (typeof content === "string" && content.trim())
|
|
91
|
+
return content.trim();
|
|
92
|
+
if (Array.isArray(content)) {
|
|
93
|
+
const text = content
|
|
94
|
+
.map((part) => part &&
|
|
95
|
+
typeof part === "object" &&
|
|
96
|
+
"text" in part &&
|
|
97
|
+
typeof part.text === "string"
|
|
98
|
+
? part.text
|
|
99
|
+
: "")
|
|
100
|
+
.filter(Boolean)
|
|
101
|
+
.join("\n")
|
|
102
|
+
.trim();
|
|
103
|
+
if (text)
|
|
104
|
+
return text;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return undefined;
|
|
108
|
+
}
|
|
109
|
+
function resolvePriorFailures(req, body) {
|
|
110
|
+
const header = firstHeader(req, [
|
|
111
|
+
"x-maestro-prior-failures",
|
|
112
|
+
"x-composer-prior-failures",
|
|
113
|
+
]);
|
|
114
|
+
const bodyValue = body && typeof body === "object"
|
|
115
|
+
? (body
|
|
116
|
+
.priorFailures ??
|
|
117
|
+
body.prior_failures)
|
|
118
|
+
: undefined;
|
|
119
|
+
const parsed = Number(header ?? bodyValue ?? 0);
|
|
120
|
+
return Number.isFinite(parsed) ? Math.max(0, Math.floor(parsed)) : 0;
|
|
121
|
+
}
|
|
56
122
|
export function selectIntelligentRouterModel(params) {
|
|
57
123
|
const taskType = resolveIntelligentRouterTaskType(params.req, params.body);
|
|
58
124
|
const modelHint = params.requestedModel ?? undefined;
|
|
59
125
|
const strategy = resolveIntelligentRouterStrategy(params.req);
|
|
126
|
+
const profileHint = resolveIntelligentRouterProfileHint(params.req, params.body);
|
|
60
127
|
const decision = getIntelligentRouterService().routeRequest({
|
|
61
128
|
taskType,
|
|
129
|
+
taskSummary: resolveIntelligentRouterTaskSummary(params.body),
|
|
130
|
+
priorFailures: resolvePriorFailures(params.req, params.body),
|
|
62
131
|
availableModels: registeredRoutingModels(),
|
|
63
132
|
...(modelHint ? { modelHint } : {}),
|
|
64
133
|
...(strategy ? { strategy } : {}),
|
|
134
|
+
...(profileHint ? { profileHint } : {}),
|
|
65
135
|
});
|
|
66
136
|
return {
|
|
67
137
|
taskType,
|
|
@@ -82,7 +152,8 @@ export function recordIntelligentRouterChatMetric(params) {
|
|
|
82
152
|
provider: params.provider,
|
|
83
153
|
model: params.model,
|
|
84
154
|
latencyMs: Date.now() - params.startedAt,
|
|
85
|
-
success:
|
|
155
|
+
success: false,
|
|
156
|
+
verified: false,
|
|
86
157
|
occurredAt: new Date(params.message.timestamp),
|
|
87
158
|
...(typeof costUsd === "number" ? { costUsd } : {}),
|
|
88
159
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recorder.js","sourceRoot":"","sources":["../../../src/services/intelligent-router/recorder.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IncomingMessage } from \"node:http\";\nimport type { AssistantMessage } from \"../../agent/types.js\";\nimport { getRegisteredModels } from \"../../models/registry.js\";\nimport { createLogger } from \"../../utils/logger.js\";\nimport { sanitizeWithStaticMask } from \"../../utils/secret-redactor.js\";\nimport { getIntelligentRouterService } from \"./service.js\";\nimport { ROUTING_STRATEGIES } from \"./types.js\";\nimport type {\n\tRoutedModel,\n\tRoutingDecision,\n\tRoutingModelCandidate,\n\tRoutingStrategy,\n} from \"./types.js\";\n\nconst logger = createLogger(\"intelligent-router:recorder\");\n\nexport interface RoutedModelSelection {\n\ttaskType: string;\n\tdecision: RoutingDecision;\n\tmodelInputs: string[];\n}\n\nfunction modelInput(model: RoutedModel): string {\n\treturn `${model.provider}/${model.model}`;\n}\n\nfunction firstHeader(\n\treq: IncomingMessage,\n\tnames: string[],\n): string | undefined {\n\tfor (const name of names) {\n\t\tconst raw = req.headers[name.toLowerCase()];\n\t\tconst value = Array.isArray(raw) ? raw[0] : raw;\n\t\tconst trimmed = value?.trim();\n\t\tif (trimmed) return trimmed;\n\t}\n\treturn undefined;\n}\n\nexport function registeredRoutingModels(): RoutingModelCandidate[] {\n\treturn getRegisteredModels().map((model) => ({\n\t\tprovider: model.provider,\n\t\tmodel: model.id,\n\t\tname: model.name || model.id,\n\t\tcost: model.cost,\n\t\tavailable: true,\n\t}));\n}\n\nexport function resolveIntelligentRouterTaskType(\n\treq: IncomingMessage,\n\tbody?: unknown,\n): string {\n\tconst header = firstHeader(req, [\n\t\t\"x-maestro-task-type\",\n\t\t\"x-composer-task-type\",\n\t]);\n\tif (header?.trim()) return header.trim();\n\tif (body && typeof body === \"object\" && \"taskType\" in body) {\n\t\tconst taskType = (body as { taskType?: unknown }).taskType;\n\t\tif (typeof taskType === \"string\" && taskType.trim()) {\n\t\t\treturn taskType.trim();\n\t\t}\n\t}\n\treturn \"chat\";\n}\n\nexport function resolveIntelligentRouterStrategy(\n\treq: IncomingMessage,\n): RoutingStrategy | undefined {\n\tconst header = firstHeader(req, [\n\t\t\"x-maestro-routing-strategy\",\n\t\t\"x-composer-routing-strategy\",\n\t]);\n\tif (!header?.trim()) return undefined;\n\tconst strategy = header.trim().toLowerCase();\n\treturn ROUTING_STRATEGIES.includes(strategy as RoutingStrategy)\n\t\t? (strategy as RoutingStrategy)\n\t\t: undefined;\n}\n\nexport function selectIntelligentRouterModel(params: {\n\treq: IncomingMessage;\n\trequestedModel?: string | null;\n\tbody?: unknown;\n}): RoutedModelSelection {\n\tconst taskType = resolveIntelligentRouterTaskType(params.req, params.body);\n\tconst modelHint = params.requestedModel ?? undefined;\n\tconst strategy = resolveIntelligentRouterStrategy(params.req);\n\tconst decision = getIntelligentRouterService().routeRequest({\n\t\ttaskType,\n\t\tavailableModels: registeredRoutingModels(),\n\t\t...(modelHint ? { modelHint } : {}),\n\t\t...(strategy ? { strategy } : {}),\n\t});\n\treturn {\n\t\ttaskType,\n\t\tdecision,\n\t\tmodelInputs: [\n\t\t\tmodelInput(decision.selectedModel),\n\t\t\t...decision.fallbackChain.map(modelInput),\n\t\t],\n\t};\n}\n\nexport function recordIntelligentRouterChatMetric(params: {\n\ttaskType: string;\n\tprovider: string;\n\tmodel: string;\n\tstartedAt: number;\n\tmessage: AssistantMessage;\n}): void {\n\tconst usage = params.message.usage;\n\tvoid Promise.resolve()\n\t\t.then(() => {\n\t\t\tconst costUsd = usage.cost?.total;\n\t\t\tgetIntelligentRouterService().recordPerformanceMetric({\n\t\t\t\ttaskType: params.taskType,\n\t\t\t\tprovider: params.provider,\n\t\t\t\tmodel: params.model,\n\t\t\t\tlatencyMs: Date.now() - params.startedAt,\n\t\t\t\tsuccess: params.message.stopReason !== \"error\",\n\t\t\t\toccurredAt: new Date(params.message.timestamp),\n\t\t\t\t...(typeof costUsd === \"number\" ? { costUsd } : {}),\n\t\t\t});\n\t\t})\n\t\t.catch((error) => {\n\t\t\tlogger.warn(\"Intelligent router metric recording failed\", {\n\t\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t),\n\t\t\t\ttaskType: params.taskType,\n\t\t\t\tprovider: params.provider,\n\t\t\t\tmodel: params.model,\n\t\t\t});\n\t\t});\n}\n"]}
|
|
1
|
+
{"version":3,"file":"recorder.js","sourceRoot":"","sources":["../../../src/services/intelligent-router/recorder.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IncomingMessage } from \"node:http\";\nimport type { AssistantMessage } from \"../../agent/types.js\";\nimport { getRegisteredModels } from \"../../models/registry.js\";\nimport { createLogger } from \"../../utils/logger.js\";\nimport { sanitizeWithStaticMask } from \"../../utils/secret-redactor.js\";\nimport { getIntelligentRouterService } from \"./service.js\";\nimport { ROUTING_STRATEGIES } from \"./types.js\";\nimport type {\n\tRoutedModel,\n\tRoutingDecision,\n\tRoutingModelCandidate,\n\tRoutingStrategy,\n} from \"./types.js\";\n\nconst logger = createLogger(\"intelligent-router:recorder\");\n\nexport interface RoutedModelSelection {\n\ttaskType: string;\n\tdecision: RoutingDecision;\n\tmodelInputs: string[];\n}\n\nfunction modelInput(model: RoutedModel): string {\n\treturn `${model.provider}/${model.model}`;\n}\n\nfunction firstHeader(\n\treq: IncomingMessage,\n\tnames: string[],\n): string | undefined {\n\tfor (const name of names) {\n\t\tconst raw = req.headers[name.toLowerCase()];\n\t\tconst value = Array.isArray(raw) ? raw[0] : raw;\n\t\tconst trimmed = value?.trim();\n\t\tif (trimmed) return trimmed;\n\t}\n\treturn undefined;\n}\n\nexport function registeredRoutingModels(): RoutingModelCandidate[] {\n\treturn getRegisteredModels().map((model) => ({\n\t\tprovider: model.provider,\n\t\tmodel: model.id,\n\t\tname: model.name || model.id,\n\t\tcost: model.cost,\n\t\tavailable: true,\n\t}));\n}\n\nexport function resolveIntelligentRouterTaskType(\n\treq: IncomingMessage,\n\tbody?: unknown,\n): string {\n\tconst header = firstHeader(req, [\n\t\t\"x-maestro-task-type\",\n\t\t\"x-composer-task-type\",\n\t]);\n\tif (header?.trim()) return header.trim();\n\tif (body && typeof body === \"object\" && \"taskType\" in body) {\n\t\tconst taskType = (body as { taskType?: unknown }).taskType;\n\t\tif (typeof taskType === \"string\" && taskType.trim()) {\n\t\t\treturn taskType.trim();\n\t\t}\n\t}\n\treturn \"chat\";\n}\n\nexport function resolveIntelligentRouterStrategy(\n\treq: IncomingMessage,\n): RoutingStrategy | undefined {\n\tconst header = firstHeader(req, [\n\t\t\"x-maestro-routing-strategy\",\n\t\t\"x-composer-routing-strategy\",\n\t]);\n\tif (!header?.trim()) return undefined;\n\tconst strategy = header.trim().toLowerCase();\n\treturn ROUTING_STRATEGIES.includes(strategy as RoutingStrategy)\n\t\t? (strategy as RoutingStrategy)\n\t\t: undefined;\n}\n\nexport function resolveIntelligentRouterProfileHint(\n\treq: IncomingMessage,\n\tbody?: unknown,\n): string | undefined {\n\tconst header = firstHeader(req, [\n\t\t\"x-maestro-agent-profile\",\n\t\t\"x-composer-agent-profile\",\n\t]);\n\tif (header) return header;\n\tif (!body || typeof body !== \"object\" || !(\"profile\" in body))\n\t\treturn undefined;\n\tconst profile = (body as { profile?: unknown }).profile;\n\treturn typeof profile === \"string\" && profile.trim()\n\t\t? profile.trim()\n\t\t: undefined;\n}\n\nexport function resolveIntelligentRouterTaskSummary(\n\tbody: unknown,\n): string | undefined {\n\tif (!body || typeof body !== \"object\") return undefined;\n\tif (\"taskSummary\" in body) {\n\t\tconst summary = (body as { taskSummary?: unknown }).taskSummary;\n\t\tif (typeof summary === \"string\" && summary.trim()) return summary.trim();\n\t}\n\tif (\n\t\t!(\"messages\" in body) ||\n\t\t!Array.isArray((body as { messages?: unknown }).messages)\n\t) {\n\t\treturn undefined;\n\t}\n\tconst messages = (body as { messages: unknown[] }).messages;\n\tfor (let index = messages.length - 1; index >= 0; index -= 1) {\n\t\tconst message = messages[index];\n\t\tif (!message || typeof message !== \"object\" || !(\"content\" in message))\n\t\t\tcontinue;\n\t\tif (\"role\" in message && message.role !== \"user\") continue;\n\t\tconst content = (message as { content?: unknown }).content;\n\t\tif (typeof content === \"string\" && content.trim()) return content.trim();\n\t\tif (Array.isArray(content)) {\n\t\t\tconst text = content\n\t\t\t\t.map((part) =>\n\t\t\t\t\tpart &&\n\t\t\t\t\ttypeof part === \"object\" &&\n\t\t\t\t\t\"text\" in part &&\n\t\t\t\t\ttypeof part.text === \"string\"\n\t\t\t\t\t\t? part.text\n\t\t\t\t\t\t: \"\",\n\t\t\t\t)\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.join(\"\\n\")\n\t\t\t\t.trim();\n\t\t\tif (text) return text;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction resolvePriorFailures(req: IncomingMessage, body: unknown): number {\n\tconst header = firstHeader(req, [\n\t\t\"x-maestro-prior-failures\",\n\t\t\"x-composer-prior-failures\",\n\t]);\n\tconst bodyValue =\n\t\tbody && typeof body === \"object\"\n\t\t\t? ((body as { priorFailures?: unknown; prior_failures?: unknown })\n\t\t\t\t\t.priorFailures ??\n\t\t\t\t(body as { prior_failures?: unknown }).prior_failures)\n\t\t\t: undefined;\n\tconst parsed = Number(header ?? bodyValue ?? 0);\n\treturn Number.isFinite(parsed) ? Math.max(0, Math.floor(parsed)) : 0;\n}\n\nexport function selectIntelligentRouterModel(params: {\n\treq: IncomingMessage;\n\trequestedModel?: string | null;\n\tbody?: unknown;\n}): RoutedModelSelection {\n\tconst taskType = resolveIntelligentRouterTaskType(params.req, params.body);\n\tconst modelHint = params.requestedModel ?? undefined;\n\tconst strategy = resolveIntelligentRouterStrategy(params.req);\n\tconst profileHint = resolveIntelligentRouterProfileHint(\n\t\tparams.req,\n\t\tparams.body,\n\t);\n\tconst decision = getIntelligentRouterService().routeRequest({\n\t\ttaskType,\n\t\ttaskSummary: resolveIntelligentRouterTaskSummary(params.body),\n\t\tpriorFailures: resolvePriorFailures(params.req, params.body),\n\t\tavailableModels: registeredRoutingModels(),\n\t\t...(modelHint ? { modelHint } : {}),\n\t\t...(strategy ? { strategy } : {}),\n\t\t...(profileHint ? { profileHint } : {}),\n\t});\n\treturn {\n\t\ttaskType,\n\t\tdecision,\n\t\tmodelInputs: [\n\t\t\tmodelInput(decision.selectedModel),\n\t\t\t...decision.fallbackChain.map(modelInput),\n\t\t],\n\t};\n}\n\nexport function recordIntelligentRouterChatMetric(params: {\n\ttaskType: string;\n\tprovider: string;\n\tmodel: string;\n\tstartedAt: number;\n\tmessage: AssistantMessage;\n}): void {\n\tconst usage = params.message.usage;\n\tvoid Promise.resolve()\n\t\t.then(() => {\n\t\t\tconst costUsd = usage.cost?.total;\n\t\t\tgetIntelligentRouterService().recordPerformanceMetric({\n\t\t\t\ttaskType: params.taskType,\n\t\t\t\tprovider: params.provider,\n\t\t\t\tmodel: params.model,\n\t\t\t\tlatencyMs: Date.now() - params.startedAt,\n\t\t\t\tsuccess: false,\n\t\t\t\tverified: false,\n\t\t\t\toccurredAt: new Date(params.message.timestamp),\n\t\t\t\t...(typeof costUsd === \"number\" ? { costUsd } : {}),\n\t\t\t});\n\t\t})\n\t\t.catch((error) => {\n\t\t\tlogger.warn(\"Intelligent router metric recording failed\", {\n\t\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t),\n\t\t\t\ttaskType: params.taskType,\n\t\t\t\tprovider: params.provider,\n\t\t\t\tmodel: params.model,\n\t\t\t});\n\t\t});\n}\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type ServiceAuthorityResolution } from "../service-authority.js";
|
|
2
2
|
import type { ModelPerformanceAggregate, ModelPerformanceMetricInput, RoutingDecision, RoutingModelCandidate, RoutingOverride, RoutingOverrideInput, RoutingRequestInput } from "./types.js";
|
|
3
|
+
export declare const MIN_VERIFIED_SAMPLES = 20;
|
|
3
4
|
export declare class IntelligentRouterService {
|
|
4
5
|
private readonly defaultModels;
|
|
5
6
|
private readonly now;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/services/intelligent-router/service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/services/intelligent-router/service.ts"],"names":[],"mappings":"AAOA,OAAO,EACN,KAAK,0BAA0B,EAE/B,MAAM,yBAAyB,CAAC;AAOjC,OAAO,KAAK,EACX,yBAAyB,EACzB,2BAA2B,EAE3B,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EAEpB,mBAAmB,EAGnB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,oBAAoB,KAAK,CAAC;AA8QvC,qBAAa,wBAAwB;IAMnC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG;IANrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAChE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;gBAGjC,aAAa,GAAE,MAAM,qBAAqB,EAAa,EACvD,GAAG,GAAE,MAAM,IAAuB;IAGpD,YAAY,IAAI,0BAA0B;IAI1C,uBAAuB,CACtB,KAAK,EAAE,2BAA2B,GAChC,yBAAyB;IAqD5B,YAAY,CAAC,KAAK,EAAE,mBAAmB,GAAG,eAAe;IAoIzD,WAAW,CAAC,KAAK,EAAE,oBAAoB,GAAG,eAAe;IAkBzD,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIzC,aAAa,IAAI,eAAe,EAAE;IAOlC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,yBAAyB,EAAE;IAe3D,aAAa,CAAC,KAAK,SAAK,GAAG,eAAe,EAAE;IAK5C,YAAY,IAAI,IAAI;IAMpB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,qBAAqB;CAQ7B;AAID,wBAAgB,2BAA2B,IAAI,wBAAwB,CAGtE;AAED,wBAAgB,kCAAkC,CACjD,OAAO,EAAE,wBAAwB,GAAG,IAAI,GACtC,IAAI,CAEN"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
|
+
import { recommendOracleConsultation } from "../../agent/oracle-consultation-policy.js";
|
|
3
|
+
import { resolveAgentProfile, } from "../../agent/profiles.js";
|
|
2
4
|
import { resolveServiceAuthority, } from "../service-authority.js";
|
|
3
5
|
import { IntelligentRouterValidationError, normalizePerformanceMetricInput, normalizeRoutingOverrideInput, normalizeRoutingRequest, } from "./normalize.js";
|
|
4
|
-
const
|
|
6
|
+
export const MIN_VERIFIED_SAMPLES = 20;
|
|
5
7
|
const MAX_LATENCIES = 100;
|
|
6
8
|
const MAX_DECISIONS = 100;
|
|
7
9
|
const STRATEGY_WEIGHTS = {
|
|
@@ -38,15 +40,20 @@ function aggregateFromState(state) {
|
|
|
38
40
|
provider: state.provider,
|
|
39
41
|
model: state.model,
|
|
40
42
|
samples: state.samples,
|
|
43
|
+
verifiedSamples: state.verifiedSamples,
|
|
41
44
|
productionSamples: state.productionSamples,
|
|
42
45
|
evalSamples: state.evalSamples,
|
|
43
46
|
successCount: state.successCount,
|
|
44
|
-
successRate: state.
|
|
47
|
+
successRate: state.verifiedSamples > 0
|
|
48
|
+
? state.successCount / state.verifiedSamples
|
|
49
|
+
: 0,
|
|
45
50
|
evalSuccessRate: state.evalSamples > 0 ? state.evalSuccessCount / state.evalSamples : 0,
|
|
46
51
|
averageLatencyMs: state.samples > 0 ? state.totalLatencyMs / state.samples : 0,
|
|
47
52
|
p95LatencyMs: percentile(state.latenciesMs, 0.95),
|
|
48
53
|
averageCostUsd: state.samples > 0 ? state.totalCostUsd / state.samples : 0,
|
|
49
|
-
qualityScore: state.
|
|
54
|
+
qualityScore: state.verifiedSamples > 0
|
|
55
|
+
? state.qualityScoreTotal / state.verifiedSamples
|
|
56
|
+
: 0.5,
|
|
50
57
|
evalQualityScore: state.evalSamples > 0
|
|
51
58
|
? state.evalQualityScoreTotal / state.evalSamples
|
|
52
59
|
: 0.5,
|
|
@@ -97,12 +104,12 @@ function latencyScore(aggregate) {
|
|
|
97
104
|
return Math.max(0, 1 - Math.min(latency, 30_000) / 30_000);
|
|
98
105
|
}
|
|
99
106
|
function successScore(aggregate) {
|
|
100
|
-
if (!aggregate?.
|
|
107
|
+
if (!aggregate?.verifiedSamples)
|
|
101
108
|
return 0.5;
|
|
102
109
|
return aggregate.successRate;
|
|
103
110
|
}
|
|
104
111
|
function qualityScore(aggregate) {
|
|
105
|
-
if (!aggregate?.
|
|
112
|
+
if (!aggregate?.verifiedSamples)
|
|
106
113
|
return 0.5;
|
|
107
114
|
return aggregate.qualityScore;
|
|
108
115
|
}
|
|
@@ -130,6 +137,9 @@ function scoreCandidate(params) {
|
|
|
130
137
|
if (params.aggregate?.productionSamples) {
|
|
131
138
|
reasons.push(`production_samples=${params.aggregate.productionSamples}`);
|
|
132
139
|
}
|
|
140
|
+
if ((params.aggregate?.verifiedSamples ?? 0) < MIN_VERIFIED_SAMPLES) {
|
|
141
|
+
reasons.push(`verified_samples=${params.aggregate?.verifiedSamples ?? 0}/${MIN_VERIFIED_SAMPLES}`);
|
|
142
|
+
}
|
|
133
143
|
if (params.aggregate?.evalSamples && !params.aggregate.productionSamples) {
|
|
134
144
|
reasons.push("eval_backed");
|
|
135
145
|
}
|
|
@@ -148,6 +158,8 @@ function scoreCandidate(params) {
|
|
|
148
158
|
costScore: cost,
|
|
149
159
|
qualityScore: quality,
|
|
150
160
|
samples: params.aggregate?.samples ?? 0,
|
|
161
|
+
verifiedSamples: params.aggregate?.verifiedSamples ?? 0,
|
|
162
|
+
promotionEligible: (params.aggregate?.verifiedSamples ?? 0) >= MIN_VERIFIED_SAMPLES,
|
|
151
163
|
productionSamples: params.aggregate?.productionSamples ?? 0,
|
|
152
164
|
evalSamples: params.aggregate?.evalSamples ?? 0,
|
|
153
165
|
evalBacked: Boolean(params.aggregate?.evalSamples && !params.aggregate.productionSamples),
|
|
@@ -161,6 +173,22 @@ function routedModelFromScore(score) {
|
|
|
161
173
|
model: score.model,
|
|
162
174
|
};
|
|
163
175
|
}
|
|
176
|
+
function profileProvider(provider) {
|
|
177
|
+
return ["anthropic", "openai", "openai-codex", "google"].includes(provider)
|
|
178
|
+
? provider
|
|
179
|
+
: "openai-codex";
|
|
180
|
+
}
|
|
181
|
+
function selectedAgentProfile(level, selected) {
|
|
182
|
+
const profile = resolveAgentProfile(level, profileProvider(selected.provider));
|
|
183
|
+
return Object.freeze({
|
|
184
|
+
...profile,
|
|
185
|
+
primary: Object.freeze({
|
|
186
|
+
...profile.primary,
|
|
187
|
+
provider: selected.provider,
|
|
188
|
+
model: selected.model,
|
|
189
|
+
}),
|
|
190
|
+
});
|
|
191
|
+
}
|
|
164
192
|
function overrideExpired(override, now) {
|
|
165
193
|
return override.expiresAt
|
|
166
194
|
? Date.parse(override.expiresAt) <= now.getTime()
|
|
@@ -187,6 +215,7 @@ export class IntelligentRouterService {
|
|
|
187
215
|
provider: metric.provider,
|
|
188
216
|
model: metric.model,
|
|
189
217
|
samples: 0,
|
|
218
|
+
verifiedSamples: 0,
|
|
190
219
|
productionSamples: 0,
|
|
191
220
|
evalSamples: 0,
|
|
192
221
|
successCount: 0,
|
|
@@ -200,8 +229,12 @@ export class IntelligentRouterService {
|
|
|
200
229
|
updatedAt: this.now(),
|
|
201
230
|
};
|
|
202
231
|
state.samples += 1;
|
|
203
|
-
if (metric.
|
|
204
|
-
state.
|
|
232
|
+
if (metric.verified) {
|
|
233
|
+
state.verifiedSamples += 1;
|
|
234
|
+
if (metric.success)
|
|
235
|
+
state.successCount += 1;
|
|
236
|
+
state.qualityScoreTotal += metric.qualityScore;
|
|
237
|
+
}
|
|
205
238
|
if (metric.source === "eval") {
|
|
206
239
|
state.evalSamples += 1;
|
|
207
240
|
if (metric.success)
|
|
@@ -219,7 +252,6 @@ export class IntelligentRouterService {
|
|
|
219
252
|
state.latenciesMs.splice(0, state.latenciesMs.length - MAX_LATENCIES);
|
|
220
253
|
}
|
|
221
254
|
state.totalCostUsd += metric.costUsd;
|
|
222
|
-
state.qualityScoreTotal += metric.qualityScore;
|
|
223
255
|
state.updatedAt =
|
|
224
256
|
metric.occurredAt instanceof Date
|
|
225
257
|
? metric.occurredAt
|
|
@@ -264,16 +296,25 @@ export class IntelligentRouterService {
|
|
|
264
296
|
const hintScore = request.modelHint
|
|
265
297
|
? availableScores.find((score) => modelMatchesHint({ provider: score.provider, model: score.model }, request.modelHint))
|
|
266
298
|
: undefined;
|
|
267
|
-
const
|
|
299
|
+
const baselineCandidate = request.availableModels[0];
|
|
300
|
+
const baselineScore = baselineCandidate
|
|
301
|
+
? availableScores.find((score) => score.provider === baselineCandidate.provider &&
|
|
302
|
+
score.model === baselineCandidate.model)
|
|
303
|
+
: undefined;
|
|
304
|
+
const enoughHistory = availableScores.some((score) => score.verifiedSamples >= MIN_VERIFIED_SAMPLES);
|
|
268
305
|
const selectedScore = overrideScore ??
|
|
269
|
-
(!enoughHistory
|
|
306
|
+
(!enoughHistory
|
|
307
|
+
? (hintScore ?? baselineScore ?? firstAvailable)
|
|
308
|
+
: firstAvailable);
|
|
270
309
|
const overrideApplied = overrideScore !== undefined;
|
|
271
310
|
const reason = overrideApplied
|
|
272
311
|
? "override"
|
|
273
312
|
: !enoughHistory && hintScore
|
|
274
|
-
? "
|
|
313
|
+
? "insufficient_verified_history_model_hint"
|
|
275
314
|
: "highest_score";
|
|
276
315
|
const selected = routedModelFromScore(selectedScore);
|
|
316
|
+
const selectedProfile = selectedAgentProfile(request.profileLevel, selected);
|
|
317
|
+
const fallbackProfiles = selectedProfile.fallbackLevels.map((level) => resolveAgentProfile(level, profileProvider(selected.provider)));
|
|
277
318
|
const fallbackChain = availableScores
|
|
278
319
|
.filter((score) => score.provider !== selected.provider ||
|
|
279
320
|
score.model !== selected.model)
|
|
@@ -289,11 +330,19 @@ export class IntelligentRouterService {
|
|
|
289
330
|
taskType: request.taskType,
|
|
290
331
|
strategy: request.strategy,
|
|
291
332
|
selectedModel: selected,
|
|
333
|
+
selectedProfile,
|
|
334
|
+
fallbackProfiles,
|
|
292
335
|
fallbackChain,
|
|
293
336
|
scores,
|
|
294
337
|
overrideApplied,
|
|
295
338
|
reason,
|
|
296
339
|
createdAt,
|
|
340
|
+
oracleConsultation: recommendOracleConsultation({
|
|
341
|
+
profileLevel: selectedProfile.level,
|
|
342
|
+
taskType: request.taskType,
|
|
343
|
+
taskSummary: request.taskSummary,
|
|
344
|
+
priorFailures: request.priorFailures,
|
|
345
|
+
}),
|
|
297
346
|
...(request.modelHint ? { modelHint: request.modelHint } : {}),
|
|
298
347
|
};
|
|
299
348
|
this.decisions.unshift(decision);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/services/intelligent-router/service.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash } from \"node:crypto\";\nimport {\n\ttype ServiceAuthorityResolution,\n\tresolveServiceAuthority,\n} from \"../service-authority.js\";\nimport {\n\tIntelligentRouterValidationError,\n\tnormalizePerformanceMetricInput,\n\tnormalizeRoutingOverrideInput,\n\tnormalizeRoutingRequest,\n} from \"./normalize.js\";\nimport type {\n\tModelPerformanceAggregate,\n\tModelPerformanceMetricInput,\n\tRoutedModel,\n\tRoutingDecision,\n\tRoutingModelCandidate,\n\tRoutingOverride,\n\tRoutingOverrideInput,\n\tRoutingRequestInput,\n\tRoutingScore,\n\tRoutingStrategy,\n} from \"./types.js\";\n\nconst MIN_HISTORY_SAMPLES = 2;\nconst MAX_LATENCIES = 100;\nconst MAX_DECISIONS = 100;\n\ninterface MetricState {\n\ttaskType: string;\n\tprovider: string;\n\tmodel: string;\n\tsamples: number;\n\tproductionSamples: number;\n\tevalSamples: number;\n\tsuccessCount: number;\n\tevalSuccessCount: number;\n\ttotalLatencyMs: number;\n\tlatenciesMs: number[];\n\ttotalCostUsd: number;\n\tqualityScoreTotal: number;\n\tevalQualityScoreTotal: number;\n\tevalSuites: Set<string>;\n\tupdatedAt: Date;\n}\n\ninterface StrategyWeights {\n\tsuccess: number;\n\tlatency: number;\n\tcost: number;\n\tquality: number;\n}\n\nconst STRATEGY_WEIGHTS: Record<RoutingStrategy, StrategyWeights> = {\n\tbalanced: { success: 0.45, latency: 0.25, cost: 0.2, quality: 0.1 },\n\tquality: { success: 0.3, latency: 0.05, cost: 0.05, quality: 0.6 },\n\tcost: { success: 0.25, latency: 0.15, cost: 0.55, quality: 0.05 },\n\tlatency: { success: 0.3, latency: 0.55, cost: 0.1, quality: 0.05 },\n};\n\nfunction modelKey(provider: string, model: string): string {\n\treturn `${provider}/${model}`;\n}\n\nfunction metricKey(taskType: string, provider: string, model: string): string {\n\treturn `${taskType}:${modelKey(provider, model)}`;\n}\n\nfunction normalizeModelRef(value: string): string {\n\treturn value.trim().toLowerCase();\n}\n\nfunction decisionId(payload: unknown): string {\n\treturn `route_${createHash(\"sha256\")\n\t\t.update(JSON.stringify(payload))\n\t\t.digest(\"hex\")\n\t\t.slice(0, 16)}`;\n}\n\nfunction percentile(values: number[], ratio: number): number {\n\tif (values.length === 0) return 0;\n\tconst sorted = [...values].sort((a, b) => a - b);\n\tconst index = Math.min(\n\t\tsorted.length - 1,\n\t\tMath.max(0, Math.ceil(sorted.length * ratio) - 1),\n\t);\n\treturn sorted[index] ?? 0;\n}\n\nfunction aggregateFromState(state: MetricState): ModelPerformanceAggregate {\n\treturn {\n\t\ttaskType: state.taskType,\n\t\tprovider: state.provider,\n\t\tmodel: state.model,\n\t\tsamples: state.samples,\n\t\tproductionSamples: state.productionSamples,\n\t\tevalSamples: state.evalSamples,\n\t\tsuccessCount: state.successCount,\n\t\tsuccessRate: state.samples > 0 ? state.successCount / state.samples : 0,\n\t\tevalSuccessRate:\n\t\t\tstate.evalSamples > 0 ? state.evalSuccessCount / state.evalSamples : 0,\n\t\taverageLatencyMs:\n\t\t\tstate.samples > 0 ? state.totalLatencyMs / state.samples : 0,\n\t\tp95LatencyMs: percentile(state.latenciesMs, 0.95),\n\t\taverageCostUsd: state.samples > 0 ? state.totalCostUsd / state.samples : 0,\n\t\tqualityScore:\n\t\t\tstate.samples > 0 ? state.qualityScoreTotal / state.samples : 0.5,\n\t\tevalQualityScore:\n\t\t\tstate.evalSamples > 0\n\t\t\t\t? state.evalQualityScoreTotal / state.evalSamples\n\t\t\t\t: 0.5,\n\t\tevalSuites: Array.from(state.evalSuites).sort(),\n\t\tupdatedAt: state.updatedAt.toISOString(),\n\t};\n}\n\nfunction candidateKey(candidate: RoutingModelCandidate): string {\n\treturn modelKey(candidate.provider, candidate.model);\n}\n\nfunction modelMatchesHint(\n\tcandidate: RoutingModelCandidate,\n\thint: string | undefined,\n): boolean {\n\tif (!hint) return false;\n\tconst normalizedHint = normalizeModelRef(hint);\n\tconst candidateRefs = [\n\t\tcandidate.model,\n\t\tcandidateKey(candidate),\n\t\t`${candidate.provider}:${candidate.model}`,\n\t];\n\treturn candidateRefs.some(\n\t\t(candidateRef) => normalizeModelRef(candidateRef) === normalizedHint,\n\t);\n}\n\nfunction costEstimate(candidate: RoutingModelCandidate): number | undefined {\n\tconst cost = candidate.cost;\n\tif (!cost) return undefined;\n\tconst values = [\n\t\tcost.input,\n\t\tcost.output,\n\t\tcost.cacheRead,\n\t\tcost.cacheWrite,\n\t].filter(\n\t\t(value): value is number =>\n\t\t\ttypeof value === \"number\" && Number.isFinite(value),\n\t);\n\tif (values.length === 0) return undefined;\n\treturn values.reduce((total, value) => total + value, 0) / values.length;\n}\n\nfunction costScore(\n\taggregate: ModelPerformanceAggregate | undefined,\n\tcandidate: RoutingModelCandidate,\n): number {\n\tconst cost = aggregate?.samples\n\t\t? aggregate.averageCostUsd\n\t\t: costEstimate(candidate);\n\tif (cost === undefined || cost <= 0) return 0.5;\n\treturn 1 / (1 + cost);\n}\n\nfunction latencyScore(\n\taggregate: ModelPerformanceAggregate | undefined,\n): number {\n\tif (!aggregate?.samples) return 0.5;\n\tconst latency = aggregate.p95LatencyMs || aggregate.averageLatencyMs;\n\treturn Math.max(0, 1 - Math.min(latency, 30_000) / 30_000);\n}\n\nfunction successScore(\n\taggregate: ModelPerformanceAggregate | undefined,\n): number {\n\tif (!aggregate?.samples) return 0.5;\n\treturn aggregate.successRate;\n}\n\nfunction qualityScore(\n\taggregate: ModelPerformanceAggregate | undefined,\n): number {\n\tif (!aggregate?.samples) return 0.5;\n\treturn aggregate.qualityScore;\n}\n\nfunction scoreCandidate(params: {\n\tcandidate: RoutingModelCandidate;\n\taggregate?: ModelPerformanceAggregate;\n\tstrategy: RoutingStrategy;\n\tavailable: boolean;\n}): RoutingScore {\n\tconst weights = STRATEGY_WEIGHTS[params.strategy];\n\tconst success = successScore(params.aggregate);\n\tconst latency = latencyScore(params.aggregate);\n\tconst cost = costScore(params.aggregate, params.candidate);\n\tconst quality = qualityScore(params.aggregate);\n\tconst score = params.available\n\t\t? success * weights.success +\n\t\t\tlatency * weights.latency +\n\t\t\tcost * weights.cost +\n\t\t\tquality * weights.quality\n\t\t: -1;\n\tconst reasons = [\n\t\t`success=${success.toFixed(2)}`,\n\t\t`latency=${latency.toFixed(2)}`,\n\t\t`cost=${cost.toFixed(2)}`,\n\t\t`quality=${quality.toFixed(2)}`,\n\t];\n\tif (params.aggregate?.evalSamples) {\n\t\treasons.push(`eval_samples=${params.aggregate.evalSamples}`);\n\t}\n\tif (params.aggregate?.productionSamples) {\n\t\treasons.push(`production_samples=${params.aggregate.productionSamples}`);\n\t}\n\tif (params.aggregate?.evalSamples && !params.aggregate.productionSamples) {\n\t\treasons.push(\"eval_backed\");\n\t}\n\tif (!params.available) {\n\t\treasons.push(\"unavailable\");\n\t}\n\tif (!params.aggregate?.samples) {\n\t\treasons.push(\"cold_start\");\n\t}\n\treturn {\n\t\tprovider: params.candidate.provider,\n\t\tmodel: params.candidate.model,\n\t\tscore,\n\t\tsuccessRate: success,\n\t\tlatencyScore: latency,\n\t\tcostScore: cost,\n\t\tqualityScore: quality,\n\t\tsamples: params.aggregate?.samples ?? 0,\n\t\tproductionSamples: params.aggregate?.productionSamples ?? 0,\n\t\tevalSamples: params.aggregate?.evalSamples ?? 0,\n\t\tevalBacked: Boolean(\n\t\t\tparams.aggregate?.evalSamples && !params.aggregate.productionSamples,\n\t\t),\n\t\tavailable: params.available,\n\t\treasons,\n\t};\n}\n\nfunction routedModelFromScore(score: RoutingScore): RoutedModel {\n\treturn {\n\t\tprovider: score.provider,\n\t\tmodel: score.model,\n\t};\n}\n\nfunction overrideExpired(override: RoutingOverride, now: Date): boolean {\n\treturn override.expiresAt\n\t\t? Date.parse(override.expiresAt) <= now.getTime()\n\t\t: false;\n}\n\nexport class IntelligentRouterService {\n\tprivate readonly metrics = new Map<string, MetricState>();\n\tprivate readonly overrides = new Map<string, RoutingOverride>();\n\tprivate readonly decisions: RoutingDecision[] = [];\n\n\tconstructor(\n\t\tprivate readonly defaultModels: () => RoutingModelCandidate[] = () => [],\n\t\tprivate readonly now: () => Date = () => new Date(),\n\t) {}\n\n\tgetAuthority(): ServiceAuthorityResolution {\n\t\treturn resolveServiceAuthority(\"intelligent_router\");\n\t}\n\n\trecordPerformanceMetric(\n\t\tinput: ModelPerformanceMetricInput,\n\t): ModelPerformanceAggregate {\n\t\tconst metric = normalizePerformanceMetricInput(input);\n\t\tconst key = metricKey(metric.taskType, metric.provider, metric.model);\n\t\tconst existing = this.metrics.get(key);\n\t\tconst state =\n\t\t\texisting ??\n\t\t\t({\n\t\t\t\ttaskType: metric.taskType,\n\t\t\t\tprovider: metric.provider,\n\t\t\t\tmodel: metric.model,\n\t\t\t\tsamples: 0,\n\t\t\t\tproductionSamples: 0,\n\t\t\t\tevalSamples: 0,\n\t\t\t\tsuccessCount: 0,\n\t\t\t\tevalSuccessCount: 0,\n\t\t\t\ttotalLatencyMs: 0,\n\t\t\t\tlatenciesMs: [],\n\t\t\t\ttotalCostUsd: 0,\n\t\t\t\tqualityScoreTotal: 0,\n\t\t\t\tevalQualityScoreTotal: 0,\n\t\t\t\tevalSuites: new Set<string>(),\n\t\t\t\tupdatedAt: this.now(),\n\t\t\t} satisfies MetricState);\n\n\t\tstate.samples += 1;\n\t\tif (metric.success) state.successCount += 1;\n\t\tif (metric.source === \"eval\") {\n\t\t\tstate.evalSamples += 1;\n\t\t\tif (metric.success) state.evalSuccessCount += 1;\n\t\t\tstate.evalQualityScoreTotal += metric.qualityScore;\n\t\t\tif (metric.evalSuite) state.evalSuites.add(metric.evalSuite);\n\t\t} else {\n\t\t\tstate.productionSamples += 1;\n\t\t}\n\t\tstate.totalLatencyMs += metric.latencyMs;\n\t\tstate.latenciesMs.push(metric.latencyMs);\n\t\tif (state.latenciesMs.length > MAX_LATENCIES) {\n\t\t\tstate.latenciesMs.splice(0, state.latenciesMs.length - MAX_LATENCIES);\n\t\t}\n\t\tstate.totalCostUsd += metric.costUsd;\n\t\tstate.qualityScoreTotal += metric.qualityScore;\n\t\tstate.updatedAt =\n\t\t\tmetric.occurredAt instanceof Date\n\t\t\t\t? metric.occurredAt\n\t\t\t\t: new Date(metric.occurredAt);\n\t\tthis.metrics.set(key, state);\n\t\treturn aggregateFromState(state);\n\t}\n\n\trouteRequest(input: RoutingRequestInput): RoutingDecision {\n\t\tconst request = normalizeRoutingRequest(input, this.defaultModels());\n\t\tif (request.availableModels.length === 0) {\n\t\t\tthrow new IntelligentRouterValidationError(\n\t\t\t\t\"No available models were provided for routing.\",\n\t\t\t);\n\t\t}\n\n\t\tthis.pruneExpiredOverrides();\n\t\tconst unavailable = new Set(\n\t\t\trequest.unavailableModels.map((entry) => normalizeModelRef(entry)),\n\t\t);\n\t\tconst scores = request.availableModels\n\t\t\t.map((candidate) => {\n\t\t\t\tconst aggregate = this.getAggregate(\n\t\t\t\t\trequest.taskType,\n\t\t\t\t\tcandidate.provider,\n\t\t\t\t\tcandidate.model,\n\t\t\t\t);\n\t\t\t\tconst available =\n\t\t\t\t\tcandidate.available !== false &&\n\t\t\t\t\t!unavailable.has(normalizeModelRef(candidate.model)) &&\n\t\t\t\t\t!unavailable.has(normalizeModelRef(candidateKey(candidate)));\n\t\t\t\treturn scoreCandidate({\n\t\t\t\t\tcandidate,\n\t\t\t\t\taggregate,\n\t\t\t\t\tstrategy: request.strategy,\n\t\t\t\t\tavailable,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.sort((a, b) => b.score - a.score || a.model.localeCompare(b.model));\n\n\t\tconst availableScores = scores.filter((score) => score.available);\n\t\tif (availableScores.length === 0) {\n\t\t\tthrow new IntelligentRouterValidationError(\n\t\t\t\t\"All models are marked unavailable.\",\n\t\t\t);\n\t\t}\n\t\tconst firstAvailable = availableScores[0];\n\t\tif (!firstAvailable) {\n\t\t\tthrow new IntelligentRouterValidationError(\n\t\t\t\t\"All models are marked unavailable.\",\n\t\t\t);\n\t\t}\n\n\t\tconst override = this.overrides.get(request.taskType);\n\t\tconst overrideScore =\n\t\t\toverride && !overrideExpired(override, this.now())\n\t\t\t\t? availableScores.find(\n\t\t\t\t\t\t(score) =>\n\t\t\t\t\t\t\tscore.provider === override.provider &&\n\t\t\t\t\t\t\tscore.model === override.model,\n\t\t\t\t\t)\n\t\t\t\t: undefined;\n\t\tconst hintScore = request.modelHint\n\t\t\t? availableScores.find((score) =>\n\t\t\t\t\tmodelMatchesHint(\n\t\t\t\t\t\t{ provider: score.provider, model: score.model },\n\t\t\t\t\t\trequest.modelHint,\n\t\t\t\t\t),\n\t\t\t\t)\n\t\t\t: undefined;\n\t\tconst enoughHistory = availableScores.some(\n\t\t\t(score) => score.samples >= MIN_HISTORY_SAMPLES,\n\t\t);\n\t\tconst selectedScore =\n\t\t\toverrideScore ??\n\t\t\t(!enoughHistory && hintScore ? hintScore : firstAvailable);\n\t\tconst overrideApplied = overrideScore !== undefined;\n\t\tconst reason = overrideApplied\n\t\t\t? \"override\"\n\t\t\t: !enoughHistory && hintScore\n\t\t\t\t? \"insufficient_history_model_hint\"\n\t\t\t\t: \"highest_score\";\n\t\tconst selected = routedModelFromScore(selectedScore);\n\t\tconst fallbackChain = availableScores\n\t\t\t.filter(\n\t\t\t\t(score) =>\n\t\t\t\t\tscore.provider !== selected.provider ||\n\t\t\t\t\tscore.model !== selected.model,\n\t\t\t)\n\t\t\t.map(routedModelFromScore);\n\t\tconst createdAt = this.now().toISOString();\n\t\tconst decision: RoutingDecision = {\n\t\t\tdecisionId: decisionId({\n\t\t\t\ttaskType: request.taskType,\n\t\t\t\tstrategy: request.strategy,\n\t\t\t\tselected,\n\t\t\t\tcreatedAt,\n\t\t\t}),\n\t\t\ttaskType: request.taskType,\n\t\t\tstrategy: request.strategy,\n\t\t\tselectedModel: selected,\n\t\t\tfallbackChain,\n\t\t\tscores,\n\t\t\toverrideApplied,\n\t\t\treason,\n\t\t\tcreatedAt,\n\t\t\t...(request.modelHint ? { modelHint: request.modelHint } : {}),\n\t\t};\n\t\tthis.decisions.unshift(decision);\n\t\tif (this.decisions.length > MAX_DECISIONS) {\n\t\t\tthis.decisions.splice(MAX_DECISIONS);\n\t\t}\n\t\treturn decision;\n\t}\n\n\tsetOverride(input: RoutingOverrideInput): RoutingOverride {\n\t\tconst overrideInput = normalizeRoutingOverrideInput(input);\n\t\tconst expiresAt =\n\t\t\toverrideInput.expiresAt instanceof Date\n\t\t\t\t? overrideInput.expiresAt.toISOString()\n\t\t\t\t: overrideInput.expiresAt;\n\t\tconst override: RoutingOverride = {\n\t\t\ttaskType: overrideInput.taskType,\n\t\t\tprovider: overrideInput.provider,\n\t\t\tmodel: overrideInput.model,\n\t\t\tcreatedAt: this.now().toISOString(),\n\t\t\t...(overrideInput.reason ? { reason: overrideInput.reason } : {}),\n\t\t\t...(expiresAt ? { expiresAt } : {}),\n\t\t};\n\t\tthis.overrides.set(override.taskType, override);\n\t\treturn override;\n\t}\n\n\tdeleteOverride(taskType: string): boolean {\n\t\treturn this.overrides.delete(taskType.trim());\n\t}\n\n\tlistOverrides(): RoutingOverride[] {\n\t\tthis.pruneExpiredOverrides();\n\t\treturn Array.from(this.overrides.values()).sort((a, b) =>\n\t\t\ta.taskType.localeCompare(b.taskType),\n\t\t);\n\t}\n\n\tlistMetrics(taskType?: string): ModelPerformanceAggregate[] {\n\t\tconst aggregates = Array.from(this.metrics.values()).map(\n\t\t\taggregateFromState,\n\t\t);\n\t\tconst filtered = taskType\n\t\t\t? aggregates.filter((metric) => metric.taskType === taskType)\n\t\t\t: aggregates;\n\t\treturn filtered.sort(\n\t\t\t(a, b) =>\n\t\t\t\ta.taskType.localeCompare(b.taskType) ||\n\t\t\t\ta.provider.localeCompare(b.provider) ||\n\t\t\t\ta.model.localeCompare(b.model),\n\t\t);\n\t}\n\n\tlistDecisions(limit = 20): RoutingDecision[] {\n\t\tconst normalizedLimit = Math.max(1, Math.min(100, Math.floor(limit)));\n\t\treturn this.decisions.slice(0, normalizedLimit);\n\t}\n\n\tclearForTest(): void {\n\t\tthis.metrics.clear();\n\t\tthis.overrides.clear();\n\t\tthis.decisions.length = 0;\n\t}\n\n\tprivate getAggregate(\n\t\ttaskType: string,\n\t\tprovider: string,\n\t\tmodel: string,\n\t): ModelPerformanceAggregate | undefined {\n\t\tconst state = this.metrics.get(metricKey(taskType, provider, model));\n\t\treturn state ? aggregateFromState(state) : undefined;\n\t}\n\n\tprivate pruneExpiredOverrides(): void {\n\t\tconst now = this.now();\n\t\tfor (const [taskType, override] of this.overrides) {\n\t\t\tif (overrideExpired(override, now)) {\n\t\t\t\tthis.overrides.delete(taskType);\n\t\t\t}\n\t\t}\n\t}\n}\n\nlet defaultIntelligentRouterService: IntelligentRouterService | null = null;\n\nexport function getIntelligentRouterService(): IntelligentRouterService {\n\tdefaultIntelligentRouterService ??= new IntelligentRouterService();\n\treturn defaultIntelligentRouterService;\n}\n\nexport function setIntelligentRouterServiceForTest(\n\tservice: IntelligentRouterService | null,\n): void {\n\tdefaultIntelligentRouterService = service;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/services/intelligent-router/service.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash } from \"node:crypto\";\nimport type { ModelProvider } from \"../../agent/modes.js\";\nimport { recommendOracleConsultation } from \"../../agent/oracle-consultation-policy.js\";\nimport {\n\ttype AgentProfile,\n\tresolveAgentProfile,\n} from \"../../agent/profiles.js\";\nimport {\n\ttype ServiceAuthorityResolution,\n\tresolveServiceAuthority,\n} from \"../service-authority.js\";\nimport {\n\tIntelligentRouterValidationError,\n\tnormalizePerformanceMetricInput,\n\tnormalizeRoutingOverrideInput,\n\tnormalizeRoutingRequest,\n} from \"./normalize.js\";\nimport type {\n\tModelPerformanceAggregate,\n\tModelPerformanceMetricInput,\n\tRoutedModel,\n\tRoutingDecision,\n\tRoutingModelCandidate,\n\tRoutingOverride,\n\tRoutingOverrideInput,\n\tRoutingRequest,\n\tRoutingRequestInput,\n\tRoutingScore,\n\tRoutingStrategy,\n} from \"./types.js\";\n\nexport const MIN_VERIFIED_SAMPLES = 20;\nconst MAX_LATENCIES = 100;\nconst MAX_DECISIONS = 100;\n\ninterface MetricState {\n\ttaskType: string;\n\tprovider: string;\n\tmodel: string;\n\tsamples: number;\n\tverifiedSamples: number;\n\tproductionSamples: number;\n\tevalSamples: number;\n\tsuccessCount: number;\n\tevalSuccessCount: number;\n\ttotalLatencyMs: number;\n\tlatenciesMs: number[];\n\ttotalCostUsd: number;\n\tqualityScoreTotal: number;\n\tevalQualityScoreTotal: number;\n\tevalSuites: Set<string>;\n\tupdatedAt: Date;\n}\n\ninterface StrategyWeights {\n\tsuccess: number;\n\tlatency: number;\n\tcost: number;\n\tquality: number;\n}\n\nconst STRATEGY_WEIGHTS: Record<RoutingStrategy, StrategyWeights> = {\n\tbalanced: { success: 0.45, latency: 0.25, cost: 0.2, quality: 0.1 },\n\tquality: { success: 0.3, latency: 0.05, cost: 0.05, quality: 0.6 },\n\tcost: { success: 0.25, latency: 0.15, cost: 0.55, quality: 0.05 },\n\tlatency: { success: 0.3, latency: 0.55, cost: 0.1, quality: 0.05 },\n};\n\nfunction modelKey(provider: string, model: string): string {\n\treturn `${provider}/${model}`;\n}\n\nfunction metricKey(taskType: string, provider: string, model: string): string {\n\treturn `${taskType}:${modelKey(provider, model)}`;\n}\n\nfunction normalizeModelRef(value: string): string {\n\treturn value.trim().toLowerCase();\n}\n\nfunction decisionId(payload: unknown): string {\n\treturn `route_${createHash(\"sha256\")\n\t\t.update(JSON.stringify(payload))\n\t\t.digest(\"hex\")\n\t\t.slice(0, 16)}`;\n}\n\nfunction percentile(values: number[], ratio: number): number {\n\tif (values.length === 0) return 0;\n\tconst sorted = [...values].sort((a, b) => a - b);\n\tconst index = Math.min(\n\t\tsorted.length - 1,\n\t\tMath.max(0, Math.ceil(sorted.length * ratio) - 1),\n\t);\n\treturn sorted[index] ?? 0;\n}\n\nfunction aggregateFromState(state: MetricState): ModelPerformanceAggregate {\n\treturn {\n\t\ttaskType: state.taskType,\n\t\tprovider: state.provider,\n\t\tmodel: state.model,\n\t\tsamples: state.samples,\n\t\tverifiedSamples: state.verifiedSamples,\n\t\tproductionSamples: state.productionSamples,\n\t\tevalSamples: state.evalSamples,\n\t\tsuccessCount: state.successCount,\n\t\tsuccessRate:\n\t\t\tstate.verifiedSamples > 0\n\t\t\t\t? state.successCount / state.verifiedSamples\n\t\t\t\t: 0,\n\t\tevalSuccessRate:\n\t\t\tstate.evalSamples > 0 ? state.evalSuccessCount / state.evalSamples : 0,\n\t\taverageLatencyMs:\n\t\t\tstate.samples > 0 ? state.totalLatencyMs / state.samples : 0,\n\t\tp95LatencyMs: percentile(state.latenciesMs, 0.95),\n\t\taverageCostUsd: state.samples > 0 ? state.totalCostUsd / state.samples : 0,\n\t\tqualityScore:\n\t\t\tstate.verifiedSamples > 0\n\t\t\t\t? state.qualityScoreTotal / state.verifiedSamples\n\t\t\t\t: 0.5,\n\t\tevalQualityScore:\n\t\t\tstate.evalSamples > 0\n\t\t\t\t? state.evalQualityScoreTotal / state.evalSamples\n\t\t\t\t: 0.5,\n\t\tevalSuites: Array.from(state.evalSuites).sort(),\n\t\tupdatedAt: state.updatedAt.toISOString(),\n\t};\n}\n\nfunction candidateKey(candidate: RoutingModelCandidate): string {\n\treturn modelKey(candidate.provider, candidate.model);\n}\n\nfunction modelMatchesHint(\n\tcandidate: RoutingModelCandidate,\n\thint: string | undefined,\n): boolean {\n\tif (!hint) return false;\n\tconst normalizedHint = normalizeModelRef(hint);\n\tconst candidateRefs = [\n\t\tcandidate.model,\n\t\tcandidateKey(candidate),\n\t\t`${candidate.provider}:${candidate.model}`,\n\t];\n\treturn candidateRefs.some(\n\t\t(candidateRef) => normalizeModelRef(candidateRef) === normalizedHint,\n\t);\n}\n\nfunction costEstimate(candidate: RoutingModelCandidate): number | undefined {\n\tconst cost = candidate.cost;\n\tif (!cost) return undefined;\n\tconst values = [\n\t\tcost.input,\n\t\tcost.output,\n\t\tcost.cacheRead,\n\t\tcost.cacheWrite,\n\t].filter(\n\t\t(value): value is number =>\n\t\t\ttypeof value === \"number\" && Number.isFinite(value),\n\t);\n\tif (values.length === 0) return undefined;\n\treturn values.reduce((total, value) => total + value, 0) / values.length;\n}\n\nfunction costScore(\n\taggregate: ModelPerformanceAggregate | undefined,\n\tcandidate: RoutingModelCandidate,\n): number {\n\tconst cost = aggregate?.samples\n\t\t? aggregate.averageCostUsd\n\t\t: costEstimate(candidate);\n\tif (cost === undefined || cost <= 0) return 0.5;\n\treturn 1 / (1 + cost);\n}\n\nfunction latencyScore(\n\taggregate: ModelPerformanceAggregate | undefined,\n): number {\n\tif (!aggregate?.samples) return 0.5;\n\tconst latency = aggregate.p95LatencyMs || aggregate.averageLatencyMs;\n\treturn Math.max(0, 1 - Math.min(latency, 30_000) / 30_000);\n}\n\nfunction successScore(\n\taggregate: ModelPerformanceAggregate | undefined,\n): number {\n\tif (!aggregate?.verifiedSamples) return 0.5;\n\treturn aggregate.successRate;\n}\n\nfunction qualityScore(\n\taggregate: ModelPerformanceAggregate | undefined,\n): number {\n\tif (!aggregate?.verifiedSamples) return 0.5;\n\treturn aggregate.qualityScore;\n}\n\nfunction scoreCandidate(params: {\n\tcandidate: RoutingModelCandidate;\n\taggregate?: ModelPerformanceAggregate;\n\tstrategy: RoutingStrategy;\n\tavailable: boolean;\n}): RoutingScore {\n\tconst weights = STRATEGY_WEIGHTS[params.strategy];\n\tconst success = successScore(params.aggregate);\n\tconst latency = latencyScore(params.aggregate);\n\tconst cost = costScore(params.aggregate, params.candidate);\n\tconst quality = qualityScore(params.aggregate);\n\tconst score = params.available\n\t\t? success * weights.success +\n\t\t\tlatency * weights.latency +\n\t\t\tcost * weights.cost +\n\t\t\tquality * weights.quality\n\t\t: -1;\n\tconst reasons = [\n\t\t`success=${success.toFixed(2)}`,\n\t\t`latency=${latency.toFixed(2)}`,\n\t\t`cost=${cost.toFixed(2)}`,\n\t\t`quality=${quality.toFixed(2)}`,\n\t];\n\tif (params.aggregate?.evalSamples) {\n\t\treasons.push(`eval_samples=${params.aggregate.evalSamples}`);\n\t}\n\tif (params.aggregate?.productionSamples) {\n\t\treasons.push(`production_samples=${params.aggregate.productionSamples}`);\n\t}\n\tif ((params.aggregate?.verifiedSamples ?? 0) < MIN_VERIFIED_SAMPLES) {\n\t\treasons.push(\n\t\t\t`verified_samples=${params.aggregate?.verifiedSamples ?? 0}/${MIN_VERIFIED_SAMPLES}`,\n\t\t);\n\t}\n\tif (params.aggregate?.evalSamples && !params.aggregate.productionSamples) {\n\t\treasons.push(\"eval_backed\");\n\t}\n\tif (!params.available) {\n\t\treasons.push(\"unavailable\");\n\t}\n\tif (!params.aggregate?.samples) {\n\t\treasons.push(\"cold_start\");\n\t}\n\treturn {\n\t\tprovider: params.candidate.provider,\n\t\tmodel: params.candidate.model,\n\t\tscore,\n\t\tsuccessRate: success,\n\t\tlatencyScore: latency,\n\t\tcostScore: cost,\n\t\tqualityScore: quality,\n\t\tsamples: params.aggregate?.samples ?? 0,\n\t\tverifiedSamples: params.aggregate?.verifiedSamples ?? 0,\n\t\tpromotionEligible:\n\t\t\t(params.aggregate?.verifiedSamples ?? 0) >= MIN_VERIFIED_SAMPLES,\n\t\tproductionSamples: params.aggregate?.productionSamples ?? 0,\n\t\tevalSamples: params.aggregate?.evalSamples ?? 0,\n\t\tevalBacked: Boolean(\n\t\t\tparams.aggregate?.evalSamples && !params.aggregate.productionSamples,\n\t\t),\n\t\tavailable: params.available,\n\t\treasons,\n\t};\n}\n\nfunction routedModelFromScore(score: RoutingScore): RoutedModel {\n\treturn {\n\t\tprovider: score.provider,\n\t\tmodel: score.model,\n\t};\n}\n\nfunction profileProvider(provider: string): ModelProvider {\n\treturn [\"anthropic\", \"openai\", \"openai-codex\", \"google\"].includes(provider)\n\t\t? (provider as ModelProvider)\n\t\t: \"openai-codex\";\n}\n\nfunction selectedAgentProfile(\n\tlevel: RoutingRequest[\"profileLevel\"],\n\tselected: RoutedModel,\n): AgentProfile {\n\tconst profile = resolveAgentProfile(\n\t\tlevel,\n\t\tprofileProvider(selected.provider),\n\t);\n\treturn Object.freeze({\n\t\t...profile,\n\t\tprimary: Object.freeze({\n\t\t\t...profile.primary,\n\t\t\tprovider: selected.provider,\n\t\t\tmodel: selected.model,\n\t\t}),\n\t});\n}\n\nfunction overrideExpired(override: RoutingOverride, now: Date): boolean {\n\treturn override.expiresAt\n\t\t? Date.parse(override.expiresAt) <= now.getTime()\n\t\t: false;\n}\n\nexport class IntelligentRouterService {\n\tprivate readonly metrics = new Map<string, MetricState>();\n\tprivate readonly overrides = new Map<string, RoutingOverride>();\n\tprivate readonly decisions: RoutingDecision[] = [];\n\n\tconstructor(\n\t\tprivate readonly defaultModels: () => RoutingModelCandidate[] = () => [],\n\t\tprivate readonly now: () => Date = () => new Date(),\n\t) {}\n\n\tgetAuthority(): ServiceAuthorityResolution {\n\t\treturn resolveServiceAuthority(\"intelligent_router\");\n\t}\n\n\trecordPerformanceMetric(\n\t\tinput: ModelPerformanceMetricInput,\n\t): ModelPerformanceAggregate {\n\t\tconst metric = normalizePerformanceMetricInput(input);\n\t\tconst key = metricKey(metric.taskType, metric.provider, metric.model);\n\t\tconst existing = this.metrics.get(key);\n\t\tconst state =\n\t\t\texisting ??\n\t\t\t({\n\t\t\t\ttaskType: metric.taskType,\n\t\t\t\tprovider: metric.provider,\n\t\t\t\tmodel: metric.model,\n\t\t\t\tsamples: 0,\n\t\t\t\tverifiedSamples: 0,\n\t\t\t\tproductionSamples: 0,\n\t\t\t\tevalSamples: 0,\n\t\t\t\tsuccessCount: 0,\n\t\t\t\tevalSuccessCount: 0,\n\t\t\t\ttotalLatencyMs: 0,\n\t\t\t\tlatenciesMs: [],\n\t\t\t\ttotalCostUsd: 0,\n\t\t\t\tqualityScoreTotal: 0,\n\t\t\t\tevalQualityScoreTotal: 0,\n\t\t\t\tevalSuites: new Set<string>(),\n\t\t\t\tupdatedAt: this.now(),\n\t\t\t} satisfies MetricState);\n\n\t\tstate.samples += 1;\n\t\tif (metric.verified) {\n\t\t\tstate.verifiedSamples += 1;\n\t\t\tif (metric.success) state.successCount += 1;\n\t\t\tstate.qualityScoreTotal += metric.qualityScore;\n\t\t}\n\t\tif (metric.source === \"eval\") {\n\t\t\tstate.evalSamples += 1;\n\t\t\tif (metric.success) state.evalSuccessCount += 1;\n\t\t\tstate.evalQualityScoreTotal += metric.qualityScore;\n\t\t\tif (metric.evalSuite) state.evalSuites.add(metric.evalSuite);\n\t\t} else {\n\t\t\tstate.productionSamples += 1;\n\t\t}\n\t\tstate.totalLatencyMs += metric.latencyMs;\n\t\tstate.latenciesMs.push(metric.latencyMs);\n\t\tif (state.latenciesMs.length > MAX_LATENCIES) {\n\t\t\tstate.latenciesMs.splice(0, state.latenciesMs.length - MAX_LATENCIES);\n\t\t}\n\t\tstate.totalCostUsd += metric.costUsd;\n\t\tstate.updatedAt =\n\t\t\tmetric.occurredAt instanceof Date\n\t\t\t\t? metric.occurredAt\n\t\t\t\t: new Date(metric.occurredAt);\n\t\tthis.metrics.set(key, state);\n\t\treturn aggregateFromState(state);\n\t}\n\n\trouteRequest(input: RoutingRequestInput): RoutingDecision {\n\t\tconst request = normalizeRoutingRequest(input, this.defaultModels());\n\t\tif (request.availableModels.length === 0) {\n\t\t\tthrow new IntelligentRouterValidationError(\n\t\t\t\t\"No available models were provided for routing.\",\n\t\t\t);\n\t\t}\n\n\t\tthis.pruneExpiredOverrides();\n\t\tconst unavailable = new Set(\n\t\t\trequest.unavailableModels.map((entry) => normalizeModelRef(entry)),\n\t\t);\n\t\tconst scores = request.availableModels\n\t\t\t.map((candidate) => {\n\t\t\t\tconst aggregate = this.getAggregate(\n\t\t\t\t\trequest.taskType,\n\t\t\t\t\tcandidate.provider,\n\t\t\t\t\tcandidate.model,\n\t\t\t\t);\n\t\t\t\tconst available =\n\t\t\t\t\tcandidate.available !== false &&\n\t\t\t\t\t!unavailable.has(normalizeModelRef(candidate.model)) &&\n\t\t\t\t\t!unavailable.has(normalizeModelRef(candidateKey(candidate)));\n\t\t\t\treturn scoreCandidate({\n\t\t\t\t\tcandidate,\n\t\t\t\t\taggregate,\n\t\t\t\t\tstrategy: request.strategy,\n\t\t\t\t\tavailable,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.sort((a, b) => b.score - a.score || a.model.localeCompare(b.model));\n\n\t\tconst availableScores = scores.filter((score) => score.available);\n\t\tif (availableScores.length === 0) {\n\t\t\tthrow new IntelligentRouterValidationError(\n\t\t\t\t\"All models are marked unavailable.\",\n\t\t\t);\n\t\t}\n\t\tconst firstAvailable = availableScores[0];\n\t\tif (!firstAvailable) {\n\t\t\tthrow new IntelligentRouterValidationError(\n\t\t\t\t\"All models are marked unavailable.\",\n\t\t\t);\n\t\t}\n\n\t\tconst override = this.overrides.get(request.taskType);\n\t\tconst overrideScore =\n\t\t\toverride && !overrideExpired(override, this.now())\n\t\t\t\t? availableScores.find(\n\t\t\t\t\t\t(score) =>\n\t\t\t\t\t\t\tscore.provider === override.provider &&\n\t\t\t\t\t\t\tscore.model === override.model,\n\t\t\t\t\t)\n\t\t\t\t: undefined;\n\t\tconst hintScore = request.modelHint\n\t\t\t? availableScores.find((score) =>\n\t\t\t\t\tmodelMatchesHint(\n\t\t\t\t\t\t{ provider: score.provider, model: score.model },\n\t\t\t\t\t\trequest.modelHint,\n\t\t\t\t\t),\n\t\t\t\t)\n\t\t\t: undefined;\n\t\tconst baselineCandidate = request.availableModels[0];\n\t\tconst baselineScore = baselineCandidate\n\t\t\t? availableScores.find(\n\t\t\t\t\t(score) =>\n\t\t\t\t\t\tscore.provider === baselineCandidate.provider &&\n\t\t\t\t\t\tscore.model === baselineCandidate.model,\n\t\t\t\t)\n\t\t\t: undefined;\n\t\tconst enoughHistory = availableScores.some(\n\t\t\t(score) => score.verifiedSamples >= MIN_VERIFIED_SAMPLES,\n\t\t);\n\t\tconst selectedScore =\n\t\t\toverrideScore ??\n\t\t\t(!enoughHistory\n\t\t\t\t? (hintScore ?? baselineScore ?? firstAvailable)\n\t\t\t\t: firstAvailable);\n\t\tconst overrideApplied = overrideScore !== undefined;\n\t\tconst reason = overrideApplied\n\t\t\t? \"override\"\n\t\t\t: !enoughHistory && hintScore\n\t\t\t\t? \"insufficient_verified_history_model_hint\"\n\t\t\t\t: \"highest_score\";\n\t\tconst selected = routedModelFromScore(selectedScore);\n\t\tconst selectedProfile = selectedAgentProfile(\n\t\t\trequest.profileLevel,\n\t\t\tselected,\n\t\t);\n\t\tconst fallbackProfiles = selectedProfile.fallbackLevels.map((level) =>\n\t\t\tresolveAgentProfile(level, profileProvider(selected.provider)),\n\t\t);\n\t\tconst fallbackChain = availableScores\n\t\t\t.filter(\n\t\t\t\t(score) =>\n\t\t\t\t\tscore.provider !== selected.provider ||\n\t\t\t\t\tscore.model !== selected.model,\n\t\t\t)\n\t\t\t.map(routedModelFromScore);\n\t\tconst createdAt = this.now().toISOString();\n\t\tconst decision: RoutingDecision = {\n\t\t\tdecisionId: decisionId({\n\t\t\t\ttaskType: request.taskType,\n\t\t\t\tstrategy: request.strategy,\n\t\t\t\tselected,\n\t\t\t\tcreatedAt,\n\t\t\t}),\n\t\t\ttaskType: request.taskType,\n\t\t\tstrategy: request.strategy,\n\t\t\tselectedModel: selected,\n\t\t\tselectedProfile,\n\t\t\tfallbackProfiles,\n\t\t\tfallbackChain,\n\t\t\tscores,\n\t\t\toverrideApplied,\n\t\t\treason,\n\t\t\tcreatedAt,\n\t\t\toracleConsultation: recommendOracleConsultation({\n\t\t\t\tprofileLevel: selectedProfile.level,\n\t\t\t\ttaskType: request.taskType,\n\t\t\t\ttaskSummary: request.taskSummary,\n\t\t\t\tpriorFailures: request.priorFailures,\n\t\t\t}),\n\t\t\t...(request.modelHint ? { modelHint: request.modelHint } : {}),\n\t\t};\n\t\tthis.decisions.unshift(decision);\n\t\tif (this.decisions.length > MAX_DECISIONS) {\n\t\t\tthis.decisions.splice(MAX_DECISIONS);\n\t\t}\n\t\treturn decision;\n\t}\n\n\tsetOverride(input: RoutingOverrideInput): RoutingOverride {\n\t\tconst overrideInput = normalizeRoutingOverrideInput(input);\n\t\tconst expiresAt =\n\t\t\toverrideInput.expiresAt instanceof Date\n\t\t\t\t? overrideInput.expiresAt.toISOString()\n\t\t\t\t: overrideInput.expiresAt;\n\t\tconst override: RoutingOverride = {\n\t\t\ttaskType: overrideInput.taskType,\n\t\t\tprovider: overrideInput.provider,\n\t\t\tmodel: overrideInput.model,\n\t\t\tcreatedAt: this.now().toISOString(),\n\t\t\t...(overrideInput.reason ? { reason: overrideInput.reason } : {}),\n\t\t\t...(expiresAt ? { expiresAt } : {}),\n\t\t};\n\t\tthis.overrides.set(override.taskType, override);\n\t\treturn override;\n\t}\n\n\tdeleteOverride(taskType: string): boolean {\n\t\treturn this.overrides.delete(taskType.trim());\n\t}\n\n\tlistOverrides(): RoutingOverride[] {\n\t\tthis.pruneExpiredOverrides();\n\t\treturn Array.from(this.overrides.values()).sort((a, b) =>\n\t\t\ta.taskType.localeCompare(b.taskType),\n\t\t);\n\t}\n\n\tlistMetrics(taskType?: string): ModelPerformanceAggregate[] {\n\t\tconst aggregates = Array.from(this.metrics.values()).map(\n\t\t\taggregateFromState,\n\t\t);\n\t\tconst filtered = taskType\n\t\t\t? aggregates.filter((metric) => metric.taskType === taskType)\n\t\t\t: aggregates;\n\t\treturn filtered.sort(\n\t\t\t(a, b) =>\n\t\t\t\ta.taskType.localeCompare(b.taskType) ||\n\t\t\t\ta.provider.localeCompare(b.provider) ||\n\t\t\t\ta.model.localeCompare(b.model),\n\t\t);\n\t}\n\n\tlistDecisions(limit = 20): RoutingDecision[] {\n\t\tconst normalizedLimit = Math.max(1, Math.min(100, Math.floor(limit)));\n\t\treturn this.decisions.slice(0, normalizedLimit);\n\t}\n\n\tclearForTest(): void {\n\t\tthis.metrics.clear();\n\t\tthis.overrides.clear();\n\t\tthis.decisions.length = 0;\n\t}\n\n\tprivate getAggregate(\n\t\ttaskType: string,\n\t\tprovider: string,\n\t\tmodel: string,\n\t): ModelPerformanceAggregate | undefined {\n\t\tconst state = this.metrics.get(metricKey(taskType, provider, model));\n\t\treturn state ? aggregateFromState(state) : undefined;\n\t}\n\n\tprivate pruneExpiredOverrides(): void {\n\t\tconst now = this.now();\n\t\tfor (const [taskType, override] of this.overrides) {\n\t\t\tif (overrideExpired(override, now)) {\n\t\t\t\tthis.overrides.delete(taskType);\n\t\t\t}\n\t\t}\n\t}\n}\n\nlet defaultIntelligentRouterService: IntelligentRouterService | null = null;\n\nexport function getIntelligentRouterService(): IntelligentRouterService {\n\tdefaultIntelligentRouterService ??= new IntelligentRouterService();\n\treturn defaultIntelligentRouterService;\n}\n\nexport function setIntelligentRouterServiceForTest(\n\tservice: IntelligentRouterService | null,\n): void {\n\tdefaultIntelligentRouterService = service;\n}\n"]}
|