@calliopelabs/cli 3.1.0 → 3.2.1
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 +68 -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/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/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/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/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/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/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 +2 -2
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +50 -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/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 +13 -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/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/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/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/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/index.d.ts +6 -2
- 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.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 +4 -7
- package/dist/ui/modals/prompts.d.ts.map +1 -1
- package/dist/ui/modals/prompts.js +14 -10
- package/dist/ui/modals/prompts.js.map +1 -1
- package/dist/ui/modals/selectors.d.ts +1 -0
- 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/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/modal-host.d.ts +3 -0
- 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/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.map +1 -1
- package/dist/ui/regions/transcript-region.js +2 -1
- 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/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-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 +2 -1
- package/dist/ui/status-bar.d.ts.map +1 -1
- package/dist/ui/status-bar.js +2 -2
- 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/package.json +13 -4
- package/scripts/verify-runlog.mjs +208 -0
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
import * as fs from 'node:fs';
|
|
2
|
+
import { dirname, join, resolve } from 'node:path';
|
|
3
|
+
import { randomUUID } from 'node:crypto';
|
|
4
|
+
import { canonicalJson, canonicalPath, digest, projectIdentity } from '../approvals/index.js';
|
|
5
|
+
import { throwIfCancelled, cancellableDelay } from '../cancellation.js';
|
|
6
|
+
import { ExecutionLimitError } from '../execution/types.js';
|
|
7
|
+
import { recoverDeadWriterLock } from '../execution/writer-recovery.js';
|
|
8
|
+
import { OrchestrationError } from './types.js';
|
|
9
|
+
import { validateRunManifest } from './store.js';
|
|
10
|
+
import { hex, integer, iso, shape, uuid } from './validation.js';
|
|
11
|
+
import { journalHash, replayExecution, validateExecutionHeader, executionEventVersion, MAX_EXECUTION_BYTES, MAX_EXECUTION_EVENTS, MAX_EXECUTION_EVENT_BYTES } from './execution-journal.js';
|
|
12
|
+
const unavailable = () => new OrchestrationError('unavailable', 'Execution records are damaged or unavailable. Preserve the run and restore verified evidence; no new work is authorized.');
|
|
13
|
+
export function privateDirectory(path) {
|
|
14
|
+
const stat = fs.lstatSync(path);
|
|
15
|
+
if (!stat.isDirectory() || stat.isSymbolicLink() || stat.mode & 0o077 || canonicalPath(path) !== path)
|
|
16
|
+
throw unavailable();
|
|
17
|
+
return stat;
|
|
18
|
+
}
|
|
19
|
+
export function readArtifactBytes(file, max = 1024 * 1024, privateFile = false) {
|
|
20
|
+
if (canonicalPath(file) !== file)
|
|
21
|
+
throw unavailable();
|
|
22
|
+
const parent = fs.statSync(dirname(file));
|
|
23
|
+
const fd = fs.openSync(file, fs.constants.O_RDONLY | fs.constants.O_NOFOLLOW | fs.constants.O_NONBLOCK);
|
|
24
|
+
try {
|
|
25
|
+
const stat = fs.fstatSync(fd);
|
|
26
|
+
if (!stat.isFile() || stat.size > max || privateFile && stat.mode & 0o077)
|
|
27
|
+
throw unavailable();
|
|
28
|
+
const bytes = Buffer.alloc(stat.size + 1);
|
|
29
|
+
let count = 0, n;
|
|
30
|
+
while (count < bytes.length && (n = fs.readSync(fd, bytes, count, bytes.length - count, null)) > 0)
|
|
31
|
+
count += n;
|
|
32
|
+
const after = fs.statSync(dirname(file)), current = fs.lstatSync(file), final = fs.fstatSync(fd);
|
|
33
|
+
if (count !== stat.size || current.dev !== stat.dev || current.ino !== stat.ino || final.size !== stat.size || final.mtimeMs !== stat.mtimeMs || final.ctimeMs !== stat.ctimeMs || parent.dev !== after.dev || parent.ino !== after.ino || canonicalPath(file) !== file)
|
|
34
|
+
throw unavailable();
|
|
35
|
+
return bytes.subarray(0, count);
|
|
36
|
+
}
|
|
37
|
+
finally {
|
|
38
|
+
fs.closeSync(fd);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function writeNew(file, data) { const fd = fs.openSync(file, 'wx', 0o600); try {
|
|
42
|
+
fs.writeFileSync(fd, data);
|
|
43
|
+
fs.fsyncSync(fd);
|
|
44
|
+
}
|
|
45
|
+
finally {
|
|
46
|
+
fs.closeSync(fd);
|
|
47
|
+
} }
|
|
48
|
+
function syncDir(path) { const fd = fs.openSync(path, 'r'); try {
|
|
49
|
+
fs.fsyncSync(fd);
|
|
50
|
+
}
|
|
51
|
+
finally {
|
|
52
|
+
fs.closeSync(fd);
|
|
53
|
+
} }
|
|
54
|
+
function parsed(file, max = MAX_EXECUTION_BYTES) { try {
|
|
55
|
+
return JSON.parse(readArtifactBytes(file, max, true).toString());
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
throw unavailable();
|
|
59
|
+
} }
|
|
60
|
+
function exists(file) { try {
|
|
61
|
+
fs.lstatSync(file);
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
if (error.code === 'ENOENT')
|
|
66
|
+
return false;
|
|
67
|
+
throw unavailable();
|
|
68
|
+
} }
|
|
69
|
+
/** One coordinator process owns a run; short append locks also serialize control commands. */
|
|
70
|
+
export class ExecutionStore {
|
|
71
|
+
onEvent;
|
|
72
|
+
root;
|
|
73
|
+
manifest;
|
|
74
|
+
constructor(runDirectory, manifest, onEvent) {
|
|
75
|
+
this.onEvent = onEvent;
|
|
76
|
+
this.root = join(resolve(runDirectory), 'execution');
|
|
77
|
+
this.manifest = JSON.parse(canonicalJson(validateRunManifest(manifest)));
|
|
78
|
+
}
|
|
79
|
+
exists() { return exists(this.root); }
|
|
80
|
+
identity() {
|
|
81
|
+
if (projectIdentity(this.manifest.project.root).projectKey !== this.manifest.project.key)
|
|
82
|
+
throw new ExecutionLimitError('authority', 'Project identity changed during coordinator execution.');
|
|
83
|
+
privateDirectory(dirname(this.root));
|
|
84
|
+
return privateDirectory(this.root);
|
|
85
|
+
}
|
|
86
|
+
assertApproval(header) {
|
|
87
|
+
const head = parsed(join(dirname(this.root), 'head.json'), 4096);
|
|
88
|
+
shape(head, ['version', 'runId', 'manifestHash', 'event', 'hash']);
|
|
89
|
+
shape(head.event, ['id', 'hash']);
|
|
90
|
+
const { hash, ...body } = head;
|
|
91
|
+
if (hash !== digest(canonicalJson(body)) || head.runId !== this.manifest.id || head.manifestHash !== this.manifest.hash || head.event.id !== header.approvalRevision)
|
|
92
|
+
throw new ExecutionLimitError('authority', 'Run approval was revoked or changed; coordinator execution stopped.');
|
|
93
|
+
}
|
|
94
|
+
create(header, signal) {
|
|
95
|
+
throwIfCancelled(signal);
|
|
96
|
+
validateExecutionHeader(header, this.manifest);
|
|
97
|
+
privateDirectory(dirname(this.root));
|
|
98
|
+
if (canonicalPath(this.root) !== this.root)
|
|
99
|
+
throw unavailable();
|
|
100
|
+
this.assertApproval(header);
|
|
101
|
+
if (this.exists()) {
|
|
102
|
+
const saved = this.read();
|
|
103
|
+
if (canonicalJson(saved.header) !== canonicalJson(header))
|
|
104
|
+
throw new OrchestrationError('conflict', 'Execution belongs to another approval or deadline.');
|
|
105
|
+
return saved;
|
|
106
|
+
}
|
|
107
|
+
try {
|
|
108
|
+
fs.mkdirSync(this.root, { mode: 0o700 });
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
if (error.code === 'EEXIST') {
|
|
112
|
+
const saved = this.read();
|
|
113
|
+
if (canonicalJson(saved.header) !== canonicalJson(header))
|
|
114
|
+
throw new OrchestrationError('conflict', 'Execution belongs to another approval or deadline.');
|
|
115
|
+
return saved;
|
|
116
|
+
}
|
|
117
|
+
throw error;
|
|
118
|
+
}
|
|
119
|
+
fs.mkdirSync(join(this.root, 'artifacts'), { mode: 0o700 });
|
|
120
|
+
throwIfCancelled(signal);
|
|
121
|
+
const journal = { version: 1, header, events: [], hash: journalHash(header, []) };
|
|
122
|
+
writeNew(join(this.root, 'history.json'), JSON.stringify(journal));
|
|
123
|
+
syncDir(this.root);
|
|
124
|
+
syncDir(dirname(this.root));
|
|
125
|
+
return this.read();
|
|
126
|
+
}
|
|
127
|
+
read() {
|
|
128
|
+
this.identity();
|
|
129
|
+
const value = parsed(join(this.root, 'history.json'));
|
|
130
|
+
shape(value, ['version', 'header', 'events', 'hash']);
|
|
131
|
+
if (value.version !== 1 || !Array.isArray(value.events) || !hex(value.hash))
|
|
132
|
+
throw unavailable();
|
|
133
|
+
const header = validateExecutionHeader(value.header, this.manifest), events = value.events;
|
|
134
|
+
if (value.hash !== journalHash(header, events))
|
|
135
|
+
throw unavailable();
|
|
136
|
+
return { header, events, state: replayExecution(header, this.manifest, events) };
|
|
137
|
+
}
|
|
138
|
+
/** Derived execution graph; the original manifest remains immutable. */
|
|
139
|
+
context(view = this.read()) { return { id: this.manifest.id, project: this.manifest.project, plan: view.state.graph?.plan ?? this.manifest.plan }; }
|
|
140
|
+
owner() {
|
|
141
|
+
this.identity();
|
|
142
|
+
const file = join(this.root, 'owner.json');
|
|
143
|
+
if (!exists(file))
|
|
144
|
+
return null;
|
|
145
|
+
const value = parsed(file, 4096);
|
|
146
|
+
shape(value, ['version', 'id', 'pid', 'createdAt']);
|
|
147
|
+
if (value.version !== 1 || !uuid(value.id) || !iso(value.createdAt))
|
|
148
|
+
throw unavailable();
|
|
149
|
+
integer(value.pid, 1, 2147483647);
|
|
150
|
+
let alive = true;
|
|
151
|
+
try {
|
|
152
|
+
process.kill(value.pid, 0);
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
if (error.code === 'ESRCH')
|
|
156
|
+
alive = false;
|
|
157
|
+
else if (error.code !== 'EPERM')
|
|
158
|
+
throw unavailable();
|
|
159
|
+
}
|
|
160
|
+
return { id: value.id, pid: value.pid, alive };
|
|
161
|
+
}
|
|
162
|
+
acquire() {
|
|
163
|
+
const election = join(this.root, 'owner.lock');
|
|
164
|
+
this.identity();
|
|
165
|
+
let lock;
|
|
166
|
+
try {
|
|
167
|
+
lock = fs.openSync(election, 'wx', 0o600);
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
if (!recoverDeadWriterLock(election))
|
|
171
|
+
throw new OrchestrationError('locked', 'Coordinator ownership is being changed. Preserve stale locks until their owner is confirmed stopped.');
|
|
172
|
+
try {
|
|
173
|
+
lock = fs.openSync(election, 'wx', 0o600);
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
throw new OrchestrationError('locked', 'Another coordinator is changing ownership.');
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
const lockIdentity = fs.fstatSync(lock);
|
|
180
|
+
try {
|
|
181
|
+
fs.writeFileSync(lock, String(process.pid));
|
|
182
|
+
return this.acquireExclusive();
|
|
183
|
+
}
|
|
184
|
+
finally {
|
|
185
|
+
fs.closeSync(lock);
|
|
186
|
+
const stat = fs.lstatSync(election);
|
|
187
|
+
if (stat.dev === lockIdentity.dev && stat.ino === lockIdentity.ino)
|
|
188
|
+
fs.unlinkSync(election);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
acquireExclusive() {
|
|
192
|
+
const before = this.identity(), file = join(this.root, 'owner.json'), prior = this.owner();
|
|
193
|
+
if (prior?.alive)
|
|
194
|
+
throw new OrchestrationError('locked', 'A coordinator process already owns this run.');
|
|
195
|
+
// Reclaim only a confirmed dead process; an expired timer alone is not evidence of death.
|
|
196
|
+
if (prior) {
|
|
197
|
+
const current = this.owner();
|
|
198
|
+
if (current?.id !== prior.id || current.alive)
|
|
199
|
+
throw new OrchestrationError('locked', 'Coordinator ownership changed.');
|
|
200
|
+
fs.unlinkSync(file);
|
|
201
|
+
}
|
|
202
|
+
const id = randomUUID();
|
|
203
|
+
try {
|
|
204
|
+
writeNew(file, JSON.stringify({ version: 1, id, pid: process.pid, createdAt: new Date().toISOString() }));
|
|
205
|
+
}
|
|
206
|
+
catch (error) {
|
|
207
|
+
if (error.code === 'EEXIST')
|
|
208
|
+
throw new OrchestrationError('locked', 'Another coordinator acquired this run.');
|
|
209
|
+
throw error;
|
|
210
|
+
}
|
|
211
|
+
syncDir(this.root);
|
|
212
|
+
const check = () => { const after = this.identity(), owner = this.owner(); if (before.dev !== after.dev || before.ino !== after.ino || owner?.id !== id || owner.pid !== process.pid)
|
|
213
|
+
throw new ExecutionLimitError('authority', 'Coordinator ownership changed; no work is authorized.'); };
|
|
214
|
+
return { id, check, release: () => { check(); fs.unlinkSync(file); syncDir(this.root); } };
|
|
215
|
+
}
|
|
216
|
+
async append(change, signal, eventId = randomUUID(), beforeCommit) {
|
|
217
|
+
return (await this.appendBatch([{ change, eventId }], signal, beforeCommit))[0];
|
|
218
|
+
}
|
|
219
|
+
/** A control decision applies all selected resets or none; individual immutable events remain replayable. */
|
|
220
|
+
async appendBatch(changes, signal, beforeCommit) {
|
|
221
|
+
if (!changes.length || changes.length > 1280)
|
|
222
|
+
throw new OrchestrationError('limit', 'Invalid execution event batch size.');
|
|
223
|
+
return this.transaction(async () => changes, signal, beforeCommit);
|
|
224
|
+
}
|
|
225
|
+
/** Hold graph admission/finish serialization while committing a bounded external budget grant. */
|
|
226
|
+
async transaction(prepare, signal, beforeCommit) {
|
|
227
|
+
const before = this.identity(), lock = join(this.root, 'writer.lock');
|
|
228
|
+
let fd;
|
|
229
|
+
for (let n = 0; n <= 50; n++) {
|
|
230
|
+
throwIfCancelled(signal);
|
|
231
|
+
try {
|
|
232
|
+
fd = fs.openSync(lock, 'wx', 0o600);
|
|
233
|
+
break;
|
|
234
|
+
}
|
|
235
|
+
catch (error) {
|
|
236
|
+
if (error.code !== 'EEXIST')
|
|
237
|
+
throw unavailable();
|
|
238
|
+
recoverDeadWriterLock(lock);
|
|
239
|
+
if (n === 50)
|
|
240
|
+
throw new OrchestrationError('locked', 'Execution journal has another writer.');
|
|
241
|
+
await cancellableDelay(10, signal);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
const lockIdentity = fs.fstatSync(fd), file = join(this.root, 'history.json'), temp = join(this.root, randomUUID() + '.tmp');
|
|
245
|
+
try {
|
|
246
|
+
fs.writeFileSync(fd, String(process.pid));
|
|
247
|
+
const raw = readArtifactBytes(file, MAX_EXECUTION_BYTES, true), prior = this.read();
|
|
248
|
+
if (prior.events.length >= MAX_EXECUTION_EVENTS)
|
|
249
|
+
throw new OrchestrationError('limit', 'Execution event retention reached; preserve the run.');
|
|
250
|
+
const changes = await prepare(prior);
|
|
251
|
+
throwIfCancelled(signal);
|
|
252
|
+
if (changes.length > 1280)
|
|
253
|
+
throw new OrchestrationError('limit', 'Invalid execution event batch size.');
|
|
254
|
+
if (!changes.length)
|
|
255
|
+
return [];
|
|
256
|
+
const at = [new Date().toISOString(), prior.events.at(-1)?.at ?? prior.header.createdAt].sort().at(-1);
|
|
257
|
+
const events = [...prior.events], added = [];
|
|
258
|
+
for (const entry of changes) {
|
|
259
|
+
const body = { version: executionEventVersion(entry.change), id: entry.eventId ?? randomUUID(), runId: this.manifest.id, sequence: events.length + 1, at, previous: events.at(-1)?.hash ?? prior.state.revision, change: structuredClone(entry.change) }, event = { ...body, hash: digest(canonicalJson(body)) };
|
|
260
|
+
events.push(event);
|
|
261
|
+
added.push(event);
|
|
262
|
+
}
|
|
263
|
+
replayExecution(prior.header, this.manifest, events);
|
|
264
|
+
const next = JSON.stringify({ version: 1, header: prior.header, events, hash: journalHash(prior.header, events) });
|
|
265
|
+
const settlement = changes.every(({ change: c }) => ['task_finished', 'agent_finished', 'escalated', 'finished', 'supervision_decided', 'supervision_halted'].includes(c.type) || c.type === 'tool' && c.stage === 'finished'), reserve = 4 * this.manifest.plan.limits.maxConcurrent + (this.manifest.plan.supervision ? 3 : 1);
|
|
266
|
+
if (!settlement && (events.length + reserve > MAX_EXECUTION_EVENTS || Buffer.byteLength(next) + reserve * MAX_EXECUTION_EVENT_BYTES > MAX_EXECUTION_BYTES))
|
|
267
|
+
throw new OrchestrationError('limit', 'Execution retention leaves room only for active task outcomes; preserve this run.');
|
|
268
|
+
if (Buffer.byteLength(next) > MAX_EXECUTION_BYTES)
|
|
269
|
+
throw new OrchestrationError('limit', 'Execution history exceeded its byte limit; preserve the run.');
|
|
270
|
+
writeNew(temp, next);
|
|
271
|
+
throwIfCancelled(signal);
|
|
272
|
+
const after = this.identity();
|
|
273
|
+
if (before.dev !== after.dev || before.ino !== after.ino || !readArtifactBytes(file, MAX_EXECUTION_BYTES, true).equals(raw))
|
|
274
|
+
throw new OrchestrationError('conflict', 'Execution history changed before commit.');
|
|
275
|
+
beforeCommit?.();
|
|
276
|
+
throwIfCancelled(signal);
|
|
277
|
+
fs.renameSync(temp, file);
|
|
278
|
+
syncDir(this.root);
|
|
279
|
+
for (const event of added)
|
|
280
|
+
this.onEvent?.(event);
|
|
281
|
+
return added;
|
|
282
|
+
}
|
|
283
|
+
finally {
|
|
284
|
+
fs.closeSync(fd);
|
|
285
|
+
try {
|
|
286
|
+
const after = this.identity();
|
|
287
|
+
if (before.dev === after.dev && before.ino === after.ino) {
|
|
288
|
+
fs.rmSync(temp, { force: true });
|
|
289
|
+
const current = fs.lstatSync(lock);
|
|
290
|
+
if (current.ino === lockIdentity.ino && current.dev === lockIdentity.dev)
|
|
291
|
+
fs.unlinkSync(lock);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
catch { /* Preserve foreign state. */ }
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
writeArtifact(eventId, content, signal) {
|
|
298
|
+
this.identity();
|
|
299
|
+
if (!uuid(eventId) || Buffer.byteLength(content) > 1024 * 1024)
|
|
300
|
+
throw new OrchestrationError('limit', 'Artifact size or ID is invalid.');
|
|
301
|
+
const dir = join(this.root, 'artifacts');
|
|
302
|
+
privateDirectory(dir);
|
|
303
|
+
throwIfCancelled(signal);
|
|
304
|
+
const listing = fs.opendirSync(dir);
|
|
305
|
+
let bytes = Buffer.byteLength(content), count = 1;
|
|
306
|
+
try {
|
|
307
|
+
let entry;
|
|
308
|
+
while ((entry = listing.readSync())) {
|
|
309
|
+
if (!entry.isFile() || !entry.name.endsWith('.txt') || !uuid(entry.name.slice(0, -4)))
|
|
310
|
+
throw unavailable();
|
|
311
|
+
bytes += fs.lstatSync(join(dir, entry.name)).size;
|
|
312
|
+
if (++count > 10000 || bytes > 64 * 1024 * 1024)
|
|
313
|
+
throw new OrchestrationError('limit', 'Run artifact retention reached; preserve existing evidence.');
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
finally {
|
|
317
|
+
listing.closeSync();
|
|
318
|
+
}
|
|
319
|
+
const path = eventId + '.txt';
|
|
320
|
+
writeNew(join(dir, path), content);
|
|
321
|
+
syncDir(dir);
|
|
322
|
+
return path;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
//# sourceMappingURL=execution-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-store.js","sourceRoot":"","sources":["../../src/orchestration/execution-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ExecutionManifest, type AgentExecution } from '../execution/index.js';
|
|
2
|
+
import { type RunManifest } from './types.js';
|
|
3
|
+
import type { RunActionOptions } from './actions.js';
|
|
4
|
+
/** Build a bounded runtime contract from the immutable reviewed plan, not worker output. */
|
|
5
|
+
export declare function executionManifestForRun(input: RunManifest, now?: number): ExecutionManifest;
|
|
6
|
+
/** Library boundary only; preparing a budget never launches a worker or spends tokens. */
|
|
7
|
+
export declare function prepareAgentExecution(cwd: string, runId: string, agentId: string, maxOutputTokens: number, options?: RunActionOptions): Promise<AgentExecution>;
|
|
8
|
+
//# sourceMappingURL=execution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/orchestration/execution.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiG,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAInL,OAAO,EAAE,KAAK,WAAW,EAAsB,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,4FAA4F;AAC5F,wBAAgB,uBAAuB,CAAC,KAAK,EAAC,WAAW,EAAC,GAAG,SAAW,GAAE,iBAAiB,CAK1F;AACD,0FAA0F;AAC1F,wBAAsB,qBAAqB,CAAC,GAAG,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,eAAe,EAAC,MAAM,EAAC,OAAO,GAAC,gBAAmB,GAAE,OAAO,CAAC,cAAc,CAAC,CAiB7J"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { authorizeSessionAction } from '../session-management/index.js';
|
|
4
|
+
import { throwIfCancelled } from '../cancellation.js';
|
|
5
|
+
import { ReservationLedger, manifestHash, validateExecutionManifest, assertExecutionStoreOutsideProject } from '../execution/index.js';
|
|
6
|
+
import { ExecutionStore } from './execution-store.js';
|
|
7
|
+
import { inspectSpawnAuthority } from '../spawning/authority.js';
|
|
8
|
+
import { RunStore, validateRunManifest } from './store.js';
|
|
9
|
+
import { OrchestrationError } from './types.js';
|
|
10
|
+
/** Build a bounded runtime contract from the immutable reviewed plan, not worker output. */
|
|
11
|
+
export function executionManifestForRun(input, now = Date.now()) {
|
|
12
|
+
const manifest = validateRunManifest(input), plan = manifest.plan;
|
|
13
|
+
return validateExecutionManifest({ version: 1, runId: manifest.id, planHash: manifest.planHash, project: manifest.project, createdAt: now, deadline: now + plan.limits.timeBudgetMs,
|
|
14
|
+
tokenBudget: plan.limits.tokenBudget, costBudgetNanos: Math.floor(plan.limits.costBudgetUsd * 1e9),
|
|
15
|
+
accounts: plan.agents.map(agent => ({ id: agent.id, parentId: agent.parentId, tokenBudget: agent.tokenBudget, costBudgetNanos: Math.floor(agent.costBudgetUsd * 1e9), deadline: now + agent.timeBudgetMs, allowedTools: agent.allowedTools, allowedPaths: agent.allowedPaths })) });
|
|
16
|
+
}
|
|
17
|
+
/** Library boundary only; preparing a budget never launches a worker or spends tokens. */
|
|
18
|
+
export async function prepareAgentExecution(cwd, runId, agentId, maxOutputTokens, options = {}) {
|
|
19
|
+
const store = options.store ?? new RunStore(), view = await store.read(runId, cwd, options.signal);
|
|
20
|
+
assertExecutionStoreOutsideProject(view.manifest.project.root, store.root);
|
|
21
|
+
if (view.run.status !== 'approved')
|
|
22
|
+
throw new OrchestrationError('policy-denied', 'Run must be explicitly approved before preparing execution authority.');
|
|
23
|
+
const executionStore = new ExecutionStore(join(store.root, runId), view.manifest), context = executionStore.exists() ? executionStore.context() : view.manifest;
|
|
24
|
+
if (!context.plan.agents.some(a => a.id === agentId) || !Number.isSafeInteger(maxOutputTokens) || maxOutputTokens < 1 || maxOutputTokens > 100000000)
|
|
25
|
+
throw new OrchestrationError('invalid', 'Unknown agent or invalid output limit.');
|
|
26
|
+
await authorizeSessionAction(cwd, 'orchestration_budget', { path: cwd, runId, agentId, planHash: view.manifest.planHash, revision: view.run.revision, maxOutputTokens }, options);
|
|
27
|
+
throwIfCancelled(options.signal);
|
|
28
|
+
const latest = await store.read(runId, cwd, options.signal);
|
|
29
|
+
if (latest.run.revision !== view.run.revision)
|
|
30
|
+
throw new OrchestrationError('conflict', 'Run approval changed while authorizing execution.');
|
|
31
|
+
const ledger = new ReservationLedger(join(store.root, runId, 'budget'));
|
|
32
|
+
const { goalRunAuthority } = await import('../goals/index.js'), goalAuthority = goalRunAuthority(view.manifest, store.root);
|
|
33
|
+
const manifest = existsSync(ledger.root) ? ledger.read(cwd).manifest : executionManifestForRun(view.manifest, goalAuthority?.createdAt);
|
|
34
|
+
if (manifest.runId !== runId || manifest.planHash !== view.manifest.planHash)
|
|
35
|
+
throw new OrchestrationError('conflict', 'Budget belongs to another run plan.');
|
|
36
|
+
goalAuthority?.checkBudget(manifest);
|
|
37
|
+
ledger.create(manifest, options.signal);
|
|
38
|
+
const assertAuthority = () => { goalAuthority?.assertActive(); if (executionStore.exists()) {
|
|
39
|
+
const current = inspectSpawnAuthority(executionStore, ledger);
|
|
40
|
+
executionStore.assertApproval(current.view.header);
|
|
41
|
+
if (!current.context.plan.agents.some(a => a.id === agentId))
|
|
42
|
+
throw new OrchestrationError('policy-denied', 'Agent is not admitted to the current graph.');
|
|
43
|
+
} };
|
|
44
|
+
assertAuthority();
|
|
45
|
+
return { ledger, manifestHash: manifestHash(manifest), agentId, maxOutputTokens, assertAuthority };
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=execution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/orchestration/execution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export * from './types.js';
|
|
2
|
+
export * from './validation.js';
|
|
3
|
+
export * from './store.js';
|
|
4
|
+
export * from './actions.js';
|
|
5
|
+
export * from './cli.js';
|
|
6
|
+
export * from './execution.js';
|
|
7
|
+
export * from './coordinator-types.js';
|
|
8
|
+
export * from './execution-journal.js';
|
|
9
|
+
export * from './execution-store.js';
|
|
10
|
+
export * from './verification.js';
|
|
11
|
+
export * from './coordinator.js';
|
|
12
|
+
export * from './coordinator-actions.js';
|
|
13
|
+
export * from './recovery.js';
|
|
14
|
+
export * from './execution-cli.js';
|
|
15
|
+
export * from './worker-context.js';
|
|
16
|
+
export type { CoordinatorProgress } from './progress.js';
|
|
17
|
+
export { readRunAccounting, type RunAccounting, type AccountBalance } from './accounting.js';
|
|
18
|
+
export type { RecordedAgentRoute } from './routing.js';
|
|
19
|
+
export type { AttributedCharge, RequestAccounting } from './request-accounting.js';
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orchestration/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,YAAY,EAAC,mBAAmB,EAAC,MAAM,eAAe,CAAC;AACvD,OAAO,EAAC,iBAAiB,EAAC,KAAK,aAAa,EAAC,KAAK,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAEzF,YAAY,EAAC,kBAAkB,EAAC,MAAM,cAAc,CAAC;AACrD,YAAY,EAAC,gBAAgB,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export * from './types.js';
|
|
2
|
+
export * from './validation.js';
|
|
3
|
+
export * from './store.js';
|
|
4
|
+
export * from './actions.js';
|
|
5
|
+
export * from './cli.js';
|
|
6
|
+
export * from './execution.js';
|
|
7
|
+
export * from './coordinator-types.js';
|
|
8
|
+
export * from './execution-journal.js';
|
|
9
|
+
export * from './execution-store.js';
|
|
10
|
+
export * from './verification.js';
|
|
11
|
+
export * from './coordinator.js';
|
|
12
|
+
export * from './coordinator-actions.js';
|
|
13
|
+
export * from './recovery.js';
|
|
14
|
+
export * from './execution-cli.js';
|
|
15
|
+
export * from './worker-context.js';
|
|
16
|
+
export { readRunAccounting } from './accounting.js';
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orchestration/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AAEpC,OAAO,EAAC,iBAAiB,EAAwC,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ProjectPlan, RunManifest } from './types.js';
|
|
2
|
+
import type { LLMProvider } from '../types.js';
|
|
3
|
+
import type { RunPlanContext, ExecutionInspection } from './coordinator-types.js';
|
|
4
|
+
import { type RunAccounting } from './accounting.js';
|
|
5
|
+
import type { ExecutionStore } from './execution-store.js';
|
|
6
|
+
import { type GoalAccounting } from '../goals/accounting.js';
|
|
7
|
+
export interface CoordinatorProgress {
|
|
8
|
+
context: RunPlanContext;
|
|
9
|
+
execution: ExecutionInspection;
|
|
10
|
+
manifest?: RunManifest;
|
|
11
|
+
accounting?: RunAccounting;
|
|
12
|
+
goalAccounting?: GoalAccounting;
|
|
13
|
+
}
|
|
14
|
+
export declare function coordinatorProgress(store: ExecutionStore, execution?: ExecutionInspection): CoordinatorProgress;
|
|
15
|
+
export declare function agentPreference(plan: ProjectPlan, agentId: string): {
|
|
16
|
+
provider?: LLMProvider;
|
|
17
|
+
model?: string | null;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/orchestration/progress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAC,cAAc,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAmB,KAAK,aAAa,EAAC,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAsB,KAAK,cAAc,EAAC,MAAM,wBAAwB,CAAC;AAEhF,MAAM,WAAW,mBAAmB;IAAE,OAAO,EAAC,cAAc,CAAC;IAAA,SAAS,EAAC,mBAAmB,CAAC;IAAA,QAAQ,CAAC,EAAC,WAAW,CAAC;IAAA,UAAU,CAAC,EAAC,aAAa,CAAC;IAAA,cAAc,CAAC,EAAC,cAAc,CAAA;CAAC;AAC1K,wBAAgB,mBAAmB,CAAC,KAAK,EAAC,cAAc,EAAC,SAAS,sBAAa,GAAE,mBAAmB,CAGnG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,GAAE;IAAC,QAAQ,CAAC,EAAC,WAAW,CAAC;IAAA,KAAK,CAAC,EAAC,MAAM,GAAC,IAAI,CAAA;CAAC,CAU1G"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { readRunAccounting } from './accounting.js';
|
|
2
|
+
import { linkedGoalAccounting } from '../goals/accounting.js';
|
|
3
|
+
export function coordinatorProgress(store, execution = store.read()) {
|
|
4
|
+
const goalAccounting = linkedGoalAccounting(store, execution);
|
|
5
|
+
return { context: store.context(execution), execution, manifest: store.manifest, accounting: readRunAccounting(store, execution), ...(goalAccounting ? { goalAccounting } : {}) };
|
|
6
|
+
}
|
|
7
|
+
export function agentPreference(plan, agentId) {
|
|
8
|
+
let agent = plan.agents.find(a => a.id === agentId), model;
|
|
9
|
+
// An approved Smart pool is independent of the parent's pinned model.
|
|
10
|
+
if (agent?.routing)
|
|
11
|
+
return { provider: agent.preference.provider, model: agent.preference.model ?? null };
|
|
12
|
+
for (let n = 0; agent && n < plan.agents.length; n++) {
|
|
13
|
+
model ??= agent.preference.model;
|
|
14
|
+
if (agent.preference.provider !== 'auto')
|
|
15
|
+
return { provider: agent.preference.provider, ...(model ? { model } : {}) };
|
|
16
|
+
agent = plan.agents.find(a => a.id === agent.parentId);
|
|
17
|
+
}
|
|
18
|
+
return model ? { model } : {};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/orchestration/progress.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,iBAAiB,EAAoB,MAAM,iBAAiB,CAAC;AAErE,OAAO,EAAC,oBAAoB,EAAqB,MAAM,wBAAwB,CAAC;AAGhF,MAAM,UAAU,mBAAmB,CAAC,KAAoB,EAAC,SAAS,GAAC,KAAK,CAAC,IAAI,EAAE;IAC7E,MAAM,cAAc,GAAC,oBAAoB,CAAC,KAAK,EAAC,SAAS,CAAC,CAAC;IAC3D,OAAM,EAAC,OAAO,EAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAC,SAAS,EAAC,QAAQ,EAAC,KAAK,CAAC,QAAQ,EAAC,UAAU,EAAC,iBAAiB,CAAC,KAAK,EAAC,SAAS,CAAC,EAAC,GAAG,CAAC,cAAc,CAAA,CAAC,CAAA,EAAC,cAAc,EAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,CAAC;AACnK,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAgB,EAAC,OAAc;IAC7D,IAAI,KAAK,GAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,OAAO,CAAC,EAAC,KAAsB,CAAC;IACrE,sEAAsE;IACtE,IAAG,KAAK,EAAE,OAAO;QAAC,OAAO,EAAC,QAAQ,EAAC,KAAK,CAAC,UAAU,CAAC,QAAuB,EAAC,KAAK,EAAC,KAAK,CAAC,UAAU,CAAC,KAAK,IAAE,IAAI,EAAC,CAAC;IAChH,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,KAAK,IAAE,CAAC,GAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;QAC3C,KAAK,KAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;QAC/B,IAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,KAAG,MAAM;YAAC,OAAM,EAAC,QAAQ,EAAC,KAAK,CAAC,UAAU,CAAC,QAAuB,EAAC,GAAG,CAAC,KAAK,CAAA,CAAC,CAAA,EAAC,KAAK,EAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,CAAC;QACtH,KAAK,GAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,KAAM,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,KAAK,CAAA,CAAC,CAAA,EAAC,KAAK,EAAC,CAAA,CAAC,CAAA,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CoordinatorOptions } from './coordinator.js';
|
|
2
|
+
/** One evidence-only recovery of a legacy cutoff; no model call, retry or new clock. */
|
|
3
|
+
export declare function recoverTaskEvidence(cwd: string, runId: string, taskId: string, options?: CoordinatorOptions): Promise<import("./coordinator-types.js").ExecutionInspection>;
|
|
4
|
+
//# sourceMappingURL=recovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recovery.d.ts","sourceRoot":"","sources":["../../src/orchestration/recovery.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAGzD,wFAAwF;AACxF,wBAAsB,mBAAmB,CAAC,GAAG,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,GAAC,kBAAqB,iEA+D5G"}
|