attocode 0.2.2 → 0.2.4
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 +169 -3
- package/README.md +65 -5
- package/dist/src/adapters.d.ts.map +1 -1
- package/dist/src/adapters.js +15 -11
- package/dist/src/adapters.js.map +1 -1
- package/dist/src/agent.d.ts +44 -98
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +716 -2648
- package/dist/src/agent.js.map +1 -1
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +25 -3
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/handler.d.ts.map +1 -1
- package/dist/src/commands/handler.js +11 -3
- package/dist/src/commands/handler.js.map +1 -1
- package/dist/src/commands/init-commands.d.ts.map +1 -1
- package/dist/src/commands/init-commands.js +16 -1
- package/dist/src/commands/init-commands.js.map +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +31 -0
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/config/base-types.d.ts +45 -0
- package/dist/src/config/base-types.d.ts.map +1 -0
- package/dist/src/config/base-types.js +9 -0
- package/dist/src/config/base-types.js.map +1 -0
- package/dist/src/config/config-manager.d.ts +35 -0
- package/dist/src/config/config-manager.d.ts.map +1 -0
- package/dist/src/config/config-manager.js +108 -0
- package/dist/src/config/config-manager.js.map +1 -0
- package/dist/src/config/index.d.ts +4 -0
- package/dist/src/config/index.d.ts.map +1 -0
- package/dist/src/config/index.js +3 -0
- package/dist/src/config/index.js.map +1 -0
- package/dist/src/config/schema.d.ts +1546 -0
- package/dist/src/config/schema.d.ts.map +1 -0
- package/dist/src/config/schema.js +268 -0
- package/dist/src/config/schema.js.map +1 -0
- package/dist/src/config.d.ts +4 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +8 -12
- package/dist/src/config.js.map +1 -1
- package/dist/src/core/agent-state-machine.d.ts +131 -0
- package/dist/src/core/agent-state-machine.d.ts.map +1 -0
- package/dist/src/core/agent-state-machine.js +302 -0
- package/dist/src/core/agent-state-machine.js.map +1 -0
- package/dist/src/core/base-manager.d.ts +79 -0
- package/dist/src/core/base-manager.d.ts.map +1 -0
- package/dist/src/core/base-manager.js +170 -0
- package/dist/src/core/base-manager.js.map +1 -0
- package/dist/src/core/completion-analyzer.d.ts +15 -0
- package/dist/src/core/completion-analyzer.d.ts.map +1 -0
- package/dist/src/core/completion-analyzer.js +53 -0
- package/dist/src/core/completion-analyzer.js.map +1 -0
- package/dist/src/core/execution-loop.d.ts +46 -0
- package/dist/src/core/execution-loop.d.ts.map +1 -0
- package/dist/src/core/execution-loop.js +1258 -0
- package/dist/src/core/execution-loop.js.map +1 -0
- package/dist/src/core/index.d.ts +7 -0
- package/dist/src/core/index.d.ts.map +1 -1
- package/dist/src/core/index.js +9 -0
- package/dist/src/core/index.js.map +1 -1
- package/dist/src/core/process-handlers.d.ts.map +1 -1
- package/dist/src/core/process-handlers.js +14 -0
- package/dist/src/core/process-handlers.js.map +1 -1
- package/dist/src/core/protocol/types.d.ts +4 -4
- package/dist/src/core/response-handler.d.ts +16 -0
- package/dist/src/core/response-handler.d.ts.map +1 -0
- package/dist/src/core/response-handler.js +234 -0
- package/dist/src/core/response-handler.js.map +1 -0
- package/dist/src/core/subagent-spawner.d.ts +43 -0
- package/dist/src/core/subagent-spawner.d.ts.map +1 -0
- package/dist/src/core/subagent-spawner.js +966 -0
- package/dist/src/core/subagent-spawner.js.map +1 -0
- package/dist/src/core/tool-executor.d.ts +59 -0
- package/dist/src/core/tool-executor.d.ts.map +1 -0
- package/dist/src/core/tool-executor.js +677 -0
- package/dist/src/core/tool-executor.js.map +1 -0
- package/dist/src/core/types.d.ts +133 -0
- package/dist/src/core/types.d.ts.map +1 -0
- package/dist/src/core/types.js +12 -0
- package/dist/src/core/types.js.map +1 -0
- package/dist/src/defaults.d.ts +8 -3
- package/dist/src/defaults.d.ts.map +1 -1
- package/dist/src/defaults.js +65 -3
- package/dist/src/defaults.js.map +1 -1
- package/dist/src/integrations/agent-registry.d.ts +11 -0
- package/dist/src/integrations/agent-registry.d.ts.map +1 -1
- package/dist/src/integrations/agent-registry.js.map +1 -1
- package/dist/src/integrations/auto-compaction.d.ts.map +1 -1
- package/dist/src/integrations/auto-compaction.js +8 -3
- package/dist/src/integrations/auto-compaction.js.map +1 -1
- package/dist/src/integrations/bash-policy.d.ts +33 -0
- package/dist/src/integrations/bash-policy.d.ts.map +1 -0
- package/dist/src/integrations/bash-policy.js +142 -0
- package/dist/src/integrations/bash-policy.js.map +1 -0
- package/dist/src/integrations/budget-pool.d.ts +7 -0
- package/dist/src/integrations/budget-pool.d.ts.map +1 -1
- package/dist/src/integrations/budget-pool.js +43 -0
- package/dist/src/integrations/budget-pool.js.map +1 -1
- package/dist/src/integrations/codebase-ast.d.ts +52 -0
- package/dist/src/integrations/codebase-ast.d.ts.map +1 -0
- package/dist/src/integrations/codebase-ast.js +457 -0
- package/dist/src/integrations/codebase-ast.js.map +1 -0
- package/dist/src/integrations/codebase-context.d.ts +23 -0
- package/dist/src/integrations/codebase-context.d.ts.map +1 -1
- package/dist/src/integrations/codebase-context.js +230 -17
- package/dist/src/integrations/codebase-context.js.map +1 -1
- package/dist/src/integrations/compaction.d.ts.map +1 -1
- package/dist/src/integrations/compaction.js +14 -6
- package/dist/src/integrations/compaction.js.map +1 -1
- package/dist/src/integrations/context-engineering.d.ts +8 -0
- package/dist/src/integrations/context-engineering.d.ts.map +1 -1
- package/dist/src/integrations/context-engineering.js +19 -0
- package/dist/src/integrations/context-engineering.js.map +1 -1
- package/dist/src/integrations/delegation-protocol.js +2 -2
- package/dist/src/integrations/delegation-protocol.js.map +1 -1
- package/dist/src/integrations/economics.d.ts +67 -1
- package/dist/src/integrations/economics.d.ts.map +1 -1
- package/dist/src/integrations/economics.js +328 -33
- package/dist/src/integrations/economics.js.map +1 -1
- package/dist/src/integrations/edit-validator.d.ts +30 -0
- package/dist/src/integrations/edit-validator.d.ts.map +1 -0
- package/dist/src/integrations/edit-validator.js +85 -0
- package/dist/src/integrations/edit-validator.js.map +1 -0
- package/dist/src/integrations/file-cache.d.ts +7 -0
- package/dist/src/integrations/file-cache.d.ts.map +1 -1
- package/dist/src/integrations/file-cache.js +54 -0
- package/dist/src/integrations/file-cache.js.map +1 -1
- package/dist/src/integrations/health-check.d.ts.map +1 -1
- package/dist/src/integrations/health-check.js +3 -2
- package/dist/src/integrations/health-check.js.map +1 -1
- package/dist/src/integrations/hierarchical-config.d.ts +3 -0
- package/dist/src/integrations/hierarchical-config.d.ts.map +1 -1
- package/dist/src/integrations/hierarchical-config.js +20 -0
- package/dist/src/integrations/hierarchical-config.js.map +1 -1
- package/dist/src/integrations/hooks.d.ts +2 -0
- package/dist/src/integrations/hooks.d.ts.map +1 -1
- package/dist/src/integrations/hooks.js +99 -15
- package/dist/src/integrations/hooks.js.map +1 -1
- package/dist/src/integrations/index.d.ts +10 -1
- package/dist/src/integrations/index.d.ts.map +1 -1
- package/dist/src/integrations/index.js +12 -2
- package/dist/src/integrations/index.js.map +1 -1
- package/dist/src/integrations/logger.d.ts +104 -0
- package/dist/src/integrations/logger.d.ts.map +1 -0
- package/dist/src/integrations/logger.js +219 -0
- package/dist/src/integrations/logger.js.map +1 -0
- package/dist/src/integrations/lsp.d.ts.map +1 -1
- package/dist/src/integrations/lsp.js +5 -4
- package/dist/src/integrations/lsp.js.map +1 -1
- package/dist/src/integrations/mcp-client.d.ts.map +1 -1
- package/dist/src/integrations/mcp-client.js +8 -7
- package/dist/src/integrations/mcp-client.js.map +1 -1
- package/dist/src/integrations/observability.d.ts.map +1 -1
- package/dist/src/integrations/observability.js +5 -4
- package/dist/src/integrations/observability.js.map +1 -1
- package/dist/src/integrations/openrouter-pricing.d.ts.map +1 -1
- package/dist/src/integrations/openrouter-pricing.js +4 -3
- package/dist/src/integrations/openrouter-pricing.js.map +1 -1
- package/dist/src/integrations/persistence.d.ts.map +1 -1
- package/dist/src/integrations/persistence.js +5 -4
- package/dist/src/integrations/persistence.js.map +1 -1
- package/dist/src/integrations/planning.d.ts.map +1 -1
- package/dist/src/integrations/planning.js +5 -4
- package/dist/src/integrations/planning.js.map +1 -1
- package/dist/src/integrations/policy-engine.d.ts +55 -0
- package/dist/src/integrations/policy-engine.d.ts.map +1 -0
- package/dist/src/integrations/policy-engine.js +247 -0
- package/dist/src/integrations/policy-engine.js.map +1 -0
- package/dist/src/integrations/retry.d.ts +1 -0
- package/dist/src/integrations/retry.d.ts.map +1 -1
- package/dist/src/integrations/retry.js.map +1 -1
- package/dist/src/integrations/routing.d.ts.map +1 -1
- package/dist/src/integrations/routing.js +2 -1
- package/dist/src/integrations/routing.js.map +1 -1
- package/dist/src/integrations/safety.d.ts +5 -4
- package/dist/src/integrations/safety.d.ts.map +1 -1
- package/dist/src/integrations/safety.js +45 -20
- package/dist/src/integrations/safety.js.map +1 -1
- package/dist/src/integrations/sandbox/basic.d.ts +7 -0
- package/dist/src/integrations/sandbox/basic.d.ts.map +1 -1
- package/dist/src/integrations/sandbox/basic.js +27 -2
- package/dist/src/integrations/sandbox/basic.js.map +1 -1
- package/dist/src/integrations/sandbox/docker.d.ts.map +1 -1
- package/dist/src/integrations/sandbox/docker.js +2 -1
- package/dist/src/integrations/sandbox/docker.js.map +1 -1
- package/dist/src/integrations/sandbox/index.d.ts +6 -0
- package/dist/src/integrations/sandbox/index.d.ts.map +1 -1
- package/dist/src/integrations/sandbox/index.js +8 -4
- package/dist/src/integrations/sandbox/index.js.map +1 -1
- package/dist/src/integrations/sandbox/landlock.d.ts.map +1 -1
- package/dist/src/integrations/sandbox/landlock.js +3 -0
- package/dist/src/integrations/sandbox/landlock.js.map +1 -1
- package/dist/src/integrations/self-improvement.d.ts.map +1 -1
- package/dist/src/integrations/self-improvement.js +12 -0
- package/dist/src/integrations/self-improvement.js.map +1 -1
- package/dist/src/integrations/session-store.d.ts +1 -0
- package/dist/src/integrations/session-store.d.ts.map +1 -1
- package/dist/src/integrations/session-store.js +1 -0
- package/dist/src/integrations/session-store.js.map +1 -1
- package/dist/src/integrations/shared-blackboard.d.ts +3 -0
- package/dist/src/integrations/shared-blackboard.d.ts.map +1 -1
- package/dist/src/integrations/shared-blackboard.js +47 -0
- package/dist/src/integrations/shared-blackboard.js.map +1 -1
- package/dist/src/integrations/smart-decomposer.d.ts +45 -1
- package/dist/src/integrations/smart-decomposer.d.ts.map +1 -1
- package/dist/src/integrations/smart-decomposer.js +486 -30
- package/dist/src/integrations/smart-decomposer.js.map +1 -1
- package/dist/src/integrations/sqlite-store.d.ts +2 -0
- package/dist/src/integrations/sqlite-store.d.ts.map +1 -1
- package/dist/src/integrations/sqlite-store.js +18 -6
- package/dist/src/integrations/sqlite-store.js.map +1 -1
- package/dist/src/integrations/swarm/failure-classifier.d.ts +11 -0
- package/dist/src/integrations/swarm/failure-classifier.d.ts.map +1 -0
- package/dist/src/integrations/swarm/failure-classifier.js +95 -0
- package/dist/src/integrations/swarm/failure-classifier.js.map +1 -0
- package/dist/src/integrations/swarm/index.d.ts +1 -1
- package/dist/src/integrations/swarm/index.d.ts.map +1 -1
- package/dist/src/integrations/swarm/index.js.map +1 -1
- package/dist/src/integrations/swarm/model-selector.d.ts +15 -0
- package/dist/src/integrations/swarm/model-selector.d.ts.map +1 -1
- package/dist/src/integrations/swarm/model-selector.js +100 -20
- package/dist/src/integrations/swarm/model-selector.js.map +1 -1
- package/dist/src/integrations/swarm/swarm-budget.d.ts +4 -0
- package/dist/src/integrations/swarm/swarm-budget.d.ts.map +1 -1
- package/dist/src/integrations/swarm/swarm-budget.js +6 -0
- package/dist/src/integrations/swarm/swarm-budget.js.map +1 -1
- package/dist/src/integrations/swarm/swarm-config-loader.d.ts +8 -0
- package/dist/src/integrations/swarm/swarm-config-loader.d.ts.map +1 -1
- package/dist/src/integrations/swarm/swarm-config-loader.js +249 -7
- package/dist/src/integrations/swarm/swarm-config-loader.js.map +1 -1
- package/dist/src/integrations/swarm/swarm-event-bridge.d.ts +86 -1
- package/dist/src/integrations/swarm/swarm-event-bridge.d.ts.map +1 -1
- package/dist/src/integrations/swarm/swarm-event-bridge.js +207 -23
- package/dist/src/integrations/swarm/swarm-event-bridge.js.map +1 -1
- package/dist/src/integrations/swarm/swarm-events.d.ts +58 -1
- package/dist/src/integrations/swarm/swarm-events.d.ts.map +1 -1
- package/dist/src/integrations/swarm/swarm-events.js +22 -5
- package/dist/src/integrations/swarm/swarm-events.js.map +1 -1
- package/dist/src/integrations/swarm/swarm-orchestrator.d.ts +147 -8
- package/dist/src/integrations/swarm/swarm-orchestrator.d.ts.map +1 -1
- package/dist/src/integrations/swarm/swarm-orchestrator.js +2179 -132
- package/dist/src/integrations/swarm/swarm-orchestrator.js.map +1 -1
- package/dist/src/integrations/swarm/swarm-quality-gate.d.ts +83 -2
- package/dist/src/integrations/swarm/swarm-quality-gate.d.ts.map +1 -1
- package/dist/src/integrations/swarm/swarm-quality-gate.js +278 -19
- package/dist/src/integrations/swarm/swarm-quality-gate.js.map +1 -1
- package/dist/src/integrations/swarm/swarm-state-store.d.ts +4 -1
- package/dist/src/integrations/swarm/swarm-state-store.d.ts.map +1 -1
- package/dist/src/integrations/swarm/swarm-state-store.js +8 -1
- package/dist/src/integrations/swarm/swarm-state-store.js.map +1 -1
- package/dist/src/integrations/swarm/task-queue.d.ts +54 -0
- package/dist/src/integrations/swarm/task-queue.d.ts.map +1 -1
- package/dist/src/integrations/swarm/task-queue.js +310 -12
- package/dist/src/integrations/swarm/task-queue.js.map +1 -1
- package/dist/src/integrations/swarm/types.d.ts +251 -13
- package/dist/src/integrations/swarm/types.d.ts.map +1 -1
- package/dist/src/integrations/swarm/types.js +70 -8
- package/dist/src/integrations/swarm/types.js.map +1 -1
- package/dist/src/integrations/swarm/worker-pool.d.ts +21 -4
- package/dist/src/integrations/swarm/worker-pool.d.ts.map +1 -1
- package/dist/src/integrations/swarm/worker-pool.js +223 -44
- package/dist/src/integrations/swarm/worker-pool.js.map +1 -1
- package/dist/src/integrations/task-manager.d.ts +33 -1
- package/dist/src/integrations/task-manager.d.ts.map +1 -1
- package/dist/src/integrations/task-manager.js +78 -4
- package/dist/src/integrations/task-manager.js.map +1 -1
- package/dist/src/integrations/tool-recommendation.d.ts +7 -4
- package/dist/src/integrations/tool-recommendation.d.ts.map +1 -1
- package/dist/src/integrations/tool-recommendation.js +58 -5
- package/dist/src/integrations/tool-recommendation.js.map +1 -1
- package/dist/src/integrations/work-log.js +4 -4
- package/dist/src/integrations/work-log.js.map +1 -1
- package/dist/src/main.js +106 -30
- package/dist/src/main.js.map +1 -1
- package/dist/src/modes/repl.d.ts.map +1 -1
- package/dist/src/modes/repl.js +50 -12
- 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 +41 -6
- package/dist/src/modes/tui.js.map +1 -1
- package/dist/src/modes.d.ts.map +1 -1
- package/dist/src/modes.js +4 -27
- package/dist/src/modes.js.map +1 -1
- package/dist/src/observability/tracer.d.ts.map +1 -1
- package/dist/src/observability/tracer.js +2 -1
- package/dist/src/observability/tracer.js.map +1 -1
- package/dist/src/persistence/schema.d.ts.map +1 -1
- package/dist/src/persistence/schema.js +11 -0
- package/dist/src/persistence/schema.js.map +1 -1
- package/dist/src/providers/adapters/anthropic.d.ts.map +1 -1
- package/dist/src/providers/adapters/anthropic.js +3 -2
- package/dist/src/providers/adapters/anthropic.js.map +1 -1
- package/dist/src/providers/adapters/openai.d.ts.map +1 -1
- package/dist/src/providers/adapters/openai.js +3 -2
- package/dist/src/providers/adapters/openai.js.map +1 -1
- package/dist/src/providers/adapters/openrouter.d.ts.map +1 -1
- package/dist/src/providers/adapters/openrouter.js +11 -11
- package/dist/src/providers/adapters/openrouter.js.map +1 -1
- package/dist/src/providers/circuit-breaker.d.ts +1 -0
- package/dist/src/providers/circuit-breaker.d.ts.map +1 -1
- package/dist/src/providers/circuit-breaker.js.map +1 -1
- package/dist/src/providers/provider.d.ts.map +1 -1
- package/dist/src/providers/provider.js +2 -1
- package/dist/src/providers/provider.js.map +1 -1
- package/dist/src/providers/resilient-provider.d.ts.map +1 -1
- package/dist/src/providers/resilient-provider.js +2 -1
- package/dist/src/providers/resilient-provider.js.map +1 -1
- package/dist/src/session-picker.d.ts.map +1 -1
- package/dist/src/session-picker.js +40 -5
- package/dist/src/session-picker.js.map +1 -1
- package/dist/src/shared/budget-tracker.d.ts +65 -0
- package/dist/src/shared/budget-tracker.d.ts.map +1 -0
- package/dist/src/shared/budget-tracker.js +128 -0
- package/dist/src/shared/budget-tracker.js.map +1 -0
- package/dist/src/shared/context-engine.d.ts +64 -0
- package/dist/src/shared/context-engine.d.ts.map +1 -0
- package/dist/src/shared/context-engine.js +117 -0
- package/dist/src/shared/context-engine.js.map +1 -0
- package/dist/src/shared/index.d.ts +12 -0
- package/dist/src/shared/index.d.ts.map +1 -0
- package/dist/src/shared/index.js +12 -0
- package/dist/src/shared/index.js.map +1 -0
- package/dist/src/shared/persistence.d.ts +57 -0
- package/dist/src/shared/persistence.d.ts.map +1 -0
- package/dist/src/shared/persistence.js +168 -0
- package/dist/src/shared/persistence.js.map +1 -0
- package/dist/src/shared/shared-context-state.d.ts +89 -0
- package/dist/src/shared/shared-context-state.d.ts.map +1 -0
- package/dist/src/shared/shared-context-state.js +175 -0
- package/dist/src/shared/shared-context-state.js.map +1 -0
- package/dist/src/shared/shared-economics-state.d.ts +61 -0
- package/dist/src/shared/shared-economics-state.d.ts.map +1 -0
- package/dist/src/shared/shared-economics-state.js +100 -0
- package/dist/src/shared/shared-economics-state.js.map +1 -0
- package/dist/src/tools/agent.d.ts.map +1 -1
- package/dist/src/tools/agent.js +11 -2
- package/dist/src/tools/agent.js.map +1 -1
- package/dist/src/tools/bash.d.ts +1 -1
- package/dist/src/tools/bash.d.ts.map +1 -1
- package/dist/src/tools/bash.js +2 -1
- package/dist/src/tools/bash.js.map +1 -1
- package/dist/src/tools/coercion.d.ts +6 -0
- package/dist/src/tools/coercion.d.ts.map +1 -1
- package/dist/src/tools/coercion.js +13 -0
- package/dist/src/tools/coercion.js.map +1 -1
- package/dist/src/tools/file.d.ts +5 -5
- package/dist/src/tools/file.js +2 -2
- package/dist/src/tools/file.js.map +1 -1
- package/dist/src/tools/permission.d.ts.map +1 -1
- package/dist/src/tools/permission.js +10 -116
- package/dist/src/tools/permission.js.map +1 -1
- package/dist/src/tools/types.d.ts +1 -0
- package/dist/src/tools/types.d.ts.map +1 -1
- package/dist/src/tools/types.js.map +1 -1
- package/dist/src/tracing/trace-collector.d.ts +292 -0
- package/dist/src/tracing/trace-collector.d.ts.map +1 -1
- package/dist/src/tracing/trace-collector.js +249 -5
- package/dist/src/tracing/trace-collector.js.map +1 -1
- package/dist/src/tracing/types.d.ts +200 -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.d.ts.map +1 -1
- package/dist/src/tricks/failure-evidence.js +2 -1
- package/dist/src/tricks/failure-evidence.js.map +1 -1
- package/dist/src/tui/app.d.ts +13 -0
- package/dist/src/tui/app.d.ts.map +1 -1
- package/dist/src/tui/app.js +162 -19
- package/dist/src/tui/app.js.map +1 -1
- package/dist/src/tui/components/ErrorBoundary.d.ts.map +1 -1
- package/dist/src/tui/components/ErrorBoundary.js +3 -2
- package/dist/src/tui/components/ErrorBoundary.js.map +1 -1
- package/dist/src/tui/event-display.d.ts.map +1 -1
- package/dist/src/tui/event-display.js +36 -62
- package/dist/src/tui/event-display.js.map +1 -1
- package/dist/src/tui/index.d.ts +4 -0
- package/dist/src/tui/index.d.ts.map +1 -1
- package/dist/src/tui/index.js +17 -0
- package/dist/src/tui/index.js.map +1 -1
- package/dist/src/types.d.ts +214 -1
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +18 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-picker.js","sourceRoot":"","sources":["../../src/session-picker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"session-picker.js","sourceRoot":"","sources":["../../src/session-picker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worker Budget Tracker (Phase 3.2 completion)
|
|
3
|
+
*
|
|
4
|
+
* Lightweight per-worker budget + doom-loop tracker that reports to
|
|
5
|
+
* SharedEconomicsState for cross-worker doom loop aggregation.
|
|
6
|
+
*/
|
|
7
|
+
import type { SharedEconomicsState } from './shared-economics-state.js';
|
|
8
|
+
export interface WorkerBudgetConfig {
|
|
9
|
+
workerId: string;
|
|
10
|
+
maxTokens: number;
|
|
11
|
+
maxIterations: number;
|
|
12
|
+
doomLoopThreshold?: number;
|
|
13
|
+
}
|
|
14
|
+
export interface WorkerBudgetCheckResult {
|
|
15
|
+
canContinue: boolean;
|
|
16
|
+
reason?: string;
|
|
17
|
+
budgetType?: 'tokens' | 'iterations' | 'doom_loop';
|
|
18
|
+
}
|
|
19
|
+
export declare class WorkerBudgetTracker {
|
|
20
|
+
private workerId;
|
|
21
|
+
private maxTokens;
|
|
22
|
+
private maxIterations;
|
|
23
|
+
private doomLoopThreshold;
|
|
24
|
+
private inputTokens;
|
|
25
|
+
private outputTokens;
|
|
26
|
+
private iterations;
|
|
27
|
+
private toolCalls;
|
|
28
|
+
private sharedEconomics?;
|
|
29
|
+
constructor(config: WorkerBudgetConfig, sharedEconomics?: SharedEconomicsState);
|
|
30
|
+
/**
|
|
31
|
+
* Record LLM token usage.
|
|
32
|
+
*/
|
|
33
|
+
recordLLMUsage(inputTokens: number, outputTokens: number): void;
|
|
34
|
+
/**
|
|
35
|
+
* Record a completed iteration.
|
|
36
|
+
*/
|
|
37
|
+
recordIteration(): void;
|
|
38
|
+
/**
|
|
39
|
+
* Record a tool call. Computes fingerprint and reports to SharedEconomicsState.
|
|
40
|
+
*/
|
|
41
|
+
recordToolCall(toolName: string, args: string): void;
|
|
42
|
+
/**
|
|
43
|
+
* Check if the worker can continue within budget.
|
|
44
|
+
*/
|
|
45
|
+
checkBudget(): WorkerBudgetCheckResult;
|
|
46
|
+
/**
|
|
47
|
+
* Get current usage stats.
|
|
48
|
+
*/
|
|
49
|
+
getUsage(): {
|
|
50
|
+
inputTokens: number;
|
|
51
|
+
outputTokens: number;
|
|
52
|
+
totalTokens: number;
|
|
53
|
+
iterations: number;
|
|
54
|
+
toolCalls: number;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Get budget utilization as a percentage (0-100).
|
|
58
|
+
*/
|
|
59
|
+
getUtilization(): {
|
|
60
|
+
tokenPercent: number;
|
|
61
|
+
iterationPercent: number;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export declare function createWorkerBudgetTracker(config: WorkerBudgetConfig, sharedEconomics?: SharedEconomicsState): WorkerBudgetTracker;
|
|
65
|
+
//# sourceMappingURL=budget-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"budget-tracker.d.ts","sourceRoot":"","sources":["../../../src/shared/budget-tracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAMxE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,WAAW,CAAC;CACpD;AAWD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,eAAe,CAAC,CAAuB;gBAEnC,MAAM,EAAE,kBAAkB,EAAE,eAAe,CAAC,EAAE,oBAAoB;IAQ9E;;OAEG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAK/D;;OAEG;IACH,eAAe,IAAI,IAAI;IAIvB;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAUpD;;OAEG;IACH,WAAW,IAAI,uBAAuB;IAiDtC;;OAEG;IACH,QAAQ,IAAI;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAUrH;;OAEG;IACH,cAAc,IAAI;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE;CAOrE;AAMD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,kBAAkB,EAC1B,eAAe,CAAC,EAAE,oBAAoB,GACrC,mBAAmB,CAErB"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worker Budget Tracker (Phase 3.2 completion)
|
|
3
|
+
*
|
|
4
|
+
* Lightweight per-worker budget + doom-loop tracker that reports to
|
|
5
|
+
* SharedEconomicsState for cross-worker doom loop aggregation.
|
|
6
|
+
*/
|
|
7
|
+
import { computeToolFingerprint } from '../integrations/economics.js';
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// WORKER BUDGET TRACKER
|
|
10
|
+
// =============================================================================
|
|
11
|
+
export class WorkerBudgetTracker {
|
|
12
|
+
workerId;
|
|
13
|
+
maxTokens;
|
|
14
|
+
maxIterations;
|
|
15
|
+
doomLoopThreshold;
|
|
16
|
+
inputTokens = 0;
|
|
17
|
+
outputTokens = 0;
|
|
18
|
+
iterations = 0;
|
|
19
|
+
toolCalls = [];
|
|
20
|
+
sharedEconomics;
|
|
21
|
+
constructor(config, sharedEconomics) {
|
|
22
|
+
this.workerId = config.workerId;
|
|
23
|
+
this.maxTokens = config.maxTokens;
|
|
24
|
+
this.maxIterations = config.maxIterations;
|
|
25
|
+
this.doomLoopThreshold = config.doomLoopThreshold ?? 3;
|
|
26
|
+
this.sharedEconomics = sharedEconomics;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Record LLM token usage.
|
|
30
|
+
*/
|
|
31
|
+
recordLLMUsage(inputTokens, outputTokens) {
|
|
32
|
+
this.inputTokens += inputTokens;
|
|
33
|
+
this.outputTokens += outputTokens;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Record a completed iteration.
|
|
37
|
+
*/
|
|
38
|
+
recordIteration() {
|
|
39
|
+
this.iterations++;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Record a tool call. Computes fingerprint and reports to SharedEconomicsState.
|
|
43
|
+
*/
|
|
44
|
+
recordToolCall(toolName, args) {
|
|
45
|
+
const fingerprint = computeToolFingerprint(toolName, args);
|
|
46
|
+
this.toolCalls.push({ fingerprint, timestamp: Date.now() });
|
|
47
|
+
// Report to shared economics for cross-worker doom loop detection
|
|
48
|
+
if (this.sharedEconomics) {
|
|
49
|
+
this.sharedEconomics.recordToolCall(this.workerId, fingerprint);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Check if the worker can continue within budget.
|
|
54
|
+
*/
|
|
55
|
+
checkBudget() {
|
|
56
|
+
// Token budget
|
|
57
|
+
const totalTokens = this.inputTokens + this.outputTokens;
|
|
58
|
+
if (totalTokens >= this.maxTokens) {
|
|
59
|
+
return {
|
|
60
|
+
canContinue: false,
|
|
61
|
+
reason: `Token budget exhausted: ${totalTokens.toLocaleString()} / ${this.maxTokens.toLocaleString()}`,
|
|
62
|
+
budgetType: 'tokens',
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
// Iteration budget
|
|
66
|
+
if (this.iterations >= this.maxIterations) {
|
|
67
|
+
return {
|
|
68
|
+
canContinue: false,
|
|
69
|
+
reason: `Iteration budget exhausted: ${this.iterations} / ${this.maxIterations}`,
|
|
70
|
+
budgetType: 'iterations',
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
// Local doom loop detection (consecutive identical tool calls)
|
|
74
|
+
if (this.toolCalls.length >= this.doomLoopThreshold) {
|
|
75
|
+
const recent = this.toolCalls.slice(-this.doomLoopThreshold);
|
|
76
|
+
const allSame = recent.every(tc => tc.fingerprint === recent[0].fingerprint);
|
|
77
|
+
if (allSame) {
|
|
78
|
+
return {
|
|
79
|
+
canContinue: false,
|
|
80
|
+
reason: `Doom loop detected: ${this.doomLoopThreshold} consecutive identical tool calls`,
|
|
81
|
+
budgetType: 'doom_loop',
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Cross-worker doom loop detection via SharedEconomicsState
|
|
86
|
+
if (this.sharedEconomics && this.toolCalls.length > 0) {
|
|
87
|
+
const lastFingerprint = this.toolCalls[this.toolCalls.length - 1].fingerprint;
|
|
88
|
+
if (this.sharedEconomics.isGlobalDoomLoop(lastFingerprint)) {
|
|
89
|
+
const info = this.sharedEconomics.getGlobalLoopInfo(lastFingerprint);
|
|
90
|
+
return {
|
|
91
|
+
canContinue: false,
|
|
92
|
+
reason: `Global doom loop: ${info?.count ?? 0} calls across ${info?.workerCount ?? 0} workers`,
|
|
93
|
+
budgetType: 'doom_loop',
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return { canContinue: true };
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Get current usage stats.
|
|
101
|
+
*/
|
|
102
|
+
getUsage() {
|
|
103
|
+
return {
|
|
104
|
+
inputTokens: this.inputTokens,
|
|
105
|
+
outputTokens: this.outputTokens,
|
|
106
|
+
totalTokens: this.inputTokens + this.outputTokens,
|
|
107
|
+
iterations: this.iterations,
|
|
108
|
+
toolCalls: this.toolCalls.length,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get budget utilization as a percentage (0-100).
|
|
113
|
+
*/
|
|
114
|
+
getUtilization() {
|
|
115
|
+
const totalTokens = this.inputTokens + this.outputTokens;
|
|
116
|
+
return {
|
|
117
|
+
tokenPercent: this.maxTokens > 0 ? Math.round((totalTokens / this.maxTokens) * 100) : 0,
|
|
118
|
+
iterationPercent: this.maxIterations > 0 ? Math.round((this.iterations / this.maxIterations) * 100) : 0,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// =============================================================================
|
|
123
|
+
// FACTORY
|
|
124
|
+
// =============================================================================
|
|
125
|
+
export function createWorkerBudgetTracker(config, sharedEconomics) {
|
|
126
|
+
return new WorkerBudgetTracker(config, sharedEconomics);
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=budget-tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"budget-tracker.js","sourceRoot":"","sources":["../../../src/shared/budget-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Context Engine (Phase 3.1)
|
|
3
|
+
*
|
|
4
|
+
* Orchestration layer that composes SharedContextState primitives into
|
|
5
|
+
* worker-optimized prompts. Workers get a single buildWorkerSystemPrompt()
|
|
6
|
+
* call instead of manually assembling prefix + failures + recitation.
|
|
7
|
+
*/
|
|
8
|
+
import type { SharedContextState } from './shared-context-state.js';
|
|
9
|
+
import type { FailureInput, Failure } from '../tricks/failure-evidence.js';
|
|
10
|
+
import type { Reference } from '../tricks/reversible-compaction.js';
|
|
11
|
+
export interface SharedContextEngineConfig {
|
|
12
|
+
/** Maximum failures to include in worker prompts (default: 5) */
|
|
13
|
+
maxFailuresInPrompt?: number;
|
|
14
|
+
/** Whether to include cross-worker insights (default: true) */
|
|
15
|
+
includeInsights?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface WorkerTask {
|
|
18
|
+
/** Unique task ID */
|
|
19
|
+
id: string;
|
|
20
|
+
/** Human-readable task description */
|
|
21
|
+
description: string;
|
|
22
|
+
/** The specific goal this worker should accomplish */
|
|
23
|
+
goal: string;
|
|
24
|
+
/** IDs of tasks this depends on */
|
|
25
|
+
dependencies?: string[];
|
|
26
|
+
/** Additional context for this specific task */
|
|
27
|
+
context?: string;
|
|
28
|
+
}
|
|
29
|
+
export declare class SharedContextEngine {
|
|
30
|
+
private contextState;
|
|
31
|
+
private maxFailuresInPrompt;
|
|
32
|
+
private includeInsights;
|
|
33
|
+
constructor(contextState: SharedContextState, config?: SharedContextEngineConfig);
|
|
34
|
+
/**
|
|
35
|
+
* Build a complete system prompt for a worker.
|
|
36
|
+
* Concatenates: shared prefix → task context → failure guidance → goal recitation.
|
|
37
|
+
* Empty sections are omitted.
|
|
38
|
+
*/
|
|
39
|
+
buildWorkerSystemPrompt(task: WorkerTask): string;
|
|
40
|
+
/**
|
|
41
|
+
* Get the shared static prefix for KV-cache alignment.
|
|
42
|
+
*/
|
|
43
|
+
getSharedPrefix(): string;
|
|
44
|
+
/**
|
|
45
|
+
* Report a failure from a worker. Delegates to SharedContextState.
|
|
46
|
+
*/
|
|
47
|
+
reportFailure(workerId: string, failure: FailureInput): Failure;
|
|
48
|
+
/**
|
|
49
|
+
* Get formatted failure guidance for inclusion in prompts.
|
|
50
|
+
* Returns empty string when no failures exist.
|
|
51
|
+
*/
|
|
52
|
+
getFailureGuidance(): string;
|
|
53
|
+
/**
|
|
54
|
+
* Get a goal recitation block for a worker task.
|
|
55
|
+
*/
|
|
56
|
+
getGoalRecitation(task: WorkerTask): string;
|
|
57
|
+
/**
|
|
58
|
+
* Search for relevant references. Delegates to SharedContextState.
|
|
59
|
+
*/
|
|
60
|
+
getRelevantReferences(query: string): Reference[];
|
|
61
|
+
private buildTaskSection;
|
|
62
|
+
}
|
|
63
|
+
export declare function createSharedContextEngine(contextState: SharedContextState, config?: SharedContextEngineConfig): SharedContextEngine;
|
|
64
|
+
//# sourceMappingURL=context-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-engine.d.ts","sourceRoot":"","sources":["../../../src/shared/context-engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAMpE,MAAM,WAAW,yBAAyB;IACxC,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,+DAA+D;IAC/D,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,qBAAqB;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,eAAe,CAAU;gBAG/B,YAAY,EAAE,kBAAkB,EAChC,MAAM,GAAE,yBAA8B;IAOxC;;;;OAIG;IACH,uBAAuB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IA8BjD;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO;IAI/D;;;OAGG;IACH,kBAAkB,IAAI,MAAM;IAkB5B;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IAc3C;;OAEG;IACH,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE;IAQjD,OAAO,CAAC,gBAAgB;CAWzB;AAMD,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,kBAAkB,EAChC,MAAM,CAAC,EAAE,yBAAyB,GACjC,mBAAmB,CAErB"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Context Engine (Phase 3.1)
|
|
3
|
+
*
|
|
4
|
+
* Orchestration layer that composes SharedContextState primitives into
|
|
5
|
+
* worker-optimized prompts. Workers get a single buildWorkerSystemPrompt()
|
|
6
|
+
* call instead of manually assembling prefix + failures + recitation.
|
|
7
|
+
*/
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// SHARED CONTEXT ENGINE
|
|
10
|
+
// =============================================================================
|
|
11
|
+
export class SharedContextEngine {
|
|
12
|
+
contextState;
|
|
13
|
+
maxFailuresInPrompt;
|
|
14
|
+
includeInsights;
|
|
15
|
+
constructor(contextState, config = {}) {
|
|
16
|
+
this.contextState = contextState;
|
|
17
|
+
this.maxFailuresInPrompt = config.maxFailuresInPrompt ?? 5;
|
|
18
|
+
this.includeInsights = config.includeInsights ?? true;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Build a complete system prompt for a worker.
|
|
22
|
+
* Concatenates: shared prefix → task context → failure guidance → goal recitation.
|
|
23
|
+
* Empty sections are omitted.
|
|
24
|
+
*/
|
|
25
|
+
buildWorkerSystemPrompt(task) {
|
|
26
|
+
const sections = [];
|
|
27
|
+
// 1. Shared prefix (cache-aligned, identical for all workers)
|
|
28
|
+
const prefix = this.getSharedPrefix();
|
|
29
|
+
if (prefix) {
|
|
30
|
+
sections.push(prefix);
|
|
31
|
+
}
|
|
32
|
+
// 2. Task context
|
|
33
|
+
const taskSection = this.buildTaskSection(task);
|
|
34
|
+
if (taskSection) {
|
|
35
|
+
sections.push(taskSection);
|
|
36
|
+
}
|
|
37
|
+
// 3. Failure guidance
|
|
38
|
+
const failureGuidance = this.getFailureGuidance();
|
|
39
|
+
if (failureGuidance) {
|
|
40
|
+
sections.push(failureGuidance);
|
|
41
|
+
}
|
|
42
|
+
// 4. Goal recitation
|
|
43
|
+
const goalRecitation = this.getGoalRecitation(task);
|
|
44
|
+
if (goalRecitation) {
|
|
45
|
+
sections.push(goalRecitation);
|
|
46
|
+
}
|
|
47
|
+
return sections.join('\n\n');
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get the shared static prefix for KV-cache alignment.
|
|
51
|
+
*/
|
|
52
|
+
getSharedPrefix() {
|
|
53
|
+
return this.contextState.getStaticPrefix();
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Report a failure from a worker. Delegates to SharedContextState.
|
|
57
|
+
*/
|
|
58
|
+
reportFailure(workerId, failure) {
|
|
59
|
+
return this.contextState.recordFailure(workerId, failure);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get formatted failure guidance for inclusion in prompts.
|
|
63
|
+
* Returns empty string when no failures exist.
|
|
64
|
+
*/
|
|
65
|
+
getFailureGuidance() {
|
|
66
|
+
const parts = [];
|
|
67
|
+
const failureContext = this.contextState.getFailureContext(this.maxFailuresInPrompt);
|
|
68
|
+
if (failureContext) {
|
|
69
|
+
parts.push(failureContext);
|
|
70
|
+
}
|
|
71
|
+
if (this.includeInsights) {
|
|
72
|
+
const insights = this.contextState.getFailureInsights();
|
|
73
|
+
if (insights.length > 0) {
|
|
74
|
+
parts.push('## Cross-Worker Insights\n' + insights.map(i => `- ${i}`).join('\n'));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return parts.join('\n\n');
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Get a goal recitation block for a worker task.
|
|
81
|
+
*/
|
|
82
|
+
getGoalRecitation(task) {
|
|
83
|
+
const lines = [
|
|
84
|
+
'## Current Goal',
|
|
85
|
+
`**Task:** ${task.description}`,
|
|
86
|
+
`**Goal:** ${task.goal}`,
|
|
87
|
+
];
|
|
88
|
+
if (task.dependencies && task.dependencies.length > 0) {
|
|
89
|
+
lines.push(`**Depends on:** ${task.dependencies.join(', ')}`);
|
|
90
|
+
}
|
|
91
|
+
return lines.join('\n');
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Search for relevant references. Delegates to SharedContextState.
|
|
95
|
+
*/
|
|
96
|
+
getRelevantReferences(query) {
|
|
97
|
+
return this.contextState.searchReferences(query);
|
|
98
|
+
}
|
|
99
|
+
// ---------------------------------------------------------------------------
|
|
100
|
+
// Private helpers
|
|
101
|
+
// ---------------------------------------------------------------------------
|
|
102
|
+
buildTaskSection(task) {
|
|
103
|
+
const parts = ['## Task Assignment'];
|
|
104
|
+
parts.push(`You are working on task **${task.id}**: ${task.description}`);
|
|
105
|
+
if (task.context) {
|
|
106
|
+
parts.push(`\n### Additional Context\n${task.context}`);
|
|
107
|
+
}
|
|
108
|
+
return parts.join('\n');
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// =============================================================================
|
|
112
|
+
// FACTORY
|
|
113
|
+
// =============================================================================
|
|
114
|
+
export function createSharedContextEngine(contextState, config) {
|
|
115
|
+
return new SharedContextEngine(contextState, config);
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=context-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-engine.js","sourceRoot":"","sources":["../../../src/shared/context-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared State Modules
|
|
3
|
+
*
|
|
4
|
+
* Thin shared-state layers that swarm workers plug into for
|
|
5
|
+
* cross-worker failure learning, reference pooling, and doom loop aggregation.
|
|
6
|
+
*/
|
|
7
|
+
export { SharedContextState, createSharedContextState, type SharedContextConfig, } from './shared-context-state.js';
|
|
8
|
+
export { SharedEconomicsState, createSharedEconomicsState, type SharedEconomicsConfig, } from './shared-economics-state.js';
|
|
9
|
+
export { type PersistenceAdapter, JSONFilePersistenceAdapter, SQLitePersistenceAdapter, createPersistenceAdapter, } from './persistence.js';
|
|
10
|
+
export { SharedContextEngine, createSharedContextEngine, type SharedContextEngineConfig, type WorkerTask, } from './context-engine.js';
|
|
11
|
+
export { WorkerBudgetTracker, createWorkerBudgetTracker, type WorkerBudgetConfig, type WorkerBudgetCheckResult, } from './budget-tracker.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,KAAK,mBAAmB,GACzB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,KAAK,qBAAqB,GAC3B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,KAAK,kBAAkB,EACvB,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,UAAU,GAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,GAC7B,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared State Modules
|
|
3
|
+
*
|
|
4
|
+
* Thin shared-state layers that swarm workers plug into for
|
|
5
|
+
* cross-worker failure learning, reference pooling, and doom loop aggregation.
|
|
6
|
+
*/
|
|
7
|
+
export { SharedContextState, createSharedContextState, } from './shared-context-state.js';
|
|
8
|
+
export { SharedEconomicsState, createSharedEconomicsState, } from './shared-economics-state.js';
|
|
9
|
+
export { JSONFilePersistenceAdapter, SQLitePersistenceAdapter, createPersistenceAdapter, } from './persistence.js';
|
|
10
|
+
export { SharedContextEngine, createSharedContextEngine, } from './context-engine.js';
|
|
11
|
+
export { WorkerBudgetTracker, createWorkerBudgetTracker, } from './budget-tracker.js';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,kBAAkB,EAClB,wBAAwB,GAEzB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAE3B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAEL,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,mBAAmB,EACnB,yBAAyB,GAG1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,yBAAyB,GAG1B,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Persistence Adapters
|
|
3
|
+
*
|
|
4
|
+
* Thin interface over different storage backends (JSON files, SQLite).
|
|
5
|
+
* Provides a common API for save/load/list/delete operations.
|
|
6
|
+
*
|
|
7
|
+
* Existing stores (SQLiteStore, SwarmStateStore) continue unchanged.
|
|
8
|
+
* These adapters are opt-in wrappers for unified access patterns.
|
|
9
|
+
*/
|
|
10
|
+
export interface PersistenceAdapter {
|
|
11
|
+
/** Save data under a key within a namespace */
|
|
12
|
+
save(namespace: string, key: string, data: unknown): Promise<void>;
|
|
13
|
+
/** Load data by namespace + key */
|
|
14
|
+
load(namespace: string, key: string): Promise<unknown | null>;
|
|
15
|
+
/** List all keys in a namespace */
|
|
16
|
+
list(namespace: string): Promise<string[]>;
|
|
17
|
+
/** Delete a key */
|
|
18
|
+
delete(namespace: string, key: string): Promise<boolean>;
|
|
19
|
+
/** Check if a key exists */
|
|
20
|
+
exists(namespace: string, key: string): Promise<boolean>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* JSON file-based persistence.
|
|
24
|
+
* Each namespace is a directory, each key is a JSON file.
|
|
25
|
+
*/
|
|
26
|
+
export declare class JSONFilePersistenceAdapter implements PersistenceAdapter {
|
|
27
|
+
private baseDir;
|
|
28
|
+
constructor(baseDir: string);
|
|
29
|
+
private keyPath;
|
|
30
|
+
private nsDir;
|
|
31
|
+
save(namespace: string, key: string, data: unknown): Promise<void>;
|
|
32
|
+
load(namespace: string, key: string): Promise<unknown | null>;
|
|
33
|
+
list(namespace: string): Promise<string[]>;
|
|
34
|
+
delete(namespace: string, key: string): Promise<boolean>;
|
|
35
|
+
exists(namespace: string, key: string): Promise<boolean>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* SQLite-based persistence.
|
|
39
|
+
* Uses a generic key-value table with namespace partitioning.
|
|
40
|
+
*/
|
|
41
|
+
export declare class SQLitePersistenceAdapter implements PersistenceAdapter {
|
|
42
|
+
private db;
|
|
43
|
+
constructor(dbPath: string);
|
|
44
|
+
save(namespace: string, key: string, data: unknown): Promise<void>;
|
|
45
|
+
load(namespace: string, key: string): Promise<unknown | null>;
|
|
46
|
+
list(namespace: string): Promise<string[]>;
|
|
47
|
+
delete(namespace: string, key: string): Promise<boolean>;
|
|
48
|
+
exists(namespace: string, key: string): Promise<boolean>;
|
|
49
|
+
/** Close the database connection */
|
|
50
|
+
close(): void;
|
|
51
|
+
}
|
|
52
|
+
/** Create a persistence adapter of the given type */
|
|
53
|
+
export declare function createPersistenceAdapter(type: 'json' | 'sqlite', config: {
|
|
54
|
+
baseDir?: string;
|
|
55
|
+
dbPath?: string;
|
|
56
|
+
}): PersistenceAdapter;
|
|
57
|
+
//# sourceMappingURL=persistence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../src/shared/persistence.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAkCH,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,mCAAmC;IACnC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC9D,mCAAmC;IACnC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,mBAAmB;IACnB,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzD,4BAA4B;IAC5B,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1D;AAMD;;;GAGG;AACH,qBAAa,0BAA2B,YAAW,kBAAkB;IACvD,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,MAAM;IAEnC,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,KAAK;IAIP,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAS7D,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAW1C,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASxD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAQ/D;AAgBD;;;GAGG;AACH,qBAAa,wBAAyB,YAAW,kBAAkB;IACjE,OAAO,CAAC,EAAE,CAAgC;gBAE9B,MAAM,EAAE,MAAM;IAMpB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IASlE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAQ7D,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAO1C,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOxD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS9D,oCAAoC;IACpC,KAAK,IAAI,IAAI;CAGd;AAMD,qDAAqD;AACrD,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,GAAG,QAAQ,EACvB,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5C,kBAAkB,CAOpB"}
|