attocode 0.2.4 → 0.2.5
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/CHANGELOG.md +56 -1
- package/dist/src/adapters.d.ts +2 -1
- package/dist/src/adapters.d.ts.map +1 -1
- package/dist/src/adapters.js +60 -2
- package/dist/src/adapters.js.map +1 -1
- package/dist/src/agent/agent-builder.d.ts +117 -0
- package/dist/src/agent/agent-builder.d.ts.map +1 -0
- package/dist/src/agent/agent-builder.js +204 -0
- package/dist/src/agent/agent-builder.js.map +1 -0
- package/dist/src/agent/feature-initializer.d.ts +80 -0
- package/dist/src/agent/feature-initializer.d.ts.map +1 -0
- package/dist/src/agent/feature-initializer.js +677 -0
- package/dist/src/agent/feature-initializer.js.map +1 -0
- package/dist/src/agent/index.d.ts +13 -0
- package/dist/src/agent/index.d.ts.map +1 -0
- package/dist/src/agent/index.js +13 -0
- package/dist/src/agent/index.js.map +1 -0
- package/dist/src/agent/message-builder.d.ts +50 -0
- package/dist/src/agent/message-builder.d.ts.map +1 -0
- package/dist/src/agent/message-builder.js +173 -0
- package/dist/src/agent/message-builder.js.map +1 -0
- package/dist/src/agent/session-api.d.ts +94 -0
- package/dist/src/agent/session-api.d.ts.map +1 -0
- package/dist/src/agent/session-api.js +262 -0
- package/dist/src/agent/session-api.js.map +1 -0
- package/dist/src/agent-tools/lsp-file-tools.d.ts +1 -1
- package/dist/src/agent-tools/lsp-file-tools.d.ts.map +1 -1
- package/dist/src/agent.d.ts +14 -115
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +36 -1177
- package/dist/src/agent.js.map +1 -1
- package/dist/src/cli.js +1 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/handler.d.ts.map +1 -1
- package/dist/src/commands/handler.js +8 -7
- package/dist/src/commands/handler.js.map +1 -1
- package/dist/src/commands/init.js +1 -1
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/config/schema.d.ts +6 -6
- package/dist/src/core/execution-loop.d.ts.map +1 -1
- package/dist/src/core/execution-loop.js +155 -16
- package/dist/src/core/execution-loop.js.map +1 -1
- package/dist/src/core/response-handler.d.ts.map +1 -1
- package/dist/src/core/response-handler.js +3 -2
- package/dist/src/core/response-handler.js.map +1 -1
- package/dist/src/core/subagent-spawner.d.ts.map +1 -1
- package/dist/src/core/subagent-spawner.js +13 -6
- package/dist/src/core/subagent-spawner.js.map +1 -1
- package/dist/src/core/tool-executor.d.ts.map +1 -1
- package/dist/src/core/tool-executor.js +7 -2
- package/dist/src/core/tool-executor.js.map +1 -1
- package/dist/src/core/types.d.ts +1 -0
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/core/types.js.map +1 -1
- package/dist/src/integrations/agents/agent-registry.d.ts +262 -0
- package/dist/src/integrations/agents/agent-registry.d.ts.map +1 -0
- package/dist/src/integrations/agents/agent-registry.js +686 -0
- package/dist/src/integrations/agents/agent-registry.js.map +1 -0
- package/dist/src/integrations/agents/async-subagent.d.ts +135 -0
- package/dist/src/integrations/agents/async-subagent.d.ts.map +1 -0
- package/dist/src/integrations/agents/async-subagent.js +213 -0
- package/dist/src/integrations/agents/async-subagent.js.map +1 -0
- package/dist/src/integrations/agents/complexity-classifier.d.ts +86 -0
- package/dist/src/integrations/agents/complexity-classifier.d.ts.map +1 -0
- package/dist/src/integrations/agents/complexity-classifier.js +233 -0
- package/dist/src/integrations/agents/complexity-classifier.js.map +1 -0
- package/dist/src/integrations/agents/delegation-protocol.d.ts +86 -0
- package/dist/src/integrations/agents/delegation-protocol.d.ts.map +1 -0
- package/dist/src/integrations/agents/delegation-protocol.js +127 -0
- package/dist/src/integrations/agents/delegation-protocol.js.map +1 -0
- package/dist/src/integrations/agents/multi-agent.d.ts +150 -0
- package/dist/src/integrations/agents/multi-agent.d.ts.map +1 -0
- package/dist/src/integrations/agents/multi-agent.js +306 -0
- package/dist/src/integrations/agents/multi-agent.js.map +1 -0
- package/dist/src/integrations/agents/result-synthesizer.d.ts +389 -0
- package/dist/src/integrations/agents/result-synthesizer.d.ts.map +1 -0
- package/dist/src/integrations/agents/result-synthesizer.js +951 -0
- package/dist/src/integrations/agents/result-synthesizer.js.map +1 -0
- package/dist/src/integrations/agents/shared-blackboard.d.ts +406 -0
- package/dist/src/integrations/agents/shared-blackboard.d.ts.map +1 -0
- package/dist/src/integrations/agents/shared-blackboard.js +757 -0
- package/dist/src/integrations/agents/shared-blackboard.js.map +1 -0
- package/dist/src/integrations/agents/subagent-output-store.d.ts +91 -0
- package/dist/src/integrations/agents/subagent-output-store.d.ts.map +1 -0
- package/dist/src/integrations/agents/subagent-output-store.js +257 -0
- package/dist/src/integrations/agents/subagent-output-store.js.map +1 -0
- package/dist/src/integrations/budget/budget-pool.d.ts +115 -0
- package/dist/src/integrations/budget/budget-pool.d.ts.map +1 -0
- package/dist/src/integrations/budget/budget-pool.js +205 -0
- package/dist/src/integrations/budget/budget-pool.js.map +1 -0
- package/dist/src/integrations/budget/cancellation.d.ts +229 -0
- package/dist/src/integrations/budget/cancellation.d.ts.map +1 -0
- package/dist/src/integrations/budget/cancellation.js +520 -0
- package/dist/src/integrations/budget/cancellation.js.map +1 -0
- package/dist/src/integrations/budget/dynamic-budget.d.ts +81 -0
- package/dist/src/integrations/budget/dynamic-budget.d.ts.map +1 -0
- package/dist/src/integrations/budget/dynamic-budget.js +151 -0
- package/dist/src/integrations/budget/dynamic-budget.js.map +1 -0
- package/dist/src/integrations/budget/economics.d.ts +435 -0
- package/dist/src/integrations/budget/economics.d.ts.map +1 -0
- package/dist/src/integrations/budget/economics.js +1007 -0
- package/dist/src/integrations/budget/economics.js.map +1 -0
- package/dist/src/integrations/budget/injection-budget.d.ts +71 -0
- package/dist/src/integrations/budget/injection-budget.d.ts.map +1 -0
- package/dist/src/integrations/budget/injection-budget.js +137 -0
- package/dist/src/integrations/budget/injection-budget.js.map +1 -0
- package/dist/src/integrations/budget/loop-detector.d.ts +105 -0
- package/dist/src/integrations/budget/loop-detector.d.ts.map +1 -0
- package/dist/src/integrations/budget/loop-detector.js +287 -0
- package/dist/src/integrations/budget/loop-detector.js.map +1 -0
- package/dist/src/integrations/budget/phase-tracker.d.ts +114 -0
- package/dist/src/integrations/budget/phase-tracker.d.ts.map +1 -0
- package/dist/src/integrations/budget/phase-tracker.js +262 -0
- package/dist/src/integrations/budget/phase-tracker.js.map +1 -0
- package/dist/src/integrations/budget/resources.d.ts +182 -0
- package/dist/src/integrations/budget/resources.d.ts.map +1 -0
- package/dist/src/integrations/budget/resources.js +318 -0
- package/dist/src/integrations/budget/resources.js.map +1 -0
- package/dist/src/integrations/context/auto-compaction.d.ts +210 -0
- package/dist/src/integrations/context/auto-compaction.d.ts.map +1 -0
- package/dist/src/integrations/context/auto-compaction.js +477 -0
- package/dist/src/integrations/context/auto-compaction.js.map +1 -0
- package/dist/src/integrations/context/code-analyzer.d.ts +71 -0
- package/dist/src/integrations/context/code-analyzer.d.ts.map +1 -0
- package/dist/src/integrations/context/code-analyzer.js +448 -0
- package/dist/src/integrations/context/code-analyzer.js.map +1 -0
- package/dist/src/integrations/context/code-selector.d.ts +78 -0
- package/dist/src/integrations/context/code-selector.d.ts.map +1 -0
- package/dist/src/integrations/context/code-selector.js +649 -0
- package/dist/src/integrations/context/code-selector.js.map +1 -0
- package/dist/src/integrations/context/codebase-ast.d.ts +138 -0
- package/dist/src/integrations/context/codebase-ast.d.ts.map +1 -0
- package/dist/src/integrations/context/codebase-ast.js +818 -0
- package/dist/src/integrations/context/codebase-ast.js.map +1 -0
- package/dist/src/integrations/context/codebase-context.d.ts +473 -0
- package/dist/src/integrations/context/codebase-context.d.ts.map +1 -0
- package/dist/src/integrations/context/codebase-context.js +685 -0
- package/dist/src/integrations/context/codebase-context.js.map +1 -0
- package/dist/src/integrations/context/compaction.d.ts +191 -0
- package/dist/src/integrations/context/compaction.d.ts.map +1 -0
- package/dist/src/integrations/context/compaction.js +384 -0
- package/dist/src/integrations/context/compaction.js.map +1 -0
- package/dist/src/integrations/context/context-engineering.d.ts +274 -0
- package/dist/src/integrations/context/context-engineering.d.ts.map +1 -0
- package/dist/src/integrations/context/context-engineering.js +437 -0
- package/dist/src/integrations/context/context-engineering.js.map +1 -0
- package/dist/src/integrations/context/file-cache.d.ts +97 -0
- package/dist/src/integrations/context/file-cache.d.ts.map +1 -0
- package/dist/src/integrations/context/file-cache.js +218 -0
- package/dist/src/integrations/context/file-cache.js.map +1 -0
- package/dist/src/integrations/context/semantic-cache.d.ts +178 -0
- package/dist/src/integrations/context/semantic-cache.d.ts.map +1 -0
- package/dist/src/integrations/context/semantic-cache.js +372 -0
- package/dist/src/integrations/context/semantic-cache.js.map +1 -0
- package/dist/src/integrations/index.d.ts +72 -68
- package/dist/src/integrations/index.d.ts.map +1 -1
- package/dist/src/integrations/index.js +76 -68
- package/dist/src/integrations/index.js.map +1 -1
- package/dist/src/integrations/lsp/lsp.d.ts +196 -0
- package/dist/src/integrations/lsp/lsp.d.ts.map +1 -0
- package/dist/src/integrations/lsp/lsp.js +583 -0
- package/dist/src/integrations/lsp/lsp.js.map +1 -0
- package/dist/src/integrations/mcp/mcp-client.d.ts +279 -0
- package/dist/src/integrations/mcp/mcp-client.d.ts.map +1 -0
- package/dist/src/integrations/mcp/mcp-client.js +755 -0
- package/dist/src/integrations/mcp/mcp-client.js.map +1 -0
- package/dist/src/integrations/mcp/mcp-custom-tools.d.ts +102 -0
- package/dist/src/integrations/mcp/mcp-custom-tools.d.ts.map +1 -0
- package/dist/src/integrations/mcp/mcp-custom-tools.js +232 -0
- package/dist/src/integrations/mcp/mcp-custom-tools.js.map +1 -0
- package/dist/src/integrations/mcp/mcp-tool-search.d.ts +77 -0
- package/dist/src/integrations/mcp/mcp-tool-search.d.ts.map +1 -0
- package/dist/src/integrations/mcp/mcp-tool-search.js +220 -0
- package/dist/src/integrations/mcp/mcp-tool-search.js.map +1 -0
- package/dist/src/integrations/mcp/mcp-tool-validator.d.ts +60 -0
- package/dist/src/integrations/mcp/mcp-tool-validator.d.ts.map +1 -0
- package/dist/src/integrations/mcp/mcp-tool-validator.js +141 -0
- package/dist/src/integrations/mcp/mcp-tool-validator.js.map +1 -0
- package/dist/src/integrations/persistence/codebase-repository.d.ts +45 -0
- package/dist/src/integrations/persistence/codebase-repository.d.ts.map +1 -0
- package/dist/src/integrations/persistence/codebase-repository.js +81 -0
- package/dist/src/integrations/persistence/codebase-repository.js.map +1 -0
- package/dist/src/integrations/persistence/goal-repository.d.ts +71 -0
- package/dist/src/integrations/persistence/goal-repository.d.ts.map +1 -0
- package/dist/src/integrations/persistence/goal-repository.js +184 -0
- package/dist/src/integrations/persistence/goal-repository.js.map +1 -0
- package/dist/src/integrations/persistence/history.d.ts +72 -0
- package/dist/src/integrations/persistence/history.d.ts.map +1 -0
- package/dist/src/integrations/persistence/history.js +165 -0
- package/dist/src/integrations/persistence/history.js.map +1 -0
- package/dist/src/integrations/persistence/persistence.d.ts +49 -0
- package/dist/src/integrations/persistence/persistence.d.ts.map +1 -0
- package/dist/src/integrations/persistence/persistence.js +197 -0
- package/dist/src/integrations/persistence/persistence.js.map +1 -0
- package/dist/src/integrations/persistence/session-repository.d.ts +212 -0
- package/dist/src/integrations/persistence/session-repository.d.ts.map +1 -0
- package/dist/src/integrations/persistence/session-repository.js +770 -0
- package/dist/src/integrations/persistence/session-repository.js.map +1 -0
- package/dist/src/integrations/persistence/session-store.d.ts +184 -0
- package/dist/src/integrations/persistence/session-store.d.ts.map +1 -0
- package/dist/src/integrations/persistence/session-store.js +346 -0
- package/dist/src/integrations/persistence/session-store.js.map +1 -0
- package/dist/src/integrations/persistence/sqlite-store.d.ts +453 -0
- package/dist/src/integrations/persistence/sqlite-store.d.ts.map +1 -0
- package/dist/src/integrations/persistence/sqlite-store.js +676 -0
- package/dist/src/integrations/persistence/sqlite-store.js.map +1 -0
- package/dist/src/integrations/persistence/worker-repository.d.ts +65 -0
- package/dist/src/integrations/persistence/worker-repository.d.ts.map +1 -0
- package/dist/src/integrations/persistence/worker-repository.js +183 -0
- package/dist/src/integrations/persistence/worker-repository.js.map +1 -0
- package/dist/src/integrations/quality/auto-checkpoint.d.ts +98 -0
- package/dist/src/integrations/quality/auto-checkpoint.d.ts.map +1 -0
- package/dist/src/integrations/quality/auto-checkpoint.js +252 -0
- package/dist/src/integrations/quality/auto-checkpoint.js.map +1 -0
- package/dist/src/integrations/quality/dead-letter-queue.d.ts +233 -0
- package/dist/src/integrations/quality/dead-letter-queue.d.ts.map +1 -0
- package/dist/src/integrations/quality/dead-letter-queue.js +543 -0
- package/dist/src/integrations/quality/dead-letter-queue.js.map +1 -0
- package/dist/src/integrations/quality/health-check.d.ts +218 -0
- package/dist/src/integrations/quality/health-check.d.ts.map +1 -0
- package/dist/src/integrations/quality/health-check.js +415 -0
- package/dist/src/integrations/quality/health-check.js.map +1 -0
- package/dist/src/integrations/quality/learning-store.d.ts +291 -0
- package/dist/src/integrations/quality/learning-store.d.ts.map +1 -0
- package/dist/src/integrations/quality/learning-store.js +646 -0
- package/dist/src/integrations/quality/learning-store.js.map +1 -0
- package/dist/src/integrations/quality/self-improvement.d.ts +90 -0
- package/dist/src/integrations/quality/self-improvement.d.ts.map +1 -0
- package/dist/src/integrations/quality/self-improvement.js +229 -0
- package/dist/src/integrations/quality/self-improvement.js.map +1 -0
- package/dist/src/integrations/quality/tool-recommendation.d.ts +61 -0
- package/dist/src/integrations/quality/tool-recommendation.d.ts.map +1 -0
- package/dist/src/integrations/quality/tool-recommendation.js +268 -0
- package/dist/src/integrations/quality/tool-recommendation.js.map +1 -0
- package/dist/src/integrations/safety/bash-policy.d.ts +33 -0
- package/dist/src/integrations/safety/bash-policy.d.ts.map +1 -0
- package/dist/src/integrations/safety/bash-policy.js +144 -0
- package/dist/src/integrations/safety/bash-policy.js.map +1 -0
- package/dist/src/integrations/safety/edit-validator.d.ts +30 -0
- package/dist/src/integrations/safety/edit-validator.d.ts.map +1 -0
- package/dist/src/integrations/safety/edit-validator.js +87 -0
- package/dist/src/integrations/safety/edit-validator.js.map +1 -0
- package/dist/src/integrations/safety/execution-policy.d.ts +189 -0
- package/dist/src/integrations/safety/execution-policy.d.ts.map +1 -0
- package/dist/src/integrations/safety/execution-policy.js +352 -0
- package/dist/src/integrations/safety/execution-policy.js.map +1 -0
- package/dist/src/integrations/safety/policy-engine.d.ts +55 -0
- package/dist/src/integrations/safety/policy-engine.d.ts.map +1 -0
- package/dist/src/integrations/safety/policy-engine.js +247 -0
- package/dist/src/integrations/safety/policy-engine.js.map +1 -0
- package/dist/src/integrations/safety/safety.d.ts +174 -0
- package/dist/src/integrations/safety/safety.d.ts.map +1 -0
- package/dist/src/integrations/safety/safety.js +470 -0
- package/dist/src/integrations/safety/safety.js.map +1 -0
- package/dist/src/integrations/safety/sandbox/basic.d.ts +81 -0
- package/dist/src/integrations/safety/sandbox/basic.d.ts.map +1 -0
- package/dist/src/integrations/safety/sandbox/basic.js +335 -0
- package/dist/src/integrations/safety/sandbox/basic.js.map +1 -0
- package/dist/src/integrations/safety/sandbox/docker.d.ts +94 -0
- package/dist/src/integrations/safety/sandbox/docker.d.ts.map +1 -0
- package/dist/src/integrations/safety/sandbox/docker.js +294 -0
- package/dist/src/integrations/safety/sandbox/docker.js.map +1 -0
- package/dist/src/integrations/safety/sandbox/index.d.ts +188 -0
- package/dist/src/integrations/safety/sandbox/index.d.ts.map +1 -0
- package/dist/src/integrations/safety/sandbox/index.js +386 -0
- package/dist/src/integrations/safety/sandbox/index.js.map +1 -0
- package/dist/src/integrations/safety/sandbox/landlock.d.ts +59 -0
- package/dist/src/integrations/safety/sandbox/landlock.d.ts.map +1 -0
- package/dist/src/integrations/safety/sandbox/landlock.js +329 -0
- package/dist/src/integrations/safety/sandbox/landlock.js.map +1 -0
- package/dist/src/integrations/safety/sandbox/seatbelt.d.ts +68 -0
- package/dist/src/integrations/safety/sandbox/seatbelt.d.ts.map +1 -0
- package/dist/src/integrations/safety/sandbox/seatbelt.js +298 -0
- package/dist/src/integrations/safety/sandbox/seatbelt.js.map +1 -0
- package/dist/src/integrations/safety/type-checker.d.ts +53 -0
- package/dist/src/integrations/safety/type-checker.d.ts.map +1 -0
- package/dist/src/integrations/safety/type-checker.js +142 -0
- package/dist/src/integrations/safety/type-checker.js.map +1 -0
- package/dist/src/integrations/skills/skill-executor.d.ts +113 -0
- package/dist/src/integrations/skills/skill-executor.d.ts.map +1 -0
- package/dist/src/integrations/skills/skill-executor.js +270 -0
- package/dist/src/integrations/skills/skill-executor.js.map +1 -0
- package/dist/src/integrations/skills/skills.d.ts +262 -0
- package/dist/src/integrations/skills/skills.d.ts.map +1 -0
- package/dist/src/integrations/skills/skills.js +602 -0
- package/dist/src/integrations/skills/skills.js.map +1 -0
- package/dist/src/integrations/streaming/pty-shell.d.ts +169 -0
- package/dist/src/integrations/streaming/pty-shell.d.ts.map +1 -0
- package/dist/src/integrations/streaming/pty-shell.js +367 -0
- package/dist/src/integrations/streaming/pty-shell.js.map +1 -0
- package/dist/src/integrations/streaming/streaming.d.ts +102 -0
- package/dist/src/integrations/streaming/streaming.d.ts.map +1 -0
- package/dist/src/integrations/streaming/streaming.js +362 -0
- package/dist/src/integrations/streaming/streaming.js.map +1 -0
- package/dist/src/integrations/swarm/index.d.ts +2 -1
- package/dist/src/integrations/swarm/index.d.ts.map +1 -1
- package/dist/src/integrations/swarm/index.js +2 -0
- package/dist/src/integrations/swarm/index.js.map +1 -1
- package/dist/src/integrations/swarm/model-selector.js +1 -1
- package/dist/src/integrations/swarm/model-selector.js.map +1 -1
- package/dist/src/integrations/swarm/swarm-budget.d.ts +1 -1
- package/dist/src/integrations/swarm/swarm-budget.d.ts.map +1 -1
- package/dist/src/integrations/swarm/swarm-budget.js +1 -1
- package/dist/src/integrations/swarm/swarm-budget.js.map +1 -1
- package/dist/src/integrations/swarm/swarm-config-loader.d.ts.map +1 -1
- package/dist/src/integrations/swarm/swarm-config-loader.js +7 -0
- package/dist/src/integrations/swarm/swarm-config-loader.js.map +1 -1
- package/dist/src/integrations/swarm/swarm-events.d.ts +1 -1
- package/dist/src/integrations/swarm/swarm-events.d.ts.map +1 -1
- package/dist/src/integrations/swarm/swarm-execution.d.ts +27 -0
- package/dist/src/integrations/swarm/swarm-execution.d.ts.map +1 -0
- package/dist/src/integrations/swarm/swarm-execution.js +1021 -0
- package/dist/src/integrations/swarm/swarm-execution.js.map +1 -0
- package/dist/src/integrations/swarm/swarm-helpers.d.ts +26 -0
- package/dist/src/integrations/swarm/swarm-helpers.d.ts.map +1 -0
- package/dist/src/integrations/swarm/swarm-helpers.js +95 -0
- package/dist/src/integrations/swarm/swarm-helpers.js.map +1 -0
- package/dist/src/integrations/swarm/swarm-lifecycle.d.ts +100 -0
- package/dist/src/integrations/swarm/swarm-lifecycle.d.ts.map +1 -0
- package/dist/src/integrations/swarm/swarm-lifecycle.js +922 -0
- package/dist/src/integrations/swarm/swarm-lifecycle.js.map +1 -0
- package/dist/src/integrations/swarm/swarm-orchestrator.d.ts +84 -203
- package/dist/src/integrations/swarm/swarm-orchestrator.d.ts.map +1 -1
- package/dist/src/integrations/swarm/swarm-orchestrator.js +251 -2870
- package/dist/src/integrations/swarm/swarm-orchestrator.js.map +1 -1
- package/dist/src/integrations/swarm/swarm-quality-gate.js +1 -1
- package/dist/src/integrations/swarm/swarm-quality-gate.js.map +1 -1
- package/dist/src/integrations/swarm/swarm-recovery.d.ts +75 -0
- package/dist/src/integrations/swarm/swarm-recovery.d.ts.map +1 -0
- package/dist/src/integrations/swarm/swarm-recovery.js +550 -0
- package/dist/src/integrations/swarm/swarm-recovery.js.map +1 -0
- package/dist/src/integrations/swarm/swarm-state-store.d.ts.map +1 -1
- package/dist/src/integrations/swarm/swarm-state-store.js +6 -0
- package/dist/src/integrations/swarm/swarm-state-store.js.map +1 -1
- package/dist/src/integrations/swarm/task-queue.d.ts +1 -1
- package/dist/src/integrations/swarm/task-queue.d.ts.map +1 -1
- package/dist/src/integrations/swarm/task-queue.js +28 -1
- package/dist/src/integrations/swarm/task-queue.js.map +1 -1
- package/dist/src/integrations/swarm/types.d.ts +17 -5
- package/dist/src/integrations/swarm/types.d.ts.map +1 -1
- package/dist/src/integrations/swarm/types.js.map +1 -1
- package/dist/src/integrations/swarm/worker-pool.d.ts +1 -1
- package/dist/src/integrations/swarm/worker-pool.d.ts.map +1 -1
- package/dist/src/integrations/swarm/worker-pool.js +13 -9
- package/dist/src/integrations/swarm/worker-pool.js.map +1 -1
- package/dist/src/integrations/tasks/dependency-analyzer.d.ts +34 -0
- package/dist/src/integrations/tasks/dependency-analyzer.d.ts.map +1 -0
- package/dist/src/integrations/tasks/dependency-analyzer.js +232 -0
- package/dist/src/integrations/tasks/dependency-analyzer.js.map +1 -0
- package/dist/src/integrations/tasks/interactive-planning.d.ts +322 -0
- package/dist/src/integrations/tasks/interactive-planning.d.ts.map +1 -0
- package/dist/src/integrations/tasks/interactive-planning.js +655 -0
- package/dist/src/integrations/tasks/interactive-planning.js.map +1 -0
- package/dist/src/integrations/tasks/pending-plan.d.ts +196 -0
- package/dist/src/integrations/tasks/pending-plan.d.ts.map +1 -0
- package/dist/src/integrations/tasks/pending-plan.js +431 -0
- package/dist/src/integrations/tasks/pending-plan.js.map +1 -0
- package/dist/src/integrations/tasks/planning.d.ts +115 -0
- package/dist/src/integrations/tasks/planning.d.ts.map +1 -0
- package/dist/src/integrations/tasks/planning.js +413 -0
- package/dist/src/integrations/tasks/planning.js.map +1 -0
- package/dist/src/integrations/tasks/smart-decomposer.d.ts +316 -0
- package/dist/src/integrations/tasks/smart-decomposer.d.ts.map +1 -0
- package/dist/src/integrations/tasks/smart-decomposer.js +661 -0
- package/dist/src/integrations/tasks/smart-decomposer.js.map +1 -0
- package/dist/src/integrations/tasks/task-manager.d.ts +164 -0
- package/dist/src/integrations/tasks/task-manager.d.ts.map +1 -0
- package/dist/src/integrations/tasks/task-manager.js +383 -0
- package/dist/src/integrations/tasks/task-manager.js.map +1 -0
- package/dist/src/integrations/tasks/task-splitter.d.ts +56 -0
- package/dist/src/integrations/tasks/task-splitter.d.ts.map +1 -0
- package/dist/src/integrations/tasks/task-splitter.js +537 -0
- package/dist/src/integrations/tasks/task-splitter.js.map +1 -0
- package/dist/src/integrations/tasks/verification-gate.d.ts +103 -0
- package/dist/src/integrations/tasks/verification-gate.d.ts.map +1 -0
- package/dist/src/integrations/tasks/verification-gate.js +193 -0
- package/dist/src/integrations/tasks/verification-gate.js.map +1 -0
- package/dist/src/integrations/tasks/work-log.d.ts +87 -0
- package/dist/src/integrations/tasks/work-log.d.ts.map +1 -0
- package/dist/src/integrations/tasks/work-log.js +275 -0
- package/dist/src/integrations/tasks/work-log.js.map +1 -0
- package/dist/src/integrations/utilities/capabilities.d.ts +160 -0
- package/dist/src/integrations/utilities/capabilities.d.ts.map +1 -0
- package/dist/src/integrations/utilities/capabilities.js +426 -0
- package/dist/src/integrations/utilities/capabilities.js.map +1 -0
- package/dist/src/integrations/utilities/diff-utils.d.ts +105 -0
- package/dist/src/integrations/utilities/diff-utils.d.ts.map +1 -0
- package/dist/src/integrations/utilities/diff-utils.js +497 -0
- package/dist/src/integrations/utilities/diff-utils.js.map +1 -0
- package/dist/src/integrations/utilities/environment-facts.d.ts +52 -0
- package/dist/src/integrations/utilities/environment-facts.d.ts.map +1 -0
- package/dist/src/integrations/utilities/environment-facts.js +84 -0
- package/dist/src/integrations/utilities/environment-facts.js.map +1 -0
- package/dist/src/integrations/utilities/file-change-tracker.d.ts +162 -0
- package/dist/src/integrations/utilities/file-change-tracker.d.ts.map +1 -0
- package/dist/src/integrations/utilities/file-change-tracker.js +538 -0
- package/dist/src/integrations/utilities/file-change-tracker.js.map +1 -0
- package/dist/src/integrations/utilities/graph-visualization.d.ts +72 -0
- package/dist/src/integrations/utilities/graph-visualization.d.ts.map +1 -0
- package/dist/src/integrations/utilities/graph-visualization.js +383 -0
- package/dist/src/integrations/utilities/graph-visualization.js.map +1 -0
- package/dist/src/integrations/utilities/hierarchical-config.d.ts +215 -0
- package/dist/src/integrations/utilities/hierarchical-config.d.ts.map +1 -0
- package/dist/src/integrations/utilities/hierarchical-config.js +504 -0
- package/dist/src/integrations/utilities/hierarchical-config.js.map +1 -0
- package/dist/src/integrations/utilities/hooks.d.ts +116 -0
- package/dist/src/integrations/utilities/hooks.d.ts.map +1 -0
- package/dist/src/integrations/utilities/hooks.js +410 -0
- package/dist/src/integrations/utilities/hooks.js.map +1 -0
- package/dist/src/integrations/utilities/ignore.d.ts +143 -0
- package/dist/src/integrations/utilities/ignore.d.ts.map +1 -0
- package/dist/src/integrations/utilities/ignore.js +417 -0
- package/dist/src/integrations/utilities/ignore.js.map +1 -0
- package/dist/src/integrations/utilities/image-renderer.d.ts +119 -0
- package/dist/src/integrations/utilities/image-renderer.d.ts.map +1 -0
- package/dist/src/integrations/utilities/image-renderer.js +306 -0
- package/dist/src/integrations/utilities/image-renderer.js.map +1 -0
- package/dist/src/integrations/utilities/logger.d.ts +104 -0
- package/dist/src/integrations/utilities/logger.d.ts.map +1 -0
- package/dist/src/integrations/utilities/logger.js +219 -0
- package/dist/src/integrations/utilities/logger.js.map +1 -0
- package/dist/src/integrations/utilities/memory.d.ts +116 -0
- package/dist/src/integrations/utilities/memory.d.ts.map +1 -0
- package/dist/src/integrations/utilities/memory.js +311 -0
- package/dist/src/integrations/utilities/memory.js.map +1 -0
- package/dist/src/integrations/utilities/observability.d.ts +162 -0
- package/dist/src/integrations/utilities/observability.d.ts.map +1 -0
- package/dist/src/integrations/utilities/observability.js +407 -0
- package/dist/src/integrations/utilities/observability.js.map +1 -0
- package/dist/src/integrations/utilities/openrouter-pricing.d.ts +67 -0
- package/dist/src/integrations/utilities/openrouter-pricing.d.ts.map +1 -0
- package/dist/src/integrations/utilities/openrouter-pricing.js +166 -0
- package/dist/src/integrations/utilities/openrouter-pricing.js.map +1 -0
- package/dist/src/integrations/utilities/react.d.ts +139 -0
- package/dist/src/integrations/utilities/react.d.ts.map +1 -0
- package/dist/src/integrations/utilities/react.js +273 -0
- package/dist/src/integrations/utilities/react.js.map +1 -0
- package/dist/src/integrations/utilities/retry.d.ts +132 -0
- package/dist/src/integrations/utilities/retry.d.ts.map +1 -0
- package/dist/src/integrations/utilities/retry.js +233 -0
- package/dist/src/integrations/utilities/retry.js.map +1 -0
- package/dist/src/integrations/utilities/routing.d.ts +118 -0
- package/dist/src/integrations/utilities/routing.d.ts.map +1 -0
- package/dist/src/integrations/utilities/routing.js +348 -0
- package/dist/src/integrations/utilities/routing.js.map +1 -0
- package/dist/src/integrations/utilities/rules.d.ts +131 -0
- package/dist/src/integrations/utilities/rules.d.ts.map +1 -0
- package/dist/src/integrations/utilities/rules.js +284 -0
- package/dist/src/integrations/utilities/rules.js.map +1 -0
- package/dist/src/integrations/utilities/sourcegraph.d.ts +169 -0
- package/dist/src/integrations/utilities/sourcegraph.d.ts.map +1 -0
- package/dist/src/integrations/utilities/sourcegraph.js +379 -0
- package/dist/src/integrations/utilities/sourcegraph.js.map +1 -0
- package/dist/src/integrations/utilities/thinking-strategy.d.ts +52 -0
- package/dist/src/integrations/utilities/thinking-strategy.d.ts.map +1 -0
- package/dist/src/integrations/utilities/thinking-strategy.js +129 -0
- package/dist/src/integrations/utilities/thinking-strategy.js.map +1 -0
- package/dist/src/integrations/utilities/thread-manager.d.ts +199 -0
- package/dist/src/integrations/utilities/thread-manager.d.ts.map +1 -0
- package/dist/src/integrations/utilities/thread-manager.js +357 -0
- package/dist/src/integrations/utilities/thread-manager.js.map +1 -0
- package/dist/src/integrations/utilities/token-estimate.d.ts +11 -0
- package/dist/src/integrations/utilities/token-estimate.d.ts.map +1 -0
- package/dist/src/integrations/utilities/token-estimate.js +14 -0
- package/dist/src/integrations/utilities/token-estimate.js.map +1 -0
- package/dist/src/main.js +10 -4
- package/dist/src/main.js.map +1 -1
- package/dist/src/modes/repl.d.ts.map +1 -1
- package/dist/src/modes/repl.js +22 -5
- package/dist/src/modes/repl.js.map +1 -1
- package/dist/src/modes/tui.d.ts.map +1 -1
- package/dist/src/modes/tui.js +23 -6
- package/dist/src/modes/tui.js.map +1 -1
- package/dist/src/modes.js +1 -1
- package/dist/src/modes.js.map +1 -1
- package/dist/src/observability/tracer.js +1 -1
- package/dist/src/observability/tracer.js.map +1 -1
- package/dist/src/persistence/schema.d.ts +2 -0
- package/dist/src/persistence/schema.d.ts.map +1 -1
- package/dist/src/persistence/schema.js +31 -0
- package/dist/src/persistence/schema.js.map +1 -1
- package/dist/src/providers/adapters/anthropic.d.ts +6 -0
- package/dist/src/providers/adapters/anthropic.d.ts.map +1 -1
- package/dist/src/providers/adapters/anthropic.js +99 -15
- package/dist/src/providers/adapters/anthropic.js.map +1 -1
- package/dist/src/providers/adapters/azure.d.ts +74 -0
- package/dist/src/providers/adapters/azure.d.ts.map +1 -0
- package/dist/src/providers/adapters/azure.js +354 -0
- package/dist/src/providers/adapters/azure.js.map +1 -0
- package/dist/src/providers/adapters/mock.d.ts +16 -2
- package/dist/src/providers/adapters/mock.d.ts.map +1 -1
- package/dist/src/providers/adapters/mock.js +44 -3
- package/dist/src/providers/adapters/mock.js.map +1 -1
- package/dist/src/providers/adapters/openai.d.ts +6 -1
- package/dist/src/providers/adapters/openai.d.ts.map +1 -1
- package/dist/src/providers/adapters/openai.js +39 -8
- package/dist/src/providers/adapters/openai.js.map +1 -1
- package/dist/src/providers/adapters/openrouter.d.ts +6 -0
- package/dist/src/providers/adapters/openrouter.d.ts.map +1 -1
- package/dist/src/providers/adapters/openrouter.js +73 -3
- package/dist/src/providers/adapters/openrouter.js.map +1 -1
- package/dist/src/providers/provider.js +1 -1
- package/dist/src/providers/provider.js.map +1 -1
- package/dist/src/providers/resilient-provider.js +1 -1
- package/dist/src/providers/resilient-provider.js.map +1 -1
- package/dist/src/providers/types.d.ts +23 -2
- package/dist/src/providers/types.d.ts.map +1 -1
- package/dist/src/session-picker.d.ts +1 -1
- package/dist/src/session-picker.d.ts.map +1 -1
- package/dist/src/session-picker.js +1 -1
- package/dist/src/session-picker.js.map +1 -1
- package/dist/src/shared/budget-tracker.js +1 -1
- package/dist/src/shared/budget-tracker.js.map +1 -1
- package/dist/src/tools/agent.d.ts +1 -1
- package/dist/src/tools/agent.d.ts.map +1 -1
- package/dist/src/tools/bash.js +1 -1
- package/dist/src/tools/bash.js.map +1 -1
- package/dist/src/tools/file.js +1 -1
- package/dist/src/tools/file.js.map +1 -1
- package/dist/src/tools/permission.js +2 -2
- package/dist/src/tools/permission.js.map +1 -1
- package/dist/src/tools/registry.d.ts +1 -1
- package/dist/src/tools/registry.d.ts.map +1 -1
- package/dist/src/tools/registry.js +1 -1
- package/dist/src/tools/registry.js.map +1 -1
- package/dist/src/tools/tasks.d.ts +1 -1
- package/dist/src/tools/tasks.d.ts.map +1 -1
- package/dist/src/tools/undo.d.ts +1 -1
- package/dist/src/tools/undo.d.ts.map +1 -1
- package/dist/src/tracing/cache-boundary-tracker.d.ts.map +1 -1
- package/dist/src/tracing/cache-boundary-tracker.js +2 -2
- package/dist/src/tracing/cache-boundary-tracker.js.map +1 -1
- package/dist/src/tracing/trace-collector.d.ts +22 -0
- package/dist/src/tracing/trace-collector.d.ts.map +1 -1
- package/dist/src/tracing/trace-collector.js +27 -3
- package/dist/src/tracing/trace-collector.js.map +1 -1
- package/dist/src/tracing/types.d.ts +17 -1
- package/dist/src/tracing/types.d.ts.map +1 -1
- package/dist/src/tracing/types.js.map +1 -1
- package/dist/src/tricks/failure-evidence.js +1 -1
- package/dist/src/tricks/failure-evidence.js.map +1 -1
- package/dist/src/tricks/recitation.d.ts.map +1 -1
- package/dist/src/tricks/recitation.js +2 -1
- package/dist/src/tricks/recitation.js.map +1 -1
- package/dist/src/tricks/recursive-context.d.ts.map +1 -1
- package/dist/src/tricks/recursive-context.js +2 -2
- package/dist/src/tricks/recursive-context.js.map +1 -1
- package/dist/src/tricks/reversible-compaction.d.ts.map +1 -1
- package/dist/src/tricks/reversible-compaction.js +6 -2
- package/dist/src/tricks/reversible-compaction.js.map +1 -1
- package/dist/src/tui/app.d.ts +3 -3
- package/dist/src/tui/app.d.ts.map +1 -1
- package/dist/src/tui/app.js +86 -14
- package/dist/src/tui/app.js.map +1 -1
- package/dist/src/tui/components/CollapsibleDiffView.d.ts +1 -1
- package/dist/src/tui/components/CollapsibleDiffView.d.ts.map +1 -1
- package/dist/src/tui/components/DiagnosticsPanel.d.ts +24 -0
- package/dist/src/tui/components/DiagnosticsPanel.d.ts.map +1 -0
- package/dist/src/tui/components/DiagnosticsPanel.js +47 -0
- package/dist/src/tui/components/DiagnosticsPanel.js.map +1 -0
- package/dist/src/tui/components/DiffView.d.ts +1 -1
- package/dist/src/tui/components/DiffView.d.ts.map +1 -1
- package/dist/src/tui/components/ErrorBoundary.js +1 -1
- package/dist/src/tui/components/ErrorBoundary.js.map +1 -1
- package/dist/src/tui/components/TasksPanel.d.ts +1 -1
- package/dist/src/tui/components/TasksPanel.d.ts.map +1 -1
- package/dist/src/tui/event-display.js +1 -1
- package/dist/src/tui/event-display.js.map +1 -1
- package/dist/src/tui/index.js +1 -1
- package/dist/src/tui/index.js.map +1 -1
- package/dist/src/tui/transparency-aggregator.d.ts +13 -0
- package/dist/src/tui/transparency-aggregator.d.ts.map +1 -1
- package/dist/src/tui/transparency-aggregator.js +21 -0
- package/dist/src/tui/transparency-aggregator.js.map +1 -1
- package/dist/src/types.d.ts +27 -2
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Budget Pool
|
|
3
|
+
*
|
|
4
|
+
* Enables parent-child budget sharing for multi-agent workflows.
|
|
5
|
+
* Instead of each subagent getting an independent budget (leading to 250%+ exposure),
|
|
6
|
+
* subagents draw from a shared pool that the parent allocates from its own budget.
|
|
7
|
+
*
|
|
8
|
+
* Model:
|
|
9
|
+
* Parent budget: 200K tokens
|
|
10
|
+
* Parent reserves: 50K (for synthesis after subagents complete)
|
|
11
|
+
* Subagent pool: 150K (shared among all children)
|
|
12
|
+
*
|
|
13
|
+
* Each child can draw up to `maxPerChild` tokens from the pool, but the combined
|
|
14
|
+
* consumption never exceeds the pool total. This ensures total tree cost stays
|
|
15
|
+
* bounded by the parent's budget.
|
|
16
|
+
*/
|
|
17
|
+
// =============================================================================
|
|
18
|
+
// SHARED BUDGET POOL
|
|
19
|
+
// =============================================================================
|
|
20
|
+
export class SharedBudgetPool {
|
|
21
|
+
config;
|
|
22
|
+
originalMaxPerChild;
|
|
23
|
+
allocations = new Map();
|
|
24
|
+
totalTokensUsed = 0;
|
|
25
|
+
totalCostUsed = 0;
|
|
26
|
+
/** Tokens reserved by active allocations (pessimistic accounting) */
|
|
27
|
+
totalTokensReserved = 0;
|
|
28
|
+
totalCostReserved = 0;
|
|
29
|
+
/** Optional trace collector for emitting budget.pool events */
|
|
30
|
+
traceCollector;
|
|
31
|
+
constructor(config) {
|
|
32
|
+
this.config = config;
|
|
33
|
+
this.originalMaxPerChild = config.maxPerChild;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Get pool remaining tokens (accounts for both used and reserved).
|
|
37
|
+
*/
|
|
38
|
+
getPoolRemaining() {
|
|
39
|
+
const committed = Math.max(this.totalTokensUsed, this.totalTokensReserved);
|
|
40
|
+
return Math.max(0, this.config.totalTokens - committed);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Reserve a budget allocation for a child agent.
|
|
44
|
+
* Uses pessimistic accounting: reserved tokens count against pool capacity
|
|
45
|
+
* until actual usage is recorded via recordUsage() + release().
|
|
46
|
+
* Returns the allocation if there's enough room, or null if the pool is exhausted.
|
|
47
|
+
*/
|
|
48
|
+
reserve(childId) {
|
|
49
|
+
// Account for both consumed AND reserved-but-not-yet-consumed tokens
|
|
50
|
+
const committed = Math.max(this.totalTokensUsed, this.totalTokensReserved);
|
|
51
|
+
const remaining = this.config.totalTokens - committed;
|
|
52
|
+
if (remaining <= 0) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
// Allocate up to maxPerChild or whatever remains, whichever is smaller
|
|
56
|
+
const tokenBudget = Math.min(this.config.maxPerChild, remaining);
|
|
57
|
+
const committedCost = Math.max(this.totalCostUsed, this.totalCostReserved);
|
|
58
|
+
const costRemaining = this.config.totalCost
|
|
59
|
+
? this.config.totalCost - committedCost
|
|
60
|
+
: Infinity;
|
|
61
|
+
const costBudget = Math.min(this.config.maxCostPerChild ?? Infinity, costRemaining > 0 ? costRemaining : 0);
|
|
62
|
+
if (tokenBudget <= 0 || (this.config.totalCost && costBudget <= 0)) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
const allocation = {
|
|
66
|
+
id: childId,
|
|
67
|
+
tokenBudget,
|
|
68
|
+
costBudget,
|
|
69
|
+
tokensUsed: 0,
|
|
70
|
+
costUsed: 0,
|
|
71
|
+
};
|
|
72
|
+
// Track reservation pessimistically
|
|
73
|
+
this.totalTokensReserved += tokenBudget;
|
|
74
|
+
this.totalCostReserved += costBudget;
|
|
75
|
+
this.allocations.set(childId, allocation);
|
|
76
|
+
// Emit trace event for budget allocation
|
|
77
|
+
this.traceCollector?.record({
|
|
78
|
+
type: 'budget.pool',
|
|
79
|
+
data: {
|
|
80
|
+
action: 'allocate',
|
|
81
|
+
agentId: childId,
|
|
82
|
+
tokensAllocated: tokenBudget,
|
|
83
|
+
poolRemaining: this.getPoolRemaining(),
|
|
84
|
+
poolTotal: this.config.totalTokens,
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
return allocation;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Record token consumption for a child agent.
|
|
91
|
+
* Returns false if the child has exceeded its allocation.
|
|
92
|
+
*/
|
|
93
|
+
recordUsage(childId, tokens, cost) {
|
|
94
|
+
const allocation = this.allocations.get(childId);
|
|
95
|
+
if (!allocation) {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
allocation.tokensUsed += tokens;
|
|
99
|
+
allocation.costUsed += cost;
|
|
100
|
+
this.totalTokensUsed += tokens;
|
|
101
|
+
this.totalCostUsed += cost;
|
|
102
|
+
// Emit trace event for budget consumption
|
|
103
|
+
this.traceCollector?.record({
|
|
104
|
+
type: 'budget.pool',
|
|
105
|
+
data: {
|
|
106
|
+
action: 'consume',
|
|
107
|
+
agentId: childId,
|
|
108
|
+
tokensUsed: tokens,
|
|
109
|
+
poolRemaining: this.getPoolRemaining(),
|
|
110
|
+
poolTotal: this.config.totalTokens,
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
return allocation.tokensUsed <= allocation.tokenBudget;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Release an allocation, adjusting reserved totals to reflect actual usage.
|
|
117
|
+
* Must be called after recordUsage() to return unused budget to the pool.
|
|
118
|
+
*/
|
|
119
|
+
release(childId) {
|
|
120
|
+
const allocation = this.allocations.get(childId);
|
|
121
|
+
if (allocation) {
|
|
122
|
+
// Release the pessimistic reservation, keeping only actual usage
|
|
123
|
+
this.totalTokensReserved -= allocation.tokenBudget;
|
|
124
|
+
this.totalCostReserved -= allocation.costBudget;
|
|
125
|
+
this.allocations.delete(childId);
|
|
126
|
+
// Emit trace event for budget release
|
|
127
|
+
this.traceCollector?.record({
|
|
128
|
+
type: 'budget.pool',
|
|
129
|
+
data: {
|
|
130
|
+
action: 'release',
|
|
131
|
+
agentId: childId,
|
|
132
|
+
tokensAllocated: allocation.tokenBudget,
|
|
133
|
+
tokensUsed: allocation.tokensUsed,
|
|
134
|
+
poolRemaining: this.getPoolRemaining(),
|
|
135
|
+
poolTotal: this.config.totalTokens,
|
|
136
|
+
},
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Get remaining tokens for a specific child allocation.
|
|
142
|
+
*/
|
|
143
|
+
getRemainingForChild(childId) {
|
|
144
|
+
const allocation = this.allocations.get(childId);
|
|
145
|
+
if (!allocation)
|
|
146
|
+
return 0;
|
|
147
|
+
return Math.max(0, allocation.tokenBudget - allocation.tokensUsed);
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Get overall pool statistics.
|
|
151
|
+
*/
|
|
152
|
+
getStats() {
|
|
153
|
+
const committed = Math.max(this.totalTokensUsed, this.totalTokensReserved);
|
|
154
|
+
return {
|
|
155
|
+
totalTokens: this.config.totalTokens,
|
|
156
|
+
tokensUsed: this.totalTokensUsed,
|
|
157
|
+
tokensRemaining: Math.max(0, this.config.totalTokens - committed),
|
|
158
|
+
activeAllocations: this.allocations.size,
|
|
159
|
+
utilization: this.config.totalTokens > 0
|
|
160
|
+
? committed / this.config.totalTokens
|
|
161
|
+
: 0,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Check if the pool has enough budget for at least one more child.
|
|
166
|
+
*/
|
|
167
|
+
hasCapacity() {
|
|
168
|
+
const committed = Math.max(this.totalTokensUsed, this.totalTokensReserved);
|
|
169
|
+
return (this.config.totalTokens - committed) > 10000; // Minimum 10K tokens
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Temporarily override maxPerChild for parallel batch spawning.
|
|
173
|
+
* Used by spawnAgentsParallel to divide the pool equally among children
|
|
174
|
+
* instead of each child racing for the full maxPerChild allocation.
|
|
175
|
+
* Must be followed by resetMaxPerChild() in a finally block.
|
|
176
|
+
*/
|
|
177
|
+
setMaxPerChild(maxPerChild) {
|
|
178
|
+
this.config.maxPerChild = maxPerChild;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Restore maxPerChild to the original value set at construction time.
|
|
182
|
+
*/
|
|
183
|
+
resetMaxPerChild() {
|
|
184
|
+
this.config.maxPerChild = this.originalMaxPerChild;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
// =============================================================================
|
|
188
|
+
// FACTORY
|
|
189
|
+
// =============================================================================
|
|
190
|
+
/**
|
|
191
|
+
* Create a budget pool from a parent's total budget.
|
|
192
|
+
* Reserves a portion for the parent's own synthesis work.
|
|
193
|
+
*/
|
|
194
|
+
export function createBudgetPool(parentBudgetTokens, parentReserveRatio = 0.25, // Reserve 25% for parent synthesis
|
|
195
|
+
maxPerChild = 100000) {
|
|
196
|
+
const parentReserve = Math.floor(parentBudgetTokens * parentReserveRatio);
|
|
197
|
+
const poolTokens = parentBudgetTokens - parentReserve;
|
|
198
|
+
return new SharedBudgetPool({
|
|
199
|
+
totalTokens: poolTokens,
|
|
200
|
+
maxPerChild: Math.min(maxPerChild, poolTokens),
|
|
201
|
+
totalCost: 0.50, // Default cost cap
|
|
202
|
+
maxCostPerChild: 0.25,
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=budget-pool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"budget-pool.js","sourceRoot":"","sources":["../../../../src/integrations/budget/budget-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cancellation Token Integration
|
|
3
|
+
*
|
|
4
|
+
* Provides graceful cancellation support for long-running agent operations.
|
|
5
|
+
* Based on the .NET CancellationToken pattern, adapted from tricks/cancellation.ts.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* const cts = createCancellationTokenSource();
|
|
9
|
+
* agent.run(task, { cancellationToken: cts.token });
|
|
10
|
+
* // Later: cts.cancel('User requested cancellation');
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Token that can be checked for cancellation.
|
|
14
|
+
*/
|
|
15
|
+
export interface CancellationToken {
|
|
16
|
+
/** Whether cancellation has been requested */
|
|
17
|
+
readonly isCancellationRequested: boolean;
|
|
18
|
+
/** The reason for cancellation (if cancelled) */
|
|
19
|
+
readonly cancellationReason?: string;
|
|
20
|
+
/** Promise that resolves when cancelled */
|
|
21
|
+
readonly onCancellationRequested: Promise<string | void>;
|
|
22
|
+
/** Register a callback for cancellation */
|
|
23
|
+
register(callback: (reason?: string) => void): {
|
|
24
|
+
dispose: () => void;
|
|
25
|
+
};
|
|
26
|
+
/** Throw if cancelled */
|
|
27
|
+
throwIfCancellationRequested(): void;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Source that controls a cancellation token.
|
|
31
|
+
*/
|
|
32
|
+
export interface CancellationTokenSource {
|
|
33
|
+
/** The token */
|
|
34
|
+
readonly token: CancellationToken;
|
|
35
|
+
/** Whether cancellation has been requested */
|
|
36
|
+
readonly isCancellationRequested: boolean;
|
|
37
|
+
/** Request cancellation */
|
|
38
|
+
cancel(reason?: string): void;
|
|
39
|
+
/** Cancel after timeout */
|
|
40
|
+
cancelAfter(ms: number): this;
|
|
41
|
+
/** Dispose resources */
|
|
42
|
+
dispose(): void;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Options for cancellable operations.
|
|
46
|
+
*/
|
|
47
|
+
export interface CancellableOptions {
|
|
48
|
+
/** Cancellation token */
|
|
49
|
+
token?: CancellationToken;
|
|
50
|
+
/** Timeout in milliseconds (creates auto-cancelling token) */
|
|
51
|
+
timeout?: number;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Cancellation event for agent integration.
|
|
55
|
+
*/
|
|
56
|
+
export type CancellationEvent = {
|
|
57
|
+
type: 'cancellation.requested';
|
|
58
|
+
reason?: string;
|
|
59
|
+
timestamp: Date;
|
|
60
|
+
} | {
|
|
61
|
+
type: 'cancellation.handled';
|
|
62
|
+
cleanupDuration: number;
|
|
63
|
+
};
|
|
64
|
+
export type CancellationEventListener = (event: CancellationEvent) => void;
|
|
65
|
+
/**
|
|
66
|
+
* Error thrown when an operation is cancelled.
|
|
67
|
+
*/
|
|
68
|
+
export declare class CancellationError extends Error {
|
|
69
|
+
readonly isCancellation = true;
|
|
70
|
+
readonly reason?: string;
|
|
71
|
+
constructor(reason?: string);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Check if an error is a cancellation error.
|
|
75
|
+
*/
|
|
76
|
+
export declare function isCancellationError(error: unknown): error is CancellationError;
|
|
77
|
+
/**
|
|
78
|
+
* Create a new cancellation token source.
|
|
79
|
+
*/
|
|
80
|
+
export declare function createCancellationTokenSource(): CancellationTokenSource;
|
|
81
|
+
/**
|
|
82
|
+
* Create a token source that auto-cancels after timeout.
|
|
83
|
+
*/
|
|
84
|
+
export declare function createTimeoutToken(ms: number): CancellationTokenSource;
|
|
85
|
+
/**
|
|
86
|
+
* Create a linked token that cancels when any source cancels.
|
|
87
|
+
*/
|
|
88
|
+
export declare function createLinkedToken(...sources: CancellationTokenSource[]): CancellationTokenSource;
|
|
89
|
+
/**
|
|
90
|
+
* Progress-aware timeout token.
|
|
91
|
+
* Extends CancellationTokenSource with the ability to reset the timeout when progress is detected.
|
|
92
|
+
* Only triggers timeout if there's been no progress for `idleTimeout` milliseconds.
|
|
93
|
+
*/
|
|
94
|
+
export interface ProgressAwareTimeoutSource extends CancellationTokenSource {
|
|
95
|
+
/** Call this when progress is detected (e.g., tool call, token update) */
|
|
96
|
+
reportProgress(): void;
|
|
97
|
+
/** Get time since last progress in ms */
|
|
98
|
+
getIdleTime(): number;
|
|
99
|
+
/** Get total elapsed time in ms */
|
|
100
|
+
getElapsedTime(): number;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Create a progress-aware timeout token.
|
|
104
|
+
*
|
|
105
|
+
* @param maxTimeout - Maximum total execution time (hard limit)
|
|
106
|
+
* @param idleTimeout - Time without progress before cancellation (soft limit)
|
|
107
|
+
* @param checkInterval - How often to check for idle timeout (default: 5000ms)
|
|
108
|
+
*
|
|
109
|
+
* The token will be cancelled when either:
|
|
110
|
+
* 1. maxTimeout is reached (regardless of progress)
|
|
111
|
+
* 2. idleTimeout passes without any progress reported
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```ts
|
|
115
|
+
* const timeout = createProgressAwareTimeout(300000, 60000); // 5 min max, 1 min idle
|
|
116
|
+
*
|
|
117
|
+
* // In event handler:
|
|
118
|
+
* subAgent.subscribe(event => {
|
|
119
|
+
* if (['tool.start', 'tool.complete', 'llm.start', 'llm.complete'].includes(event.type)) {
|
|
120
|
+
* timeout.reportProgress();
|
|
121
|
+
* }
|
|
122
|
+
* });
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
export declare function createProgressAwareTimeout(maxTimeout: number, idleTimeout: number, checkInterval?: number): ProgressAwareTimeoutSource;
|
|
126
|
+
/**
|
|
127
|
+
* Graceful timeout source that supports a wrapup phase before hard cancellation.
|
|
128
|
+
* Extends ProgressAwareTimeoutSource with wrapup callbacks.
|
|
129
|
+
*/
|
|
130
|
+
export interface GracefulTimeoutSource extends ProgressAwareTimeoutSource {
|
|
131
|
+
/** Register a callback that fires `wrapupWindow` ms before the hard cancel */
|
|
132
|
+
onWrapupWarning(callback: () => void): void;
|
|
133
|
+
/** Whether the timeout is currently in the wrapup phase */
|
|
134
|
+
isInWrapupPhase(): boolean;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Create a graceful timeout that fires a wrapup warning before hard cancellation.
|
|
138
|
+
*
|
|
139
|
+
* The lifecycle is:
|
|
140
|
+
* 1. Normal operation — progress extends the idle timer (same as createProgressAwareTimeout)
|
|
141
|
+
* 2. Wrapup phase — `wrapupWindow` ms before hard kill, wrapup callbacks fire
|
|
142
|
+
* - Progress during wrapup does NOT extend the deadline (wrapping up, not working)
|
|
143
|
+
* 3. Hard kill — `race()` throws CancellationError after wrapup window expires
|
|
144
|
+
*
|
|
145
|
+
* @param maxTimeout - Maximum total execution time (hard limit)
|
|
146
|
+
* @param idleTimeout - Time without progress before cancellation (soft limit)
|
|
147
|
+
* @param wrapupWindow - Time between wrapup warning and hard kill (default: 30000ms)
|
|
148
|
+
* @param checkInterval - How often to check for idle timeout (default: 5000ms)
|
|
149
|
+
*/
|
|
150
|
+
export declare function createGracefulTimeout(maxTimeout: number, idleTimeout: number, wrapupWindow?: number, checkInterval?: number): GracefulTimeoutSource;
|
|
151
|
+
/**
|
|
152
|
+
* Create a "none" token that is never cancelled.
|
|
153
|
+
* Useful as a default when no cancellation is needed.
|
|
154
|
+
*/
|
|
155
|
+
export declare const CancellationToken: {
|
|
156
|
+
None: CancellationToken;
|
|
157
|
+
};
|
|
158
|
+
/**
|
|
159
|
+
* Run a function with cancellation support.
|
|
160
|
+
*/
|
|
161
|
+
export declare function withCancellation<T>(fn: (token: CancellationToken) => Promise<T>, options?: CancellableOptions): Promise<T>;
|
|
162
|
+
/**
|
|
163
|
+
* Sleep with cancellation support.
|
|
164
|
+
*/
|
|
165
|
+
export declare function sleep(ms: number, token?: CancellationToken): Promise<void>;
|
|
166
|
+
/**
|
|
167
|
+
* Race a promise against cancellation.
|
|
168
|
+
*/
|
|
169
|
+
export declare function race<T>(promise: Promise<T>, token: CancellationToken): Promise<T>;
|
|
170
|
+
/**
|
|
171
|
+
* Create an AbortSignal from a CancellationToken.
|
|
172
|
+
* Useful for integrating with fetch and other AbortSignal-based APIs.
|
|
173
|
+
*/
|
|
174
|
+
export declare function toAbortSignal(token: CancellationToken): AbortSignal;
|
|
175
|
+
/**
|
|
176
|
+
* Manager that handles cancellation for agent operations.
|
|
177
|
+
* Provides a clean interface for the ProductionAgent to use.
|
|
178
|
+
*/
|
|
179
|
+
export declare class CancellationManager {
|
|
180
|
+
private currentSource;
|
|
181
|
+
private eventListeners;
|
|
182
|
+
/**
|
|
183
|
+
* Create a new cancellation context for an operation.
|
|
184
|
+
* Disposes the previous context if one exists.
|
|
185
|
+
*/
|
|
186
|
+
createContext(timeout?: number): CancellationToken;
|
|
187
|
+
/**
|
|
188
|
+
* Get the current cancellation token.
|
|
189
|
+
*/
|
|
190
|
+
get token(): CancellationToken;
|
|
191
|
+
/**
|
|
192
|
+
* Check if cancellation has been requested.
|
|
193
|
+
*/
|
|
194
|
+
get isCancelled(): boolean;
|
|
195
|
+
/**
|
|
196
|
+
* Request cancellation of the current operation.
|
|
197
|
+
*/
|
|
198
|
+
cancel(reason?: string): void;
|
|
199
|
+
/**
|
|
200
|
+
* Dispose the current cancellation context.
|
|
201
|
+
*/
|
|
202
|
+
disposeContext(): void;
|
|
203
|
+
/**
|
|
204
|
+
* Check if there's an active cancellation context.
|
|
205
|
+
*/
|
|
206
|
+
hasActiveContext(): boolean;
|
|
207
|
+
/**
|
|
208
|
+
* Get the current cancellation source for linking with other tokens.
|
|
209
|
+
* Returns null if no active context.
|
|
210
|
+
*/
|
|
211
|
+
getSource(): CancellationTokenSource | null;
|
|
212
|
+
/**
|
|
213
|
+
* Subscribe to cancellation events.
|
|
214
|
+
*/
|
|
215
|
+
subscribe(listener: CancellationEventListener): () => void;
|
|
216
|
+
/**
|
|
217
|
+
* Emit a cancellation event.
|
|
218
|
+
*/
|
|
219
|
+
private emit;
|
|
220
|
+
/**
|
|
221
|
+
* Cleanup all resources.
|
|
222
|
+
*/
|
|
223
|
+
cleanup(): void;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Create a cancellation manager.
|
|
227
|
+
*/
|
|
228
|
+
export declare function createCancellationManager(): CancellationManager;
|
|
229
|
+
//# sourceMappingURL=cancellation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancellation.d.ts","sourceRoot":"","sources":["../../../../src/integrations/budget/cancellation.ts"],"names":[],"mappings":"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"}
|