groundswell 0.0.1 → 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/CHANGELOG.md +188 -0
- package/README.md +99 -5
- 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/dist/__tests__/helpers/index.js +10 -0
- 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} +2 -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 +7 -2
- package/.claude/settings.local.json +0 -9
- package/.claude/system_prompts/task-breakdown.md +0 -100
- package/PRPs/001-hierarchical-workflow-engine.md +0 -2438
- package/PRPs/PRDs/001-hierarchical-workflow-engine.md +0 -543
- 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 -244
- 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/index.ts +0 -143
- package/examples/utils/helpers.ts +0 -57
- package/llms_full.txt +0 -5890
- package/plan/P1P2/PRP.md +0 -527
- package/plan/P1P2/research/LRU_CACHE_BEST_PRACTICES.md +0 -1929
- package/plan/P1P2/research/LRU_CACHE_CODE_PATTERNS.md +0 -857
- package/plan/P1P2/research/LRU_CACHE_INTEGRATION_GUIDE.md +0 -738
- package/plan/P1P2/research/LRU_CACHE_RESEARCH_INDEX.md +0 -424
- package/plan/P1P2/research/REFLECTION_INDEX.md +0 -291
- package/plan/P1P2/research/REFLECTION_RESEARCH_REPORT.md +0 -1342
- package/plan/P1P2/research/RESEARCH_SUMMARY.md +0 -342
- package/plan/P1P2/research/anthropic-sdk.md +0 -174
- package/plan/P1P2/research/async-local-storage.md +0 -200
- package/plan/P1P2/research/reflection-code-patterns.md +0 -1205
- package/plan/P1P2/research/reflection-decision-matrix.md +0 -421
- package/plan/P1P2/research/reflection-implementation-guide.md +0 -1341
- package/plan/P1P2/research/reflection-integration-guide.md +0 -834
- package/plan/P1P2/research/reflection-patterns.md +0 -1468
- package/plan/P1P2/research/reflection-quick-reference.md +0 -558
- package/plan/P1P2/research/zod-schema.md +0 -152
- package/plan/P3P4/PRP.md +0 -1388
- package/plan/P3P4/research/caching-lru.md +0 -116
- package/plan/P3P4/research/introspection-tools.md +0 -177
- package/plan/P3P4/research/reflection-patterns.md +0 -117
- package/plan/P4P5/PRP.md +0 -1136
- package/plan/P4P5/research/RESEARCH_SUMMARY.md +0 -151
- package/plan/architecture/external_deps.md +0 -358
- package/plan/architecture/system_context.md +0 -242
- package/plan/backlog.json +0 -867
- package/plan/research/INTROSPECTION_RESEARCH_SUMMARY.md +0 -378
- package/plan/research/README-INTROSPECTION.md +0 -352
- package/plan/research/agent-introspection-patterns.md +0 -1085
- package/plan/research/introspection-security-guide.md +0 -928
- package/plan/research/introspection-tool-examples.md +0 -875
- package/scripts/generate-llms-full.ts +0 -206
- package/src/__tests__/integration/agent-workflow.test.ts +0 -256
- package/src/__tests__/integration/tree-mirroring.test.ts +0 -114
- 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 -138
- package/src/__tests__/unit/decorators.test.ts +0 -100
- package/src/__tests__/unit/introspection-tools.test.ts +0 -277
- package/src/__tests__/unit/prompt.test.ts +0 -135
- package/src/__tests__/unit/reflection.test.ts +0 -210
- package/src/__tests__/unit/tree-debugger.test.ts +0 -85
- package/src/__tests__/unit/workflow.test.ts +0 -81
- package/src/cache/cache-key.ts +0 -244
- package/src/cache/cache.ts +0 -236
- package/src/core/agent.ts +0 -573
- package/src/core/event-tree.ts +0 -260
- package/src/core/logger.ts +0 -87
- package/src/core/mcp-handler.ts +0 -184
- package/src/core/prompt.ts +0 -150
- package/src/core/workflow-context.ts +0 -349
- package/src/core/workflow.ts +0 -302
- package/src/debugger/tree-debugger.ts +0 -210
- package/src/decorators/observed-state.ts +0 -95
- package/src/decorators/step.ts +0 -139
- package/src/decorators/task.ts +0 -96
- package/src/examples/tdd-orchestrator.ts +0 -65
- package/src/examples/test-cycle-workflow.ts +0 -64
- package/src/index.ts +0 -140
- 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 -25
- package/src/types/error-strategy.ts +0 -13
- package/src/types/error.ts +0 -20
- package/src/types/events.ts +0 -74
- 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 -77
- package/tasks.json +0 -0
- package/tsconfig.json +0 -22
- package/vitest.config.ts +0 -16
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
# LRU Cache Research Summary
|
|
2
|
-
|
|
3
|
-
## Recommended Stack
|
|
4
|
-
|
|
5
|
-
```json
|
|
6
|
-
{
|
|
7
|
-
"dependencies": {
|
|
8
|
-
"lru-cache": "^10.0.0"
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
## Key Patterns
|
|
14
|
-
|
|
15
|
-
### 1. Deterministic Cache Key Generation
|
|
16
|
-
|
|
17
|
-
```typescript
|
|
18
|
-
import { createHash } from 'node:crypto';
|
|
19
|
-
|
|
20
|
-
function deterministicStringify(value: unknown): string {
|
|
21
|
-
const seen = new WeakSet<object>();
|
|
22
|
-
|
|
23
|
-
function stringify(val: unknown): string {
|
|
24
|
-
if (val === null) return 'null';
|
|
25
|
-
if (typeof val === 'string') return JSON.stringify(val);
|
|
26
|
-
if (typeof val === 'number' || typeof val === 'boolean') return String(val);
|
|
27
|
-
if (typeof val === 'undefined') return 'undefined';
|
|
28
|
-
|
|
29
|
-
if (typeof val === 'object') {
|
|
30
|
-
if (seen.has(val as object)) {
|
|
31
|
-
throw new TypeError('Converting circular structure to JSON');
|
|
32
|
-
}
|
|
33
|
-
seen.add(val as object);
|
|
34
|
-
|
|
35
|
-
let result: string;
|
|
36
|
-
if (Array.isArray(val)) {
|
|
37
|
-
result = '[' + val.map(stringify).join(',') + ']';
|
|
38
|
-
} else {
|
|
39
|
-
const keys = Object.keys(val as Record<string, unknown>).sort();
|
|
40
|
-
const pairs = keys.map(k =>
|
|
41
|
-
JSON.stringify(k) + ':' + stringify((val as Record<string, unknown>)[k])
|
|
42
|
-
);
|
|
43
|
-
result = '{' + pairs.join(',') + '}';
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
seen.delete(val as object);
|
|
47
|
-
return result;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return String(val);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
return stringify(value);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
function generateCacheKey(data: unknown): string {
|
|
57
|
-
const hash = createHash('sha256');
|
|
58
|
-
const serialized = deterministicStringify(data);
|
|
59
|
-
hash.update(serialized, 'utf8');
|
|
60
|
-
return hash.digest('hex');
|
|
61
|
-
}
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
### 2. LRU Cache Implementation with lru-cache
|
|
65
|
-
|
|
66
|
-
```typescript
|
|
67
|
-
import LRU from 'lru-cache';
|
|
68
|
-
|
|
69
|
-
const cache = new LRU<string, CacheValue>({
|
|
70
|
-
max: 1000, // Maximum number of items
|
|
71
|
-
maxSize: 52428800, // 50MB memory limit
|
|
72
|
-
sizeCalculation: (entry, key) => {
|
|
73
|
-
return JSON.stringify(entry).length;
|
|
74
|
-
},
|
|
75
|
-
ttl: 1000 * 60 * 60, // 1 hour default TTL
|
|
76
|
-
updateAgeOnGet: true,
|
|
77
|
-
allowStale: false
|
|
78
|
-
});
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
### 3. Cache Interface (PRD Section 9.2)
|
|
82
|
-
|
|
83
|
-
```typescript
|
|
84
|
-
interface Cache {
|
|
85
|
-
get(key: string): Promise<any | undefined>;
|
|
86
|
-
set(key: string, value: any): Promise<void>;
|
|
87
|
-
bust(key: string): Promise<void>;
|
|
88
|
-
bustPrefix(prefix: string): Promise<void>;
|
|
89
|
-
}
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
### 4. Cache Key Fields (PRD Section 9.1)
|
|
93
|
-
|
|
94
|
-
SHA-256 of deterministic JSON encoding of:
|
|
95
|
-
- user message
|
|
96
|
-
- data
|
|
97
|
-
- system value
|
|
98
|
-
- model settings
|
|
99
|
-
- temperature
|
|
100
|
-
- tools (names sorted)
|
|
101
|
-
- mcps (names sorted)
|
|
102
|
-
- skills (names sorted)
|
|
103
|
-
- schema version/hash (from Zod responseFormat._def)
|
|
104
|
-
|
|
105
|
-
## Gotchas
|
|
106
|
-
|
|
107
|
-
1. **Non-deterministic JSON.stringify** - Must sort keys!
|
|
108
|
-
2. **Memory exhaustion** - Set both `max` and `maxSize`
|
|
109
|
-
3. **Stale data** - Include model version in cache key
|
|
110
|
-
4. **Circular references** - Handle with WeakSet tracking
|
|
111
|
-
|
|
112
|
-
## Sources
|
|
113
|
-
|
|
114
|
-
- https://www.npmjs.com/package/lru-cache
|
|
115
|
-
- https://nodejs.org/api/crypto.html
|
|
116
|
-
- https://www.npmjs.com/package/json-stringify-deterministic
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
# Agent Introspection Tools Research
|
|
2
|
-
|
|
3
|
-
## Overview (PRD Section 11)
|
|
4
|
-
|
|
5
|
-
Standard tools that allow agents to inspect and manipulate their position in the workflow hierarchy.
|
|
6
|
-
|
|
7
|
-
## Tool Definitions (Anthropic Tool Format)
|
|
8
|
-
|
|
9
|
-
### 1. inspect_current_node
|
|
10
|
-
|
|
11
|
-
```typescript
|
|
12
|
-
const inspectCurrentNode: Tool = {
|
|
13
|
-
name: 'inspect_current_node',
|
|
14
|
-
description: 'Get information about the current workflow node including ID, name, status, and parent reference',
|
|
15
|
-
input_schema: {
|
|
16
|
-
type: 'object',
|
|
17
|
-
properties: {},
|
|
18
|
-
required: []
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
// Handler returns:
|
|
23
|
-
interface CurrentNodeInfo {
|
|
24
|
-
id: string;
|
|
25
|
-
name: string;
|
|
26
|
-
status: WorkflowStatus;
|
|
27
|
-
parentId?: string;
|
|
28
|
-
parentName?: string;
|
|
29
|
-
childCount: number;
|
|
30
|
-
depth: number;
|
|
31
|
-
}
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### 2. read_ancestor_chain
|
|
35
|
-
|
|
36
|
-
```typescript
|
|
37
|
-
const readAncestorChain: Tool = {
|
|
38
|
-
name: 'read_ancestor_chain',
|
|
39
|
-
description: 'Get all ancestor nodes from current position up to the root workflow',
|
|
40
|
-
input_schema: {
|
|
41
|
-
type: 'object',
|
|
42
|
-
properties: {
|
|
43
|
-
maxDepth: {
|
|
44
|
-
type: 'number',
|
|
45
|
-
description: 'Maximum ancestors to return (default: all)'
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
required: []
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
// Handler returns:
|
|
53
|
-
interface AncestorInfo {
|
|
54
|
-
ancestors: Array<{
|
|
55
|
-
id: string;
|
|
56
|
-
name: string;
|
|
57
|
-
status: WorkflowStatus;
|
|
58
|
-
depth: number;
|
|
59
|
-
}>;
|
|
60
|
-
totalDepth: number;
|
|
61
|
-
}
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
### 3. list_siblings_children
|
|
65
|
-
|
|
66
|
-
```typescript
|
|
67
|
-
const listSiblingsChildren: Tool = {
|
|
68
|
-
name: 'list_siblings_children',
|
|
69
|
-
description: 'List sibling or child nodes relative to current position',
|
|
70
|
-
input_schema: {
|
|
71
|
-
type: 'object',
|
|
72
|
-
properties: {
|
|
73
|
-
type: {
|
|
74
|
-
type: 'string',
|
|
75
|
-
enum: ['siblings', 'children'],
|
|
76
|
-
description: 'Type of nodes to list'
|
|
77
|
-
}
|
|
78
|
-
},
|
|
79
|
-
required: ['type']
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
### 4. inspect_prior_outputs
|
|
85
|
-
|
|
86
|
-
```typescript
|
|
87
|
-
const inspectPriorOutputs: Tool = {
|
|
88
|
-
name: 'inspect_prior_outputs',
|
|
89
|
-
description: 'Get outputs from prior steps or prompt executions',
|
|
90
|
-
input_schema: {
|
|
91
|
-
type: 'object',
|
|
92
|
-
properties: {
|
|
93
|
-
nodeId: {
|
|
94
|
-
type: 'string',
|
|
95
|
-
description: 'Specific node ID to inspect (default: most recent)'
|
|
96
|
-
},
|
|
97
|
-
count: {
|
|
98
|
-
type: 'number',
|
|
99
|
-
description: 'Number of prior outputs to return (default: 1)'
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
|
-
required: []
|
|
103
|
-
}
|
|
104
|
-
};
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
### 5. inspect_cache_status
|
|
108
|
-
|
|
109
|
-
```typescript
|
|
110
|
-
const inspectCacheStatus: Tool = {
|
|
111
|
-
name: 'inspect_cache_status',
|
|
112
|
-
description: 'Check if a prompt response is cached',
|
|
113
|
-
input_schema: {
|
|
114
|
-
type: 'object',
|
|
115
|
-
properties: {
|
|
116
|
-
promptHash: {
|
|
117
|
-
type: 'string',
|
|
118
|
-
description: 'Hash of the prompt to check'
|
|
119
|
-
}
|
|
120
|
-
},
|
|
121
|
-
required: ['promptHash']
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
### 6. request_spawn_workflow
|
|
127
|
-
|
|
128
|
-
```typescript
|
|
129
|
-
const requestSpawnWorkflow: Tool = {
|
|
130
|
-
name: 'request_spawn_workflow',
|
|
131
|
-
description: 'Request to spawn a new child workflow dynamically',
|
|
132
|
-
input_schema: {
|
|
133
|
-
type: 'object',
|
|
134
|
-
properties: {
|
|
135
|
-
name: {
|
|
136
|
-
type: 'string',
|
|
137
|
-
description: 'Name for the new workflow'
|
|
138
|
-
},
|
|
139
|
-
description: {
|
|
140
|
-
type: 'string',
|
|
141
|
-
description: 'Description of what the workflow should do'
|
|
142
|
-
}
|
|
143
|
-
},
|
|
144
|
-
required: ['name', 'description']
|
|
145
|
-
}
|
|
146
|
-
};
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
## Security Considerations
|
|
150
|
-
|
|
151
|
-
1. **Read-only by default**: Most introspection tools should be read-only
|
|
152
|
-
2. **Sanitize sensitive data**: Remove API keys, credentials from output
|
|
153
|
-
3. **Limit spawning**: request_spawn_workflow should have rate limits
|
|
154
|
-
4. **Depth limits**: Prevent infinite recursion in hierarchy traversal
|
|
155
|
-
|
|
156
|
-
## Tool Bundle Export
|
|
157
|
-
|
|
158
|
-
```typescript
|
|
159
|
-
export const INTROSPECTION_TOOLS: Tool[] = [
|
|
160
|
-
inspectCurrentNode,
|
|
161
|
-
readAncestorChain,
|
|
162
|
-
listSiblingsChildren,
|
|
163
|
-
inspectPriorOutputs,
|
|
164
|
-
inspectCacheStatus,
|
|
165
|
-
requestSpawnWorkflow
|
|
166
|
-
];
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
## Usage Example
|
|
170
|
-
|
|
171
|
-
```typescript
|
|
172
|
-
const agent = new Agent({
|
|
173
|
-
name: 'IntrospectiveAgent',
|
|
174
|
-
tools: [...INTROSPECTION_TOOLS, ...customTools],
|
|
175
|
-
system: 'You can inspect your position in the workflow hierarchy using the introspection tools.'
|
|
176
|
-
});
|
|
177
|
-
```
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
# Reflection Patterns Research
|
|
2
|
-
|
|
3
|
-
## What is Reflection in AI Agent Contexts
|
|
4
|
-
|
|
5
|
-
Reflection is a self-correction mechanism where an AI agent:
|
|
6
|
-
1. Evaluates its own output
|
|
7
|
-
2. Identifies errors or improvements
|
|
8
|
-
3. Revises its approach based on feedback
|
|
9
|
-
|
|
10
|
-
## Levels of Reflection (PRD Section 4.4)
|
|
11
|
-
|
|
12
|
-
### 1. Workflow-Level Reflection
|
|
13
|
-
- Triggered when a step fails
|
|
14
|
-
- Has access to entire workflow state
|
|
15
|
-
- Can retry failed steps with modified approach
|
|
16
|
-
|
|
17
|
-
### 2. Agent-Level Reflection
|
|
18
|
-
- Triggered via Agent.reflect() method
|
|
19
|
-
- Adds reflection system prompt prefix
|
|
20
|
-
- Reviews reasoning before final answer
|
|
21
|
-
|
|
22
|
-
### 3. Prompt-Level Reflection
|
|
23
|
-
- Enabled per-prompt via enableReflection flag
|
|
24
|
-
- Validates response against schema
|
|
25
|
-
- Retries with error context if validation fails
|
|
26
|
-
|
|
27
|
-
## Implementation Patterns
|
|
28
|
-
|
|
29
|
-
### Reflection Prompt Template
|
|
30
|
-
|
|
31
|
-
```typescript
|
|
32
|
-
const REFLECTION_PROMPT = `Before answering, reflect on your reasoning step by step:
|
|
33
|
-
1. What is the core problem/question?
|
|
34
|
-
2. What approaches could solve this?
|
|
35
|
-
3. What are potential errors or edge cases?
|
|
36
|
-
4. Review your answer for accuracy.
|
|
37
|
-
|
|
38
|
-
Then provide your final answer.`;
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
### Auto-Retry with Reflection
|
|
42
|
-
|
|
43
|
-
```typescript
|
|
44
|
-
async function executeWithReflection<T>(
|
|
45
|
-
agent: Agent,
|
|
46
|
-
prompt: Prompt<T>,
|
|
47
|
-
maxAttempts: number = 3
|
|
48
|
-
): Promise<T> {
|
|
49
|
-
let lastError: Error | null = null;
|
|
50
|
-
|
|
51
|
-
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
52
|
-
try {
|
|
53
|
-
const result = await agent.prompt(prompt);
|
|
54
|
-
return result;
|
|
55
|
-
} catch (error) {
|
|
56
|
-
lastError = error as Error;
|
|
57
|
-
|
|
58
|
-
if (attempt < maxAttempts) {
|
|
59
|
-
// Create reflection prompt with error context
|
|
60
|
-
const reflectionPrompt = prompt.withData({
|
|
61
|
-
previousError: lastError.message,
|
|
62
|
-
attempt: attempt,
|
|
63
|
-
instruction: 'Reflect on the previous error and try again.'
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
// Emit reflection event
|
|
67
|
-
emitEvent({
|
|
68
|
-
type: 'reflectionStart',
|
|
69
|
-
level: 'prompt',
|
|
70
|
-
node: currentNode
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
throw lastError;
|
|
77
|
-
}
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
### ReflectionAPI Interface (PRD Section 4.3)
|
|
81
|
-
|
|
82
|
-
```typescript
|
|
83
|
-
interface ReflectionAPI {
|
|
84
|
-
isEnabled(): boolean;
|
|
85
|
-
triggerReflection(reason?: string): Promise<void>;
|
|
86
|
-
getReflectionHistory(): ReflectionEntry[];
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
interface ReflectionEntry {
|
|
90
|
-
timestamp: number;
|
|
91
|
-
level: 'workflow' | 'agent' | 'prompt';
|
|
92
|
-
reason: string;
|
|
93
|
-
originalError?: Error;
|
|
94
|
-
resolution: 'retry' | 'skip' | 'abort';
|
|
95
|
-
success: boolean;
|
|
96
|
-
}
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
## Best Practices
|
|
100
|
-
|
|
101
|
-
1. **Maximum reflection attempts**: 2-3 attempts before failure
|
|
102
|
-
2. **When NOT to reflect**:
|
|
103
|
-
- Rate limit errors (wait and retry instead)
|
|
104
|
-
- Authentication errors (cannot self-fix)
|
|
105
|
-
- Quota exceeded (needs external action)
|
|
106
|
-
3. **Performance considerations**:
|
|
107
|
-
- Each reflection doubles token usage
|
|
108
|
-
- Cache reflection results when possible
|
|
109
|
-
4. **State capture**: Always snapshot state before reflection for debugging
|
|
110
|
-
|
|
111
|
-
## Integration with Workflow Events
|
|
112
|
-
|
|
113
|
-
```typescript
|
|
114
|
-
// Events to emit during reflection
|
|
115
|
-
{ type: 'reflectionStart'; level: 'workflow' | 'agent' | 'prompt'; node: WorkflowNode }
|
|
116
|
-
{ type: 'reflectionEnd'; level: 'workflow' | 'agent' | 'prompt'; success: boolean; node: WorkflowNode }
|
|
117
|
-
```
|