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,488 +0,0 @@
|
|
|
1
|
-
# Product Requirement Prompt (PRP): Research PRD Specification for child() Signature
|
|
2
|
-
|
|
3
|
-
**Work Item**: P1.M1.T1.S1 - Research PRD specification for child() signature
|
|
4
|
-
**PRD Reference**: Section 12.1 - WorkflowLogger Skeleton
|
|
5
|
-
**Implementation Target**: src/core/logger.ts:84
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Goal
|
|
10
|
-
|
|
11
|
-
**Feature Goal**: Document the exact differences between the PRD-specified `child()` signature and the current implementation, and provide a clear migration path.
|
|
12
|
-
|
|
13
|
-
**Deliverable**: A comprehensive analysis document (`logger_child_signature_analysis.md`) that:
|
|
14
|
-
1. Compares PRD specification vs. current implementation
|
|
15
|
-
2. Documents all existing usage patterns
|
|
16
|
-
3. Identifies backward compatibility requirements
|
|
17
|
-
4. Provides a recommended implementation approach
|
|
18
|
-
|
|
19
|
-
**Success Definition**: The analysis document enables the next subtask (P1.M1.T1.S2) to implement the signature change with complete understanding of:
|
|
20
|
-
- What fields from `Partial<LogEntry>` should be supported
|
|
21
|
-
- How to handle backward compatibility with existing `child(parentLogId: string)` calls
|
|
22
|
-
- The correct pattern for merging Partial<LogEntry> metadata
|
|
23
|
-
|
|
24
|
-
## User Persona
|
|
25
|
-
|
|
26
|
-
**Target User**: Developer implementing the signature change (P1.M1.T1.S2) and QA validating the migration (P1.M1.T1.S4)
|
|
27
|
-
|
|
28
|
-
**Use Case**: Understanding the full context of the `child()` signature discrepancy before implementing the fix
|
|
29
|
-
|
|
30
|
-
**User Journey**:
|
|
31
|
-
1. Read this PRP to understand the scope
|
|
32
|
-
2. Examine the generated analysis document
|
|
33
|
-
3. Use findings to implement the updated signature
|
|
34
|
-
4. Validate backward compatibility with existing test cases
|
|
35
|
-
|
|
36
|
-
**Pain Points Addressed**:
|
|
37
|
-
- Ambiguity about which `LogEntry` fields should be accepted in `Partial<LogEntry>`
|
|
38
|
-
- Unclear migration path from `child(parentLogId: string)` to `child(meta: Partial<LogEntry>)`
|
|
39
|
-
- Risk of breaking existing code that depends on the current signature
|
|
40
|
-
|
|
41
|
-
## Why
|
|
42
|
-
|
|
43
|
-
- **API Contract Compliance**: The current public API (`child(parentLogId: string)`) does not match the documented PRD specification (`child(meta: Partial<LogEntry>)`)
|
|
44
|
-
- **Extensibility**: The `Partial<LogEntry>` signature allows passing additional metadata (like `id`, `workflowId`, custom `data`) when creating child loggers
|
|
45
|
-
- **Consistency**: Aligns the implementation with the architectural design documented in the PRD
|
|
46
|
-
|
|
47
|
-
## What
|
|
48
|
-
|
|
49
|
-
### Success Criteria
|
|
50
|
-
|
|
51
|
-
- [ ] Analysis document created at `plan/bugfix/architecture/logger_child_signature_analysis.md`
|
|
52
|
-
- [ ] PRD specification for `child()` fully documented with exact signature
|
|
53
|
-
- [ ] Current implementation documented with code examples
|
|
54
|
-
- [ ] All existing usage sites catalogued (currently 2 test files)
|
|
55
|
-
- [ ] Backward compatibility requirements identified
|
|
56
|
-
- [ ] Recommended implementation approach provided with code examples
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
## All Needed Context
|
|
61
|
-
|
|
62
|
-
### Context Completeness Check
|
|
63
|
-
|
|
64
|
-
_This PRP passes the "No Prior Knowledge" test - someone unfamiliar with the codebase would have everything needed to complete this research task successfully._
|
|
65
|
-
|
|
66
|
-
### Documentation & References
|
|
67
|
-
|
|
68
|
-
```yaml
|
|
69
|
-
# MUST READ - PRD Specification
|
|
70
|
-
- url: ./prd_snapshot.md#section-12.1
|
|
71
|
-
why: Exact PRD specification for WorkflowLogger.child() method signature
|
|
72
|
-
critical: PRD specifies `child(meta: Partial<LogEntry>)` but implementation uses `child(parentLogId: string)`
|
|
73
|
-
|
|
74
|
-
# CRITICAL - Current Implementation
|
|
75
|
-
- file: src/core/logger.ts
|
|
76
|
-
why: Current WorkflowLogger implementation with child() at line 84-86
|
|
77
|
-
pattern: Hierarchical logging pattern using parentLogId string parameter
|
|
78
|
-
gotcha: The current signature is incompatible with PRD spec - this is the core bug
|
|
79
|
-
|
|
80
|
-
# CRITICAL - Type Definitions
|
|
81
|
-
- file: src/types/logging.ts
|
|
82
|
-
why: Complete LogEntry interface definition required to understand Partial<LogEntry>
|
|
83
|
-
section: Lines 9-24 define the full LogEntry interface with all optional fields
|
|
84
|
-
|
|
85
|
-
# CRITICAL - Usage Sites
|
|
86
|
-
- file: src/__tests__/adversarial/deep-analysis.test.ts
|
|
87
|
-
why: Test file using child() with empty string at line 61
|
|
88
|
-
pattern: `const childLogger = this.logger.child('');`
|
|
89
|
-
|
|
90
|
-
- file: src/__tests__/adversarial/edge-case.test.ts
|
|
91
|
-
why: Test file using child() with parent ID at line 96
|
|
92
|
-
pattern: `const childLogger = this.logger.child('parent-id-123');`
|
|
93
|
-
|
|
94
|
-
# REFERENCE - Codebase Structure
|
|
95
|
-
- docfile: plan/001_d3bb02af4886/bugfix/architecture/codebase_structure.md
|
|
96
|
-
why: Architecture documentation showing logger location and design
|
|
97
|
-
section: WorkflowLogger section with child() signature notes
|
|
98
|
-
|
|
99
|
-
# REFERENCE - Partial Usage Patterns
|
|
100
|
-
- file: src/types/reflection.ts
|
|
101
|
-
why: Examples of how Partial<T> is used elsewhere in the codebase
|
|
102
|
-
pattern: Partial used for optional config with default merging via createReflectionConfig()
|
|
103
|
-
|
|
104
|
-
# REFERENCE - Migration Patterns
|
|
105
|
-
- file: CHANGELOG.md
|
|
106
|
-
why: Examples of previous API migrations (e.g., attachChild breaking change)
|
|
107
|
-
pattern: Clear migration guides with before/after code examples
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
### Current Codebase Tree
|
|
111
|
-
|
|
112
|
-
```bash
|
|
113
|
-
src/
|
|
114
|
-
├── core/
|
|
115
|
-
│ ├── logger.ts # TARGET FILE - child() at line 84
|
|
116
|
-
│ ├── workflow.ts # Creates root logger at line 111
|
|
117
|
-
│ └── index.ts # Public API exports
|
|
118
|
-
├── types/
|
|
119
|
-
│ ├── logging.ts # LogEntry, LogLevel definitions
|
|
120
|
-
│ ├── observer.ts # WorkflowObserver interface
|
|
121
|
-
│ └── workflow.ts # WorkflowNode interface
|
|
122
|
-
├── utils/
|
|
123
|
-
│ └── id.ts # generateId() utility
|
|
124
|
-
└── __tests__/
|
|
125
|
-
└── adversarial/
|
|
126
|
-
├── deep-analysis.test.ts # Uses child('') at line 61
|
|
127
|
-
└── edge-case.test.ts # Uses child('parent-id-123') at line 96
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
### Known Gotchas & Library Quirks
|
|
131
|
-
|
|
132
|
-
```typescript
|
|
133
|
-
// CRITICAL: Partial<LogEntry> means ALL LogEntry fields are optional
|
|
134
|
-
// Including required fields like id, workflowId, timestamp, level, message
|
|
135
|
-
// The implementation must handle missing required fields appropriately
|
|
136
|
-
|
|
137
|
-
// CRITICAL: The PRD skeleton shows meta parameter is accepted but NOT USED:
|
|
138
|
-
// child(meta: Partial<LogEntry>): WorkflowLogger {
|
|
139
|
-
// return new WorkflowLogger(this.node, this.observers);
|
|
140
|
-
// }
|
|
141
|
-
// This suggests the parameter is for future extensibility
|
|
142
|
-
|
|
143
|
-
// GOTCHA: Current test code expects string parameter, not object:
|
|
144
|
-
// this.logger.child('parent-id-123') // Current usage
|
|
145
|
-
// this.logger.child({ parentLogId: 'parent-id-123' }) // PRD usage
|
|
146
|
-
|
|
147
|
-
// GOTCHA: The parentLogId field in LogEntry is optional (parentLogId?: string)
|
|
148
|
-
// Root loggers have no parentLogId, child loggers inherit it via constructor
|
|
149
|
-
|
|
150
|
-
// PATTERN: Codebase uses spread operator for merging Partial objects:
|
|
151
|
-
// { ...DEFAULT_CONFIG, ...partial } // From reflection.ts
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
---
|
|
155
|
-
|
|
156
|
-
## Implementation Blueprint
|
|
157
|
-
|
|
158
|
-
### Research Task Breakdown
|
|
159
|
-
|
|
160
|
-
This is a **research-only task**. No code changes should be made.
|
|
161
|
-
|
|
162
|
-
The analysis document should follow this structure:
|
|
163
|
-
|
|
164
|
-
```markdown
|
|
165
|
-
# Logger child() Signature Analysis
|
|
166
|
-
|
|
167
|
-
## 1. PRD Specification
|
|
168
|
-
|
|
169
|
-
### Signature from PRD Section 12.1
|
|
170
|
-
```typescript
|
|
171
|
-
child(meta: Partial<LogEntry>): WorkflowLogger
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
### LogEntry Type Definition
|
|
175
|
-
[Full type from src/types/logging.ts]
|
|
176
|
-
|
|
177
|
-
### PRD Implementation Notes
|
|
178
|
-
[Extract the skeleton implementation from PRD]
|
|
179
|
-
|
|
180
|
-
## 2. Current Implementation
|
|
181
|
-
|
|
182
|
-
### Actual Signature
|
|
183
|
-
```typescript
|
|
184
|
-
child(parentLogId: string): WorkflowLogger
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
### Current Code
|
|
188
|
-
[Full implementation from src/core/logger.ts:84-86]
|
|
189
|
-
|
|
190
|
-
### Constructor Support for parentLogId
|
|
191
|
-
[Show how constructor accepts parentLogId parameter]
|
|
192
|
-
|
|
193
|
-
## 3. Signature Comparison
|
|
194
|
-
|
|
195
|
-
### Key Differences Table
|
|
196
|
-
| Aspect | PRD Spec | Current Implementation |
|
|
197
|
-
|--------|----------|----------------------|
|
|
198
|
-
| Parameter Type | Partial<LogEntry> | string |
|
|
199
|
-
| Parameter Name | meta | parentLogId |
|
|
200
|
-
| Flexibility | Can pass any LogEntry field | Only accepts parentLogId |
|
|
201
|
-
|
|
202
|
-
### Compatibility Matrix
|
|
203
|
-
[Show which call patterns work with each signature]
|
|
204
|
-
|
|
205
|
-
## 4. Existing Usage Analysis
|
|
206
|
-
|
|
207
|
-
### Usage Site 1: deep-analysis.test.ts:61
|
|
208
|
-
```typescript
|
|
209
|
-
const childLogger = this.logger.child('');
|
|
210
|
-
```
|
|
211
|
-
- Context: Testing empty parentLogId handling
|
|
212
|
-
- Impact: BREAKING - will need migration
|
|
213
|
-
|
|
214
|
-
### Usage Site 2: edge-case.test.ts:96
|
|
215
|
-
```typescript
|
|
216
|
-
const childLogger = this.logger.child('parent-id-123');
|
|
217
|
-
```
|
|
218
|
-
- Context: Testing normal parentLogId passing
|
|
219
|
-
- Impact: BREAKING - will need migration
|
|
220
|
-
|
|
221
|
-
## 5. Partial<LogEntry> Field Analysis
|
|
222
|
-
|
|
223
|
-
### Fields That Make Sense for child()
|
|
224
|
-
- parentLogId: string - Primary use case, links to parent log entry
|
|
225
|
-
- id: string - Could allow explicit child log ID
|
|
226
|
-
- workflowId: string - Could allow different workflow context
|
|
227
|
-
- data: unknown - Could attach metadata to child logger
|
|
228
|
-
- level: LogLevel - Could set default level for child
|
|
229
|
-
|
|
230
|
-
### Fields That DON'T Make Sense
|
|
231
|
-
- timestamp: number - Child logger generates timestamps when logging
|
|
232
|
-
- message: string - Logger doesn't have a default message
|
|
233
|
-
|
|
234
|
-
## 6. Recommended Implementation Approach
|
|
235
|
-
|
|
236
|
-
### Option 1: Strict PRD Compliance (Breaking Change)
|
|
237
|
-
```typescript
|
|
238
|
-
child(meta: Partial<LogEntry>): WorkflowLogger {
|
|
239
|
-
const parentLogId = meta.parentLogId;
|
|
240
|
-
// Extract and use other fields as needed
|
|
241
|
-
return new WorkflowLogger(this.node, this.observers, parentLogId);
|
|
242
|
-
}
|
|
243
|
-
```
|
|
244
|
-
- Pros: Matches PRD exactly
|
|
245
|
-
- Cons: Breaking change, requires migration of 2 test files
|
|
246
|
-
|
|
247
|
-
### Option 2: Backward Compatible with Overload
|
|
248
|
-
```typescript
|
|
249
|
-
// Legacy signature for backward compatibility
|
|
250
|
-
child(parentLogId: string): WorkflowLogger;
|
|
251
|
-
// New PRD-compliant signature
|
|
252
|
-
child(meta: Partial<LogEntry>): WorkflowLogger;
|
|
253
|
-
|
|
254
|
-
child(input: string | Partial<LogEntry>): WorkflowLogger {
|
|
255
|
-
const parentLogId = typeof input === 'string'
|
|
256
|
-
? input
|
|
257
|
-
: input.parentLogId;
|
|
258
|
-
return new WorkflowLogger(this.node, this.observers, parentLogId);
|
|
259
|
-
}
|
|
260
|
-
```
|
|
261
|
-
- Pros: No breaking change
|
|
262
|
-
- Cons: More complex implementation
|
|
263
|
-
|
|
264
|
-
### Option 3: Hybrid Approach
|
|
265
|
-
```typescript
|
|
266
|
-
child(meta: Partial<LogEntry> = {}): WorkflowLogger {
|
|
267
|
-
const parentLogId = meta.parentLogId;
|
|
268
|
-
// Handle other meta fields...
|
|
269
|
-
return new WorkflowLogger(this.node, this.observers, parentLogId);
|
|
270
|
-
}
|
|
271
|
-
```
|
|
272
|
-
- Pros: Default empty object makes migration easier
|
|
273
|
-
- Cons: Still breaking for string calls
|
|
274
|
-
|
|
275
|
-
### Recommendation
|
|
276
|
-
[Chosen option with rationale based on codebase migration patterns]
|
|
277
|
-
|
|
278
|
-
## 7. Migration Strategy
|
|
279
|
-
|
|
280
|
-
### Code Changes Required
|
|
281
|
-
1. Update src/core/logger.ts:84 child() signature
|
|
282
|
-
2. Update 2 test files to use object syntax
|
|
283
|
-
3. Update any user code using the old signature
|
|
284
|
-
|
|
285
|
-
### Test Migration Examples
|
|
286
|
-
```typescript
|
|
287
|
-
// Before
|
|
288
|
-
this.logger.child('parent-id-123');
|
|
289
|
-
|
|
290
|
-
// After
|
|
291
|
-
this.logger.child({ parentLogId: 'parent-id-123' });
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
## 8. Related Files
|
|
295
|
-
- src/core/logger.ts:84 - Implementation location
|
|
296
|
-
- src/types/logging.ts - LogEntry definition
|
|
297
|
-
- src/__tests__/adversarial/deep-analysis.test.ts:61 - Usage site 1
|
|
298
|
-
- src/__tests__/adversarial/edge-case.test.ts:96 - Usage site 2
|
|
299
|
-
```
|
|
300
|
-
|
|
301
|
-
### Implementation Patterns & Key Details
|
|
302
|
-
|
|
303
|
-
```typescript
|
|
304
|
-
// PATTERN: How Partial<T> is used in this codebase (from reflection.ts)
|
|
305
|
-
export function createReflectionConfig(
|
|
306
|
-
partial?: Partial<ReflectionConfig>
|
|
307
|
-
): ReflectionConfig {
|
|
308
|
-
return {
|
|
309
|
-
...DEFAULT_REFLECTION_CONFIG, // Spread defaults first
|
|
310
|
-
...partial, // Then override with provided values
|
|
311
|
-
};
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
// PATTERN: Similar approach could be used for child() meta processing
|
|
315
|
-
function processChildMeta(meta: Partial<LogEntry>): RequiredMeta {
|
|
316
|
-
const defaults: RequiredMeta = {
|
|
317
|
-
parentLogId: undefined,
|
|
318
|
-
};
|
|
319
|
-
return {
|
|
320
|
-
...defaults,
|
|
321
|
-
...meta,
|
|
322
|
-
};
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
// GOTCHA: The PRD skeleton shows meta is accepted but NOT USED
|
|
326
|
-
// This suggests the parameter may be for future extensibility
|
|
327
|
-
// Consider whether to implement full merging now or stub for later
|
|
328
|
-
|
|
329
|
-
// CRITICAL: Test files verify the current string-based signature
|
|
330
|
-
// Any implementation MUST maintain backward compatibility or include migration
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
### Integration Points
|
|
334
|
-
|
|
335
|
-
```yaml
|
|
336
|
-
NO CODE CHANGES - This is a research task only.
|
|
337
|
-
|
|
338
|
-
OUTPUT:
|
|
339
|
-
- create: plan/bugfix/architecture/logger_child_signature_analysis.md
|
|
340
|
-
- content: Analysis document following the structure above
|
|
341
|
-
|
|
342
|
-
FOLLOW-UP:
|
|
343
|
-
- next_task: P1.M1.T1.S2 (Update WorkflowLogger.child() to accept Partial<LogEntry>)
|
|
344
|
-
- next_task: P1.M1.T1.S3 (Add tests for new child() signature)
|
|
345
|
-
- next_task: P1.M1.T1.S4 (Verify all existing child() calls still work)
|
|
346
|
-
```
|
|
347
|
-
|
|
348
|
-
---
|
|
349
|
-
|
|
350
|
-
## Validation Loop
|
|
351
|
-
|
|
352
|
-
### Level 1: Document Completeness (Immediate Validation)
|
|
353
|
-
|
|
354
|
-
```bash
|
|
355
|
-
# After creating the analysis document, verify:
|
|
356
|
-
grep -i "prd specification" plan/bugfix/architecture/logger_child_signature_analysis.md
|
|
357
|
-
grep -i "current implementation" plan/bugfix/architecture/logger_child_signature_analysis.md
|
|
358
|
-
grep -i "usage" plan/bugfix/architecture/logger_child_signature_analysis.md
|
|
359
|
-
grep -i "recommendation" plan/bugfix/architecture/logger_child_signature_analysis.md
|
|
360
|
-
|
|
361
|
-
# Expected: All sections present and populated with content
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
### Level 2: Content Accuracy (Verification)
|
|
365
|
-
|
|
366
|
-
```bash
|
|
367
|
-
# Verify PRD reference is accurate
|
|
368
|
-
grep -A 5 "child(meta: Partial" PRD.md
|
|
369
|
-
|
|
370
|
-
# Verify current implementation reference is accurate
|
|
371
|
-
grep -A 3 "child(parentLogId" src/core/logger.ts
|
|
372
|
-
|
|
373
|
-
# Verify usage sites are documented
|
|
374
|
-
grep "child('" src/__tests__/adversarial/*.test.ts
|
|
375
|
-
|
|
376
|
-
# Expected: All references match actual code
|
|
377
|
-
```
|
|
378
|
-
|
|
379
|
-
### Level 3: Actionability (Review)
|
|
380
|
-
|
|
381
|
-
```markdown
|
|
382
|
-
Review checklist:
|
|
383
|
-
- [ ] Document clearly identifies the signature mismatch
|
|
384
|
-
- [ ] All existing usage sites are catalogued with file paths and line numbers
|
|
385
|
-
- [ ] LogEntry type definition is fully documented
|
|
386
|
-
- [ ] At least 3 implementation options are presented with pros/cons
|
|
387
|
-
- [ ] Clear recommendation is provided with rationale
|
|
388
|
-
- [ ] Migration examples show before/after code
|
|
389
|
-
- [ ] Related files section is complete and accurate
|
|
390
|
-
```
|
|
391
|
-
|
|
392
|
-
### Level 4: Handoff Readiness
|
|
393
|
-
|
|
394
|
-
```bash
|
|
395
|
-
# Verify the document enables the next task
|
|
396
|
-
cat plan/bugfix/architecture/logger_child_signature_analysis.md | grep -i "next"
|
|
397
|
-
|
|
398
|
-
# Expected: Clear reference to P1.M1.T1.S2 as the next step
|
|
399
|
-
```
|
|
400
|
-
|
|
401
|
-
---
|
|
402
|
-
|
|
403
|
-
## Final Validation Checklist
|
|
404
|
-
|
|
405
|
-
### Research Validation
|
|
406
|
-
|
|
407
|
-
- [ ] PRD Section 12.1 has been read and documented accurately
|
|
408
|
-
- [ ] Current implementation at src/core/logger.ts:84 has been examined
|
|
409
|
-
- [ ] LogEntry type definition from src/types/logging.ts is documented
|
|
410
|
-
- [ ] All 2 usage sites in test files are catalogued
|
|
411
|
-
- [ ] Partial<T> usage patterns in the codebase have been analyzed
|
|
412
|
-
- [ ] Migration patterns from CHANGELOG.md have been reviewed
|
|
413
|
-
|
|
414
|
-
### Document Quality Validation
|
|
415
|
-
|
|
416
|
-
- [ ] Analysis document follows the specified structure
|
|
417
|
-
- [ ] Code examples are accurate and include line numbers
|
|
418
|
-
- [ ] Signature comparison is clear and tabular
|
|
419
|
-
- [ ] Implementation options include pros/cons
|
|
420
|
-
- [ ] Recommendation is specific and actionable
|
|
421
|
-
- [ ] Migration strategy includes concrete code examples
|
|
422
|
-
|
|
423
|
-
### Handoff Validation
|
|
424
|
-
|
|
425
|
-
- [ ] Document location is correct: plan/bugfix/architecture/logger_child_signature_analysis.md
|
|
426
|
-
- [ ] Document references all relevant files with exact paths
|
|
427
|
-
- [ ] Next task (P1.M1.T1.S2) can proceed with only this document + codebase access
|
|
428
|
-
- [ ] No additional research should be required for implementation
|
|
429
|
-
|
|
430
|
-
---
|
|
431
|
-
|
|
432
|
-
## Anti-Patterns to Avoid
|
|
433
|
-
|
|
434
|
-
- [ ] Don't make code changes - this is a research-only task
|
|
435
|
-
- [ ] Don't skip documenting the 2 existing usage sites
|
|
436
|
-
- [ ] Don't assume which LogEntry fields are relevant - analyze each one
|
|
437
|
-
- [ ] Don't provide only one implementation option - present alternatives
|
|
438
|
-
- [ ] Don't forget to document the migration examples
|
|
439
|
-
- [ ] Don't leave the recommendation ambiguous - be specific
|
|
440
|
-
- [ ] Don't ignore the PRD's note that meta parameter is unused in skeleton
|
|
441
|
-
- [ ] Don't overlook the backward compatibility implications
|
|
442
|
-
|
|
443
|
-
---
|
|
444
|
-
|
|
445
|
-
## Appendix: Quick Reference
|
|
446
|
-
|
|
447
|
-
### Key File Locations
|
|
448
|
-
|
|
449
|
-
| File | Lines | Purpose |
|
|
450
|
-
|------|-------|---------|
|
|
451
|
-
| PRD.md | 286-307 | PRD Section 12.1 WorkflowLogger specification |
|
|
452
|
-
| src/core/logger.ts | 84-86 | Current child() implementation |
|
|
453
|
-
| src/types/logging.ts | 9-24 | LogEntry interface definition |
|
|
454
|
-
| src/__tests__/adversarial/deep-analysis.test.ts | 61 | Usage site 1 |
|
|
455
|
-
| src/__tests__/adversarial/edge-case.test.ts | 96 | Usage site 2 |
|
|
456
|
-
| src/types/reflection.ts | - | Partial<T> usage pattern reference |
|
|
457
|
-
| CHANGELOG.md | - | Migration pattern reference |
|
|
458
|
-
|
|
459
|
-
### Signature Comparison
|
|
460
|
-
|
|
461
|
-
```typescript
|
|
462
|
-
// PRD Specification (Section 12.1)
|
|
463
|
-
child(meta: Partial<LogEntry>): WorkflowLogger
|
|
464
|
-
|
|
465
|
-
// Current Implementation (src/core/logger.ts:84)
|
|
466
|
-
child(parentLogId: string): WorkflowLogger
|
|
467
|
-
|
|
468
|
-
// LogEntry Fields (from src/types/logging.ts)
|
|
469
|
-
interface LogEntry {
|
|
470
|
-
id: string; // Unique identifier
|
|
471
|
-
workflowId: string; // Workflow that created log
|
|
472
|
-
timestamp: number; // Unix timestamp in ms
|
|
473
|
-
level: LogLevel; // 'debug' | 'info' | 'warn' | 'error'
|
|
474
|
-
message: string; // Log message
|
|
475
|
-
data?: unknown; // Optional structured data
|
|
476
|
-
parentLogId?: string; // Parent log ID for hierarchy
|
|
477
|
-
}
|
|
478
|
-
```
|
|
479
|
-
|
|
480
|
-
### Existing Usage Patterns
|
|
481
|
-
|
|
482
|
-
```typescript
|
|
483
|
-
// Pattern 1: Empty string (deep-analysis.test.ts:61)
|
|
484
|
-
this.logger.child('');
|
|
485
|
-
|
|
486
|
-
// Pattern 2: Parent ID string (edge-case.test.ts:96)
|
|
487
|
-
this.logger.child('parent-id-123');
|
|
488
|
-
```
|