groundswell 0.0.2 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +26 -9
- package/dist/cache/cache-key.d.ts +86 -0
- package/dist/cache/cache-key.d.ts.map +1 -0
- package/dist/cache/cache-key.js +204 -0
- package/dist/cache/cache-key.js.map +1 -0
- package/dist/cache/cache.d.ts +104 -0
- package/dist/cache/cache.d.ts.map +1 -0
- package/dist/cache/cache.js +179 -0
- package/dist/cache/cache.js.map +1 -0
- package/{src/cache/index.ts → dist/cache/index.d.ts} +1 -1
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +6 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/core/agent.d.ts +203 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +833 -0
- package/dist/core/agent.js.map +1 -0
- package/{src/core/context.ts → dist/core/context.d.ts} +16 -67
- package/dist/core/context.d.ts.map +1 -0
- package/dist/core/context.js +80 -0
- package/dist/core/context.js.map +1 -0
- package/dist/core/event-tree.d.ts +72 -0
- package/dist/core/event-tree.d.ts.map +1 -0
- package/dist/core/event-tree.js +211 -0
- package/dist/core/event-tree.js.map +1 -0
- package/{src/core/factory.ts → dist/core/factory.d.ts} +6 -27
- package/dist/core/factory.d.ts.map +1 -0
- package/dist/core/factory.js +110 -0
- package/dist/core/factory.js.map +1 -0
- package/{src/core/index.ts → dist/core/index.d.ts} +2 -10
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +9 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/logger.d.ts +50 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +91 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/mcp-handler.d.ts +127 -0
- package/dist/core/mcp-handler.d.ts.map +1 -0
- package/dist/core/mcp-handler.js +323 -0
- package/dist/core/mcp-handler.js.map +1 -0
- package/dist/core/prompt.d.ts +80 -0
- package/dist/core/prompt.d.ts.map +1 -0
- package/dist/core/prompt.js +120 -0
- package/dist/core/prompt.js.map +1 -0
- package/dist/core/workflow-context.d.ts +61 -0
- package/dist/core/workflow-context.d.ts.map +1 -0
- package/dist/core/workflow-context.js +358 -0
- package/dist/core/workflow-context.js.map +1 -0
- package/dist/core/workflow.d.ts +543 -0
- package/dist/core/workflow.d.ts.map +1 -0
- package/dist/core/workflow.js +986 -0
- package/dist/core/workflow.js.map +1 -0
- package/dist/debugger/event-replayer.d.ts +422 -0
- package/dist/debugger/event-replayer.d.ts.map +1 -0
- package/dist/debugger/event-replayer.js +639 -0
- package/dist/debugger/event-replayer.js.map +1 -0
- package/dist/debugger/index.d.ts +2 -0
- package/dist/debugger/index.d.ts.map +1 -0
- package/{src/debugger/index.ts → dist/debugger/index.js} +1 -0
- package/dist/debugger/index.js.map +1 -0
- package/dist/debugger/tree-debugger.d.ts +240 -0
- package/dist/debugger/tree-debugger.d.ts.map +1 -0
- package/dist/debugger/tree-debugger.js +620 -0
- package/dist/debugger/tree-debugger.js.map +1 -0
- package/dist/decorators/index.d.ts +4 -0
- package/dist/decorators/index.d.ts.map +1 -0
- package/{src/decorators/index.ts → dist/decorators/index.js} +1 -0
- package/dist/decorators/index.js.map +1 -0
- package/dist/decorators/observed-state.d.ts +32 -0
- package/dist/decorators/observed-state.d.ts.map +1 -0
- package/dist/decorators/observed-state.js +79 -0
- package/dist/decorators/observed-state.js.map +1 -0
- package/dist/decorators/step.d.ts +15 -0
- package/dist/decorators/step.d.ts.map +1 -0
- package/dist/decorators/step.js +192 -0
- package/dist/decorators/step.js.map +1 -0
- package/dist/decorators/task.d.ts +50 -0
- package/dist/decorators/task.d.ts.map +1 -0
- package/dist/decorators/task.js +118 -0
- package/dist/decorators/task.js.map +1 -0
- package/dist/examples/index.d.ts +3 -0
- package/dist/examples/index.d.ts.map +1 -0
- package/{src/examples/index.ts → dist/examples/index.js} +1 -0
- package/dist/examples/index.js.map +1 -0
- package/dist/examples/tdd-orchestrator.d.ts +15 -0
- package/dist/examples/tdd-orchestrator.d.ts.map +1 -0
- package/dist/examples/tdd-orchestrator.js +121 -0
- package/dist/examples/tdd-orchestrator.js.map +1 -0
- package/dist/examples/test-cycle-workflow.d.ts +14 -0
- package/dist/examples/test-cycle-workflow.d.ts.map +1 -0
- package/dist/examples/test-cycle-workflow.js +116 -0
- package/dist/examples/test-cycle-workflow.js.map +1 -0
- package/dist/harnesses/claude-code-harness.d.ts +391 -0
- package/dist/harnesses/claude-code-harness.d.ts.map +1 -0
- package/dist/harnesses/claude-code-harness.js +1076 -0
- package/dist/harnesses/claude-code-harness.js.map +1 -0
- package/dist/harnesses/harness-registry.d.ts +440 -0
- package/dist/harnesses/harness-registry.d.ts.map +1 -0
- package/dist/harnesses/harness-registry.js +543 -0
- package/dist/harnesses/harness-registry.js.map +1 -0
- package/dist/harnesses/index.d.ts +12 -0
- package/dist/harnesses/index.d.ts.map +1 -0
- package/dist/harnesses/index.js +11 -0
- package/dist/harnesses/index.js.map +1 -0
- package/dist/harnesses/pi-harness.d.ts +219 -0
- package/dist/harnesses/pi-harness.d.ts.map +1 -0
- package/dist/harnesses/pi-harness.js +676 -0
- package/dist/harnesses/pi-harness.js.map +1 -0
- package/dist/harnesses/pi-schema-converter.d.ts +24 -0
- package/dist/harnesses/pi-schema-converter.d.ts.map +1 -0
- package/dist/harnesses/pi-schema-converter.js +81 -0
- package/dist/harnesses/pi-schema-converter.js.map +1 -0
- package/dist/harnesses/register-defaults.d.ts +24 -0
- package/dist/harnesses/register-defaults.d.ts.map +1 -0
- package/dist/harnesses/register-defaults.js +40 -0
- package/dist/harnesses/register-defaults.js.map +1 -0
- package/dist/harnesses/session-store.d.ts +201 -0
- package/dist/harnesses/session-store.d.ts.map +1 -0
- package/dist/harnesses/session-store.js +254 -0
- package/dist/harnesses/session-store.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +57 -0
- package/dist/index.js.map +1 -0
- package/dist/reflection/index.d.ts +5 -0
- package/dist/reflection/index.d.ts.map +1 -0
- package/{src/reflection/index.ts → dist/reflection/index.js} +1 -1
- package/dist/reflection/index.js.map +1 -0
- package/dist/reflection/reflection.d.ts +84 -0
- package/dist/reflection/reflection.d.ts.map +1 -0
- package/dist/reflection/reflection.js +344 -0
- package/dist/reflection/reflection.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +11 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/introspection.d.ts +165 -0
- package/dist/tools/introspection.d.ts.map +1 -0
- package/dist/tools/introspection.js +324 -0
- package/dist/tools/introspection.js.map +1 -0
- package/dist/types/agent.d.ts +1317 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +423 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/decorators.d.ts +40 -0
- package/dist/types/decorators.d.ts.map +1 -0
- package/dist/types/decorators.js +2 -0
- package/dist/types/decorators.js.map +1 -0
- package/dist/types/error-strategy.d.ts +13 -0
- package/dist/types/error-strategy.d.ts.map +1 -0
- package/dist/types/error-strategy.js +2 -0
- package/dist/types/error-strategy.js.map +1 -0
- package/dist/types/error.d.ts +20 -0
- package/dist/types/error.d.ts.map +1 -0
- package/dist/types/error.js +2 -0
- package/dist/types/error.js.map +1 -0
- package/dist/types/events.d.ts +113 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +2 -0
- package/dist/types/events.js.map +1 -0
- package/dist/types/harnesses.d.ts +474 -0
- package/dist/types/harnesses.d.ts.map +1 -0
- package/dist/types/harnesses.js +2 -0
- package/dist/types/harnesses.js.map +1 -0
- package/dist/types/index.d.ts +23 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/logging.d.ts +24 -0
- package/dist/types/logging.d.ts.map +1 -0
- package/dist/types/logging.js +2 -0
- package/dist/types/logging.js.map +1 -0
- package/dist/types/observer.d.ts +18 -0
- package/dist/types/observer.d.ts.map +1 -0
- package/dist/types/observer.js +2 -0
- package/dist/types/observer.js.map +1 -0
- package/dist/types/prompt.d.ts +31 -0
- package/dist/types/prompt.d.ts.map +1 -0
- package/dist/types/prompt.js +6 -0
- package/dist/types/prompt.js.map +1 -0
- package/dist/types/providers.d.ts +691 -0
- package/dist/types/providers.d.ts.map +1 -0
- package/dist/types/providers.js +14 -0
- package/dist/types/providers.js.map +1 -0
- package/dist/types/reflection.d.ts +96 -0
- package/dist/types/reflection.d.ts.map +1 -0
- package/dist/types/reflection.js +24 -0
- package/dist/types/reflection.js.map +1 -0
- package/dist/types/restart.d.ts +132 -0
- package/dist/types/restart.d.ts.map +1 -0
- package/dist/types/restart.js +2 -0
- package/dist/types/restart.js.map +1 -0
- package/dist/types/sdk-primitives.d.ts +118 -0
- package/dist/types/sdk-primitives.d.ts.map +1 -0
- package/dist/types/sdk-primitives.js +6 -0
- package/dist/types/sdk-primitives.js.map +1 -0
- package/{src/types/snapshot.ts → dist/types/snapshot.d.ts} +5 -5
- package/dist/types/snapshot.d.ts.map +1 -0
- package/dist/types/snapshot.js +2 -0
- package/dist/types/snapshot.js.map +1 -0
- package/dist/types/streaming.d.ts +194 -0
- package/dist/types/streaming.d.ts.map +1 -0
- package/dist/types/streaming.js +67 -0
- package/dist/types/streaming.js.map +1 -0
- package/dist/types/workflow-context.d.ts +275 -0
- package/dist/types/workflow-context.d.ts.map +1 -0
- package/dist/types/workflow-context.js +8 -0
- package/dist/types/workflow-context.js.map +1 -0
- package/dist/types/workflow.d.ts +30 -0
- package/dist/types/workflow.d.ts.map +1 -0
- package/dist/types/workflow.js +2 -0
- package/dist/types/workflow.js.map +1 -0
- package/dist/utils/agent-validation.d.ts +88 -0
- package/dist/utils/agent-validation.d.ts.map +1 -0
- package/dist/utils/agent-validation.js +87 -0
- package/dist/utils/agent-validation.js.map +1 -0
- package/dist/utils/delay.d.ts +7 -0
- package/dist/utils/delay.d.ts.map +1 -0
- package/dist/utils/delay.js +9 -0
- package/dist/utils/delay.js.map +1 -0
- package/dist/utils/harness-config.d.ts +180 -0
- package/dist/utils/harness-config.d.ts.map +1 -0
- package/dist/utils/harness-config.js +311 -0
- package/dist/utils/harness-config.js.map +1 -0
- package/dist/utils/id.d.ts +6 -0
- package/dist/utils/id.d.ts.map +1 -0
- package/dist/utils/id.js +12 -0
- package/dist/utils/id.js.map +1 -0
- package/dist/utils/index.d.ts +13 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +11 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/model-spec.d.ts +110 -0
- package/dist/utils/model-spec.d.ts.map +1 -0
- package/dist/utils/model-spec.js +149 -0
- package/dist/utils/model-spec.js.map +1 -0
- package/dist/utils/observable.d.ts +54 -0
- package/dist/utils/observable.d.ts.map +1 -0
- package/dist/utils/observable.js +82 -0
- package/dist/utils/observable.js.map +1 -0
- package/dist/utils/provider-config.d.ts +10 -0
- package/dist/utils/provider-config.d.ts.map +1 -0
- package/dist/utils/provider-config.js +10 -0
- package/dist/utils/provider-config.js.map +1 -0
- package/dist/utils/restart-analysis.d.ts +202 -0
- package/dist/utils/restart-analysis.d.ts.map +1 -0
- package/dist/utils/restart-analysis.js +426 -0
- package/dist/utils/restart-analysis.js.map +1 -0
- package/dist/utils/session-serialization.d.ts +118 -0
- package/dist/utils/session-serialization.d.ts.map +1 -0
- package/dist/utils/session-serialization.js +217 -0
- package/dist/utils/session-serialization.js.map +1 -0
- package/dist/utils/workflow-error-utils.d.ts +22 -0
- package/dist/utils/workflow-error-utils.d.ts.map +1 -0
- package/dist/utils/workflow-error-utils.js +45 -0
- package/dist/utils/workflow-error-utils.js.map +1 -0
- package/package.json +34 -5
- package/.claude/commands/subtask-planning/prp-base-create.md +0 -120
- package/.claude/commands/subtask-planning/prp-base-execute.md +0 -65
- package/.claude/commands/task-breakdown.md +0 -94
- package/.claude/settings.local.json +0 -9
- package/.claude/system_prompts/task-breakdown.md +0 -101
- package/CHANGELOG.md +0 -188
- package/PRD.md +0 -543
- package/PRPs/001-hierarchical-workflow-engine.md +0 -2438
- package/PRPs/PRDs/002-agent-prompt.md +0 -390
- package/PRPs/PRDs/003-agent-prompt.md +0 -943
- package/PRPs/PRDs/004-agent-prompt.md +0 -1136
- package/PRPs/PRDs/tasks-001.json +0 -492
- package/PRPs/README.md +0 -83
- package/PRPs/templates/prp_base.md +0 -222
- package/docs/agent.md +0 -422
- package/docs/prompt.md +0 -419
- package/docs/workflow.md +0 -600
- package/examples/README.md +0 -258
- package/examples/examples/01-basic-workflow.ts +0 -100
- package/examples/examples/02-decorator-options.ts +0 -217
- package/examples/examples/03-parent-child.ts +0 -241
- package/examples/examples/04-observers-debugger.ts +0 -340
- package/examples/examples/05-error-handling.ts +0 -387
- package/examples/examples/06-concurrent-tasks.ts +0 -352
- package/examples/examples/07-agent-loops.ts +0 -432
- package/examples/examples/08-sdk-features.ts +0 -667
- package/examples/examples/09-reflection.ts +0 -573
- package/examples/examples/10-introspection.ts +0 -550
- package/examples/examples/11-reparenting-workflows.ts +0 -269
- package/examples/index.ts +0 -147
- package/examples/utils/helpers.ts +0 -57
- package/package-lock.json +0 -2398
- package/plan/001_d3bb02af4886/TEST_RESULTS.md +0 -259
- package/plan/001_d3bb02af4886/backlog.json +0 -867
- package/plan/001_d3bb02af4886/bug_fix_tasks.json +0 -484
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S1/PRP.md +0 -488
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S2/PRP.md +0 -581
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S3/PRP.md +0 -687
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S1/PRP.md +0 -492
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/PRP.md +0 -932
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/concurrent_error_testing_patterns.md +0 -1109
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/vitest_concurrent_testing.md +0 -802
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/workflow_engine_test_references.md +0 -603
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S1/PRP.md +0 -564
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S3/PRP.md +0 -518
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S4/PRP.md +0 -1252
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/PRP.md +0 -364
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/CODEBASE_INVENTORY.md +0 -114
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/DECORATOR_DOCUMENTATION_PATTERNS.md +0 -205
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/PRD_LOCATION_ANALYSIS.md +0 -199
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/ULTRATHINK_PRP_PLAN.md +0 -134
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S1/PRP.md +0 -495
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S1/research/console_error_inventory.md +0 -435
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S2/PRP.md +0 -506
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S3/PRP.md +0 -612
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S2/PRP.md +0 -558
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S2/research/external_research.md +0 -788
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T3S2/PRP.md +0 -460
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T3S3/PRP.md +0 -454
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/PRP.md +0 -520
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/RECOMMENDATION.md +0 -417
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/research/external_workflow_engines_research.md +0 -760
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/research/security_implications_analysis.md +0 -245
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S2/PRP.md +0 -792
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S1/PRP.md +0 -535
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S1/TEST_EXECUTION_REPORT.md +0 -190
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/PRP.md +0 -654
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/TEST_FIX_REPORT.md +0 -227
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/KEY_FINDINGS.md +0 -345
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/QUICK_REFERENCE.md +0 -193
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/test_maintenance_research.md +0 -1323
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S1/BREAKING_CHANGES_AUDIT.md +0 -1011
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S1/PRP.md +0 -927
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S2/PRP.md +0 -505
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/architecture/logger_child_signature_analysis.md +0 -401
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/child_implementation_research.md +0 -142
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/test_patterns_research.md +0 -112
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/vitest_patterns_research.md +0 -159
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/PRP.md +0 -549
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/VERIFICATION_REPORT.md +0 -368
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/edge_case_analysis.md +0 -172
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/usage_inventory.md +0 -175
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T1S2/PRP.md +0 -696
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T1S4/PRP.md +0 -860
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/PRP.md +0 -1066
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/01-testing-aggregated-errors.md +0 -1103
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/01_typescript_error_aggregation_patterns.md +0 -789
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/02-error-merge-strategy-testing-guide.md +0 -1098
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/02_aggregate_error_patterns.md +0 -1037
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/03-promise-allsettled-testing-patterns.md +0 -916
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/03_error_merging_strategies.md +0 -1045
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/04_github_stackoverflow_examples.md +0 -890
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/05_comprehensive_summary.md +0 -822
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/INDEX.md +0 -668
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/QUICK_REFERENCE.md +0 -706
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/README.md +0 -265
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/RESEARCH_REPORT.md +0 -655
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S4/research/vitest_testing_patterns.md +0 -1103
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T3S2/PRP.md +0 -426
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/PRP.md +0 -506
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/QUICK_REFERENCE.md +0 -114
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/RESEARCH_SUMMARY.md +0 -316
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/vitest_observer_error_logging_best_practices.md +0 -754
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S3/PRP.md +0 -612
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/PRP.md +0 -719
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/README.md +0 -215
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/analysis.md +0 -765
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S3/PRP.md +0 -718
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/DECISION.md +0 -149
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/PRP.md +0 -470
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/ULTRATHINK_PLAN.md +0 -332
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/codebase_workflow_name_analysis.md +0 -167
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/external_best_practices.md +0 -265
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/validation_patterns.md +0 -273
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T4S1/workflow_engine_ancestry_api_research.md +0 -760
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T4S3-PRP.md +0 -434
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S1/PRP.md +0 -717
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/PRP.md +0 -472
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/VALIDATION_REPORT.md +0 -125
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/research/ULTRATHINK_PRP_PLAN.md +0 -301
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/error-logging-best-practices.md +0 -1170
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/research_typescript_partial_and_overloads.md +0 -940
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/vitest-quick-reference.md +0 -151
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/vitest-research.md +0 -650
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/prd_snapshot.md +0 -259
- package/plan/001_d3bb02af4886/bugfix/P1M1T1S1/PRP.md +0 -457
- package/plan/001_d3bb02af4886/bugfix/RESEARCH_SUMMARY.md +0 -346
- package/plan/001_d3bb02af4886/bugfix/architecture/codebase_structure.md +0 -311
- package/plan/001_d3bb02af4886/bugfix/architecture/concurrent_execution_best_practices.md +0 -1565
- package/plan/001_d3bb02af4886/bugfix/architecture/error_handling_patterns.md +0 -288
- package/plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md +0 -741
- package/plan/001_d3bb02af4886/docs/PRP/P1M1T1S4-functional-workflow-error-state-capture-test.md +0 -652
- package/plan/001_d3bb02af4886/docs/PRP/P1P2-PRP.md +0 -527
- package/plan/001_d3bb02af4886/docs/PRP/P3P4-PRP.md +0 -1388
- package/plan/001_d3bb02af4886/docs/PRP/P4P5-PRP.md +0 -1136
- package/plan/001_d3bb02af4886/docs/PRP/PRP.md +0 -527
- package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S1-PRP.md +0 -415
- package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S2-PRP.md +0 -378
- package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S4-PRP.md +0 -713
- package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M2T1S4-PRP.md +0 -370
- package/plan/001_d3bb02af4886/docs/PRP_P1M3T1S3.md +0 -499
- package/plan/001_d3bb02af4886/docs/TEST_RESULTS.md +0 -230
- package/plan/001_d3bb02af4886/docs/architecture/external_deps.md +0 -358
- package/plan/001_d3bb02af4886/docs/architecture/system_context.md +0 -242
- package/plan/001_d3bb02af4886/docs/bugfix/ANALYSIS_PRD_VS_IMPLEMENTATION.md +0 -1134
- package/plan/001_d3bb02af4886/docs/bugfix/GAP_ANALYSIS_SUMMARY.md +0 -179
- package/plan/001_d3bb02af4886/docs/bugfix/P1M4T2S1/PRP.md +0 -629
- package/plan/001_d3bb02af4886/docs/bugfix/P1M4T2S1/validation-report.md +0 -214
- package/plan/001_d3bb02af4886/docs/bugfix/PRP_P1M4T2S3.md +0 -629
- package/plan/001_d3bb02af4886/docs/bugfix/bugfix_PRP.md +0 -529
- package/plan/001_d3bb02af4886/docs/bugfix/bugfix_QUICK_REFERENCE.md +0 -142
- package/plan/001_d3bb02af4886/docs/bugfix/bugfix_README.md +0 -304
- package/plan/001_d3bb02af4886/docs/bugfix/bugfix_TEST_RESULTS.md +0 -558
- package/plan/001_d3bb02af4886/docs/bugfix/bugfix_VALIDATION_SUMMARY.md +0 -256
- package/plan/001_d3bb02af4886/docs/bugfix/system_context.md +0 -346
- package/plan/001_d3bb02af4886/docs/bugfix-architecture/bug_analysis.md +0 -415
- package/plan/001_d3bb02af4886/docs/bugfix-architecture/implementation_patterns.md +0 -489
- package/plan/001_d3bb02af4886/docs/bugfix-architecture/system_context.md +0 -218
- package/plan/001_d3bb02af4886/docs/bugfix_INITIATION_SUMMARY.md +0 -380
- package/plan/001_d3bb02af4886/docs/research/CYCLE_DETECTION_PATTERNS.md +0 -1923
- package/plan/001_d3bb02af4886/docs/research/CYCLE_DETECTION_QUICK_REF.md +0 -319
- package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/codebase-context.md +0 -115
- package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/cycle-detection-algorithms.md +0 -134
- package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/test-patterns.md +0 -153
- package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/workflow-class.md +0 -132
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/DECORATOR_DOCUMENTATION_BEST_PRACTICES.md +0 -716
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/DECORATOR_DOCUMENTATION_QUICK_REF.md +0 -186
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/GROUNDSWELL_DECORATOR_EXAMPLES.md +0 -604
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/INDEX.md +0 -213
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/codebase_structure.md +0 -30
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/existing_test_pattern.md +0 -56
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/getRootObservers_implementation.md +0 -53
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/test_conventions.md +0 -49
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/PRP.md +0 -958
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/QUICK_REFERENCE.md +0 -339
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/README.md +0 -305
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/SUMMARY.md +0 -433
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/bidirectional-tree-consistency-testing.md +0 -1574
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/test-pattern-examples.md +0 -1014
- package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_BEST_PRACTICES.md +0 -1929
- package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_CODE_PATTERNS.md +0 -857
- package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_INTEGRATION_GUIDE.md +0 -738
- package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_RESEARCH_INDEX.md +0 -424
- package/plan/001_d3bb02af4886/docs/research/P1P2/REFLECTION_INDEX.md +0 -291
- package/plan/001_d3bb02af4886/docs/research/P1P2/REFLECTION_RESEARCH_REPORT.md +0 -1342
- package/plan/001_d3bb02af4886/docs/research/P1P2/RESEARCH_SUMMARY.md +0 -342
- package/plan/001_d3bb02af4886/docs/research/P1P2/anthropic-sdk.md +0 -174
- package/plan/001_d3bb02af4886/docs/research/P1P2/async-local-storage.md +0 -200
- package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-code-patterns.md +0 -1205
- package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-decision-matrix.md +0 -421
- package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-implementation-guide.md +0 -1341
- package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-integration-guide.md +0 -834
- package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-patterns.md +0 -1468
- package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-quick-reference.md +0 -558
- package/plan/001_d3bb02af4886/docs/research/P1P2/zod-schema.md +0 -152
- package/plan/001_d3bb02af4886/docs/research/P3P4/caching-lru.md +0 -116
- package/plan/001_d3bb02af4886/docs/research/P3P4/introspection-tools.md +0 -177
- package/plan/001_d3bb02af4886/docs/research/P3P4/reflection-patterns.md +0 -117
- package/plan/001_d3bb02af4886/docs/research/P4P5/RESEARCH_SUMMARY.md +0 -151
- package/plan/001_d3bb02af4886/docs/research/PROMISE_ALLSETTLED_QUICK_REF.md +0 -376
- package/plan/001_d3bb02af4886/docs/research/PROMISE_ALLSETTLED_RESEARCH.md +0 -1507
- package/plan/001_d3bb02af4886/docs/research/bugfix_typescript_patterns.md +0 -949
- package/plan/001_d3bb02af4886/docs/research/error-testing-research.md +0 -619
- package/plan/001_d3bb02af4886/docs/research/error_handling_patterns.md +0 -723
- package/plan/001_d3bb02af4886/docs/research/general/INTROSPECTION_RESEARCH_SUMMARY.md +0 -378
- package/plan/001_d3bb02af4886/docs/research/general/README-INTROSPECTION.md +0 -352
- package/plan/001_d3bb02af4886/docs/research/general/agent-introspection-patterns.md +0 -1085
- package/plan/001_d3bb02af4886/docs/research/general/introspection-security-guide.md +0 -984
- package/plan/001_d3bb02af4886/docs/research/general/introspection-tool-examples.md +0 -875
- package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/PRP_TEMPLATE.md +0 -460
- package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/QUICK_REFERENCE.md +0 -324
- package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/README.md +0 -175
- package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/RESEARCH_REPORT.md +0 -499
- package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/SUMMARY.md +0 -163
- package/plan/001_d3bb02af4886/prd_snapshot.md +0 -543
- package/plan/bugfix/BUG_FIX_SUMMARY.md +0 -961
- package/scripts/generate-llms-full.ts +0 -206
- package/src/__tests__/adversarial/attachChild-performance.test.ts +0 -216
- package/src/__tests__/adversarial/circular-reference.test.ts +0 -101
- package/src/__tests__/adversarial/complex-circular-reference.test.ts +0 -139
- package/src/__tests__/adversarial/concurrent-task-failures.test.ts +0 -571
- package/src/__tests__/adversarial/deep-analysis.test.ts +0 -729
- package/src/__tests__/adversarial/deep-hierarchy-stress.test.ts +0 -213
- package/src/__tests__/adversarial/e2e-prd-validation.test.ts +0 -448
- package/src/__tests__/adversarial/edge-case.test.ts +0 -703
- package/src/__tests__/adversarial/error-merge-strategy.test.ts +0 -760
- package/src/__tests__/adversarial/incremental-performance.test.ts +0 -140
- package/src/__tests__/adversarial/node-map-update-benchmarks.test.ts +0 -457
- package/src/__tests__/adversarial/observer-propagation.test.ts +0 -487
- package/src/__tests__/adversarial/parent-validation.test.ts +0 -143
- package/src/__tests__/adversarial/prd-12-2-compliance.test.ts +0 -611
- package/src/__tests__/adversarial/prd-compliance.test.ts +0 -731
- package/src/__tests__/compatibility/backward-compatibility.test.ts +0 -1572
- package/src/__tests__/helpers/index.ts +0 -18
- package/src/__tests__/helpers/tree-verification.ts +0 -257
- package/src/__tests__/integration/agent-workflow.test.ts +0 -256
- package/src/__tests__/integration/bidirectional-consistency.test.ts +0 -847
- package/src/__tests__/integration/observer-logging.test.ts +0 -643
- package/src/__tests__/integration/tree-mirroring.test.ts +0 -151
- package/src/__tests__/integration/workflow-reparenting.test.ts +0 -303
- package/src/__tests__/unit/agent.test.ts +0 -169
- package/src/__tests__/unit/cache-key.test.ts +0 -182
- package/src/__tests__/unit/cache.test.ts +0 -172
- package/src/__tests__/unit/context.test.ts +0 -217
- package/src/__tests__/unit/decorators.test.ts +0 -100
- package/src/__tests__/unit/introspection-tools.test.ts +0 -277
- package/src/__tests__/unit/logger.test.ts +0 -293
- package/src/__tests__/unit/observable.test.ts +0 -321
- package/src/__tests__/unit/prompt.test.ts +0 -135
- package/src/__tests__/unit/reflection.test.ts +0 -210
- package/src/__tests__/unit/tree-debugger-incremental.test.ts +0 -170
- package/src/__tests__/unit/tree-debugger.test.ts +0 -85
- package/src/__tests__/unit/utils/workflow-error-utils.test.ts +0 -209
- package/src/__tests__/unit/workflow-detachChild.test.ts +0 -100
- package/src/__tests__/unit/workflow-emitEvent-childDetached.test.ts +0 -153
- package/src/__tests__/unit/workflow-isDescendantOf.test.ts +0 -180
- package/src/__tests__/unit/workflow.test.ts +0 -357
- package/src/cache/cache-key.ts +0 -244
- package/src/cache/cache.ts +0 -236
- package/src/core/agent.ts +0 -593
- package/src/core/event-tree.ts +0 -260
- package/src/core/logger.ts +0 -112
- package/src/core/mcp-handler.ts +0 -184
- package/src/core/prompt.ts +0 -150
- package/src/core/workflow-context.ts +0 -351
- package/src/core/workflow.ts +0 -540
- package/src/debugger/tree-debugger.ts +0 -255
- package/src/decorators/observed-state.ts +0 -95
- package/src/decorators/step.ts +0 -139
- package/src/decorators/task.ts +0 -159
- package/src/examples/tdd-orchestrator.ts +0 -65
- package/src/examples/test-cycle-workflow.ts +0 -64
- package/src/index.ts +0 -142
- package/src/reflection/reflection.ts +0 -407
- package/src/tools/index.ts +0 -36
- package/src/tools/introspection.ts +0 -464
- package/src/types/agent.ts +0 -90
- package/src/types/decorators.ts +0 -32
- package/src/types/error-strategy.ts +0 -13
- package/src/types/error.ts +0 -20
- package/src/types/events.ts +0 -75
- package/src/types/index.ts +0 -55
- package/src/types/logging.ts +0 -24
- package/src/types/observer.ts +0 -18
- package/src/types/prompt.ts +0 -40
- package/src/types/reflection.ts +0 -117
- package/src/types/sdk-primitives.ts +0 -128
- package/src/types/workflow-context.ts +0 -163
- package/src/types/workflow.ts +0 -37
- package/src/utils/id.ts +0 -11
- package/src/utils/index.ts +0 -4
- package/src/utils/observable.ts +0 -106
- package/src/utils/workflow-error-utils.ts +0 -56
- package/tsconfig.json +0 -22
- package/vitest.config.ts +0 -16
|
@@ -0,0 +1,1317 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent configuration and override types
|
|
3
|
+
* All properties map 1:1 to Anthropic SDK
|
|
4
|
+
*/
|
|
5
|
+
import type { Tool, MCPServer, Skill, AgentHooks, TokenUsage } from './sdk-primitives.js';
|
|
6
|
+
import type { ProviderId, ProviderOptions } from './providers.js';
|
|
7
|
+
import type { HarnessId, HarnessOptions } from './harnesses.js';
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
/**
|
|
10
|
+
* Configuration for creating an Agent instance
|
|
11
|
+
* All Anthropic SDK properties pass through unchanged
|
|
12
|
+
*/
|
|
13
|
+
export interface AgentConfig {
|
|
14
|
+
/** Human-readable name for the agent */
|
|
15
|
+
name?: string;
|
|
16
|
+
/** System prompt for the agent */
|
|
17
|
+
system?: string;
|
|
18
|
+
/** Tools available to the agent */
|
|
19
|
+
tools?: Tool[];
|
|
20
|
+
/** MCP servers to connect */
|
|
21
|
+
mcps?: MCPServer[];
|
|
22
|
+
/** Skills to load */
|
|
23
|
+
skills?: Skill[];
|
|
24
|
+
/** Lifecycle hooks */
|
|
25
|
+
hooks?: AgentHooks;
|
|
26
|
+
/** Environment variables for agent execution */
|
|
27
|
+
env?: Record<string, string>;
|
|
28
|
+
/** Enable reflection capability for this agent */
|
|
29
|
+
enableReflection?: boolean;
|
|
30
|
+
/** Enable caching of prompt responses */
|
|
31
|
+
enableCache?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Model identifier for LLM inference
|
|
34
|
+
*
|
|
35
|
+
* Supports two formats:
|
|
36
|
+
* - **Plain format**: `"claude-sonnet-4-20250514"` - Uses default provider
|
|
37
|
+
* - **Qualified format**: `"anthropic/claude-sonnet-4-20250514"` - Explicit provider
|
|
38
|
+
*
|
|
39
|
+
* When a plain model name is used (no provider prefix), the provider
|
|
40
|
+
* is determined by the configuration cascade: prompt override →
|
|
41
|
+
* agent provider → global default.
|
|
42
|
+
*
|
|
43
|
+
* ## Model Specification (PRD 7.8)
|
|
44
|
+
*
|
|
45
|
+
* The `parseModelSpec()` utility parses model strings into:
|
|
46
|
+
* - `provider`: Provider ID (anthropic, claude-code, etc.)
|
|
47
|
+
* - `model`: Base model name without prefix
|
|
48
|
+
* - `raw`: Original input string
|
|
49
|
+
*
|
|
50
|
+
* @example <caption>Plain format (uses default provider)</caption>
|
|
51
|
+
* ```ts
|
|
52
|
+
* const config: AgentConfig = {
|
|
53
|
+
* model: 'claude-sonnet-4-20250514'
|
|
54
|
+
* // Uses provider from cascade
|
|
55
|
+
* };
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* @example <caption>Qualified format (explicit provider)</caption>
|
|
59
|
+
* ```ts
|
|
60
|
+
* const config: AgentConfig = {
|
|
61
|
+
* model: 'anthropic/claude-sonnet-4-20250514'
|
|
62
|
+
* // Explicitly uses Anthropic provider
|
|
63
|
+
* };
|
|
64
|
+
* ```
|
|
65
|
+
*
|
|
66
|
+
* @example <caption>Qualified format with Claude Code provider</caption>
|
|
67
|
+
* ```ts
|
|
68
|
+
* const config: AgentConfig = {
|
|
69
|
+
* model: 'anthropic/claude-sonnet-4'
|
|
70
|
+
* // Explicitly uses Anthropic provider
|
|
71
|
+
* };
|
|
72
|
+
* ```
|
|
73
|
+
*
|
|
74
|
+
* @default "claude-sonnet-4-20250514"
|
|
75
|
+
* @see {@link parseModelSpec} for model specification parsing
|
|
76
|
+
* @see {@link ModelSpec} for parsed model structure
|
|
77
|
+
*/
|
|
78
|
+
model?: string;
|
|
79
|
+
/** Maximum tokens for responses */
|
|
80
|
+
maxTokens?: number;
|
|
81
|
+
/** Temperature for response generation */
|
|
82
|
+
temperature?: number;
|
|
83
|
+
/** Harness to use (inherits from global; default 'pi'). PRD §7.9. */
|
|
84
|
+
harness?: HarnessId;
|
|
85
|
+
/** Harness-specific options. PRD §7.9. */
|
|
86
|
+
harnessOptions?: HarnessOptions;
|
|
87
|
+
/**
|
|
88
|
+
* Provider to use for this agent
|
|
89
|
+
*
|
|
90
|
+
* @deprecated Since v1.2. Use {@link AgentConfig.harness} (and
|
|
91
|
+
* {@link AgentConfig.harnessOptions} for options) instead. The runtime/harness
|
|
92
|
+
* axis (`'pi'` | `'claude-code'`) is now independent of the LLM provider/model
|
|
93
|
+
* (PRD §7): the harness is chosen separately, and the model string is never
|
|
94
|
+
* harness-qualified. Retained for backward compatibility during the v1.2 migration
|
|
95
|
+
* and removed when the legacy adapters are renamed/deleted (P2.M1 / P4.M1).
|
|
96
|
+
*
|
|
97
|
+
* ```typescript
|
|
98
|
+
* // BEFORE (v1.x)
|
|
99
|
+
* const config: AgentConfig = { provider: 'anthropic' };
|
|
100
|
+
* // AFTER (v1.2)
|
|
101
|
+
* const config: AgentConfig = {
|
|
102
|
+
* harness: 'claude-code',
|
|
103
|
+
* model: 'anthropic/claude-sonnet-4-20250514',
|
|
104
|
+
* };
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
provider?: ProviderId;
|
|
108
|
+
/**
|
|
109
|
+
* Provider-specific options for this agent
|
|
110
|
+
*
|
|
111
|
+
* @deprecated Since v1.2. Use {@link AgentConfig.harnessOptions} instead.
|
|
112
|
+
*
|
|
113
|
+
* Note: {@link HarnessOptions} is SLIMMED relative to this type — it omits
|
|
114
|
+
* `sessionStore`, `sessionPersistence`, `sessionTtl`, and `sessionPath` (those are
|
|
115
|
+
* now harness-adapter internals; see `src/types/providers.ts` → `ProviderOptions`
|
|
116
|
+
* @deprecated note). Migrating callers that relied on session-persistence config
|
|
117
|
+
* must move it to the concrete harness adapter.
|
|
118
|
+
*
|
|
119
|
+
* The v1.x provider-options merge cascade is superseded by the PRD §7.7 **harness**
|
|
120
|
+
* cascade (GlobalHarnessConfig.defaultHarness → AgentConfig.harness/harnessOptions →
|
|
121
|
+
* PromptOverrides.harness/harnessOptions), resolved via null-coalescing.
|
|
122
|
+
*
|
|
123
|
+
* ```typescript
|
|
124
|
+
* // BEFORE (v1.x)
|
|
125
|
+
* const config: AgentConfig = {
|
|
126
|
+
* providerOptions: { endpoint: 'https://api.example.com', sessionPersistence: 'file' },
|
|
127
|
+
* };
|
|
128
|
+
* // AFTER (v1.2)
|
|
129
|
+
* const config: AgentConfig = {
|
|
130
|
+
* harnessOptions: { endpoint: 'https://api.example.com', apiKey: process.env.ANTHROPIC_API_KEY },
|
|
131
|
+
* };
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
providerOptions?: ProviderOptions;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Overrides that can be applied at the prompt level
|
|
138
|
+
* Takes precedence over AgentConfig values
|
|
139
|
+
*/
|
|
140
|
+
export interface PromptOverrides {
|
|
141
|
+
/** Override system prompt for this prompt */
|
|
142
|
+
system?: string;
|
|
143
|
+
/** Override tools for this prompt */
|
|
144
|
+
tools?: Tool[];
|
|
145
|
+
/** Override MCPs for this prompt */
|
|
146
|
+
mcps?: MCPServer[];
|
|
147
|
+
/** Override skills for this prompt */
|
|
148
|
+
skills?: Skill[];
|
|
149
|
+
/** Override hooks for this prompt */
|
|
150
|
+
hooks?: AgentHooks;
|
|
151
|
+
/** Override environment variables */
|
|
152
|
+
env?: Record<string, string>;
|
|
153
|
+
/** Override temperature */
|
|
154
|
+
temperature?: number;
|
|
155
|
+
/** Override max tokens */
|
|
156
|
+
maxTokens?: number;
|
|
157
|
+
/** Stop sequences to use */
|
|
158
|
+
stop?: string[];
|
|
159
|
+
/** Disable cache for this prompt */
|
|
160
|
+
disableCache?: boolean;
|
|
161
|
+
/** Enable reflection for this prompt */
|
|
162
|
+
enableReflection?: boolean;
|
|
163
|
+
/** Override model for this prompt */
|
|
164
|
+
model?: string;
|
|
165
|
+
/** Override harness for this prompt (PRD §7.7, §7.9). Highest priority in the harness cascade. */
|
|
166
|
+
harness?: HarnessId;
|
|
167
|
+
/** Override harness options for this prompt (PRD §7.7). Merged via last-write-wins. */
|
|
168
|
+
harnessOptions?: HarnessOptions;
|
|
169
|
+
/**
|
|
170
|
+
* Override provider for this prompt
|
|
171
|
+
*
|
|
172
|
+
* @deprecated Since v1.2. Use {@link PromptOverrides.harness} (and
|
|
173
|
+
* {@link PromptOverrides.harnessOptions} for options) instead. The runtime/harness
|
|
174
|
+
* axis (`'pi'` | `'claude-code'`) is now independent of the LLM provider/model
|
|
175
|
+
* (PRD §7): the harness is chosen separately, and the model string is never
|
|
176
|
+
* harness-qualified. This field is the highest-priority node in the PRD §7.7
|
|
177
|
+
* **harness** cascade (GlobalHarnessConfig.defaultHarness → AgentConfig.harness →
|
|
178
|
+
* PromptOverrides.harness). Retained for backward compatibility during the v1.2
|
|
179
|
+
* migration; the Agent runtime reads it in lockstep with `harness`
|
|
180
|
+
* (`overrides?.harness ?? overrides?.provider` in src/core/agent.ts).
|
|
181
|
+
*
|
|
182
|
+
* ```typescript
|
|
183
|
+
* // BEFORE (v1.x)
|
|
184
|
+
* const response = await agent.prompt(myPrompt, { provider: 'anthropic' });
|
|
185
|
+
* // AFTER (v1.2)
|
|
186
|
+
* const response = await agent.prompt(myPrompt, {
|
|
187
|
+
* harness: 'claude-code',
|
|
188
|
+
* model: 'anthropic/claude-sonnet-4-20250514',
|
|
189
|
+
* });
|
|
190
|
+
* ```
|
|
191
|
+
*/
|
|
192
|
+
provider?: ProviderId;
|
|
193
|
+
/**
|
|
194
|
+
* Override provider options for this prompt
|
|
195
|
+
*
|
|
196
|
+
* @deprecated Since v1.2. Use {@link PromptOverrides.harnessOptions} instead.
|
|
197
|
+
*
|
|
198
|
+
* Note: {@link HarnessOptions} is SLIMMED relative to this type — it omits
|
|
199
|
+
* `sessionStore`, `sessionPersistence`, `sessionTtl`, and `sessionPath` (those are
|
|
200
|
+
* now harness-adapter internals; see `src/types/providers.ts` → `ProviderOptions`
|
|
201
|
+
* @deprecated note). Migrating callers that relied on session-persistence config
|
|
202
|
+
* must move it to the concrete harness adapter.
|
|
203
|
+
*
|
|
204
|
+
* The v1.x provider-options merge cascade is superseded by the PRD §7.7 **harness**
|
|
205
|
+
* cascade (GlobalHarnessConfig.defaultHarness → AgentConfig.harness/harnessOptions →
|
|
206
|
+
* PromptOverrides.harness/harnessOptions), resolved via null-coalescing.
|
|
207
|
+
*
|
|
208
|
+
* ```typescript
|
|
209
|
+
* // BEFORE (v1.x)
|
|
210
|
+
* const response = await agent.prompt(myPrompt, {
|
|
211
|
+
* providerOptions: { endpoint: 'https://api.example.com', sessionPersistence: 'file' },
|
|
212
|
+
* });
|
|
213
|
+
* // AFTER (v1.2)
|
|
214
|
+
* const response = await agent.prompt(myPrompt, {
|
|
215
|
+
* harnessOptions: { endpoint: 'https://api.example.com', apiKey: process.env.ANTHROPIC_API_KEY },
|
|
216
|
+
* });
|
|
217
|
+
* ```
|
|
218
|
+
*/
|
|
219
|
+
providerOptions?: ProviderOptions;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Status of an agent response
|
|
223
|
+
* Used as discriminant for type narrowing
|
|
224
|
+
*/
|
|
225
|
+
export type AgentResponseStatus = 'success' | 'error' | 'partial';
|
|
226
|
+
/**
|
|
227
|
+
* Response wrapper for agent execution results (discriminated union)
|
|
228
|
+
*
|
|
229
|
+
* ## PRD 6.4 Response Requirements
|
|
230
|
+
*
|
|
231
|
+
* All AgentResponse instances MUST satisfy:
|
|
232
|
+
*
|
|
233
|
+
* 1. **Strict JSON** (PRD 6.4.1): Must be parseable by `JSON.parse()`
|
|
234
|
+
* 2. **No Prose Wrapping** (PRD 6.4.2): No markdown code blocks or text
|
|
235
|
+
* 3. **Consistent Structure** (PRD 6.4.3): Must conform to this interface
|
|
236
|
+
* 4. **Null over Undefined** (PRD 6.4.4): Use `null` for absent values
|
|
237
|
+
* 5. **Error Responses** (PRD 6.4.5): Failed operations return valid JSON
|
|
238
|
+
*
|
|
239
|
+
* ## Discriminated Union Type Safety
|
|
240
|
+
*
|
|
241
|
+
* **This is a discriminated union type** - the `status` field determines the
|
|
242
|
+
* shape of `data` and `error` at compile-time. TypeScript will prevent invalid
|
|
243
|
+
* combinations like `status='success'` with `error!=null`.
|
|
244
|
+
*
|
|
245
|
+
* The three variants are:
|
|
246
|
+
* - **Success**: `status: 'success'`, `data: T`, `error: null`
|
|
247
|
+
* - **Error**: `status: 'error'`, `data: null`, `error: AgentErrorDetails`
|
|
248
|
+
* - **Partial**: `status: 'partial'`, `data: T`, `error: null`
|
|
249
|
+
*
|
|
250
|
+
* ## Type Narrowing
|
|
251
|
+
*
|
|
252
|
+
* Use the `status` field directly or type guards for type narrowing:
|
|
253
|
+
* - `isSuccess(response)` → `SuccessResponse<T>` (data is T, error is null)
|
|
254
|
+
* - `isError(response)` → `ErrorResponse` (data is null, error exists)
|
|
255
|
+
* - `isPartial(response)` → `PartialResponse<T>` (data is T, error is null)
|
|
256
|
+
*
|
|
257
|
+
* @template T - The type of data returned on success (unknown by default)
|
|
258
|
+
* @see {@link SuccessResponse}, {@link ErrorResponse}, {@link PartialResponse}
|
|
259
|
+
*
|
|
260
|
+
* @example <caption>Success response (PRD 6.5)</caption>
|
|
261
|
+
* ```ts
|
|
262
|
+
* const response: AgentResponse<{ result: string; artifacts: string[] }> = {
|
|
263
|
+
* status: 'success',
|
|
264
|
+
* data: { result: 'Task completed', artifacts: ['file1.ts', 'file2.ts'] },
|
|
265
|
+
* error: null, // Must be null for success - enforced by TypeScript
|
|
266
|
+
* metadata: { agentId: 'agent-abc123', timestamp: 1706140800000, duration: 1523 }
|
|
267
|
+
* };
|
|
268
|
+
* ```
|
|
269
|
+
*
|
|
270
|
+
* @example <caption>Type narrowing with status field</caption>
|
|
271
|
+
* ```ts
|
|
272
|
+
* function handleResponse<T>(response: AgentResponse<T>) {
|
|
273
|
+
* switch (response.status) {
|
|
274
|
+
* case 'success':
|
|
275
|
+
* // TypeScript knows: response.data is T, response.error is null
|
|
276
|
+
* return response.data;
|
|
277
|
+
* case 'error':
|
|
278
|
+
* // TypeScript knows: response.data is null, response.error is AgentErrorDetails
|
|
279
|
+
* throw new Error(response.error.message);
|
|
280
|
+
* case 'partial':
|
|
281
|
+
* // TypeScript knows: response.data is T, response.error is null
|
|
282
|
+
* return response.data;
|
|
283
|
+
* default:
|
|
284
|
+
* // Exhaustiveness check - unreachable
|
|
285
|
+
* const _exhaustive: never = response;
|
|
286
|
+
* return _exhaustive;
|
|
287
|
+
* }
|
|
288
|
+
* }
|
|
289
|
+
* ```
|
|
290
|
+
*
|
|
291
|
+
* @example <caption>Invalid combinations are compile-time errors</caption>
|
|
292
|
+
* ```ts
|
|
293
|
+
* // ❌ TYPE ERROR: status='success' with error!=null
|
|
294
|
+
* const invalid1: AgentResponse<string> = {
|
|
295
|
+
* status: 'success',
|
|
296
|
+
* data: 'hello',
|
|
297
|
+
* error: { code: 'ERROR', message: 'oops', recoverable: false }, // Type error!
|
|
298
|
+
* metadata: { agentId: 'test', timestamp: Date.now() }
|
|
299
|
+
* };
|
|
300
|
+
* // TypeScript error: Type '{ code: string; message: string; recoverable: boolean; }' is not assignable to type 'null'.
|
|
301
|
+
*
|
|
302
|
+
* // ❌ TYPE ERROR: status='error' with data!=null
|
|
303
|
+
* const invalid2: AgentResponse<string> = {
|
|
304
|
+
* status: 'error',
|
|
305
|
+
* data: 'hello', // Type error!
|
|
306
|
+
* error: { code: 'ERROR', message: 'oops', recoverable: false },
|
|
307
|
+
* metadata: { agentId: 'test', timestamp: Date.now() }
|
|
308
|
+
* };
|
|
309
|
+
* // TypeScript error: Type 'string' is not assignable to type 'null'.
|
|
310
|
+
* ```
|
|
311
|
+
*/
|
|
312
|
+
export type AgentResponse<T = unknown> = {
|
|
313
|
+
status: 'success';
|
|
314
|
+
data: T;
|
|
315
|
+
error: null;
|
|
316
|
+
metadata: AgentResponseMetadata;
|
|
317
|
+
} | {
|
|
318
|
+
status: 'error';
|
|
319
|
+
data: null;
|
|
320
|
+
error: AgentErrorDetails;
|
|
321
|
+
metadata: AgentResponseMetadata;
|
|
322
|
+
} | {
|
|
323
|
+
status: 'partial';
|
|
324
|
+
data: T;
|
|
325
|
+
error: null;
|
|
326
|
+
metadata: AgentResponseMetadata;
|
|
327
|
+
};
|
|
328
|
+
/**
|
|
329
|
+
* Error details for agent error responses
|
|
330
|
+
*
|
|
331
|
+
* Per PRD 6.2: Error responses include machine-readable codes,
|
|
332
|
+
* human-readable messages, and a recoverable flag for retry logic.
|
|
333
|
+
*
|
|
334
|
+
* The `code` field uses SCREAMING_SNAKE_CASE convention and should
|
|
335
|
+
* be one of the standard codes from {@link AGENT_ERROR_CODES}.
|
|
336
|
+
*
|
|
337
|
+
* @see {@link AGENT_ERROR_CODES} for standard error codes
|
|
338
|
+
* @see {@link createErrorResponse} for factory function
|
|
339
|
+
*
|
|
340
|
+
* @example <caption>Error response (PRD 6.5)</caption>
|
|
341
|
+
* ```ts
|
|
342
|
+
* const error: AgentErrorDetails = {
|
|
343
|
+
* code: 'EXECUTION_FAILED',
|
|
344
|
+
* message: 'Failed to compile TypeScript files',
|
|
345
|
+
* details: {
|
|
346
|
+
* failedFiles: ['src/index.ts'],
|
|
347
|
+
* compilerErrors: ['TS2307: Cannot find module \\'foo\\'']
|
|
348
|
+
* },
|
|
349
|
+
* recoverable: true
|
|
350
|
+
* };
|
|
351
|
+
* ```
|
|
352
|
+
*/
|
|
353
|
+
export interface AgentErrorDetails {
|
|
354
|
+
/**
|
|
355
|
+
* Machine-readable error code (SCREAMING_SNAKE_CASE convention)
|
|
356
|
+
*
|
|
357
|
+
* Use standard codes from {@link AGENT_ERROR_CODES} when applicable.
|
|
358
|
+
* Custom codes should follow the same naming convention.
|
|
359
|
+
*/
|
|
360
|
+
code: string;
|
|
361
|
+
/** Human-readable error description suitable for display or logging */
|
|
362
|
+
message: string;
|
|
363
|
+
/**
|
|
364
|
+
* Additional error context - null if no details available
|
|
365
|
+
*
|
|
366
|
+
* May include field names, values, stack traces, or other diagnostic info.
|
|
367
|
+
* Per PRD 6.4.4: Use null instead of undefined for absent values.
|
|
368
|
+
*/
|
|
369
|
+
details?: Record<string, unknown> | null;
|
|
370
|
+
/**
|
|
371
|
+
* Whether the error is recoverable (can retry)
|
|
372
|
+
*
|
|
373
|
+
* Set to true for transient errors (rate limits, network issues).
|
|
374
|
+
* Set to false for permanent errors (validation, invalid format).
|
|
375
|
+
*
|
|
376
|
+
* Per PRD 6.2: This is a hint for parent workflow retry logic.
|
|
377
|
+
*/
|
|
378
|
+
recoverable: boolean;
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Metadata for agent responses
|
|
382
|
+
*
|
|
383
|
+
* Per PRD 6.3: Response metadata includes agent identification,
|
|
384
|
+
* timing information, and optional correlation/tracing data.
|
|
385
|
+
*
|
|
386
|
+
* The timestamp is a Unix timestamp in milliseconds (not seconds).
|
|
387
|
+
* Use Date.now() or similar to generate valid timestamps.
|
|
388
|
+
*
|
|
389
|
+
* @see {@link TokenUsage} for token usage structure
|
|
390
|
+
*
|
|
391
|
+
* @example <caption>Metadata from PRD 6.5</caption>
|
|
392
|
+
* ```ts
|
|
393
|
+
* const metadata: AgentResponseMetadata = {
|
|
394
|
+
* agentId: 'agent-abc123',
|
|
395
|
+
* timestamp: 1706140800000,
|
|
396
|
+
* duration: 1523
|
|
397
|
+
* };
|
|
398
|
+
* ```
|
|
399
|
+
*
|
|
400
|
+
* @example <caption>Full metadata with optional fields</caption>
|
|
401
|
+
* ```ts
|
|
402
|
+
* const metadata: AgentResponseMetadata = {
|
|
403
|
+
* agentId: 'agent-abc123',
|
|
404
|
+
* timestamp: Date.now(),
|
|
405
|
+
* duration: 1523,
|
|
406
|
+
* requestId: 'req-abc123',
|
|
407
|
+
* usage: { inputTokens: 100, outputTokens: 50, cacheReadTokens: 0, cacheWriteTokens: 25 },
|
|
408
|
+
* toolCalls: 3
|
|
409
|
+
* };
|
|
410
|
+
* ```
|
|
411
|
+
*/
|
|
412
|
+
export interface AgentResponseMetadata {
|
|
413
|
+
/**
|
|
414
|
+
* Agent identifier (required)
|
|
415
|
+
*
|
|
416
|
+
* Uniquely identifies the agent or workflow that generated this response.
|
|
417
|
+
* Should be stable across multiple invocations of the same agent.
|
|
418
|
+
*/
|
|
419
|
+
agentId: string;
|
|
420
|
+
/**
|
|
421
|
+
* Unix timestamp in milliseconds (required)
|
|
422
|
+
*
|
|
423
|
+
* The time when the response was generated, as a Unix timestamp in
|
|
424
|
+
* milliseconds since the epoch (January 1, 1970). Use Date.now() to
|
|
425
|
+
* generate current timestamps.
|
|
426
|
+
*
|
|
427
|
+
* @example
|
|
428
|
+
* ```ts
|
|
429
|
+
* timestamp: Date.now() // Current time in milliseconds
|
|
430
|
+
* timestamp: 1706140800000 // Fixed timestamp
|
|
431
|
+
* ```
|
|
432
|
+
*/
|
|
433
|
+
timestamp: number;
|
|
434
|
+
/**
|
|
435
|
+
* Execution duration in milliseconds (optional)
|
|
436
|
+
*
|
|
437
|
+
* The time taken to execute the agent prompt, from start to completion.
|
|
438
|
+
* Useful for performance monitoring and debugging.
|
|
439
|
+
*/
|
|
440
|
+
duration?: number | null;
|
|
441
|
+
/**
|
|
442
|
+
* Request correlation ID (optional)
|
|
443
|
+
*
|
|
444
|
+
* Used for tracing requests across distributed systems. Correlates
|
|
445
|
+
* this response with the original request and any downstream calls.
|
|
446
|
+
*/
|
|
447
|
+
requestId?: string | null;
|
|
448
|
+
/**
|
|
449
|
+
* Token usage from the API (optional, for backward compatibility)
|
|
450
|
+
*
|
|
451
|
+
* Breakdown of token usage including input, output, and cache tokens.
|
|
452
|
+
* Only present when the API returns token usage information.
|
|
453
|
+
*/
|
|
454
|
+
usage?: TokenUsage;
|
|
455
|
+
/**
|
|
456
|
+
* Number of tool invocations (optional, for backward compatibility)
|
|
457
|
+
*
|
|
458
|
+
* The count of tool/function calls made during agent execution.
|
|
459
|
+
* Useful for tracking agent behavior and cost analysis.
|
|
460
|
+
*/
|
|
461
|
+
toolCalls?: number;
|
|
462
|
+
}
|
|
463
|
+
/**
|
|
464
|
+
* Success response type - data is T (not null), error is null
|
|
465
|
+
*
|
|
466
|
+
* Use this type with type guards for type-safe access to response data.
|
|
467
|
+
* When a response has status 'success', data is guaranteed to be T (not null).
|
|
468
|
+
*
|
|
469
|
+
* Per PRD 6.4.3: Consistent Structure - all success responses conform
|
|
470
|
+
* to the AgentResponse interface with status 'success'.
|
|
471
|
+
*
|
|
472
|
+
* @template T - The type of data returned on success
|
|
473
|
+
* @see {@link isSuccess} for the type guard that narrows to this type
|
|
474
|
+
*
|
|
475
|
+
* @example
|
|
476
|
+
* ```ts
|
|
477
|
+
* // Type narrowing with type guard
|
|
478
|
+
* if (isSuccess(response)) {
|
|
479
|
+
* console.log(response.data); // TypeScript knows data is T
|
|
480
|
+
* console.log(response.error); // TypeScript knows error is null
|
|
481
|
+
* }
|
|
482
|
+
* ```
|
|
483
|
+
*/
|
|
484
|
+
export type SuccessResponse<T> = AgentResponse<T> & {
|
|
485
|
+
status: 'success';
|
|
486
|
+
};
|
|
487
|
+
/**
|
|
488
|
+
* Error response type - data is null, error is AgentErrorDetails (not null)
|
|
489
|
+
*
|
|
490
|
+
* Use this type with type guards for type-safe access to error details.
|
|
491
|
+
* When a response has status 'error', error is guaranteed to be AgentErrorDetails (not null).
|
|
492
|
+
*
|
|
493
|
+
* Per PRD 6.4.5: Error Responses - failed operations must still return
|
|
494
|
+
* valid JSON with status 'error' and populated error field.
|
|
495
|
+
*
|
|
496
|
+
* @see {@link isError} for the type guard that narrows to this type
|
|
497
|
+
* @see {@link AgentErrorDetails} for error details structure
|
|
498
|
+
*
|
|
499
|
+
* @example
|
|
500
|
+
* ```ts
|
|
501
|
+
* // Type narrowing with type guard
|
|
502
|
+
* if (isError(response)) {
|
|
503
|
+
* console.log(response.error.code); // TypeScript knows error exists
|
|
504
|
+
* console.log(response.data); // TypeScript knows data is null
|
|
505
|
+
* }
|
|
506
|
+
* ```
|
|
507
|
+
*/
|
|
508
|
+
export type ErrorResponse = AgentResponse<null> & {
|
|
509
|
+
status: 'error';
|
|
510
|
+
};
|
|
511
|
+
/**
|
|
512
|
+
* Partial response type - data is T, error is null
|
|
513
|
+
*
|
|
514
|
+
* Used for streaming or incremental results where the agent has not
|
|
515
|
+
* yet completed the full request. Partial responses contain intermediate
|
|
516
|
+
* progress data that may be updated in subsequent responses.
|
|
517
|
+
*
|
|
518
|
+
* Per PRD 6.4.3: Consistent Structure - all partial responses conform
|
|
519
|
+
* to the AgentResponse interface with status 'partial'.
|
|
520
|
+
*
|
|
521
|
+
* @template T - The type of partial data returned
|
|
522
|
+
* @see {@link isPartial} for the type guard that narrows to this type
|
|
523
|
+
*
|
|
524
|
+
* @example
|
|
525
|
+
* ```ts
|
|
526
|
+
* // Type narrowing with type guard
|
|
527
|
+
* if (isPartial(response)) {
|
|
528
|
+
* console.log('Progress:', response.data.completedSteps);
|
|
529
|
+
* // TypeScript knows data is T and error is null
|
|
530
|
+
* }
|
|
531
|
+
* ```
|
|
532
|
+
*/
|
|
533
|
+
export type PartialResponse<T> = AgentResponse<T> & {
|
|
534
|
+
status: 'partial';
|
|
535
|
+
};
|
|
536
|
+
/**
|
|
537
|
+
* Standard error codes for agent responses
|
|
538
|
+
*
|
|
539
|
+
* All error codes use SCREAMING_SNAKE_CASE convention.
|
|
540
|
+
*
|
|
541
|
+
* Per PRD 6.6: Use `INVALID_RESPONSE_FORMAT` for responses that
|
|
542
|
+
* don't conform to the AgentResponse schema. Validation failures
|
|
543
|
+
* should be treated as errors with this code.
|
|
544
|
+
*
|
|
545
|
+
* @see {@link AgentErrorDetails} for error details structure
|
|
546
|
+
* @see {@link createErrorResponse} for factory function
|
|
547
|
+
*
|
|
548
|
+
* @example
|
|
549
|
+
* ```ts
|
|
550
|
+
* import { AGENT_ERROR_CODES, createErrorResponse } from 'groundswell';
|
|
551
|
+
*
|
|
552
|
+
* const error = createErrorResponse(
|
|
553
|
+
* AGENT_ERROR_CODES.VALIDATION_FAILED,
|
|
554
|
+
* 'Invalid input',
|
|
555
|
+
* { field: 'email', value: 'not-an-email' }
|
|
556
|
+
* );
|
|
557
|
+
* ```
|
|
558
|
+
*/
|
|
559
|
+
export declare const AGENT_ERROR_CODES: {
|
|
560
|
+
/**
|
|
561
|
+
* Response not valid JSON or doesn't match AgentResponse schema
|
|
562
|
+
*
|
|
563
|
+
* Per PRD 6.6: Invalid responses must be treated as errors with this code.
|
|
564
|
+
* Use when response validation fails during parsing or schema checking.
|
|
565
|
+
*/
|
|
566
|
+
readonly INVALID_RESPONSE_FORMAT: "INVALID_RESPONSE_FORMAT";
|
|
567
|
+
/**
|
|
568
|
+
* Input validation failed
|
|
569
|
+
*
|
|
570
|
+
* Use when the provided inputs fail validation checks (e.g., wrong type,
|
|
571
|
+
* missing required fields, out-of-range values).
|
|
572
|
+
*/
|
|
573
|
+
readonly VALIDATION_FAILED: "VALIDATION_FAILED";
|
|
574
|
+
/**
|
|
575
|
+
* Agent execution failed
|
|
576
|
+
*
|
|
577
|
+
* Use when the agent execution fails for reasons unrelated to validation
|
|
578
|
+
* or API requests (e.g., compilation errors, runtime exceptions).
|
|
579
|
+
*/
|
|
580
|
+
readonly EXECUTION_FAILED: "EXECUTION_FAILED";
|
|
581
|
+
/**
|
|
582
|
+
* API request to LLM provider failed
|
|
583
|
+
*
|
|
584
|
+
* Use when the HTTP request to the LLM provider fails (e.g., network errors,
|
|
585
|
+
* timeout, rate limiting, provider-side errors).
|
|
586
|
+
*/
|
|
587
|
+
readonly API_REQUEST_FAILED: "API_REQUEST_FAILED";
|
|
588
|
+
/**
|
|
589
|
+
* Tool execution failed
|
|
590
|
+
*
|
|
591
|
+
* Use when a tool/function invocation fails during agent execution
|
|
592
|
+
* (e.g., tool not found, tool returned error, tool timeout).
|
|
593
|
+
*/
|
|
594
|
+
readonly TOOL_EXECUTION_FAILED: "TOOL_EXECUTION_FAILED";
|
|
595
|
+
/**
|
|
596
|
+
* Internal validation or system error
|
|
597
|
+
*
|
|
598
|
+
* Use when an internal validation fails or a system error occurs.
|
|
599
|
+
* This indicates a bug in the code (e.g., factory helper produced invalid response).
|
|
600
|
+
* Non-recoverable because retrying with the same inputs will produce the same error.
|
|
601
|
+
*
|
|
602
|
+
* Per PRD 6.6: Internal validation failures should return this error code.
|
|
603
|
+
*/
|
|
604
|
+
readonly INTERNAL_ERROR: "INTERNAL_ERROR";
|
|
605
|
+
/**
|
|
606
|
+
* Invalid harness/provider configuration
|
|
607
|
+
*
|
|
608
|
+
* Use when a harness receives a configuration it cannot honour — e.g. a model
|
|
609
|
+
* provider it cannot run (ClaudeCodeHarness only runs anthropic/* per PRD §7.8).
|
|
610
|
+
* Non-recoverable: the caller must select a different harness or model, not retry.
|
|
611
|
+
*/
|
|
612
|
+
readonly CONFIG_ERROR: "CONFIG_ERROR";
|
|
613
|
+
};
|
|
614
|
+
/**
|
|
615
|
+
* Creates a success response with data and metadata.
|
|
616
|
+
*
|
|
617
|
+
* ## PRD 6.4 Compliance
|
|
618
|
+
*
|
|
619
|
+
* The returned response satisfies all PRD 6.4 requirements:
|
|
620
|
+
* - Strict JSON parseable by `JSON.parse()` (PRD 6.4.1)
|
|
621
|
+
* - No prose wrapping - pure JSON structure (PRD 6.4.2)
|
|
622
|
+
* - Consistent with AgentResponse interface (PRD 6.4.3)
|
|
623
|
+
* - Uses null instead of undefined (PRD 6.4.4)
|
|
624
|
+
*
|
|
625
|
+
* @template T - The type of the response data
|
|
626
|
+
* @param data - The response data to return
|
|
627
|
+
* @param metadata - Response metadata including agentId and timestamp
|
|
628
|
+
* @returns A success AgentResponse with status 'success', provided data, null error
|
|
629
|
+
*
|
|
630
|
+
* @example <caption>Basic success response (PRD 6.5)</caption>
|
|
631
|
+
* ```ts
|
|
632
|
+
* const response = createSuccessResponse(
|
|
633
|
+
* { result: 'Task completed', artifacts: ['file1.ts', 'file2.ts'] },
|
|
634
|
+
* { agentId: 'agent-abc123', timestamp: 1706140800000, duration: 1523 }
|
|
635
|
+
* );
|
|
636
|
+
*
|
|
637
|
+
* // Guaranteed to be valid JSON (PRD 6.4.1)
|
|
638
|
+
* const jsonString = JSON.stringify(response);
|
|
639
|
+
* const parsed = JSON.parse(jsonString); // Always valid
|
|
640
|
+
* ```
|
|
641
|
+
*
|
|
642
|
+
* @example <caption>Success response with execution metadata</caption>
|
|
643
|
+
* ```ts
|
|
644
|
+
* const response = createSuccessResponse(
|
|
645
|
+
* { items: [1, 2, 3] },
|
|
646
|
+
* {
|
|
647
|
+
* agentId: 'agent-123',
|
|
648
|
+
* timestamp: Date.now(),
|
|
649
|
+
* duration: 1523,
|
|
650
|
+
* requestId: 'req-abc123'
|
|
651
|
+
* }
|
|
652
|
+
* );
|
|
653
|
+
* ```
|
|
654
|
+
*/
|
|
655
|
+
export declare function createSuccessResponse<T>(data: T, metadata: AgentResponseMetadata): AgentResponse<T>;
|
|
656
|
+
/**
|
|
657
|
+
* Creates an error response with error details.
|
|
658
|
+
*
|
|
659
|
+
* ## PRD 6.4 Compliance
|
|
660
|
+
*
|
|
661
|
+
* Per PRD 6.4.5: Failed operations must still return valid JSON with
|
|
662
|
+
* status 'error' and populated error field. This function ensures all
|
|
663
|
+
* error responses conform to the AgentResponse schema.
|
|
664
|
+
*
|
|
665
|
+
* The error code should use SCREAMING_SNAKE_CASE convention and ideally
|
|
666
|
+
* be one of the standard codes from {@link AGENT_ERROR_CODES}.
|
|
667
|
+
*
|
|
668
|
+
* @param code - Machine-readable error code (SCREAMING_SNAKE_CASE)
|
|
669
|
+
* @param message - Human-readable error message
|
|
670
|
+
* @param details - Optional additional error context (use null instead of undefined per PRD 6.4.4)
|
|
671
|
+
* @param recoverable - Whether the error is recoverable (default: false)
|
|
672
|
+
* @returns An error AgentResponse with null data, populated error field
|
|
673
|
+
*
|
|
674
|
+
* @example <caption>Error response (PRD 6.5)</caption>
|
|
675
|
+
* ```ts
|
|
676
|
+
* const response = createErrorResponse(
|
|
677
|
+
* 'EXECUTION_FAILED',
|
|
678
|
+
* 'Failed to compile TypeScript files',
|
|
679
|
+
* {
|
|
680
|
+
* failedFiles: ['src/index.ts'],
|
|
681
|
+
* compilerErrors: ['TS2307: Cannot find module \\'foo\\'']
|
|
682
|
+
* },
|
|
683
|
+
* true
|
|
684
|
+
* );
|
|
685
|
+
* ```
|
|
686
|
+
*
|
|
687
|
+
* @example <caption>Using standard error codes</caption>
|
|
688
|
+
* ```ts
|
|
689
|
+
* import { AGENT_ERROR_CODES, createErrorResponse } from 'groundswell';
|
|
690
|
+
*
|
|
691
|
+
* const response = createErrorResponse(
|
|
692
|
+
* AGENT_ERROR_CODES.VALIDATION_FAILED,
|
|
693
|
+
* 'Invalid input',
|
|
694
|
+
* { field: 'email', value: 'not-an-email' },
|
|
695
|
+
* false
|
|
696
|
+
* );
|
|
697
|
+
* ```
|
|
698
|
+
*/
|
|
699
|
+
export declare function createErrorResponse(code: string, message: string, details?: Record<string, unknown>, recoverable?: boolean): AgentResponse<null>;
|
|
700
|
+
/**
|
|
701
|
+
* Creates a partial response for streaming/incremental results.
|
|
702
|
+
*
|
|
703
|
+
* ## PRD 6.4 Compliance
|
|
704
|
+
*
|
|
705
|
+
* Per PRD 6.4.3: Consistent Structure - partial responses conform to
|
|
706
|
+
* the AgentResponse interface with status 'partial'.
|
|
707
|
+
*
|
|
708
|
+
* Partial responses are used for streaming or incremental results where
|
|
709
|
+
* the agent has not yet completed the full request. They contain intermediate
|
|
710
|
+
* progress data that may be updated in subsequent responses.
|
|
711
|
+
*
|
|
712
|
+
* @template T - The type of the partial response data
|
|
713
|
+
* @param data - The partial response data with progress information
|
|
714
|
+
* @returns A partial AgentResponse with status 'partial', data, null error
|
|
715
|
+
*
|
|
716
|
+
* @example <caption>Partial response (PRD 6.5)</caption>
|
|
717
|
+
* ```ts
|
|
718
|
+
* const response = createPartialResponse({
|
|
719
|
+
* completedSteps: 3,
|
|
720
|
+
* totalSteps: 5,
|
|
721
|
+
* intermediateResult: { progress: 'processing file2.ts' }
|
|
722
|
+
* });
|
|
723
|
+
*
|
|
724
|
+
* // Later, send another partial response with updated progress
|
|
725
|
+
* const updatedResponse = createPartialResponse({
|
|
726
|
+
* completedSteps: 4,
|
|
727
|
+
* totalSteps: 5,
|
|
728
|
+
* intermediateResult: { progress: 'processing file3.ts' }
|
|
729
|
+
* });
|
|
730
|
+
* ```
|
|
731
|
+
*
|
|
732
|
+
* @example <caption>Streaming data chunks</caption>
|
|
733
|
+
* ```ts
|
|
734
|
+
* const chunk = createPartialResponse({
|
|
735
|
+
* chunk: 'Hello',
|
|
736
|
+
* isComplete: false
|
|
737
|
+
* });
|
|
738
|
+
* ```
|
|
739
|
+
*/
|
|
740
|
+
export declare function createPartialResponse<T>(data: T): AgentResponse<T>;
|
|
741
|
+
/**
|
|
742
|
+
* Type guard for success responses.
|
|
743
|
+
* Narrows the type to SuccessResponse<T> where data is T (not null).
|
|
744
|
+
*
|
|
745
|
+
* @param response - The response to check
|
|
746
|
+
* @returns True if the response status is 'success'
|
|
747
|
+
*
|
|
748
|
+
* @example
|
|
749
|
+
* ```ts
|
|
750
|
+
* if (isSuccess(response)) {
|
|
751
|
+
* console.log(response.data); // TypeScript knows data is T
|
|
752
|
+
* }
|
|
753
|
+
* ```
|
|
754
|
+
*/
|
|
755
|
+
export declare function isSuccess<T>(response: AgentResponse<T>): response is SuccessResponse<T>;
|
|
756
|
+
/**
|
|
757
|
+
* Type guard for error responses.
|
|
758
|
+
* Narrows the type to ErrorResponse where error is AgentErrorDetails (not null).
|
|
759
|
+
*
|
|
760
|
+
* @param response - The response to check
|
|
761
|
+
* @returns True if the response status is 'error'
|
|
762
|
+
*
|
|
763
|
+
* @example
|
|
764
|
+
* ```ts
|
|
765
|
+
* if (isError(response)) {
|
|
766
|
+
* console.log(response.error.code); // TypeScript knows error exists
|
|
767
|
+
* }
|
|
768
|
+
* ```
|
|
769
|
+
*/
|
|
770
|
+
export declare function isError<T>(response: AgentResponse<T>): response is ErrorResponse;
|
|
771
|
+
/**
|
|
772
|
+
* Type guard for partial responses.
|
|
773
|
+
* Narrows the type to PartialResponse<T>.
|
|
774
|
+
*
|
|
775
|
+
* @param response - The response to check
|
|
776
|
+
* @returns True if the response status is 'partial'
|
|
777
|
+
*
|
|
778
|
+
* @example
|
|
779
|
+
* ```ts
|
|
780
|
+
* if (isPartial(response)) {
|
|
781
|
+
* console.log('Partial result:', response.data);
|
|
782
|
+
* }
|
|
783
|
+
* ```
|
|
784
|
+
*/
|
|
785
|
+
export declare function isPartial<T>(response: AgentResponse<T>): response is PartialResponse<T>;
|
|
786
|
+
/**
|
|
787
|
+
* Zod schema for AgentResponseStatus enum
|
|
788
|
+
* Validates status values: 'success' | 'error' | 'partial'
|
|
789
|
+
*
|
|
790
|
+
* @example
|
|
791
|
+
* ```ts
|
|
792
|
+
* AgentResponseStatusSchema.parse('success'); // ✓
|
|
793
|
+
* AgentResponseStatusSchema.parse('invalid'); // ✗ ZodError
|
|
794
|
+
* ```
|
|
795
|
+
*/
|
|
796
|
+
export declare const AgentResponseStatusSchema: z.ZodEnum<["success", "error", "partial"]>;
|
|
797
|
+
/**
|
|
798
|
+
* Zod schema for AgentErrorDetails interface
|
|
799
|
+
* Validates error details with null-over-undefined handling
|
|
800
|
+
*
|
|
801
|
+
* Per PRD 6.4.4: Use null for absent values, not undefined
|
|
802
|
+
*/
|
|
803
|
+
export declare const AgentErrorDetailsSchema: z.ZodObject<{
|
|
804
|
+
/** Machine-readable error code (SCREAMING_SNAKE_CASE) */
|
|
805
|
+
code: z.ZodString;
|
|
806
|
+
/** Human-readable error description */
|
|
807
|
+
message: z.ZodString;
|
|
808
|
+
/** Additional error context - null if no details (PRD 6.4.4) */
|
|
809
|
+
details: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
810
|
+
/** Whether the error is recoverable (can retry) */
|
|
811
|
+
recoverable: z.ZodBoolean;
|
|
812
|
+
}, "strip", z.ZodTypeAny, {
|
|
813
|
+
code: string;
|
|
814
|
+
message: string;
|
|
815
|
+
details: Record<string, unknown> | null;
|
|
816
|
+
recoverable: boolean;
|
|
817
|
+
}, {
|
|
818
|
+
code: string;
|
|
819
|
+
message: string;
|
|
820
|
+
details: Record<string, unknown> | null;
|
|
821
|
+
recoverable: boolean;
|
|
822
|
+
}>;
|
|
823
|
+
/**
|
|
824
|
+
* Zod schema for AgentResponseMetadata interface
|
|
825
|
+
* Validates response metadata including agent ID and timestamp
|
|
826
|
+
*/
|
|
827
|
+
export declare const AgentResponseMetadataSchema: z.ZodObject<{
|
|
828
|
+
/** Agent identifier */
|
|
829
|
+
agentId: z.ZodString;
|
|
830
|
+
/** Unix timestamp in milliseconds */
|
|
831
|
+
timestamp: z.ZodNumber;
|
|
832
|
+
/** Execution duration in milliseconds (optional) */
|
|
833
|
+
duration: z.ZodOptional<z.ZodNumber>;
|
|
834
|
+
/** Request correlation ID (optional) */
|
|
835
|
+
requestId: z.ZodOptional<z.ZodString>;
|
|
836
|
+
/** Token usage from API (optional - passthrough for complex type) */
|
|
837
|
+
usage: z.ZodOptional<z.ZodUnknown>;
|
|
838
|
+
/** Number of tool invocations (optional) */
|
|
839
|
+
toolCalls: z.ZodOptional<z.ZodNumber>;
|
|
840
|
+
}, "strip", z.ZodTypeAny, {
|
|
841
|
+
agentId: string;
|
|
842
|
+
timestamp: number;
|
|
843
|
+
usage?: unknown;
|
|
844
|
+
duration?: number | undefined;
|
|
845
|
+
requestId?: string | undefined;
|
|
846
|
+
toolCalls?: number | undefined;
|
|
847
|
+
}, {
|
|
848
|
+
agentId: string;
|
|
849
|
+
timestamp: number;
|
|
850
|
+
usage?: unknown;
|
|
851
|
+
duration?: number | undefined;
|
|
852
|
+
requestId?: string | undefined;
|
|
853
|
+
toolCalls?: number | undefined;
|
|
854
|
+
}>;
|
|
855
|
+
/**
|
|
856
|
+
* Zod schema factory for AgentResponse<T> discriminated union
|
|
857
|
+
* Creates a schema that validates responses based on status discriminator
|
|
858
|
+
*
|
|
859
|
+
* @template T - The Zod schema for the data type
|
|
860
|
+
* @param dataSchema - Zod schema for the response data
|
|
861
|
+
* @returns A discriminated union schema for AgentResponse
|
|
862
|
+
*
|
|
863
|
+
* @example
|
|
864
|
+
* ```ts
|
|
865
|
+
* // Create schema for string responses
|
|
866
|
+
* const StringResponseSchema = AgentResponseSchema(z.object({ result: z.string() }));
|
|
867
|
+
*
|
|
868
|
+
* // Validate a success response
|
|
869
|
+
* const result = StringResponseSchema.safeParse({
|
|
870
|
+
* status: 'success',
|
|
871
|
+
* data: { result: 'hello' },
|
|
872
|
+
* error: null,
|
|
873
|
+
* metadata: { agentId: 'test', timestamp: Date.now() }
|
|
874
|
+
* });
|
|
875
|
+
* ```
|
|
876
|
+
*/
|
|
877
|
+
export declare function AgentResponseSchema<T extends z.ZodTypeAny>(dataSchema: T): z.ZodEffects<z.ZodDiscriminatedUnion<"status", [z.ZodObject<{
|
|
878
|
+
status: z.ZodLiteral<"success">;
|
|
879
|
+
data: T;
|
|
880
|
+
error: z.ZodNull;
|
|
881
|
+
metadata: z.ZodOptional<z.ZodObject<{
|
|
882
|
+
/** Agent identifier */
|
|
883
|
+
agentId: z.ZodString;
|
|
884
|
+
/** Unix timestamp in milliseconds */
|
|
885
|
+
timestamp: z.ZodNumber;
|
|
886
|
+
/** Execution duration in milliseconds (optional) */
|
|
887
|
+
duration: z.ZodOptional<z.ZodNumber>;
|
|
888
|
+
/** Request correlation ID (optional) */
|
|
889
|
+
requestId: z.ZodOptional<z.ZodString>;
|
|
890
|
+
/** Token usage from API (optional - passthrough for complex type) */
|
|
891
|
+
usage: z.ZodOptional<z.ZodUnknown>;
|
|
892
|
+
/** Number of tool invocations (optional) */
|
|
893
|
+
toolCalls: z.ZodOptional<z.ZodNumber>;
|
|
894
|
+
}, "strip", z.ZodTypeAny, {
|
|
895
|
+
agentId: string;
|
|
896
|
+
timestamp: number;
|
|
897
|
+
usage?: unknown;
|
|
898
|
+
duration?: number | undefined;
|
|
899
|
+
requestId?: string | undefined;
|
|
900
|
+
toolCalls?: number | undefined;
|
|
901
|
+
}, {
|
|
902
|
+
agentId: string;
|
|
903
|
+
timestamp: number;
|
|
904
|
+
usage?: unknown;
|
|
905
|
+
duration?: number | undefined;
|
|
906
|
+
requestId?: string | undefined;
|
|
907
|
+
toolCalls?: number | undefined;
|
|
908
|
+
}>>;
|
|
909
|
+
}, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
|
|
910
|
+
status: z.ZodLiteral<"success">;
|
|
911
|
+
data: T;
|
|
912
|
+
error: z.ZodNull;
|
|
913
|
+
metadata: z.ZodOptional<z.ZodObject<{
|
|
914
|
+
/** Agent identifier */
|
|
915
|
+
agentId: z.ZodString;
|
|
916
|
+
/** Unix timestamp in milliseconds */
|
|
917
|
+
timestamp: z.ZodNumber;
|
|
918
|
+
/** Execution duration in milliseconds (optional) */
|
|
919
|
+
duration: z.ZodOptional<z.ZodNumber>;
|
|
920
|
+
/** Request correlation ID (optional) */
|
|
921
|
+
requestId: z.ZodOptional<z.ZodString>;
|
|
922
|
+
/** Token usage from API (optional - passthrough for complex type) */
|
|
923
|
+
usage: z.ZodOptional<z.ZodUnknown>;
|
|
924
|
+
/** Number of tool invocations (optional) */
|
|
925
|
+
toolCalls: z.ZodOptional<z.ZodNumber>;
|
|
926
|
+
}, "strip", z.ZodTypeAny, {
|
|
927
|
+
agentId: string;
|
|
928
|
+
timestamp: number;
|
|
929
|
+
usage?: unknown;
|
|
930
|
+
duration?: number | undefined;
|
|
931
|
+
requestId?: string | undefined;
|
|
932
|
+
toolCalls?: number | undefined;
|
|
933
|
+
}, {
|
|
934
|
+
agentId: string;
|
|
935
|
+
timestamp: number;
|
|
936
|
+
usage?: unknown;
|
|
937
|
+
duration?: number | undefined;
|
|
938
|
+
requestId?: string | undefined;
|
|
939
|
+
toolCalls?: number | undefined;
|
|
940
|
+
}>>;
|
|
941
|
+
}>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<{
|
|
942
|
+
status: z.ZodLiteral<"success">;
|
|
943
|
+
data: T;
|
|
944
|
+
error: z.ZodNull;
|
|
945
|
+
metadata: z.ZodOptional<z.ZodObject<{
|
|
946
|
+
/** Agent identifier */
|
|
947
|
+
agentId: z.ZodString;
|
|
948
|
+
/** Unix timestamp in milliseconds */
|
|
949
|
+
timestamp: z.ZodNumber;
|
|
950
|
+
/** Execution duration in milliseconds (optional) */
|
|
951
|
+
duration: z.ZodOptional<z.ZodNumber>;
|
|
952
|
+
/** Request correlation ID (optional) */
|
|
953
|
+
requestId: z.ZodOptional<z.ZodString>;
|
|
954
|
+
/** Token usage from API (optional - passthrough for complex type) */
|
|
955
|
+
usage: z.ZodOptional<z.ZodUnknown>;
|
|
956
|
+
/** Number of tool invocations (optional) */
|
|
957
|
+
toolCalls: z.ZodOptional<z.ZodNumber>;
|
|
958
|
+
}, "strip", z.ZodTypeAny, {
|
|
959
|
+
agentId: string;
|
|
960
|
+
timestamp: number;
|
|
961
|
+
usage?: unknown;
|
|
962
|
+
duration?: number | undefined;
|
|
963
|
+
requestId?: string | undefined;
|
|
964
|
+
toolCalls?: number | undefined;
|
|
965
|
+
}, {
|
|
966
|
+
agentId: string;
|
|
967
|
+
timestamp: number;
|
|
968
|
+
usage?: unknown;
|
|
969
|
+
duration?: number | undefined;
|
|
970
|
+
requestId?: string | undefined;
|
|
971
|
+
toolCalls?: number | undefined;
|
|
972
|
+
}>>;
|
|
973
|
+
}> extends infer T_2 ? { [k_1 in keyof T_2]: T_2[k_1]; } : never>, z.ZodObject<{
|
|
974
|
+
status: z.ZodLiteral<"error">;
|
|
975
|
+
data: z.ZodNull;
|
|
976
|
+
error: z.ZodObject<{
|
|
977
|
+
/** Machine-readable error code (SCREAMING_SNAKE_CASE) */
|
|
978
|
+
code: z.ZodString;
|
|
979
|
+
/** Human-readable error description */
|
|
980
|
+
message: z.ZodString;
|
|
981
|
+
/** Additional error context - null if no details (PRD 6.4.4) */
|
|
982
|
+
details: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
983
|
+
/** Whether the error is recoverable (can retry) */
|
|
984
|
+
recoverable: z.ZodBoolean;
|
|
985
|
+
}, "strip", z.ZodTypeAny, {
|
|
986
|
+
code: string;
|
|
987
|
+
message: string;
|
|
988
|
+
details: Record<string, unknown> | null;
|
|
989
|
+
recoverable: boolean;
|
|
990
|
+
}, {
|
|
991
|
+
code: string;
|
|
992
|
+
message: string;
|
|
993
|
+
details: Record<string, unknown> | null;
|
|
994
|
+
recoverable: boolean;
|
|
995
|
+
}>;
|
|
996
|
+
metadata: z.ZodOptional<z.ZodObject<{
|
|
997
|
+
/** Agent identifier */
|
|
998
|
+
agentId: z.ZodString;
|
|
999
|
+
/** Unix timestamp in milliseconds */
|
|
1000
|
+
timestamp: z.ZodNumber;
|
|
1001
|
+
/** Execution duration in milliseconds (optional) */
|
|
1002
|
+
duration: z.ZodOptional<z.ZodNumber>;
|
|
1003
|
+
/** Request correlation ID (optional) */
|
|
1004
|
+
requestId: z.ZodOptional<z.ZodString>;
|
|
1005
|
+
/** Token usage from API (optional - passthrough for complex type) */
|
|
1006
|
+
usage: z.ZodOptional<z.ZodUnknown>;
|
|
1007
|
+
/** Number of tool invocations (optional) */
|
|
1008
|
+
toolCalls: z.ZodOptional<z.ZodNumber>;
|
|
1009
|
+
}, "strip", z.ZodTypeAny, {
|
|
1010
|
+
agentId: string;
|
|
1011
|
+
timestamp: number;
|
|
1012
|
+
usage?: unknown;
|
|
1013
|
+
duration?: number | undefined;
|
|
1014
|
+
requestId?: string | undefined;
|
|
1015
|
+
toolCalls?: number | undefined;
|
|
1016
|
+
}, {
|
|
1017
|
+
agentId: string;
|
|
1018
|
+
timestamp: number;
|
|
1019
|
+
usage?: unknown;
|
|
1020
|
+
duration?: number | undefined;
|
|
1021
|
+
requestId?: string | undefined;
|
|
1022
|
+
toolCalls?: number | undefined;
|
|
1023
|
+
}>>;
|
|
1024
|
+
}, "strip", z.ZodTypeAny, {
|
|
1025
|
+
error: {
|
|
1026
|
+
code: string;
|
|
1027
|
+
message: string;
|
|
1028
|
+
details: Record<string, unknown> | null;
|
|
1029
|
+
recoverable: boolean;
|
|
1030
|
+
};
|
|
1031
|
+
status: "error";
|
|
1032
|
+
data: null;
|
|
1033
|
+
metadata?: {
|
|
1034
|
+
agentId: string;
|
|
1035
|
+
timestamp: number;
|
|
1036
|
+
usage?: unknown;
|
|
1037
|
+
duration?: number | undefined;
|
|
1038
|
+
requestId?: string | undefined;
|
|
1039
|
+
toolCalls?: number | undefined;
|
|
1040
|
+
} | undefined;
|
|
1041
|
+
}, {
|
|
1042
|
+
error: {
|
|
1043
|
+
code: string;
|
|
1044
|
+
message: string;
|
|
1045
|
+
details: Record<string, unknown> | null;
|
|
1046
|
+
recoverable: boolean;
|
|
1047
|
+
};
|
|
1048
|
+
status: "error";
|
|
1049
|
+
data: null;
|
|
1050
|
+
metadata?: {
|
|
1051
|
+
agentId: string;
|
|
1052
|
+
timestamp: number;
|
|
1053
|
+
usage?: unknown;
|
|
1054
|
+
duration?: number | undefined;
|
|
1055
|
+
requestId?: string | undefined;
|
|
1056
|
+
toolCalls?: number | undefined;
|
|
1057
|
+
} | undefined;
|
|
1058
|
+
}>, z.ZodObject<{
|
|
1059
|
+
status: z.ZodLiteral<"partial">;
|
|
1060
|
+
data: T;
|
|
1061
|
+
error: z.ZodNull;
|
|
1062
|
+
metadata: z.ZodOptional<z.ZodObject<{
|
|
1063
|
+
/** Agent identifier */
|
|
1064
|
+
agentId: z.ZodString;
|
|
1065
|
+
/** Unix timestamp in milliseconds */
|
|
1066
|
+
timestamp: z.ZodNumber;
|
|
1067
|
+
/** Execution duration in milliseconds (optional) */
|
|
1068
|
+
duration: z.ZodOptional<z.ZodNumber>;
|
|
1069
|
+
/** Request correlation ID (optional) */
|
|
1070
|
+
requestId: z.ZodOptional<z.ZodString>;
|
|
1071
|
+
/** Token usage from API (optional - passthrough for complex type) */
|
|
1072
|
+
usage: z.ZodOptional<z.ZodUnknown>;
|
|
1073
|
+
/** Number of tool invocations (optional) */
|
|
1074
|
+
toolCalls: z.ZodOptional<z.ZodNumber>;
|
|
1075
|
+
}, "strip", z.ZodTypeAny, {
|
|
1076
|
+
agentId: string;
|
|
1077
|
+
timestamp: number;
|
|
1078
|
+
usage?: unknown;
|
|
1079
|
+
duration?: number | undefined;
|
|
1080
|
+
requestId?: string | undefined;
|
|
1081
|
+
toolCalls?: number | undefined;
|
|
1082
|
+
}, {
|
|
1083
|
+
agentId: string;
|
|
1084
|
+
timestamp: number;
|
|
1085
|
+
usage?: unknown;
|
|
1086
|
+
duration?: number | undefined;
|
|
1087
|
+
requestId?: string | undefined;
|
|
1088
|
+
toolCalls?: number | undefined;
|
|
1089
|
+
}>>;
|
|
1090
|
+
}, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
|
|
1091
|
+
status: z.ZodLiteral<"partial">;
|
|
1092
|
+
data: T;
|
|
1093
|
+
error: z.ZodNull;
|
|
1094
|
+
metadata: z.ZodOptional<z.ZodObject<{
|
|
1095
|
+
/** Agent identifier */
|
|
1096
|
+
agentId: z.ZodString;
|
|
1097
|
+
/** Unix timestamp in milliseconds */
|
|
1098
|
+
timestamp: z.ZodNumber;
|
|
1099
|
+
/** Execution duration in milliseconds (optional) */
|
|
1100
|
+
duration: z.ZodOptional<z.ZodNumber>;
|
|
1101
|
+
/** Request correlation ID (optional) */
|
|
1102
|
+
requestId: z.ZodOptional<z.ZodString>;
|
|
1103
|
+
/** Token usage from API (optional - passthrough for complex type) */
|
|
1104
|
+
usage: z.ZodOptional<z.ZodUnknown>;
|
|
1105
|
+
/** Number of tool invocations (optional) */
|
|
1106
|
+
toolCalls: z.ZodOptional<z.ZodNumber>;
|
|
1107
|
+
}, "strip", z.ZodTypeAny, {
|
|
1108
|
+
agentId: string;
|
|
1109
|
+
timestamp: number;
|
|
1110
|
+
usage?: unknown;
|
|
1111
|
+
duration?: number | undefined;
|
|
1112
|
+
requestId?: string | undefined;
|
|
1113
|
+
toolCalls?: number | undefined;
|
|
1114
|
+
}, {
|
|
1115
|
+
agentId: string;
|
|
1116
|
+
timestamp: number;
|
|
1117
|
+
usage?: unknown;
|
|
1118
|
+
duration?: number | undefined;
|
|
1119
|
+
requestId?: string | undefined;
|
|
1120
|
+
toolCalls?: number | undefined;
|
|
1121
|
+
}>>;
|
|
1122
|
+
}>, any> extends infer T_3 ? { [k_2 in keyof T_3]: T_3[k_2]; } : never, z.baseObjectInputType<{
|
|
1123
|
+
status: z.ZodLiteral<"partial">;
|
|
1124
|
+
data: T;
|
|
1125
|
+
error: z.ZodNull;
|
|
1126
|
+
metadata: z.ZodOptional<z.ZodObject<{
|
|
1127
|
+
/** Agent identifier */
|
|
1128
|
+
agentId: z.ZodString;
|
|
1129
|
+
/** Unix timestamp in milliseconds */
|
|
1130
|
+
timestamp: z.ZodNumber;
|
|
1131
|
+
/** Execution duration in milliseconds (optional) */
|
|
1132
|
+
duration: z.ZodOptional<z.ZodNumber>;
|
|
1133
|
+
/** Request correlation ID (optional) */
|
|
1134
|
+
requestId: z.ZodOptional<z.ZodString>;
|
|
1135
|
+
/** Token usage from API (optional - passthrough for complex type) */
|
|
1136
|
+
usage: z.ZodOptional<z.ZodUnknown>;
|
|
1137
|
+
/** Number of tool invocations (optional) */
|
|
1138
|
+
toolCalls: z.ZodOptional<z.ZodNumber>;
|
|
1139
|
+
}, "strip", z.ZodTypeAny, {
|
|
1140
|
+
agentId: string;
|
|
1141
|
+
timestamp: number;
|
|
1142
|
+
usage?: unknown;
|
|
1143
|
+
duration?: number | undefined;
|
|
1144
|
+
requestId?: string | undefined;
|
|
1145
|
+
toolCalls?: number | undefined;
|
|
1146
|
+
}, {
|
|
1147
|
+
agentId: string;
|
|
1148
|
+
timestamp: number;
|
|
1149
|
+
usage?: unknown;
|
|
1150
|
+
duration?: number | undefined;
|
|
1151
|
+
requestId?: string | undefined;
|
|
1152
|
+
toolCalls?: number | undefined;
|
|
1153
|
+
}>>;
|
|
1154
|
+
}> extends infer T_4 ? { [k_3 in keyof T_4]: T_4[k_3]; } : never>]>, (z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
|
|
1155
|
+
status: z.ZodLiteral<"success">;
|
|
1156
|
+
data: T;
|
|
1157
|
+
error: z.ZodNull;
|
|
1158
|
+
metadata: z.ZodOptional<z.ZodObject<{
|
|
1159
|
+
/** Agent identifier */
|
|
1160
|
+
agentId: z.ZodString;
|
|
1161
|
+
/** Unix timestamp in milliseconds */
|
|
1162
|
+
timestamp: z.ZodNumber;
|
|
1163
|
+
/** Execution duration in milliseconds (optional) */
|
|
1164
|
+
duration: z.ZodOptional<z.ZodNumber>;
|
|
1165
|
+
/** Request correlation ID (optional) */
|
|
1166
|
+
requestId: z.ZodOptional<z.ZodString>;
|
|
1167
|
+
/** Token usage from API (optional - passthrough for complex type) */
|
|
1168
|
+
usage: z.ZodOptional<z.ZodUnknown>;
|
|
1169
|
+
/** Number of tool invocations (optional) */
|
|
1170
|
+
toolCalls: z.ZodOptional<z.ZodNumber>;
|
|
1171
|
+
}, "strip", z.ZodTypeAny, {
|
|
1172
|
+
agentId: string;
|
|
1173
|
+
timestamp: number;
|
|
1174
|
+
usage?: unknown;
|
|
1175
|
+
duration?: number | undefined;
|
|
1176
|
+
requestId?: string | undefined;
|
|
1177
|
+
toolCalls?: number | undefined;
|
|
1178
|
+
}, {
|
|
1179
|
+
agentId: string;
|
|
1180
|
+
timestamp: number;
|
|
1181
|
+
usage?: unknown;
|
|
1182
|
+
duration?: number | undefined;
|
|
1183
|
+
requestId?: string | undefined;
|
|
1184
|
+
toolCalls?: number | undefined;
|
|
1185
|
+
}>>;
|
|
1186
|
+
}>, any> extends infer T_5 ? { [k in keyof T_5]: T_5[k]; } : never) | {
|
|
1187
|
+
error: {
|
|
1188
|
+
code: string;
|
|
1189
|
+
message: string;
|
|
1190
|
+
details: Record<string, unknown> | null;
|
|
1191
|
+
recoverable: boolean;
|
|
1192
|
+
};
|
|
1193
|
+
status: "error";
|
|
1194
|
+
data: null;
|
|
1195
|
+
metadata?: {
|
|
1196
|
+
agentId: string;
|
|
1197
|
+
timestamp: number;
|
|
1198
|
+
usage?: unknown;
|
|
1199
|
+
duration?: number | undefined;
|
|
1200
|
+
requestId?: string | undefined;
|
|
1201
|
+
toolCalls?: number | undefined;
|
|
1202
|
+
} | undefined;
|
|
1203
|
+
} | (z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
|
|
1204
|
+
status: z.ZodLiteral<"partial">;
|
|
1205
|
+
data: T;
|
|
1206
|
+
error: z.ZodNull;
|
|
1207
|
+
metadata: z.ZodOptional<z.ZodObject<{
|
|
1208
|
+
/** Agent identifier */
|
|
1209
|
+
agentId: z.ZodString;
|
|
1210
|
+
/** Unix timestamp in milliseconds */
|
|
1211
|
+
timestamp: z.ZodNumber;
|
|
1212
|
+
/** Execution duration in milliseconds (optional) */
|
|
1213
|
+
duration: z.ZodOptional<z.ZodNumber>;
|
|
1214
|
+
/** Request correlation ID (optional) */
|
|
1215
|
+
requestId: z.ZodOptional<z.ZodString>;
|
|
1216
|
+
/** Token usage from API (optional - passthrough for complex type) */
|
|
1217
|
+
usage: z.ZodOptional<z.ZodUnknown>;
|
|
1218
|
+
/** Number of tool invocations (optional) */
|
|
1219
|
+
toolCalls: z.ZodOptional<z.ZodNumber>;
|
|
1220
|
+
}, "strip", z.ZodTypeAny, {
|
|
1221
|
+
agentId: string;
|
|
1222
|
+
timestamp: number;
|
|
1223
|
+
usage?: unknown;
|
|
1224
|
+
duration?: number | undefined;
|
|
1225
|
+
requestId?: string | undefined;
|
|
1226
|
+
toolCalls?: number | undefined;
|
|
1227
|
+
}, {
|
|
1228
|
+
agentId: string;
|
|
1229
|
+
timestamp: number;
|
|
1230
|
+
usage?: unknown;
|
|
1231
|
+
duration?: number | undefined;
|
|
1232
|
+
requestId?: string | undefined;
|
|
1233
|
+
toolCalls?: number | undefined;
|
|
1234
|
+
}>>;
|
|
1235
|
+
}>, any> extends infer T_6 ? { [k_2 in keyof T_6]: T_6[k_2]; } : never), (z.baseObjectInputType<{
|
|
1236
|
+
status: z.ZodLiteral<"success">;
|
|
1237
|
+
data: T;
|
|
1238
|
+
error: z.ZodNull;
|
|
1239
|
+
metadata: z.ZodOptional<z.ZodObject<{
|
|
1240
|
+
/** Agent identifier */
|
|
1241
|
+
agentId: z.ZodString;
|
|
1242
|
+
/** Unix timestamp in milliseconds */
|
|
1243
|
+
timestamp: z.ZodNumber;
|
|
1244
|
+
/** Execution duration in milliseconds (optional) */
|
|
1245
|
+
duration: z.ZodOptional<z.ZodNumber>;
|
|
1246
|
+
/** Request correlation ID (optional) */
|
|
1247
|
+
requestId: z.ZodOptional<z.ZodString>;
|
|
1248
|
+
/** Token usage from API (optional - passthrough for complex type) */
|
|
1249
|
+
usage: z.ZodOptional<z.ZodUnknown>;
|
|
1250
|
+
/** Number of tool invocations (optional) */
|
|
1251
|
+
toolCalls: z.ZodOptional<z.ZodNumber>;
|
|
1252
|
+
}, "strip", z.ZodTypeAny, {
|
|
1253
|
+
agentId: string;
|
|
1254
|
+
timestamp: number;
|
|
1255
|
+
usage?: unknown;
|
|
1256
|
+
duration?: number | undefined;
|
|
1257
|
+
requestId?: string | undefined;
|
|
1258
|
+
toolCalls?: number | undefined;
|
|
1259
|
+
}, {
|
|
1260
|
+
agentId: string;
|
|
1261
|
+
timestamp: number;
|
|
1262
|
+
usage?: unknown;
|
|
1263
|
+
duration?: number | undefined;
|
|
1264
|
+
requestId?: string | undefined;
|
|
1265
|
+
toolCalls?: number | undefined;
|
|
1266
|
+
}>>;
|
|
1267
|
+
}> extends infer T_7 ? { [k_1 in keyof T_7]: T_7[k_1]; } : never) | {
|
|
1268
|
+
error: {
|
|
1269
|
+
code: string;
|
|
1270
|
+
message: string;
|
|
1271
|
+
details: Record<string, unknown> | null;
|
|
1272
|
+
recoverable: boolean;
|
|
1273
|
+
};
|
|
1274
|
+
status: "error";
|
|
1275
|
+
data: null;
|
|
1276
|
+
metadata?: {
|
|
1277
|
+
agentId: string;
|
|
1278
|
+
timestamp: number;
|
|
1279
|
+
usage?: unknown;
|
|
1280
|
+
duration?: number | undefined;
|
|
1281
|
+
requestId?: string | undefined;
|
|
1282
|
+
toolCalls?: number | undefined;
|
|
1283
|
+
} | undefined;
|
|
1284
|
+
} | (z.baseObjectInputType<{
|
|
1285
|
+
status: z.ZodLiteral<"partial">;
|
|
1286
|
+
data: T;
|
|
1287
|
+
error: z.ZodNull;
|
|
1288
|
+
metadata: z.ZodOptional<z.ZodObject<{
|
|
1289
|
+
/** Agent identifier */
|
|
1290
|
+
agentId: z.ZodString;
|
|
1291
|
+
/** Unix timestamp in milliseconds */
|
|
1292
|
+
timestamp: z.ZodNumber;
|
|
1293
|
+
/** Execution duration in milliseconds (optional) */
|
|
1294
|
+
duration: z.ZodOptional<z.ZodNumber>;
|
|
1295
|
+
/** Request correlation ID (optional) */
|
|
1296
|
+
requestId: z.ZodOptional<z.ZodString>;
|
|
1297
|
+
/** Token usage from API (optional - passthrough for complex type) */
|
|
1298
|
+
usage: z.ZodOptional<z.ZodUnknown>;
|
|
1299
|
+
/** Number of tool invocations (optional) */
|
|
1300
|
+
toolCalls: z.ZodOptional<z.ZodNumber>;
|
|
1301
|
+
}, "strip", z.ZodTypeAny, {
|
|
1302
|
+
agentId: string;
|
|
1303
|
+
timestamp: number;
|
|
1304
|
+
usage?: unknown;
|
|
1305
|
+
duration?: number | undefined;
|
|
1306
|
+
requestId?: string | undefined;
|
|
1307
|
+
toolCalls?: number | undefined;
|
|
1308
|
+
}, {
|
|
1309
|
+
agentId: string;
|
|
1310
|
+
timestamp: number;
|
|
1311
|
+
usage?: unknown;
|
|
1312
|
+
duration?: number | undefined;
|
|
1313
|
+
requestId?: string | undefined;
|
|
1314
|
+
toolCalls?: number | undefined;
|
|
1315
|
+
}>>;
|
|
1316
|
+
}> extends infer T_8 ? { [k_3 in keyof T_8]: T_8[k_3]; } : never)>;
|
|
1317
|
+
//# sourceMappingURL=agent.d.ts.map
|