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,604 +0,0 @@
|
|
|
1
|
-
# Groundswell Decorator Documentation Examples
|
|
2
|
-
|
|
3
|
-
**Purpose:** Concrete examples from the Groundswell codebase showing current vs recommended documentation patterns
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Example 1: @Step Decorator Documentation
|
|
8
|
-
|
|
9
|
-
### Current Implementation
|
|
10
|
-
|
|
11
|
-
**File:** `/home/dustin/projects/groundswell/docs/workflow.md` (lines 114-163)
|
|
12
|
-
|
|
13
|
-
```markdown
|
|
14
|
-
### @Step
|
|
15
|
-
|
|
16
|
-
Wraps methods with event emission and error handling.
|
|
17
|
-
|
|
18
|
-
```typescript
|
|
19
|
-
import { Step } from 'groundswell';
|
|
20
|
-
|
|
21
|
-
class MyWorkflow extends Workflow {
|
|
22
|
-
// Default - emits stepStart/stepEnd events
|
|
23
|
-
@Step()
|
|
24
|
-
async basicStep(): Promise<void> {}
|
|
25
|
-
|
|
26
|
-
// Custom name
|
|
27
|
-
@Step({ name: 'CustomStepName' })
|
|
28
|
-
async namedStep(): Promise<void> {}
|
|
29
|
-
|
|
30
|
-
// Capture state after completion
|
|
31
|
-
@Step({ snapshotState: true })
|
|
32
|
-
async snapshotStep(): Promise<void> {}
|
|
33
|
-
|
|
34
|
-
// Track execution duration
|
|
35
|
-
@Step({ trackTiming: true })
|
|
36
|
-
async timedStep(): Promise<void> {}
|
|
37
|
-
|
|
38
|
-
// Log start/end messages
|
|
39
|
-
@Step({ logStart: true, logFinish: true })
|
|
40
|
-
async loggedStep(): Promise<void> {}
|
|
41
|
-
|
|
42
|
-
// All options
|
|
43
|
-
@Step({
|
|
44
|
-
name: 'FullStep',
|
|
45
|
-
snapshotState: true,
|
|
46
|
-
trackTiming: true,
|
|
47
|
-
logStart: true,
|
|
48
|
-
logFinish: true,
|
|
49
|
-
})
|
|
50
|
-
async fullStep(): Promise<void> {}
|
|
51
|
-
}
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
**Options:**
|
|
55
|
-
|
|
56
|
-
| Option | Type | Description |
|
|
57
|
-
|--------|------|-------------|
|
|
58
|
-
| `name` | `string` | Custom step name (defaults to method name) |
|
|
59
|
-
| `snapshotState` | `boolean` | Capture state snapshot after step completion |
|
|
60
|
-
| `trackTiming` | `boolean` | Track and emit step duration |
|
|
61
|
-
| `logStart` | `boolean` | Log message when step starts |
|
|
62
|
-
| `logFinish` | `boolean` | Log message when step completes |
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
### Recommended Improvement
|
|
66
|
-
|
|
67
|
-
```markdown
|
|
68
|
-
### @Step
|
|
69
|
-
|
|
70
|
-
Wraps methods with event emission and error handling.
|
|
71
|
-
|
|
72
|
-
#### Default Behavior
|
|
73
|
-
|
|
74
|
-
Without any options, `@Step()` emits `stepStart` and `stepEnd` events with automatic timing tracking.
|
|
75
|
-
|
|
76
|
-
```typescript
|
|
77
|
-
class MyWorkflow extends Workflow {
|
|
78
|
-
@Step() // All defaults: trackTiming=true, snapshotState=false
|
|
79
|
-
async basicStep(): Promise<void> {}
|
|
80
|
-
}
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
#### Configuration Options
|
|
84
|
-
|
|
85
|
-
| Option | Type | Default | Description |
|
|
86
|
-
|--------|------|---------|-------------|
|
|
87
|
-
| `name` | `string` | method name | Custom step name for logs and events |
|
|
88
|
-
| `snapshotState` | `boolean` | `false` | Capture state snapshot after step completion |
|
|
89
|
-
| `trackTiming` | `boolean` | `true` | Track and emit step duration in stepEnd event |
|
|
90
|
-
| `logStart` | `boolean` | `false` | Log info message when step starts |
|
|
91
|
-
| `logFinish` | `boolean` | `false` | Log info message when step completes |
|
|
92
|
-
|
|
93
|
-
#### Examples
|
|
94
|
-
|
|
95
|
-
**Custom Step Name**
|
|
96
|
-
```typescript
|
|
97
|
-
@Step({ name: 'CustomStepName' })
|
|
98
|
-
async namedStep(): Promise<void> {}
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
**Capture State Snapshot**
|
|
102
|
-
```typescript
|
|
103
|
-
@Step({ snapshotState: true })
|
|
104
|
-
async snapshotStep(): Promise<void> {}
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
**Enable Logging**
|
|
108
|
-
```typescript
|
|
109
|
-
@Step({ logStart: true, logFinish: true })
|
|
110
|
-
async loggedStep(): Promise<void> {}
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
**All Options Combined**
|
|
114
|
-
```typescript
|
|
115
|
-
@Step({
|
|
116
|
-
name: 'FullStep',
|
|
117
|
-
snapshotState: true,
|
|
118
|
-
trackTiming: true,
|
|
119
|
-
logStart: true,
|
|
120
|
-
logFinish: true,
|
|
121
|
-
})
|
|
122
|
-
async fullStep(): Promise<void> {}
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
#### Type Definition
|
|
126
|
-
|
|
127
|
-
```typescript
|
|
128
|
-
interface StepOptions {
|
|
129
|
-
name?: string;
|
|
130
|
-
snapshotState?: boolean;
|
|
131
|
-
trackTiming?: boolean;
|
|
132
|
-
logStart?: boolean;
|
|
133
|
-
logFinish?: boolean;
|
|
134
|
-
}
|
|
135
|
-
```
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
### Key Improvements
|
|
139
|
-
|
|
140
|
-
1. **Added "Default" column** - Makes defaults immediately visible
|
|
141
|
-
2. **Added "Default Behavior" section** - Explains what happens with no options
|
|
142
|
-
3. **Restructured examples** - Grouped by feature instead of progressive
|
|
143
|
-
4. **Added Type Definition** - Shows the TypeScript interface
|
|
144
|
-
5. **Improved descriptions** - More detailed and consistent
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
## Example 2: @Task Decorator Documentation
|
|
149
|
-
|
|
150
|
-
### Current Implementation
|
|
151
|
-
|
|
152
|
-
**File:** `/home/dustin/projects/groundswell/docs/workflow.md` (lines 164-207)
|
|
153
|
-
|
|
154
|
-
```markdown
|
|
155
|
-
### @Task
|
|
156
|
-
|
|
157
|
-
Wraps methods that return child workflows.
|
|
158
|
-
|
|
159
|
-
```typescript
|
|
160
|
-
import { Task } from 'groundswell';
|
|
161
|
-
|
|
162
|
-
class ParentWorkflow extends Workflow {
|
|
163
|
-
// Basic - attaches returned workflow as child
|
|
164
|
-
@Task()
|
|
165
|
-
async createChild(): Promise<ChildWorkflow> {
|
|
166
|
-
return new ChildWorkflow('Child', this);
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
// Custom name
|
|
170
|
-
@Task({ name: 'SpawnWorker' })
|
|
171
|
-
async spawnWorker(): Promise<WorkerWorkflow> {
|
|
172
|
-
return new WorkerWorkflow('Worker', this);
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
// Concurrent - runs all returned workflows in parallel
|
|
176
|
-
@Task({ concurrent: true })
|
|
177
|
-
async createWorkers(): Promise<WorkerWorkflow[]> {
|
|
178
|
-
return [
|
|
179
|
-
new WorkerWorkflow('W1', this),
|
|
180
|
-
new WorkerWorkflow('W2', this),
|
|
181
|
-
new WorkerWorkflow('W3', this),
|
|
182
|
-
];
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
async run(): Promise<void> {
|
|
186
|
-
const child = await this.createChild();
|
|
187
|
-
await child.run();
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
**Options:**
|
|
193
|
-
|
|
194
|
-
| Option | Type | Description |
|
|
195
|
-
|--------|------|-------------|
|
|
196
|
-
| `name` | `string` | Custom task name |
|
|
197
|
-
| `concurrent` | `boolean` | Run returned workflows in parallel |
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
### Recommended Improvement
|
|
201
|
-
|
|
202
|
-
```markdown
|
|
203
|
-
### @Task
|
|
204
|
-
|
|
205
|
-
Wraps methods that return child workflows and automatically attaches them to the parent workflow.
|
|
206
|
-
|
|
207
|
-
#### Default Behavior
|
|
208
|
-
|
|
209
|
-
By default, `@Task()` attaches the returned workflow(s) as children of the parent workflow. Single workflows run sequentially; multiple workflows run in parallel when returned as an array.
|
|
210
|
-
|
|
211
|
-
```typescript
|
|
212
|
-
class ParentWorkflow extends Workflow {
|
|
213
|
-
@Task() // Default: concurrent=false, uses method name
|
|
214
|
-
async createChild(): Promise<ChildWorkflow> {
|
|
215
|
-
return new ChildWorkflow('Child', this);
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
async run(): Promise<void> {
|
|
219
|
-
const child = await this.createChild();
|
|
220
|
-
await child.run();
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
#### Configuration Options
|
|
226
|
-
|
|
227
|
-
| Option | Type | Default | Description |
|
|
228
|
-
|--------|------|---------|-------------|
|
|
229
|
-
| `name` | `string` | method name | Custom task name for logs and events |
|
|
230
|
-
| `concurrent` | `boolean` | `false` | Run returned workflows in parallel (requires array return type) |
|
|
231
|
-
|
|
232
|
-
#### Examples
|
|
233
|
-
|
|
234
|
-
**Custom Task Name**
|
|
235
|
-
```typescript
|
|
236
|
-
@Task({ name: 'SpawnWorker' })
|
|
237
|
-
async spawnWorker(): Promise<WorkerWorkflow> {
|
|
238
|
-
return new WorkerWorkflow('Worker', this);
|
|
239
|
-
}
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
**Concurrent Execution**
|
|
243
|
-
```typescript
|
|
244
|
-
@Task({ concurrent: true })
|
|
245
|
-
async createWorkers(): Promise<WorkerWorkflow[]> {
|
|
246
|
-
return [
|
|
247
|
-
new WorkerWorkflow('W1', this),
|
|
248
|
-
new WorkerWorkflow('W2', this),
|
|
249
|
-
new WorkerWorkflow('W3', this),
|
|
250
|
-
];
|
|
251
|
-
}
|
|
252
|
-
```
|
|
253
|
-
|
|
254
|
-
#### Sequential vs Concurrent
|
|
255
|
-
|
|
256
|
-
```typescript
|
|
257
|
-
// Sequential (default) - waits for each
|
|
258
|
-
@Task()
|
|
259
|
-
async createChild(): Promise<ChildWorkflow> {
|
|
260
|
-
return new ChildWorkflow('Child', this);
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
// Concurrent - runs all in parallel
|
|
264
|
-
@Task({ concurrent: true })
|
|
265
|
-
async createWorkers(): Promise<WorkerWorkflow[]> {
|
|
266
|
-
return [
|
|
267
|
-
new WorkerWorkflow('W1', this),
|
|
268
|
-
new WorkerWorkflow('W2', this),
|
|
269
|
-
];
|
|
270
|
-
}
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
#### Type Definition
|
|
274
|
-
|
|
275
|
-
```typescript
|
|
276
|
-
interface TaskOptions {
|
|
277
|
-
name?: string;
|
|
278
|
-
concurrent?: boolean;
|
|
279
|
-
}
|
|
280
|
-
```
|
|
281
|
-
```
|
|
282
|
-
|
|
283
|
-
---
|
|
284
|
-
|
|
285
|
-
## Example 3: @ObservedState Decorator Documentation
|
|
286
|
-
|
|
287
|
-
### Current Implementation
|
|
288
|
-
|
|
289
|
-
**File:** `/home/dustin/projects/groundswell/docs/workflow.md` (lines 208-244)
|
|
290
|
-
|
|
291
|
-
```markdown
|
|
292
|
-
### @ObservedState
|
|
293
|
-
|
|
294
|
-
Marks fields for inclusion in state snapshots.
|
|
295
|
-
|
|
296
|
-
```typescript
|
|
297
|
-
import { ObservedState, getObservedState } from 'groundswell';
|
|
298
|
-
|
|
299
|
-
class MyWorkflow extends Workflow {
|
|
300
|
-
// Included in snapshots
|
|
301
|
-
@ObservedState()
|
|
302
|
-
progress = 0;
|
|
303
|
-
|
|
304
|
-
// Shown as '***' in snapshots
|
|
305
|
-
@ObservedState({ redact: true })
|
|
306
|
-
apiKey = 'secret';
|
|
307
|
-
|
|
308
|
-
// Excluded from snapshots
|
|
309
|
-
@ObservedState({ hidden: true })
|
|
310
|
-
internalState = {};
|
|
311
|
-
|
|
312
|
-
async run(): Promise<void> {
|
|
313
|
-
this.progress = 50;
|
|
314
|
-
|
|
315
|
-
// Get current state snapshot
|
|
316
|
-
const state = getObservedState(this);
|
|
317
|
-
// { progress: 50, apiKey: '***' }
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
**Options:**
|
|
323
|
-
|
|
324
|
-
| Option | Type | Description |
|
|
325
|
-
|--------|------|-------------|
|
|
326
|
-
| `hidden` | `boolean` | Exclude field from snapshots entirely |
|
|
327
|
-
| `redact` | `boolean` | Show value as `'***'` in snapshots |
|
|
328
|
-
```
|
|
329
|
-
|
|
330
|
-
### Recommended Improvement
|
|
331
|
-
|
|
332
|
-
```markdown
|
|
333
|
-
### @ObservedState
|
|
334
|
-
|
|
335
|
-
Marks fields for inclusion in state snapshots captured during workflow execution.
|
|
336
|
-
|
|
337
|
-
#### Default Behavior
|
|
338
|
-
|
|
339
|
-
Without options, `@ObservedState()` includes the field's value in all state snapshots.
|
|
340
|
-
|
|
341
|
-
```typescript
|
|
342
|
-
class MyWorkflow extends Workflow {
|
|
343
|
-
@ObservedState() // Default: hidden=false, redact=false
|
|
344
|
-
progress = 0;
|
|
345
|
-
|
|
346
|
-
async run(): Promise<void> {
|
|
347
|
-
this.progress = 50;
|
|
348
|
-
const state = getObservedState(this);
|
|
349
|
-
// { progress: 50 }
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
```
|
|
353
|
-
|
|
354
|
-
#### Configuration Options
|
|
355
|
-
|
|
356
|
-
| Option | Type | Default | Description |
|
|
357
|
-
|--------|------|---------|-------------|
|
|
358
|
-
| `hidden` | `boolean` | `false` | Exclude field from snapshots entirely |
|
|
359
|
-
| `redact` | `boolean` | `false` | Show value as `'***'` in snapshots (for secrets) |
|
|
360
|
-
|
|
361
|
-
#### Examples
|
|
362
|
-
|
|
363
|
-
**Regular Observed Field**
|
|
364
|
-
```typescript
|
|
365
|
-
@ObservedState()
|
|
366
|
-
progress = 0;
|
|
367
|
-
```
|
|
368
|
-
|
|
369
|
-
**Redacted Field (Secrets)**
|
|
370
|
-
```typescript
|
|
371
|
-
@ObservedState({ redact: true })
|
|
372
|
-
apiKey = 'secret-key'; // Shows as '***' in snapshots
|
|
373
|
-
```
|
|
374
|
-
|
|
375
|
-
**Hidden Field**
|
|
376
|
-
```typescript
|
|
377
|
-
@ObservedState({ hidden: true })
|
|
378
|
-
internalState = {}; // Not included in snapshots
|
|
379
|
-
```
|
|
380
|
-
|
|
381
|
-
#### Security Pattern
|
|
382
|
-
|
|
383
|
-
```typescript
|
|
384
|
-
class SecureWorkflow extends Workflow {
|
|
385
|
-
@ObservedState()
|
|
386
|
-
publicData: string = 'visible';
|
|
387
|
-
|
|
388
|
-
@ObservedState({ redact: true })
|
|
389
|
-
apiKey: string = 'secret'; // Redacted in logs
|
|
390
|
-
|
|
391
|
-
@ObservedState({ redact: true })
|
|
392
|
-
password: string = 'password'; // Redacted in logs
|
|
393
|
-
|
|
394
|
-
@ObservedState({ hidden: true })
|
|
395
|
-
internalCounter: number = 0; // Never logged
|
|
396
|
-
|
|
397
|
-
async run(): Promise<void> {
|
|
398
|
-
const snapshot = getObservedState(this);
|
|
399
|
-
// {
|
|
400
|
-
// publicData: 'visible',
|
|
401
|
-
// apiKey: '***',
|
|
402
|
-
// password: '***'
|
|
403
|
-
// }
|
|
404
|
-
// Note: internalCounter is not present
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
```
|
|
408
|
-
|
|
409
|
-
#### Type Definition
|
|
410
|
-
|
|
411
|
-
```typescript
|
|
412
|
-
interface ObservedStateOptions {
|
|
413
|
-
hidden?: boolean;
|
|
414
|
-
redact?: boolean;
|
|
415
|
-
}
|
|
416
|
-
```
|
|
417
|
-
```
|
|
418
|
-
|
|
419
|
-
---
|
|
420
|
-
|
|
421
|
-
## Example 4: README Quick Start
|
|
422
|
-
|
|
423
|
-
### Current Implementation
|
|
424
|
-
|
|
425
|
-
**File:** `/home/dustin/projects/groundswell/README.md` (lines 114-131)
|
|
426
|
-
|
|
427
|
-
```typescript
|
|
428
|
-
## Decorators
|
|
429
|
-
|
|
430
|
-
```typescript
|
|
431
|
-
// Emit lifecycle events and track timing
|
|
432
|
-
@Step({ trackTiming: true, snapshotState: true })
|
|
433
|
-
async processData(): Promise<void> { }
|
|
434
|
-
|
|
435
|
-
// Spawn and manage child workflows
|
|
436
|
-
@Task({ concurrent: true })
|
|
437
|
-
async createWorkers(): Promise<WorkerWorkflow[]> { }
|
|
438
|
-
|
|
439
|
-
// Mark fields for state snapshots
|
|
440
|
-
@ObservedState()
|
|
441
|
-
progress: number = 0;
|
|
442
|
-
|
|
443
|
-
@ObservedState({ redact: true }) // Shown as '***'
|
|
444
|
-
apiKey: string = 'secret';
|
|
445
|
-
```
|
|
446
|
-
```
|
|
447
|
-
|
|
448
|
-
### Recommended Addition
|
|
449
|
-
|
|
450
|
-
Add inline comments explaining defaults:
|
|
451
|
-
|
|
452
|
-
```typescript
|
|
453
|
-
## Decorators
|
|
454
|
-
|
|
455
|
-
```typescript
|
|
456
|
-
// Basic step with automatic timing (default: trackTiming=true)
|
|
457
|
-
@Step()
|
|
458
|
-
async processData(): Promise<void> { }
|
|
459
|
-
|
|
460
|
-
// Capture state when step completes
|
|
461
|
-
@Step({ snapshotState: true })
|
|
462
|
-
async processData(): Promise<void> { }
|
|
463
|
-
|
|
464
|
-
// Spawn child workflows (default: sequential)
|
|
465
|
-
@Task()
|
|
466
|
-
async createChild(): Promise<ChildWorkflow> { }
|
|
467
|
-
|
|
468
|
-
// Spawn child workflows in parallel
|
|
469
|
-
@Task({ concurrent: true })
|
|
470
|
-
async createWorkers(): Promise<WorkerWorkflow[]> { }
|
|
471
|
-
|
|
472
|
-
// Include field in state snapshots
|
|
473
|
-
@ObservedState()
|
|
474
|
-
progress: number = 0;
|
|
475
|
-
|
|
476
|
-
// Redact sensitive values (shown as '***')
|
|
477
|
-
@ObservedState({ redact: true })
|
|
478
|
-
apiKey: string = 'secret';
|
|
479
|
-
```
|
|
480
|
-
|
|
481
|
-
**See:** [Decorator Documentation](docs/workflow.md#decorators) for full options
|
|
482
|
-
```
|
|
483
|
-
|
|
484
|
-
---
|
|
485
|
-
|
|
486
|
-
## Example 5: Executable Example File
|
|
487
|
-
|
|
488
|
-
### Current Implementation
|
|
489
|
-
|
|
490
|
-
**File:** `/home/dustin/projects/groundswell/examples/examples/02-decorator-options.ts` (lines 1-20)
|
|
491
|
-
|
|
492
|
-
```typescript
|
|
493
|
-
/**
|
|
494
|
-
* Example 2: Decorator Options
|
|
495
|
-
*
|
|
496
|
-
* Demonstrates all decorator configuration options:
|
|
497
|
-
*
|
|
498
|
-
* @Step options:
|
|
499
|
-
* - name: Custom step name (defaults to method name)
|
|
500
|
-
* - snapshotState: Capture state snapshot after step completion
|
|
501
|
-
* - trackTiming: Track and emit step duration
|
|
502
|
-
* - logStart: Log message at step start
|
|
503
|
-
* - logFinish: Log message at step end
|
|
504
|
-
*
|
|
505
|
-
* @Task options:
|
|
506
|
-
* - name: Custom task name
|
|
507
|
-
* - concurrent: Run returned workflows concurrently
|
|
508
|
-
*
|
|
509
|
-
* @ObservedState options:
|
|
510
|
-
* - hidden: Field not included in snapshots
|
|
511
|
-
* - redact: Value shown as '***' in snapshots
|
|
512
|
-
*/
|
|
513
|
-
```
|
|
514
|
-
|
|
515
|
-
### Recommended Improvement
|
|
516
|
-
|
|
517
|
-
```typescript
|
|
518
|
-
/**
|
|
519
|
-
* Example 2: Decorator Options
|
|
520
|
-
*
|
|
521
|
-
* Demonstrates all decorator configuration options with their defaults:
|
|
522
|
-
*
|
|
523
|
-
* @Step(options) - Wraps methods with event emission and error handling
|
|
524
|
-
* Options:
|
|
525
|
-
* - name: string (default: method name)
|
|
526
|
-
* Custom step name for logs and events
|
|
527
|
-
* - snapshotState: boolean (default: false)
|
|
528
|
-
* Capture state snapshot after step completion
|
|
529
|
-
* - trackTiming: boolean (default: true)
|
|
530
|
-
* Track and emit step duration
|
|
531
|
-
* - logStart: boolean (default: false)
|
|
532
|
-
* Log info message when step starts
|
|
533
|
-
* - logFinish: boolean (default: false)
|
|
534
|
-
* Log info message when step completes
|
|
535
|
-
*
|
|
536
|
-
* @Task(options) - Wraps methods that return child workflows
|
|
537
|
-
* Options:
|
|
538
|
-
* - name: string (default: method name)
|
|
539
|
-
* Custom task name for logs and events
|
|
540
|
-
* - concurrent: boolean (default: false)
|
|
541
|
-
* Run returned workflows in parallel
|
|
542
|
-
*
|
|
543
|
-
* @ObservedState(options) - Marks fields for state snapshots
|
|
544
|
-
* Options:
|
|
545
|
-
* - hidden: boolean (default: false)
|
|
546
|
-
* Exclude field from snapshots entirely
|
|
547
|
-
* - redact: boolean (default: false)
|
|
548
|
-
* Show value as '***' in snapshots (for secrets)
|
|
549
|
-
*
|
|
550
|
-
* @see docs/workflow.md for complete documentation
|
|
551
|
-
*/
|
|
552
|
-
```
|
|
553
|
-
|
|
554
|
-
---
|
|
555
|
-
|
|
556
|
-
## Implementation Checklist
|
|
557
|
-
|
|
558
|
-
Use this checklist when updating documentation:
|
|
559
|
-
|
|
560
|
-
### For @Step Decorator
|
|
561
|
-
|
|
562
|
-
- [ ] Add "Default" column with `trackTiming: true`
|
|
563
|
-
- [ ] Add "Default Behavior" section explaining automatic timing
|
|
564
|
-
- [ ] Update examples to show default vs explicit `true`
|
|
565
|
-
- [ ] Add type definition section
|
|
566
|
-
|
|
567
|
-
### For @Task Decorator
|
|
568
|
-
|
|
569
|
-
- [ ] Add "Default" column with `concurrent: false`
|
|
570
|
-
- [ ] Explain sequential vs concurrent behavior
|
|
571
|
-
- [ ] Show array return type requirement for concurrent
|
|
572
|
-
- [ ] Add type definition section
|
|
573
|
-
|
|
574
|
-
### For @ObservedState Decorator
|
|
575
|
-
|
|
576
|
-
- [ ] Add "Default" column with `hidden: false, redact: false`
|
|
577
|
-
- [ ] Add security pattern example
|
|
578
|
-
- [ ] Explain difference between hidden and redact
|
|
579
|
-
- [ ] Add type definition section
|
|
580
|
-
|
|
581
|
-
### General Improvements
|
|
582
|
-
|
|
583
|
-
- [ ] Ensure all code examples use consistent formatting
|
|
584
|
-
- [ ] Add cross-references between decorators
|
|
585
|
-
- [ ] Include "See Also" sections
|
|
586
|
-
- [ ] Add type definitions for all options interfaces
|
|
587
|
-
- [ ] Keep examples executable
|
|
588
|
-
|
|
589
|
-
---
|
|
590
|
-
|
|
591
|
-
## File Reference Summary
|
|
592
|
-
|
|
593
|
-
| File | Purpose | Key Sections |
|
|
594
|
-
|------|---------|--------------|
|
|
595
|
-
| `docs/workflow.md` | Main documentation | Lines 114-244 |
|
|
596
|
-
| `README.md` | Quick start | Lines 114-131 |
|
|
597
|
-
| `src/types/decorators.ts` | Type definitions | Lines 1-26 |
|
|
598
|
-
| `examples/02-decorator-options.ts` | Executable examples | Lines 1-20 |
|
|
599
|
-
|
|
600
|
-
---
|
|
601
|
-
|
|
602
|
-
**Document Version:** 1.0
|
|
603
|
-
**Last Updated:** 2026-01-11
|
|
604
|
-
**Related Research:** `DECORATOR_DOCUMENTATION_BEST_PRACTICES.md`
|