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
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WorkflowContextImpl - Implementation of functional workflow context
|
|
3
|
+
*
|
|
4
|
+
* Provides step(), spawnWorkflow(), and automatic context propagation
|
|
5
|
+
* for agents and prompts executed within workflows.
|
|
6
|
+
*/
|
|
7
|
+
import { EventTreeHandleImpl } from './event-tree.js';
|
|
8
|
+
import { runInContext, } from './context.js';
|
|
9
|
+
import { generateId } from '../utils/id.js';
|
|
10
|
+
import { ReflectionManager } from '../reflection/reflection.js';
|
|
11
|
+
import { createReflectionConfig } from '../types/index.js';
|
|
12
|
+
import { getObservedState } from '../decorators/observed-state.js';
|
|
13
|
+
/**
|
|
14
|
+
* WorkflowContext implementation
|
|
15
|
+
*/
|
|
16
|
+
export class WorkflowContextImpl {
|
|
17
|
+
workflowId;
|
|
18
|
+
parentWorkflowId;
|
|
19
|
+
eventTree;
|
|
20
|
+
reflection;
|
|
21
|
+
workflow;
|
|
22
|
+
eventTreeImpl;
|
|
23
|
+
reflectionManager;
|
|
24
|
+
constructor(workflow, parentWorkflowId, reflectionConfig) {
|
|
25
|
+
this.workflowId = workflow.id;
|
|
26
|
+
this.parentWorkflowId = parentWorkflowId;
|
|
27
|
+
this.workflow = workflow;
|
|
28
|
+
// Create event tree handle
|
|
29
|
+
this.eventTreeImpl = new EventTreeHandleImpl(workflow.node);
|
|
30
|
+
this.eventTree = this.eventTreeImpl;
|
|
31
|
+
// Create reflection manager with config
|
|
32
|
+
const config = createReflectionConfig(reflectionConfig);
|
|
33
|
+
this.reflectionManager = new ReflectionManager(config);
|
|
34
|
+
this.reflectionManager.setEventEmitter((event) => this.workflow.emitEvent(event));
|
|
35
|
+
this.reflection = this.reflectionManager;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Execute a named step with automatic context propagation and reflection support
|
|
39
|
+
*/
|
|
40
|
+
async step(name, fn) {
|
|
41
|
+
const maxAttempts = this.reflectionManager.isEnabled()
|
|
42
|
+
? this.reflectionManager.getMaxAttempts()
|
|
43
|
+
: 1;
|
|
44
|
+
let lastError = null;
|
|
45
|
+
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
46
|
+
const startTime = Date.now();
|
|
47
|
+
// Create step node
|
|
48
|
+
const stepNode = {
|
|
49
|
+
id: generateId(),
|
|
50
|
+
name: attempt > 1 ? `${name} (retry ${attempt - 1})` : name,
|
|
51
|
+
parent: this.workflow.node,
|
|
52
|
+
children: [],
|
|
53
|
+
status: 'running',
|
|
54
|
+
logs: [],
|
|
55
|
+
events: [],
|
|
56
|
+
stateSnapshot: null,
|
|
57
|
+
};
|
|
58
|
+
// Attach to parent
|
|
59
|
+
this.workflow.node.children.push(stepNode);
|
|
60
|
+
// Emit step start
|
|
61
|
+
this.workflow.emitEvent({
|
|
62
|
+
type: 'stepStart',
|
|
63
|
+
node: stepNode,
|
|
64
|
+
step: name,
|
|
65
|
+
});
|
|
66
|
+
// Create execution context for this step
|
|
67
|
+
const executionContext = {
|
|
68
|
+
workflowNode: stepNode,
|
|
69
|
+
emitEvent: (event) => {
|
|
70
|
+
stepNode.events.push(event);
|
|
71
|
+
this.workflow.emitEvent(event);
|
|
72
|
+
},
|
|
73
|
+
workflowId: this.workflowId,
|
|
74
|
+
parentWorkflowId: this.parentWorkflowId,
|
|
75
|
+
};
|
|
76
|
+
try {
|
|
77
|
+
// Execute function in context
|
|
78
|
+
const result = await runInContext(executionContext, fn);
|
|
79
|
+
// Update step node status
|
|
80
|
+
stepNode.status = 'completed';
|
|
81
|
+
// Emit step end
|
|
82
|
+
const duration = Date.now() - startTime;
|
|
83
|
+
this.workflow.emitEvent({
|
|
84
|
+
type: 'stepEnd',
|
|
85
|
+
node: stepNode,
|
|
86
|
+
step: name,
|
|
87
|
+
duration,
|
|
88
|
+
});
|
|
89
|
+
// Rebuild event tree
|
|
90
|
+
this.eventTreeImpl.rebuild(this.workflow.node);
|
|
91
|
+
// If we succeeded after a reflection, mark it as successful
|
|
92
|
+
if (attempt > 1) {
|
|
93
|
+
this.reflectionManager.markLastReflectionSuccessful();
|
|
94
|
+
}
|
|
95
|
+
return result;
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
lastError = error;
|
|
99
|
+
// Update step node status
|
|
100
|
+
stepNode.status = 'failed';
|
|
101
|
+
// Emit error event
|
|
102
|
+
this.workflow.emitEvent({
|
|
103
|
+
type: 'error',
|
|
104
|
+
node: stepNode,
|
|
105
|
+
error: {
|
|
106
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
107
|
+
original: error,
|
|
108
|
+
workflowId: this.workflowId,
|
|
109
|
+
stack: error instanceof Error ? error.stack : undefined,
|
|
110
|
+
state: getObservedState(this.workflow),
|
|
111
|
+
logs: [...this.workflow.node.logs],
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
// Rebuild event tree
|
|
115
|
+
this.eventTreeImpl.rebuild(this.workflow.node);
|
|
116
|
+
// Check if we should try reflection
|
|
117
|
+
if (!this.reflectionManager.isEnabled() || attempt === maxAttempts) {
|
|
118
|
+
throw error;
|
|
119
|
+
}
|
|
120
|
+
// Try reflection
|
|
121
|
+
const reflectionContext = {
|
|
122
|
+
level: 'workflow',
|
|
123
|
+
failedNode: stepNode,
|
|
124
|
+
error: lastError,
|
|
125
|
+
attemptNumber: attempt,
|
|
126
|
+
previousAttempts: this.reflectionManager.getReflectionHistory(),
|
|
127
|
+
};
|
|
128
|
+
const reflectionResult = await this.reflectionManager.reflect(reflectionContext);
|
|
129
|
+
if (!reflectionResult.shouldRetry) {
|
|
130
|
+
throw lastError;
|
|
131
|
+
}
|
|
132
|
+
// Continue to next iteration for retry
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
throw lastError ?? new Error('Max reflection attempts exceeded');
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Spawn a child workflow
|
|
139
|
+
*/
|
|
140
|
+
async spawnWorkflow(workflow) {
|
|
141
|
+
// If workflow has attachChild-like capability, use it
|
|
142
|
+
if ('node' in workflow && workflow.node) {
|
|
143
|
+
// Set parent reference
|
|
144
|
+
workflow.node.parent = this.workflow.node;
|
|
145
|
+
// Attach child node
|
|
146
|
+
this.workflow.node.children.push(workflow.node);
|
|
147
|
+
// Emit child attached event
|
|
148
|
+
this.workflow.emitEvent({
|
|
149
|
+
type: 'childAttached',
|
|
150
|
+
parentId: this.workflowId,
|
|
151
|
+
child: workflow.node,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
// Run the child workflow
|
|
155
|
+
const result = await workflow.run();
|
|
156
|
+
// Rebuild event tree
|
|
157
|
+
this.eventTreeImpl.rebuild(this.workflow.node);
|
|
158
|
+
return result;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Replace the last prompt result with a new one (context revision)
|
|
162
|
+
* The previous prompt node is marked as 'revised' and the new result is attached as sibling
|
|
163
|
+
*/
|
|
164
|
+
async replaceLastPromptResult(newPrompt, agent) {
|
|
165
|
+
// Find the last completed prompt node in the tree
|
|
166
|
+
const children = this.workflow.node.children;
|
|
167
|
+
let lastPromptNodeIndex = -1;
|
|
168
|
+
for (let i = children.length - 1; i >= 0; i--) {
|
|
169
|
+
const child = children[i];
|
|
170
|
+
if (child.status === 'completed') {
|
|
171
|
+
lastPromptNodeIndex = i;
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// Create a revision node to mark the replacement
|
|
176
|
+
const revisionNode = {
|
|
177
|
+
id: generateId(),
|
|
178
|
+
name: `revision:${newPrompt.id}`,
|
|
179
|
+
parent: this.workflow.node,
|
|
180
|
+
children: [],
|
|
181
|
+
status: 'running',
|
|
182
|
+
logs: [],
|
|
183
|
+
events: [],
|
|
184
|
+
stateSnapshot: null,
|
|
185
|
+
};
|
|
186
|
+
// If we found a previous node, mark it as revised
|
|
187
|
+
if (lastPromptNodeIndex >= 0) {
|
|
188
|
+
const previousNode = children[lastPromptNodeIndex];
|
|
189
|
+
// Mark as revised by adding a special status flag in logs
|
|
190
|
+
previousNode.logs.push({
|
|
191
|
+
id: generateId(),
|
|
192
|
+
workflowId: this.workflowId,
|
|
193
|
+
level: 'info',
|
|
194
|
+
message: `Revised by ${revisionNode.id}`,
|
|
195
|
+
timestamp: Date.now(),
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
// Attach revision node as sibling (at same level)
|
|
199
|
+
this.workflow.node.children.push(revisionNode);
|
|
200
|
+
// Emit prompt revision event
|
|
201
|
+
this.workflow.emitEvent({
|
|
202
|
+
type: 'stepStart',
|
|
203
|
+
node: revisionNode,
|
|
204
|
+
step: `revision:${newPrompt.id}`,
|
|
205
|
+
});
|
|
206
|
+
// Create execution context for this revision
|
|
207
|
+
const executionContext = {
|
|
208
|
+
workflowNode: revisionNode,
|
|
209
|
+
emitEvent: (event) => {
|
|
210
|
+
revisionNode.events.push(event);
|
|
211
|
+
this.workflow.emitEvent(event);
|
|
212
|
+
},
|
|
213
|
+
workflowId: this.workflowId,
|
|
214
|
+
parentWorkflowId: this.parentWorkflowId,
|
|
215
|
+
};
|
|
216
|
+
try {
|
|
217
|
+
// Execute the new prompt in context
|
|
218
|
+
const result = await runInContext(executionContext, () => agent.prompt(newPrompt));
|
|
219
|
+
// Update revision node status
|
|
220
|
+
revisionNode.status = 'completed';
|
|
221
|
+
// Emit completion event
|
|
222
|
+
this.workflow.emitEvent({
|
|
223
|
+
type: 'stepEnd',
|
|
224
|
+
node: revisionNode,
|
|
225
|
+
step: `revision:${newPrompt.id}`,
|
|
226
|
+
duration: 0, // Could track actual duration if needed
|
|
227
|
+
});
|
|
228
|
+
// Rebuild event tree
|
|
229
|
+
this.eventTreeImpl.rebuild(this.workflow.node);
|
|
230
|
+
return result;
|
|
231
|
+
}
|
|
232
|
+
catch (error) {
|
|
233
|
+
// Update revision node status
|
|
234
|
+
revisionNode.status = 'failed';
|
|
235
|
+
// Emit error event
|
|
236
|
+
this.workflow.emitEvent({
|
|
237
|
+
type: 'error',
|
|
238
|
+
node: revisionNode,
|
|
239
|
+
error: {
|
|
240
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
241
|
+
original: error,
|
|
242
|
+
workflowId: this.workflowId,
|
|
243
|
+
stack: error instanceof Error ? error.stack : undefined,
|
|
244
|
+
state: getObservedState(this.workflow),
|
|
245
|
+
logs: [...this.workflow.node.logs],
|
|
246
|
+
},
|
|
247
|
+
});
|
|
248
|
+
// Rebuild event tree
|
|
249
|
+
this.eventTreeImpl.rebuild(this.workflow.node);
|
|
250
|
+
throw error;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Create a WorkflowContext for a workflow
|
|
256
|
+
* @param workflow The workflow object
|
|
257
|
+
* @param parentWorkflowId Optional parent workflow ID
|
|
258
|
+
* @param reflectionConfig Optional reflection configuration
|
|
259
|
+
*/
|
|
260
|
+
export function createWorkflowContext(workflow, parentWorkflowId, reflectionConfig) {
|
|
261
|
+
return new WorkflowContextImpl(workflow, parentWorkflowId, reflectionConfig);
|
|
262
|
+
}
|
|
263
|
+
//# sourceMappingURL=workflow-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-context.js","sourceRoot":"","sources":["../../src/core/workflow-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import type { WorkflowNode, WorkflowStatus, WorkflowEvent, WorkflowObserver } from '../types/index.js';
|
|
2
|
+
import type { WorkflowContext, WorkflowConfig, WorkflowResult } from '../types/workflow-context.js';
|
|
3
|
+
import { WorkflowLogger } from './logger.js';
|
|
4
|
+
/**
|
|
5
|
+
* Executor function type for functional workflows
|
|
6
|
+
*/
|
|
7
|
+
export type WorkflowExecutor<T = unknown> = (ctx: WorkflowContext) => Promise<T>;
|
|
8
|
+
/**
|
|
9
|
+
* Base class for all workflows
|
|
10
|
+
* Supports both class-based (subclass with run()) and functional (executor) patterns
|
|
11
|
+
*
|
|
12
|
+
* @example Class-based pattern:
|
|
13
|
+
* ```ts
|
|
14
|
+
* class MyWorkflow extends Workflow {
|
|
15
|
+
* async run() {
|
|
16
|
+
* this.setStatus('running');
|
|
17
|
+
* // workflow logic
|
|
18
|
+
* this.setStatus('completed');
|
|
19
|
+
* }
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @example Functional pattern:
|
|
24
|
+
* ```ts
|
|
25
|
+
* const workflow = new Workflow({ name: 'MyWorkflow' }, async (ctx) => {
|
|
26
|
+
* await ctx.step('step1', async () => {
|
|
27
|
+
* // step logic
|
|
28
|
+
* });
|
|
29
|
+
* });
|
|
30
|
+
* await workflow.run();
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare class Workflow<T = unknown> {
|
|
34
|
+
/** Unique identifier for this workflow instance */
|
|
35
|
+
readonly id: string;
|
|
36
|
+
/** Parent workflow (null for root workflows) */
|
|
37
|
+
parent: Workflow | null;
|
|
38
|
+
/** Child workflows */
|
|
39
|
+
children: Workflow[];
|
|
40
|
+
/** Current execution status */
|
|
41
|
+
status: WorkflowStatus;
|
|
42
|
+
/** Logger instance for this workflow */
|
|
43
|
+
protected readonly logger: WorkflowLogger;
|
|
44
|
+
/** The node representation of this workflow */
|
|
45
|
+
readonly node: WorkflowNode;
|
|
46
|
+
/** Observers (only populated on root workflow) */
|
|
47
|
+
private observers;
|
|
48
|
+
/** Optional executor function for functional workflows */
|
|
49
|
+
private executor?;
|
|
50
|
+
/** Workflow configuration */
|
|
51
|
+
private config;
|
|
52
|
+
/**
|
|
53
|
+
* Create a new workflow instance
|
|
54
|
+
*
|
|
55
|
+
* @overload Class-based pattern
|
|
56
|
+
* @param name Human-readable name (defaults to class name)
|
|
57
|
+
* @param parent Optional parent workflow
|
|
58
|
+
*
|
|
59
|
+
* @overload Functional pattern
|
|
60
|
+
* @param config Workflow configuration
|
|
61
|
+
* @param executor Executor function
|
|
62
|
+
*/
|
|
63
|
+
constructor(name?: string | WorkflowConfig, parentOrExecutor?: Workflow | WorkflowExecutor<T>);
|
|
64
|
+
/**
|
|
65
|
+
* Get observers from the root workflow
|
|
66
|
+
* Traverses up the tree to find the root
|
|
67
|
+
* Uses cycle detection to prevent infinite loops from circular parent-child relationships
|
|
68
|
+
*/
|
|
69
|
+
private getRootObservers;
|
|
70
|
+
/**
|
|
71
|
+
* Check if this workflow is a descendant of the given ancestor workflow.
|
|
72
|
+
*
|
|
73
|
+
* Traverses the parent chain upward looking for the ancestor reference.
|
|
74
|
+
* Uses a visited Set to detect cycles during traversal. This method provides
|
|
75
|
+
* a convenient way to check workflow hierarchy relationships without manually
|
|
76
|
+
* traversing the parent chain.
|
|
77
|
+
*
|
|
78
|
+
* @warning This method reveals workflow hierarchy information. If your
|
|
79
|
+
* application exposes workflows via an API, ensure you implement proper
|
|
80
|
+
* access control to prevent unauthorized topology discovery. Note that
|
|
81
|
+
* the `parent` and `children` properties are already public, so this
|
|
82
|
+
* method does not expose any new information beyond what is currently
|
|
83
|
+
* accessible.
|
|
84
|
+
*
|
|
85
|
+
* **Time Complexity**: O(d) where d is the depth of the hierarchy
|
|
86
|
+
* **Space Complexity**: O(d) for the visited Set in worst case (cycle detection)
|
|
87
|
+
*
|
|
88
|
+
* @example Check if a workflow belongs to a specific hierarchy
|
|
89
|
+
* ```typescript
|
|
90
|
+
* const root = new Workflow('root');
|
|
91
|
+
* const child = new Workflow('child', { parent: root });
|
|
92
|
+
*
|
|
93
|
+
* if (child.isDescendantOf(root)) {
|
|
94
|
+
* console.log('Child is in root hierarchy');
|
|
95
|
+
* }
|
|
96
|
+
* ```
|
|
97
|
+
*
|
|
98
|
+
* @example Validate before attaching to prevent circular references
|
|
99
|
+
* ```typescript
|
|
100
|
+
* if (!newChild.isDescendantOf(parent)) {
|
|
101
|
+
* parent.attachChild(newChild);
|
|
102
|
+
* } else {
|
|
103
|
+
* throw new Error('Would create circular reference');
|
|
104
|
+
* }
|
|
105
|
+
* ```
|
|
106
|
+
*
|
|
107
|
+
* @example Check for ancestor relationship in conditional logic
|
|
108
|
+
* ```typescript
|
|
109
|
+
* const isInProductionBranch = workflow.isDescendantOf(productionRoot);
|
|
110
|
+
* if (isInProductionBranch) {
|
|
111
|
+
* // Apply production-specific logic
|
|
112
|
+
* }
|
|
113
|
+
* ```
|
|
114
|
+
*
|
|
115
|
+
* @param ancestor - The potential ancestor workflow to check
|
|
116
|
+
* @returns true if ancestor is found in parent chain, false otherwise
|
|
117
|
+
* @throws {Error} If a cycle is detected during traversal (indicates corrupted tree structure)
|
|
118
|
+
*/
|
|
119
|
+
isDescendantOf(ancestor: Workflow): boolean;
|
|
120
|
+
/**
|
|
121
|
+
* Get the root workflow
|
|
122
|
+
* Uses cycle detection to prevent infinite loops from circular parent-child relationships
|
|
123
|
+
*/
|
|
124
|
+
protected getRoot(): Workflow;
|
|
125
|
+
/**
|
|
126
|
+
* Add an observer to this workflow (must be root)
|
|
127
|
+
* @throws Error if called on non-root workflow
|
|
128
|
+
*/
|
|
129
|
+
addObserver(observer: WorkflowObserver): void;
|
|
130
|
+
/**
|
|
131
|
+
* Remove an observer from this workflow
|
|
132
|
+
*/
|
|
133
|
+
removeObserver(observer: WorkflowObserver): void;
|
|
134
|
+
/**
|
|
135
|
+
* Attach a child workflow to this parent workflow.
|
|
136
|
+
*
|
|
137
|
+
* Validates that the child can be attached by checking:
|
|
138
|
+
* 1. Child is not already attached to this parent workflow
|
|
139
|
+
* 2. Child does not have a different parent (enforces single-parent invariant)
|
|
140
|
+
* 3. Child is not an ancestor of this parent (prevents circular references)
|
|
141
|
+
*
|
|
142
|
+
* **Structural Changes:**
|
|
143
|
+
* - Adds child to this.children array (workflow tree)
|
|
144
|
+
* - Adds child.node to this.node.children array (node tree)
|
|
145
|
+
* - Sets child.parent = this (workflow tree)
|
|
146
|
+
* - Sets child.node.parent = this.node (node tree)
|
|
147
|
+
* - Emits childAttached event to notify observers
|
|
148
|
+
*
|
|
149
|
+
* **Invariants Maintained:**
|
|
150
|
+
* - Single-parent rule: A workflow can only have one parent
|
|
151
|
+
* - 1:1 tree mirror: workflow tree and node tree stay synchronized
|
|
152
|
+
* - No cycles: A workflow cannot be its own ancestor
|
|
153
|
+
*
|
|
154
|
+
* **Cycle Detection:**
|
|
155
|
+
* - Uses isDescendantOf() helper with Set-based cycle detection
|
|
156
|
+
* - Throws immediately if circular reference would be created
|
|
157
|
+
*
|
|
158
|
+
* @param child - The child workflow to attach
|
|
159
|
+
* @throws {Error} If the child is already attached to this workflow
|
|
160
|
+
* @throws {Error} If the child already has a different parent (use detachChild() first for reparenting)
|
|
161
|
+
* @throws {Error} If the child is an ancestor of this parent (would create circular reference)
|
|
162
|
+
*
|
|
163
|
+
* @example
|
|
164
|
+
* ```ts
|
|
165
|
+
* const parent = new Workflow('Parent');
|
|
166
|
+
* const child = new Workflow('Child');
|
|
167
|
+
* parent.attachChild(child);
|
|
168
|
+
* // child.parent === parent
|
|
169
|
+
* // parent.children.includes(child) === true
|
|
170
|
+
* ```
|
|
171
|
+
*
|
|
172
|
+
* @example Reparenting workflow
|
|
173
|
+
* ```ts
|
|
174
|
+
* const parent1 = new Workflow('Parent1');
|
|
175
|
+
* const parent2 = new Workflow('Parent2');
|
|
176
|
+
* const child = new Workflow('Child', parent1); // Attached to parent1
|
|
177
|
+
*
|
|
178
|
+
* // Later, move child to parent2
|
|
179
|
+
* parent1.detachChild(child);
|
|
180
|
+
* parent2.attachChild(child);
|
|
181
|
+
* // child.parent === parent2
|
|
182
|
+
* ```
|
|
183
|
+
*
|
|
184
|
+
* @see detachChild - For detaching children (enables reparenting)
|
|
185
|
+
* @see isDescendantOf - Private helper for circular reference detection
|
|
186
|
+
*/
|
|
187
|
+
attachChild(child: Workflow): void;
|
|
188
|
+
/**
|
|
189
|
+
* Detach a child workflow from this parent workflow.
|
|
190
|
+
*
|
|
191
|
+
* Removes the child from both the workflow tree (this.children) and
|
|
192
|
+
* the node tree (this.node.children), clears the child's parent reference,
|
|
193
|
+
* and emits a childDetached event to notify observers.
|
|
194
|
+
*
|
|
195
|
+
* This enables reparenting workflows: oldParent.detachChild(child); newParent.attachChild(child);
|
|
196
|
+
*
|
|
197
|
+
* @param child - The child workflow to detach
|
|
198
|
+
* @throws {Error} If the child is not attached to this parent workflow
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* ```ts
|
|
202
|
+
* const parent = new Workflow('Parent');
|
|
203
|
+
* const child = new Workflow('Child', parent);
|
|
204
|
+
*
|
|
205
|
+
* // Later, reparent to a different parent
|
|
206
|
+
* parent.detachChild(child);
|
|
207
|
+
* newParent.attachChild(child);
|
|
208
|
+
* ```
|
|
209
|
+
*/
|
|
210
|
+
detachChild(child: Workflow): void;
|
|
211
|
+
/**
|
|
212
|
+
* Emit an event to all root observers
|
|
213
|
+
*/
|
|
214
|
+
emitEvent(event: WorkflowEvent): void;
|
|
215
|
+
/**
|
|
216
|
+
* Capture and emit a state snapshot
|
|
217
|
+
*/
|
|
218
|
+
snapshotState(): void;
|
|
219
|
+
/**
|
|
220
|
+
* Update workflow status and sync with node
|
|
221
|
+
*/
|
|
222
|
+
setStatus(status: WorkflowStatus): void;
|
|
223
|
+
/**
|
|
224
|
+
* Get the node representation of this workflow
|
|
225
|
+
*/
|
|
226
|
+
getNode(): WorkflowNode;
|
|
227
|
+
/**
|
|
228
|
+
* Run the workflow
|
|
229
|
+
*
|
|
230
|
+
* For functional workflows (created with executor), runs the executor function.
|
|
231
|
+
* For class-based workflows (subclasses), this should be overridden.
|
|
232
|
+
*
|
|
233
|
+
* @returns Workflow result
|
|
234
|
+
*/
|
|
235
|
+
run(..._args: unknown[]): Promise<T | WorkflowResult<T>>;
|
|
236
|
+
/**
|
|
237
|
+
* Run a functional workflow with context
|
|
238
|
+
*/
|
|
239
|
+
private runFunctional;
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=workflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/core/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACb,gBAAgB,EAEjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEpG,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI7C;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAEjF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,QAAQ,CAAC,CAAC,GAAG,OAAO;IAC/B,mDAAmD;IACnD,SAAgB,EAAE,EAAE,MAAM,CAAC;IAE3B,gDAAgD;IACzC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAEtC,sBAAsB;IACf,QAAQ,EAAE,QAAQ,EAAE,CAAM;IAEjC,+BAA+B;IACxB,MAAM,EAAE,cAAc,CAAU;IAEvC,wCAAwC;IACxC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAE1C,+CAA+C;IAC/C,SAAgB,IAAI,EAAE,YAAY,CAAC;IAEnC,kDAAkD;IAClD,OAAO,CAAC,SAAS,CAA0B;IAE3C,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAAC,CAAsB;IAEvC,6BAA6B;IAC7B,OAAO,CAAC,MAAM,CAAiB;IAE/B;;;;;;;;;;OAUG;gBACS,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE,gBAAgB,CAAC,EAAE,QAAQ,GAAG,gBAAgB,CAAC,CAAC,CAAC;IA+C7F;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAiBxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgDG;IACI,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAoBlD;;;OAGG;IACH,SAAS,CAAC,OAAO,IAAI,QAAQ;IAiB7B;;;OAGG;IACI,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAOpD;;OAEG;IACI,cAAc,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAOvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACI,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAyCzC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IA+BzC;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAkB5C;;OAEG;IACI,aAAa,IAAI,IAAI;IAwB5B;;OAEG;IACI,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAM9C;;OAEG;IACI,OAAO,IAAI,YAAY;IAI9B;;;;;;;OAOG;IACU,GAAG,CAAC,GAAG,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAWrE;;OAEG;YACW,aAAa;CA4C5B"}
|