groundswell 0.0.2 → 1.0.0
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/LICENSE +21 -0
- package/README.md +26 -9
- package/dist/cache/cache-key.d.ts +86 -0
- package/dist/cache/cache-key.d.ts.map +1 -0
- package/dist/cache/cache-key.js +204 -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 +203 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +833 -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 +127 -0
- package/dist/core/mcp-handler.d.ts.map +1 -0
- package/dist/core/mcp-handler.js +323 -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 +61 -0
- package/dist/core/workflow-context.d.ts.map +1 -0
- package/dist/core/workflow-context.js +358 -0
- package/dist/core/workflow-context.js.map +1 -0
- package/dist/core/workflow.d.ts +543 -0
- package/dist/core/workflow.d.ts.map +1 -0
- package/dist/core/workflow.js +986 -0
- package/dist/core/workflow.js.map +1 -0
- package/dist/debugger/event-replayer.d.ts +422 -0
- package/dist/debugger/event-replayer.d.ts.map +1 -0
- package/dist/debugger/event-replayer.js +639 -0
- package/dist/debugger/event-replayer.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 +240 -0
- package/dist/debugger/tree-debugger.d.ts.map +1 -0
- package/dist/debugger/tree-debugger.js +620 -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 +192 -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/harnesses/claude-code-harness.d.ts +391 -0
- package/dist/harnesses/claude-code-harness.d.ts.map +1 -0
- package/dist/harnesses/claude-code-harness.js +1076 -0
- package/dist/harnesses/claude-code-harness.js.map +1 -0
- package/dist/harnesses/harness-registry.d.ts +440 -0
- package/dist/harnesses/harness-registry.d.ts.map +1 -0
- package/dist/harnesses/harness-registry.js +543 -0
- package/dist/harnesses/harness-registry.js.map +1 -0
- package/dist/harnesses/index.d.ts +12 -0
- package/dist/harnesses/index.d.ts.map +1 -0
- package/dist/harnesses/index.js +11 -0
- package/dist/harnesses/index.js.map +1 -0
- package/dist/harnesses/pi-harness.d.ts +219 -0
- package/dist/harnesses/pi-harness.d.ts.map +1 -0
- package/dist/harnesses/pi-harness.js +676 -0
- package/dist/harnesses/pi-harness.js.map +1 -0
- package/dist/harnesses/pi-schema-converter.d.ts +24 -0
- package/dist/harnesses/pi-schema-converter.d.ts.map +1 -0
- package/dist/harnesses/pi-schema-converter.js +81 -0
- package/dist/harnesses/pi-schema-converter.js.map +1 -0
- package/dist/harnesses/register-defaults.d.ts +24 -0
- package/dist/harnesses/register-defaults.d.ts.map +1 -0
- package/dist/harnesses/register-defaults.js +40 -0
- package/dist/harnesses/register-defaults.js.map +1 -0
- package/dist/harnesses/session-store.d.ts +201 -0
- package/dist/harnesses/session-store.d.ts.map +1 -0
- package/dist/harnesses/session-store.js +254 -0
- package/dist/harnesses/session-store.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +57 -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 +344 -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 +1317 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +423 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/decorators.d.ts +40 -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 +113 -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/harnesses.d.ts +474 -0
- package/dist/types/harnesses.d.ts.map +1 -0
- package/dist/types/harnesses.js +2 -0
- package/dist/types/harnesses.js.map +1 -0
- package/dist/types/index.d.ts +23 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -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/providers.d.ts +691 -0
- package/dist/types/providers.d.ts.map +1 -0
- package/dist/types/providers.js +14 -0
- package/dist/types/providers.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/restart.d.ts +132 -0
- package/dist/types/restart.d.ts.map +1 -0
- package/dist/types/restart.js +2 -0
- package/dist/types/restart.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/streaming.d.ts +194 -0
- package/dist/types/streaming.d.ts.map +1 -0
- package/dist/types/streaming.js +67 -0
- package/dist/types/streaming.js.map +1 -0
- package/dist/types/workflow-context.d.ts +275 -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/agent-validation.d.ts +88 -0
- package/dist/utils/agent-validation.d.ts.map +1 -0
- package/dist/utils/agent-validation.js +87 -0
- package/dist/utils/agent-validation.js.map +1 -0
- package/dist/utils/delay.d.ts +7 -0
- package/dist/utils/delay.d.ts.map +1 -0
- package/dist/utils/delay.js +9 -0
- package/dist/utils/delay.js.map +1 -0
- package/dist/utils/harness-config.d.ts +180 -0
- package/dist/utils/harness-config.d.ts.map +1 -0
- package/dist/utils/harness-config.js +311 -0
- package/dist/utils/harness-config.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/dist/utils/index.d.ts +13 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +11 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/model-spec.d.ts +110 -0
- package/dist/utils/model-spec.d.ts.map +1 -0
- package/dist/utils/model-spec.js +149 -0
- package/dist/utils/model-spec.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/provider-config.d.ts +10 -0
- package/dist/utils/provider-config.d.ts.map +1 -0
- package/dist/utils/provider-config.js +10 -0
- package/dist/utils/provider-config.js.map +1 -0
- package/dist/utils/restart-analysis.d.ts +202 -0
- package/dist/utils/restart-analysis.d.ts.map +1 -0
- package/dist/utils/restart-analysis.js +426 -0
- package/dist/utils/restart-analysis.js.map +1 -0
- package/dist/utils/session-serialization.d.ts +118 -0
- package/dist/utils/session-serialization.d.ts.map +1 -0
- package/dist/utils/session-serialization.js +217 -0
- package/dist/utils/session-serialization.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 +34 -5
- 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/CHANGELOG.md +0 -188
- 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/index.ts +0 -18
- 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/index.ts +0 -4
- package/src/utils/observable.ts +0 -106
- package/src/utils/workflow-error-utils.ts +0 -56
- package/tsconfig.json +0 -22
- package/vitest.config.ts +0 -16
|
@@ -1,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
|
-
```
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
# Phase 4 & 5 Research Summary
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
This document summarizes the research findings that informed the PRP for Phases 4 & 5 of the Groundswell orchestration framework.
|
|
6
|
-
|
|
7
|
-
## Phase 4 Status: COMPLETE
|
|
8
|
-
|
|
9
|
-
All Phase 4 implementations are complete and verified. The research from P3P4 was applied successfully:
|
|
10
|
-
|
|
11
|
-
### Dynamic Factory Functions (P4.1)
|
|
12
|
-
- **Implementation**: `/src/core/factory.ts` (124 lines)
|
|
13
|
-
- **Functions**: `createWorkflow()`, `createAgent()`, `createPrompt()`, `quickWorkflow()`, `quickAgent()`
|
|
14
|
-
- **Pattern**: Factory pattern for dynamic entity creation at runtime
|
|
15
|
-
|
|
16
|
-
### Dynamic Context Revision (P4.2)
|
|
17
|
-
- **Implementation**: `/src/core/workflow-context.ts` (349 lines)
|
|
18
|
-
- **Method**: `replaceLastPromptResult<T>(newPrompt, agent)`
|
|
19
|
-
- **Pattern**: Marks previous node as 'revised', attaches new result as sibling
|
|
20
|
-
|
|
21
|
-
### Introspection Tools (P4.3-P4.5)
|
|
22
|
-
- **Implementation**: `/src/tools/introspection.ts` (465 lines)
|
|
23
|
-
- **Tools Defined**: 6 tools per PRD Section 11
|
|
24
|
-
- **Pattern**: Anthropic Tool format with `input_schema` JSON Schema
|
|
25
|
-
|
|
26
|
-
## Phase 5 Research: Example Implementation
|
|
27
|
-
|
|
28
|
-
### Existing Example Patterns (Examples 1-6)
|
|
29
|
-
|
|
30
|
-
**File Structure Pattern**:
|
|
31
|
-
```
|
|
32
|
-
/examples/examples/NN-feature-name.ts
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
**Code Structure**:
|
|
36
|
-
1. JSDoc header with "Demonstrates:" section
|
|
37
|
-
2. Imports (groundswell, then helpers)
|
|
38
|
-
3. Workflow/Agent class definitions
|
|
39
|
-
4. `run*Example()` export function with Parts 1-N
|
|
40
|
-
5. Direct execution check via `import.meta.url`
|
|
41
|
-
|
|
42
|
-
**Output Pattern**:
|
|
43
|
-
- `printHeader()` for main sections
|
|
44
|
-
- `printSection()` for subsections
|
|
45
|
-
- Console output showing actual feature behavior
|
|
46
|
-
- Tree visualization at end
|
|
47
|
-
|
|
48
|
-
### Example 7: Agent Loops with Observability
|
|
49
|
-
|
|
50
|
-
**Key Patterns to Demonstrate**:
|
|
51
|
-
1. Agent.prompt() inside ctx.step() loop
|
|
52
|
-
2. Multi-agent routing based on data type
|
|
53
|
-
3. Full event tree with timing per iteration
|
|
54
|
-
4. Cache metrics display
|
|
55
|
-
|
|
56
|
-
**Reference Research**: `/plan/P3P4/research/caching-lru.md`
|
|
57
|
-
- Shows cache hit/miss tracking
|
|
58
|
-
- Metrics include: hits, misses, size, itemCount
|
|
59
|
-
|
|
60
|
-
### Example 8: SDK Features
|
|
61
|
-
|
|
62
|
-
**Key Patterns to Demonstrate**:
|
|
63
|
-
1. Tool definition in Anthropic format
|
|
64
|
-
2. MCPHandler registration pattern
|
|
65
|
-
3. Hook lifecycle (pre/post tool, session start/end)
|
|
66
|
-
4. Skill loading from path
|
|
67
|
-
|
|
68
|
-
**Reference Research**: `/plan/P1P2/research/anthropic-sdk.md`
|
|
69
|
-
- Tool schema follows JSON Schema spec
|
|
70
|
-
- Hooks must be async functions
|
|
71
|
-
- Skills inject SKILL.md content into system prompt
|
|
72
|
-
|
|
73
|
-
### Example 9: Multi-level Reflection
|
|
74
|
-
|
|
75
|
-
**Key Patterns to Demonstrate**:
|
|
76
|
-
1. Prompt-level: `enableReflection: true` on Prompt
|
|
77
|
-
2. Agent-level: `agent.reflect()` method
|
|
78
|
-
3. Workflow-level: `enableReflection` on WorkflowConfig
|
|
79
|
-
|
|
80
|
-
**Reference Research**: `/plan/P3P4/research/reflection-patterns.md`
|
|
81
|
-
- Max 3 attempts before failure
|
|
82
|
-
- Skip reflection for rate limits, auth errors
|
|
83
|
-
- Emit reflectionStart/reflectionEnd events
|
|
84
|
-
|
|
85
|
-
**Non-Retryable Errors**:
|
|
86
|
-
- Rate limit exceeded
|
|
87
|
-
- Authentication failure
|
|
88
|
-
- Quota exceeded
|
|
89
|
-
- Network errors (timeouts)
|
|
90
|
-
|
|
91
|
-
### Example 10: Introspection Tools
|
|
92
|
-
|
|
93
|
-
**Key Patterns to Demonstrate**:
|
|
94
|
-
1. All 6 introspection tools in action
|
|
95
|
-
2. Nested workflow hierarchy for context
|
|
96
|
-
3. Agent using tools to describe position
|
|
97
|
-
|
|
98
|
-
**Reference Research**: `/plan/P3P4/research/introspection-tools.md`
|
|
99
|
-
- Tools are read-only (except spawn)
|
|
100
|
-
- Use getExecutionContext() for context access
|
|
101
|
-
- Security: filter secrets from responses
|
|
102
|
-
|
|
103
|
-
**Tools to Demonstrate**:
|
|
104
|
-
| Tool | Purpose | Returns |
|
|
105
|
-
|------|---------|---------|
|
|
106
|
-
| `inspect_current_node` | "Where am I?" | id, name, status, parentId, depth |
|
|
107
|
-
| `read_ancestor_chain` | "What's above me?" | Array of ancestors to root |
|
|
108
|
-
| `list_siblings_children` | "What's around me?" | Siblings or children array |
|
|
109
|
-
| `inspect_prior_outputs` | "What happened before?" | Previous step outputs |
|
|
110
|
-
| `inspect_cache_status` | "Is this cached?" | Cache entry info |
|
|
111
|
-
| `request_spawn_workflow` | "Can I create children?" | Spawn request result |
|
|
112
|
-
|
|
113
|
-
## Implementation Verification
|
|
114
|
-
|
|
115
|
-
### Validation Commands
|
|
116
|
-
```bash
|
|
117
|
-
# Build check
|
|
118
|
-
npm run build
|
|
119
|
-
|
|
120
|
-
# Test check
|
|
121
|
-
npm test
|
|
122
|
-
|
|
123
|
-
# Export verification
|
|
124
|
-
node -e "const g = require('./dist'); console.log(Object.keys(g).length, 'exports');"
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
### Expected Outputs
|
|
128
|
-
- Build: 0 errors
|
|
129
|
-
- Tests: All passing
|
|
130
|
-
- Exports: ~60+ exports from main index
|
|
131
|
-
|
|
132
|
-
## References
|
|
133
|
-
|
|
134
|
-
### Primary Research Documents
|
|
135
|
-
- `/plan/P3P4/research/caching-lru.md` - LRU cache patterns
|
|
136
|
-
- `/plan/P3P4/research/reflection-patterns.md` - Reflection implementation
|
|
137
|
-
- `/plan/P3P4/research/introspection-tools.md` - Tool specifications
|
|
138
|
-
- `/plan/research/agent-introspection-patterns.md` - Hierarchy patterns
|
|
139
|
-
- `/plan/research/introspection-security-guide.md` - Security boundaries
|
|
140
|
-
|
|
141
|
-
### Implementation References
|
|
142
|
-
- `/src/core/agent.ts` - Agent implementation (573 lines)
|
|
143
|
-
- `/src/core/prompt.ts` - Prompt implementation (150 lines)
|
|
144
|
-
- `/src/cache/cache.ts` - LLMCache implementation (237 lines)
|
|
145
|
-
- `/src/reflection/reflection.ts` - ReflectionManager (407 lines)
|
|
146
|
-
- `/src/tools/introspection.ts` - Introspection tools (465 lines)
|
|
147
|
-
|
|
148
|
-
### Example References
|
|
149
|
-
- `/examples/examples/01-basic-workflow.ts` - Basic patterns
|
|
150
|
-
- `/examples/examples/04-observers-debugger.ts` - Debugging patterns
|
|
151
|
-
- `/examples/examples/05-error-handling.ts` - Error patterns
|