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,629 +0,0 @@
|
|
|
1
|
-
# Product Requirement Prompt (PRP): Verify TypeScript Compilation and Type Checking
|
|
2
|
-
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
## Goal
|
|
6
|
-
|
|
7
|
-
**Feature Goal**: Verify that TypeScript compilation and type checking succeed after the addition of the `childDetached` event type to the `WorkflowEvent` discriminated union.
|
|
8
|
-
|
|
9
|
-
**Deliverable**: Verification report confirming that:
|
|
10
|
-
1. TypeScript compilation succeeds with no type errors related to the new `childDetached` event type
|
|
11
|
-
2. The `WorkflowEvent` discriminated union correctly handles type narrowing for `childDetached`
|
|
12
|
-
3. Observer `onEvent()` methods properly accept the new event type
|
|
13
|
-
|
|
14
|
-
**Success Definition**:
|
|
15
|
-
- `npm run lint` (tsc --noEmit) completes with zero type errors related to `childDetached` event type
|
|
16
|
-
- Discriminated union type narrowing works correctly for `childDetached` events
|
|
17
|
-
- All observers can receive `childDetached` events without type errors
|
|
18
|
-
|
|
19
|
-
## User Persona (if applicable)
|
|
20
|
-
|
|
21
|
-
**Target User**: Development team members who need confidence that the type system remains valid after adding the `childDetached` event type.
|
|
22
|
-
|
|
23
|
-
**Use Case**: Final validation before release, ensuring that all type definitions are correct and the TypeScript compiler validates the codebase.
|
|
24
|
-
|
|
25
|
-
**User Journey**:
|
|
26
|
-
1. Run `npm run lint` to check for type errors
|
|
27
|
-
2. Verify that the `childDetached` event type is properly typed
|
|
28
|
-
3. Confirm discriminated union narrowing works as expected
|
|
29
|
-
4. Ensure observers can handle the new event type
|
|
30
|
-
|
|
31
|
-
**Pain Points Addressed**:
|
|
32
|
-
- Catches type errors at compile time before runtime
|
|
33
|
-
- Ensures type safety of the event system
|
|
34
|
-
- Validates observer pattern compatibility
|
|
35
|
-
|
|
36
|
-
## Why
|
|
37
|
-
|
|
38
|
-
- **Type Safety Foundation**: TypeScript strict mode catches type errors at compile time, preventing runtime issues
|
|
39
|
-
- **Discriminated Union Integrity**: The `WorkflowEvent` discriminated union is core to the type system - all event handling depends on it working correctly
|
|
40
|
-
- **Observer Pattern Compatibility**: Observers use `onEvent(event: WorkflowEvent)` - the new event type must be compatible
|
|
41
|
-
- **Bug Fix Completion**: This task completes the validation phase of the bug fix for attachChild() tree integrity violation (P1)
|
|
42
|
-
- **Release Readiness**: Ensures the codebase is ready for release with no type errors
|
|
43
|
-
|
|
44
|
-
## What
|
|
45
|
-
|
|
46
|
-
Verify TypeScript compilation and type checking for the `childDetached` event type that was added in P1.M2.T1.S1.
|
|
47
|
-
|
|
48
|
-
### Validation Scope
|
|
49
|
-
|
|
50
|
-
1. **TypeScript Compilation**: Run `npm run lint` or `tsc --noEmit` to verify no type errors
|
|
51
|
-
2. **Discriminated Union Validation**: Verify that the `childDetached` event type is correctly typed and type narrowing works
|
|
52
|
-
3. **Observer Compatibility**: Verify that observer `onEvent()` methods can accept `childDetached` events
|
|
53
|
-
4. **Event Emission Validation**: Verify that `emitEvent()` can emit `childDetached` events
|
|
54
|
-
|
|
55
|
-
### Success Criteria
|
|
56
|
-
|
|
57
|
-
- [ ] TypeScript compilation succeeds: `npm run lint` returns exit code 0 (no errors related to childDetached)
|
|
58
|
-
- [ ] Discriminated union type narrowing works for `childDetached` events
|
|
59
|
-
- [ ] Observer `onEvent()` accepts `childDetached` events without type errors
|
|
60
|
-
- [ ] `emitEvent()` can emit `childDetached` events without type errors
|
|
61
|
-
|
|
62
|
-
### Exclusions
|
|
63
|
-
|
|
64
|
-
- Pre-existing TypeScript errors related to protected `node` property access in test files are documented but not part of this validation
|
|
65
|
-
- This task is validation only - no code modifications required
|
|
66
|
-
|
|
67
|
-
## All Needed Context
|
|
68
|
-
|
|
69
|
-
### Context Completeness Check
|
|
70
|
-
|
|
71
|
-
**"No Prior Knowledge" Test**: If someone knew nothing about this codebase, would they have everything needed to implement this successfully?
|
|
72
|
-
|
|
73
|
-
**Answer**: YES - This PRP provides:
|
|
74
|
-
- Exact commands to run for TypeScript type checking
|
|
75
|
-
- The location and structure of the `childDetached` event type
|
|
76
|
-
- How discriminated unions work in this codebase
|
|
77
|
-
- Expected validation results
|
|
78
|
-
- Known pre-existing errors to ignore
|
|
79
|
-
|
|
80
|
-
### Documentation & References
|
|
81
|
-
|
|
82
|
-
```yaml
|
|
83
|
-
# MUST READ - Include these in your context window
|
|
84
|
-
|
|
85
|
-
- url: https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions
|
|
86
|
-
why: Official TypeScript documentation on discriminated unions - understand how type narrowing works
|
|
87
|
-
critical: The `type` property is the discriminator that enables TypeScript to narrow types
|
|
88
|
-
|
|
89
|
-
- url: https://www.typescriptlang.org/docs/handbook/compiler-options.html
|
|
90
|
-
why: TypeScript compiler options reference - understand what tsc --noEmit checks
|
|
91
|
-
critical: strict mode enables all strict type checking options
|
|
92
|
-
|
|
93
|
-
- file: /home/dustin/projects/groundswell/src/types/events.ts
|
|
94
|
-
why: Contains the WorkflowEvent discriminated union with childDetached event type (line 11)
|
|
95
|
-
pattern: Study the structure - all event types use { type: 'eventName'; ...properties }
|
|
96
|
-
gotcha: childDetached uses childId: string (not child: WorkflowNode) because child is no longer in tree
|
|
97
|
-
|
|
98
|
-
- file: /home/dustin/projects/groundswell/src/core/workflow.ts
|
|
99
|
-
why: Contains emitEvent() method (lines 363-379) that emits childDetached events
|
|
100
|
-
pattern: Events are emitted via this.emitEvent({ type: 'childDetached', parentId: this.id, childId: child.id })
|
|
101
|
-
gotcha: emitEvent() has special handling for tree-changing events including childDetached (line 372)
|
|
102
|
-
|
|
103
|
-
- file: /home/dustin/projects/groundswell/src/types/observer.ts
|
|
104
|
-
why: Defines WorkflowObserver interface with onEvent() method (line 13)
|
|
105
|
-
pattern: Observers receive all WorkflowEvent types via onEvent(event: WorkflowEvent)
|
|
106
|
-
gotcha: Observers are NOT required to handle all event types - they can ignore unknown types
|
|
107
|
-
|
|
108
|
-
- file: /home/dustin/projects/groundswell/package.json
|
|
109
|
-
why: Contains npm scripts for TypeScript validation (lines 33-36)
|
|
110
|
-
pattern: "lint": "tsc --noEmit" runs type checking without generating files
|
|
111
|
-
gotcha: "build": "tsc" compiles TypeScript to JavaScript in dist/ directory
|
|
112
|
-
|
|
113
|
-
- file: /home/dustin/projects/groundswell/tsconfig.json
|
|
114
|
-
why: TypeScript compiler configuration
|
|
115
|
-
pattern: strict mode enabled (line 12) - all strict type checking options are on
|
|
116
|
-
gotcha: isolatedModules: true (line 18) ensures each file can be compiled independently
|
|
117
|
-
|
|
118
|
-
- file: /home/dustin/projects/groundswell/src/__tests__/unit/workflow-detachChild.test.ts
|
|
119
|
-
why: Contains tests for childDetached event type (lines 82-85)
|
|
120
|
-
pattern: Uses discriminated union type guard: event.type === 'childDetached' && event.parentId
|
|
121
|
-
gotcha: Test shows how type narrowing works for childDetached events
|
|
122
|
-
|
|
123
|
-
- file: /home/dustin/projects/groundswell/src/__tests__/unit/workflow-emitEvent-childDetached.test.ts
|
|
124
|
-
why: Contains comprehensive tests for childDetached event emission
|
|
125
|
-
pattern: Tests verify event structure, observer notification, and tree change handling
|
|
126
|
-
gotcha: This test file was created specifically for validating childDetached events
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
### Current Codebase Tree
|
|
130
|
-
|
|
131
|
-
```bash
|
|
132
|
-
/home/dustin/projects/groundswell
|
|
133
|
-
├── src/
|
|
134
|
-
│ ├── types/
|
|
135
|
-
│ │ ├── events.ts # Contains WorkflowEvent discriminated union with childDetached (line 11)
|
|
136
|
-
│ │ ├── observer.ts # Contains WorkflowObserver interface with onEvent() method
|
|
137
|
-
│ │ └── index.ts # Type exports
|
|
138
|
-
│ ├── core/
|
|
139
|
-
│ │ └── workflow.ts # Contains emitEvent() and detachChild() methods
|
|
140
|
-
│ └── __tests__/
|
|
141
|
-
│ ├── unit/
|
|
142
|
-
│ │ ├── workflow-detachChild.test.ts # Tests for childDetached events
|
|
143
|
-
│ │ └── workflow-emitEvent-childDetached.test.ts # Event emission tests
|
|
144
|
-
│ └── integration/
|
|
145
|
-
│ └── workflow-reparenting.test.ts # Reparenting integration tests
|
|
146
|
-
├── plan/
|
|
147
|
-
│ └── bugfix/
|
|
148
|
-
│ └── P1M4T2S1/
|
|
149
|
-
│ └── PRP.md # This file
|
|
150
|
-
├── package.json # npm scripts for TypeScript validation
|
|
151
|
-
└── tsconfig.json # TypeScript compiler configuration
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
### Desired Codebase Tree with Files to be Added
|
|
155
|
-
|
|
156
|
-
```bash
|
|
157
|
-
# NO FILES ARE ADDED OR MODIFIED IN THIS TASK
|
|
158
|
-
# This is a VALIDATION task only
|
|
159
|
-
plan/bugfix/P1M4T2S1/
|
|
160
|
-
└── validation-report.md # OUTPUT: Validation results report (optional)
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
### Known Gotchas of Our Codebase & Library Quirks
|
|
164
|
-
|
|
165
|
-
```typescript
|
|
166
|
-
// CRITICAL: TypeScript Version
|
|
167
|
-
// - Declared in package.json: ^5.2.0
|
|
168
|
-
// - Currently installed: 5.9.3
|
|
169
|
-
// - Version mismatch is acceptable (caret range allows compatible updates)
|
|
170
|
-
|
|
171
|
-
// CRITICAL: Pre-existing TypeScript Errors
|
|
172
|
-
// - There are 50+ pre-existing TypeScript errors related to protected 'node' property access
|
|
173
|
-
// - These errors are in test files: src/__tests__/adversarial/*.test.ts
|
|
174
|
-
// - These errors are NOT related to the childDetached event type
|
|
175
|
-
// - This validation focuses ONLY on childDetached-related type errors
|
|
176
|
-
// - Example error: "Property 'node' is protected and only accessible within class 'Workflow<T>'"
|
|
177
|
-
|
|
178
|
-
// CRITICAL: Strict Mode Configuration
|
|
179
|
-
// - tsconfig.json has "strict": true (line 12)
|
|
180
|
-
// - This enables ALL strict type checking options:
|
|
181
|
-
// - noImplicitAny
|
|
182
|
-
// - strictNullChecks
|
|
183
|
-
// - strictFunctionTypes
|
|
184
|
-
// - strictBindCallApply
|
|
185
|
-
// - strictPropertyInitialization
|
|
186
|
-
// - noImplicitThis
|
|
187
|
-
// - alwaysStrict
|
|
188
|
-
// - Any type error will cause compilation to fail
|
|
189
|
-
|
|
190
|
-
// CRITICAL: Discriminated Union Pattern
|
|
191
|
-
// - All WorkflowEvent types use 'type' property as discriminator (string literal)
|
|
192
|
-
// - The discriminated union enables type narrowing in switch statements and if statements
|
|
193
|
-
// - Type narrowing pattern: if (event.type === 'childDetached') { /* event has parentId, childId */ }
|
|
194
|
-
|
|
195
|
-
// CRITICAL: childDetached Event Type Structure
|
|
196
|
-
// - Location: src/types/events.ts, line 11
|
|
197
|
-
// - Structure: { type: 'childDetached'; parentId: string; childId: string }
|
|
198
|
-
// - Uses childId: string (not child: WorkflowNode) because child is no longer in tree after detachment
|
|
199
|
-
|
|
200
|
-
// CRITICAL: Observer Pattern Type Safety
|
|
201
|
-
// - Observers implement WorkflowObserver interface (src/types/observer.ts)
|
|
202
|
-
// - onEvent() method signature: onEvent(event: WorkflowEvent): void
|
|
203
|
-
// - Observers can handle childDetached events using type narrowing
|
|
204
|
-
// - Observers are NOT required to handle all event types
|
|
205
|
-
|
|
206
|
-
// CRITICAL: Event Emission Type Safety
|
|
207
|
-
// - emitEvent() method accepts WorkflowEvent parameter
|
|
208
|
-
// - TypeScript verifies that emitted events match WorkflowEvent union
|
|
209
|
-
// - compile-time check: { type: 'childDetached', parentId: string, childId: string } is valid
|
|
210
|
-
|
|
211
|
-
// GOTCHA: Type Checking Commands
|
|
212
|
-
// - npm run lint = tsc --noEmit (type checking only, no file generation)
|
|
213
|
-
// - npm run build = tsc (full compilation with file generation)
|
|
214
|
-
// - Both commands perform the same type checking, differ only in output generation
|
|
215
|
-
|
|
216
|
-
// GOTCHA: Exit Codes
|
|
217
|
-
// - tsc returns exit code 0 on success
|
|
218
|
-
// - tsc returns exit code 1 on compilation errors (when generating files)
|
|
219
|
-
// - tsc returns exit code 2 on type errors (when using --noEmit)
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
## Implementation Blueprint
|
|
223
|
-
|
|
224
|
-
### Data Models and Structure
|
|
225
|
-
|
|
226
|
-
No new data models are created in this validation task. We are validating existing type definitions.
|
|
227
|
-
|
|
228
|
-
### Implementation Tasks (ordered by dependencies)
|
|
229
|
-
|
|
230
|
-
```yaml
|
|
231
|
-
Task 1: RUN TypeScript Type Checking
|
|
232
|
-
- EXECUTE: npm run lint
|
|
233
|
-
- EQUIVALENT: npx tsc --noEmit
|
|
234
|
-
- EXPECTED: Command completes with exit code 0 (no childDetached-related errors)
|
|
235
|
-
- GOTCHA: Pre-existing errors related to protected 'node' property should be ignored
|
|
236
|
-
- TIMEOUT: 60 seconds (full codebase type checking)
|
|
237
|
-
|
|
238
|
-
Task 2: VERIFY childDetached Event Type Definition
|
|
239
|
-
- CHECK: src/types/events.ts line 11 for correct event type structure
|
|
240
|
-
- VERIFY: { type: 'childDetached'; parentId: string; childId: string }
|
|
241
|
-
- CONFIRM: Event type is in "Core workflow events" section (after childAttached)
|
|
242
|
-
- VALIDATE: No typos in property names or type annotations
|
|
243
|
-
|
|
244
|
-
Task 3: VERIFY Discriminated Union Type Narrowing
|
|
245
|
-
- TEST: Create type narrowing test case (mental or in temp file)
|
|
246
|
-
- PATTERN: if (event.type === 'childDetached') { /* event has parentId, childId */ }
|
|
247
|
-
- CONFIRM: TypeScript correctly narrows type when checking event.type
|
|
248
|
-
- VALIDATE: Properties parentId and childId are accessible after type guard
|
|
249
|
-
|
|
250
|
-
Task 4: VERIFY Observer onEvent() Compatibility
|
|
251
|
-
- CHECK: src/types/observer.ts line 13 for onEvent() method signature
|
|
252
|
-
- VERIFY: onEvent(event: WorkflowEvent): void accepts all event types including childDetached
|
|
253
|
-
- CONFIRM: Observer implementations can receive childDetached events
|
|
254
|
-
- VALIDATE: No type errors when observers handle childDetached events
|
|
255
|
-
|
|
256
|
-
Task 5: VERIFY Event Emission Type Safety
|
|
257
|
-
- CHECK: src/core/workflow.ts line 353-357 for childDetached event emission
|
|
258
|
-
- VERIFY: emitEvent() receives correctly shaped childDetached event
|
|
259
|
-
- CONFIRM: Event structure matches WorkflowEvent discriminated union
|
|
260
|
-
- VALIDATE: No type errors when emitting childDetached events
|
|
261
|
-
|
|
262
|
-
Task 6: VERIFY Test File Type Safety
|
|
263
|
-
- CHECK: src/__tests__/unit/workflow-detachChild.test.ts for type usage
|
|
264
|
-
- VERIFY: Tests use discriminated union type guards correctly
|
|
265
|
-
- CONFIRM: Test assertions work with type narrowing
|
|
266
|
-
- VALIDATE: No type errors in childDetached test files
|
|
267
|
-
|
|
268
|
-
Task 7: CREATE Validation Report (Optional)
|
|
269
|
-
- DOCUMENT: Results of TypeScript type checking
|
|
270
|
-
- RECORD: Any childDetached-related type errors found (should be none)
|
|
271
|
-
- NOTE: Pre-existing errors that are NOT related to childDetached
|
|
272
|
-
- CONCLUDE: Whether validation passed or failed
|
|
273
|
-
```
|
|
274
|
-
|
|
275
|
-
### Implementation Patterns & Key Details
|
|
276
|
-
|
|
277
|
-
```typescript
|
|
278
|
-
// ============================================
|
|
279
|
-
// DISCRIMINATED UNION TYPE DEFINITION
|
|
280
|
-
// ============================================
|
|
281
|
-
// File: src/types/events.ts, Line 11
|
|
282
|
-
// The childDetached event type:
|
|
283
|
-
| { type: 'childDetached'; parentId: string; childId: string }
|
|
284
|
-
|
|
285
|
-
// ============================================
|
|
286
|
-
// TYPE NARROWING PATTERN
|
|
287
|
-
// ============================================
|
|
288
|
-
// Observers and test code use this pattern:
|
|
289
|
-
function handleEvent(event: WorkflowEvent) {
|
|
290
|
-
if (event.type === 'childDetached') {
|
|
291
|
-
// TypeScript knows event has: parentId, childId
|
|
292
|
-
console.log(`Child ${event.childId} detached from ${event.parentId}`);
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
// ============================================
|
|
297
|
-
// EVENT EMISSION PATTERN
|
|
298
|
-
// ============================================
|
|
299
|
-
// File: src/core/workflow.ts, Lines 353-357
|
|
300
|
-
this.emitEvent({
|
|
301
|
-
type: 'childDetached',
|
|
302
|
-
parentId: this.id,
|
|
303
|
-
childId: child.id,
|
|
304
|
-
});
|
|
305
|
-
|
|
306
|
-
// ============================================
|
|
307
|
-
// OBSERVER INTERFACE PATTERN
|
|
308
|
-
// ============================================
|
|
309
|
-
// File: src/types/observer.ts, Line 13
|
|
310
|
-
export interface WorkflowObserver {
|
|
311
|
-
onEvent(event: WorkflowEvent): void; // Accepts ALL event types including childDetached
|
|
312
|
-
// ... other methods
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
// ============================================
|
|
316
|
-
// TYPE CHECKING VALIDATION COMMANDS
|
|
317
|
-
// ============================================
|
|
318
|
-
// Run type checking without generating files:
|
|
319
|
-
npm run lint // Uses tsc --noEmit
|
|
320
|
-
// OR:
|
|
321
|
-
npx tsc --noEmit // Direct TypeScript compiler invocation
|
|
322
|
-
|
|
323
|
-
// Full compilation (also performs type checking):
|
|
324
|
-
npm run build // Uses tsc (generates dist/ files)
|
|
325
|
-
|
|
326
|
-
// ============================================
|
|
327
|
-
// EXPECTED TYPE CHECKING RESULTS
|
|
328
|
-
// ============================================
|
|
329
|
-
// SUCCESS: Exit code 0, no output (or only pre-existing warnings)
|
|
330
|
-
// FAILURE: Exit code 2, shows TypeScript errors
|
|
331
|
-
|
|
332
|
-
// Pre-existing errors to IGNORE:
|
|
333
|
-
// - "Property 'node' is protected and only accessible within class 'Workflow<T>'"
|
|
334
|
-
// - These are in test files that access protected members
|
|
335
|
-
// - These are NOT related to childDetached event type
|
|
336
|
-
|
|
337
|
-
// Errors that would FAIL validation:
|
|
338
|
-
// - "Type 'childDetached' is not assignable to type 'WorkflowEvent'"
|
|
339
|
-
// - "Property 'childId' does not exist on type 'WorkflowEvent'"
|
|
340
|
-
// - "Type '{ type: 'childDetached'; ... }' is missing properties"
|
|
341
|
-
|
|
342
|
-
// ============================================
|
|
343
|
-
// MANUAL TYPE CHECKING TEST (Optional)
|
|
344
|
-
// ============================================
|
|
345
|
-
// Create a temporary test file to verify type narrowing:
|
|
346
|
-
/*
|
|
347
|
-
// File: /tmp/test-childDetached-type.ts
|
|
348
|
-
import { WorkflowEvent } from '/home/dustin/projects/groundswell/src/types/events.js';
|
|
349
|
-
|
|
350
|
-
function testChildDetachedEvent(event: WorkflowEvent) {
|
|
351
|
-
if (event.type === 'childDetached') {
|
|
352
|
-
// TypeScript should narrow to: { type: 'childDetached'; parentId: string; childId: string }
|
|
353
|
-
console.log(event.parentId); // Should work (no error)
|
|
354
|
-
console.log(event.childId); // Should work (no error)
|
|
355
|
-
// console.log(event.child); // Should ERROR: property 'child' does not exist
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
// Test event emission
|
|
360
|
-
const testEvent: WorkflowEvent = {
|
|
361
|
-
type: 'childDetached',
|
|
362
|
-
parentId: 'parent-123',
|
|
363
|
-
childId: 'child-456',
|
|
364
|
-
};
|
|
365
|
-
*/
|
|
366
|
-
// Then run: npx tsc --noEmit /tmp/test-childDetached-type.ts
|
|
367
|
-
|
|
368
|
-
// ============================================
|
|
369
|
-
// STRICT MODE IMPLICATIONS
|
|
370
|
-
// ============================================
|
|
371
|
-
// tsconfig.json has "strict": true
|
|
372
|
-
// This means:
|
|
373
|
-
// - No implicit any types
|
|
374
|
-
// - No null/undefined without explicit checking
|
|
375
|
-
// - All type properties must match exactly
|
|
376
|
-
// - Type narrowing is enforced at compile time
|
|
377
|
-
```
|
|
378
|
-
|
|
379
|
-
### Integration Points
|
|
380
|
-
|
|
381
|
-
```yaml
|
|
382
|
-
NO INTEGRATION POINTS IN THIS VALIDATION TASK:
|
|
383
|
-
- This task is VALIDATION ONLY
|
|
384
|
-
- No code modifications required
|
|
385
|
-
- No new files to create
|
|
386
|
-
- No existing files to modify
|
|
387
|
-
|
|
388
|
-
VALIDATION SCOPE:
|
|
389
|
-
- TypeScript compiler type checking
|
|
390
|
-
- Discriminated union type narrowing
|
|
391
|
-
- Observer pattern type compatibility
|
|
392
|
-
- Event emission type safety
|
|
393
|
-
```
|
|
394
|
-
|
|
395
|
-
## Validation Loop
|
|
396
|
-
|
|
397
|
-
### Level 1: Syntax & Style (TypeScript Type Checking)
|
|
398
|
-
|
|
399
|
-
```bash
|
|
400
|
-
# Run type checking on entire project
|
|
401
|
-
npm run lint # Primary validation command
|
|
402
|
-
# OR:
|
|
403
|
-
npx tsc --noEmit # Direct invocation
|
|
404
|
-
|
|
405
|
-
# Expected Result:
|
|
406
|
-
# - Exit code: 0 (success)
|
|
407
|
-
# - No errors related to childDetached event type
|
|
408
|
-
# - Pre-existing errors (protected 'node' access) can be ignored
|
|
409
|
-
|
|
410
|
-
# If childDetached-related errors occur:
|
|
411
|
-
# - Check event type definition in src/types/events.ts
|
|
412
|
-
# - Verify property names match: parentId, childId
|
|
413
|
-
# - Verify type annotations: string for both properties
|
|
414
|
-
# - Check for typos in the discriminated union
|
|
415
|
-
|
|
416
|
-
# Example of SUCCESSFUL output (only pre-existing errors shown):
|
|
417
|
-
# src/__tests__/adversarial/deep-analysis.test.ts(69,23): error TS2445: Property 'node' is protected...
|
|
418
|
-
# (These errors are NOT related to childDetached and should be ignored)
|
|
419
|
-
|
|
420
|
-
# Example of FAILED output (childDetached-related):
|
|
421
|
-
# src/types/events.ts(11,45): error TS2322: Type 'childDetached' is not assignable...
|
|
422
|
-
# (This would indicate a problem with the childDetached type definition)
|
|
423
|
-
```
|
|
424
|
-
|
|
425
|
-
### Level 2: Discriminated Union Type Narrowing Validation
|
|
426
|
-
|
|
427
|
-
```bash
|
|
428
|
-
# Create temporary test file to verify type narrowing
|
|
429
|
-
cat > /tmp/test-childDetached-narrowing.ts << 'EOF'
|
|
430
|
-
import { WorkflowEvent } from '/home/dustin/projects/groundswell/src/types/events.js';
|
|
431
|
-
|
|
432
|
-
function testTypeNarrowing(event: WorkflowEvent) {
|
|
433
|
-
// Test type narrowing for childDetached
|
|
434
|
-
if (event.type === 'childDetached') {
|
|
435
|
-
// TypeScript should narrow to childDetached type
|
|
436
|
-
const parentId: string = event.parentId;
|
|
437
|
-
const childId: string = event.childId;
|
|
438
|
-
|
|
439
|
-
// This should ERROR (prove type narrowing works):
|
|
440
|
-
// const child = event.child;
|
|
441
|
-
}
|
|
442
|
-
|
|
443
|
-
// Test switch statement pattern
|
|
444
|
-
switch (event.type) {
|
|
445
|
-
case 'childDetached':
|
|
446
|
-
// TypeScript knows event has parentId and childId
|
|
447
|
-
console.log(`Child ${event.childId} detached from ${event.parentId}`);
|
|
448
|
-
break;
|
|
449
|
-
case 'childAttached':
|
|
450
|
-
// TypeScript knows event has child (not childId)
|
|
451
|
-
console.log(`Child ${event.child.name} attached`);
|
|
452
|
-
break;
|
|
453
|
-
default:
|
|
454
|
-
// Other event types
|
|
455
|
-
break;
|
|
456
|
-
}
|
|
457
|
-
}
|
|
458
|
-
EOF
|
|
459
|
-
|
|
460
|
-
# Run type checking on test file
|
|
461
|
-
npx tsc --noEmit /tmp/test-childDetached-narrowing.ts
|
|
462
|
-
|
|
463
|
-
# Expected Result:
|
|
464
|
-
# - Exit code: 0 (success)
|
|
465
|
-
# - No type errors in the test file
|
|
466
|
-
# - Uncommented line with event.child should cause error (prove type narrowing)
|
|
467
|
-
|
|
468
|
-
# Cleanup
|
|
469
|
-
rm /tmp/test-childDetached-narrowing.ts
|
|
470
|
-
```
|
|
471
|
-
|
|
472
|
-
### Level 3: Observer Compatibility Validation
|
|
473
|
-
|
|
474
|
-
```bash
|
|
475
|
-
# Verify observer interface accepts childDetached events
|
|
476
|
-
cat > /tmp/test-observer-compat.ts << 'EOF'
|
|
477
|
-
import type { WorkflowObserver, WorkflowEvent } from '/home/dustin/projects/groundswell/src/types/index.js';
|
|
478
|
-
|
|
479
|
-
// Create observer that handles childDetached events
|
|
480
|
-
const testObserver: WorkflowObserver = {
|
|
481
|
-
onLog(entry) {
|
|
482
|
-
console.log('Log:', entry);
|
|
483
|
-
},
|
|
484
|
-
onEvent(event: WorkflowEvent) {
|
|
485
|
-
// Test that childDetached events are accepted
|
|
486
|
-
if (event.type === 'childDetached') {
|
|
487
|
-
console.log(`Child detached: ${event.childId} from ${event.parentId}`);
|
|
488
|
-
}
|
|
489
|
-
},
|
|
490
|
-
onStateUpdated(node) {
|
|
491
|
-
console.log('State updated:', node.id);
|
|
492
|
-
},
|
|
493
|
-
onTreeChanged(root) {
|
|
494
|
-
console.log('Tree changed:', root.id);
|
|
495
|
-
}
|
|
496
|
-
};
|
|
497
|
-
|
|
498
|
-
// Test that childDetached event can be passed to observer
|
|
499
|
-
const childDetachedEvent: WorkflowEvent = {
|
|
500
|
-
type: 'childDetached',
|
|
501
|
-
parentId: 'parent-123',
|
|
502
|
-
childId: 'child-456',
|
|
503
|
-
};
|
|
504
|
-
|
|
505
|
-
testObserver.onEvent(childDetachedEvent); // Should work without type error
|
|
506
|
-
EOF
|
|
507
|
-
|
|
508
|
-
# Run type checking on test file
|
|
509
|
-
npx tsc --noEmit /tmp/test-observer-compat.ts
|
|
510
|
-
|
|
511
|
-
# Expected Result:
|
|
512
|
-
# - Exit code: 0 (success)
|
|
513
|
-
# - No type errors
|
|
514
|
-
# - Observer accepts childDetached events
|
|
515
|
-
|
|
516
|
-
# Cleanup
|
|
517
|
-
rm /tmp/test-observer-compat.ts
|
|
518
|
-
```
|
|
519
|
-
|
|
520
|
-
### Level 4: Event Emission and Integration Validation
|
|
521
|
-
|
|
522
|
-
```bash
|
|
523
|
-
# Run full test suite to ensure runtime validation
|
|
524
|
-
npm test
|
|
525
|
-
|
|
526
|
-
# Expected Result:
|
|
527
|
-
# - All tests pass
|
|
528
|
-
# - No runtime type errors
|
|
529
|
-
# - childDetached events are emitted and handled correctly
|
|
530
|
-
|
|
531
|
-
# Specific test file to verify:
|
|
532
|
-
npm test -- workflow-emitEvent-childDetached.test.ts
|
|
533
|
-
npm test -- workflow-detachChild.test.ts
|
|
534
|
-
npm test -- workflow-reparenting.test.ts
|
|
535
|
-
|
|
536
|
-
# Verify dist/ build artifacts (if build succeeds)
|
|
537
|
-
npm run build
|
|
538
|
-
|
|
539
|
-
# Expected Result:
|
|
540
|
-
# - dist/ directory contains compiled JavaScript
|
|
541
|
-
# - dist/types/events.d.ts contains type declarations
|
|
542
|
-
# - childDetached event type appears in type declarations
|
|
543
|
-
|
|
544
|
-
# Verify type declaration file includes childDetached
|
|
545
|
-
grep -A 2 "childDetached" dist/types/events.d.ts
|
|
546
|
-
|
|
547
|
-
# Expected output:
|
|
548
|
-
# | { type: 'childDetached'; parentId: string; childId: string }
|
|
549
|
-
```
|
|
550
|
-
|
|
551
|
-
## Final Validation Checklist
|
|
552
|
-
|
|
553
|
-
### Technical Validation
|
|
554
|
-
|
|
555
|
-
- [ ] Level 1 validation completed: `npm run lint` passes (exit code 0)
|
|
556
|
-
- [ ] No childDetached-related type errors in TypeScript output
|
|
557
|
-
- [ ] Pre-existing errors (protected 'node' access) documented but not blocking
|
|
558
|
-
- [ ] Level 2 validation completed: Discriminated union type narrowing works correctly
|
|
559
|
-
- [ ] Level 3 validation completed: Observers accept childDetached events
|
|
560
|
-
- [ ] Level 4 validation completed: Full test suite passes
|
|
561
|
-
|
|
562
|
-
### Feature Validation
|
|
563
|
-
|
|
564
|
-
- [ ] childDetached event type is correctly defined in src/types/events.ts
|
|
565
|
-
- [ ] Event type uses correct structure: `{ type: 'childDetached'; parentId: string; childId: string }`
|
|
566
|
-
- [ ] Type narrowing provides access to parentId and childId properties
|
|
567
|
-
- [ ] Observer onEvent() method accepts childDetached events
|
|
568
|
-
- [ ] emitEvent() can emit childDetached events without type errors
|
|
569
|
-
- [ ] Test files demonstrate correct type usage
|
|
570
|
-
|
|
571
|
-
### Code Quality Validation
|
|
572
|
-
|
|
573
|
-
- [ ] Follows existing discriminated union pattern in events.ts
|
|
574
|
-
- [ ] Event type placement in "Core workflow events" section
|
|
575
|
-
- [ ] Consistent with childAttached structure (mirror pattern)
|
|
576
|
-
- [ ] No typos in property names or type annotations
|
|
577
|
-
- [ ] TypeScript strict mode compliance maintained
|
|
578
|
-
|
|
579
|
-
### Documentation & Deployment
|
|
580
|
-
|
|
581
|
-
- [ ] Type definition is self-documenting (property names are clear)
|
|
582
|
-
- [ ] No additional documentation needed (type definition is sufficient)
|
|
583
|
-
- [ ] No environment variables or configuration changes required
|
|
584
|
-
- [ ] Ready for release (no blocking type errors)
|
|
585
|
-
|
|
586
|
-
---
|
|
587
|
-
|
|
588
|
-
## Anti-Patterns to Avoid
|
|
589
|
-
|
|
590
|
-
- ❌ **Don't modify any code** - This is a validation task only
|
|
591
|
-
- ❌ **Don't fix pre-existing errors** - Protected 'node' access errors are out of scope
|
|
592
|
-
- ❌ **Don't skip type checking** - Always run `npm run lint` to validate
|
|
593
|
-
- ❌ **Don't ignore childDetached-related errors** - Any errors with childDetached must be addressed
|
|
594
|
-
- ❌ **Don't assume success** - Always verify with actual command execution
|
|
595
|
-
- ❌ **Don't forget to check exit codes** - Exit code 0 = success, non-zero = failure
|
|
596
|
-
|
|
597
|
-
---
|
|
598
|
-
|
|
599
|
-
## References
|
|
600
|
-
|
|
601
|
-
- **Bug Analysis**: `/home/dustin/projects/groundswell/plan/docs/bugfix-architecture/bug_analysis.md`
|
|
602
|
-
- **Events Type File**: `/home/dustin/projects/groundswell/src/types/events.ts`
|
|
603
|
-
- **Observer Interface**: `/home/dustin/projects/groundswell/src/types/observer.ts`
|
|
604
|
-
- **Workflow Class**: `/home/dustin/projects/groundswell/src/core/workflow.ts`
|
|
605
|
-
- **Test Files**:
|
|
606
|
-
- `/home/dustin/projects/groundswell/src/__tests__/unit/workflow-detachChild.test.ts`
|
|
607
|
-
- `/home/dustin/projects/groundswell/src/__tests__/unit/workflow-emitEvent-childDetached.test.ts`
|
|
608
|
-
- **Previous Task**: P1.M2.T1.S1 - Add childDetached event type to events.ts (COMPLETED)
|
|
609
|
-
- **Related Tasks**:
|
|
610
|
-
- P1.M2.T1.S2: Write failing tests for detachChild() (COMPLETED)
|
|
611
|
-
- P1.M2.T1.S3: Implement detachChild() method (COMPLETED)
|
|
612
|
-
- P1.M2.T1.S4: Update emitEvent() to handle childDetached events (COMPLETED)
|
|
613
|
-
|
|
614
|
-
---
|
|
615
|
-
|
|
616
|
-
## Confidence Score
|
|
617
|
-
|
|
618
|
-
**9/10** - One-pass implementation success likelihood
|
|
619
|
-
|
|
620
|
-
**Justification**:
|
|
621
|
-
- ✅ Clear validation commands with expected results
|
|
622
|
-
- ✅ Comprehensive context on discriminated union patterns
|
|
623
|
-
- ✅ Known pre-existing errors documented to avoid confusion
|
|
624
|
-
- ✅ Multiple validation levels provide thorough coverage
|
|
625
|
-
- ✅ No code modifications required (validation only)
|
|
626
|
-
- ✅ Test files already demonstrate correct type usage
|
|
627
|
-
- ⚠️ Minor risk: Developer may misinterpret pre-existing errors as validation failures (mitigated by clear documentation)
|
|
628
|
-
|
|
629
|
-
**Validation**: The completed PRP enables an AI agent or developer to verify TypeScript compilation and type checking for the childDetached event type using only the PRP content and codebase access.
|