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,573 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Example 9: Multi-level Reflection
|
|
3
|
-
*
|
|
4
|
-
* Demonstrates:
|
|
5
|
-
* - Prompt-level reflection (enableReflection on prompt)
|
|
6
|
-
* - Agent-level reflection (agent.reflect() method)
|
|
7
|
-
* - Workflow-level reflection (step failure retry)
|
|
8
|
-
* - Reflection events in tree output
|
|
9
|
-
* - Error recovery with revised prompts
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
import { z } from 'zod';
|
|
13
|
-
import {
|
|
14
|
-
Workflow,
|
|
15
|
-
Step,
|
|
16
|
-
ObservedState,
|
|
17
|
-
WorkflowTreeDebugger,
|
|
18
|
-
ReflectionManager,
|
|
19
|
-
executeWithReflection,
|
|
20
|
-
DEFAULT_REFLECTION_CONFIG,
|
|
21
|
-
createReflectionConfig,
|
|
22
|
-
} from 'groundswell';
|
|
23
|
-
import type {
|
|
24
|
-
ReflectionConfig,
|
|
25
|
-
ReflectionEntry,
|
|
26
|
-
ReflectionContext,
|
|
27
|
-
WorkflowNode,
|
|
28
|
-
} from 'groundswell';
|
|
29
|
-
import { printHeader, printSection, sleep, simulateUnreliableTask } from '../utils/helpers.js';
|
|
30
|
-
|
|
31
|
-
// ============================================================================
|
|
32
|
-
// Response Schemas
|
|
33
|
-
// ============================================================================
|
|
34
|
-
|
|
35
|
-
const StrictAnswerSchema = z.object({
|
|
36
|
-
answer: z.string().min(10, 'Answer must be at least 10 characters'),
|
|
37
|
-
confidence: z.number().min(0.8, 'Confidence must be at least 0.8'),
|
|
38
|
-
reasoning: z.string().min(20, 'Reasoning must be detailed'),
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
const AnalysisSchema = z.object({
|
|
42
|
-
summary: z.string(),
|
|
43
|
-
keyPoints: z.array(z.string()).min(2, 'Must have at least 2 key points'),
|
|
44
|
-
recommendation: z.string(),
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
type StrictAnswer = z.infer<typeof StrictAnswerSchema>;
|
|
48
|
-
type Analysis = z.infer<typeof AnalysisSchema>;
|
|
49
|
-
|
|
50
|
-
// ============================================================================
|
|
51
|
-
// Simulated Responses (for demonstration without API calls)
|
|
52
|
-
// ============================================================================
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Simulate a response that might fail schema validation
|
|
56
|
-
*/
|
|
57
|
-
async function simulateStrictResponse(
|
|
58
|
-
attemptNumber: number
|
|
59
|
-
): Promise<StrictAnswer> {
|
|
60
|
-
await sleep(50);
|
|
61
|
-
|
|
62
|
-
// First attempt might fail validation
|
|
63
|
-
if (attemptNumber === 1 && Math.random() > 0.3) {
|
|
64
|
-
return {
|
|
65
|
-
answer: 'Short', // Too short - will fail validation
|
|
66
|
-
confidence: 0.5, // Too low - will fail validation
|
|
67
|
-
reasoning: 'Brief', // Too short
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// Subsequent attempts return valid data
|
|
72
|
-
return {
|
|
73
|
-
answer: 'This is a comprehensive answer that meets the minimum length requirement',
|
|
74
|
-
confidence: 0.92,
|
|
75
|
-
reasoning: 'Based on careful analysis of the input data and consideration of multiple factors',
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Simulate an analysis response
|
|
81
|
-
*/
|
|
82
|
-
async function simulateAnalysis(): Promise<Analysis> {
|
|
83
|
-
await sleep(75);
|
|
84
|
-
|
|
85
|
-
return {
|
|
86
|
-
summary: 'The analysis shows positive trends across all metrics',
|
|
87
|
-
keyPoints: [
|
|
88
|
-
'Revenue increased by 15%',
|
|
89
|
-
'Customer satisfaction improved',
|
|
90
|
-
'Operational efficiency gains',
|
|
91
|
-
],
|
|
92
|
-
recommendation: 'Continue current strategy with minor adjustments',
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
// ============================================================================
|
|
97
|
-
// Workflow Definitions
|
|
98
|
-
// ============================================================================
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Prompt-level reflection demonstration
|
|
102
|
-
*/
|
|
103
|
-
class PromptReflectionWorkflow extends Workflow {
|
|
104
|
-
@ObservedState()
|
|
105
|
-
attemptCount: number = 0;
|
|
106
|
-
|
|
107
|
-
@ObservedState()
|
|
108
|
-
validationErrors: string[] = [];
|
|
109
|
-
|
|
110
|
-
@ObservedState()
|
|
111
|
-
finalResult: StrictAnswer | null = null;
|
|
112
|
-
|
|
113
|
-
private reflectionManager: ReflectionManager;
|
|
114
|
-
|
|
115
|
-
constructor(name: string) {
|
|
116
|
-
super(name);
|
|
117
|
-
this.reflectionManager = new ReflectionManager(
|
|
118
|
-
createReflectionConfig({ enabled: true, maxAttempts: 3 })
|
|
119
|
-
);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
@Step({ trackTiming: true, snapshotState: true })
|
|
123
|
-
async executeWithSchemaValidation(): Promise<StrictAnswer> {
|
|
124
|
-
this.logger.info('Attempting prompt with strict schema validation');
|
|
125
|
-
|
|
126
|
-
// Simulate multiple attempts until schema validates
|
|
127
|
-
for (let attempt = 1; attempt <= 3; attempt++) {
|
|
128
|
-
this.attemptCount = attempt;
|
|
129
|
-
this.logger.info(`Attempt ${attempt}/3`);
|
|
130
|
-
|
|
131
|
-
const response = await simulateStrictResponse(attempt);
|
|
132
|
-
|
|
133
|
-
// Validate against schema
|
|
134
|
-
const result = StrictAnswerSchema.safeParse(response);
|
|
135
|
-
|
|
136
|
-
if (result.success) {
|
|
137
|
-
this.logger.info('Schema validation passed!');
|
|
138
|
-
this.finalResult = result.data;
|
|
139
|
-
return result.data;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
// Collect validation errors
|
|
143
|
-
const errors = result.error.errors.map((e) => `${e.path.join('.')}: ${e.message}`);
|
|
144
|
-
this.validationErrors.push(...errors);
|
|
145
|
-
this.logger.warn(`Validation failed: ${errors.join(', ')}`);
|
|
146
|
-
|
|
147
|
-
if (attempt < 3) {
|
|
148
|
-
this.logger.info('Reflecting on error and retrying...');
|
|
149
|
-
await sleep(100); // Reflection delay
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
throw new Error('Max reflection attempts exceeded - schema validation failed');
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
async run(): Promise<StrictAnswer | null> {
|
|
157
|
-
this.setStatus('running');
|
|
158
|
-
this.logger.info('Starting prompt-level reflection demo');
|
|
159
|
-
|
|
160
|
-
try {
|
|
161
|
-
const result = await this.executeWithSchemaValidation();
|
|
162
|
-
this.setStatus('completed');
|
|
163
|
-
return result;
|
|
164
|
-
} catch (error) {
|
|
165
|
-
this.logger.error(`Failed after ${this.attemptCount} attempts`);
|
|
166
|
-
this.setStatus('failed');
|
|
167
|
-
return null;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* Agent-level reflection demonstration
|
|
174
|
-
*/
|
|
175
|
-
class AgentReflectionWorkflow extends Workflow {
|
|
176
|
-
@ObservedState()
|
|
177
|
-
reflectionHistory: Array<{
|
|
178
|
-
attempt: number;
|
|
179
|
-
action: string;
|
|
180
|
-
result: string;
|
|
181
|
-
}> = [];
|
|
182
|
-
|
|
183
|
-
@ObservedState()
|
|
184
|
-
analysisResult: Analysis | null = null;
|
|
185
|
-
|
|
186
|
-
constructor(name: string) {
|
|
187
|
-
super(name);
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
@Step({ trackTiming: true, snapshotState: true, name: 'reflect-analysis' })
|
|
191
|
-
async reflectOnAnalysis(): Promise<Analysis> {
|
|
192
|
-
this.logger.info('Agent reflecting on analysis approach');
|
|
193
|
-
|
|
194
|
-
// Step 1: Initial reasoning
|
|
195
|
-
this.reflectionHistory.push({
|
|
196
|
-
attempt: 1,
|
|
197
|
-
action: 'Initial reasoning',
|
|
198
|
-
result: 'Considering multiple analysis angles',
|
|
199
|
-
});
|
|
200
|
-
await sleep(50);
|
|
201
|
-
|
|
202
|
-
// Step 2: Self-correction
|
|
203
|
-
this.reflectionHistory.push({
|
|
204
|
-
attempt: 2,
|
|
205
|
-
action: 'Self-correction',
|
|
206
|
-
result: 'Identified potential bias in initial approach',
|
|
207
|
-
});
|
|
208
|
-
await sleep(50);
|
|
209
|
-
|
|
210
|
-
// Step 3: Revised approach
|
|
211
|
-
this.reflectionHistory.push({
|
|
212
|
-
attempt: 3,
|
|
213
|
-
action: 'Revised analysis',
|
|
214
|
-
result: 'Applied broader perspective for balanced view',
|
|
215
|
-
});
|
|
216
|
-
await sleep(50);
|
|
217
|
-
|
|
218
|
-
// Final result after reflection
|
|
219
|
-
const result = await simulateAnalysis();
|
|
220
|
-
this.analysisResult = result;
|
|
221
|
-
|
|
222
|
-
return result;
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
@Step({ snapshotState: true })
|
|
226
|
-
async summarizeReflection(): Promise<string> {
|
|
227
|
-
const summary = `
|
|
228
|
-
Reflection Summary:
|
|
229
|
-
Total steps: ${this.reflectionHistory.length}
|
|
230
|
-
${this.reflectionHistory.map((r) => ` - ${r.action}: ${r.result}`).join('\n')}
|
|
231
|
-
`.trim();
|
|
232
|
-
|
|
233
|
-
this.logger.info('Reflection process complete');
|
|
234
|
-
return summary;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
async run(): Promise<Analysis | null> {
|
|
238
|
-
this.setStatus('running');
|
|
239
|
-
this.logger.info('Starting agent-level reflection demo');
|
|
240
|
-
|
|
241
|
-
// System prompt would include reflection instructions:
|
|
242
|
-
// "Before answering, reflect on your reasoning step by step.
|
|
243
|
-
// Consider alternative approaches and potential errors.
|
|
244
|
-
// Then provide your final answer."
|
|
245
|
-
|
|
246
|
-
const result = await this.reflectOnAnalysis();
|
|
247
|
-
await this.summarizeReflection();
|
|
248
|
-
|
|
249
|
-
this.setStatus('completed');
|
|
250
|
-
return result;
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
/**
|
|
255
|
-
* Workflow-level reflection demonstration
|
|
256
|
-
*/
|
|
257
|
-
class WorkflowReflectionWorkflow extends Workflow {
|
|
258
|
-
@ObservedState()
|
|
259
|
-
stepAttempts: Record<string, number> = {};
|
|
260
|
-
|
|
261
|
-
@ObservedState()
|
|
262
|
-
failureReasons: string[] = [];
|
|
263
|
-
|
|
264
|
-
@ObservedState()
|
|
265
|
-
successfulSteps: string[] = [];
|
|
266
|
-
|
|
267
|
-
private reflectionManager: ReflectionManager;
|
|
268
|
-
|
|
269
|
-
constructor(name: string) {
|
|
270
|
-
super(name);
|
|
271
|
-
this.reflectionManager = new ReflectionManager(
|
|
272
|
-
createReflectionConfig({ enabled: true, maxAttempts: 3, retryDelayMs: 100 })
|
|
273
|
-
);
|
|
274
|
-
|
|
275
|
-
// Set event emitter for reflection events
|
|
276
|
-
this.reflectionManager.setEventEmitter((event) => {
|
|
277
|
-
if (event.type === 'reflectionStart') {
|
|
278
|
-
this.logger.info(`Reflection started at ${event.level} level`);
|
|
279
|
-
} else if (event.type === 'reflectionEnd') {
|
|
280
|
-
this.logger.info(`Reflection ended: ${event.success ? 'will retry' : 'will abort'}`);
|
|
281
|
-
}
|
|
282
|
-
});
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
@Step({ trackTiming: true, snapshotState: true })
|
|
286
|
-
async unreliableStep(): Promise<string> {
|
|
287
|
-
const stepName = 'unreliableStep';
|
|
288
|
-
this.stepAttempts[stepName] = (this.stepAttempts[stepName] ?? 0) + 1;
|
|
289
|
-
const attempt = this.stepAttempts[stepName];
|
|
290
|
-
|
|
291
|
-
this.logger.info(`Executing unreliable step (attempt ${attempt})`);
|
|
292
|
-
|
|
293
|
-
// Simulate failure on first 2 attempts
|
|
294
|
-
if (attempt < 3) {
|
|
295
|
-
const reason = `Transient failure on attempt ${attempt}`;
|
|
296
|
-
this.failureReasons.push(reason);
|
|
297
|
-
throw new Error(reason);
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
this.successfulSteps.push(stepName);
|
|
301
|
-
return `Success on attempt ${attempt}`;
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
@Step({ trackTiming: true, snapshotState: true })
|
|
305
|
-
async reliableStep(): Promise<string> {
|
|
306
|
-
const stepName = 'reliableStep';
|
|
307
|
-
this.stepAttempts[stepName] = 1;
|
|
308
|
-
this.logger.info('Executing reliable step');
|
|
309
|
-
await sleep(50);
|
|
310
|
-
this.successfulSteps.push(stepName);
|
|
311
|
-
return 'Reliable step completed';
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
async run(): Promise<void> {
|
|
315
|
-
this.setStatus('running');
|
|
316
|
-
this.logger.info('Starting workflow-level reflection demo');
|
|
317
|
-
|
|
318
|
-
// Create mock node for reflection context
|
|
319
|
-
const mockNode: WorkflowNode = {
|
|
320
|
-
id: this.id,
|
|
321
|
-
name: this.name,
|
|
322
|
-
status: 'running',
|
|
323
|
-
children: [],
|
|
324
|
-
events: [],
|
|
325
|
-
};
|
|
326
|
-
|
|
327
|
-
// Execute unreliable step with reflection wrapper
|
|
328
|
-
try {
|
|
329
|
-
await executeWithReflection(
|
|
330
|
-
() => this.unreliableStep(),
|
|
331
|
-
this.reflectionManager,
|
|
332
|
-
(error, attempt, history) => ({
|
|
333
|
-
level: 'workflow',
|
|
334
|
-
failedNode: mockNode,
|
|
335
|
-
error,
|
|
336
|
-
attemptNumber: attempt,
|
|
337
|
-
previousAttempts: history,
|
|
338
|
-
})
|
|
339
|
-
);
|
|
340
|
-
} catch (error) {
|
|
341
|
-
this.logger.error(`Step failed after max attempts: ${(error as Error).message}`);
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
// Execute reliable step
|
|
345
|
-
await this.reliableStep();
|
|
346
|
-
|
|
347
|
-
this.logger.info(`Completed steps: ${this.successfulSteps.join(', ')}`);
|
|
348
|
-
this.logger.info(`Total failures: ${this.failureReasons.length}`);
|
|
349
|
-
|
|
350
|
-
this.setStatus('completed');
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
/**
|
|
355
|
-
* Combined multi-level reflection demonstration
|
|
356
|
-
*/
|
|
357
|
-
class MultiLevelReflectionWorkflow extends Workflow {
|
|
358
|
-
@ObservedState()
|
|
359
|
-
reflectionEvents: Array<{
|
|
360
|
-
level: string;
|
|
361
|
-
type: string;
|
|
362
|
-
timestamp: number;
|
|
363
|
-
}> = [];
|
|
364
|
-
|
|
365
|
-
private reflectionManager: ReflectionManager;
|
|
366
|
-
|
|
367
|
-
constructor(name: string) {
|
|
368
|
-
super(name);
|
|
369
|
-
this.reflectionManager = new ReflectionManager(
|
|
370
|
-
createReflectionConfig({ enabled: true, maxAttempts: 3 })
|
|
371
|
-
);
|
|
372
|
-
|
|
373
|
-
this.reflectionManager.setEventEmitter((event) => {
|
|
374
|
-
if (event.type === 'reflectionStart' || event.type === 'reflectionEnd') {
|
|
375
|
-
this.reflectionEvents.push({
|
|
376
|
-
level: (event as { level: string }).level,
|
|
377
|
-
type: event.type,
|
|
378
|
-
timestamp: Date.now(),
|
|
379
|
-
});
|
|
380
|
-
}
|
|
381
|
-
});
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
@Step({ trackTiming: true, snapshotState: true, name: 'prompt-level' })
|
|
385
|
-
async promptLevelReflection(): Promise<void> {
|
|
386
|
-
this.logger.info('Prompt-level: Schema validation with retry');
|
|
387
|
-
this.reflectionEvents.push({
|
|
388
|
-
level: 'prompt',
|
|
389
|
-
type: 'validation',
|
|
390
|
-
timestamp: Date.now(),
|
|
391
|
-
});
|
|
392
|
-
await sleep(50);
|
|
393
|
-
}
|
|
394
|
-
|
|
395
|
-
@Step({ trackTiming: true, snapshotState: true, name: 'agent-level' })
|
|
396
|
-
async agentLevelReflection(): Promise<void> {
|
|
397
|
-
this.logger.info('Agent-level: Self-correction before final answer');
|
|
398
|
-
this.reflectionEvents.push({
|
|
399
|
-
level: 'agent',
|
|
400
|
-
type: 'self-correction',
|
|
401
|
-
timestamp: Date.now(),
|
|
402
|
-
});
|
|
403
|
-
await sleep(50);
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
@Step({ trackTiming: true, snapshotState: true, name: 'workflow-level' })
|
|
407
|
-
async workflowLevelReflection(): Promise<void> {
|
|
408
|
-
this.logger.info('Workflow-level: Step retry on failure');
|
|
409
|
-
this.reflectionEvents.push({
|
|
410
|
-
level: 'workflow',
|
|
411
|
-
type: 'step-retry',
|
|
412
|
-
timestamp: Date.now(),
|
|
413
|
-
});
|
|
414
|
-
await sleep(50);
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
async run(): Promise<void> {
|
|
418
|
-
this.setStatus('running');
|
|
419
|
-
this.logger.info('Starting multi-level reflection demonstration');
|
|
420
|
-
|
|
421
|
-
await this.promptLevelReflection();
|
|
422
|
-
await this.agentLevelReflection();
|
|
423
|
-
await this.workflowLevelReflection();
|
|
424
|
-
|
|
425
|
-
this.logger.info(`Total reflection events: ${this.reflectionEvents.length}`);
|
|
426
|
-
this.setStatus('completed');
|
|
427
|
-
}
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
// ============================================================================
|
|
431
|
-
// Main Example Runner
|
|
432
|
-
// ============================================================================
|
|
433
|
-
|
|
434
|
-
/**
|
|
435
|
-
* Run the Multi-level Reflection example
|
|
436
|
-
*/
|
|
437
|
-
export async function runReflectionExample(): Promise<void> {
|
|
438
|
-
printHeader('Example 9: Multi-level Reflection');
|
|
439
|
-
|
|
440
|
-
// Part 1: Prompt-Level Reflection
|
|
441
|
-
printSection('Part 1: Prompt-Level Reflection (Schema Validation)');
|
|
442
|
-
{
|
|
443
|
-
console.log('Demonstrates: enableReflection on prompt config');
|
|
444
|
-
console.log('Behavior: Auto-retry when schema validation fails\n');
|
|
445
|
-
|
|
446
|
-
const workflow = new PromptReflectionWorkflow('PromptReflection');
|
|
447
|
-
const debugger_ = new WorkflowTreeDebugger(workflow);
|
|
448
|
-
|
|
449
|
-
const result = await workflow.run();
|
|
450
|
-
|
|
451
|
-
console.log('\nExecution summary:');
|
|
452
|
-
console.log(` Attempts: ${workflow.attemptCount}`);
|
|
453
|
-
console.log(` Validation errors: ${workflow.validationErrors.length}`);
|
|
454
|
-
if (workflow.validationErrors.length > 0) {
|
|
455
|
-
console.log(` Errors encountered:`);
|
|
456
|
-
for (const error of workflow.validationErrors) {
|
|
457
|
-
console.log(` - ${error}`);
|
|
458
|
-
}
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
if (result) {
|
|
462
|
-
console.log(`\nFinal result:`);
|
|
463
|
-
console.log(` Answer: ${result.answer.slice(0, 50)}...`);
|
|
464
|
-
console.log(` Confidence: ${result.confidence}`);
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
console.log('\nTree:');
|
|
468
|
-
console.log(debugger_.toTreeString());
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
// Part 2: Agent-Level Reflection
|
|
472
|
-
printSection('Part 2: Agent-Level Reflection (Self-Correction)');
|
|
473
|
-
{
|
|
474
|
-
console.log('Demonstrates: agent.reflect() method with system prompt prefix');
|
|
475
|
-
console.log('Behavior: Agent reviews reasoning before final answer\n');
|
|
476
|
-
|
|
477
|
-
const workflow = new AgentReflectionWorkflow('AgentReflection');
|
|
478
|
-
const debugger_ = new WorkflowTreeDebugger(workflow);
|
|
479
|
-
|
|
480
|
-
const result = await workflow.run();
|
|
481
|
-
|
|
482
|
-
console.log('Reflection history:');
|
|
483
|
-
for (const entry of workflow.reflectionHistory) {
|
|
484
|
-
console.log(` ${entry.attempt}. ${entry.action}: ${entry.result}`);
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
if (result) {
|
|
488
|
-
console.log(`\nAnalysis result:`);
|
|
489
|
-
console.log(` Summary: ${result.summary}`);
|
|
490
|
-
console.log(` Key points: ${result.keyPoints.length}`);
|
|
491
|
-
console.log(` Recommendation: ${result.recommendation}`);
|
|
492
|
-
}
|
|
493
|
-
|
|
494
|
-
console.log('\nTree:');
|
|
495
|
-
console.log(debugger_.toTreeString());
|
|
496
|
-
}
|
|
497
|
-
|
|
498
|
-
// Part 3: Workflow-Level Reflection
|
|
499
|
-
printSection('Part 3: Workflow-Level Reflection (Step Retry)');
|
|
500
|
-
{
|
|
501
|
-
console.log('Demonstrates: executeWithReflection() wrapper');
|
|
502
|
-
console.log('Behavior: Retry failed steps with reflection analysis\n');
|
|
503
|
-
|
|
504
|
-
const workflow = new WorkflowReflectionWorkflow('WorkflowReflection');
|
|
505
|
-
const debugger_ = new WorkflowTreeDebugger(workflow);
|
|
506
|
-
|
|
507
|
-
await workflow.run();
|
|
508
|
-
|
|
509
|
-
console.log('\nStep attempt summary:');
|
|
510
|
-
for (const [step, attempts] of Object.entries(workflow.stepAttempts)) {
|
|
511
|
-
console.log(` ${step}: ${attempts} attempt(s)`);
|
|
512
|
-
}
|
|
513
|
-
|
|
514
|
-
console.log(`\nFailure reasons:`);
|
|
515
|
-
for (const reason of workflow.failureReasons) {
|
|
516
|
-
console.log(` - ${reason}`);
|
|
517
|
-
}
|
|
518
|
-
|
|
519
|
-
console.log(`\nSuccessful steps: ${workflow.successfulSteps.join(', ')}`);
|
|
520
|
-
|
|
521
|
-
// Show reflection history
|
|
522
|
-
const history = workflow['reflectionManager'].getReflectionHistory();
|
|
523
|
-
console.log(`\nReflection history entries: ${history.length}`);
|
|
524
|
-
for (const entry of history) {
|
|
525
|
-
console.log(` [${entry.level}] ${entry.reason} -> ${entry.resolution}`);
|
|
526
|
-
}
|
|
527
|
-
|
|
528
|
-
console.log('\nTree:');
|
|
529
|
-
console.log(debugger_.toTreeString());
|
|
530
|
-
}
|
|
531
|
-
|
|
532
|
-
// Part 4: Multi-Level Combined
|
|
533
|
-
printSection('Part 4: Multi-Level Reflection Overview');
|
|
534
|
-
{
|
|
535
|
-
console.log('All three levels working together:\n');
|
|
536
|
-
|
|
537
|
-
const workflow = new MultiLevelReflectionWorkflow('MultiLevelReflection');
|
|
538
|
-
const debugger_ = new WorkflowTreeDebugger(workflow);
|
|
539
|
-
|
|
540
|
-
await workflow.run();
|
|
541
|
-
|
|
542
|
-
console.log('Reflection events by level:');
|
|
543
|
-
const byLevel = workflow.reflectionEvents.reduce(
|
|
544
|
-
(acc, event) => {
|
|
545
|
-
acc[event.level] = (acc[event.level] ?? 0) + 1;
|
|
546
|
-
return acc;
|
|
547
|
-
},
|
|
548
|
-
{} as Record<string, number>
|
|
549
|
-
);
|
|
550
|
-
|
|
551
|
-
for (const [level, count] of Object.entries(byLevel)) {
|
|
552
|
-
console.log(` ${level}: ${count} event(s)`);
|
|
553
|
-
}
|
|
554
|
-
|
|
555
|
-
console.log('\nReflection configuration defaults:');
|
|
556
|
-
console.log(` Enabled: ${DEFAULT_REFLECTION_CONFIG.enabled}`);
|
|
557
|
-
console.log(` Max attempts: ${DEFAULT_REFLECTION_CONFIG.maxAttempts}`);
|
|
558
|
-
console.log(` Retry delay: ${DEFAULT_REFLECTION_CONFIG.retryDelayMs}ms`);
|
|
559
|
-
|
|
560
|
-
console.log('\nTree:');
|
|
561
|
-
console.log(debugger_.toTreeString());
|
|
562
|
-
|
|
563
|
-
const stats = debugger_.getStats();
|
|
564
|
-
console.log('\nFinal statistics:', stats);
|
|
565
|
-
}
|
|
566
|
-
|
|
567
|
-
console.log('\n=== Example 9 Complete ===');
|
|
568
|
-
}
|
|
569
|
-
|
|
570
|
-
// Allow direct execution
|
|
571
|
-
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
572
|
-
runReflectionExample().catch(console.error);
|
|
573
|
-
}
|