groundswell 0.0.2 → 0.0.3
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/dist/__tests__/adversarial/attachChild-performance.test.d.ts +16 -0
- package/dist/__tests__/adversarial/attachChild-performance.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/attachChild-performance.test.js +187 -0
- package/dist/__tests__/adversarial/attachChild-performance.test.js.map +1 -0
- package/dist/__tests__/adversarial/circular-reference.test.d.ts +13 -0
- package/dist/__tests__/adversarial/circular-reference.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/circular-reference.test.js +92 -0
- package/dist/__tests__/adversarial/circular-reference.test.js.map +1 -0
- package/dist/__tests__/adversarial/complex-circular-reference.test.d.ts +16 -0
- package/dist/__tests__/adversarial/complex-circular-reference.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/complex-circular-reference.test.js +127 -0
- package/dist/__tests__/adversarial/complex-circular-reference.test.js.map +1 -0
- package/dist/__tests__/adversarial/concurrent-task-failures.test.d.ts +21 -0
- package/dist/__tests__/adversarial/concurrent-task-failures.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/concurrent-task-failures.test.js +667 -0
- package/dist/__tests__/adversarial/concurrent-task-failures.test.js.map +1 -0
- package/dist/__tests__/adversarial/deep-analysis.test.d.ts +6 -0
- package/dist/__tests__/adversarial/deep-analysis.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/deep-analysis.test.js +877 -0
- package/dist/__tests__/adversarial/deep-analysis.test.js.map +1 -0
- package/dist/__tests__/adversarial/deep-hierarchy-stress.test.d.ts +13 -0
- package/dist/__tests__/adversarial/deep-hierarchy-stress.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/deep-hierarchy-stress.test.js +186 -0
- package/dist/__tests__/adversarial/deep-hierarchy-stress.test.js.map +1 -0
- package/dist/__tests__/adversarial/e2e-prd-validation.test.d.ts +6 -0
- package/dist/__tests__/adversarial/e2e-prd-validation.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/e2e-prd-validation.test.js +626 -0
- package/dist/__tests__/adversarial/e2e-prd-validation.test.js.map +1 -0
- package/dist/__tests__/adversarial/edge-case.test.d.ts +6 -0
- package/dist/__tests__/adversarial/edge-case.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/edge-case.test.js +857 -0
- package/dist/__tests__/adversarial/edge-case.test.js.map +1 -0
- package/dist/__tests__/adversarial/error-merge-strategy.test.d.ts +20 -0
- package/dist/__tests__/adversarial/error-merge-strategy.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/error-merge-strategy.test.js +907 -0
- package/dist/__tests__/adversarial/error-merge-strategy.test.js.map +1 -0
- package/dist/__tests__/adversarial/incremental-performance.test.d.ts +2 -0
- package/dist/__tests__/adversarial/incremental-performance.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/incremental-performance.test.js +113 -0
- package/dist/__tests__/adversarial/incremental-performance.test.js.map +1 -0
- package/dist/__tests__/adversarial/node-map-update-benchmarks.test.d.ts +22 -0
- package/dist/__tests__/adversarial/node-map-update-benchmarks.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/node-map-update-benchmarks.test.js +383 -0
- package/dist/__tests__/adversarial/node-map-update-benchmarks.test.js.map +1 -0
- package/dist/__tests__/adversarial/observer-propagation.test.d.ts +21 -0
- package/dist/__tests__/adversarial/observer-propagation.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/observer-propagation.test.js +404 -0
- package/dist/__tests__/adversarial/observer-propagation.test.js.map +1 -0
- package/dist/__tests__/adversarial/parent-validation.test.d.ts +13 -0
- package/dist/__tests__/adversarial/parent-validation.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/parent-validation.test.js +128 -0
- package/dist/__tests__/adversarial/parent-validation.test.js.map +1 -0
- package/dist/__tests__/adversarial/prd-12-2-compliance.test.d.ts +20 -0
- package/dist/__tests__/adversarial/prd-12-2-compliance.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/prd-12-2-compliance.test.js +482 -0
- package/dist/__tests__/adversarial/prd-12-2-compliance.test.js.map +1 -0
- package/dist/__tests__/adversarial/prd-compliance.test.d.ts +6 -0
- package/dist/__tests__/adversarial/prd-compliance.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/prd-compliance.test.js +886 -0
- package/dist/__tests__/adversarial/prd-compliance.test.js.map +1 -0
- package/dist/__tests__/compatibility/backward-compatibility.test.d.ts +22 -0
- package/dist/__tests__/compatibility/backward-compatibility.test.d.ts.map +1 -0
- package/dist/__tests__/compatibility/backward-compatibility.test.js +1843 -0
- package/dist/__tests__/compatibility/backward-compatibility.test.js.map +1 -0
- package/dist/__tests__/helpers/index.d.ts +10 -0
- package/dist/__tests__/helpers/index.d.ts.map +1 -0
- package/{src/__tests__/helpers/index.ts → dist/__tests__/helpers/index.js} +2 -10
- package/dist/__tests__/helpers/index.js.map +1 -0
- package/dist/__tests__/helpers/tree-verification.d.ts +90 -0
- package/dist/__tests__/helpers/tree-verification.d.ts.map +1 -0
- package/dist/__tests__/helpers/tree-verification.js +202 -0
- package/dist/__tests__/helpers/tree-verification.js.map +1 -0
- package/dist/__tests__/integration/agent-workflow.test.d.ts +2 -0
- package/dist/__tests__/integration/agent-workflow.test.d.ts.map +1 -0
- package/dist/__tests__/integration/agent-workflow.test.js +256 -0
- package/dist/__tests__/integration/agent-workflow.test.js.map +1 -0
- package/dist/__tests__/integration/bidirectional-consistency.test.d.ts +14 -0
- package/dist/__tests__/integration/bidirectional-consistency.test.d.ts.map +1 -0
- package/dist/__tests__/integration/bidirectional-consistency.test.js +668 -0
- package/dist/__tests__/integration/bidirectional-consistency.test.js.map +1 -0
- package/dist/__tests__/integration/observer-logging.test.d.ts +2 -0
- package/dist/__tests__/integration/observer-logging.test.d.ts.map +1 -0
- package/dist/__tests__/integration/observer-logging.test.js +517 -0
- package/dist/__tests__/integration/observer-logging.test.js.map +1 -0
- package/dist/__tests__/integration/tree-mirroring.test.d.ts +2 -0
- package/dist/__tests__/integration/tree-mirroring.test.d.ts.map +1 -0
- package/dist/__tests__/integration/tree-mirroring.test.js +117 -0
- package/dist/__tests__/integration/tree-mirroring.test.js.map +1 -0
- package/dist/__tests__/integration/workflow-reparenting.test.d.ts +12 -0
- package/dist/__tests__/integration/workflow-reparenting.test.d.ts.map +1 -0
- package/dist/__tests__/integration/workflow-reparenting.test.js +239 -0
- package/dist/__tests__/integration/workflow-reparenting.test.js.map +1 -0
- package/dist/__tests__/unit/agent.test.d.ts +2 -0
- package/dist/__tests__/unit/agent.test.d.ts.map +1 -0
- package/dist/__tests__/unit/agent.test.js +143 -0
- package/dist/__tests__/unit/agent.test.js.map +1 -0
- package/dist/__tests__/unit/cache-key.test.d.ts +5 -0
- package/dist/__tests__/unit/cache-key.test.d.ts.map +1 -0
- package/dist/__tests__/unit/cache-key.test.js +145 -0
- package/dist/__tests__/unit/cache-key.test.js.map +1 -0
- package/dist/__tests__/unit/cache.test.d.ts +5 -0
- package/dist/__tests__/unit/cache.test.d.ts.map +1 -0
- package/dist/__tests__/unit/cache.test.js +132 -0
- package/dist/__tests__/unit/cache.test.js.map +1 -0
- package/dist/__tests__/unit/context.test.d.ts +2 -0
- package/dist/__tests__/unit/context.test.d.ts.map +1 -0
- package/dist/__tests__/unit/context.test.js +220 -0
- package/dist/__tests__/unit/context.test.js.map +1 -0
- package/dist/__tests__/unit/decorators.test.d.ts +2 -0
- package/dist/__tests__/unit/decorators.test.d.ts.map +1 -0
- package/dist/__tests__/unit/decorators.test.js +162 -0
- package/dist/__tests__/unit/decorators.test.js.map +1 -0
- package/dist/__tests__/unit/introspection-tools.test.d.ts +5 -0
- package/dist/__tests__/unit/introspection-tools.test.d.ts.map +1 -0
- package/dist/__tests__/unit/introspection-tools.test.js +191 -0
- package/dist/__tests__/unit/introspection-tools.test.js.map +1 -0
- package/dist/__tests__/unit/logger.test.d.ts +2 -0
- package/dist/__tests__/unit/logger.test.d.ts.map +1 -0
- package/dist/__tests__/unit/logger.test.js +241 -0
- package/dist/__tests__/unit/logger.test.js.map +1 -0
- package/dist/__tests__/unit/observable.test.d.ts +2 -0
- package/dist/__tests__/unit/observable.test.d.ts.map +1 -0
- package/dist/__tests__/unit/observable.test.js +251 -0
- package/dist/__tests__/unit/observable.test.js.map +1 -0
- package/dist/__tests__/unit/prompt.test.d.ts +2 -0
- package/dist/__tests__/unit/prompt.test.d.ts.map +1 -0
- package/dist/__tests__/unit/prompt.test.js +113 -0
- package/dist/__tests__/unit/prompt.test.js.map +1 -0
- package/dist/__tests__/unit/reflection.test.d.ts +5 -0
- package/dist/__tests__/unit/reflection.test.d.ts.map +1 -0
- package/dist/__tests__/unit/reflection.test.js +160 -0
- package/dist/__tests__/unit/reflection.test.js.map +1 -0
- package/dist/__tests__/unit/tree-debugger-incremental.test.d.ts +2 -0
- package/dist/__tests__/unit/tree-debugger-incremental.test.d.ts.map +1 -0
- package/dist/__tests__/unit/tree-debugger-incremental.test.js +136 -0
- package/dist/__tests__/unit/tree-debugger-incremental.test.js.map +1 -0
- package/dist/__tests__/unit/tree-debugger.test.d.ts +2 -0
- package/dist/__tests__/unit/tree-debugger.test.d.ts.map +1 -0
- package/dist/__tests__/unit/tree-debugger.test.js +69 -0
- package/dist/__tests__/unit/tree-debugger.test.js.map +1 -0
- package/dist/__tests__/unit/utils/workflow-error-utils.test.d.ts +2 -0
- package/dist/__tests__/unit/utils/workflow-error-utils.test.d.ts.map +1 -0
- package/dist/__tests__/unit/utils/workflow-error-utils.test.js +154 -0
- package/dist/__tests__/unit/utils/workflow-error-utils.test.js.map +1 -0
- package/dist/__tests__/unit/workflow-detachChild.test.d.ts +2 -0
- package/dist/__tests__/unit/workflow-detachChild.test.d.ts.map +1 -0
- package/dist/__tests__/unit/workflow-detachChild.test.js +76 -0
- package/dist/__tests__/unit/workflow-detachChild.test.js.map +1 -0
- package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.d.ts +2 -0
- package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.d.ts.map +1 -0
- package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.js +122 -0
- package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.js.map +1 -0
- package/dist/__tests__/unit/workflow-isDescendantOf.test.d.ts +2 -0
- package/dist/__tests__/unit/workflow-isDescendantOf.test.d.ts.map +1 -0
- package/dist/__tests__/unit/workflow-isDescendantOf.test.js +140 -0
- package/dist/__tests__/unit/workflow-isDescendantOf.test.js.map +1 -0
- package/dist/__tests__/unit/workflow.test.d.ts +2 -0
- package/dist/__tests__/unit/workflow.test.d.ts.map +1 -0
- package/dist/__tests__/unit/workflow.test.js +330 -0
- package/dist/__tests__/unit/workflow.test.js.map +1 -0
- package/dist/cache/cache-key.d.ts +66 -0
- package/dist/cache/cache-key.d.ts.map +1 -0
- package/dist/cache/cache-key.js +195 -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 +112 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +426 -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 +69 -0
- package/dist/core/mcp-handler.d.ts.map +1 -0
- package/dist/core/mcp-handler.js +143 -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 +57 -0
- package/dist/core/workflow-context.d.ts.map +1 -0
- package/dist/core/workflow-context.js +263 -0
- package/dist/core/workflow-context.js.map +1 -0
- package/dist/core/workflow.d.ts +241 -0
- package/dist/core/workflow.d.ts.map +1 -0
- package/dist/core/workflow.js +464 -0
- package/dist/core/workflow.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 +71 -0
- package/dist/debugger/tree-debugger.d.ts.map +1 -0
- package/dist/debugger/tree-debugger.js +198 -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 +110 -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/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -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 +329 -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 +66 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +6 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/decorators.d.ts +31 -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 +87 -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/index.d.ts +15 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -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/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/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/workflow-context.d.ts +139 -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/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/{src/utils/index.ts → dist/utils/index.d.ts} +1 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +4 -0
- package/dist/utils/index.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/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 +5 -2
- 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/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/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/observable.ts +0 -106
- package/src/utils/workflow-error-utils.ts +0 -56
- package/tsconfig.json +0 -22
- package/vitest.config.ts +0 -16
|
@@ -1,1136 +0,0 @@
|
|
|
1
|
-
# PRP: Phase 4 & 5 - Validation & Examples Completion
|
|
2
|
-
|
|
3
|
-
## Phases 4 & 5 Implementation Plan
|
|
4
|
-
|
|
5
|
-
> **PRP**: Product Requirements Package - A comprehensive implementation guide enabling one-pass success
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Pre-Implementation Checklist
|
|
10
|
-
|
|
11
|
-
Before implementing, verify you have:
|
|
12
|
-
- [ ] Read and understood this entire PRP
|
|
13
|
-
- [ ] Read PRPs/PRDs/002-agent-prompt.md (main PRD - all sections)
|
|
14
|
-
- [ ] Read PRPs/PRDs/003-agent-prompt.md (Phases 3 & 4 PRP)
|
|
15
|
-
- [ ] Verified Phases 1-4 are complete (run validation commands below)
|
|
16
|
-
- [ ] Access to `./` codebase
|
|
17
|
-
- [ ] npm dependencies installed: `@anthropic-ai/sdk@^0.71.1`, `zod@^3.23.0`, `lru-cache@^10.0.0`
|
|
18
|
-
- [ ] Understanding of existing examples in `/examples/examples/01-06*.ts`
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## Phase 4 & 5 Status Summary
|
|
23
|
-
|
|
24
|
-
### Phase 4: Dynamic Behavior & Introspection - **COMPLETE**
|
|
25
|
-
|
|
26
|
-
All Phase 4 tasks have been implemented:
|
|
27
|
-
|
|
28
|
-
| Task | Status | Implementation File |
|
|
29
|
-
|------|--------|---------------------|
|
|
30
|
-
| P4.1: Dynamic Factory Functions | COMPLETE | `/src/core/factory.ts` |
|
|
31
|
-
| P4.2: Dynamic Context Revision | COMPLETE | `/src/core/workflow-context.ts` |
|
|
32
|
-
| P4.3: Introspection Tool Definitions | COMPLETE | `/src/tools/introspection.ts` |
|
|
33
|
-
| P4.4: Introspection Tool Handlers | COMPLETE | `/src/tools/introspection.ts` |
|
|
34
|
-
| P4.5: Main Exports Update | COMPLETE | `/src/index.ts` |
|
|
35
|
-
|
|
36
|
-
### Phase 5: Examples - **IN PROGRESS**
|
|
37
|
-
|
|
38
|
-
| Task | Status | Implementation File |
|
|
39
|
-
|------|--------|---------------------|
|
|
40
|
-
| P5.1: Example 7 - Agent Loops | PENDING | `/examples/examples/07-agent-loops.ts` |
|
|
41
|
-
| P5.2: Example 8 - SDK Features | PENDING | `/examples/examples/08-sdk-features.ts` |
|
|
42
|
-
| P5.3: Example 9 - Multi-level Reflection | PENDING | `/examples/examples/09-reflection.ts` |
|
|
43
|
-
| P5.4: Example 10 - Introspection Tools | PENDING | `/examples/examples/10-introspection.ts` |
|
|
44
|
-
| P5.5: Update index.ts and README | PENDING | `/examples/index.ts`, `/examples/README.md` |
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## 1. Goal
|
|
49
|
-
|
|
50
|
-
### Feature Goal
|
|
51
|
-
Complete the Groundswell orchestration framework by:
|
|
52
|
-
1. Validating all Phase 4 implementations are production-ready
|
|
53
|
-
2. Creating canonical examples 7-10 demonstrating Agent loops, SDK features, reflection, and introspection
|
|
54
|
-
3. Updating example runner and documentation
|
|
55
|
-
|
|
56
|
-
### Deliverable
|
|
57
|
-
A complete system where:
|
|
58
|
-
1. All Phase 3-4 implementations pass validation (PRD Sections 9, 10, 11)
|
|
59
|
-
2. Examples 7-10 demonstrate advanced Agent/Prompt capabilities (PRD Section 12 items 7-10)
|
|
60
|
-
3. Full examples runner with documentation
|
|
61
|
-
|
|
62
|
-
### Success Definition
|
|
63
|
-
- [ ] `npm run build` passes with no TypeScript errors
|
|
64
|
-
- [ ] `npm test` passes all unit and integration tests
|
|
65
|
-
- [ ] Examples 7-10 execute successfully: `npx tsx examples/examples/07-agent-loops.ts`
|
|
66
|
-
- [ ] All 10 PRD examples listed in examples/README.md
|
|
67
|
-
- [ ] Cache, Reflection, and Introspection systems demonstrated in examples
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
## 2. Context
|
|
72
|
-
|
|
73
|
-
### External Documentation
|
|
74
|
-
```yaml
|
|
75
|
-
anthropic_sdk:
|
|
76
|
-
url: "https://github.com/anthropics/anthropic-sdk-typescript"
|
|
77
|
-
purpose: "Tool definitions, message API, error types"
|
|
78
|
-
version: "^0.71.1"
|
|
79
|
-
key_sections:
|
|
80
|
-
- "Tool Use" - https://platform.claude.com/docs/en/agents-and-tools/tool-use/implement-tool-use
|
|
81
|
-
- "Streaming" - https://github.com/anthropics/anthropic-sdk-typescript#streaming
|
|
82
|
-
|
|
83
|
-
lru_cache:
|
|
84
|
-
url: "https://www.npmjs.com/package/lru-cache"
|
|
85
|
-
purpose: "LRU cache implementation (already installed)"
|
|
86
|
-
version: "^10.0.0"
|
|
87
|
-
|
|
88
|
-
zod:
|
|
89
|
-
url: "https://zod.dev/"
|
|
90
|
-
purpose: "Schema validation for response formats"
|
|
91
|
-
version: "^3.23.0"
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
### Codebase Context
|
|
95
|
-
```yaml
|
|
96
|
-
existing_implementations:
|
|
97
|
-
- file: "/src/core/agent.ts"
|
|
98
|
-
purpose: "Agent class with prompt(), reflect(), cache integration"
|
|
99
|
-
key_exports: "Agent, PromptResult"
|
|
100
|
-
lines: 573
|
|
101
|
-
|
|
102
|
-
- file: "/src/core/prompt.ts"
|
|
103
|
-
purpose: "Immutable Prompt class with Zod validation"
|
|
104
|
-
key_exports: "Prompt"
|
|
105
|
-
lines: 150
|
|
106
|
-
|
|
107
|
-
- file: "/src/core/factory.ts"
|
|
108
|
-
purpose: "Dynamic creation functions"
|
|
109
|
-
key_exports: "createWorkflow, createAgent, createPrompt, quickWorkflow, quickAgent"
|
|
110
|
-
lines: 124
|
|
111
|
-
|
|
112
|
-
- file: "/src/cache/cache.ts"
|
|
113
|
-
purpose: "LRU cache with metrics"
|
|
114
|
-
key_exports: "LLMCache, defaultCache, CacheConfig, CacheMetrics"
|
|
115
|
-
lines: 237
|
|
116
|
-
|
|
117
|
-
- file: "/src/cache/cache-key.ts"
|
|
118
|
-
purpose: "Deterministic cache key generation"
|
|
119
|
-
key_exports: "generateCacheKey, deterministicStringify, getSchemaHash"
|
|
120
|
-
lines: 245
|
|
121
|
-
|
|
122
|
-
- file: "/src/reflection/reflection.ts"
|
|
123
|
-
purpose: "ReflectionManager with retry logic"
|
|
124
|
-
key_exports: "ReflectionManager, executeWithReflection"
|
|
125
|
-
lines: 407
|
|
126
|
-
|
|
127
|
-
- file: "/src/tools/introspection.ts"
|
|
128
|
-
purpose: "6 introspection tools with handlers"
|
|
129
|
-
key_exports: "INTROSPECTION_TOOLS, INTROSPECTION_HANDLERS, all handlers"
|
|
130
|
-
lines: 465
|
|
131
|
-
|
|
132
|
-
- file: "/src/core/workflow-context.ts"
|
|
133
|
-
purpose: "WorkflowContext with step(), spawnWorkflow(), replaceLastPromptResult()"
|
|
134
|
-
key_exports: "WorkflowContextImpl, createWorkflowContext"
|
|
135
|
-
lines: 349
|
|
136
|
-
|
|
137
|
-
existing_examples:
|
|
138
|
-
- file: "/examples/examples/01-basic-workflow.ts"
|
|
139
|
-
demonstrates: "Core workflow concepts, status lifecycle, logging"
|
|
140
|
-
|
|
141
|
-
- file: "/examples/examples/02-decorator-options.ts"
|
|
142
|
-
demonstrates: "@Step, @Task, @ObservedState options"
|
|
143
|
-
|
|
144
|
-
- file: "/examples/examples/03-parent-child.ts"
|
|
145
|
-
demonstrates: "Hierarchical workflows, event propagation"
|
|
146
|
-
|
|
147
|
-
- file: "/examples/examples/04-observers-debugger.ts"
|
|
148
|
-
demonstrates: "WorkflowObserver, WorkflowTreeDebugger, streaming"
|
|
149
|
-
|
|
150
|
-
- file: "/examples/examples/05-error-handling.ts"
|
|
151
|
-
demonstrates: "WorkflowError, retry patterns, error context"
|
|
152
|
-
|
|
153
|
-
- file: "/examples/examples/06-concurrent-tasks.ts"
|
|
154
|
-
demonstrates: "Sequential vs concurrent, fan-out/fan-in"
|
|
155
|
-
|
|
156
|
-
naming_conventions:
|
|
157
|
-
files: "kebab-case.ts (e.g., 07-agent-loops.ts)"
|
|
158
|
-
classes: "PascalCase (e.g., DataProcessorWorkflow)"
|
|
159
|
-
functions: "camelCase (e.g., runAgentLoopsExample)"
|
|
160
|
-
tools: "snake_case (e.g., inspect_current_node)"
|
|
161
|
-
exports: "run*Example pattern (e.g., runAgentLoopsExample)"
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
### Technical Constraints
|
|
165
|
-
```yaml
|
|
166
|
-
typescript:
|
|
167
|
-
version: "5.2+"
|
|
168
|
-
config_requirements:
|
|
169
|
-
- "strict: true"
|
|
170
|
-
- "module: NodeNext"
|
|
171
|
-
- "moduleResolution: NodeNext"
|
|
172
|
-
|
|
173
|
-
runtime:
|
|
174
|
-
node_version: "18+"
|
|
175
|
-
target: "ES2022"
|
|
176
|
-
|
|
177
|
-
testing:
|
|
178
|
-
framework: "vitest"
|
|
179
|
-
command: "npm test"
|
|
180
|
-
pattern: "describe/it/expect"
|
|
181
|
-
|
|
182
|
-
example_execution:
|
|
183
|
-
command: "npx tsx examples/examples/07-agent-loops.ts"
|
|
184
|
-
runner: "npm run start:all"
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
### Research References
|
|
188
|
-
```yaml
|
|
189
|
-
caching_patterns:
|
|
190
|
-
file: "/plan/P3P4/research/caching-lru.md"
|
|
191
|
-
key_points:
|
|
192
|
-
- "Deterministic stringify with sorted keys"
|
|
193
|
-
- "LRU config: maxItems=1000, maxSizeBytes=50MB, ttl=1hr"
|
|
194
|
-
- "SHA-256 for cache keys (64-char hex)"
|
|
195
|
-
- "Schema hashing via _def (16-char prefix)"
|
|
196
|
-
|
|
197
|
-
reflection_patterns:
|
|
198
|
-
file: "/plan/P3P4/research/reflection-patterns.md"
|
|
199
|
-
key_points:
|
|
200
|
-
- "Three levels: workflow, agent, prompt"
|
|
201
|
-
- "Max 3 attempts before failure"
|
|
202
|
-
- "Skip reflection for rate limits, auth errors, quota exceeded"
|
|
203
|
-
- "Emit reflectionStart/reflectionEnd events"
|
|
204
|
-
|
|
205
|
-
introspection_tools:
|
|
206
|
-
file: "/plan/P3P4/research/introspection-tools.md"
|
|
207
|
-
key_points:
|
|
208
|
-
- "6 tools: inspect_current_node, read_ancestor_chain, list_siblings_children, inspect_prior_outputs, inspect_cache_status, request_spawn_workflow"
|
|
209
|
-
- "All tools are read-only (except spawn)"
|
|
210
|
-
- "Use getExecutionContext() for context access"
|
|
211
|
-
- "Security: filter secrets, respect boundaries"
|
|
212
|
-
|
|
213
|
-
agent_introspection_patterns:
|
|
214
|
-
file: "/plan/research/agent-introspection-patterns.md"
|
|
215
|
-
key_points:
|
|
216
|
-
- "HierarchyInfo with depth, position, metrics"
|
|
217
|
-
- "Tool definitions in Anthropic format"
|
|
218
|
-
- "Context-aware decision making patterns"
|
|
219
|
-
|
|
220
|
-
introspection_security:
|
|
221
|
-
file: "/plan/research/introspection-security-guide.md"
|
|
222
|
-
key_points:
|
|
223
|
-
- "State snapshots filtered for sensitive fields"
|
|
224
|
-
- "Cache tool filters credentials/secrets"
|
|
225
|
-
- "All queries have result limits"
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
---
|
|
229
|
-
|
|
230
|
-
## 3. Implementation Validation
|
|
231
|
-
|
|
232
|
-
### Pre-Implementation Validation Commands
|
|
233
|
-
|
|
234
|
-
Before creating examples, validate all Phase 3-4 implementations:
|
|
235
|
-
|
|
236
|
-
```bash
|
|
237
|
-
# 1. Build passes
|
|
238
|
-
npm run build
|
|
239
|
-
|
|
240
|
-
# 2. All tests pass
|
|
241
|
-
npm test
|
|
242
|
-
|
|
243
|
-
# 3. Verify cache exports
|
|
244
|
-
node -e "
|
|
245
|
-
const { LLMCache, defaultCache, generateCacheKey, deterministicStringify, getSchemaHash } = require('./dist');
|
|
246
|
-
console.log('Cache exports:', { LLMCache: !!LLMCache, defaultCache: !!defaultCache, generateCacheKey: !!generateCacheKey });
|
|
247
|
-
"
|
|
248
|
-
|
|
249
|
-
# 4. Verify reflection exports
|
|
250
|
-
node -e "
|
|
251
|
-
const { ReflectionManager, executeWithReflection, DEFAULT_REFLECTION_CONFIG } = require('./dist');
|
|
252
|
-
console.log('Reflection exports:', { ReflectionManager: !!ReflectionManager, executeWithReflection: !!executeWithReflection });
|
|
253
|
-
"
|
|
254
|
-
|
|
255
|
-
# 5. Verify introspection exports
|
|
256
|
-
node -e "
|
|
257
|
-
const { INTROSPECTION_TOOLS, INTROSPECTION_HANDLERS, handleInspectCurrentNode } = require('./dist');
|
|
258
|
-
console.log('Introspection exports:', { INTROSPECTION_TOOLS: INTROSPECTION_TOOLS.length, handlers: !!handleInspectCurrentNode });
|
|
259
|
-
"
|
|
260
|
-
|
|
261
|
-
# 6. Verify factory exports
|
|
262
|
-
node -e "
|
|
263
|
-
const { createWorkflow, createAgent, createPrompt, quickWorkflow, quickAgent } = require('./dist');
|
|
264
|
-
console.log('Factory exports:', { createWorkflow: !!createWorkflow, createAgent: !!createAgent, createPrompt: !!createPrompt });
|
|
265
|
-
"
|
|
266
|
-
|
|
267
|
-
# 7. Run existing examples 1-6
|
|
268
|
-
npm run start:all
|
|
269
|
-
```
|
|
270
|
-
|
|
271
|
-
**Expected Results**: All commands complete without errors.
|
|
272
|
-
|
|
273
|
-
---
|
|
274
|
-
|
|
275
|
-
## 4. Implementation Tasks
|
|
276
|
-
|
|
277
|
-
> Tasks are ordered by dependency. Complete each task fully before moving to the next.
|
|
278
|
-
|
|
279
|
-
---
|
|
280
|
-
|
|
281
|
-
### Task P5.1: Example 7 - Agent Loops with Observability
|
|
282
|
-
|
|
283
|
-
**Depends on**: Phase 4 validation complete
|
|
284
|
-
|
|
285
|
-
**Input**: PRD Section 12 item 7 - "Loops calling multiple agents repeatedly with full observability"
|
|
286
|
-
|
|
287
|
-
**Purpose**: Demonstrate using `Agent.prompt()` within workflow loops with full event tree capture, timing metrics, and state snapshots.
|
|
288
|
-
|
|
289
|
-
**File**: `/examples/examples/07-agent-loops.ts`
|
|
290
|
-
|
|
291
|
-
**Implementation Steps**:
|
|
292
|
-
|
|
293
|
-
1. Create the example file with standard header:
|
|
294
|
-
```typescript
|
|
295
|
-
/**
|
|
296
|
-
* Example 7: Agent Loops with Observability
|
|
297
|
-
*
|
|
298
|
-
* Demonstrates:
|
|
299
|
-
* - Using Agent.prompt() within ctx.step() loops
|
|
300
|
-
* - Multiple agents for different item types
|
|
301
|
-
* - Full event tree visualization with timing
|
|
302
|
-
* - State snapshots at each iteration
|
|
303
|
-
* - Cache hit/miss tracking
|
|
304
|
-
*/
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
2. Import required modules:
|
|
308
|
-
```typescript
|
|
309
|
-
import { z } from 'zod';
|
|
310
|
-
import {
|
|
311
|
-
createWorkflow,
|
|
312
|
-
createAgent,
|
|
313
|
-
createPrompt,
|
|
314
|
-
Agent,
|
|
315
|
-
Prompt,
|
|
316
|
-
WorkflowContext,
|
|
317
|
-
WorkflowTreeDebugger,
|
|
318
|
-
Step,
|
|
319
|
-
ObservedState,
|
|
320
|
-
getExecutionContext,
|
|
321
|
-
defaultCache,
|
|
322
|
-
} from 'groundswell';
|
|
323
|
-
import { printHeader, printSection, sleep } from '../utils/helpers.js';
|
|
324
|
-
```
|
|
325
|
-
|
|
326
|
-
3. Implement three-part demonstration:
|
|
327
|
-
|
|
328
|
-
**Part 1: Basic Agent Loop**
|
|
329
|
-
```typescript
|
|
330
|
-
// Process array of items with Agent inside loop
|
|
331
|
-
const items = ['apple', 'banana', 'cherry'];
|
|
332
|
-
for (const item of items) {
|
|
333
|
-
await ctx.step(`process-${item}`, async () => {
|
|
334
|
-
const result = await agent.prompt(classifyPrompt.withData({ item }));
|
|
335
|
-
// Show timing, result, event emission
|
|
336
|
-
});
|
|
337
|
-
}
|
|
338
|
-
```
|
|
339
|
-
|
|
340
|
-
**Part 2: Multi-Agent Loop**
|
|
341
|
-
```typescript
|
|
342
|
-
// Different agents for different data types
|
|
343
|
-
const textAgent = createAgent({ name: 'TextAgent', enableCache: true });
|
|
344
|
-
const numberAgent = createAgent({ name: 'NumberAgent', enableCache: true });
|
|
345
|
-
|
|
346
|
-
for (const input of mixedData) {
|
|
347
|
-
const agent = typeof input === 'string' ? textAgent : numberAgent;
|
|
348
|
-
await ctx.step(`process-${input}`, async () => {
|
|
349
|
-
await agent.prompt(appropriatePrompt);
|
|
350
|
-
});
|
|
351
|
-
}
|
|
352
|
-
```
|
|
353
|
-
|
|
354
|
-
**Part 3: Observability Metrics**
|
|
355
|
-
```typescript
|
|
356
|
-
// Show complete event tree with timing per step
|
|
357
|
-
// Show cache metrics (hits/misses)
|
|
358
|
-
// Show state snapshots at each iteration
|
|
359
|
-
console.log('Tree:\n' + debugger_.toTreeString());
|
|
360
|
-
console.log('Cache metrics:', defaultCache.metrics());
|
|
361
|
-
```
|
|
362
|
-
|
|
363
|
-
4. Export run function:
|
|
364
|
-
```typescript
|
|
365
|
-
export async function runAgentLoopsExample(): Promise<void> { ... }
|
|
366
|
-
|
|
367
|
-
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
368
|
-
runAgentLoopsExample().catch(console.error);
|
|
369
|
-
}
|
|
370
|
-
```
|
|
371
|
-
|
|
372
|
-
**Output**: Working example at `/examples/examples/07-agent-loops.ts`
|
|
373
|
-
|
|
374
|
-
**Validation**:
|
|
375
|
-
```bash
|
|
376
|
-
npx tsx examples/examples/07-agent-loops.ts
|
|
377
|
-
# Expected: Shows loop execution with timing, tree visualization, cache metrics
|
|
378
|
-
```
|
|
379
|
-
|
|
380
|
-
---
|
|
381
|
-
|
|
382
|
-
### Task P5.2: Example 8 - SDK Features (Tools, MCPs, Hooks, Skills)
|
|
383
|
-
|
|
384
|
-
**Depends on**: Task P5.1
|
|
385
|
-
|
|
386
|
-
**Input**: PRD Section 12 item 8 - "Tools, MCPs, hooks, skills usage examples"
|
|
387
|
-
|
|
388
|
-
**Purpose**: Demonstrate Anthropic SDK integration with custom tools, MCP servers, lifecycle hooks, and skills.
|
|
389
|
-
|
|
390
|
-
**File**: `/examples/examples/08-sdk-features.ts`
|
|
391
|
-
|
|
392
|
-
**Implementation Steps**:
|
|
393
|
-
|
|
394
|
-
1. Create the example file with standard header:
|
|
395
|
-
```typescript
|
|
396
|
-
/**
|
|
397
|
-
* Example 8: SDK Features Integration
|
|
398
|
-
*
|
|
399
|
-
* Demonstrates:
|
|
400
|
-
* - Custom tool definitions with handlers
|
|
401
|
-
* - MCP server configuration (inprocess)
|
|
402
|
-
* - Pre/Post tool hooks for logging and validation
|
|
403
|
-
* - Skills integration with SKILL.md content
|
|
404
|
-
* - Environment variable pass-through
|
|
405
|
-
*/
|
|
406
|
-
```
|
|
407
|
-
|
|
408
|
-
2. Import required modules:
|
|
409
|
-
```typescript
|
|
410
|
-
import { z } from 'zod';
|
|
411
|
-
import {
|
|
412
|
-
createWorkflow,
|
|
413
|
-
createAgent,
|
|
414
|
-
createPrompt,
|
|
415
|
-
Agent,
|
|
416
|
-
Prompt,
|
|
417
|
-
Tool,
|
|
418
|
-
MCPHandler,
|
|
419
|
-
WorkflowContext,
|
|
420
|
-
WorkflowTreeDebugger,
|
|
421
|
-
} from 'groundswell';
|
|
422
|
-
import type { AgentHooks, PreToolUseContext, PostToolUseContext } from 'groundswell';
|
|
423
|
-
import { printHeader, printSection } from '../utils/helpers.js';
|
|
424
|
-
```
|
|
425
|
-
|
|
426
|
-
3. Implement five-part demonstration:
|
|
427
|
-
|
|
428
|
-
**Part 1: Custom Tool Definition**
|
|
429
|
-
```typescript
|
|
430
|
-
const calculatorTool: Tool = {
|
|
431
|
-
name: 'calculate',
|
|
432
|
-
description: 'Performs basic arithmetic',
|
|
433
|
-
input_schema: {
|
|
434
|
-
type: 'object',
|
|
435
|
-
properties: {
|
|
436
|
-
operation: { type: 'string', enum: ['add', 'subtract', 'multiply', 'divide'] },
|
|
437
|
-
a: { type: 'number' },
|
|
438
|
-
b: { type: 'number' }
|
|
439
|
-
},
|
|
440
|
-
required: ['operation', 'a', 'b']
|
|
441
|
-
}
|
|
442
|
-
};
|
|
443
|
-
|
|
444
|
-
// Handler implementation
|
|
445
|
-
async function handleCalculate(input: { operation: string; a: number; b: number }) {
|
|
446
|
-
switch (input.operation) {
|
|
447
|
-
case 'add': return { result: input.a + input.b };
|
|
448
|
-
case 'subtract': return { result: input.a - input.b };
|
|
449
|
-
// ...
|
|
450
|
-
}
|
|
451
|
-
}
|
|
452
|
-
```
|
|
453
|
-
|
|
454
|
-
**Part 2: MCP Server Configuration**
|
|
455
|
-
```typescript
|
|
456
|
-
const mcpHandler = new MCPHandler();
|
|
457
|
-
mcpHandler.registerTool(calculatorTool, handleCalculate);
|
|
458
|
-
|
|
459
|
-
const agent = createAgent({
|
|
460
|
-
name: 'ToolAgent',
|
|
461
|
-
tools: mcpHandler.getTools(),
|
|
462
|
-
});
|
|
463
|
-
```
|
|
464
|
-
|
|
465
|
-
**Part 3: Lifecycle Hooks**
|
|
466
|
-
```typescript
|
|
467
|
-
const hooks: AgentHooks = {
|
|
468
|
-
preToolUse: [
|
|
469
|
-
async (ctx: PreToolUseContext) => {
|
|
470
|
-
console.log(`[PRE] Tool: ${ctx.toolName}, Input:`, ctx.input);
|
|
471
|
-
// Validation logic
|
|
472
|
-
}
|
|
473
|
-
],
|
|
474
|
-
postToolUse: [
|
|
475
|
-
async (ctx: PostToolUseContext) => {
|
|
476
|
-
console.log(`[POST] Tool: ${ctx.toolName}, Output:`, ctx.output);
|
|
477
|
-
// Logging, metrics
|
|
478
|
-
}
|
|
479
|
-
],
|
|
480
|
-
sessionStart: [
|
|
481
|
-
async (ctx) => console.log('[SESSION START]', ctx)
|
|
482
|
-
],
|
|
483
|
-
sessionEnd: [
|
|
484
|
-
async (ctx) => console.log('[SESSION END]', ctx)
|
|
485
|
-
]
|
|
486
|
-
};
|
|
487
|
-
```
|
|
488
|
-
|
|
489
|
-
**Part 4: Skills Integration**
|
|
490
|
-
```typescript
|
|
491
|
-
// Demonstrate skill content injection into system prompt
|
|
492
|
-
const agent = createAgent({
|
|
493
|
-
name: 'SkilledAgent',
|
|
494
|
-
skills: [
|
|
495
|
-
{ name: 'math', path: './skills/math' }
|
|
496
|
-
]
|
|
497
|
-
});
|
|
498
|
-
// Shows SKILL.md content in system prompt
|
|
499
|
-
```
|
|
500
|
-
|
|
501
|
-
**Part 5: Environment Variables**
|
|
502
|
-
```typescript
|
|
503
|
-
const agent = createAgent({
|
|
504
|
-
name: 'EnvAgent',
|
|
505
|
-
env: {
|
|
506
|
-
API_KEY: 'demo-key',
|
|
507
|
-
DEBUG: 'true'
|
|
508
|
-
}
|
|
509
|
-
});
|
|
510
|
-
// Shows env vars passed through during execution
|
|
511
|
-
```
|
|
512
|
-
|
|
513
|
-
4. Export run function:
|
|
514
|
-
```typescript
|
|
515
|
-
export async function runSDKFeaturesExample(): Promise<void> { ... }
|
|
516
|
-
```
|
|
517
|
-
|
|
518
|
-
**Output**: Working example at `/examples/examples/08-sdk-features.ts`
|
|
519
|
-
|
|
520
|
-
**Validation**:
|
|
521
|
-
```bash
|
|
522
|
-
npx tsx examples/examples/08-sdk-features.ts
|
|
523
|
-
# Expected: Shows tool calls with hooks, MCP integration, skill loading
|
|
524
|
-
```
|
|
525
|
-
|
|
526
|
-
---
|
|
527
|
-
|
|
528
|
-
### Task P5.3: Example 9 - Multi-level Reflection
|
|
529
|
-
|
|
530
|
-
**Depends on**: Task P5.2
|
|
531
|
-
|
|
532
|
-
**Input**: PRD Section 12 item 9 - "Reflection at each level (Workflow, Agent, Prompt)"
|
|
533
|
-
|
|
534
|
-
**Purpose**: Demonstrate reflection capabilities at all three levels with automatic retry and error recovery.
|
|
535
|
-
|
|
536
|
-
**File**: `/examples/examples/09-reflection.ts`
|
|
537
|
-
|
|
538
|
-
**Implementation Steps**:
|
|
539
|
-
|
|
540
|
-
1. Create the example file with standard header:
|
|
541
|
-
```typescript
|
|
542
|
-
/**
|
|
543
|
-
* Example 9: Multi-level Reflection
|
|
544
|
-
*
|
|
545
|
-
* Demonstrates:
|
|
546
|
-
* - Prompt-level reflection (enableReflection on prompt)
|
|
547
|
-
* - Agent-level reflection (agent.reflect() method)
|
|
548
|
-
* - Workflow-level reflection (step failure retry)
|
|
549
|
-
* - Reflection events in tree output
|
|
550
|
-
* - Error recovery with revised prompts
|
|
551
|
-
*/
|
|
552
|
-
```
|
|
553
|
-
|
|
554
|
-
2. Import required modules:
|
|
555
|
-
```typescript
|
|
556
|
-
import { z } from 'zod';
|
|
557
|
-
import {
|
|
558
|
-
createWorkflow,
|
|
559
|
-
createAgent,
|
|
560
|
-
createPrompt,
|
|
561
|
-
Agent,
|
|
562
|
-
Prompt,
|
|
563
|
-
WorkflowContext,
|
|
564
|
-
WorkflowTreeDebugger,
|
|
565
|
-
ReflectionManager,
|
|
566
|
-
executeWithReflection,
|
|
567
|
-
DEFAULT_REFLECTION_CONFIG,
|
|
568
|
-
} from 'groundswell';
|
|
569
|
-
import type { ReflectionConfig, ReflectionEntry } from 'groundswell';
|
|
570
|
-
import { printHeader, printSection, simulateUnreliableTask } from '../utils/helpers.js';
|
|
571
|
-
```
|
|
572
|
-
|
|
573
|
-
3. Implement three-part demonstration:
|
|
574
|
-
|
|
575
|
-
**Part 1: Prompt-Level Reflection**
|
|
576
|
-
```typescript
|
|
577
|
-
// Schema validation fails, triggers reflection
|
|
578
|
-
const strictSchema = z.object({
|
|
579
|
-
answer: z.string().min(10),
|
|
580
|
-
confidence: z.number().min(0.8)
|
|
581
|
-
});
|
|
582
|
-
|
|
583
|
-
const prompt = createPrompt({
|
|
584
|
-
user: 'Provide a brief answer',
|
|
585
|
-
responseFormat: strictSchema,
|
|
586
|
-
enableReflection: true // Auto-reflect on validation failure
|
|
587
|
-
});
|
|
588
|
-
|
|
589
|
-
// First attempt may fail schema, reflection retries with adjusted output
|
|
590
|
-
const result = await agent.prompt(prompt);
|
|
591
|
-
```
|
|
592
|
-
|
|
593
|
-
**Part 2: Agent-Level Reflection**
|
|
594
|
-
```typescript
|
|
595
|
-
// Explicit reflection call for reasoning review
|
|
596
|
-
const complexPrompt = createPrompt({
|
|
597
|
-
user: 'Analyze this complex scenario...',
|
|
598
|
-
responseFormat: analysisSchema
|
|
599
|
-
});
|
|
600
|
-
|
|
601
|
-
// Agent reviews its own reasoning before final answer
|
|
602
|
-
const result = await agent.reflect(complexPrompt, {
|
|
603
|
-
enableReflection: true
|
|
604
|
-
});
|
|
605
|
-
// Shows reflection system prompt prefix added
|
|
606
|
-
```
|
|
607
|
-
|
|
608
|
-
**Part 3: Workflow-Level Reflection**
|
|
609
|
-
```typescript
|
|
610
|
-
const workflow = createWorkflow(
|
|
611
|
-
{ name: 'ReflectiveWorkflow', enableReflection: true },
|
|
612
|
-
async (ctx) => {
|
|
613
|
-
let attemptCount = 0;
|
|
614
|
-
|
|
615
|
-
await ctx.step('unreliable-operation', async () => {
|
|
616
|
-
attemptCount++;
|
|
617
|
-
if (attemptCount < 3) {
|
|
618
|
-
throw new Error('Transient failure - please retry');
|
|
619
|
-
}
|
|
620
|
-
return 'Success on attempt 3';
|
|
621
|
-
});
|
|
622
|
-
|
|
623
|
-
// Shows: reflectionStart, retry, reflectionEnd events in tree
|
|
624
|
-
}
|
|
625
|
-
);
|
|
626
|
-
|
|
627
|
-
// Display reflection history
|
|
628
|
-
const history = ctx.reflection.getReflectionHistory();
|
|
629
|
-
console.log('Reflection history:', history);
|
|
630
|
-
```
|
|
631
|
-
|
|
632
|
-
4. Show reflection events in tree:
|
|
633
|
-
```typescript
|
|
634
|
-
console.log('Tree with reflection events:\n' + debugger_.toTreeString());
|
|
635
|
-
// Shows: reflectionStart, reflectionEnd nodes in tree
|
|
636
|
-
```
|
|
637
|
-
|
|
638
|
-
**Output**: Working example at `/examples/examples/09-reflection.ts`
|
|
639
|
-
|
|
640
|
-
**Validation**:
|
|
641
|
-
```bash
|
|
642
|
-
npx tsx examples/examples/09-reflection.ts
|
|
643
|
-
# Expected: Shows reflection at all three levels, retry behavior, events in tree
|
|
644
|
-
```
|
|
645
|
-
|
|
646
|
-
---
|
|
647
|
-
|
|
648
|
-
### Task P5.4: Example 10 - Introspection Tools Demo
|
|
649
|
-
|
|
650
|
-
**Depends on**: Task P5.3
|
|
651
|
-
|
|
652
|
-
**Input**: PRD Section 12 item 10 - "Introspection tools demo"
|
|
653
|
-
|
|
654
|
-
**Purpose**: Demonstrate agents using introspection tools to navigate and understand workflow hierarchy.
|
|
655
|
-
|
|
656
|
-
**File**: `/examples/examples/10-introspection.ts`
|
|
657
|
-
|
|
658
|
-
**Implementation Steps**:
|
|
659
|
-
|
|
660
|
-
1. Create the example file with standard header:
|
|
661
|
-
```typescript
|
|
662
|
-
/**
|
|
663
|
-
* Example 10: Introspection Tools Demo
|
|
664
|
-
*
|
|
665
|
-
* Demonstrates:
|
|
666
|
-
* - Agent with INTROSPECTION_TOOLS
|
|
667
|
-
* - inspect_current_node - "Where am I?"
|
|
668
|
-
* - read_ancestor_chain - "What's above me?"
|
|
669
|
-
* - list_siblings_children - "What's around me?"
|
|
670
|
-
* - inspect_prior_outputs - "What happened before?"
|
|
671
|
-
* - inspect_cache_status - "Is this cached?"
|
|
672
|
-
* - request_spawn_workflow - "Can I create children?"
|
|
673
|
-
*/
|
|
674
|
-
```
|
|
675
|
-
|
|
676
|
-
2. Import required modules:
|
|
677
|
-
```typescript
|
|
678
|
-
import { z } from 'zod';
|
|
679
|
-
import {
|
|
680
|
-
createWorkflow,
|
|
681
|
-
createAgent,
|
|
682
|
-
createPrompt,
|
|
683
|
-
Agent,
|
|
684
|
-
WorkflowContext,
|
|
685
|
-
WorkflowTreeDebugger,
|
|
686
|
-
INTROSPECTION_TOOLS,
|
|
687
|
-
INTROSPECTION_HANDLERS,
|
|
688
|
-
handleInspectCurrentNode,
|
|
689
|
-
handleReadAncestorChain,
|
|
690
|
-
handleListSiblingsChildren,
|
|
691
|
-
handleInspectPriorOutputs,
|
|
692
|
-
handleInspectCacheStatus,
|
|
693
|
-
handleRequestSpawnWorkflow,
|
|
694
|
-
runInContext,
|
|
695
|
-
getExecutionContext,
|
|
696
|
-
} from 'groundswell';
|
|
697
|
-
import type { CurrentNodeInfo, AncestorChainResult } from 'groundswell';
|
|
698
|
-
import { printHeader, printSection, prettyJson } from '../utils/helpers.js';
|
|
699
|
-
```
|
|
700
|
-
|
|
701
|
-
3. Implement six-part demonstration:
|
|
702
|
-
|
|
703
|
-
**Part 1: Setup Nested Hierarchy**
|
|
704
|
-
```typescript
|
|
705
|
-
// Create 3-level nested workflow for introspection
|
|
706
|
-
const rootWorkflow = createWorkflow(
|
|
707
|
-
{ name: 'RootWorkflow' },
|
|
708
|
-
async (ctx) => {
|
|
709
|
-
await ctx.step('setup', async () => { ... });
|
|
710
|
-
|
|
711
|
-
await ctx.spawnWorkflow(createWorkflow(
|
|
712
|
-
{ name: 'ChildWorkflow' },
|
|
713
|
-
async (childCtx) => {
|
|
714
|
-
await childCtx.step('child-work', async () => {
|
|
715
|
-
// Agent with introspection runs here
|
|
716
|
-
});
|
|
717
|
-
}
|
|
718
|
-
));
|
|
719
|
-
}
|
|
720
|
-
);
|
|
721
|
-
```
|
|
722
|
-
|
|
723
|
-
**Part 2: inspect_current_node**
|
|
724
|
-
```typescript
|
|
725
|
-
await ctx.step('where-am-i', async () => {
|
|
726
|
-
const nodeInfo = await handleInspectCurrentNode();
|
|
727
|
-
console.log('Current node:', prettyJson(nodeInfo));
|
|
728
|
-
// Shows: id, name, status, parentId, parentName, childCount, depth
|
|
729
|
-
});
|
|
730
|
-
```
|
|
731
|
-
|
|
732
|
-
**Part 3: read_ancestor_chain**
|
|
733
|
-
```typescript
|
|
734
|
-
await ctx.step('whats-above-me', async () => {
|
|
735
|
-
const ancestors = await handleReadAncestorChain({ maxDepth: 10 });
|
|
736
|
-
console.log('Ancestors:', prettyJson(ancestors));
|
|
737
|
-
// Shows: array of ancestor nodes from current to root
|
|
738
|
-
});
|
|
739
|
-
```
|
|
740
|
-
|
|
741
|
-
**Part 4: list_siblings_children**
|
|
742
|
-
```typescript
|
|
743
|
-
await ctx.step('whats-around-me', async () => {
|
|
744
|
-
const siblings = await handleListSiblingsChildren({ type: 'siblings' });
|
|
745
|
-
const children = await handleListSiblingsChildren({ type: 'children' });
|
|
746
|
-
console.log('Siblings:', siblings);
|
|
747
|
-
console.log('Children:', children);
|
|
748
|
-
});
|
|
749
|
-
```
|
|
750
|
-
|
|
751
|
-
**Part 5: inspect_prior_outputs**
|
|
752
|
-
```typescript
|
|
753
|
-
await ctx.step('what-happened-before', async () => {
|
|
754
|
-
const outputs = await handleInspectPriorOutputs({ count: 3 });
|
|
755
|
-
console.log('Prior outputs:', prettyJson(outputs));
|
|
756
|
-
// Shows: results from previous steps
|
|
757
|
-
});
|
|
758
|
-
```
|
|
759
|
-
|
|
760
|
-
**Part 6: Agent Using All Tools**
|
|
761
|
-
```typescript
|
|
762
|
-
// Agent with all introspection tools
|
|
763
|
-
const introspectionAgent = createAgent({
|
|
764
|
-
name: 'IntrospectionAgent',
|
|
765
|
-
tools: INTROSPECTION_TOOLS,
|
|
766
|
-
system: `You are an agent that can explore workflow hierarchies.
|
|
767
|
-
Use the introspection tools to understand your position
|
|
768
|
-
and what work has been done.`
|
|
769
|
-
});
|
|
770
|
-
|
|
771
|
-
const explorePrompt = createPrompt({
|
|
772
|
-
user: 'Describe your current position in the workflow hierarchy and summarize what work has been done.',
|
|
773
|
-
responseFormat: z.object({
|
|
774
|
-
position: z.string(),
|
|
775
|
-
depth: z.number(),
|
|
776
|
-
parentName: z.string().optional(),
|
|
777
|
-
summary: z.string()
|
|
778
|
-
})
|
|
779
|
-
});
|
|
780
|
-
|
|
781
|
-
// Agent uses tools to explore, then responds
|
|
782
|
-
const analysis = await introspectionAgent.prompt(explorePrompt);
|
|
783
|
-
console.log('Agent analysis:', analysis);
|
|
784
|
-
```
|
|
785
|
-
|
|
786
|
-
**Output**: Working example at `/examples/examples/10-introspection.ts`
|
|
787
|
-
|
|
788
|
-
**Validation**:
|
|
789
|
-
```bash
|
|
790
|
-
npx tsx examples/examples/10-introspection.ts
|
|
791
|
-
# Expected: Shows agent using all 6 introspection tools in nested workflow
|
|
792
|
-
```
|
|
793
|
-
|
|
794
|
-
---
|
|
795
|
-
|
|
796
|
-
### Task P5.5: Update Examples Index and README
|
|
797
|
-
|
|
798
|
-
**Depends on**: Tasks P5.1-P5.4
|
|
799
|
-
|
|
800
|
-
**Input**: Existing `/examples/index.ts` and `/examples/README.md`
|
|
801
|
-
|
|
802
|
-
**Purpose**: Integrate examples 7-10 into the runner and documentation.
|
|
803
|
-
|
|
804
|
-
**Files**:
|
|
805
|
-
- `/examples/index.ts`
|
|
806
|
-
- `/examples/README.md`
|
|
807
|
-
|
|
808
|
-
**Implementation Steps**:
|
|
809
|
-
|
|
810
|
-
1. Update `/examples/index.ts`:
|
|
811
|
-
```typescript
|
|
812
|
-
// Add imports
|
|
813
|
-
import { runAgentLoopsExample } from './examples/07-agent-loops.js';
|
|
814
|
-
import { runSDKFeaturesExample } from './examples/08-sdk-features.js';
|
|
815
|
-
import { runReflectionExample } from './examples/09-reflection.js';
|
|
816
|
-
import { runIntrospectionExample } from './examples/10-introspection.js';
|
|
817
|
-
|
|
818
|
-
// Update MENU
|
|
819
|
-
const MENU = `
|
|
820
|
-
Available Examples:
|
|
821
|
-
───────────────────────────────────────────────────────────────────
|
|
822
|
-
1. Basic Workflow - Core workflow concepts
|
|
823
|
-
2. Decorator Options - All @Step, @Task, @ObservedState options
|
|
824
|
-
3. Parent-Child Workflows - Hierarchical workflow structures
|
|
825
|
-
4. Observers & Debugger - Real-time monitoring and debugging
|
|
826
|
-
5. Error Handling - Error wrapping, recovery patterns
|
|
827
|
-
6. Concurrent Tasks - Parallel execution patterns
|
|
828
|
-
7. Agent Loops - Agent.prompt() in loops with observability
|
|
829
|
-
8. SDK Features - Tools, MCPs, hooks, skills
|
|
830
|
-
9. Multi-level Reflection - Workflow, agent, prompt reflection
|
|
831
|
-
10. Introspection Tools - Agent self-awareness and hierarchy navigation
|
|
832
|
-
|
|
833
|
-
A. Run All Examples
|
|
834
|
-
Q. Quit
|
|
835
|
-
───────────────────────────────────────────────────────────────────
|
|
836
|
-
`;
|
|
837
|
-
|
|
838
|
-
// Update examples array in runAllExamples()
|
|
839
|
-
const examples = [
|
|
840
|
-
{ name: '1. Basic Workflow', fn: runBasicWorkflowExample },
|
|
841
|
-
{ name: '2. Decorator Options', fn: runDecoratorOptionsExample },
|
|
842
|
-
{ name: '3. Parent-Child Workflows', fn: runParentChildExample },
|
|
843
|
-
{ name: '4. Observers & Debugger', fn: runObserversDebuggerExample },
|
|
844
|
-
{ name: '5. Error Handling', fn: runErrorHandlingExample },
|
|
845
|
-
{ name: '6. Concurrent Tasks', fn: runConcurrentTasksExample },
|
|
846
|
-
{ name: '7. Agent Loops', fn: runAgentLoopsExample },
|
|
847
|
-
{ name: '8. SDK Features', fn: runSDKFeaturesExample },
|
|
848
|
-
{ name: '9. Multi-level Reflection', fn: runReflectionExample },
|
|
849
|
-
{ name: '10. Introspection Tools', fn: runIntrospectionExample },
|
|
850
|
-
];
|
|
851
|
-
|
|
852
|
-
// Update Summary
|
|
853
|
-
console.log(`
|
|
854
|
-
Summary of Features Demonstrated:
|
|
855
|
-
─────────────────────────────────
|
|
856
|
-
✓ Workflow base class with status management
|
|
857
|
-
✓ WorkflowLogger with structured logging
|
|
858
|
-
✓ @Step decorator with all options
|
|
859
|
-
✓ @Task decorator with concurrent option
|
|
860
|
-
✓ @ObservedState decorator with hidden and redact options
|
|
861
|
-
✓ Parent-child workflow hierarchies
|
|
862
|
-
✓ Automatic child attachment via constructor
|
|
863
|
-
✓ Event propagation to root observers
|
|
864
|
-
✓ WorkflowTreeDebugger with ASCII tree visualization
|
|
865
|
-
✓ Custom WorkflowObserver implementations
|
|
866
|
-
✓ Observable event streaming
|
|
867
|
-
✓ WorkflowError with full context
|
|
868
|
-
✓ Error recovery patterns
|
|
869
|
-
✓ Sequential vs parallel execution
|
|
870
|
-
✓ Agent.prompt() in loops with full observability
|
|
871
|
-
✓ Custom tools, MCPs, hooks, skills integration
|
|
872
|
-
✓ Multi-level reflection (workflow, agent, prompt)
|
|
873
|
-
✓ Introspection tools for hierarchy navigation
|
|
874
|
-
✓ Cache integration with metrics
|
|
875
|
-
`);
|
|
876
|
-
```
|
|
877
|
-
|
|
878
|
-
2. Update `/examples/README.md`:
|
|
879
|
-
|
|
880
|
-
Add sections for examples 7-10:
|
|
881
|
-
```markdown
|
|
882
|
-
## 7. Agent Loops with Observability
|
|
883
|
-
|
|
884
|
-
Run: `npx tsx examples/examples/07-agent-loops.ts`
|
|
885
|
-
|
|
886
|
-
Demonstrates:
|
|
887
|
-
- Using Agent.prompt() within ctx.step() loops
|
|
888
|
-
- Multiple agents for different item types
|
|
889
|
-
- Full event tree visualization with timing
|
|
890
|
-
- State snapshots at each iteration
|
|
891
|
-
- Cache hit/miss tracking
|
|
892
|
-
|
|
893
|
-
## 8. SDK Features Integration
|
|
894
|
-
|
|
895
|
-
Run: `npx tsx examples/examples/08-sdk-features.ts`
|
|
896
|
-
|
|
897
|
-
Demonstrates:
|
|
898
|
-
- Custom tool definitions with handlers
|
|
899
|
-
- MCP server configuration (inprocess)
|
|
900
|
-
- Pre/Post tool hooks for logging and validation
|
|
901
|
-
- Skills integration
|
|
902
|
-
- Environment variable pass-through
|
|
903
|
-
|
|
904
|
-
## 9. Multi-level Reflection
|
|
905
|
-
|
|
906
|
-
Run: `npx tsx examples/examples/09-reflection.ts`
|
|
907
|
-
|
|
908
|
-
Demonstrates:
|
|
909
|
-
- Prompt-level reflection (enableReflection on prompt)
|
|
910
|
-
- Agent-level reflection (agent.reflect() method)
|
|
911
|
-
- Workflow-level reflection (step failure retry)
|
|
912
|
-
- Reflection events in tree output
|
|
913
|
-
|
|
914
|
-
## 10. Introspection Tools Demo
|
|
915
|
-
|
|
916
|
-
Run: `npx tsx examples/examples/10-introspection.ts`
|
|
917
|
-
|
|
918
|
-
Demonstrates:
|
|
919
|
-
- Agent with INTROSPECTION_TOOLS
|
|
920
|
-
- inspect_current_node, read_ancestor_chain
|
|
921
|
-
- list_siblings_children, inspect_prior_outputs
|
|
922
|
-
- inspect_cache_status, request_spawn_workflow
|
|
923
|
-
- Agent self-awareness patterns
|
|
924
|
-
```
|
|
925
|
-
|
|
926
|
-
3. Update package.json scripts:
|
|
927
|
-
```json
|
|
928
|
-
{
|
|
929
|
-
"scripts": {
|
|
930
|
-
"start:agent-loops": "tsx examples/examples/07-agent-loops.ts",
|
|
931
|
-
"start:sdk-features": "tsx examples/examples/08-sdk-features.ts",
|
|
932
|
-
"start:reflection": "tsx examples/examples/09-reflection.ts",
|
|
933
|
-
"start:introspection": "tsx examples/examples/10-introspection.ts"
|
|
934
|
-
}
|
|
935
|
-
}
|
|
936
|
-
```
|
|
937
|
-
|
|
938
|
-
**Output**: Updated index, README, and package.json
|
|
939
|
-
|
|
940
|
-
**Validation**:
|
|
941
|
-
```bash
|
|
942
|
-
npm run start:all
|
|
943
|
-
# Expected: All 10 examples run successfully
|
|
944
|
-
```
|
|
945
|
-
|
|
946
|
-
---
|
|
947
|
-
|
|
948
|
-
## 5. Testing Strategy
|
|
949
|
-
|
|
950
|
-
### Unit Tests (Already Exist)
|
|
951
|
-
|
|
952
|
-
```yaml
|
|
953
|
-
existing_tests:
|
|
954
|
-
- path: "/src/__tests__/unit/cache-key.test.ts"
|
|
955
|
-
validates: "Deterministic key generation"
|
|
956
|
-
|
|
957
|
-
- path: "/src/__tests__/unit/cache.test.ts"
|
|
958
|
-
validates: "LRU cache operations"
|
|
959
|
-
|
|
960
|
-
- path: "/src/__tests__/unit/reflection.test.ts"
|
|
961
|
-
validates: "ReflectionManager behavior"
|
|
962
|
-
|
|
963
|
-
- path: "/src/__tests__/unit/introspection-tools.test.ts"
|
|
964
|
-
validates: "All 6 introspection tool handlers"
|
|
965
|
-
```
|
|
966
|
-
|
|
967
|
-
### Integration Tests (Already Exist)
|
|
968
|
-
|
|
969
|
-
```yaml
|
|
970
|
-
existing_tests:
|
|
971
|
-
- path: "/src/__tests__/integration/agent-workflow.test.ts"
|
|
972
|
-
validates: "Agent integration with workflow context"
|
|
973
|
-
|
|
974
|
-
- path: "/src/__tests__/integration/tree-mirroring.test.ts"
|
|
975
|
-
validates: "Event tree hierarchy"
|
|
976
|
-
```
|
|
977
|
-
|
|
978
|
-
### Example Validation
|
|
979
|
-
|
|
980
|
-
```yaml
|
|
981
|
-
manual_validation:
|
|
982
|
-
- example: "07-agent-loops.ts"
|
|
983
|
-
expected: "Loop executes, tree shows timing per step, cache metrics displayed"
|
|
984
|
-
|
|
985
|
-
- example: "08-sdk-features.ts"
|
|
986
|
-
expected: "Tools called with hooks logging, MCP integration shown"
|
|
987
|
-
|
|
988
|
-
- example: "09-reflection.ts"
|
|
989
|
-
expected: "Reflection at all levels, retry on failure, events in tree"
|
|
990
|
-
|
|
991
|
-
- example: "10-introspection.ts"
|
|
992
|
-
expected: "Agent describes position, uses all 6 tools, hierarchy navigation"
|
|
993
|
-
```
|
|
994
|
-
|
|
995
|
-
---
|
|
996
|
-
|
|
997
|
-
## 6. Final Validation Checklist
|
|
998
|
-
|
|
999
|
-
### Code Quality
|
|
1000
|
-
- [ ] All TypeScript compiles without errors: `npm run build`
|
|
1001
|
-
- [ ] No linting warnings: `npm run lint`
|
|
1002
|
-
- [ ] Examples follow existing patterns (check 01-06)
|
|
1003
|
-
- [ ] Proper imports with `.js` extensions
|
|
1004
|
-
- [ ] JSDoc header comments on all examples
|
|
1005
|
-
|
|
1006
|
-
### Functionality
|
|
1007
|
-
- [ ] Example 7 shows agent loops with timing
|
|
1008
|
-
- [ ] Example 8 shows tools, MCPs, hooks, skills
|
|
1009
|
-
- [ ] Example 9 shows three levels of reflection
|
|
1010
|
-
- [ ] Example 10 shows all 6 introspection tools
|
|
1011
|
-
- [ ] All examples produce console output demonstrating features
|
|
1012
|
-
|
|
1013
|
-
### Integration
|
|
1014
|
-
- [ ] Examples run individually: `npx tsx examples/examples/07-*.ts`
|
|
1015
|
-
- [ ] Examples run via runner: `npm run start:all`
|
|
1016
|
-
- [ ] README documents all 10 examples
|
|
1017
|
-
- [ ] Package.json has scripts for examples 7-10
|
|
1018
|
-
|
|
1019
|
-
### Documentation
|
|
1020
|
-
- [ ] Each example has JSDoc header
|
|
1021
|
-
- [ ] Each example uses printHeader/printSection for output
|
|
1022
|
-
- [ ] README sections match example implementations
|
|
1023
|
-
|
|
1024
|
-
---
|
|
1025
|
-
|
|
1026
|
-
## 7. File Structure Summary
|
|
1027
|
-
|
|
1028
|
-
```
|
|
1029
|
-
/examples/
|
|
1030
|
-
├── index.ts # MODIFY: Add examples 7-10
|
|
1031
|
-
├── README.md # MODIFY: Document examples 7-10
|
|
1032
|
-
├── utils/
|
|
1033
|
-
│ └── helpers.ts # EXISTING: No changes needed
|
|
1034
|
-
└── examples/
|
|
1035
|
-
├── 01-basic-workflow.ts # EXISTING
|
|
1036
|
-
├── 02-decorator-options.ts # EXISTING
|
|
1037
|
-
├── 03-parent-child.ts # EXISTING
|
|
1038
|
-
├── 04-observers-debugger.ts# EXISTING
|
|
1039
|
-
├── 05-error-handling.ts # EXISTING
|
|
1040
|
-
├── 06-concurrent-tasks.ts # EXISTING
|
|
1041
|
-
├── 07-agent-loops.ts # NEW: Task P5.1
|
|
1042
|
-
├── 08-sdk-features.ts # NEW: Task P5.2
|
|
1043
|
-
├── 09-reflection.ts # NEW: Task P5.3
|
|
1044
|
-
└── 10-introspection.ts # NEW: Task P5.4
|
|
1045
|
-
|
|
1046
|
-
/package.json # MODIFY: Add example scripts
|
|
1047
|
-
```
|
|
1048
|
-
|
|
1049
|
-
---
|
|
1050
|
-
|
|
1051
|
-
## 8. "No Prior Knowledge" Test
|
|
1052
|
-
|
|
1053
|
-
**Validation**: If someone knew nothing about this codebase, would they have everything needed to implement this successfully using only this PRP?
|
|
1054
|
-
|
|
1055
|
-
- [x] All file paths are absolute and specific
|
|
1056
|
-
- [x] All patterns have concrete code examples
|
|
1057
|
-
- [x] All dependencies are explicitly listed with versions
|
|
1058
|
-
- [x] All validation steps are executable commands
|
|
1059
|
-
- [x] No assumed knowledge of codebase internals
|
|
1060
|
-
- [x] Existing example patterns documented for reference
|
|
1061
|
-
- [x] Import statements show exact module paths
|
|
1062
|
-
- [x] Research documents referenced for background context
|
|
1063
|
-
|
|
1064
|
-
---
|
|
1065
|
-
|
|
1066
|
-
## Confidence Score: 9/10
|
|
1067
|
-
|
|
1068
|
-
**Strengths:**
|
|
1069
|
-
- All Phase 3-4 implementations are complete and tested
|
|
1070
|
-
- Clear existing example patterns to follow (examples 1-6)
|
|
1071
|
-
- Comprehensive research documents exist for all features
|
|
1072
|
-
- Specific code patterns provided for each example
|
|
1073
|
-
- Validation commands provided at each step
|
|
1074
|
-
|
|
1075
|
-
**Risks:**
|
|
1076
|
-
- Examples require actual Anthropic API calls (may need mocking)
|
|
1077
|
-
- Introspection tools demo depends on context being properly set
|
|
1078
|
-
- Example complexity may need iteration for clarity
|
|
1079
|
-
|
|
1080
|
-
**Mitigations:**
|
|
1081
|
-
- Use `simulateApiCall` for demo purposes
|
|
1082
|
-
- Test introspection in actual workflow context
|
|
1083
|
-
- Follow existing example structure for consistency
|
|
1084
|
-
- Keep examples focused on demonstrating specific features
|
|
1085
|
-
|
|
1086
|
-
---
|
|
1087
|
-
|
|
1088
|
-
## Appendix: Example Template
|
|
1089
|
-
|
|
1090
|
-
```typescript
|
|
1091
|
-
/**
|
|
1092
|
-
* Example N: Feature Name
|
|
1093
|
-
*
|
|
1094
|
-
* Demonstrates:
|
|
1095
|
-
* - Feature 1
|
|
1096
|
-
* - Feature 2
|
|
1097
|
-
* - Feature 3
|
|
1098
|
-
*/
|
|
1099
|
-
|
|
1100
|
-
import { z } from 'zod';
|
|
1101
|
-
import {
|
|
1102
|
-
createWorkflow,
|
|
1103
|
-
createAgent,
|
|
1104
|
-
createPrompt,
|
|
1105
|
-
WorkflowTreeDebugger,
|
|
1106
|
-
// ... other imports
|
|
1107
|
-
} from 'groundswell';
|
|
1108
|
-
import { printHeader, printSection, sleep } from '../utils/helpers.js';
|
|
1109
|
-
|
|
1110
|
-
/**
|
|
1111
|
-
* Main example runner
|
|
1112
|
-
*/
|
|
1113
|
-
export async function runExampleName(): Promise<void> {
|
|
1114
|
-
printHeader('Example N: Feature Name');
|
|
1115
|
-
|
|
1116
|
-
// Part 1: Basic demonstration
|
|
1117
|
-
printSection('Part 1: Basic Usage');
|
|
1118
|
-
{
|
|
1119
|
-
// Implementation
|
|
1120
|
-
}
|
|
1121
|
-
|
|
1122
|
-
// Part 2: Advanced usage
|
|
1123
|
-
printSection('Part 2: Advanced Patterns');
|
|
1124
|
-
{
|
|
1125
|
-
// Implementation
|
|
1126
|
-
}
|
|
1127
|
-
|
|
1128
|
-
// Summary
|
|
1129
|
-
console.log('\n=== Example Complete ===');
|
|
1130
|
-
}
|
|
1131
|
-
|
|
1132
|
-
// Allow direct execution
|
|
1133
|
-
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
1134
|
-
runExampleName().catch(console.error);
|
|
1135
|
-
}
|
|
1136
|
-
```
|