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,492 +0,0 @@
|
|
|
1
|
-
# PRP: P1.M2.T1.S1 - Analyze Current Promise.all Implementation in @Task Decorator
|
|
2
|
-
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
## Goal
|
|
6
|
-
|
|
7
|
-
**Feature Goal**: Analyze and document the current Promise.all implementation in the @Task decorator to establish a complete understanding of concurrent execution behavior, error propagation flow, and requirements for migrating to Promise.allSettled.
|
|
8
|
-
|
|
9
|
-
**Deliverable**: Analysis document stored at `plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md` documenting:
|
|
10
|
-
- Current Promise.all implementation details (lines 104-114 in task.ts)
|
|
11
|
-
- Runnable workflow filtering logic
|
|
12
|
-
- Error propagation flow when concurrent workflows fail
|
|
13
|
-
- Requirements for Promise.allSettled migration
|
|
14
|
-
- Edge cases and gotchas identified
|
|
15
|
-
|
|
16
|
-
**Success Definition**: Analysis document provides sufficient context for P1.M2.T1.S2 (implement Promise.allSettled) to proceed without additional research. The document must answer:
|
|
17
|
-
1. How does the current implementation filter runnable workflows?
|
|
18
|
-
2. What happens when one concurrent workflow fails?
|
|
19
|
-
3. What error context is currently captured?
|
|
20
|
-
4. What changes are needed for Promise.allSettled migration?
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## All Needed Context
|
|
25
|
-
|
|
26
|
-
### Context Completeness Check
|
|
27
|
-
|
|
28
|
-
**"No Prior Knowledge" Test**: If someone knew nothing about this codebase, would they have everything needed to complete this research task successfully?
|
|
29
|
-
|
|
30
|
-
**Answer**: YES - This PRP provides:
|
|
31
|
-
- Exact file locations with line numbers
|
|
32
|
-
- Code snippets to analyze
|
|
33
|
-
- Expected documentation structure
|
|
34
|
-
- Validation criteria
|
|
35
|
-
|
|
36
|
-
### Documentation & References
|
|
37
|
-
|
|
38
|
-
```yaml
|
|
39
|
-
# MUST READ - Core Implementation
|
|
40
|
-
- file: src/decorators/task.ts
|
|
41
|
-
lines: 104-114
|
|
42
|
-
why: Contains the Promise.all implementation for concurrent task execution
|
|
43
|
-
pattern: Concurrent workflow execution with runnable filtering
|
|
44
|
-
gotcha: Promise.all fails fast on first error, losing other concurrent errors
|
|
45
|
-
|
|
46
|
-
- file: src/decorators/task.ts
|
|
47
|
-
lines: 1-129 (full file)
|
|
48
|
-
why: Complete context for @Task decorator including workflow attachment logic
|
|
49
|
-
pattern: Task decorator wrapper function with event emission
|
|
50
|
-
|
|
51
|
-
- file: plan/001_d3bb02af4886/bugfix/architecture/error_handling_patterns.md
|
|
52
|
-
why: Comprehensive error handling architecture analysis
|
|
53
|
-
section: "2. All Promise.all Usage Locations" through "5. Recommended Pattern"
|
|
54
|
-
critical: Already documents Promise.all location and recommended allSettled pattern
|
|
55
|
-
|
|
56
|
-
# TYPE DEFINITIONS
|
|
57
|
-
- file: src/types/error-strategy.ts
|
|
58
|
-
why: Defines ErrorMergeStrategy interface (currently unused)
|
|
59
|
-
pattern: Interface with enabled, maxMergeDepth, and combine() function
|
|
60
|
-
|
|
61
|
-
- file: src/types/decorators.ts
|
|
62
|
-
why: Defines TaskOptions interface for @Task decorator configuration
|
|
63
|
-
pattern: Options interface for decorator configuration
|
|
64
|
-
|
|
65
|
-
- file: src/types/error.ts
|
|
66
|
-
why: Defines WorkflowError interface structure
|
|
67
|
-
pattern: Interface with message, original, workflowId, stack, state, logs
|
|
68
|
-
|
|
69
|
-
# TEST PATTERNS - Follow these for understanding behavior
|
|
70
|
-
- file: src/__tests__/adversarial/edge-case.test.ts
|
|
71
|
-
lines: 366-430
|
|
72
|
-
why: Contains concurrent task execution tests with errors
|
|
73
|
-
pattern: Testing concurrent workflows with mixed success/failure
|
|
74
|
-
|
|
75
|
-
- file: src/__tests__/adversarial/prd-compliance.test.ts
|
|
76
|
-
lines: 421-460
|
|
77
|
-
why: Tests concurrent execution with multiple child workflows
|
|
78
|
-
pattern: Execution order tracking for verifying concurrency
|
|
79
|
-
|
|
80
|
-
# EXTERNAL RESEARCH - Created for this work item
|
|
81
|
-
- docfile: plan/001_d3bb02af4886/docs/research/PROMISE_ALLSETTLED_RESEARCH.md
|
|
82
|
-
why: Comprehensive Promise.allSettled best practices and migration strategies
|
|
83
|
-
section: "2. Promise.all vs Promise.allSettled: Technical Comparison"
|
|
84
|
-
|
|
85
|
-
- docfile: plan/001_d3bb02af4886/docs/research/PROMISE_ALLSETTLED_QUICK_REF.md
|
|
86
|
-
why: Quick reference for Promise.allSettled implementation
|
|
87
|
-
section: "Groundswell Implementation" (lines 145-182)
|
|
88
|
-
|
|
89
|
-
# TESTING FRAMEWORK
|
|
90
|
-
- file: vitest.config.ts
|
|
91
|
-
why: Test configuration - use vitest for testing
|
|
92
|
-
command: npm test or npm run test:watch
|
|
93
|
-
|
|
94
|
-
# EXAMPLES - Reference for concurrent patterns
|
|
95
|
-
- file: examples/examples/06-concurrent-tasks.ts
|
|
96
|
-
lines: 171, 174, 219
|
|
97
|
-
why: Shows manual Promise.all patterns in example code
|
|
98
|
-
pattern: Fan-out/fan-in pattern for concurrent workflows
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
### Current Codebase Tree
|
|
102
|
-
|
|
103
|
-
```bash
|
|
104
|
-
/home/dustin/projects/groundswell
|
|
105
|
-
├── src/
|
|
106
|
-
│ ├── decorators/
|
|
107
|
-
│ │ └── task.ts # PRIMARY: Promise.all implementation (line 112)
|
|
108
|
-
│ ├── types/
|
|
109
|
-
│ │ ├── error-strategy.ts # ErrorMergeStrategy interface (unused)
|
|
110
|
-
│ │ ├── error.ts # WorkflowError interface
|
|
111
|
-
│ │ └── decorators.ts # TaskOptions interface
|
|
112
|
-
│ ├── __tests__/
|
|
113
|
-
│ │ ├── adversarial/
|
|
114
|
-
│ │ │ ├── edge-case.test.ts # Concurrent error tests
|
|
115
|
-
│ │ │ ├── prd-compliance.test.ts # Concurrent execution tests
|
|
116
|
-
│ │ │ └── deep-analysis.test.ts # Promise.all usage in tests
|
|
117
|
-
│ │ └── helpers/
|
|
118
|
-
│ │ └── test-helpers.ts # Test utilities
|
|
119
|
-
│ └── core/
|
|
120
|
-
│ └── workflow.ts # Workflow class with run() method
|
|
121
|
-
├── plan/
|
|
122
|
-
│ └── 001_d3bb02af4886/
|
|
123
|
-
│ ├── bugfix/
|
|
124
|
-
│ │ └── architecture/
|
|
125
|
-
│ │ ├── error_handling_patterns.md # EXISTING: Error architecture analysis
|
|
126
|
-
│ │ ├── concurrent_execution_best_practices.md
|
|
127
|
-
│ │ └── promise_all_analysis.md # OUTPUT: Create this file
|
|
128
|
-
│ └── docs/
|
|
129
|
-
│ └── research/
|
|
130
|
-
│ ├── PROMISE_ALLSETTLED_RESEARCH.md
|
|
131
|
-
│ └── PROMISE_ALLSETTLED_QUICK_REF.md
|
|
132
|
-
└── vitest.config.ts # Test runner configuration
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
### Desired Codebase Tree (NO CODE CHANGES - Research Only)
|
|
136
|
-
|
|
137
|
-
```bash
|
|
138
|
-
# No new files added - this is a research task
|
|
139
|
-
# OUTPUT: plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
### Known Gotchas of Our Codebase & Library Quirks
|
|
143
|
-
|
|
144
|
-
```typescript
|
|
145
|
-
// CRITICAL: Current Promise.all implementation (src/decorators/task.ts:112)
|
|
146
|
-
// - FAILS FAST on first error
|
|
147
|
-
// - Other concurrent workflows continue but results are LOST
|
|
148
|
-
// - Only first error is visible to parent
|
|
149
|
-
// - No error aggregation exists
|
|
150
|
-
|
|
151
|
-
// CRITICAL: Workflow.run() returns Promise<unknown>
|
|
152
|
-
// - Type is deliberately generic to support any workflow return type
|
|
153
|
-
// - Errors thrown in run() are wrapped in WorkflowError by @Step decorator
|
|
154
|
-
// - Run method can be async or sync (but should be async)
|
|
155
|
-
|
|
156
|
-
// CRITICAL: Runnable filtering uses type guard pattern
|
|
157
|
-
// - Filters for objects with 'run' method that is a function
|
|
158
|
-
// - Does NOT check if workflow is already running
|
|
159
|
-
// - Does NOT prevent duplicate workflow execution
|
|
160
|
-
|
|
161
|
-
// CRITICAL: ErrorMergeStrategy exists but is UNUSED
|
|
162
|
-
// - Interface is defined but not implemented
|
|
163
|
-
// - No configuration hook in TaskOptions for error strategy
|
|
164
|
-
// - PRD specifies "default: disabled" for error merging
|
|
165
|
-
|
|
166
|
-
// CRITICAL: Child attachment happens BEFORE concurrent execution
|
|
167
|
-
// - Lines 91-102: attach children before running
|
|
168
|
-
// - Parent-child relationship established regardless of execution success
|
|
169
|
-
// - Failed workflows remain attached to parent
|
|
170
|
-
|
|
171
|
-
// CRITICAL: Concurrent option only affects execution, NOT attachment
|
|
172
|
-
// - Children are ALWAYS attached (if they have 'id' property)
|
|
173
|
-
// - concurrent: true only calls run() in parallel
|
|
174
|
-
// - concurrent: false/undefined returns children without running them
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
---
|
|
178
|
-
|
|
179
|
-
## Implementation Blueprint
|
|
180
|
-
|
|
181
|
-
### Research Tasks (ordered by dependencies)
|
|
182
|
-
|
|
183
|
-
```yaml
|
|
184
|
-
Task 1: READ Promise.all implementation
|
|
185
|
-
- LOCATION: src/decorators/task.ts lines 104-114
|
|
186
|
-
- UNDERSTAND: How concurrent workflows are filtered via runnable type guard
|
|
187
|
-
- UNDERSTAND: Promise.all execution with runnable.map((w) => w.run())
|
|
188
|
-
- DOCUMENT: Exact code structure and behavior
|
|
189
|
-
- DEPENDENCIES: None
|
|
190
|
-
|
|
191
|
-
Task 2: ANALYZE runnable workflow filtering logic
|
|
192
|
-
- LOCATION: src/decorators/task.ts lines 106-109
|
|
193
|
-
- UNDERSTAND: Type guard (w): w is WorkflowClass checks
|
|
194
|
-
- UNDERSTAND: Filter criteria: 'run' in w && typeof w.run === 'function'
|
|
195
|
-
- DOCUMENT: What gets included/excluded from concurrent execution
|
|
196
|
-
- DEPENDENCIES: Task 1
|
|
197
|
-
|
|
198
|
-
Task 3: TRACE error propagation flow
|
|
199
|
-
- LOCATION: Multiple files
|
|
200
|
-
- src/decorators/step.ts:109-134 (@Step error wrapping)
|
|
201
|
-
- src/core/workflow.ts:470-488 (runFunctional error handling)
|
|
202
|
-
- src/decorators/task.ts:112 (Promise.all error point)
|
|
203
|
-
- UNDERSTAND: How errors flow from @Step through Promise.all to parent
|
|
204
|
-
- UNDERSTAND: What error context is captured (WorkflowError structure)
|
|
205
|
-
- DOCUMENT: Step-by-step error flow with file locations
|
|
206
|
-
- DEPENDENCIES: Task 1
|
|
207
|
-
|
|
208
|
-
Task 4: IDENTIFY concurrent failure behavior
|
|
209
|
-
- LOCATION: src/decorators/task.ts:112 + test files
|
|
210
|
-
- UNDERSTAND: What happens when ONE concurrent workflow fails
|
|
211
|
-
- UNDERSTAND: What happens to OTHER concurrent workflows
|
|
212
|
-
- UNDERSTAND: Can parent see ALL errors or just FIRST error?
|
|
213
|
-
- REVIEW: src/__tests__/adversarial/edge-case.test.ts lines 366-403
|
|
214
|
-
- DOCUMENT: "First error wins" behavior and its implications
|
|
215
|
-
- DEPENDENCIES: Task 3
|
|
216
|
-
|
|
217
|
-
Task 5: REVIEW existing ErrorMergeStrategy design
|
|
218
|
-
- LOCATION: src/types/error-strategy.ts
|
|
219
|
-
- UNDERSTAND: Interface structure (enabled, maxMergeDepth, combine)
|
|
220
|
-
- UNDERSTAND: Why it's not used (refer to error_handling_patterns.md)
|
|
221
|
-
- DOCUMENT: Requirements for making it functional
|
|
222
|
-
- DEPENDENCIES: Task 4
|
|
223
|
-
|
|
224
|
-
Task 6: DOCUMENT Promise.allSettled migration requirements
|
|
225
|
-
- SYNTHESIZE: Findings from Tasks 1-5
|
|
226
|
-
- IDENTIFY: Code changes needed for Promise.allSettled
|
|
227
|
-
- IDENTIFY: Type definitions needed for PromiseSettledResult
|
|
228
|
-
- IDENTIFY: Error aggregation pattern requirements
|
|
229
|
-
- DOCUMENT: Specific implementation requirements for P1.M2.T1.S2
|
|
230
|
-
- DEPENDENCIES: Tasks 1-5
|
|
231
|
-
|
|
232
|
-
Task 7: CREATE promise_all_analysis.md
|
|
233
|
-
- LOCATION: plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
234
|
-
- CONTENT: Structure with sections:
|
|
235
|
-
1. Current Implementation Overview
|
|
236
|
-
2. Runnable Workflow Filtering Logic
|
|
237
|
-
3. Error Propagation Flow (step-by-step)
|
|
238
|
-
4. Concurrent Failure Behavior Analysis
|
|
239
|
-
5. Promise.allSettled Migration Requirements
|
|
240
|
-
6. Edge Cases and Gotchas
|
|
241
|
-
- FORMAT: Markdown with code examples and file:line references
|
|
242
|
-
- DEPENDENCIES: Task 6
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
### Research Patterns & Key Details
|
|
246
|
-
|
|
247
|
-
```typescript
|
|
248
|
-
// ============================================
|
|
249
|
-
// PATTERN 1: Runnable Workflow Type Guard
|
|
250
|
-
// Location: src/decorators/task.ts:106-109
|
|
251
|
-
// ============================================
|
|
252
|
-
|
|
253
|
-
const runnable = workflows.filter(
|
|
254
|
-
(w): w is WorkflowClass =>
|
|
255
|
-
w && typeof w === 'object' && 'run' in w && typeof w.run === 'function'
|
|
256
|
-
);
|
|
257
|
-
|
|
258
|
-
// RESEARCH NOTES:
|
|
259
|
-
// - (w): w is WorkflowClass is a TYPE PREDICATE (type guard)
|
|
260
|
-
// - Returns true if w has a run method that's a function
|
|
261
|
-
// - Filters out non-workflow objects (strings, numbers, null, etc.)
|
|
262
|
-
// - Does NOT check if workflow is already running
|
|
263
|
-
// - Does NOT prevent running same workflow twice
|
|
264
|
-
|
|
265
|
-
// ============================================
|
|
266
|
-
// PATTERN 2: Promise.all Execution
|
|
267
|
-
// Location: src/decorators/task.ts:111-113
|
|
268
|
-
// ============================================
|
|
269
|
-
|
|
270
|
-
if (runnable.length > 0) {
|
|
271
|
-
await Promise.all(runnable.map((w) => w.run()));
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
// RESEARCH NOTES:
|
|
275
|
-
// - runnable.map((w) => w.run()) creates array of Promise<unknown>
|
|
276
|
-
// - Promise.all waits for ALL to resolve OR rejects on FIRST rejection
|
|
277
|
-
// - When one rejects: Promise.all immediately throws that error
|
|
278
|
-
// - Other in-flight promises continue but results are LOST
|
|
279
|
-
// - Parent only sees first error, not all errors
|
|
280
|
-
|
|
281
|
-
// ============================================
|
|
282
|
-
// PATTERN 3: Child Attachment (Before Execution)
|
|
283
|
-
// Location: src/decorators/task.ts:91-102
|
|
284
|
-
// ============================================
|
|
285
|
-
|
|
286
|
-
for (const workflow of workflows) {
|
|
287
|
-
if (workflow && typeof workflow === 'object' && 'id' in workflow) {
|
|
288
|
-
const childWf = workflow as WorkflowClass;
|
|
289
|
-
if (!childWf.parent) {
|
|
290
|
-
childWf.parent = wf;
|
|
291
|
-
wf.attachChild(childWf as unknown as WorkflowLike);
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
// RESEARCH NOTES:
|
|
297
|
-
// - Attachment happens BEFORE concurrent execution
|
|
298
|
-
// - Parent-child relationship established regardless of execution success
|
|
299
|
-
// - Only attaches if parent is not already set
|
|
300
|
-
// - Uses 'id' property check to identify workflow objects
|
|
301
|
-
|
|
302
|
-
// ============================================
|
|
303
|
-
// PATTERN 4: WorkflowError Structure
|
|
304
|
-
// Location: src/types/error.ts
|
|
305
|
-
// ============================================
|
|
306
|
-
|
|
307
|
-
export interface WorkflowError {
|
|
308
|
-
message: string; // Error message
|
|
309
|
-
original: unknown; // Original thrown error
|
|
310
|
-
workflowId: string; // ID of workflow where error occurred
|
|
311
|
-
stack?: string; // Stack trace if available
|
|
312
|
-
state: SerializedWorkflowState; // State snapshot at error time
|
|
313
|
-
logs: LogEntry[]; // Logs from failing workflow node
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
// RESEARCH NOTES:
|
|
317
|
-
// - Complete context captured at error time
|
|
318
|
-
// - Includes workflowId for tracing in hierarchies
|
|
319
|
-
// - Preserves original error for root cause analysis
|
|
320
|
-
// - State and logs provide debugging context
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
### Integration Points (For Future P1.M2.T1.S2 Implementation)
|
|
324
|
-
|
|
325
|
-
```yaml
|
|
326
|
-
# These are FUTURE considerations - document them in analysis
|
|
327
|
-
|
|
328
|
-
DECORATOR_OPTIONS:
|
|
329
|
-
- add to: src/types/decorators.ts (TaskOptions interface)
|
|
330
|
-
- future pattern: "errorStrategy?: 'fail-fast' | 'complete-all'"
|
|
331
|
-
|
|
332
|
-
TASK_DECORATOR:
|
|
333
|
-
- modify: src/decorators/task.ts lines 104-114
|
|
334
|
-
- future pattern: Replace Promise.all with Promise.allSettled when errorStrategy='complete-all'
|
|
335
|
-
|
|
336
|
-
ERROR_AGGREGATION:
|
|
337
|
-
- use existing: src/types/error-strategy.ts (ErrorMergeStrategy interface)
|
|
338
|
-
- future pattern: Implement combine() function for error merging
|
|
339
|
-
|
|
340
|
-
TYPE_GUARDS:
|
|
341
|
-
- create: src/utils/promise-utils.ts
|
|
342
|
-
- future pattern: isFulfilled, isRejected type guards for PromiseSettledResult
|
|
343
|
-
```
|
|
344
|
-
|
|
345
|
-
---
|
|
346
|
-
|
|
347
|
-
## Validation Loop
|
|
348
|
-
|
|
349
|
-
### Level 1: Document Structure (Immediate Validation)
|
|
350
|
-
|
|
351
|
-
```bash
|
|
352
|
-
# After creating promise_all_analysis.md, verify structure
|
|
353
|
-
|
|
354
|
-
# Check file exists
|
|
355
|
-
test -f plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md || echo "File not created"
|
|
356
|
-
|
|
357
|
-
# Verify required sections exist
|
|
358
|
-
grep -q "Current Implementation Overview" plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
359
|
-
grep -q "Runnable Workflow Filtering Logic" plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
360
|
-
grep -q "Error Propagation Flow" plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
361
|
-
grep -q "Concurrent Failure Behavior" plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
362
|
-
grep -q "Migration Requirements" plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
363
|
-
grep -q "Edge Cases" plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
364
|
-
|
|
365
|
-
# Expected: All sections present, zero errors
|
|
366
|
-
```
|
|
367
|
-
|
|
368
|
-
### Level 2: Content Validation (Research Completeness)
|
|
369
|
-
|
|
370
|
-
```bash
|
|
371
|
-
# Verify document includes specific code references
|
|
372
|
-
|
|
373
|
-
# Check for src/decorators/task.ts line references
|
|
374
|
-
grep -q "src/decorators/task.ts" plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
375
|
-
grep -q "line 104" plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
376
|
-
grep -q "line 112" plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
377
|
-
|
|
378
|
-
# Check for Promise.all vs Promise.allSettled comparison
|
|
379
|
-
grep -q "Promise.all" plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
380
|
-
grep -q "Promise.allSettled" plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
381
|
-
|
|
382
|
-
# Check for error flow documentation
|
|
383
|
-
grep -q "error propagation" plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
384
|
-
grep -q "WorkflowError" plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
385
|
-
|
|
386
|
-
# Check for migration requirements
|
|
387
|
-
grep -q "migration" plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
388
|
-
grep -q "requirements" plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
389
|
-
|
|
390
|
-
# Expected: All content elements present
|
|
391
|
-
```
|
|
392
|
-
|
|
393
|
-
### Level 3: Context Completeness (Usability for Next Task)
|
|
394
|
-
|
|
395
|
-
```bash
|
|
396
|
-
# Verify analysis provides sufficient context for P1.M2.T1.S2
|
|
397
|
-
|
|
398
|
-
# Check for implementation guidance
|
|
399
|
-
grep -q "P1.M2.T1.S2" plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
400
|
-
|
|
401
|
-
# Check for type guard information
|
|
402
|
-
grep -q "type guard" plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
403
|
-
|
|
404
|
-
# Check for gotchas/pitfalls
|
|
405
|
-
grep -q "gotcha\|pitfall\|critical" plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
406
|
-
|
|
407
|
-
# Check for code examples
|
|
408
|
-
grep -q "```typescript\|```ts" plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
409
|
-
|
|
410
|
-
# Expected: Document is actionable for implementation
|
|
411
|
-
```
|
|
412
|
-
|
|
413
|
-
### Level 4: Cross-Reference Validation
|
|
414
|
-
|
|
415
|
-
```bash
|
|
416
|
-
# Verify document references existing research
|
|
417
|
-
|
|
418
|
-
# Check for references to error_handling_patterns.md
|
|
419
|
-
grep -q "error_handling_patterns.md" plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
420
|
-
|
|
421
|
-
# Check for references to external research
|
|
422
|
-
grep -q "PROMISE_ALLSETTLED" plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
423
|
-
|
|
424
|
-
# Check for test file references
|
|
425
|
-
grep -q "edge-case.test.ts\|prd-compliance.test.ts" plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md
|
|
426
|
-
|
|
427
|
-
# Expected: Document connects to existing research
|
|
428
|
-
```
|
|
429
|
-
|
|
430
|
-
---
|
|
431
|
-
|
|
432
|
-
## Final Validation Checklist
|
|
433
|
-
|
|
434
|
-
### Research Completeness
|
|
435
|
-
|
|
436
|
-
- [ ] All 7 research tasks completed systematically
|
|
437
|
-
- [ ] promise_all_analysis.md created at specified location
|
|
438
|
-
- [ ] Document includes all 6 required sections
|
|
439
|
-
- [ ] Code snippets include specific file:line references
|
|
440
|
-
- [ ] Error flow is documented step-by-step with locations
|
|
441
|
-
|
|
442
|
-
### Technical Accuracy
|
|
443
|
-
|
|
444
|
-
- [ ] Promise.all implementation accurately described
|
|
445
|
-
- [ ] Runnable filtering logic correctly explained
|
|
446
|
-
- [ ] Error propagation flow traces through actual code
|
|
447
|
-
- [ ] Concurrent failure behavior matches test observations
|
|
448
|
-
- [ ] Migration requirements are actionable
|
|
449
|
-
|
|
450
|
-
### Context Completeness
|
|
451
|
-
|
|
452
|
-
- [ ] Document references src/decorators/task.ts:104-114
|
|
453
|
-
- [ ] Document references src/types/error-strategy.ts
|
|
454
|
-
- [ ] Document references existing test patterns
|
|
455
|
-
- [ ] Document connects to error_handling_patterns.md
|
|
456
|
-
- [ ] Document links to PROMISE_ALLSETTLED research
|
|
457
|
-
|
|
458
|
-
### Usability for Next Task
|
|
459
|
-
|
|
460
|
-
- [ ] P1.M2.T1.S2 implementer can proceed without additional research
|
|
461
|
-
- [ ] Code examples are clear and specific
|
|
462
|
-
- [ ] Gotchas and pitfalls are highlighted
|
|
463
|
-
- [ ] Migration requirements are unambiguous
|
|
464
|
-
- [ ] Type guard patterns are documented
|
|
465
|
-
|
|
466
|
-
---
|
|
467
|
-
|
|
468
|
-
## Anti-Patterns to Avoid
|
|
469
|
-
|
|
470
|
-
- ❌ Don't modify any code - this is a RESEARCH task only
|
|
471
|
-
- ❌ Don't skip reading the actual source files - documentation can be stale
|
|
472
|
-
- ❌ Don't ignore test files - they demonstrate actual behavior
|
|
473
|
-
- ❌ Don't create vague analysis - be specific with file:line references
|
|
474
|
-
- ❌ Don't document "how to fix" - document "what is and what's needed"
|
|
475
|
-
- ❌ Don't assume existing documentation is correct - verify with code
|
|
476
|
-
- ❌ Don't forget to document the ERROR FLOW (critical for next task)
|
|
477
|
-
- ❌ Don't ignore the ErrorMergeStrategy interface (it exists for a reason)
|
|
478
|
-
|
|
479
|
-
---
|
|
480
|
-
|
|
481
|
-
## Success Metrics
|
|
482
|
-
|
|
483
|
-
**Confidence Score**: 10/10 for one-pass research completion
|
|
484
|
-
|
|
485
|
-
**Validation**: The completed analysis document should enable P1.M2.T1.S2 (implement Promise.allSettled) to proceed without any additional research or clarification.
|
|
486
|
-
|
|
487
|
-
**Definition of Done**:
|
|
488
|
-
1. promise_all_analysis.md exists with all 6 required sections
|
|
489
|
-
2. Document answers the 4 questions from Success Definition
|
|
490
|
-
3. All code references include specific file paths and line numbers
|
|
491
|
-
4. Error flow is traceable through the codebase
|
|
492
|
-
5. Next task (P1.M2.T1.S2) can be implemented using only this analysis
|