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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoPxB;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAkCb,CAAC;AAEjB;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schemas for user-facing configuration (config.json).
|
|
3
|
+
*
|
|
4
|
+
* Validates the serializable subset of config that users write in
|
|
5
|
+
* `~/.config/attocode/config.json` or `.attocode/config.json`.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// FEATURE SUB-SCHEMAS
|
|
10
|
+
// =============================================================================
|
|
11
|
+
/**
|
|
12
|
+
* Helper: a feature section that can be an object or `false` to disable.
|
|
13
|
+
*/
|
|
14
|
+
function featureSection(shape) {
|
|
15
|
+
return z.union([z.object(shape).strict(), z.literal(false)]);
|
|
16
|
+
}
|
|
17
|
+
const PlanningSchema = z
|
|
18
|
+
.object({
|
|
19
|
+
enabled: z.boolean().optional(),
|
|
20
|
+
autoplan: z.boolean().optional(),
|
|
21
|
+
complexityThreshold: z.number().int().positive().optional(),
|
|
22
|
+
maxDepth: z.number().int().positive().optional(),
|
|
23
|
+
allowReplan: z.boolean().optional(),
|
|
24
|
+
})
|
|
25
|
+
.strict();
|
|
26
|
+
const MemorySchema = z
|
|
27
|
+
.object({
|
|
28
|
+
enabled: z.boolean().optional(),
|
|
29
|
+
types: z
|
|
30
|
+
.object({
|
|
31
|
+
episodic: z.boolean().optional(),
|
|
32
|
+
semantic: z.boolean().optional(),
|
|
33
|
+
working: z.boolean().optional(),
|
|
34
|
+
})
|
|
35
|
+
.optional(),
|
|
36
|
+
retrievalStrategy: z.enum(['recency', 'relevance', 'importance', 'hybrid']).optional(),
|
|
37
|
+
retrievalLimit: z.number().int().positive().optional(),
|
|
38
|
+
persistPath: z.string().optional(),
|
|
39
|
+
maxEpisodicEntries: z.number().int().positive().optional(),
|
|
40
|
+
maxSemanticEntries: z.number().int().positive().optional(),
|
|
41
|
+
})
|
|
42
|
+
.strict();
|
|
43
|
+
const SandboxSchema = z
|
|
44
|
+
.object({
|
|
45
|
+
enabled: z.boolean().optional(),
|
|
46
|
+
isolation: z.enum(['none', 'process', 'container']).optional(),
|
|
47
|
+
mode: z.enum(['auto', 'seatbelt', 'docker', 'basic', 'none']).optional(),
|
|
48
|
+
allowedCommands: z.array(z.string()).optional(),
|
|
49
|
+
blockedCommands: z.array(z.string()).optional(),
|
|
50
|
+
networkAllowed: z.boolean().optional(),
|
|
51
|
+
dockerImage: z.string().optional(),
|
|
52
|
+
})
|
|
53
|
+
.strict();
|
|
54
|
+
const PolicyEngineSchema = z
|
|
55
|
+
.object({
|
|
56
|
+
enabled: z.boolean().optional(),
|
|
57
|
+
legacyFallback: z.boolean().optional(),
|
|
58
|
+
defaultProfile: z.string().optional(),
|
|
59
|
+
defaultSwarmProfile: z.string().optional(),
|
|
60
|
+
profiles: z.record(z.string(), z.any()).optional(),
|
|
61
|
+
})
|
|
62
|
+
.strict();
|
|
63
|
+
const HumanInLoopSchema = z
|
|
64
|
+
.object({
|
|
65
|
+
enabled: z.boolean().optional(),
|
|
66
|
+
riskThreshold: z.enum(['low', 'moderate', 'high', 'critical']).optional(),
|
|
67
|
+
alwaysApprove: z.array(z.string()).optional(),
|
|
68
|
+
neverApprove: z.array(z.string()).optional(),
|
|
69
|
+
approvalTimeout: z.number().int().positive().optional(),
|
|
70
|
+
auditLog: z.boolean().optional(),
|
|
71
|
+
})
|
|
72
|
+
.strict();
|
|
73
|
+
const SubagentSchema = z
|
|
74
|
+
.object({
|
|
75
|
+
enabled: z.boolean().optional(),
|
|
76
|
+
defaultTimeout: z.number().int().positive().optional(),
|
|
77
|
+
defaultMaxIterations: z.number().int().positive().optional(),
|
|
78
|
+
inheritObservability: z.boolean().optional(),
|
|
79
|
+
wrapupWindowMs: z.number().int().nonnegative().optional(),
|
|
80
|
+
idleCheckIntervalMs: z.number().int().positive().optional(),
|
|
81
|
+
})
|
|
82
|
+
.strict();
|
|
83
|
+
const ObservabilitySchema = z
|
|
84
|
+
.object({
|
|
85
|
+
enabled: z.boolean().optional(),
|
|
86
|
+
tracing: z
|
|
87
|
+
.object({
|
|
88
|
+
enabled: z.boolean().optional(),
|
|
89
|
+
serviceName: z.string().optional(),
|
|
90
|
+
exporter: z.enum(['console', 'otlp', 'custom']).optional(),
|
|
91
|
+
})
|
|
92
|
+
.optional(),
|
|
93
|
+
metrics: z
|
|
94
|
+
.object({
|
|
95
|
+
enabled: z.boolean().optional(),
|
|
96
|
+
collectTokens: z.boolean().optional(),
|
|
97
|
+
collectCosts: z.boolean().optional(),
|
|
98
|
+
collectLatencies: z.boolean().optional(),
|
|
99
|
+
})
|
|
100
|
+
.optional(),
|
|
101
|
+
logging: z
|
|
102
|
+
.object({
|
|
103
|
+
enabled: z.boolean().optional(),
|
|
104
|
+
level: z.enum(['debug', 'info', 'warn', 'error']).optional(),
|
|
105
|
+
structured: z.boolean().optional(),
|
|
106
|
+
})
|
|
107
|
+
.optional(),
|
|
108
|
+
})
|
|
109
|
+
.strict();
|
|
110
|
+
const CancellationSchema = z
|
|
111
|
+
.object({
|
|
112
|
+
enabled: z.boolean().optional(),
|
|
113
|
+
defaultTimeout: z.number().int().nonnegative().optional(),
|
|
114
|
+
gracePeriod: z.number().int().nonnegative().optional(),
|
|
115
|
+
})
|
|
116
|
+
.strict();
|
|
117
|
+
const ResourcesSchema = z
|
|
118
|
+
.object({
|
|
119
|
+
enabled: z.boolean().optional(),
|
|
120
|
+
maxMemoryMB: z.number().positive().optional(),
|
|
121
|
+
maxCpuTimeSec: z.number().positive().optional(),
|
|
122
|
+
maxConcurrentOps: z.number().int().positive().optional(),
|
|
123
|
+
warnThreshold: z.number().min(0).max(1).optional(),
|
|
124
|
+
criticalThreshold: z.number().min(0).max(1).optional(),
|
|
125
|
+
})
|
|
126
|
+
.strict();
|
|
127
|
+
const CompactionSchema = z
|
|
128
|
+
.object({
|
|
129
|
+
enabled: z.boolean().optional(),
|
|
130
|
+
tokenThreshold: z.number().int().positive().optional(),
|
|
131
|
+
preserveRecentCount: z.number().int().nonnegative().optional(),
|
|
132
|
+
preserveToolResults: z.boolean().optional(),
|
|
133
|
+
summaryMaxTokens: z.number().int().positive().optional(),
|
|
134
|
+
summaryModel: z.string().optional(),
|
|
135
|
+
mode: z.enum(['auto', 'approval', 'manual']).optional(),
|
|
136
|
+
})
|
|
137
|
+
.strict();
|
|
138
|
+
const ResilienceSchema = z
|
|
139
|
+
.object({
|
|
140
|
+
enabled: z.boolean().optional(),
|
|
141
|
+
maxEmptyRetries: z.number().int().nonnegative().optional(),
|
|
142
|
+
maxContinuations: z.number().int().nonnegative().optional(),
|
|
143
|
+
autoContinue: z.boolean().optional(),
|
|
144
|
+
minContentLength: z.number().int().nonnegative().optional(),
|
|
145
|
+
incompleteActionRecovery: z.boolean().optional(),
|
|
146
|
+
maxIncompleteActionRetries: z.number().int().nonnegative().optional(),
|
|
147
|
+
enforceRequestedArtifacts: z.boolean().optional(),
|
|
148
|
+
incompleteActionAutoLoop: z.boolean().optional(),
|
|
149
|
+
maxIncompleteAutoLoops: z.number().int().nonnegative().optional(),
|
|
150
|
+
autoLoopPromptStyle: z.enum(['strict', 'concise']).optional(),
|
|
151
|
+
taskLeaseStaleMs: z.number().int().positive().optional(),
|
|
152
|
+
})
|
|
153
|
+
.strict();
|
|
154
|
+
const HooksSchema = z
|
|
155
|
+
.object({
|
|
156
|
+
enabled: z.boolean().optional(),
|
|
157
|
+
builtIn: z
|
|
158
|
+
.object({
|
|
159
|
+
logging: z.boolean().optional(),
|
|
160
|
+
metrics: z.boolean().optional(),
|
|
161
|
+
timing: z.boolean().optional(),
|
|
162
|
+
})
|
|
163
|
+
.optional(),
|
|
164
|
+
shell: z
|
|
165
|
+
.object({
|
|
166
|
+
enabled: z.boolean().optional(),
|
|
167
|
+
defaultTimeoutMs: z.number().int().positive().optional(),
|
|
168
|
+
envAllowlist: z.array(z.string()).optional(),
|
|
169
|
+
commands: z.array(z.object({
|
|
170
|
+
id: z.string().optional(),
|
|
171
|
+
event: z.enum([
|
|
172
|
+
'run.before',
|
|
173
|
+
'run.after',
|
|
174
|
+
'iteration.before',
|
|
175
|
+
'iteration.after',
|
|
176
|
+
'completion.before',
|
|
177
|
+
'completion.after',
|
|
178
|
+
'recovery.before',
|
|
179
|
+
'recovery.after',
|
|
180
|
+
'agent.start',
|
|
181
|
+
'agent.end',
|
|
182
|
+
'llm.before',
|
|
183
|
+
'llm.after',
|
|
184
|
+
'tool.before',
|
|
185
|
+
'tool.after',
|
|
186
|
+
'error',
|
|
187
|
+
]),
|
|
188
|
+
command: z.string(),
|
|
189
|
+
args: z.array(z.string()).optional(),
|
|
190
|
+
timeoutMs: z.number().int().positive().optional(),
|
|
191
|
+
priority: z.number().int().optional(),
|
|
192
|
+
}).strict()).optional(),
|
|
193
|
+
})
|
|
194
|
+
.optional(),
|
|
195
|
+
})
|
|
196
|
+
.strict();
|
|
197
|
+
// =============================================================================
|
|
198
|
+
// PROVIDER RESILIENCE
|
|
199
|
+
// =============================================================================
|
|
200
|
+
const CircuitBreakerSchema = z.union([
|
|
201
|
+
z
|
|
202
|
+
.object({
|
|
203
|
+
failureThreshold: z.number().int().positive().optional(),
|
|
204
|
+
resetTimeout: z.number().int().positive().optional(),
|
|
205
|
+
halfOpenRequests: z.number().int().positive().optional(),
|
|
206
|
+
tripOnErrors: z
|
|
207
|
+
.array(z.enum(['RATE_LIMITED', 'SERVER_ERROR', 'NETWORK_ERROR', 'TIMEOUT', 'ALL']))
|
|
208
|
+
.optional(),
|
|
209
|
+
})
|
|
210
|
+
.strict(),
|
|
211
|
+
z.literal(false),
|
|
212
|
+
]);
|
|
213
|
+
const ProviderResilienceSchema = z
|
|
214
|
+
.object({
|
|
215
|
+
enabled: z.boolean().optional(),
|
|
216
|
+
circuitBreaker: CircuitBreakerSchema.optional(),
|
|
217
|
+
fallbackProviders: z.array(z.string()).optional(),
|
|
218
|
+
fallbackChain: z
|
|
219
|
+
.object({
|
|
220
|
+
cooldownMs: z.number().int().positive().optional(),
|
|
221
|
+
failureThreshold: z.number().int().positive().optional(),
|
|
222
|
+
})
|
|
223
|
+
.strict()
|
|
224
|
+
.optional(),
|
|
225
|
+
})
|
|
226
|
+
.strict();
|
|
227
|
+
// =============================================================================
|
|
228
|
+
// TOP-LEVEL USER CONFIG SCHEMA
|
|
229
|
+
// =============================================================================
|
|
230
|
+
/**
|
|
231
|
+
* Zod schema for user-facing config.json files.
|
|
232
|
+
*
|
|
233
|
+
* Uses `.passthrough()` at the top level to avoid breaking users with custom fields.
|
|
234
|
+
* Feature sub-schemas use `.strict()` to catch typos in feature-specific keys.
|
|
235
|
+
*/
|
|
236
|
+
export const UserConfigSchema = z
|
|
237
|
+
.object({
|
|
238
|
+
// Core scalars
|
|
239
|
+
model: z.string().optional(),
|
|
240
|
+
maxIterations: z.number().int().positive().optional(),
|
|
241
|
+
timeout: z.number().int().positive().optional(),
|
|
242
|
+
maxTokens: z.number().int().positive().optional(),
|
|
243
|
+
temperature: z.number().min(0).max(2).optional(),
|
|
244
|
+
// Provider selection
|
|
245
|
+
providers: z
|
|
246
|
+
.object({
|
|
247
|
+
default: z.string().optional(),
|
|
248
|
+
})
|
|
249
|
+
.strict()
|
|
250
|
+
.optional(),
|
|
251
|
+
// Provider resilience
|
|
252
|
+
providerResilience: ProviderResilienceSchema.optional(),
|
|
253
|
+
// Feature sections (object | false)
|
|
254
|
+
planning: featureSection(PlanningSchema.shape).optional(),
|
|
255
|
+
memory: featureSection(MemorySchema.shape).optional(),
|
|
256
|
+
sandbox: featureSection(SandboxSchema.shape).optional(),
|
|
257
|
+
policyEngine: featureSection(PolicyEngineSchema.shape).optional(),
|
|
258
|
+
humanInLoop: featureSection(HumanInLoopSchema.shape).optional(),
|
|
259
|
+
subagent: featureSection(SubagentSchema.shape).optional(),
|
|
260
|
+
observability: featureSection(ObservabilitySchema.shape).optional(),
|
|
261
|
+
cancellation: featureSection(CancellationSchema.shape).optional(),
|
|
262
|
+
resources: featureSection(ResourcesSchema.shape).optional(),
|
|
263
|
+
compaction: featureSection(CompactionSchema.shape).optional(),
|
|
264
|
+
resilience: featureSection(ResilienceSchema.shape).optional(),
|
|
265
|
+
hooks: featureSection(HooksSchema.shape).optional(),
|
|
266
|
+
})
|
|
267
|
+
.passthrough();
|
|
268
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/src/config.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* User Configuration Loading
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* @deprecated Use `loadConfig()` from `./config/index.js` instead.
|
|
5
|
+
* This module is kept for backward compatibility and will be removed in a future release.
|
|
5
6
|
*/
|
|
6
7
|
import type { ProviderResilienceConfig } from './types.js';
|
|
7
8
|
/**
|
|
8
9
|
* User configuration structure.
|
|
10
|
+
* @deprecated Use `ValidatedUserConfig` from `./config/index.js` instead.
|
|
9
11
|
*/
|
|
10
12
|
export interface UserConfig {
|
|
11
13
|
providers?: {
|
|
@@ -20,6 +22,7 @@ export interface UserConfig {
|
|
|
20
22
|
/**
|
|
21
23
|
* Load user config from ~/.config/attocode/config.json
|
|
22
24
|
* Returns undefined if file doesn't exist or is invalid.
|
|
25
|
+
* @deprecated Use `loadConfig()` from `./config/index.js` instead.
|
|
23
26
|
*/
|
|
24
27
|
export declare function loadUserConfig(): UserConfig | undefined;
|
|
25
28
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/src/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;CAC/C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,UAAU,GAAG,SAAS,CAOvD"}
|
package/dist/src/config.js
CHANGED
|
@@ -1,25 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* User Configuration Loading
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* @deprecated Use `loadConfig()` from `./config/index.js` instead.
|
|
5
|
+
* This module is kept for backward compatibility and will be removed in a future release.
|
|
5
6
|
*/
|
|
6
|
-
import {
|
|
7
|
-
import { getConfigPath } from './paths.js';
|
|
7
|
+
import { loadConfig } from './config/index.js';
|
|
8
8
|
/**
|
|
9
9
|
* Load user config from ~/.config/attocode/config.json
|
|
10
10
|
* Returns undefined if file doesn't exist or is invalid.
|
|
11
|
+
* @deprecated Use `loadConfig()` from `./config/index.js` instead.
|
|
11
12
|
*/
|
|
12
13
|
export function loadUserConfig() {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return undefined;
|
|
17
|
-
}
|
|
18
|
-
const content = readFileSync(configPath, 'utf-8');
|
|
19
|
-
return JSON.parse(content);
|
|
20
|
-
}
|
|
21
|
-
catch {
|
|
14
|
+
const { config, sources } = loadConfig({ skipProject: true });
|
|
15
|
+
const anyLoaded = sources.some((s) => s.loaded);
|
|
16
|
+
if (!anyLoaded) {
|
|
22
17
|
return undefined;
|
|
23
18
|
}
|
|
19
|
+
return config;
|
|
24
20
|
}
|
|
25
21
|
//# sourceMappingURL=config.js.map
|
package/dist/src/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAgB/C;;;;GAIG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,MAAoB,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 2.2: Agent State Machine
|
|
3
|
+
*
|
|
4
|
+
* Formalizes the phase tracking that previously lived in economics.ts into a
|
|
5
|
+
* proper state machine with typed transitions, event emission, and per-phase
|
|
6
|
+
* metrics. Testable independently of the economics system.
|
|
7
|
+
*
|
|
8
|
+
* Phases:
|
|
9
|
+
* - exploring: Reading files, searching code, understanding the problem
|
|
10
|
+
* - planning: Creating or editing a plan
|
|
11
|
+
* - acting: Writing/editing files, running commands
|
|
12
|
+
* - verifying: Running tests, checking results
|
|
13
|
+
*
|
|
14
|
+
* Valid transitions:
|
|
15
|
+
* exploring → planning | acting
|
|
16
|
+
* planning → acting | exploring
|
|
17
|
+
* acting → verifying | exploring
|
|
18
|
+
* verifying → acting | exploring
|
|
19
|
+
*/
|
|
20
|
+
/** Agent execution phases */
|
|
21
|
+
export type AgentPhase = 'exploring' | 'planning' | 'acting' | 'verifying';
|
|
22
|
+
/** Per-phase metrics snapshot */
|
|
23
|
+
export interface PhaseMetrics {
|
|
24
|
+
/** Phase name */
|
|
25
|
+
phase: AgentPhase;
|
|
26
|
+
/** Iterations spent in this phase */
|
|
27
|
+
iterations: number;
|
|
28
|
+
/** Timestamp when phase was entered */
|
|
29
|
+
enteredAt: number;
|
|
30
|
+
/** Duration in ms (0 if still in phase) */
|
|
31
|
+
duration: number;
|
|
32
|
+
/** Unique files read during this phase */
|
|
33
|
+
filesRead: number;
|
|
34
|
+
/** Unique files modified during this phase */
|
|
35
|
+
filesModified: number;
|
|
36
|
+
/** Tool calls made during this phase */
|
|
37
|
+
toolCalls: number;
|
|
38
|
+
}
|
|
39
|
+
/** Phase transition record */
|
|
40
|
+
export interface PhaseTransition {
|
|
41
|
+
from: AgentPhase;
|
|
42
|
+
to: AgentPhase;
|
|
43
|
+
reason: string;
|
|
44
|
+
timestamp: number;
|
|
45
|
+
/** Metrics from the phase we're leaving */
|
|
46
|
+
fromMetrics: PhaseMetrics;
|
|
47
|
+
}
|
|
48
|
+
/** State machine events */
|
|
49
|
+
export type StateMachineEvent = {
|
|
50
|
+
type: 'phase.changed';
|
|
51
|
+
transition: PhaseTransition;
|
|
52
|
+
} | {
|
|
53
|
+
type: 'phase.metrics';
|
|
54
|
+
phase: AgentPhase;
|
|
55
|
+
metrics: PhaseMetrics;
|
|
56
|
+
};
|
|
57
|
+
export type StateMachineEventListener = (event: StateMachineEvent) => void;
|
|
58
|
+
/** Current phase state (exposed for economics integration) */
|
|
59
|
+
export interface PhaseSnapshot {
|
|
60
|
+
phase: AgentPhase;
|
|
61
|
+
iterationsInPhase: number;
|
|
62
|
+
uniqueFilesRead: Set<string>;
|
|
63
|
+
uniqueSearches: Set<string>;
|
|
64
|
+
filesModified: Set<string>;
|
|
65
|
+
testsRun: number;
|
|
66
|
+
shouldTransition: boolean;
|
|
67
|
+
recentNewFiles: number;
|
|
68
|
+
lastTestPassed: boolean | null;
|
|
69
|
+
consecutiveTestFailures: number;
|
|
70
|
+
inTestFixCycle: boolean;
|
|
71
|
+
consecutiveBashFailures: number;
|
|
72
|
+
}
|
|
73
|
+
export declare class AgentStateMachine {
|
|
74
|
+
private currentPhase;
|
|
75
|
+
private phaseEnteredAt;
|
|
76
|
+
private phaseIterations;
|
|
77
|
+
private phaseToolCalls;
|
|
78
|
+
private listeners;
|
|
79
|
+
private transitions;
|
|
80
|
+
private uniqueFilesRead;
|
|
81
|
+
private uniqueSearches;
|
|
82
|
+
private filesModified;
|
|
83
|
+
private testsRun;
|
|
84
|
+
private shouldTransition;
|
|
85
|
+
private recentNewFiles;
|
|
86
|
+
private lastTestPassed;
|
|
87
|
+
private consecutiveTestFailures;
|
|
88
|
+
private inTestFixCycle;
|
|
89
|
+
private consecutiveBashFailures;
|
|
90
|
+
private phaseHistory;
|
|
91
|
+
private explorationFileThreshold;
|
|
92
|
+
private explorationIterThreshold;
|
|
93
|
+
constructor(options?: {
|
|
94
|
+
initialPhase?: AgentPhase;
|
|
95
|
+
explorationFileThreshold?: number;
|
|
96
|
+
explorationIterThreshold?: number;
|
|
97
|
+
});
|
|
98
|
+
/** Get the current phase */
|
|
99
|
+
getPhase(): AgentPhase;
|
|
100
|
+
/** Get a snapshot of the current phase state (backward-compatible with economics) */
|
|
101
|
+
getPhaseSnapshot(): PhaseSnapshot;
|
|
102
|
+
/** Get metrics for the current phase */
|
|
103
|
+
getCurrentPhaseMetrics(): PhaseMetrics;
|
|
104
|
+
/** Get all phase transition history */
|
|
105
|
+
getTransitions(): readonly PhaseTransition[];
|
|
106
|
+
/** Get accumulated phase history */
|
|
107
|
+
getPhaseHistory(): readonly PhaseMetrics[];
|
|
108
|
+
/**
|
|
109
|
+
* Attempt a phase transition.
|
|
110
|
+
* Returns true if transition was valid and executed, false if rejected.
|
|
111
|
+
*/
|
|
112
|
+
transition(to: AgentPhase, reason: string): boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Record a tool call and update phase state.
|
|
115
|
+
* This is the primary input signal for the state machine.
|
|
116
|
+
*/
|
|
117
|
+
recordToolCall(toolName: string, args: Record<string, unknown>, result?: unknown): void;
|
|
118
|
+
/** Subscribe to state machine events */
|
|
119
|
+
subscribe(listener: StateMachineEventListener): () => void;
|
|
120
|
+
/** Reset state machine to initial state */
|
|
121
|
+
reset(phase?: AgentPhase): void;
|
|
122
|
+
/** Check for exploration saturation (too many reads without action) */
|
|
123
|
+
private checkExplorationSaturation;
|
|
124
|
+
private emit;
|
|
125
|
+
}
|
|
126
|
+
export declare function createAgentStateMachine(options?: {
|
|
127
|
+
initialPhase?: AgentPhase;
|
|
128
|
+
explorationFileThreshold?: number;
|
|
129
|
+
explorationIterThreshold?: number;
|
|
130
|
+
}): AgentStateMachine;
|
|
131
|
+
//# sourceMappingURL=agent-state-machine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-state-machine.d.ts","sourceRoot":"","sources":["../../../src/core/agent-state-machine.ts"],"names":[],"mappings":"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"}
|