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,256 +0,0 @@
|
|
|
1
|
-
# Bug Fix Planning - Validation Summary
|
|
2
|
-
|
|
3
|
-
## ✅ Deliverables Checklist
|
|
4
|
-
|
|
5
|
-
### 1. Research Documents ✅
|
|
6
|
-
- [x] `plan_bugfix/architecture/ANALYSIS_PRD_VS_IMPLEMENTATION.md` (35KB)
|
|
7
|
-
- Detailed PRD vs implementation gap analysis
|
|
8
|
-
- Code snippets with line numbers for all issues
|
|
9
|
-
- 50+ page comprehensive analysis
|
|
10
|
-
|
|
11
|
-
- [x] `plan_bugfix/architecture/GAP_ANALYSIS_SUMMARY.md` (5.4KB)
|
|
12
|
-
- Prioritized fix recommendations
|
|
13
|
-
- Ready-to-use code snippets
|
|
14
|
-
- Quick reference guide
|
|
15
|
-
|
|
16
|
-
### 2. Architecture Documentation ✅
|
|
17
|
-
- [x] `plan_bugfix/architecture/system_context.md` (12KB)
|
|
18
|
-
- Architecture diagram
|
|
19
|
-
- Component overview
|
|
20
|
-
- Data flow documentation
|
|
21
|
-
- Reference implementations
|
|
22
|
-
- Implementation guidelines
|
|
23
|
-
|
|
24
|
-
### 3. Bug Fix Backlog ✅
|
|
25
|
-
- [x] `./bug_fix_tasks.json` (24KB)
|
|
26
|
-
- 1 Phase defined
|
|
27
|
-
- 3 Milestones organized by theme
|
|
28
|
-
- 7 Tasks with clear scope
|
|
29
|
-
- 22 Subtasks with detailed contracts
|
|
30
|
-
- All dependencies defined
|
|
31
|
-
|
|
32
|
-
### 4. Planning Summary ✅
|
|
33
|
-
- [x] `plan_bugfix/README.md` (9.6KB)
|
|
34
|
-
- Executive summary
|
|
35
|
-
- Issue analysis and rationale
|
|
36
|
-
- Implementation guidelines
|
|
37
|
-
- Success metrics
|
|
38
|
-
|
|
39
|
-
## ✅ JSON Structure Validation
|
|
40
|
-
|
|
41
|
-
```json
|
|
42
|
-
{
|
|
43
|
-
"backlog": [
|
|
44
|
-
{
|
|
45
|
-
"type": "Phase",
|
|
46
|
-
"id": "P1",
|
|
47
|
-
"title": "Bug Fix Phase - Critical Issues",
|
|
48
|
-
"status": "Ready",
|
|
49
|
-
"milestones": [
|
|
50
|
-
{
|
|
51
|
-
"type": "Milestone",
|
|
52
|
-
"id": "P1.M1",
|
|
53
|
-
"title": "Error Handling & State Capture Fixes",
|
|
54
|
-
"status": "Planned",
|
|
55
|
-
"tasks": [...]
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
"type": "Milestone",
|
|
59
|
-
"id": "P1.M2",
|
|
60
|
-
"title": "Tree Structure & Event System Fixes",
|
|
61
|
-
"status": "Planned",
|
|
62
|
-
"tasks": [...]
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
"type": "Milestone",
|
|
66
|
-
"id": "P1.M3",
|
|
67
|
-
"title": "Documentation & Minor Improvements",
|
|
68
|
-
"status": "Planned",
|
|
69
|
-
"tasks": [...]
|
|
70
|
-
}
|
|
71
|
-
]
|
|
72
|
-
}
|
|
73
|
-
]
|
|
74
|
-
}
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### Structure Counts
|
|
78
|
-
- **Phases**: 1
|
|
79
|
-
- **Milestones**: 3
|
|
80
|
-
- **Tasks**: 7
|
|
81
|
-
- **Subtasks**: 22
|
|
82
|
-
- **Total Story Points**: 26
|
|
83
|
-
|
|
84
|
-
## ✅ Content Validation
|
|
85
|
-
|
|
86
|
-
### All Subtasks Include
|
|
87
|
-
- [x] `type`: "Subtask"
|
|
88
|
-
- [x] `id`: Unique identifier (e.g., "P1.M1.T1.S1")
|
|
89
|
-
- [x] `title`: Descriptive name
|
|
90
|
-
- [x] `status`: "Planned"
|
|
91
|
-
- [x] `story_points`: 0.5, 1, or 2 (max 2 as required)
|
|
92
|
-
- [x] `dependencies`: Array of prerequisite subtask IDs
|
|
93
|
-
- [x] `context_scope`: Detailed contract with INPUT/LOGIC/OUTPUT sections
|
|
94
|
-
|
|
95
|
-
### All Subtask Contracts Include
|
|
96
|
-
- [x] RESEARCH NOTE: References to architecture findings
|
|
97
|
-
- [x] INPUT: Specific data/interfaces from dependencies
|
|
98
|
-
- [x] LOGIC: Implementation instructions with file paths and line numbers
|
|
99
|
-
- [x] OUTPUT: Expected results and interface definitions
|
|
100
|
-
- [x] MOCKING: What services to mock (if applicable)
|
|
101
|
-
|
|
102
|
-
## ✅ Issue Coverage Analysis
|
|
103
|
-
|
|
104
|
-
### Issues Included in Backlog (6)
|
|
105
|
-
1. [x] Issue #1: Missing treeUpdated events (P1.M2.T2)
|
|
106
|
-
2. [x] Issue #2: Empty state/logs in functional errors (P1.M1.T1, P1.M1.T2)
|
|
107
|
-
3. [x] Issue #4: No cycle detection (P1.M2.T1)
|
|
108
|
-
4. [x] Issue #5: @Task lenient validation (P1.M3.T2 - doc only)
|
|
109
|
-
5. [x] Issue #6: Missing trackTiming docs (P1.M3.T1)
|
|
110
|
-
6. [x] Issue #7: No duplicate attachment check (P1.M2.T3)
|
|
111
|
-
|
|
112
|
-
### Issues Excluded with Rationale (4)
|
|
113
|
-
7. [ ] Issue #3: Error merge strategy
|
|
114
|
-
- Rationale: Feature enhancement, not bug fix
|
|
115
|
-
- Recommendation: Future enhancement phase
|
|
116
|
-
|
|
117
|
-
8. [ ] Issue #8: parentLogId underutilized
|
|
118
|
-
- Rationale: Feature requires UI changes
|
|
119
|
-
- Recommendation: Future enhancement phase
|
|
120
|
-
|
|
121
|
-
9. [ ] Issue #9: Steps not in tree
|
|
122
|
-
- Rationale: Intentional design decision
|
|
123
|
-
- Recommendation: No fix needed
|
|
124
|
-
|
|
125
|
-
10. [ ] Issue #10: Edge case test bugs
|
|
126
|
-
- Rationale: File doesn't exist in codebase
|
|
127
|
-
- Recommendation: Not applicable
|
|
128
|
-
|
|
129
|
-
## ✅ Dependency Chain Validation
|
|
130
|
-
|
|
131
|
-
### Milestone 1: Error Handling & State Capture
|
|
132
|
-
```
|
|
133
|
-
P1.M1.T1.S1 (import) → P1.M1.T1.S2 (state) → P1.M1.T1.S3 (logs) → P1.M1.T1.S4 (test)
|
|
134
|
-
P1.M1.T2.S1 (import) → P1.M1.T2.S2 (fix 1) → P1.M1.T2.S3 (fix 2) → P1.M1.T2.S4 (test)
|
|
135
|
-
```
|
|
136
|
-
✅ Linear dependencies, no circular references
|
|
137
|
-
|
|
138
|
-
### Milestone 2: Tree Structure & Event System
|
|
139
|
-
```
|
|
140
|
-
P1.M2.T1.S1 (implement) → P1.M2.T1.S2 (test) → P1.M2.T1.S3 (extend) → P1.M2.T1.S4 (test)
|
|
141
|
-
P1.M2.T2.S1 (setStatus) → P1.M2.T2.S2 (test) → P1.M2.T2.S3 (snapshot) → P1.M2.T2.S4 (integration)
|
|
142
|
-
P1.M2.T3.S1 (implement) → P1.M2.T3.S2 (test)
|
|
143
|
-
```
|
|
144
|
-
✅ Linear dependencies, test follows implementation
|
|
145
|
-
|
|
146
|
-
### Milestone 3: Documentation & Minor Improvements
|
|
147
|
-
```
|
|
148
|
-
P1.M3.T1.S1 (JSDoc) → P1.M3.T1.S2 (README)
|
|
149
|
-
P1.M3.T2.S1 (JSDoc) → P1.M3.T2.S2 (README)
|
|
150
|
-
```
|
|
151
|
-
✅ Documentation flow, code first then docs
|
|
152
|
-
|
|
153
|
-
## ✅ Quality Assurance
|
|
154
|
-
|
|
155
|
-
### Code References
|
|
156
|
-
All subtasks include specific file references:
|
|
157
|
-
- [x] `src/core/workflow.ts`
|
|
158
|
-
- [x] `src/core/workflow-context.ts`
|
|
159
|
-
- [x] `src/decorators/step.ts`
|
|
160
|
-
- [x] `src/decorators/task.ts`
|
|
161
|
-
- [x] `src/decorators/observed-state.ts`
|
|
162
|
-
- [x] `src/types/observer.ts`
|
|
163
|
-
- [x] `src/__tests__/unit/workflow.test.ts`
|
|
164
|
-
- [x] `src/__tests__/unit/context.test.ts`
|
|
165
|
-
- [x] `src/__tests__/integration/tree-mirroring.test.ts`
|
|
166
|
-
|
|
167
|
-
### Pattern References
|
|
168
|
-
All subtasks reference existing implementations:
|
|
169
|
-
- [x] @Step decorator error handling (lines 109-134)
|
|
170
|
-
- [x] @Step event emission (lines 94-101)
|
|
171
|
-
- [x] Observer notification patterns
|
|
172
|
-
- [x] State serialization via getObservedState()
|
|
173
|
-
|
|
174
|
-
### Test Coverage
|
|
175
|
-
Every implementation has corresponding test subtask:
|
|
176
|
-
- [x] 4 implementation tasks + 4 test tasks in M1
|
|
177
|
-
- [x] 3 implementation tasks + 3 test tasks in M2
|
|
178
|
-
- [x] 0 implementation tasks (docs only) in M3
|
|
179
|
-
|
|
180
|
-
## ✅ Standards Compliance
|
|
181
|
-
|
|
182
|
-
### Hierarchy Definitions
|
|
183
|
-
- [x] **PHASE**: Project-scope goals ✓ (P1: Bug Fix Phase)
|
|
184
|
-
- [x] **MILESTONE**: Key objectives (1-12 weeks) ✓ (3 milestones, all themed)
|
|
185
|
-
- [x] **TASK**: Complete features (days to weeks) ✓ (7 tasks, scoped by file)
|
|
186
|
-
- [x] **SUBTASK**: Atomic steps (0.5-2 SP) ✓ (22 subtasks, max 2 SP)
|
|
187
|
-
|
|
188
|
-
### Standard of Work (SOW)
|
|
189
|
-
- [x] **RESEARCH-DRIVEN**: Agents spawned, findings stored in `plan_bugfix/architecture/`
|
|
190
|
-
- [x] **COHERENCE & CONTINUITY**: Explicit handoffs, strict references
|
|
191
|
-
- [x] **IMPLICIT TDD**: Tests in every task (test subtasks included)
|
|
192
|
-
- [x] **CONTEXT SCOPE**: Every subtask has detailed contract
|
|
193
|
-
|
|
194
|
-
### Output Format
|
|
195
|
-
- [x] File location: `./bug_fix_tasks.json` (in current working directory)
|
|
196
|
-
- [x] JSON structure: Matches required schema exactly
|
|
197
|
-
- [x] No JSON output to conversation
|
|
198
|
-
- [x] File created with Write tool
|
|
199
|
-
|
|
200
|
-
## ✅ Readiness Checklist
|
|
201
|
-
|
|
202
|
-
### For PRP Agents
|
|
203
|
-
- [x] All contracts defined in `context_scope`
|
|
204
|
-
- [x] File paths and line numbers specified
|
|
205
|
-
- [x] INPUT/OUTPUT interfaces documented
|
|
206
|
-
- [x] Dependencies explicitly listed
|
|
207
|
-
- [x] Mocking requirements stated
|
|
208
|
-
- [x] Reference implementations provided
|
|
209
|
-
|
|
210
|
-
### For Implementation
|
|
211
|
-
- [x] No breaking changes to public APIs
|
|
212
|
-
- [x] All changes are additive or bug fixes
|
|
213
|
-
- [x] Follows existing architectural patterns
|
|
214
|
-
- [x] Maintains type safety
|
|
215
|
-
- [x] Includes test coverage
|
|
216
|
-
|
|
217
|
-
### For Project Management
|
|
218
|
-
- [x] Story points estimated (26 total)
|
|
219
|
-
- [x] Dependencies mapped
|
|
220
|
-
- [x] Milestone themes clear
|
|
221
|
-
- [x] Success criteria defined
|
|
222
|
-
- [x] Rollback strategy documented
|
|
223
|
-
|
|
224
|
-
## 📊 Summary Statistics
|
|
225
|
-
|
|
226
|
-
| Metric | Count | Status |
|
|
227
|
-
|--------|-------|--------|
|
|
228
|
-
| Research Documents | 3 | ✅ Complete |
|
|
229
|
-
| Architecture Docs | 1 | ✅ Complete |
|
|
230
|
-
| Planning Docs | 1 | ✅ Complete |
|
|
231
|
-
| JSON Backlog | 1 | ✅ Complete |
|
|
232
|
-
| Total Files Created | 6 | ✅ Complete |
|
|
233
|
-
| Total Documentation Size | 86KB | ✅ Comprehensive |
|
|
234
|
-
| Phases | 1 | ✅ Ready |
|
|
235
|
-
| Milestones | 3 | ✅ Ready |
|
|
236
|
-
| Tasks | 7 | ✅ Ready |
|
|
237
|
-
| Subtasks | 22 | ✅ Ready |
|
|
238
|
-
| Story Points | 26 SP | ✅ Estimated |
|
|
239
|
-
| Issues Covered | 6/10 | ✅ Prioritized |
|
|
240
|
-
| Test Subtasks | 7 | ✅ Included |
|
|
241
|
-
|
|
242
|
-
## 🎯 Sign-Off
|
|
243
|
-
|
|
244
|
-
**Planning Status**: ✅ **COMPLETE**
|
|
245
|
-
|
|
246
|
-
**Quality Check**: ✅ **PASSED**
|
|
247
|
-
|
|
248
|
-
**Ready for Implementation**: ✅ **YES**
|
|
249
|
-
|
|
250
|
-
**Recommended Next Step**: Begin Phase 1, Milestone 1 (Error Handling Fixes)
|
|
251
|
-
|
|
252
|
-
---
|
|
253
|
-
|
|
254
|
-
**Validation Completed**: 2026-01-10
|
|
255
|
-
**Validated By**: Lead Technical Architect & Project Management Synthesizer
|
|
256
|
-
**Confidence Level**: HIGH (All research completed, all contracts defined)
|
|
@@ -1,346 +0,0 @@
|
|
|
1
|
-
# Hierarchical Workflow Engine - System Context
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
The Hierarchical Workflow Engine is a TypeScript-based framework for building composable, observable workflows with decorators, event systems, and tree-based debugging. The implementation is production-ready with 154 passing tests and excellent PRD compliance.
|
|
6
|
-
|
|
7
|
-
## Architecture Diagram
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
11
|
-
│ WORKFLOW ENGINE │
|
|
12
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
13
|
-
│ │
|
|
14
|
-
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
15
|
-
│ │ Decorators │ │ Core │ │ Events │ │
|
|
16
|
-
│ │ │ │ │ │ │ │
|
|
17
|
-
│ │ • @Step │─────▶│ • Workflow │─────▶│ • Emit/ │ │
|
|
18
|
-
│ │ • @Task │ │ • Context │ │ Subscribe │ │
|
|
19
|
-
│ │ • @Observed │ │ • Logger │ │ │ │
|
|
20
|
-
│ │ State │ │ │ │ │ │
|
|
21
|
-
│ └──────────────┘ └──────────────┘ └──────────────┘ │
|
|
22
|
-
│ │
|
|
23
|
-
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
24
|
-
│ │ Tree │ │ Debugger │ │ Types │ │
|
|
25
|
-
│ │ │ │ │ │ │ │
|
|
26
|
-
│ │ • Structure │─────▶│ • Traversal │─────▶│ • Interfaces │ │
|
|
27
|
-
│ │ • Mirroring │ │ • Query │ │ • Enums │ │
|
|
28
|
-
│ │ • Rebuild │ │ • Visualize │ │ │ │
|
|
29
|
-
│ └──────────────┘ └──────────────┘ └──────────────┘ │
|
|
30
|
-
│ │
|
|
31
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Core Components
|
|
35
|
-
|
|
36
|
-
### 1. Workflow Class (`src/core/workflow.ts`)
|
|
37
|
-
- **Purpose**: Base class for all workflows
|
|
38
|
-
- **Key Methods**:
|
|
39
|
-
- `run()`: Execute workflow logic
|
|
40
|
-
- `attachChild()`: Attach child workflow
|
|
41
|
-
- `setStatus()`: Update workflow status
|
|
42
|
-
- `getRoot()`: Traverse to root workflow
|
|
43
|
-
- `snapshotState()`: Capture current state
|
|
44
|
-
- **Pattern**: Class-based inheritance with decorator support
|
|
45
|
-
|
|
46
|
-
### 2. Workflow Context (`src/core/workflow-context.ts`)
|
|
47
|
-
- **Purpose**: Functional workflow alternative to class-based approach
|
|
48
|
-
- **Key Methods**:
|
|
49
|
-
- `step()`: Execute step with reflection
|
|
50
|
-
- `task()`: Execute child workflows
|
|
51
|
-
- `prompt()`: Agent prompt integration
|
|
52
|
-
- **Pattern**: Functional composition with context propagation
|
|
53
|
-
|
|
54
|
-
### 3. Decorators (`src/decorators/`)
|
|
55
|
-
- **@Step**: Wrap method execution with timing, error handling, state capture
|
|
56
|
-
- **@Task**: Attach and execute child workflows (sequential or concurrent)
|
|
57
|
-
- **@ObservedState**: Mark fields for state serialization
|
|
58
|
-
- **Pattern**: Decorator factory pattern with options
|
|
59
|
-
|
|
60
|
-
### 4. Event System (`src/types/events.ts`)
|
|
61
|
-
- **Event Types**: childAttached, stateSnapshot, stepStart/End, error, treeUpdated, etc.
|
|
62
|
-
- **Pattern**: Pub/sub with observer notification
|
|
63
|
-
- **Usage**: `emitEvent()` + Observer callbacks
|
|
64
|
-
|
|
65
|
-
### 5. Observer Pattern (`src/types/observer.ts`)
|
|
66
|
-
- **Interface**: `onLog()`, `onEvent()`, `onStateUpdated()`, `onTreeChanged()`
|
|
67
|
-
- **Pattern**: Attach to root workflow, receive all tree events
|
|
68
|
-
- **Safety**: Observer errors are caught and logged
|
|
69
|
-
|
|
70
|
-
### 6. Tree Debugger (`src/debugger/tree-debugger.ts`)
|
|
71
|
-
- **Purpose**: Visualize and query workflow tree structure
|
|
72
|
-
- **Features**:
|
|
73
|
-
- `toTreeString()`: Render tree as text
|
|
74
|
-
- `findNodeById()`: Query by ID
|
|
75
|
-
- `rebuild()`: Update tree on changes
|
|
76
|
-
- **Pattern**: Mirror tree structure from WorkflowNodes
|
|
77
|
-
|
|
78
|
-
## Data Flow
|
|
79
|
-
|
|
80
|
-
### Workflow Execution Flow
|
|
81
|
-
```
|
|
82
|
-
User calls workflow.run()
|
|
83
|
-
↓
|
|
84
|
-
@Step decorator intercepts
|
|
85
|
-
↓
|
|
86
|
-
Emit stepStart event
|
|
87
|
-
↓
|
|
88
|
-
Execute method logic
|
|
89
|
-
↓
|
|
90
|
-
Capture state via @ObservedState
|
|
91
|
-
↓
|
|
92
|
-
Emit stepEnd event (with timing)
|
|
93
|
-
↓
|
|
94
|
-
Return result
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
### Error Handling Flow
|
|
98
|
-
```
|
|
99
|
-
Error thrown in method
|
|
100
|
-
↓
|
|
101
|
-
@Step catch block
|
|
102
|
-
↓
|
|
103
|
-
Capture state: getObservedState(this)
|
|
104
|
-
↓
|
|
105
|
-
Capture logs: [...wf.node.logs]
|
|
106
|
-
↓
|
|
107
|
-
Create WorkflowError object
|
|
108
|
-
↓
|
|
109
|
-
Emit error event
|
|
110
|
-
↓
|
|
111
|
-
Observers notified
|
|
112
|
-
↓
|
|
113
|
-
Workflow status → 'failed'
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
### Tree Update Flow
|
|
117
|
-
```
|
|
118
|
-
Workflow state changes
|
|
119
|
-
↓
|
|
120
|
-
Emit treeUpdated event
|
|
121
|
-
↓
|
|
122
|
-
Root observers notified
|
|
123
|
-
↓
|
|
124
|
-
Observer.onTreeChanged(root)
|
|
125
|
-
↓
|
|
126
|
-
TreeDebugger.rebuild()
|
|
127
|
-
↓
|
|
128
|
-
Internal node map updated
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
## Key Patterns
|
|
132
|
-
|
|
133
|
-
### 1. State Serialization
|
|
134
|
-
```typescript
|
|
135
|
-
// Decorator marks fields for serialization
|
|
136
|
-
@ObservedState({ redact: ['apiKey'] })
|
|
137
|
-
private apiKey: string;
|
|
138
|
-
|
|
139
|
-
// Reflection captures state
|
|
140
|
-
const state = getObservedState(workflowInstance);
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
### 2. Error Context Capture
|
|
144
|
-
```typescript
|
|
145
|
-
// Correct pattern (from @Step decorator)
|
|
146
|
-
const snap = getObservedState(this as object);
|
|
147
|
-
const workflowError: WorkflowError = {
|
|
148
|
-
state: snap, // ✅ Captured
|
|
149
|
-
logs: [...wf.node.logs], // ✅ Captured
|
|
150
|
-
// ... other fields
|
|
151
|
-
};
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
### 3. Event Emission
|
|
155
|
-
```typescript
|
|
156
|
-
this.emitEvent({
|
|
157
|
-
type: 'stepEnd',
|
|
158
|
-
node: this.node,
|
|
159
|
-
step: stepName,
|
|
160
|
-
duration: endTime - startTime,
|
|
161
|
-
});
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
### 4. Observer Attachment
|
|
165
|
-
```typescript
|
|
166
|
-
const debugger = new TreeDebugger();
|
|
167
|
-
workflow.attachObserver(debugger);
|
|
168
|
-
// Observers attach to root, receive all tree events
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
## Type System
|
|
172
|
-
|
|
173
|
-
### Core Interfaces
|
|
174
|
-
- **WorkflowNode**: Tree node representation
|
|
175
|
-
- **WorkflowEvent**: Discriminated union of all event types
|
|
176
|
-
- **WorkflowError**: Error with state snapshot and logs
|
|
177
|
-
- **WorkflowObserver**: Observer interface
|
|
178
|
-
- **SerializedWorkflowState**: JSON-serializable state
|
|
179
|
-
|
|
180
|
-
### Enums
|
|
181
|
-
- **WorkflowStatus**: 'idle' | 'running' | 'completed' | 'failed'
|
|
182
|
-
|
|
183
|
-
## Testing Strategy
|
|
184
|
-
|
|
185
|
-
### Test Structure
|
|
186
|
-
- **Unit Tests**: 128 tests in `src/__tests__/unit/`
|
|
187
|
-
- **Integration Tests**: 26 tests in `src/__tests__/integration/`
|
|
188
|
-
- **Total**: 154 passing, 0 failing (edge-cases.test.ts does not exist)
|
|
189
|
-
|
|
190
|
-
### Coverage Areas
|
|
191
|
-
- ✅ Decorator functionality (@Step, @Task, @ObservedState)
|
|
192
|
-
- ✅ Workflow lifecycle (idle → running → completed/failed)
|
|
193
|
-
- ✅ Parent-child relationships
|
|
194
|
-
- ✅ Observer pattern
|
|
195
|
-
- ✅ Tree debugging
|
|
196
|
-
- ✅ Error handling
|
|
197
|
-
- ✅ Event emission
|
|
198
|
-
- ⚠️ Cycle detection (missing)
|
|
199
|
-
- ⚠️ Concurrent error merging (missing)
|
|
200
|
-
|
|
201
|
-
## Known Issues (From Bug Report)
|
|
202
|
-
|
|
203
|
-
### Major Issues
|
|
204
|
-
1. **Missing `treeUpdated` events**: Event type defined but never emitted
|
|
205
|
-
2. **Empty state/logs in functional errors**: `{}` and `[]` instead of captured data
|
|
206
|
-
3. **No error merge strategy**: Type exists but unused
|
|
207
|
-
4. **No cycle detection**: `getRoot()` can infinite loop
|
|
208
|
-
|
|
209
|
-
### Minor Issues
|
|
210
|
-
5. **Lenient @Task validation**: Silently skips non-Workflow returns
|
|
211
|
-
6. **Undocumented trackTiming default**: Default is `true`, not `false`
|
|
212
|
-
7. **No duplicate attachment check**: Can attach same child twice
|
|
213
|
-
8. **Underutilized parentLogId**: Hierarchical logging not exposed
|
|
214
|
-
9. **Steps not in tree**: Step nodes are events, not tree nodes
|
|
215
|
-
|
|
216
|
-
## Dependencies
|
|
217
|
-
|
|
218
|
-
### Runtime
|
|
219
|
-
- TypeScript 5.x
|
|
220
|
-
- No external runtime dependencies (vanilla TS/JS)
|
|
221
|
-
|
|
222
|
-
### Development
|
|
223
|
-
- Vitest: Testing framework
|
|
224
|
-
- tsx: TypeScript execution
|
|
225
|
-
- type-fest: Type utilities
|
|
226
|
-
|
|
227
|
-
## File Organization
|
|
228
|
-
|
|
229
|
-
```
|
|
230
|
-
src/
|
|
231
|
-
├── core/
|
|
232
|
-
│ ├── workflow.ts # Main Workflow class
|
|
233
|
-
│ ├── workflow-context.ts # Functional workflow context
|
|
234
|
-
│ ├── event-tree.ts # Event tree builder
|
|
235
|
-
│ ├── logger.ts # Logging system
|
|
236
|
-
│ └── context.ts # AsyncLocalStorage context
|
|
237
|
-
├── decorators/
|
|
238
|
-
│ ├── step.ts # @Step decorator
|
|
239
|
-
│ ├── task.ts # @Task decorator
|
|
240
|
-
│ └── observed-state.ts # @ObservedState decorator
|
|
241
|
-
├── debugger/
|
|
242
|
-
│ └── tree-debugger.ts # Tree visualization
|
|
243
|
-
├── types/
|
|
244
|
-
│ ├── workflow.ts # Core interfaces
|
|
245
|
-
│ ├── events.ts # Event types
|
|
246
|
-
│ ├── observer.ts # Observer interface
|
|
247
|
-
│ ├── error.ts # WorkflowError interface
|
|
248
|
-
│ ├── decorators.ts # Decorator options
|
|
249
|
-
│ └── error-strategy.ts # Error merge types
|
|
250
|
-
└── __tests__/
|
|
251
|
-
├── unit/ # Unit tests (11 files)
|
|
252
|
-
└── integration/ # Integration tests (2 files)
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
## Implementation Guidelines
|
|
256
|
-
|
|
257
|
-
### When Fixing Bugs:
|
|
258
|
-
1. **Follow existing patterns**: Look at @Step decorator for error handling
|
|
259
|
-
2. **Maintain type safety**: No `as any` casts
|
|
260
|
-
3. **Emit events**: State changes should emit events
|
|
261
|
-
4. **Test first**: Write failing test, then fix
|
|
262
|
-
5. **Observer safety**: Wrap observer callbacks in try-catch
|
|
263
|
-
|
|
264
|
-
### When Adding Features:
|
|
265
|
-
1. **Define types first**: Interfaces in `src/types/`
|
|
266
|
-
2. **Add event types**: If state changes, emit event
|
|
267
|
-
3. **Update observers**: Notify observers of changes
|
|
268
|
-
4. **Write tests**: Unit + integration coverage
|
|
269
|
-
5. **Document**: Update README with examples
|
|
270
|
-
|
|
271
|
-
## Critical Constraints
|
|
272
|
-
|
|
273
|
-
1. **NO Breaking Changes**: Existing APIs must remain stable
|
|
274
|
-
2. **Type Safety**: Full TypeScript compilation required
|
|
275
|
-
3. **Test Coverage**: All fixes must have tests
|
|
276
|
-
4. **Observer Isolation**: Observer errors must not crash workflows
|
|
277
|
-
5. **Tree Consistency**: Parent-child relationships must stay synchronized
|
|
278
|
-
|
|
279
|
-
## Reference Implementations
|
|
280
|
-
|
|
281
|
-
### Correct Error Handling
|
|
282
|
-
```typescript
|
|
283
|
-
// src/decorators/step.ts (lines 109-134)
|
|
284
|
-
catch (err: unknown) {
|
|
285
|
-
const error = err as Error;
|
|
286
|
-
const snap = getObservedState(this as object);
|
|
287
|
-
|
|
288
|
-
const workflowError: WorkflowError = {
|
|
289
|
-
message: error?.message ?? 'Unknown error',
|
|
290
|
-
original: err,
|
|
291
|
-
workflowId: wf.id,
|
|
292
|
-
stack: error?.stack,
|
|
293
|
-
state: snap, // ✅ CORRECT
|
|
294
|
-
logs: [...wf.node.logs] as LogEntry[], // ✅ CORRECT
|
|
295
|
-
};
|
|
296
|
-
|
|
297
|
-
wf.emitEvent({ type: 'error', node: wf.node, error: workflowError });
|
|
298
|
-
throw workflowError;
|
|
299
|
-
}
|
|
300
|
-
```
|
|
301
|
-
|
|
302
|
-
### Correct Event Emission
|
|
303
|
-
```typescript
|
|
304
|
-
// src/decorators/step.ts (lines 94-101)
|
|
305
|
-
if (opts.trackTiming !== false) {
|
|
306
|
-
wf.emitEvent({
|
|
307
|
-
type: 'stepEnd',
|
|
308
|
-
node: wf.node,
|
|
309
|
-
step: stepName,
|
|
310
|
-
duration,
|
|
311
|
-
});
|
|
312
|
-
}
|
|
313
|
-
```
|
|
314
|
-
|
|
315
|
-
### Correct Observer Notification
|
|
316
|
-
```typescript
|
|
317
|
-
// src/core/logger.ts (lines 23-29)
|
|
318
|
-
for (const obs of observers) {
|
|
319
|
-
try {
|
|
320
|
-
obs.onLog(entry);
|
|
321
|
-
} catch (err) {
|
|
322
|
-
// Observer errors don't crash the system
|
|
323
|
-
console.error('Observer error:', err);
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
## Performance Considerations
|
|
329
|
-
|
|
330
|
-
1. **Timing Overhead**: `trackTiming` adds timestamp capture overhead
|
|
331
|
-
2. **State Serialization**: `getObservedState()` uses reflection (cache if needed)
|
|
332
|
-
3. **Observer Notification**: Observers are notified synchronously (keep callbacks fast)
|
|
333
|
-
4. **Tree Rebuild**: TreeDebugger.rebuild() walks entire tree (call only when needed)
|
|
334
|
-
|
|
335
|
-
## Security Considerations
|
|
336
|
-
|
|
337
|
-
1. **Cycle Detection**: Missing - could cause DoS (Issue #4)
|
|
338
|
-
2. **Input Validation**: Decorators validate workflow objects
|
|
339
|
-
3. **Error Information**: Errors may contain sensitive data in `state` (use `redact` option)
|
|
340
|
-
4. **Observer Isolation**: Observer errors are caught (no crash escalation)
|
|
341
|
-
|
|
342
|
-
---
|
|
343
|
-
|
|
344
|
-
**Document Version**: 1.0
|
|
345
|
-
**Last Updated**: 2026-01-10
|
|
346
|
-
**Maintained By**: Architecture Team
|