@calliopelabs/cli 3.0.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -7
- package/dist/acp.d.ts +1 -4
- package/dist/acp.d.ts.map +1 -1
- package/dist/acp.js +118 -217
- package/dist/acp.js.map +1 -1
- package/dist/approvals/commands.d.ts +35 -0
- package/dist/approvals/commands.d.ts.map +1 -0
- package/dist/approvals/commands.js +51 -0
- package/dist/approvals/commands.js.map +1 -0
- package/dist/approvals/index.d.ts +6 -0
- package/dist/approvals/index.d.ts.map +1 -0
- package/dist/approvals/index.js +6 -0
- package/dist/approvals/index.js.map +1 -0
- package/dist/approvals/queue.d.ts +18 -0
- package/dist/approvals/queue.d.ts.map +1 -0
- package/dist/approvals/queue.js +46 -0
- package/dist/approvals/queue.js.map +1 -0
- package/dist/approvals/request.d.ts +13 -0
- package/dist/approvals/request.d.ts.map +1 -0
- package/dist/approvals/request.js +102 -0
- package/dist/approvals/request.js.map +1 -0
- package/dist/approvals/store.d.ts +24 -0
- package/dist/approvals/store.d.ts.map +1 -0
- package/dist/approvals/store.js +229 -0
- package/dist/approvals/store.js.map +1 -0
- package/dist/approvals/types.d.ts +27 -0
- package/dist/approvals/types.d.ts.map +1 -0
- package/dist/approvals/types.js +4 -0
- package/dist/approvals/types.js.map +1 -0
- package/dist/auto-compressor.d.ts +3 -2
- package/dist/auto-compressor.d.ts.map +1 -1
- package/dist/auto-compressor.js +9 -9
- package/dist/auto-compressor.js.map +1 -1
- package/dist/bin.d.ts.map +1 -1
- package/dist/bin.js +125 -22
- package/dist/bin.js.map +1 -1
- package/dist/brain/access.d.ts +65 -0
- package/dist/brain/access.d.ts.map +1 -0
- package/dist/brain/access.js +216 -0
- package/dist/brain/access.js.map +1 -0
- package/dist/brain/actions.d.ts +120 -0
- package/dist/brain/actions.d.ts.map +1 -0
- package/dist/brain/actions.js +270 -0
- package/dist/brain/actions.js.map +1 -0
- package/dist/brain/cli.d.ts +17 -0
- package/dist/brain/cli.d.ts.map +1 -0
- package/dist/brain/cli.js +206 -0
- package/dist/brain/cli.js.map +1 -0
- package/dist/brain/index.d.ts +16 -0
- package/dist/brain/index.d.ts.map +1 -0
- package/dist/brain/index.js +16 -0
- package/dist/brain/index.js.map +1 -0
- package/dist/brain/journal.d.ts +17 -0
- package/dist/brain/journal.d.ts.map +1 -0
- package/dist/brain/journal.js +189 -0
- package/dist/brain/journal.js.map +1 -0
- package/dist/brain/kg.d.ts +23 -0
- package/dist/brain/kg.d.ts.map +1 -0
- package/dist/brain/kg.js +36 -0
- package/dist/brain/kg.js.map +1 -0
- package/dist/brain/presentation.d.ts +3 -0
- package/dist/brain/presentation.d.ts.map +1 -0
- package/dist/brain/presentation.js +48 -0
- package/dist/brain/presentation.js.map +1 -0
- package/dist/brain/queries.d.ts +179 -0
- package/dist/brain/queries.d.ts.map +1 -0
- package/dist/brain/queries.js +210 -0
- package/dist/brain/queries.js.map +1 -0
- package/dist/brain/run-ingest.d.ts +29 -0
- package/dist/brain/run-ingest.d.ts.map +1 -0
- package/dist/brain/run-ingest.js +200 -0
- package/dist/brain/run-ingest.js.map +1 -0
- package/dist/brain/sqlite.d.ts +19 -0
- package/dist/brain/sqlite.d.ts.map +1 -0
- package/dist/brain/sqlite.js +252 -0
- package/dist/brain/sqlite.js.map +1 -0
- package/dist/brain/store.d.ts +31 -0
- package/dist/brain/store.d.ts.map +1 -0
- package/dist/brain/store.js +324 -0
- package/dist/brain/store.js.map +1 -0
- package/dist/brain/tool-query.d.ts +6 -0
- package/dist/brain/tool-query.d.ts.map +1 -0
- package/dist/brain/tool-query.js +42 -0
- package/dist/brain/tool-query.js.map +1 -0
- package/dist/brain/tools.d.ts +13 -0
- package/dist/brain/tools.d.ts.map +1 -0
- package/dist/brain/tools.js +20 -0
- package/dist/brain/tools.js.map +1 -0
- package/dist/brain/transfer.d.ts +57 -0
- package/dist/brain/transfer.d.ts.map +1 -0
- package/dist/brain/transfer.js +266 -0
- package/dist/brain/transfer.js.map +1 -0
- package/dist/brain/types.d.ts +145 -0
- package/dist/brain/types.d.ts.map +1 -0
- package/dist/brain/types.js +38 -0
- package/dist/brain/types.js.map +1 -0
- package/dist/brain/validation.d.ts +15 -0
- package/dist/brain/validation.d.ts.map +1 -0
- package/dist/brain/validation.js +163 -0
- package/dist/brain/validation.js.map +1 -0
- package/dist/budget.d.ts +5 -4
- package/dist/budget.d.ts.map +1 -1
- package/dist/budget.js +16 -38
- package/dist/budget.js.map +1 -1
- package/dist/cancellation.d.ts +8 -0
- package/dist/cancellation.d.ts.map +1 -0
- package/dist/cancellation.js +42 -0
- package/dist/cancellation.js.map +1 -0
- package/dist/checkpoint.d.ts +2 -2
- package/dist/checkpoint.d.ts.map +1 -1
- package/dist/checkpoint.js +5 -5
- package/dist/checkpoint.js.map +1 -1
- package/dist/circuit-breaker/breaker.d.ts.map +1 -1
- package/dist/config.d.ts +13 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +32 -8
- package/dist/config.js.map +1 -1
- package/dist/cost.js.map +1 -1
- package/dist/diff.js.map +1 -1
- package/dist/doctor.d.ts +30 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +124 -0
- package/dist/doctor.js.map +1 -0
- package/dist/env-expansion.js.map +1 -1
- package/dist/errors.d.ts +15 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +33 -9
- package/dist/errors.js.map +1 -1
- package/dist/execution/attribution.d.ts +17 -0
- package/dist/execution/attribution.d.ts.map +1 -0
- package/dist/execution/attribution.js +21 -0
- package/dist/execution/attribution.js.map +1 -0
- package/dist/execution/authority.d.ts +22 -0
- package/dist/execution/authority.d.ts.map +1 -0
- package/dist/execution/authority.js +134 -0
- package/dist/execution/authority.js.map +1 -0
- package/dist/execution/billing.d.ts +100 -0
- package/dist/execution/billing.d.ts.map +1 -0
- package/dist/execution/billing.js +166 -0
- package/dist/execution/billing.js.map +1 -0
- package/dist/execution/child-grants.d.ts +9 -0
- package/dist/execution/child-grants.d.ts.map +1 -0
- package/dist/execution/child-grants.js +55 -0
- package/dist/execution/child-grants.js.map +1 -0
- package/dist/execution/files.d.ts +6 -0
- package/dist/execution/files.d.ts.map +1 -0
- package/dist/execution/files.js +159 -0
- package/dist/execution/files.js.map +1 -0
- package/dist/execution/guard.d.ts +50 -0
- package/dist/execution/guard.d.ts.map +1 -0
- package/dist/execution/guard.js +158 -0
- package/dist/execution/guard.js.map +1 -0
- package/dist/execution/index.d.ts +12 -0
- package/dist/execution/index.d.ts.map +1 -0
- package/dist/execution/index.js +12 -0
- package/dist/execution/index.js.map +1 -0
- package/dist/execution/ledger.d.ts +23 -0
- package/dist/execution/ledger.d.ts.map +1 -0
- package/dist/execution/ledger.js +379 -0
- package/dist/execution/ledger.js.map +1 -0
- package/dist/execution/project-spend.d.ts +45 -0
- package/dist/execution/project-spend.d.ts.map +1 -0
- package/dist/execution/project-spend.js +274 -0
- package/dist/execution/project-spend.js.map +1 -0
- package/dist/execution/quote.d.ts +19 -0
- package/dist/execution/quote.d.ts.map +1 -0
- package/dist/execution/quote.js +116 -0
- package/dist/execution/quote.js.map +1 -0
- package/dist/execution/types.d.ts +113 -0
- package/dist/execution/types.d.ts.map +1 -0
- package/dist/execution/types.js +9 -0
- package/dist/execution/types.js.map +1 -0
- package/dist/execution/writer-recovery.d.ts +3 -0
- package/dist/execution/writer-recovery.d.ts.map +1 -0
- package/dist/execution/writer-recovery.js +85 -0
- package/dist/execution/writer-recovery.js.map +1 -0
- package/dist/fuzzy-search.js.map +1 -1
- package/dist/goals/accounting.d.ts +69 -0
- package/dist/goals/accounting.d.ts.map +1 -0
- package/dist/goals/accounting.js +100 -0
- package/dist/goals/accounting.js.map +1 -0
- package/dist/goals/actions.d.ts +33 -0
- package/dist/goals/actions.d.ts.map +1 -0
- package/dist/goals/actions.js +261 -0
- package/dist/goals/actions.js.map +1 -0
- package/dist/goals/authority.d.ts +9 -0
- package/dist/goals/authority.d.ts.map +1 -0
- package/dist/goals/authority.js +47 -0
- package/dist/goals/authority.js.map +1 -0
- package/dist/goals/cli.d.ts +10 -0
- package/dist/goals/cli.d.ts.map +1 -0
- package/dist/goals/cli.js +169 -0
- package/dist/goals/cli.js.map +1 -0
- package/dist/goals/contracts.d.ts +18 -0
- package/dist/goals/contracts.d.ts.map +1 -0
- package/dist/goals/contracts.js +127 -0
- package/dist/goals/contracts.js.map +1 -0
- package/dist/goals/index.d.ts +17 -0
- package/dist/goals/index.d.ts.map +1 -0
- package/dist/goals/index.js +16 -0
- package/dist/goals/index.js.map +1 -0
- package/dist/goals/journal.d.ts +5 -0
- package/dist/goals/journal.d.ts.map +1 -0
- package/dist/goals/journal.js +142 -0
- package/dist/goals/journal.js.map +1 -0
- package/dist/goals/metrics.d.ts +53 -0
- package/dist/goals/metrics.d.ts.map +1 -0
- package/dist/goals/metrics.js +141 -0
- package/dist/goals/metrics.js.map +1 -0
- package/dist/goals/repair.d.ts +10 -0
- package/dist/goals/repair.d.ts.map +1 -0
- package/dist/goals/repair.js +50 -0
- package/dist/goals/repair.js.map +1 -0
- package/dist/goals/routing.d.ts +18 -0
- package/dist/goals/routing.d.ts.map +1 -0
- package/dist/goals/routing.js +60 -0
- package/dist/goals/routing.js.map +1 -0
- package/dist/goals/store.d.ts +30 -0
- package/dist/goals/store.d.ts.map +1 -0
- package/dist/goals/store.js +314 -0
- package/dist/goals/store.js.map +1 -0
- package/dist/goals/supervised-cli.d.ts +5 -0
- package/dist/goals/supervised-cli.d.ts.map +1 -0
- package/dist/goals/supervised-cli.js +44 -0
- package/dist/goals/supervised-cli.js.map +1 -0
- package/dist/goals/supervised.d.ts +8 -0
- package/dist/goals/supervised.d.ts.map +1 -0
- package/dist/goals/supervised.js +65 -0
- package/dist/goals/supervised.js.map +1 -0
- package/dist/goals/team.d.ts +8 -0
- package/dist/goals/team.d.ts.map +1 -0
- package/dist/goals/team.js +64 -0
- package/dist/goals/team.js.map +1 -0
- package/dist/goals/types.d.ts +174 -0
- package/dist/goals/types.d.ts.map +1 -0
- package/dist/goals/types.js +2 -0
- package/dist/goals/types.js.map +1 -0
- package/dist/goals/validation.d.ts +17 -0
- package/dist/goals/validation.d.ts.map +1 -0
- package/dist/goals/validation.js +172 -0
- package/dist/goals/validation.js.map +1 -0
- package/dist/headless.d.ts +1 -0
- package/dist/headless.d.ts.map +1 -1
- package/dist/headless.js +98 -275
- package/dist/headless.js.map +1 -1
- package/dist/health/index.d.ts +5 -0
- package/dist/health/index.d.ts.map +1 -0
- package/dist/health/index.js +5 -0
- package/dist/health/index.js.map +1 -0
- package/dist/health/store.d.ts +24 -0
- package/dist/health/store.d.ts.map +1 -0
- package/dist/health/store.js +190 -0
- package/dist/health/store.js.map +1 -0
- package/dist/health/summary.d.ts +10 -0
- package/dist/health/summary.d.ts.map +1 -0
- package/dist/health/summary.js +95 -0
- package/dist/health/summary.js.map +1 -0
- package/dist/health/target.d.ts +3 -0
- package/dist/health/target.d.ts.map +1 -0
- package/dist/health/target.js +53 -0
- package/dist/health/target.js.map +1 -0
- package/dist/health/types.d.ts +72 -0
- package/dist/health/types.d.ts.map +1 -0
- package/dist/health/types.js +2 -0
- package/dist/health/types.js.map +1 -0
- package/dist/hooks.d.ts +7 -2
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +35 -17
- package/dist/hooks.js.map +1 -1
- package/dist/improvement/actions.d.ts +27 -0
- package/dist/improvement/actions.d.ts.map +1 -0
- package/dist/improvement/actions.js +116 -0
- package/dist/improvement/actions.js.map +1 -0
- package/dist/improvement/cli.d.ts +9 -0
- package/dist/improvement/cli.d.ts.map +1 -0
- package/dist/improvement/cli.js +58 -0
- package/dist/improvement/cli.js.map +1 -0
- package/dist/improvement/feedback.d.ts +30 -0
- package/dist/improvement/feedback.d.ts.map +1 -0
- package/dist/improvement/feedback.js +7 -0
- package/dist/improvement/feedback.js.map +1 -0
- package/dist/improvement/index.d.ts +7 -0
- package/dist/improvement/index.d.ts.map +1 -0
- package/dist/improvement/index.js +7 -0
- package/dist/improvement/index.js.map +1 -0
- package/dist/improvement/metrics.d.ts +4 -0
- package/dist/improvement/metrics.d.ts.map +1 -0
- package/dist/improvement/metrics.js +38 -0
- package/dist/improvement/metrics.js.map +1 -0
- package/dist/improvement/projection.d.ts +7 -0
- package/dist/improvement/projection.d.ts.map +1 -0
- package/dist/improvement/projection.js +135 -0
- package/dist/improvement/projection.js.map +1 -0
- package/dist/improvement/types.d.ts +115 -0
- package/dist/improvement/types.d.ts.map +1 -0
- package/dist/improvement/types.js +2 -0
- package/dist/improvement/types.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/instructions.d.ts +10 -0
- package/dist/instructions.d.ts.map +1 -0
- package/dist/instructions.js +93 -0
- package/dist/instructions.js.map +1 -0
- package/dist/isolation/contracts.d.ts +42 -0
- package/dist/isolation/contracts.d.ts.map +1 -0
- package/dist/isolation/contracts.js +33 -0
- package/dist/isolation/contracts.js.map +1 -0
- package/dist/isolation/coordinator.d.ts +10 -0
- package/dist/isolation/coordinator.d.ts.map +1 -0
- package/dist/isolation/coordinator.js +79 -0
- package/dist/isolation/coordinator.js.map +1 -0
- package/dist/isolation/index.d.ts +5 -0
- package/dist/isolation/index.d.ts.map +1 -0
- package/dist/isolation/index.js +5 -0
- package/dist/isolation/index.js.map +1 -0
- package/dist/isolation/process.d.ts +11 -0
- package/dist/isolation/process.d.ts.map +1 -0
- package/dist/isolation/process.js +131 -0
- package/dist/isolation/process.js.map +1 -0
- package/dist/isolation/worktree.d.ts +25 -0
- package/dist/isolation/worktree.d.ts.map +1 -0
- package/dist/isolation/worktree.js +282 -0
- package/dist/isolation/worktree.js.map +1 -0
- package/dist/iteration-ledger.d.ts.map +1 -1
- package/dist/iteration-ledger.js.map +1 -1
- package/dist/local-model.d.ts +2 -2
- package/dist/local-model.d.ts.map +1 -1
- package/dist/mcp.js.map +1 -1
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +5 -1
- package/dist/memory.js.map +1 -1
- package/dist/model-detection.d.ts +14 -18
- package/dist/model-detection.d.ts.map +1 -1
- package/dist/model-detection.js +287 -149
- package/dist/model-detection.js.map +1 -1
- package/dist/models/index.d.ts +3 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +3 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/metadata.d.ts +43 -0
- package/dist/models/metadata.d.ts.map +1 -0
- package/dist/models/metadata.js +72 -0
- package/dist/models/metadata.js.map +1 -0
- package/dist/models/openrouter.d.ts +6 -0
- package/dist/models/openrouter.d.ts.map +1 -0
- package/dist/models/openrouter.js +38 -0
- package/dist/models/openrouter.js.map +1 -0
- package/dist/orchestration/accounting.d.ts +35 -0
- package/dist/orchestration/accounting.d.ts.map +1 -0
- package/dist/orchestration/accounting.js +27 -0
- package/dist/orchestration/accounting.js.map +1 -0
- package/dist/orchestration/actions.d.ts +23 -0
- package/dist/orchestration/actions.d.ts.map +1 -0
- package/dist/orchestration/actions.js +65 -0
- package/dist/orchestration/actions.js.map +1 -0
- package/dist/orchestration/cli.d.ts +28 -0
- package/dist/orchestration/cli.d.ts.map +1 -0
- package/dist/orchestration/cli.js +178 -0
- package/dist/orchestration/cli.js.map +1 -0
- package/dist/orchestration/coordinator-actions.d.ts +15 -0
- package/dist/orchestration/coordinator-actions.d.ts.map +1 -0
- package/dist/orchestration/coordinator-actions.js +79 -0
- package/dist/orchestration/coordinator-actions.js.map +1 -0
- package/dist/orchestration/coordinator-types.d.ts +193 -0
- package/dist/orchestration/coordinator-types.d.ts.map +1 -0
- package/dist/orchestration/coordinator-types.js +2 -0
- package/dist/orchestration/coordinator-types.js.map +1 -0
- package/dist/orchestration/coordinator.d.ts +32 -0
- package/dist/orchestration/coordinator.d.ts.map +1 -0
- package/dist/orchestration/coordinator.js +405 -0
- package/dist/orchestration/coordinator.js.map +1 -0
- package/dist/orchestration/execution-cli.d.ts +11 -0
- package/dist/orchestration/execution-cli.d.ts.map +1 -0
- package/dist/orchestration/execution-cli.js +183 -0
- package/dist/orchestration/execution-cli.js.map +1 -0
- package/dist/orchestration/execution-journal.d.ts +15 -0
- package/dist/orchestration/execution-journal.d.ts.map +1 -0
- package/dist/orchestration/execution-journal.js +477 -0
- package/dist/orchestration/execution-journal.js.map +1 -0
- package/dist/orchestration/execution-store.d.ts +39 -0
- package/dist/orchestration/execution-store.d.ts.map +1 -0
- package/dist/orchestration/execution-store.js +325 -0
- package/dist/orchestration/execution-store.js.map +1 -0
- package/dist/orchestration/execution.d.ts +8 -0
- package/dist/orchestration/execution.d.ts.map +1 -0
- package/dist/orchestration/execution.js +47 -0
- package/dist/orchestration/execution.js.map +1 -0
- package/dist/orchestration/index.d.ts +20 -0
- package/dist/orchestration/index.d.ts.map +1 -0
- package/dist/orchestration/index.js +17 -0
- package/dist/orchestration/index.js.map +1 -0
- package/dist/orchestration/progress.d.ts +19 -0
- package/dist/orchestration/progress.d.ts.map +1 -0
- package/dist/orchestration/progress.js +20 -0
- package/dist/orchestration/progress.js.map +1 -0
- package/dist/orchestration/recovery.d.ts +4 -0
- package/dist/orchestration/recovery.d.ts.map +1 -0
- package/dist/orchestration/recovery.js +121 -0
- package/dist/orchestration/recovery.js.map +1 -0
- package/dist/orchestration/request-accounting.d.ts +35 -0
- package/dist/orchestration/request-accounting.d.ts.map +1 -0
- package/dist/orchestration/request-accounting.js +71 -0
- package/dist/orchestration/request-accounting.js.map +1 -0
- package/dist/orchestration/routing.d.ts +20 -0
- package/dist/orchestration/routing.d.ts.map +1 -0
- package/dist/orchestration/routing.js +38 -0
- package/dist/orchestration/routing.js.map +1 -0
- package/dist/orchestration/store.d.ts +26 -0
- package/dist/orchestration/store.d.ts.map +1 -0
- package/dist/orchestration/store.js +381 -0
- package/dist/orchestration/store.js.map +1 -0
- package/dist/orchestration/types.d.ts +201 -0
- package/dist/orchestration/types.d.ts.map +1 -0
- package/dist/orchestration/types.js +11 -0
- package/dist/orchestration/types.js.map +1 -0
- package/dist/orchestration/validation.d.ts +29 -0
- package/dist/orchestration/validation.d.ts.map +1 -0
- package/dist/orchestration/validation.js +440 -0
- package/dist/orchestration/validation.js.map +1 -0
- package/dist/orchestration/verification.d.ts +30 -0
- package/dist/orchestration/verification.d.ts.map +1 -0
- package/dist/orchestration/verification.js +204 -0
- package/dist/orchestration/verification.js.map +1 -0
- package/dist/orchestration/worker-context.d.ts +33 -0
- package/dist/orchestration/worker-context.d.ts.map +1 -0
- package/dist/orchestration/worker-context.js +31 -0
- package/dist/orchestration/worker-context.js.map +1 -0
- package/dist/parallel-tools.js.map +1 -1
- package/dist/plugins.d.ts.map +1 -1
- package/dist/policy.d.ts +1 -0
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +25 -5
- package/dist/policy.js.map +1 -1
- package/dist/preferences/controls.d.ts +21 -0
- package/dist/preferences/controls.d.ts.map +1 -0
- package/dist/preferences/controls.js +36 -0
- package/dist/preferences/controls.js.map +1 -0
- package/dist/preferences/flags.d.ts +8 -0
- package/dist/preferences/flags.d.ts.map +1 -0
- package/dist/preferences/flags.js +27 -0
- package/dist/preferences/flags.js.map +1 -0
- package/dist/preferences/index.d.ts +9 -0
- package/dist/preferences/index.d.ts.map +1 -0
- package/dist/preferences/index.js +9 -0
- package/dist/preferences/index.js.map +1 -0
- package/dist/preferences/once.d.ts +8 -0
- package/dist/preferences/once.d.ts.map +1 -0
- package/dist/preferences/once.js +28 -0
- package/dist/preferences/once.js.map +1 -0
- package/dist/preferences/resolve.d.ts +14 -0
- package/dist/preferences/resolve.d.ts.map +1 -0
- package/dist/preferences/resolve.js +58 -0
- package/dist/preferences/resolve.js.map +1 -0
- package/dist/preferences/store.d.ts +19 -0
- package/dist/preferences/store.d.ts.map +1 -0
- package/dist/preferences/store.js +147 -0
- package/dist/preferences/store.js.map +1 -0
- package/dist/preferences/submission.d.ts +16 -0
- package/dist/preferences/submission.d.ts.map +1 -0
- package/dist/preferences/submission.js +29 -0
- package/dist/preferences/submission.js.map +1 -0
- package/dist/preferences/types.d.ts +23 -0
- package/dist/preferences/types.d.ts.map +1 -0
- package/dist/preferences/types.js +2 -0
- package/dist/preferences/types.js.map +1 -0
- package/dist/preferences/validate.d.ts +3 -0
- package/dist/preferences/validate.d.ts.map +1 -0
- package/dist/preferences/validate.js +15 -0
- package/dist/preferences/validate.js.map +1 -0
- package/dist/process-cancellation.d.ts +6 -0
- package/dist/process-cancellation.d.ts.map +1 -0
- package/dist/process-cancellation.js +39 -0
- package/dist/process-cancellation.js.map +1 -0
- package/dist/providers/anthropic.d.ts +7 -2
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +72 -41
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/bedrock.d.ts +1 -1
- package/dist/providers/bedrock.d.ts.map +1 -1
- package/dist/providers/bedrock.js +39 -23
- package/dist/providers/bedrock.js.map +1 -1
- package/dist/providers/compat.d.ts +4 -3
- package/dist/providers/compat.d.ts.map +1 -1
- package/dist/providers/compat.js +49 -31
- package/dist/providers/compat.js.map +1 -1
- package/dist/providers/deepseek-reasoning.d.ts +64 -0
- package/dist/providers/deepseek-reasoning.d.ts.map +1 -0
- package/dist/providers/deepseek-reasoning.js +28 -0
- package/dist/providers/deepseek-reasoning.js.map +1 -0
- package/dist/providers/google.d.ts +4 -3
- package/dist/providers/google.d.ts.map +1 -1
- package/dist/providers/google.js +128 -19
- package/dist/providers/google.js.map +1 -1
- package/dist/providers/index.d.ts +2 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +216 -36
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/ollama.d.ts.map +1 -1
- package/dist/providers/ollama.js +79 -43
- package/dist/providers/ollama.js.map +1 -1
- package/dist/providers/openai.d.ts +12 -12
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +54 -46
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/openrouter-bounds.d.ts +22 -0
- package/dist/providers/openrouter-bounds.d.ts.map +1 -0
- package/dist/providers/openrouter-bounds.js +16 -0
- package/dist/providers/openrouter-bounds.js.map +1 -0
- package/dist/providers/stream-attempt.d.ts +29 -0
- package/dist/providers/stream-attempt.d.ts.map +1 -0
- package/dist/providers/stream-attempt.js +63 -0
- package/dist/providers/stream-attempt.js.map +1 -0
- package/dist/providers/types.d.ts +40 -4
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js +19 -0
- package/dist/providers/types.js.map +1 -1
- package/dist/replay.d.ts.map +1 -1
- package/dist/replay.js +16 -0
- package/dist/replay.js.map +1 -1
- package/dist/risk.d.ts.map +1 -1
- package/dist/risk.js +5 -0
- package/dist/risk.js.map +1 -1
- package/dist/router.d.ts +7 -110
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +0 -451
- package/dist/router.js.map +1 -1
- package/dist/routing/index.d.ts +6 -0
- package/dist/routing/index.d.ts.map +1 -0
- package/dist/routing/index.js +5 -0
- package/dist/routing/index.js.map +1 -0
- package/dist/routing/prompt.d.ts +4 -0
- package/dist/routing/prompt.d.ts.map +1 -0
- package/dist/routing/prompt.js +14 -0
- package/dist/routing/prompt.js.map +1 -0
- package/dist/routing/select.d.ts +9 -0
- package/dist/routing/select.d.ts.map +1 -0
- package/dist/routing/select.js +279 -0
- package/dist/routing/select.js.map +1 -0
- package/dist/routing/smart.d.ts +31 -0
- package/dist/routing/smart.d.ts.map +1 -0
- package/dist/routing/smart.js +46 -0
- package/dist/routing/smart.js.map +1 -0
- package/dist/routing/types.d.ts +79 -0
- package/dist/routing/types.d.ts.map +1 -0
- package/dist/routing/types.js +2 -0
- package/dist/routing/types.js.map +1 -0
- package/dist/runlog.d.ts +32 -4
- package/dist/runlog.d.ts.map +1 -1
- package/dist/runlog.js +22 -6
- package/dist/runlog.js.map +1 -1
- package/dist/runtime/index.d.ts +6 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +6 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/permissions.d.ts +21 -0
- package/dist/runtime/permissions.d.ts.map +1 -0
- package/dist/runtime/permissions.js +110 -0
- package/dist/runtime/permissions.js.map +1 -0
- package/dist/runtime/repair.d.ts +20 -0
- package/dist/runtime/repair.d.ts.map +1 -0
- package/dist/runtime/repair.js +50 -0
- package/dist/runtime/repair.js.map +1 -0
- package/dist/runtime/tool-retry.d.ts +3 -0
- package/dist/runtime/tool-retry.d.ts.map +1 -0
- package/dist/runtime/tool-retry.js +12 -0
- package/dist/runtime/tool-retry.js.map +1 -0
- package/dist/runtime/turn.d.ts +97 -0
- package/dist/runtime/turn.d.ts.map +1 -0
- package/dist/runtime/turn.js +437 -0
- package/dist/runtime/turn.js.map +1 -0
- package/dist/runtime/types.d.ts +11 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/runtime/types.js +5 -0
- package/dist/runtime/types.js.map +1 -0
- package/dist/sandbox/docker.d.ts +4 -4
- package/dist/sandbox/docker.d.ts.map +1 -1
- package/dist/sandbox/docker.js +55 -16
- package/dist/sandbox/docker.js.map +1 -1
- package/dist/sandbox/native.d.ts +1 -0
- package/dist/sandbox/native.d.ts.map +1 -1
- package/dist/sandbox/native.js +11 -2
- package/dist/sandbox/native.js.map +1 -1
- package/dist/scope.d.ts +5 -9
- package/dist/scope.d.ts.map +1 -1
- package/dist/scope.js +43 -20
- package/dist/scope.js.map +1 -1
- package/dist/scuttlebot/client.d.ts.map +1 -1
- package/dist/scuttlebot/client.js.map +1 -1
- package/dist/scuttlebot/http-client.d.ts.map +1 -1
- package/dist/scuttlebot/irc-client.d.ts +5 -5
- package/dist/scuttlebot/irc-client.d.ts.map +1 -1
- package/dist/scuttlebot/irc-client.js.map +1 -1
- package/dist/session-management/actions.d.ts +28 -0
- package/dist/session-management/actions.d.ts.map +1 -0
- package/dist/session-management/actions.js +78 -0
- package/dist/session-management/actions.js.map +1 -0
- package/dist/session-management/cli.d.ts +24 -0
- package/dist/session-management/cli.d.ts.map +1 -0
- package/dist/session-management/cli.js +92 -0
- package/dist/session-management/cli.js.map +1 -0
- package/dist/session-management/files.d.ts +5 -0
- package/dist/session-management/files.d.ts.map +1 -0
- package/dist/session-management/files.js +92 -0
- package/dist/session-management/files.js.map +1 -0
- package/dist/session-management/index.d.ts +7 -0
- package/dist/session-management/index.d.ts.map +1 -0
- package/dist/session-management/index.js +7 -0
- package/dist/session-management/index.js.map +1 -0
- package/dist/session-management/permissions.d.ts +12 -0
- package/dist/session-management/permissions.d.ts.map +1 -0
- package/dist/session-management/permissions.js +33 -0
- package/dist/session-management/permissions.js.map +1 -0
- package/dist/session-management/presentation.d.ts +5 -0
- package/dist/session-management/presentation.d.ts.map +1 -0
- package/dist/session-management/presentation.js +10 -0
- package/dist/session-management/presentation.js.map +1 -0
- package/dist/session-management/transfer.d.ts +9 -0
- package/dist/session-management/transfer.d.ts.map +1 -0
- package/dist/session-management/transfer.js +39 -0
- package/dist/session-management/transfer.js.map +1 -0
- package/dist/sessions/context.d.ts +4 -0
- package/dist/sessions/context.d.ts.map +1 -0
- package/dist/sessions/context.js +6 -0
- package/dist/sessions/context.js.map +1 -0
- package/dist/sessions/format.d.ts +38 -0
- package/dist/sessions/format.d.ts.map +1 -0
- package/dist/sessions/format.js +116 -0
- package/dist/sessions/format.js.map +1 -0
- package/dist/sessions/history.d.ts +37 -0
- package/dist/sessions/history.d.ts.map +1 -0
- package/dist/sessions/history.js +197 -0
- package/dist/sessions/history.js.map +1 -0
- package/dist/sessions/index.d.ts +8 -0
- package/dist/sessions/index.d.ts.map +1 -0
- package/dist/sessions/index.js +8 -0
- package/dist/sessions/index.js.map +1 -0
- package/dist/sessions/output.d.ts +31 -0
- package/dist/sessions/output.d.ts.map +1 -0
- package/dist/sessions/output.js +115 -0
- package/dist/sessions/output.js.map +1 -0
- package/dist/sessions/portable.d.ts +26 -0
- package/dist/sessions/portable.d.ts.map +1 -0
- package/dist/sessions/portable.js +105 -0
- package/dist/sessions/portable.js.map +1 -0
- package/dist/sessions/snapshot.d.ts +11 -0
- package/dist/sessions/snapshot.d.ts.map +1 -0
- package/dist/sessions/snapshot.js +118 -0
- package/dist/sessions/snapshot.js.map +1 -0
- package/dist/sessions/tool-state.d.ts +11 -0
- package/dist/sessions/tool-state.d.ts.map +1 -0
- package/dist/sessions/tool-state.js +152 -0
- package/dist/sessions/tool-state.js.map +1 -0
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +16 -5
- package/dist/setup.js.map +1 -1
- package/dist/spawning/actions.d.ts +23 -0
- package/dist/spawning/actions.d.ts.map +1 -0
- package/dist/spawning/actions.js +120 -0
- package/dist/spawning/actions.js.map +1 -0
- package/dist/spawning/authority.d.ts +15 -0
- package/dist/spawning/authority.d.ts.map +1 -0
- package/dist/spawning/authority.js +16 -0
- package/dist/spawning/authority.js.map +1 -0
- package/dist/spawning/cli.d.ts +4 -0
- package/dist/spawning/cli.d.ts.map +1 -0
- package/dist/spawning/cli.js +46 -0
- package/dist/spawning/cli.js.map +1 -0
- package/dist/spawning/execution.d.ts +13 -0
- package/dist/spawning/execution.d.ts.map +1 -0
- package/dist/spawning/execution.js +59 -0
- package/dist/spawning/execution.js.map +1 -0
- package/dist/spawning/index.d.ts +8 -0
- package/dist/spawning/index.d.ts.map +1 -0
- package/dist/spawning/index.js +8 -0
- package/dist/spawning/index.js.map +1 -0
- package/dist/spawning/store.d.ts +12 -0
- package/dist/spawning/store.d.ts.map +1 -0
- package/dist/spawning/store.js +93 -0
- package/dist/spawning/store.js.map +1 -0
- package/dist/spawning/types.d.ts +34 -0
- package/dist/spawning/types.d.ts.map +1 -0
- package/dist/spawning/types.js +2 -0
- package/dist/spawning/types.js.map +1 -0
- package/dist/spawning/validation.d.ts +14 -0
- package/dist/spawning/validation.d.ts.map +1 -0
- package/dist/spawning/validation.js +95 -0
- package/dist/spawning/validation.js.map +1 -0
- package/dist/storage.d.ts +29 -1
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +112 -40
- package/dist/storage.js.map +1 -1
- package/dist/streaming.d.ts.map +1 -1
- package/dist/streaming.js.map +1 -1
- package/dist/styles.d.ts +56 -56
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js.map +1 -1
- package/dist/summarization.d.ts.map +1 -1
- package/dist/summarization.js.map +1 -1
- package/dist/supervision/approval.d.ts +4 -0
- package/dist/supervision/approval.d.ts.map +1 -0
- package/dist/supervision/approval.js +7 -0
- package/dist/supervision/approval.js.map +1 -0
- package/dist/supervision/availability.d.ts +34 -0
- package/dist/supervision/availability.d.ts.map +1 -0
- package/dist/supervision/availability.js +44 -0
- package/dist/supervision/availability.js.map +1 -0
- package/dist/supervision/context.d.ts +36 -0
- package/dist/supervision/context.d.ts.map +1 -0
- package/dist/supervision/context.js +52 -0
- package/dist/supervision/context.js.map +1 -0
- package/dist/supervision/contracts.d.ts +7 -0
- package/dist/supervision/contracts.d.ts.map +1 -0
- package/dist/supervision/contracts.js +86 -0
- package/dist/supervision/contracts.js.map +1 -0
- package/dist/supervision/effects.d.ts +15 -0
- package/dist/supervision/effects.d.ts.map +1 -0
- package/dist/supervision/effects.js +19 -0
- package/dist/supervision/effects.js.map +1 -0
- package/dist/supervision/evidence.d.ts +32 -0
- package/dist/supervision/evidence.d.ts.map +1 -0
- package/dist/supervision/evidence.js +68 -0
- package/dist/supervision/evidence.js.map +1 -0
- package/dist/supervision/health.d.ts +16 -0
- package/dist/supervision/health.d.ts.map +1 -0
- package/dist/supervision/health.js +86 -0
- package/dist/supervision/health.js.map +1 -0
- package/dist/supervision/index.d.ts +13 -0
- package/dist/supervision/index.d.ts.map +1 -0
- package/dist/supervision/index.js +13 -0
- package/dist/supervision/index.js.map +1 -0
- package/dist/supervision/journal.d.ts +16 -0
- package/dist/supervision/journal.d.ts.map +1 -0
- package/dist/supervision/journal.js +311 -0
- package/dist/supervision/journal.js.map +1 -0
- package/dist/supervision/receipts.d.ts +4 -0
- package/dist/supervision/receipts.d.ts.map +1 -0
- package/dist/supervision/receipts.js +21 -0
- package/dist/supervision/receipts.js.map +1 -0
- package/dist/supervision/reply.d.ts +12 -0
- package/dist/supervision/reply.d.ts.map +1 -0
- package/dist/supervision/reply.js +50 -0
- package/dist/supervision/reply.js.map +1 -0
- package/dist/supervision/runtime.d.ts +8 -0
- package/dist/supervision/runtime.d.ts.map +1 -0
- package/dist/supervision/runtime.js +188 -0
- package/dist/supervision/runtime.js.map +1 -0
- package/dist/supervision/types.d.ts +174 -0
- package/dist/supervision/types.d.ts.map +1 -0
- package/dist/supervision/types.js +2 -0
- package/dist/supervision/types.js.map +1 -0
- package/dist/terminal-image.js.map +1 -1
- package/dist/tools.d.ts +12 -0
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +131 -23
- package/dist/tools.js.map +1 -1
- package/dist/trust.js.map +1 -1
- package/dist/turn-controller.d.ts +12 -0
- package/dist/turn-controller.d.ts.map +1 -0
- package/dist/turn-controller.js +51 -0
- package/dist/turn-controller.js.map +1 -0
- package/dist/types.d.ts +7 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -1
- package/dist/ui/agent.d.ts +11 -10
- package/dist/ui/agent.d.ts.map +1 -1
- package/dist/ui/agent.js +293 -897
- package/dist/ui/agent.js.map +1 -1
- package/dist/ui/chat-input.d.ts +2 -1
- package/dist/ui/chat-input.d.ts.map +1 -1
- package/dist/ui/commands.d.ts +20 -2
- package/dist/ui/commands.d.ts.map +1 -1
- package/dist/ui/commands.js +208 -155
- package/dist/ui/commands.js.map +1 -1
- package/dist/ui/completions.d.ts.map +1 -1
- package/dist/ui/completions.js +16 -5
- package/dist/ui/completions.js.map +1 -1
- package/dist/ui/components.d.ts +6 -6
- package/dist/ui/components.d.ts.map +1 -1
- package/dist/ui/debug-log.d.ts.map +1 -1
- package/dist/ui/error-boundary.d.ts +1 -1
- package/dist/ui/error-boundary.d.ts.map +1 -1
- package/dist/ui/frame.d.ts +1 -1
- package/dist/ui/frame.d.ts.map +1 -1
- package/dist/ui/index.d.ts +7 -3
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +13 -11
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/messages.d.ts +1 -1
- package/dist/ui/messages.d.ts.map +1 -1
- package/dist/ui/messages.js +5 -0
- package/dist/ui/messages.js.map +1 -1
- package/dist/ui/modals/index.d.ts +1 -0
- package/dist/ui/modals/index.d.ts.map +1 -1
- package/dist/ui/modals/index.js +1 -0
- package/dist/ui/modals/index.js.map +1 -1
- package/dist/ui/modals/prompts.d.ts +9 -11
- package/dist/ui/modals/prompts.d.ts.map +1 -1
- package/dist/ui/modals/prompts.js +15 -11
- package/dist/ui/modals/prompts.js.map +1 -1
- package/dist/ui/modals/selectors.d.ts +5 -3
- package/dist/ui/modals/selectors.d.ts.map +1 -1
- package/dist/ui/modals/selectors.js +3 -2
- package/dist/ui/modals/selectors.js.map +1 -1
- package/dist/ui/modals/setup.d.ts +3 -2
- package/dist/ui/modals/setup.d.ts.map +1 -1
- package/dist/ui/modals/setup.js +1 -1
- package/dist/ui/modals/tool-output.d.ts +8 -0
- package/dist/ui/modals/tool-output.d.ts.map +1 -0
- package/dist/ui/modals/tool-output.js +26 -0
- package/dist/ui/modals/tool-output.js.map +1 -0
- package/dist/ui/model-commands.d.ts +4 -0
- package/dist/ui/model-commands.d.ts.map +1 -0
- package/dist/ui/model-commands.js +69 -0
- package/dist/ui/model-commands.js.map +1 -0
- package/dist/ui/regions/input-region.d.ts +1 -1
- package/dist/ui/regions/input-region.d.ts.map +1 -1
- package/dist/ui/regions/modal-host.d.ts +4 -1
- package/dist/ui/regions/modal-host.d.ts.map +1 -1
- package/dist/ui/regions/modal-host.js +7 -1
- package/dist/ui/regions/modal-host.js.map +1 -1
- package/dist/ui/regions/static-scrollback.d.ts +1 -1
- package/dist/ui/regions/static-scrollback.d.ts.map +1 -1
- package/dist/ui/regions/status-region.d.ts +2 -1
- package/dist/ui/regions/status-region.d.ts.map +1 -1
- package/dist/ui/regions/status-region.js +2 -2
- package/dist/ui/regions/status-region.js.map +1 -1
- package/dist/ui/regions/tool-activity.d.ts +6 -0
- package/dist/ui/regions/tool-activity.d.ts.map +1 -0
- package/dist/ui/regions/tool-activity.js +9 -0
- package/dist/ui/regions/tool-activity.js.map +1 -0
- package/dist/ui/regions/transcript-region.d.ts +1 -1
- package/dist/ui/regions/transcript-region.d.ts.map +1 -1
- package/dist/ui/regions/transcript-region.js +3 -2
- package/dist/ui/regions/transcript-region.js.map +1 -1
- package/dist/ui/regions/workflow-region.d.ts +9 -0
- package/dist/ui/regions/workflow-region.d.ts.map +1 -0
- package/dist/ui/regions/workflow-region.js +11 -0
- package/dist/ui/regions/workflow-region.js.map +1 -0
- package/dist/ui/self-restart.js.map +1 -1
- package/dist/ui/session-commands.d.ts +3 -0
- package/dist/ui/session-commands.d.ts.map +1 -0
- package/dist/ui/session-commands.js +141 -0
- package/dist/ui/session-commands.js.map +1 -0
- package/dist/ui/state/use-approval-state.d.ts +9 -0
- package/dist/ui/state/use-approval-state.d.ts.map +1 -0
- package/dist/ui/state/use-approval-state.js +18 -0
- package/dist/ui/state/use-approval-state.js.map +1 -0
- package/dist/ui/state/use-chat-controller.d.ts +4 -1
- package/dist/ui/state/use-chat-controller.d.ts.map +1 -1
- package/dist/ui/state/use-chat-controller.js +256 -180
- package/dist/ui/state/use-chat-controller.js.map +1 -1
- package/dist/ui/state/use-modal-state.d.ts +6 -8
- package/dist/ui/state/use-modal-state.d.ts.map +1 -1
- package/dist/ui/state/use-modal-state.js +3 -4
- package/dist/ui/state/use-modal-state.js.map +1 -1
- package/dist/ui/state/use-model-state.d.ts +7 -3
- package/dist/ui/state/use-model-state.d.ts.map +1 -1
- package/dist/ui/state/use-model-state.js +24 -17
- package/dist/ui/state/use-model-state.js.map +1 -1
- package/dist/ui/state/use-processing-state.js.map +1 -1
- package/dist/ui/state/use-queue-state.d.ts +4 -3
- package/dist/ui/state/use-queue-state.d.ts.map +1 -1
- package/dist/ui/state/use-queue-state.js +11 -8
- package/dist/ui/state/use-queue-state.js.map +1 -1
- package/dist/ui/state/use-session-init.d.ts +4 -0
- package/dist/ui/state/use-session-init.d.ts.map +1 -1
- package/dist/ui/state/use-session-init.js +19 -3
- package/dist/ui/state/use-session-init.js.map +1 -1
- package/dist/ui/state/use-transcript-state.d.ts +6 -3
- package/dist/ui/state/use-transcript-state.d.ts.map +1 -1
- package/dist/ui/state/use-transcript-state.js +27 -15
- package/dist/ui/state/use-transcript-state.js.map +1 -1
- package/dist/ui/status-bar.d.ts +3 -2
- package/dist/ui/status-bar.d.ts.map +1 -1
- package/dist/ui/status-bar.js +3 -3
- package/dist/ui/status-bar.js.map +1 -1
- package/dist/ui/tool-output-cache.d.ts +12 -0
- package/dist/ui/tool-output-cache.d.ts.map +1 -0
- package/dist/ui/tool-output-cache.js +27 -0
- package/dist/ui/tool-output-cache.js.map +1 -0
- package/dist/ui/tool-output-commands.d.ts +3 -0
- package/dist/ui/tool-output-commands.d.ts.map +1 -0
- package/dist/ui/tool-output-commands.js +37 -0
- package/dist/ui/tool-output-commands.js.map +1 -0
- package/dist/ui/tool-output-wrap.d.ts +3 -0
- package/dist/ui/tool-output-wrap.d.ts.map +1 -0
- package/dist/ui/tool-output-wrap.js +24 -0
- package/dist/ui/tool-output-wrap.js.map +1 -0
- package/dist/ui/tool-progress.d.ts +23 -0
- package/dist/ui/tool-progress.d.ts.map +1 -0
- package/dist/ui/tool-progress.js +42 -0
- package/dist/ui/tool-progress.js.map +1 -0
- package/dist/ui/types.d.ts +8 -0
- package/dist/ui/types.d.ts.map +1 -1
- package/dist/ui/workflow-progress.d.ts +21 -0
- package/dist/ui/workflow-progress.d.ts.map +1 -0
- package/dist/ui/workflow-progress.js +107 -0
- package/dist/ui/workflow-progress.js.map +1 -0
- package/dist/version-check.js.map +1 -1
- package/package.json +21 -12
- package/scripts/verify-runlog.mjs +208 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn.d.ts","sourceRoot":"","sources":["../../src/runtime/turn.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,437 @@
|
|
|
1
|
+
/** One model/tool turn engine. Clients adapt context, presentation and approval. */
|
|
2
|
+
import { chat } from '../providers/index.js';
|
|
3
|
+
import { executeTool, getTools } from '../tools.js';
|
|
4
|
+
import { DEFAULT_MODELS, calculateCost } from '../types.js';
|
|
5
|
+
import { cancellable, cancellableDelay, cancellationError, isCancellation, throwIfCancelled } from '../cancellation.js';
|
|
6
|
+
import { selectRoute, formatRoutingDecision, adaptRoutingPrompt, RoutingUnavailableError } from '../routing/index.js';
|
|
7
|
+
import { autoCompress } from '../auto-compressor.js';
|
|
8
|
+
import { withScope } from '../scope.js';
|
|
9
|
+
import { analyzeDependencies } from '../parallel-tools.js';
|
|
10
|
+
import { getModelContextLimit } from '../model-detection.js';
|
|
11
|
+
import { isLocalBackend } from '../local-model.js';
|
|
12
|
+
import { resolveIterationLimit } from '../iteration-limit.js';
|
|
13
|
+
import { getBudgetCaps, evaluateBudget, hasBudgetCaps, loadProjectSpend, formatBudgetHalt } from '../budget.js';
|
|
14
|
+
import { RunLog } from '../runlog.js';
|
|
15
|
+
import * as config from '../config.js';
|
|
16
|
+
import { executeHooks } from '../hooks.js';
|
|
17
|
+
import { resolvePermission } from './permissions.js';
|
|
18
|
+
import { repairToolCalls } from './repair.js';
|
|
19
|
+
import { shouldRetryTool } from './tool-retry.js';
|
|
20
|
+
import { withSession, makeToolOutput, saveToolOutput } from '../sessions/index.js';
|
|
21
|
+
import { getSessionDirById } from '../storage.js';
|
|
22
|
+
import { assessToolRisk } from '../risk.js';
|
|
23
|
+
import { StreamInterruptedError, StreamProtocolError, ProviderRefusalError } from '../errors.js';
|
|
24
|
+
import { ExecutionGuard, ExecutionLimitError, agentFiles, projectAttemptBudget } from '../execution/index.js';
|
|
25
|
+
import { randomUUID } from 'node:crypto';
|
|
26
|
+
function contextResult(call, result, limit) {
|
|
27
|
+
if (!result.isError && call.name === 'ask_question')
|
|
28
|
+
return '[Waiting for user response. The user will reply with their answer.]';
|
|
29
|
+
if (!result.isError && call.name === 'create_plan')
|
|
30
|
+
return '[Plan displayed to user. Waiting for approval. Do NOT proceed with execution until the user approves.]';
|
|
31
|
+
const max = limit < 8000 ? Math.floor(limit * 0.6) : limit < 16000 ? Math.floor(limit * 0.8) : limit < 32000 ? 20000 : 50000;
|
|
32
|
+
const half = Math.floor(max / 2);
|
|
33
|
+
return result.result.length <= max ? result.result : result.result.slice(0, half) + `\n[Tool output truncated: ${result.result.length - max} chars]\n` + result.result.slice(-half);
|
|
34
|
+
}
|
|
35
|
+
/** Cancel/stop paths complete outstanding tool pairs without claiming execution. */
|
|
36
|
+
export function completePendingTools(messages, reason) {
|
|
37
|
+
for (let index = 0; index < messages.length; index++) {
|
|
38
|
+
const message = messages[index];
|
|
39
|
+
if (message.role !== 'assistant' || !message.toolCalls?.length)
|
|
40
|
+
continue;
|
|
41
|
+
let end = index + 1;
|
|
42
|
+
while (end < messages.length && messages[end].role === 'tool')
|
|
43
|
+
end++;
|
|
44
|
+
const recorded = new Set(messages.slice(index + 1, end).map(result => result.toolCallId));
|
|
45
|
+
for (const call of message.toolCalls)
|
|
46
|
+
if (!recorded.has(call.id)) {
|
|
47
|
+
messages.splice(end++, 0, { role: 'tool', toolCallId: call.id, content: `[${reason}; no result recorded. Do not assume completion or replay automatically.]` });
|
|
48
|
+
recorded.add(call.id);
|
|
49
|
+
}
|
|
50
|
+
index = end - 1;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
export async function runTurn(options) {
|
|
54
|
+
const guard = options.execution ? new ExecutionGuard(options.execution, options.cwd) : undefined;
|
|
55
|
+
if (!guard)
|
|
56
|
+
return withSession(options.sessionId, () => withScope(options.cwd, () => executeTurn(options), options.inheritScope));
|
|
57
|
+
const controller = new AbortController(), abort = () => controller.abort(options.signal?.reason);
|
|
58
|
+
options.signal?.addEventListener('abort', abort, { once: true });
|
|
59
|
+
if (options.signal?.aborted)
|
|
60
|
+
abort();
|
|
61
|
+
if (Date.now() >= guard.deadline)
|
|
62
|
+
controller.abort();
|
|
63
|
+
const timer = setTimeout(() => controller.abort(), Math.max(0, guard.deadline - Date.now()));
|
|
64
|
+
try {
|
|
65
|
+
return await withSession(options.sessionId, () => withScope(options.cwd, () => executeTurn({ ...options, signal: controller.signal }, guard), options.inheritScope));
|
|
66
|
+
}
|
|
67
|
+
finally {
|
|
68
|
+
clearTimeout(timer);
|
|
69
|
+
options.signal?.removeEventListener('abort', abort);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
async function executeTurn(options, guard) {
|
|
73
|
+
const { signal, messages } = options;
|
|
74
|
+
const started = Date.now();
|
|
75
|
+
const totals = { inputTokens: 0, outputTokens: 0, cost: 0, toolCalls: 0, durationMs: 0 };
|
|
76
|
+
const runlog = options.runlog ?? RunLog.open(options.sessionId);
|
|
77
|
+
const caps = getBudgetCaps();
|
|
78
|
+
const trackProject = typeof caps.maxCostPerProject === 'number';
|
|
79
|
+
const projectRunId = guard?.manifest.runId ?? randomUUID();
|
|
80
|
+
const seenWarnings = new Set();
|
|
81
|
+
const repairedIds = new Set();
|
|
82
|
+
let reason = 'iteration_limit';
|
|
83
|
+
let iterations = 0;
|
|
84
|
+
let budget;
|
|
85
|
+
let permissionCancelled = false;
|
|
86
|
+
let checkpointFailed = false;
|
|
87
|
+
let safetyFailed = false;
|
|
88
|
+
let safetyBranch;
|
|
89
|
+
// Parallel tools can finish together: serialize snapshots and copy each boundary now.
|
|
90
|
+
let checkpointTail = Promise.resolve();
|
|
91
|
+
const checkpoint = (status) => {
|
|
92
|
+
if (!options.onCheckpoint || checkpointFailed)
|
|
93
|
+
return checkpointTail;
|
|
94
|
+
const copy = structuredClone(messages.current);
|
|
95
|
+
checkpointTail = checkpointTail.then(() => options.onCheckpoint(copy, status)).catch(error => {
|
|
96
|
+
checkpointFailed = true;
|
|
97
|
+
throw error;
|
|
98
|
+
});
|
|
99
|
+
return checkpointTail;
|
|
100
|
+
};
|
|
101
|
+
let currentRequest = { provider: options.provider, model: options.model || DEFAULT_MODELS[options.provider], messages: messages.current, tools: [] };
|
|
102
|
+
const origin = { provider: options.provider, model: options.model };
|
|
103
|
+
const resolveRoute = async (input, initial = false, extra = {}, stream = true) => {
|
|
104
|
+
throwIfCancelled(signal);
|
|
105
|
+
const decision = await selectRoute({ provider: initial ? options.provider : input.provider, model: initial ? options.model : input.model,
|
|
106
|
+
...(initial ? {} : { origin }), messages: input.messages, preferences: options.routing, smart: options.smart, signal,
|
|
107
|
+
requirements: { reasoningEffort: options.reasoningEffort, tools: input.tools.length > 0, streaming: stream && !!options.onToken,
|
|
108
|
+
vision: input.messages.some(message => Array.isArray(message.content) && message.content.some(part => part.type === 'image')),
|
|
109
|
+
json: extra.format !== undefined,
|
|
110
|
+
inputTokens: Math.ceil(JSON.stringify(input.messages).length / 3), outputTokens: 250 },
|
|
111
|
+
});
|
|
112
|
+
if (options.preferenceSources)
|
|
113
|
+
decision.preferenceSources = options.preferenceSources;
|
|
114
|
+
runlog.routingDecision(decision);
|
|
115
|
+
if (options.onRoute)
|
|
116
|
+
await cancellable(Promise.resolve(options.onRoute(decision)), signal);
|
|
117
|
+
else
|
|
118
|
+
options.onWarning?.(formatRoutingDecision(decision));
|
|
119
|
+
if (decision.status === 'cancelled')
|
|
120
|
+
throw cancellationError();
|
|
121
|
+
if (!decision.selected)
|
|
122
|
+
throw new RoutingUnavailableError(decision);
|
|
123
|
+
return { ...input, provider: decision.selected.provider, model: decision.selected.model, route: decision.selected,
|
|
124
|
+
messages: adaptRoutingPrompt(input.messages, decision.selected.provider) };
|
|
125
|
+
};
|
|
126
|
+
const checkBudget = () => {
|
|
127
|
+
guard?.assertActive(signal);
|
|
128
|
+
if (!hasBudgetCaps(caps))
|
|
129
|
+
return;
|
|
130
|
+
const verdict = evaluateBudget(caps, { runCostUsd: totals.cost, runTokens: totals.inputTokens + totals.outputTokens, projectCostUsd: trackProject ? loadProjectSpend(options.cwd).spentUsd : 0 });
|
|
131
|
+
if (verdict.exceeded) {
|
|
132
|
+
budget = verdict;
|
|
133
|
+
const error = new Error(formatBudgetHalt(verdict));
|
|
134
|
+
error.name = 'RuntimeBudgetExceeded';
|
|
135
|
+
throw error;
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
const request = async (input, extra = {}, stream = true) => {
|
|
139
|
+
throwIfCancelled(signal);
|
|
140
|
+
checkBudget();
|
|
141
|
+
if (guard)
|
|
142
|
+
input = { ...input, tools: guard.tools(input.tools) };
|
|
143
|
+
input = await resolveRoute(input, false, extra, stream);
|
|
144
|
+
throwIfCancelled(signal);
|
|
145
|
+
if (guard)
|
|
146
|
+
input = { ...input, tools: guard.tools(input.tools) };
|
|
147
|
+
const maxOutputTokens = guard?.maxOutputTokens ?? (trackProject ? input.route?.maxOutputTokens ?? 0 : undefined);
|
|
148
|
+
const requestController = !guard && trackProject ? new AbortController() : undefined;
|
|
149
|
+
const abortRequest = () => requestController?.abort(signal?.reason);
|
|
150
|
+
const requestSignal = requestController?.signal ?? signal;
|
|
151
|
+
let attemptBudget;
|
|
152
|
+
try {
|
|
153
|
+
attemptBudget = guard?.budget(input.route, input.messages, input.tools, stream && !!options.onToken, signal, event => runlog.policyEvent({ tool: 'provider', source: 'execution-budget', decision: event.stage === 'exceeded' ? 'deny' : 'allow', reason: JSON.stringify(event), durationMs: 0 }))
|
|
154
|
+
?? (trackProject ? projectAttemptBudget(options.cwd, projectRunId, input.route, input.messages, input.tools, stream && !!options.onToken, maxOutputTokens, requestSignal, (requestId, stage, quoteEvidence) => runlog.policyEvent({ tool: 'provider', source: 'project-budget', decision: stage === 'exceeded' ? 'deny' : 'allow', reason: JSON.stringify({ requestId, stage, quoteEvidence }), durationMs: 0 }), options.measuredInputReservation ?? false) : undefined);
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
runlog.policyEvent({ tool: 'provider', source: 'execution-budget', decision: 'deny', reason: error instanceof Error ? error.message : 'Budget admission failed', durationMs: 0 });
|
|
158
|
+
throw error;
|
|
159
|
+
}
|
|
160
|
+
signal?.addEventListener('abort', abortRequest, { once: true });
|
|
161
|
+
if (signal?.aborted)
|
|
162
|
+
abortRequest();
|
|
163
|
+
const requestTimer = requestController ? setTimeout(() => requestController.abort(), 60000) : undefined;
|
|
164
|
+
let response;
|
|
165
|
+
try {
|
|
166
|
+
response = await chat(input.provider, input.messages, input.tools, input.model, stream ? options.onToken : undefined, options.onRetry, { ...extra, signal: requestSignal,
|
|
167
|
+
...(attemptBudget ? { maxOutputTokens, attemptBudget } : {}),
|
|
168
|
+
reasoningEffort: options.reasoningEffort,
|
|
169
|
+
...(options.maxProviderRetries !== undefined ? { maxProviderRetries: options.maxProviderRetries } : {}),
|
|
170
|
+
selectionMode: origin.provider === 'auto' ? 'auto' : 'explicit',
|
|
171
|
+
onStreamReset: stream ? options.onStreamReset : undefined,
|
|
172
|
+
onStreamEvent: event => { runlog.streamAttempt(event, { iteration: iterations, provider: input.provider, model: input.model }); options.onStreamEvent?.(event); },
|
|
173
|
+
onHealthWarning: (message, denied = false) => {
|
|
174
|
+
runlog.policyEvent({ tool: 'provider', source: 'provider-health', decision: denied ? 'deny' : 'allow', reason: message, durationMs: 0 });
|
|
175
|
+
options.onWarning?.(message);
|
|
176
|
+
},
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
runlog.policyEvent({ tool: 'provider', source: 'provider-call', decision: 'deny', reason: error instanceof Error ? error.message : 'Provider call failed', durationMs: 0 });
|
|
181
|
+
throw error;
|
|
182
|
+
}
|
|
183
|
+
finally {
|
|
184
|
+
if (requestTimer)
|
|
185
|
+
clearTimeout(requestTimer);
|
|
186
|
+
signal?.removeEventListener('abort', abortRequest);
|
|
187
|
+
}
|
|
188
|
+
throwIfCancelled(signal);
|
|
189
|
+
const prices = input.route?.price;
|
|
190
|
+
const costSource = prices?.input !== undefined && prices.output !== undefined ? 'discovery' : 'fallback';
|
|
191
|
+
const cost = response.usage ? costSource === 'discovery'
|
|
192
|
+
? response.usage.inputTokens / 1000000 * prices.input + response.usage.outputTokens / 1000000 * prices.output
|
|
193
|
+
: calculateCost(input.model, response.usage.inputTokens, response.usage.outputTokens) : 0;
|
|
194
|
+
totals.inputTokens += response.usage?.inputTokens ?? 0;
|
|
195
|
+
totals.outputTokens += response.usage?.outputTokens ?? 0;
|
|
196
|
+
totals.cost += cost;
|
|
197
|
+
// Project accounting is committed by the attempt receipt, including retries and unknown outcomes.
|
|
198
|
+
runlog.assistantMessage({ content: response.content, tokens: { input: response.usage?.inputTokens ?? 0, output: response.usage?.outputTokens ?? 0 }, cost, costSource });
|
|
199
|
+
options.onUsage?.(response, input, cost);
|
|
200
|
+
for (const warning of response.warnings ?? [])
|
|
201
|
+
if (!seenWarnings.has(warning)) {
|
|
202
|
+
seenWarnings.add(warning);
|
|
203
|
+
options.onWarning?.(warning);
|
|
204
|
+
}
|
|
205
|
+
return response;
|
|
206
|
+
};
|
|
207
|
+
const report = async (call, result, durationMs) => {
|
|
208
|
+
let output;
|
|
209
|
+
if (options.captureToolOutput) {
|
|
210
|
+
try {
|
|
211
|
+
const content = call.name === 'think' && !result.isError && typeof call.arguments.thought === 'string' ? call.arguments.thought
|
|
212
|
+
: result.displayResult && result.displayResult !== result.result ? `${result.result}\n\n--- Tool preview ---\n${result.displayResult}` : result.result;
|
|
213
|
+
output = { record: makeToolOutput(call.id, call.name, content, !!result.isError), saved: false };
|
|
214
|
+
const dir = getSessionDirById(options.sessionId);
|
|
215
|
+
if (!dir)
|
|
216
|
+
throw new Error('Session storage is unavailable.');
|
|
217
|
+
saveToolOutput(dir, output.record);
|
|
218
|
+
output.saved = true;
|
|
219
|
+
}
|
|
220
|
+
catch {
|
|
221
|
+
options.onWarning?.('Tool output could not be saved. The tool has already finished and will not be repeated; use /tools to inspect any retained output.');
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
runlog.toolResult({ id: call.id, result: result.result, isError: !!result.isError, durationMs, ...(output ? { output: { id: output.record.id, hash: output.record.hash, truncated: output.record.truncated, saved: output.saved } } : {}) });
|
|
225
|
+
messages.current.push({ role: 'tool', toolCallId: call.id, content: contextResult(call, result, getModelContextLimit(currentRequest.provider, currentRequest.model)) });
|
|
226
|
+
await checkpoint('active');
|
|
227
|
+
await options.onToolResult?.(call, result, iterations, output);
|
|
228
|
+
};
|
|
229
|
+
const execute = async (call) => {
|
|
230
|
+
throwIfCancelled(signal);
|
|
231
|
+
checkBudget();
|
|
232
|
+
runlog.toolCall({ id: call.id, name: call.name, args: call.arguments });
|
|
233
|
+
totals.toolCalls++;
|
|
234
|
+
await options.onToolStart?.(call, iterations);
|
|
235
|
+
const decision = await resolvePermission(call, { cwd: options.cwd, mode: options.mode, confirmation: guard && options.confirmation === 'none' ? 'mutating' : options.confirmation, signal, sessionId: options.sessionId, approvals: options.approvals, authority: guard?.check,
|
|
236
|
+
approve: options.approve ? pending => options.approve(call, pending) : undefined, audit: event => runlog.policyEvent(event) });
|
|
237
|
+
await options.onPermission?.(call, decision);
|
|
238
|
+
throwIfCancelled(signal);
|
|
239
|
+
if (decision.decision === 'cancelled') {
|
|
240
|
+
permissionCancelled = true;
|
|
241
|
+
return true;
|
|
242
|
+
}
|
|
243
|
+
if (decision.decision !== 'allow') {
|
|
244
|
+
await report(call, { toolCallId: call.id, result: decision.reason, isError: true }, decision.durationMs);
|
|
245
|
+
return false;
|
|
246
|
+
}
|
|
247
|
+
await checkpointTail;
|
|
248
|
+
if (options.onSafetyBranch && ['medium', 'high', 'critical'].includes(assessToolRisk(call).level)) {
|
|
249
|
+
safetyBranch ??= Promise.resolve().then(() => options.onSafetyBranch(call)).catch(error => { if (!isCancellation(error))
|
|
250
|
+
safetyFailed = true; throw error; });
|
|
251
|
+
await safetyBranch;
|
|
252
|
+
}
|
|
253
|
+
// A parallel result may have failed to persist while this tool awaited permission.
|
|
254
|
+
await checkpointTail;
|
|
255
|
+
await options.beforeTool?.(call, iterations);
|
|
256
|
+
throwIfCancelled(signal);
|
|
257
|
+
checkBudget();
|
|
258
|
+
const toolStarted = Date.now();
|
|
259
|
+
const runTool = async () => {
|
|
260
|
+
await checkpointTail;
|
|
261
|
+
if (safetyFailed)
|
|
262
|
+
await safetyBranch;
|
|
263
|
+
throwIfCancelled(signal);
|
|
264
|
+
try {
|
|
265
|
+
return await executeTool(call, options.cwd, Math.min(60000, guard ? Math.max(1, guard.deadline - Date.now()) : 60000), chunk => options.onToolOutput?.(call, chunk), {
|
|
266
|
+
...options.toolOptions, ...(guard ? { authority: guard.check, brain: { ...guard.brainContext(), runlog, mode: options.mode }, fs: agentFiles(guard, options.execution.agentId, call, signal) } : {}), signal, appendAnchorHash: isLocalBackend(currentRequest.provider), auditPermission: event => runlog.policyEvent(event),
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
catch (error) {
|
|
270
|
+
throwIfCancelled(signal);
|
|
271
|
+
if (isCancellation(error))
|
|
272
|
+
throw error;
|
|
273
|
+
return { toolCallId: call.id, result: `Error: ${error instanceof Error ? error.message : String(error)}`, isError: true };
|
|
274
|
+
}
|
|
275
|
+
};
|
|
276
|
+
let result = await runTool();
|
|
277
|
+
throwIfCancelled(signal);
|
|
278
|
+
for (let attempt = 1; result.isError && attempt <= (options.maxRetries ?? 0) && shouldRetryTool(call.name, result.result); attempt++) {
|
|
279
|
+
await cancellableDelay(Math.min(250 * 2 ** (attempt - 1), 4000), signal);
|
|
280
|
+
options.onToolRetry?.(call, attempt, result);
|
|
281
|
+
result = await runTool();
|
|
282
|
+
throwIfCancelled(signal);
|
|
283
|
+
}
|
|
284
|
+
await report(call, result, Date.now() - toolStarted);
|
|
285
|
+
if (!signal?.aborted) {
|
|
286
|
+
const post = executeHooks('post-tool', { tool: call.name, toolArgs: call.arguments, toolResult: result.result }, { signal, bounded: !!guard }).catch(error => {
|
|
287
|
+
throwIfCancelled(signal);
|
|
288
|
+
options.onWarning?.(`Post-tool hook failed: ${String(error)}`);
|
|
289
|
+
});
|
|
290
|
+
if (guard)
|
|
291
|
+
await post;
|
|
292
|
+
else
|
|
293
|
+
void post.catch(() => { });
|
|
294
|
+
}
|
|
295
|
+
return !result.isError && ['ask_question', 'create_plan'].includes(call.name);
|
|
296
|
+
};
|
|
297
|
+
runlog.runStart({ mode: options.client ?? 'library', session: options.sessionId, cwd: options.cwd, provider: options.provider, model: currentRequest.model, config: config.getConfig() });
|
|
298
|
+
runlog.userPrompt(options.prompt);
|
|
299
|
+
const availableTools = () => guard ? guard.tools((options.tools ?? getTools)()) : (options.tools ?? getTools)();
|
|
300
|
+
try {
|
|
301
|
+
throwIfCancelled(signal);
|
|
302
|
+
await checkpoint('active');
|
|
303
|
+
checkBudget();
|
|
304
|
+
currentRequest = await resolveRoute({ ...currentRequest, tools: availableTools() }, true);
|
|
305
|
+
messages.current = currentRequest.messages;
|
|
306
|
+
const limit = resolveIterationLimit(options.maxIterations ?? config.get('maxIterations'));
|
|
307
|
+
for (iterations = 1; iterations <= limit; iterations++) {
|
|
308
|
+
try {
|
|
309
|
+
throwIfCancelled(signal);
|
|
310
|
+
checkBudget();
|
|
311
|
+
currentRequest = { ...currentRequest, messages: messages.current, tools: availableTools() };
|
|
312
|
+
const compressed = options.disableCompression ? {
|
|
313
|
+
compressed: false, method: 'none', messages: messages.current,
|
|
314
|
+
originalTokens: 0, compressedTokens: 0, summarizedCount: 0,
|
|
315
|
+
} : await autoCompress(messages.current, getModelContextLimit(currentRequest.provider, currentRequest.model), currentRequest.provider, currentRequest.model, signal, async (summaryMessages, summaryModel) => {
|
|
316
|
+
const response = await request({ ...currentRequest, model: summaryModel || currentRequest.model, messages: summaryMessages, tools: [] }, {}, false);
|
|
317
|
+
checkBudget();
|
|
318
|
+
return response;
|
|
319
|
+
});
|
|
320
|
+
if (compressed.compressed) {
|
|
321
|
+
messages.current = compressed.messages;
|
|
322
|
+
currentRequest.messages = messages.current;
|
|
323
|
+
options.onCompression?.(compressed);
|
|
324
|
+
}
|
|
325
|
+
if (options.prepare)
|
|
326
|
+
currentRequest = await options.prepare(currentRequest, iterations);
|
|
327
|
+
throwIfCancelled(signal);
|
|
328
|
+
let response = await request(currentRequest);
|
|
329
|
+
if (response.finishReason === 'error')
|
|
330
|
+
throw response.errorCode === 'refusal' ? new ProviderRefusalError() : new Error('Provider returned an unsuccessful completion');
|
|
331
|
+
try {
|
|
332
|
+
checkBudget();
|
|
333
|
+
}
|
|
334
|
+
catch (error) {
|
|
335
|
+
messages.current.push({ role: 'assistant', content: response.content, ...(response.toolCalls?.length ? { toolCalls: response.toolCalls } : {}), providerMetadata: { ...response.providerMetadata, calliopeRouting: { provider: currentRequest.provider, model: currentRequest.model } } });
|
|
336
|
+
await options.onResponse?.(response, iterations);
|
|
337
|
+
throw error;
|
|
338
|
+
}
|
|
339
|
+
response = await repairToolCalls({ ...currentRequest, response, repairedIds, signal,
|
|
340
|
+
request: async (repairMessages, format) => { const value = await request({ ...currentRequest, messages: repairMessages }, { format }, false); checkBudget(); return value; },
|
|
341
|
+
onRepair: options.onRepair });
|
|
342
|
+
throwIfCancelled(signal);
|
|
343
|
+
messages.current.push({ role: 'assistant', content: response.content, ...(response.toolCalls?.length ? { toolCalls: response.toolCalls } : {}), providerMetadata: { ...response.providerMetadata, calliopeRouting: { provider: currentRequest.provider, model: currentRequest.model } } });
|
|
344
|
+
await checkpoint('active');
|
|
345
|
+
const stop = await options.onResponse?.(response, iterations);
|
|
346
|
+
throwIfCancelled(signal);
|
|
347
|
+
checkBudget();
|
|
348
|
+
if (stop === 'stop') {
|
|
349
|
+
reason = 'stopped';
|
|
350
|
+
break;
|
|
351
|
+
}
|
|
352
|
+
if (!response.toolCalls?.length) {
|
|
353
|
+
if (response.finishReason === 'length' && options.continueOnLength) {
|
|
354
|
+
messages.current.push({ role: 'user', content: 'Please continue where you left off.' });
|
|
355
|
+
options.onIterationEnd?.(iterations);
|
|
356
|
+
continue;
|
|
357
|
+
}
|
|
358
|
+
reason = response.finishReason === 'length' ? 'length' : 'completed';
|
|
359
|
+
options.onIterationEnd?.(iterations);
|
|
360
|
+
break;
|
|
361
|
+
}
|
|
362
|
+
const canParallel = options.parallel && !response.toolCalls.some(call => ['ask_question', 'create_plan'].includes(call.name));
|
|
363
|
+
const stages = canParallel ? analyzeDependencies(response.toolCalls).stages : response.toolCalls.map(call => [call]);
|
|
364
|
+
let pause = false;
|
|
365
|
+
for (const stage of stages) {
|
|
366
|
+
const results = await Promise.allSettled(stage.map(execute));
|
|
367
|
+
const failed = results.find(result => result.status === 'rejected');
|
|
368
|
+
if (failed?.status === 'rejected')
|
|
369
|
+
throw failed.reason;
|
|
370
|
+
pause = results.some(result => result.status === 'fulfilled' && result.value);
|
|
371
|
+
if (pause)
|
|
372
|
+
break;
|
|
373
|
+
}
|
|
374
|
+
options.onIterationEnd?.(iterations);
|
|
375
|
+
if (pause) {
|
|
376
|
+
reason = permissionCancelled ? 'cancelled' : 'waiting_for_user';
|
|
377
|
+
break;
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
catch (error) {
|
|
381
|
+
if (checkpointFailed || safetyFailed || signal?.aborted || isCancellation(error) || error instanceof ExecutionLimitError || (error instanceof Error && error.name === 'RuntimeBudgetExceeded'))
|
|
382
|
+
throw error;
|
|
383
|
+
completePendingTools(messages.current, 'Tool execution interrupted');
|
|
384
|
+
const action = await options.onError?.(error, iterations);
|
|
385
|
+
if (action === 'retry' && !(error instanceof StreamInterruptedError) && !(error instanceof StreamProtocolError) && !(error instanceof ProviderRefusalError)) {
|
|
386
|
+
await cancellableDelay(2000, signal);
|
|
387
|
+
continue;
|
|
388
|
+
}
|
|
389
|
+
if (action === 'stop') {
|
|
390
|
+
reason = 'stopped';
|
|
391
|
+
break;
|
|
392
|
+
}
|
|
393
|
+
throw error;
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
iterations = Math.min(iterations, limit);
|
|
397
|
+
}
|
|
398
|
+
catch (error) {
|
|
399
|
+
if (checkpointFailed || safetyFailed) {
|
|
400
|
+
reason = 'error';
|
|
401
|
+
throw error;
|
|
402
|
+
}
|
|
403
|
+
if (signal?.aborted || isCancellation(error) || error instanceof ExecutionLimitError && error.code === 'deadline')
|
|
404
|
+
reason = 'cancelled';
|
|
405
|
+
else if (error instanceof ExecutionLimitError && error.code === 'budget') {
|
|
406
|
+
reason = 'budget';
|
|
407
|
+
budget = { exceeded: true, message: error.message };
|
|
408
|
+
runlog.policyEvent({ tool: 'provider', source: 'execution-budget', decision: 'deny', reason: error.message, durationMs: 0 });
|
|
409
|
+
}
|
|
410
|
+
else if (budget?.exceeded) {
|
|
411
|
+
reason = 'budget';
|
|
412
|
+
runlog.budgetEvent({ scope: budget.scope ?? 'run', kind: budget.kind ?? 'cost', spent: budget.spent ?? 0, cap: budget.cap ?? 0, message: formatBudgetHalt(budget) });
|
|
413
|
+
}
|
|
414
|
+
else {
|
|
415
|
+
reason = 'error';
|
|
416
|
+
throw error;
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
finally {
|
|
420
|
+
completePendingTools(messages.current, reason);
|
|
421
|
+
try {
|
|
422
|
+
if (!checkpointFailed)
|
|
423
|
+
await checkpoint(reason === 'completed' || reason === 'cancelled' || reason === 'waiting_for_user' ? reason : 'interrupted');
|
|
424
|
+
}
|
|
425
|
+
catch (error) {
|
|
426
|
+
reason = 'error';
|
|
427
|
+
throw error;
|
|
428
|
+
}
|
|
429
|
+
finally {
|
|
430
|
+
totals.durationMs = Date.now() - started;
|
|
431
|
+
runlog.runEnd({ totals, exitReason: reason });
|
|
432
|
+
await runlog.flush();
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
return { reason, iterations, totals, budget };
|
|
436
|
+
}
|
|
437
|
+
//# sourceMappingURL=turn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn.js","sourceRoot":"","sources":["../../src/runtime/turn.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type PermissionLayer = 'mode' | 'confirmation' | 'scope' | 'sandbox' | 'blocklist' | 'hook' | 'policy' | 'default' | 'resolver' | 'cancellation';
|
|
2
|
+
export interface PermissionDecision {
|
|
3
|
+
request?: import('../approvals/types.js').ApprovalRequest;
|
|
4
|
+
decision: 'allow' | 'deny' | 'confirm' | 'cancelled';
|
|
5
|
+
layer: PermissionLayer;
|
|
6
|
+
reason: string;
|
|
7
|
+
durationMs: number;
|
|
8
|
+
}
|
|
9
|
+
/** One display/audit string, including the deciding layer, for every client. */
|
|
10
|
+
export declare function permissionReason(layer: PermissionLayer, detail: string): string;
|
|
11
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,cAAc,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,cAAc,CAAC;AACxJ,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,uBAAuB,EAAE,eAAe,CAAC;IAC1D,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC;IACrD,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AACD,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"AAQA,gFAAgF;AAChF,MAAM,UAAU,gBAAgB,CAAC,KAAsB,EAAE,MAAc;IACrE,OAAO,IAAI,KAAK,KAAK,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;AAC5D,CAAC"}
|
package/dist/sandbox/docker.d.ts
CHANGED
|
@@ -33,17 +33,17 @@ export declare function imageExists(image: string): boolean;
|
|
|
33
33
|
/**
|
|
34
34
|
* Pull Docker image if needed
|
|
35
35
|
*/
|
|
36
|
-
export declare function ensureImage(image: string): Promise<boolean>;
|
|
36
|
+
export declare function ensureImage(image: string, signal?: AbortSignal): Promise<boolean>;
|
|
37
37
|
/**
|
|
38
38
|
* Execute code in Docker sandbox
|
|
39
39
|
*/
|
|
40
|
-
export declare function executeInSandbox(language: Language, code: string, config?: Partial<SandboxConfig>, cwd?: string): Promise<ExecutionResult>;
|
|
40
|
+
export declare function executeInSandbox(language: Language, code: string, config?: Partial<SandboxConfig>, cwd?: string, signal?: AbortSignal): Promise<ExecutionResult>;
|
|
41
41
|
/**
|
|
42
42
|
* Execute code without sandbox (fallback)
|
|
43
43
|
*/
|
|
44
|
-
export declare function executeUnsafe(language: Language, code: string, timeout?: number): Promise<ExecutionResult>;
|
|
44
|
+
export declare function executeUnsafe(language: Language, code: string, timeout?: number, signal?: AbortSignal): Promise<ExecutionResult>;
|
|
45
45
|
/**
|
|
46
46
|
* Execute code (with or without sandbox based on availability)
|
|
47
47
|
*/
|
|
48
|
-
export declare function execute(language: Language, code: string, config?: Partial<SandboxConfig>, cwd?: string): Promise<ExecutionResult>;
|
|
48
|
+
export declare function execute(language: Language, code: string, config?: Partial<SandboxConfig>, cwd?: string, signal?: AbortSignal): Promise<ExecutionResult>;
|
|
49
49
|
//# sourceMappingURL=docker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/sandbox/docker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/sandbox/docker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;AAiC3E;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAW3C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAOlD;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAUvF;AAcD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM,EACnC,GAAG,CAAC,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,eAAe,CAAC,CAgK1B;AAqFD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,MAAc,EACvB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,eAAe,CAAC,CA6G1B;AAMD;;GAEG;AACH,wBAAsB,OAAO,CAC3B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM,EACnC,GAAG,CAAC,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,eAAe,CAAC,CAS1B"}
|