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,550 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Example 10: Introspection Tools Demo
|
|
3
|
-
*
|
|
4
|
-
* Demonstrates:
|
|
5
|
-
* - Agent with INTROSPECTION_TOOLS
|
|
6
|
-
* - inspect_current_node - "Where am I?"
|
|
7
|
-
* - read_ancestor_chain - "What's above me?"
|
|
8
|
-
* - list_siblings_children - "What's around me?"
|
|
9
|
-
* - inspect_prior_outputs - "What happened before?"
|
|
10
|
-
* - inspect_cache_status - "Is this cached?"
|
|
11
|
-
* - request_spawn_workflow - "Can I create children?"
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
import { z } from 'zod';
|
|
15
|
-
import {
|
|
16
|
-
Workflow,
|
|
17
|
-
Step,
|
|
18
|
-
Task,
|
|
19
|
-
ObservedState,
|
|
20
|
-
WorkflowTreeDebugger,
|
|
21
|
-
INTROSPECTION_TOOLS,
|
|
22
|
-
INTROSPECTION_HANDLERS,
|
|
23
|
-
handleInspectCurrentNode,
|
|
24
|
-
handleReadAncestorChain,
|
|
25
|
-
handleListSiblingsChildren,
|
|
26
|
-
handleInspectPriorOutputs,
|
|
27
|
-
handleInspectCacheStatus,
|
|
28
|
-
handleRequestSpawnWorkflow,
|
|
29
|
-
runInContext,
|
|
30
|
-
createChildContext,
|
|
31
|
-
agentExecutionStorage,
|
|
32
|
-
defaultCache,
|
|
33
|
-
} from 'groundswell';
|
|
34
|
-
import type {
|
|
35
|
-
CurrentNodeInfo,
|
|
36
|
-
AncestorChainResult,
|
|
37
|
-
SiblingsChildrenResult,
|
|
38
|
-
PriorOutputInfo,
|
|
39
|
-
CacheStatusResult,
|
|
40
|
-
SpawnWorkflowRequest,
|
|
41
|
-
WorkflowNode,
|
|
42
|
-
AgentExecutionContext,
|
|
43
|
-
} from 'groundswell';
|
|
44
|
-
import { printHeader, printSection, sleep, prettyJson } from '../utils/helpers.js';
|
|
45
|
-
|
|
46
|
-
// ============================================================================
|
|
47
|
-
// Helper to simulate execution context
|
|
48
|
-
// ============================================================================
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Create a mock workflow node for demonstration
|
|
52
|
-
*/
|
|
53
|
-
function createMockNode(
|
|
54
|
-
name: string,
|
|
55
|
-
parent?: WorkflowNode,
|
|
56
|
-
status: 'idle' | 'running' | 'completed' = 'running'
|
|
57
|
-
): WorkflowNode {
|
|
58
|
-
return {
|
|
59
|
-
id: `node-${name}-${Date.now()}`,
|
|
60
|
-
name,
|
|
61
|
-
status,
|
|
62
|
-
parent,
|
|
63
|
-
children: [],
|
|
64
|
-
events: [],
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Execute a function within a mock execution context
|
|
70
|
-
*/
|
|
71
|
-
async function executeInMockContext<T>(
|
|
72
|
-
node: WorkflowNode,
|
|
73
|
-
fn: () => Promise<T>
|
|
74
|
-
): Promise<T> {
|
|
75
|
-
const context: AgentExecutionContext = {
|
|
76
|
-
workflowId: node.id,
|
|
77
|
-
workflowName: node.name,
|
|
78
|
-
workflowNode: node,
|
|
79
|
-
emitEvent: (event) => {
|
|
80
|
-
node.events.push(event);
|
|
81
|
-
},
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
return runInContext(context, fn);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// ============================================================================
|
|
88
|
-
// Workflow Definitions
|
|
89
|
-
// ============================================================================
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Root workflow for introspection demonstration
|
|
93
|
-
*/
|
|
94
|
-
class IntrospectionDemoWorkflow extends Workflow {
|
|
95
|
-
@ObservedState()
|
|
96
|
-
introspectionResults: Record<string, unknown> = {};
|
|
97
|
-
|
|
98
|
-
constructor(name: string, parent?: Workflow) {
|
|
99
|
-
super(name, parent);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
@Step({ trackTiming: true, snapshotState: true })
|
|
103
|
-
async setupStep(): Promise<string> {
|
|
104
|
-
this.logger.info('Setting up introspection demo');
|
|
105
|
-
await sleep(50);
|
|
106
|
-
return 'Setup complete';
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
@Step({ trackTiming: true, snapshotState: true })
|
|
110
|
-
async processStep(): Promise<string> {
|
|
111
|
-
this.logger.info('Processing data');
|
|
112
|
-
await sleep(50);
|
|
113
|
-
return 'Processing complete';
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
async run(): Promise<void> {
|
|
117
|
-
this.setStatus('running');
|
|
118
|
-
this.logger.info('Starting introspection demo workflow');
|
|
119
|
-
|
|
120
|
-
await this.setupStep();
|
|
121
|
-
await this.processStep();
|
|
122
|
-
|
|
123
|
-
this.setStatus('completed');
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Child workflow for nested hierarchy demonstration
|
|
129
|
-
*/
|
|
130
|
-
class ChildIntrospectionWorkflow extends Workflow {
|
|
131
|
-
@ObservedState()
|
|
132
|
-
depth: number;
|
|
133
|
-
|
|
134
|
-
constructor(name: string, depth: number, parent?: Workflow) {
|
|
135
|
-
super(name, parent);
|
|
136
|
-
this.depth = depth;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
@Step({ trackTiming: true })
|
|
140
|
-
async childWork(): Promise<string> {
|
|
141
|
-
this.logger.info(`Child at depth ${this.depth} working`);
|
|
142
|
-
await sleep(30);
|
|
143
|
-
return `Child ${this.depth} result`;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
async run(): Promise<string> {
|
|
147
|
-
this.setStatus('running');
|
|
148
|
-
const result = await this.childWork();
|
|
149
|
-
this.setStatus('completed');
|
|
150
|
-
return result;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
// ============================================================================
|
|
155
|
-
// Introspection Tool Demonstrations
|
|
156
|
-
// ============================================================================
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* Demonstrate inspect_current_node tool
|
|
160
|
-
*/
|
|
161
|
-
async function demonstrateCurrentNode(): Promise<void> {
|
|
162
|
-
console.log('Tool: inspect_current_node');
|
|
163
|
-
console.log('Purpose: "Where am I?" - Get info about current workflow node\n');
|
|
164
|
-
|
|
165
|
-
// Create mock hierarchy
|
|
166
|
-
const root = createMockNode('RootWorkflow');
|
|
167
|
-
const child = createMockNode('ChildWorkflow', root);
|
|
168
|
-
root.children.push(child);
|
|
169
|
-
|
|
170
|
-
await executeInMockContext(child, async () => {
|
|
171
|
-
const result = await handleInspectCurrentNode();
|
|
172
|
-
|
|
173
|
-
console.log('Result:');
|
|
174
|
-
console.log(` ID: ${result.id}`);
|
|
175
|
-
console.log(` Name: ${result.name}`);
|
|
176
|
-
console.log(` Status: ${result.status}`);
|
|
177
|
-
console.log(` Parent ID: ${result.parentId ?? '(none)'}`);
|
|
178
|
-
console.log(` Parent Name: ${result.parentName ?? '(none)'}`);
|
|
179
|
-
console.log(` Child Count: ${result.childCount}`);
|
|
180
|
-
console.log(` Depth: ${result.depth}`);
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* Demonstrate read_ancestor_chain tool
|
|
186
|
-
*/
|
|
187
|
-
async function demonstrateAncestorChain(): Promise<void> {
|
|
188
|
-
console.log('Tool: read_ancestor_chain');
|
|
189
|
-
console.log('Purpose: "What\'s above me?" - Get all ancestor nodes\n');
|
|
190
|
-
|
|
191
|
-
// Create 3-level hierarchy
|
|
192
|
-
const root = createMockNode('RootWorkflow', undefined, 'running');
|
|
193
|
-
const level1 = createMockNode('Level1Workflow', root, 'running');
|
|
194
|
-
const level2 = createMockNode('Level2Workflow', level1, 'running');
|
|
195
|
-
root.children.push(level1);
|
|
196
|
-
level1.children.push(level2);
|
|
197
|
-
|
|
198
|
-
await executeInMockContext(level2, async () => {
|
|
199
|
-
const result = await handleReadAncestorChain({ maxDepth: 10 });
|
|
200
|
-
|
|
201
|
-
console.log(`Total depth: ${result.totalDepth}`);
|
|
202
|
-
console.log('Ancestors (from current to root):');
|
|
203
|
-
for (const ancestor of result.ancestors) {
|
|
204
|
-
console.log(` Depth ${ancestor.depth}: ${ancestor.name} [${ancestor.status}]`);
|
|
205
|
-
}
|
|
206
|
-
});
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
/**
|
|
210
|
-
* Demonstrate list_siblings_children tool
|
|
211
|
-
*/
|
|
212
|
-
async function demonstrateSiblingsChildren(): Promise<void> {
|
|
213
|
-
console.log('Tool: list_siblings_children');
|
|
214
|
-
console.log('Purpose: "What\'s around me?" - List siblings or children\n');
|
|
215
|
-
|
|
216
|
-
// Create hierarchy with siblings
|
|
217
|
-
const root = createMockNode('RootWorkflow', undefined, 'running');
|
|
218
|
-
const sibling1 = createMockNode('Sibling1', root, 'completed');
|
|
219
|
-
const sibling2 = createMockNode('Sibling2', root, 'running');
|
|
220
|
-
const sibling3 = createMockNode('Sibling3', root, 'idle');
|
|
221
|
-
root.children.push(sibling1, sibling2, sibling3);
|
|
222
|
-
|
|
223
|
-
// Add children to sibling2
|
|
224
|
-
const child1 = createMockNode('Child1', sibling2, 'completed');
|
|
225
|
-
const child2 = createMockNode('Child2', sibling2, 'running');
|
|
226
|
-
sibling2.children.push(child1, child2);
|
|
227
|
-
|
|
228
|
-
await executeInMockContext(sibling2, async () => {
|
|
229
|
-
// Get siblings
|
|
230
|
-
const siblings = await handleListSiblingsChildren({ type: 'siblings' });
|
|
231
|
-
console.log('Siblings:');
|
|
232
|
-
for (const node of siblings.nodes) {
|
|
233
|
-
console.log(` - ${node.name} [${node.status}]`);
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
// Get children
|
|
237
|
-
const children = await handleListSiblingsChildren({ type: 'children' });
|
|
238
|
-
console.log('\nChildren:');
|
|
239
|
-
for (const node of children.nodes) {
|
|
240
|
-
console.log(` - ${node.name} [${node.status}]`);
|
|
241
|
-
}
|
|
242
|
-
});
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
/**
|
|
246
|
-
* Demonstrate inspect_prior_outputs tool
|
|
247
|
-
*/
|
|
248
|
-
async function demonstratePriorOutputs(): Promise<void> {
|
|
249
|
-
console.log('Tool: inspect_prior_outputs');
|
|
250
|
-
console.log('Purpose: "What happened before?" - Get outputs from prior steps\n');
|
|
251
|
-
|
|
252
|
-
// Create hierarchy with completed siblings
|
|
253
|
-
const root = createMockNode('RootWorkflow', undefined, 'running');
|
|
254
|
-
const step1 = createMockNode('Step1', root, 'completed');
|
|
255
|
-
const step2 = createMockNode('Step2', root, 'completed');
|
|
256
|
-
const step3 = createMockNode('CurrentStep', root, 'running');
|
|
257
|
-
|
|
258
|
-
// Add events to completed steps
|
|
259
|
-
step1.events.push({ type: 'stepEnd', payload: { result: 'Step 1 output' } });
|
|
260
|
-
step2.events.push({ type: 'stepEnd', payload: { result: 'Step 2 output' } });
|
|
261
|
-
|
|
262
|
-
root.children.push(step1, step2, step3);
|
|
263
|
-
|
|
264
|
-
await executeInMockContext(step3, async () => {
|
|
265
|
-
const result = await handleInspectPriorOutputs({ count: 3 });
|
|
266
|
-
|
|
267
|
-
console.log(`Found ${result.length} prior outputs:`);
|
|
268
|
-
for (const output of result) {
|
|
269
|
-
console.log(` Node: ${output.nodeName}`);
|
|
270
|
-
console.log(` Status: ${output.status}`);
|
|
271
|
-
console.log(` Events: ${output.events.length}`);
|
|
272
|
-
}
|
|
273
|
-
});
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
/**
|
|
277
|
-
* Demonstrate inspect_cache_status tool
|
|
278
|
-
*/
|
|
279
|
-
async function demonstrateCacheStatus(): Promise<void> {
|
|
280
|
-
console.log('Tool: inspect_cache_status');
|
|
281
|
-
console.log('Purpose: "Is this cached?" - Check if a prompt response is cached\n');
|
|
282
|
-
|
|
283
|
-
// Set up some cache entries
|
|
284
|
-
const testKey1 = 'test-prompt-hash-12345';
|
|
285
|
-
const testKey2 = 'test-prompt-hash-67890';
|
|
286
|
-
|
|
287
|
-
await defaultCache.set(testKey1, { result: 'Cached response' });
|
|
288
|
-
|
|
289
|
-
// Check existing key
|
|
290
|
-
const result1 = await handleInspectCacheStatus({ promptHash: testKey1 });
|
|
291
|
-
console.log(`Key "${testKey1}":`);
|
|
292
|
-
console.log(` Exists: ${result1.exists}`);
|
|
293
|
-
|
|
294
|
-
// Check non-existing key
|
|
295
|
-
const result2 = await handleInspectCacheStatus({ promptHash: testKey2 });
|
|
296
|
-
console.log(`\nKey "${testKey2}":`);
|
|
297
|
-
console.log(` Exists: ${result2.exists}`);
|
|
298
|
-
|
|
299
|
-
// Show cache metrics
|
|
300
|
-
const metrics = defaultCache.metrics();
|
|
301
|
-
console.log('\nCache metrics:');
|
|
302
|
-
console.log(` Entries: ${metrics.entries}`);
|
|
303
|
-
console.log(` Hits: ${metrics.hits}`);
|
|
304
|
-
console.log(` Misses: ${metrics.misses}`);
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
/**
|
|
308
|
-
* Demonstrate request_spawn_workflow tool
|
|
309
|
-
*/
|
|
310
|
-
async function demonstrateSpawnWorkflow(): Promise<void> {
|
|
311
|
-
console.log('Tool: request_spawn_workflow');
|
|
312
|
-
console.log('Purpose: "Can I create children?" - Request to spawn new workflow\n');
|
|
313
|
-
|
|
314
|
-
const root = createMockNode('OrchestratorWorkflow');
|
|
315
|
-
|
|
316
|
-
await executeInMockContext(root, async () => {
|
|
317
|
-
const request = await handleRequestSpawnWorkflow({
|
|
318
|
-
name: 'DynamicChildWorkflow',
|
|
319
|
-
description: 'Process additional data discovered during execution',
|
|
320
|
-
});
|
|
321
|
-
|
|
322
|
-
console.log('Spawn request created:');
|
|
323
|
-
console.log(` Name: ${request.name}`);
|
|
324
|
-
console.log(` Description: ${request.description}`);
|
|
325
|
-
console.log(` Request ID: ${request.requestId}`);
|
|
326
|
-
console.log(` Status: ${request.status}`);
|
|
327
|
-
console.log('\nNote: The orchestrator handles actual spawning based on this request.');
|
|
328
|
-
});
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
// ============================================================================
|
|
332
|
-
// Complete Integration Demo
|
|
333
|
-
// ============================================================================
|
|
334
|
-
|
|
335
|
-
/**
|
|
336
|
-
* Workflow that uses introspection tools
|
|
337
|
-
*/
|
|
338
|
-
class IntrospectiveWorkflow extends Workflow {
|
|
339
|
-
@ObservedState()
|
|
340
|
-
introspectionLog: Array<{ tool: string; result: unknown }> = [];
|
|
341
|
-
|
|
342
|
-
constructor(name: string, parent?: Workflow) {
|
|
343
|
-
super(name, parent);
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
@Step({ trackTiming: true, snapshotState: true, name: 'introspect-position' })
|
|
347
|
-
async introspectPosition(): Promise<void> {
|
|
348
|
-
this.logger.info('Using introspection to understand position');
|
|
349
|
-
|
|
350
|
-
// Create context for this step
|
|
351
|
-
const stepNode = createMockNode('introspect-position', undefined, 'running');
|
|
352
|
-
|
|
353
|
-
await executeInMockContext(stepNode, async () => {
|
|
354
|
-
const nodeInfo = await handleInspectCurrentNode();
|
|
355
|
-
this.introspectionLog.push({ tool: 'inspect_current_node', result: nodeInfo });
|
|
356
|
-
this.logger.info(`Position: ${nodeInfo.name} at depth ${nodeInfo.depth}`);
|
|
357
|
-
});
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
@Step({ trackTiming: true, snapshotState: true, name: 'analyze-hierarchy' })
|
|
361
|
-
async analyzeHierarchy(): Promise<void> {
|
|
362
|
-
this.logger.info('Analyzing workflow hierarchy');
|
|
363
|
-
|
|
364
|
-
// Create a mock hierarchy for demo
|
|
365
|
-
const root = createMockNode('Root');
|
|
366
|
-
const parent = createMockNode('Parent', root);
|
|
367
|
-
const current = createMockNode('Current', parent);
|
|
368
|
-
root.children.push(parent);
|
|
369
|
-
parent.children.push(current);
|
|
370
|
-
|
|
371
|
-
await executeInMockContext(current, async () => {
|
|
372
|
-
const ancestors = await handleReadAncestorChain({ maxDepth: 5 });
|
|
373
|
-
this.introspectionLog.push({ tool: 'read_ancestor_chain', result: ancestors });
|
|
374
|
-
this.logger.info(`Found ${ancestors.ancestors.length} ancestors`);
|
|
375
|
-
});
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
@Step({ trackTiming: true, snapshotState: true, name: 'check-cache' })
|
|
379
|
-
async checkCache(): Promise<void> {
|
|
380
|
-
this.logger.info('Checking cache status');
|
|
381
|
-
|
|
382
|
-
const testHash = 'demo-prompt-hash';
|
|
383
|
-
const cacheStatus = await handleInspectCacheStatus({ promptHash: testHash });
|
|
384
|
-
this.introspectionLog.push({ tool: 'inspect_cache_status', result: cacheStatus });
|
|
385
|
-
this.logger.info(`Cache hit: ${cacheStatus.exists}`);
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
async run(): Promise<void> {
|
|
389
|
-
this.setStatus('running');
|
|
390
|
-
this.logger.info('Starting introspective workflow');
|
|
391
|
-
|
|
392
|
-
await this.introspectPosition();
|
|
393
|
-
await this.analyzeHierarchy();
|
|
394
|
-
await this.checkCache();
|
|
395
|
-
|
|
396
|
-
this.logger.info(`Total introspection calls: ${this.introspectionLog.length}`);
|
|
397
|
-
this.setStatus('completed');
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
// ============================================================================
|
|
402
|
-
// Main Example Runner
|
|
403
|
-
// ============================================================================
|
|
404
|
-
|
|
405
|
-
/**
|
|
406
|
-
* Run the Introspection Tools example
|
|
407
|
-
*/
|
|
408
|
-
export async function runIntrospectionExample(): Promise<void> {
|
|
409
|
-
printHeader('Example 10: Introspection Tools Demo');
|
|
410
|
-
|
|
411
|
-
// Overview of available tools
|
|
412
|
-
printSection('Available Introspection Tools');
|
|
413
|
-
{
|
|
414
|
-
console.log('The INTROSPECTION_TOOLS array contains 6 tools:\n');
|
|
415
|
-
for (const tool of INTROSPECTION_TOOLS) {
|
|
416
|
-
console.log(` ${tool.name}`);
|
|
417
|
-
console.log(` ${tool.description}`);
|
|
418
|
-
console.log(` Required: ${tool.input_schema.required?.join(', ') || 'none'}\n`);
|
|
419
|
-
}
|
|
420
|
-
}
|
|
421
|
-
|
|
422
|
-
// Part 1: inspect_current_node
|
|
423
|
-
printSection('Part 1: inspect_current_node');
|
|
424
|
-
{
|
|
425
|
-
await demonstrateCurrentNode();
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
// Part 2: read_ancestor_chain
|
|
429
|
-
printSection('Part 2: read_ancestor_chain');
|
|
430
|
-
{
|
|
431
|
-
await demonstrateAncestorChain();
|
|
432
|
-
}
|
|
433
|
-
|
|
434
|
-
// Part 3: list_siblings_children
|
|
435
|
-
printSection('Part 3: list_siblings_children');
|
|
436
|
-
{
|
|
437
|
-
await demonstrateSiblingsChildren();
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
// Part 4: inspect_prior_outputs
|
|
441
|
-
printSection('Part 4: inspect_prior_outputs');
|
|
442
|
-
{
|
|
443
|
-
await demonstratePriorOutputs();
|
|
444
|
-
}
|
|
445
|
-
|
|
446
|
-
// Part 5: inspect_cache_status
|
|
447
|
-
printSection('Part 5: inspect_cache_status');
|
|
448
|
-
{
|
|
449
|
-
await demonstrateCacheStatus();
|
|
450
|
-
}
|
|
451
|
-
|
|
452
|
-
// Part 6: request_spawn_workflow
|
|
453
|
-
printSection('Part 6: request_spawn_workflow');
|
|
454
|
-
{
|
|
455
|
-
await demonstrateSpawnWorkflow();
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
// Part 7: Complete Integration
|
|
459
|
-
printSection('Part 7: Complete Workflow with Introspection');
|
|
460
|
-
{
|
|
461
|
-
console.log('Workflow using multiple introspection tools:\n');
|
|
462
|
-
|
|
463
|
-
const workflow = new IntrospectiveWorkflow('IntrospectiveWorkflow');
|
|
464
|
-
const debugger_ = new WorkflowTreeDebugger(workflow);
|
|
465
|
-
|
|
466
|
-
await workflow.run();
|
|
467
|
-
|
|
468
|
-
console.log('\nIntrospection log:');
|
|
469
|
-
for (const entry of workflow.introspectionLog) {
|
|
470
|
-
console.log(` Tool: ${entry.tool}`);
|
|
471
|
-
if (typeof entry.result === 'object' && entry.result !== null) {
|
|
472
|
-
const summary =
|
|
473
|
-
'exists' in entry.result
|
|
474
|
-
? `exists: ${entry.result.exists}`
|
|
475
|
-
: 'name' in entry.result
|
|
476
|
-
? `name: ${(entry.result as { name: string }).name}`
|
|
477
|
-
: 'ancestors' in entry.result
|
|
478
|
-
? `${(entry.result as { ancestors: unknown[] }).ancestors.length} ancestors`
|
|
479
|
-
: JSON.stringify(entry.result).slice(0, 50);
|
|
480
|
-
console.log(` Result: ${summary}`);
|
|
481
|
-
}
|
|
482
|
-
console.log('');
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
console.log('Tree:');
|
|
486
|
-
console.log(debugger_.toTreeString());
|
|
487
|
-
}
|
|
488
|
-
|
|
489
|
-
// Part 8: Agent Integration Pattern
|
|
490
|
-
printSection('Part 8: Agent Integration Pattern');
|
|
491
|
-
{
|
|
492
|
-
console.log('Pattern for agents using introspection tools:\n');
|
|
493
|
-
|
|
494
|
-
console.log(`// Agent configuration with introspection tools
|
|
495
|
-
const introspectionAgent = createAgent({
|
|
496
|
-
name: 'IntrospectionAgent',
|
|
497
|
-
tools: INTROSPECTION_TOOLS,
|
|
498
|
-
system: \`You are an agent that can explore workflow hierarchies.
|
|
499
|
-
Use the introspection tools to understand your position
|
|
500
|
-
and what work has been done.\`
|
|
501
|
-
});
|
|
502
|
-
|
|
503
|
-
// Prompt for self-aware analysis
|
|
504
|
-
const explorePrompt = createPrompt({
|
|
505
|
-
user: 'Describe your position in the workflow and summarize prior work.',
|
|
506
|
-
responseFormat: z.object({
|
|
507
|
-
position: z.string(),
|
|
508
|
-
depth: z.number(),
|
|
509
|
-
parentName: z.string().optional(),
|
|
510
|
-
summary: z.string()
|
|
511
|
-
})
|
|
512
|
-
});
|
|
513
|
-
|
|
514
|
-
// Agent uses tools autonomously to gather context
|
|
515
|
-
const analysis = await introspectionAgent.prompt(explorePrompt);
|
|
516
|
-
`);
|
|
517
|
-
|
|
518
|
-
console.log('\nThe agent can:');
|
|
519
|
-
console.log(' 1. Call inspect_current_node to understand its position');
|
|
520
|
-
console.log(' 2. Call read_ancestor_chain to understand hierarchy');
|
|
521
|
-
console.log(' 3. Call list_siblings_children to see nearby nodes');
|
|
522
|
-
console.log(' 4. Call inspect_prior_outputs to review prior work');
|
|
523
|
-
console.log(' 5. Call inspect_cache_status to check for cached results');
|
|
524
|
-
console.log(' 6. Call request_spawn_workflow to request child workflows');
|
|
525
|
-
}
|
|
526
|
-
|
|
527
|
-
// Summary
|
|
528
|
-
printSection('Summary');
|
|
529
|
-
{
|
|
530
|
-
console.log('Introspection tools enable agents to:');
|
|
531
|
-
console.log(' - Understand their position in the workflow hierarchy');
|
|
532
|
-
console.log(' - Access context from parent and sibling workflows');
|
|
533
|
-
console.log(' - Review outputs from prior execution steps');
|
|
534
|
-
console.log(' - Check cache status before expensive operations');
|
|
535
|
-
console.log(' - Request dynamic workflow spawning\n');
|
|
536
|
-
|
|
537
|
-
console.log('All tools are:');
|
|
538
|
-
console.log(' - Read-only (except request_spawn_workflow)');
|
|
539
|
-
console.log(' - Security-filtered (sensitive data removed)');
|
|
540
|
-
console.log(' - Context-aware (use getExecutionContext())');
|
|
541
|
-
console.log(' - Result-limited (prevent overwhelming output)');
|
|
542
|
-
}
|
|
543
|
-
|
|
544
|
-
console.log('\n=== Example 10 Complete ===');
|
|
545
|
-
}
|
|
546
|
-
|
|
547
|
-
// Allow direct execution
|
|
548
|
-
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
549
|
-
runIntrospectionExample().catch(console.error);
|
|
550
|
-
}
|