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.
Files changed (554) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +26 -9
  3. package/dist/cache/cache-key.d.ts +86 -0
  4. package/dist/cache/cache-key.d.ts.map +1 -0
  5. package/dist/cache/cache-key.js +204 -0
  6. package/dist/cache/cache-key.js.map +1 -0
  7. package/dist/cache/cache.d.ts +104 -0
  8. package/dist/cache/cache.d.ts.map +1 -0
  9. package/dist/cache/cache.js +179 -0
  10. package/dist/cache/cache.js.map +1 -0
  11. package/{src/cache/index.ts → dist/cache/index.d.ts} +1 -1
  12. package/dist/cache/index.d.ts.map +1 -0
  13. package/dist/cache/index.js +6 -0
  14. package/dist/cache/index.js.map +1 -0
  15. package/dist/core/agent.d.ts +203 -0
  16. package/dist/core/agent.d.ts.map +1 -0
  17. package/dist/core/agent.js +833 -0
  18. package/dist/core/agent.js.map +1 -0
  19. package/{src/core/context.ts → dist/core/context.d.ts} +16 -67
  20. package/dist/core/context.d.ts.map +1 -0
  21. package/dist/core/context.js +80 -0
  22. package/dist/core/context.js.map +1 -0
  23. package/dist/core/event-tree.d.ts +72 -0
  24. package/dist/core/event-tree.d.ts.map +1 -0
  25. package/dist/core/event-tree.js +211 -0
  26. package/dist/core/event-tree.js.map +1 -0
  27. package/{src/core/factory.ts → dist/core/factory.d.ts} +6 -27
  28. package/dist/core/factory.d.ts.map +1 -0
  29. package/dist/core/factory.js +110 -0
  30. package/dist/core/factory.js.map +1 -0
  31. package/{src/core/index.ts → dist/core/index.d.ts} +2 -10
  32. package/dist/core/index.d.ts.map +1 -0
  33. package/dist/core/index.js +9 -0
  34. package/dist/core/index.js.map +1 -0
  35. package/dist/core/logger.d.ts +50 -0
  36. package/dist/core/logger.d.ts.map +1 -0
  37. package/dist/core/logger.js +91 -0
  38. package/dist/core/logger.js.map +1 -0
  39. package/dist/core/mcp-handler.d.ts +127 -0
  40. package/dist/core/mcp-handler.d.ts.map +1 -0
  41. package/dist/core/mcp-handler.js +323 -0
  42. package/dist/core/mcp-handler.js.map +1 -0
  43. package/dist/core/prompt.d.ts +80 -0
  44. package/dist/core/prompt.d.ts.map +1 -0
  45. package/dist/core/prompt.js +120 -0
  46. package/dist/core/prompt.js.map +1 -0
  47. package/dist/core/workflow-context.d.ts +61 -0
  48. package/dist/core/workflow-context.d.ts.map +1 -0
  49. package/dist/core/workflow-context.js +358 -0
  50. package/dist/core/workflow-context.js.map +1 -0
  51. package/dist/core/workflow.d.ts +543 -0
  52. package/dist/core/workflow.d.ts.map +1 -0
  53. package/dist/core/workflow.js +986 -0
  54. package/dist/core/workflow.js.map +1 -0
  55. package/dist/debugger/event-replayer.d.ts +422 -0
  56. package/dist/debugger/event-replayer.d.ts.map +1 -0
  57. package/dist/debugger/event-replayer.js +639 -0
  58. package/dist/debugger/event-replayer.js.map +1 -0
  59. package/dist/debugger/index.d.ts +2 -0
  60. package/dist/debugger/index.d.ts.map +1 -0
  61. package/{src/debugger/index.ts → dist/debugger/index.js} +1 -0
  62. package/dist/debugger/index.js.map +1 -0
  63. package/dist/debugger/tree-debugger.d.ts +240 -0
  64. package/dist/debugger/tree-debugger.d.ts.map +1 -0
  65. package/dist/debugger/tree-debugger.js +620 -0
  66. package/dist/debugger/tree-debugger.js.map +1 -0
  67. package/dist/decorators/index.d.ts +4 -0
  68. package/dist/decorators/index.d.ts.map +1 -0
  69. package/{src/decorators/index.ts → dist/decorators/index.js} +1 -0
  70. package/dist/decorators/index.js.map +1 -0
  71. package/dist/decorators/observed-state.d.ts +32 -0
  72. package/dist/decorators/observed-state.d.ts.map +1 -0
  73. package/dist/decorators/observed-state.js +79 -0
  74. package/dist/decorators/observed-state.js.map +1 -0
  75. package/dist/decorators/step.d.ts +15 -0
  76. package/dist/decorators/step.d.ts.map +1 -0
  77. package/dist/decorators/step.js +192 -0
  78. package/dist/decorators/step.js.map +1 -0
  79. package/dist/decorators/task.d.ts +50 -0
  80. package/dist/decorators/task.d.ts.map +1 -0
  81. package/dist/decorators/task.js +118 -0
  82. package/dist/decorators/task.js.map +1 -0
  83. package/dist/examples/index.d.ts +3 -0
  84. package/dist/examples/index.d.ts.map +1 -0
  85. package/{src/examples/index.ts → dist/examples/index.js} +1 -0
  86. package/dist/examples/index.js.map +1 -0
  87. package/dist/examples/tdd-orchestrator.d.ts +15 -0
  88. package/dist/examples/tdd-orchestrator.d.ts.map +1 -0
  89. package/dist/examples/tdd-orchestrator.js +121 -0
  90. package/dist/examples/tdd-orchestrator.js.map +1 -0
  91. package/dist/examples/test-cycle-workflow.d.ts +14 -0
  92. package/dist/examples/test-cycle-workflow.d.ts.map +1 -0
  93. package/dist/examples/test-cycle-workflow.js +116 -0
  94. package/dist/examples/test-cycle-workflow.js.map +1 -0
  95. package/dist/harnesses/claude-code-harness.d.ts +391 -0
  96. package/dist/harnesses/claude-code-harness.d.ts.map +1 -0
  97. package/dist/harnesses/claude-code-harness.js +1076 -0
  98. package/dist/harnesses/claude-code-harness.js.map +1 -0
  99. package/dist/harnesses/harness-registry.d.ts +440 -0
  100. package/dist/harnesses/harness-registry.d.ts.map +1 -0
  101. package/dist/harnesses/harness-registry.js +543 -0
  102. package/dist/harnesses/harness-registry.js.map +1 -0
  103. package/dist/harnesses/index.d.ts +12 -0
  104. package/dist/harnesses/index.d.ts.map +1 -0
  105. package/dist/harnesses/index.js +11 -0
  106. package/dist/harnesses/index.js.map +1 -0
  107. package/dist/harnesses/pi-harness.d.ts +219 -0
  108. package/dist/harnesses/pi-harness.d.ts.map +1 -0
  109. package/dist/harnesses/pi-harness.js +676 -0
  110. package/dist/harnesses/pi-harness.js.map +1 -0
  111. package/dist/harnesses/pi-schema-converter.d.ts +24 -0
  112. package/dist/harnesses/pi-schema-converter.d.ts.map +1 -0
  113. package/dist/harnesses/pi-schema-converter.js +81 -0
  114. package/dist/harnesses/pi-schema-converter.js.map +1 -0
  115. package/dist/harnesses/register-defaults.d.ts +24 -0
  116. package/dist/harnesses/register-defaults.d.ts.map +1 -0
  117. package/dist/harnesses/register-defaults.js +40 -0
  118. package/dist/harnesses/register-defaults.js.map +1 -0
  119. package/dist/harnesses/session-store.d.ts +201 -0
  120. package/dist/harnesses/session-store.d.ts.map +1 -0
  121. package/dist/harnesses/session-store.js +254 -0
  122. package/dist/harnesses/session-store.js.map +1 -0
  123. package/dist/index.d.ts +37 -0
  124. package/dist/index.d.ts.map +1 -0
  125. package/dist/index.js +57 -0
  126. package/dist/index.js.map +1 -0
  127. package/dist/reflection/index.d.ts +5 -0
  128. package/dist/reflection/index.d.ts.map +1 -0
  129. package/{src/reflection/index.ts → dist/reflection/index.js} +1 -1
  130. package/dist/reflection/index.js.map +1 -0
  131. package/dist/reflection/reflection.d.ts +84 -0
  132. package/dist/reflection/reflection.d.ts.map +1 -0
  133. package/dist/reflection/reflection.js +344 -0
  134. package/dist/reflection/reflection.js.map +1 -0
  135. package/dist/tools/index.d.ts +6 -0
  136. package/dist/tools/index.d.ts.map +1 -0
  137. package/dist/tools/index.js +11 -0
  138. package/dist/tools/index.js.map +1 -0
  139. package/dist/tools/introspection.d.ts +165 -0
  140. package/dist/tools/introspection.d.ts.map +1 -0
  141. package/dist/tools/introspection.js +324 -0
  142. package/dist/tools/introspection.js.map +1 -0
  143. package/dist/types/agent.d.ts +1317 -0
  144. package/dist/types/agent.d.ts.map +1 -0
  145. package/dist/types/agent.js +423 -0
  146. package/dist/types/agent.js.map +1 -0
  147. package/dist/types/decorators.d.ts +40 -0
  148. package/dist/types/decorators.d.ts.map +1 -0
  149. package/dist/types/decorators.js +2 -0
  150. package/dist/types/decorators.js.map +1 -0
  151. package/dist/types/error-strategy.d.ts +13 -0
  152. package/dist/types/error-strategy.d.ts.map +1 -0
  153. package/dist/types/error-strategy.js +2 -0
  154. package/dist/types/error-strategy.js.map +1 -0
  155. package/dist/types/error.d.ts +20 -0
  156. package/dist/types/error.d.ts.map +1 -0
  157. package/dist/types/error.js +2 -0
  158. package/dist/types/error.js.map +1 -0
  159. package/dist/types/events.d.ts +113 -0
  160. package/dist/types/events.d.ts.map +1 -0
  161. package/dist/types/events.js +2 -0
  162. package/dist/types/events.js.map +1 -0
  163. package/dist/types/harnesses.d.ts +474 -0
  164. package/dist/types/harnesses.d.ts.map +1 -0
  165. package/dist/types/harnesses.js +2 -0
  166. package/dist/types/harnesses.js.map +1 -0
  167. package/dist/types/index.d.ts +23 -0
  168. package/dist/types/index.d.ts.map +1 -0
  169. package/dist/types/index.js +8 -0
  170. package/dist/types/index.js.map +1 -0
  171. package/dist/types/logging.d.ts +24 -0
  172. package/dist/types/logging.d.ts.map +1 -0
  173. package/dist/types/logging.js +2 -0
  174. package/dist/types/logging.js.map +1 -0
  175. package/dist/types/observer.d.ts +18 -0
  176. package/dist/types/observer.d.ts.map +1 -0
  177. package/dist/types/observer.js +2 -0
  178. package/dist/types/observer.js.map +1 -0
  179. package/dist/types/prompt.d.ts +31 -0
  180. package/dist/types/prompt.d.ts.map +1 -0
  181. package/dist/types/prompt.js +6 -0
  182. package/dist/types/prompt.js.map +1 -0
  183. package/dist/types/providers.d.ts +691 -0
  184. package/dist/types/providers.d.ts.map +1 -0
  185. package/dist/types/providers.js +14 -0
  186. package/dist/types/providers.js.map +1 -0
  187. package/dist/types/reflection.d.ts +96 -0
  188. package/dist/types/reflection.d.ts.map +1 -0
  189. package/dist/types/reflection.js +24 -0
  190. package/dist/types/reflection.js.map +1 -0
  191. package/dist/types/restart.d.ts +132 -0
  192. package/dist/types/restart.d.ts.map +1 -0
  193. package/dist/types/restart.js +2 -0
  194. package/dist/types/restart.js.map +1 -0
  195. package/dist/types/sdk-primitives.d.ts +118 -0
  196. package/dist/types/sdk-primitives.d.ts.map +1 -0
  197. package/dist/types/sdk-primitives.js +6 -0
  198. package/dist/types/sdk-primitives.js.map +1 -0
  199. package/{src/types/snapshot.ts → dist/types/snapshot.d.ts} +5 -5
  200. package/dist/types/snapshot.d.ts.map +1 -0
  201. package/dist/types/snapshot.js +2 -0
  202. package/dist/types/snapshot.js.map +1 -0
  203. package/dist/types/streaming.d.ts +194 -0
  204. package/dist/types/streaming.d.ts.map +1 -0
  205. package/dist/types/streaming.js +67 -0
  206. package/dist/types/streaming.js.map +1 -0
  207. package/dist/types/workflow-context.d.ts +275 -0
  208. package/dist/types/workflow-context.d.ts.map +1 -0
  209. package/dist/types/workflow-context.js +8 -0
  210. package/dist/types/workflow-context.js.map +1 -0
  211. package/dist/types/workflow.d.ts +30 -0
  212. package/dist/types/workflow.d.ts.map +1 -0
  213. package/dist/types/workflow.js +2 -0
  214. package/dist/types/workflow.js.map +1 -0
  215. package/dist/utils/agent-validation.d.ts +88 -0
  216. package/dist/utils/agent-validation.d.ts.map +1 -0
  217. package/dist/utils/agent-validation.js +87 -0
  218. package/dist/utils/agent-validation.js.map +1 -0
  219. package/dist/utils/delay.d.ts +7 -0
  220. package/dist/utils/delay.d.ts.map +1 -0
  221. package/dist/utils/delay.js +9 -0
  222. package/dist/utils/delay.js.map +1 -0
  223. package/dist/utils/harness-config.d.ts +180 -0
  224. package/dist/utils/harness-config.d.ts.map +1 -0
  225. package/dist/utils/harness-config.js +311 -0
  226. package/dist/utils/harness-config.js.map +1 -0
  227. package/dist/utils/id.d.ts +6 -0
  228. package/dist/utils/id.d.ts.map +1 -0
  229. package/dist/utils/id.js +12 -0
  230. package/dist/utils/id.js.map +1 -0
  231. package/dist/utils/index.d.ts +13 -0
  232. package/dist/utils/index.d.ts.map +1 -0
  233. package/dist/utils/index.js +11 -0
  234. package/dist/utils/index.js.map +1 -0
  235. package/dist/utils/model-spec.d.ts +110 -0
  236. package/dist/utils/model-spec.d.ts.map +1 -0
  237. package/dist/utils/model-spec.js +149 -0
  238. package/dist/utils/model-spec.js.map +1 -0
  239. package/dist/utils/observable.d.ts +54 -0
  240. package/dist/utils/observable.d.ts.map +1 -0
  241. package/dist/utils/observable.js +82 -0
  242. package/dist/utils/observable.js.map +1 -0
  243. package/dist/utils/provider-config.d.ts +10 -0
  244. package/dist/utils/provider-config.d.ts.map +1 -0
  245. package/dist/utils/provider-config.js +10 -0
  246. package/dist/utils/provider-config.js.map +1 -0
  247. package/dist/utils/restart-analysis.d.ts +202 -0
  248. package/dist/utils/restart-analysis.d.ts.map +1 -0
  249. package/dist/utils/restart-analysis.js +426 -0
  250. package/dist/utils/restart-analysis.js.map +1 -0
  251. package/dist/utils/session-serialization.d.ts +118 -0
  252. package/dist/utils/session-serialization.d.ts.map +1 -0
  253. package/dist/utils/session-serialization.js +217 -0
  254. package/dist/utils/session-serialization.js.map +1 -0
  255. package/dist/utils/workflow-error-utils.d.ts +22 -0
  256. package/dist/utils/workflow-error-utils.d.ts.map +1 -0
  257. package/dist/utils/workflow-error-utils.js +45 -0
  258. package/dist/utils/workflow-error-utils.js.map +1 -0
  259. package/package.json +34 -5
  260. package/.claude/commands/subtask-planning/prp-base-create.md +0 -120
  261. package/.claude/commands/subtask-planning/prp-base-execute.md +0 -65
  262. package/.claude/commands/task-breakdown.md +0 -94
  263. package/.claude/settings.local.json +0 -9
  264. package/.claude/system_prompts/task-breakdown.md +0 -101
  265. package/CHANGELOG.md +0 -188
  266. package/PRD.md +0 -543
  267. package/PRPs/001-hierarchical-workflow-engine.md +0 -2438
  268. package/PRPs/PRDs/002-agent-prompt.md +0 -390
  269. package/PRPs/PRDs/003-agent-prompt.md +0 -943
  270. package/PRPs/PRDs/004-agent-prompt.md +0 -1136
  271. package/PRPs/PRDs/tasks-001.json +0 -492
  272. package/PRPs/README.md +0 -83
  273. package/PRPs/templates/prp_base.md +0 -222
  274. package/docs/agent.md +0 -422
  275. package/docs/prompt.md +0 -419
  276. package/docs/workflow.md +0 -600
  277. package/examples/README.md +0 -258
  278. package/examples/examples/01-basic-workflow.ts +0 -100
  279. package/examples/examples/02-decorator-options.ts +0 -217
  280. package/examples/examples/03-parent-child.ts +0 -241
  281. package/examples/examples/04-observers-debugger.ts +0 -340
  282. package/examples/examples/05-error-handling.ts +0 -387
  283. package/examples/examples/06-concurrent-tasks.ts +0 -352
  284. package/examples/examples/07-agent-loops.ts +0 -432
  285. package/examples/examples/08-sdk-features.ts +0 -667
  286. package/examples/examples/09-reflection.ts +0 -573
  287. package/examples/examples/10-introspection.ts +0 -550
  288. package/examples/examples/11-reparenting-workflows.ts +0 -269
  289. package/examples/index.ts +0 -147
  290. package/examples/utils/helpers.ts +0 -57
  291. package/package-lock.json +0 -2398
  292. package/plan/001_d3bb02af4886/TEST_RESULTS.md +0 -259
  293. package/plan/001_d3bb02af4886/backlog.json +0 -867
  294. package/plan/001_d3bb02af4886/bug_fix_tasks.json +0 -484
  295. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S1/PRP.md +0 -488
  296. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S2/PRP.md +0 -581
  297. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S3/PRP.md +0 -687
  298. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S1/PRP.md +0 -492
  299. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/PRP.md +0 -932
  300. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/concurrent_error_testing_patterns.md +0 -1109
  301. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/vitest_concurrent_testing.md +0 -802
  302. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/workflow_engine_test_references.md +0 -603
  303. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S1/PRP.md +0 -564
  304. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S3/PRP.md +0 -518
  305. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S4/PRP.md +0 -1252
  306. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/PRP.md +0 -364
  307. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/CODEBASE_INVENTORY.md +0 -114
  308. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/DECORATOR_DOCUMENTATION_PATTERNS.md +0 -205
  309. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/PRD_LOCATION_ANALYSIS.md +0 -199
  310. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/ULTRATHINK_PRP_PLAN.md +0 -134
  311. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S1/PRP.md +0 -495
  312. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S1/research/console_error_inventory.md +0 -435
  313. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S2/PRP.md +0 -506
  314. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S3/PRP.md +0 -612
  315. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S2/PRP.md +0 -558
  316. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S2/research/external_research.md +0 -788
  317. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T3S2/PRP.md +0 -460
  318. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T3S3/PRP.md +0 -454
  319. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/PRP.md +0 -520
  320. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/RECOMMENDATION.md +0 -417
  321. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/research/external_workflow_engines_research.md +0 -760
  322. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/research/security_implications_analysis.md +0 -245
  323. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S2/PRP.md +0 -792
  324. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S1/PRP.md +0 -535
  325. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S1/TEST_EXECUTION_REPORT.md +0 -190
  326. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/PRP.md +0 -654
  327. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/TEST_FIX_REPORT.md +0 -227
  328. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/KEY_FINDINGS.md +0 -345
  329. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/QUICK_REFERENCE.md +0 -193
  330. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/test_maintenance_research.md +0 -1323
  331. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S1/BREAKING_CHANGES_AUDIT.md +0 -1011
  332. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S1/PRP.md +0 -927
  333. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S2/PRP.md +0 -505
  334. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/architecture/logger_child_signature_analysis.md +0 -401
  335. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/child_implementation_research.md +0 -142
  336. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/test_patterns_research.md +0 -112
  337. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/vitest_patterns_research.md +0 -159
  338. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/PRP.md +0 -549
  339. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/VERIFICATION_REPORT.md +0 -368
  340. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/edge_case_analysis.md +0 -172
  341. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/usage_inventory.md +0 -175
  342. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T1S2/PRP.md +0 -696
  343. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T1S4/PRP.md +0 -860
  344. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/PRP.md +0 -1066
  345. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/01-testing-aggregated-errors.md +0 -1103
  346. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/01_typescript_error_aggregation_patterns.md +0 -789
  347. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/02-error-merge-strategy-testing-guide.md +0 -1098
  348. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/02_aggregate_error_patterns.md +0 -1037
  349. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/03-promise-allsettled-testing-patterns.md +0 -916
  350. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/03_error_merging_strategies.md +0 -1045
  351. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/04_github_stackoverflow_examples.md +0 -890
  352. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/05_comprehensive_summary.md +0 -822
  353. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/INDEX.md +0 -668
  354. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/QUICK_REFERENCE.md +0 -706
  355. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/README.md +0 -265
  356. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/RESEARCH_REPORT.md +0 -655
  357. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S4/research/vitest_testing_patterns.md +0 -1103
  358. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T3S2/PRP.md +0 -426
  359. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/PRP.md +0 -506
  360. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/QUICK_REFERENCE.md +0 -114
  361. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/RESEARCH_SUMMARY.md +0 -316
  362. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/vitest_observer_error_logging_best_practices.md +0 -754
  363. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S3/PRP.md +0 -612
  364. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/PRP.md +0 -719
  365. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/README.md +0 -215
  366. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/analysis.md +0 -765
  367. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S3/PRP.md +0 -718
  368. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/DECISION.md +0 -149
  369. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/PRP.md +0 -470
  370. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/ULTRATHINK_PLAN.md +0 -332
  371. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/codebase_workflow_name_analysis.md +0 -167
  372. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/external_best_practices.md +0 -265
  373. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/validation_patterns.md +0 -273
  374. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T4S1/workflow_engine_ancestry_api_research.md +0 -760
  375. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T4S3-PRP.md +0 -434
  376. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S1/PRP.md +0 -717
  377. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/PRP.md +0 -472
  378. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/VALIDATION_REPORT.md +0 -125
  379. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/research/ULTRATHINK_PRP_PLAN.md +0 -301
  380. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/error-logging-best-practices.md +0 -1170
  381. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/research_typescript_partial_and_overloads.md +0 -940
  382. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/vitest-quick-reference.md +0 -151
  383. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/vitest-research.md +0 -650
  384. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/prd_snapshot.md +0 -259
  385. package/plan/001_d3bb02af4886/bugfix/P1M1T1S1/PRP.md +0 -457
  386. package/plan/001_d3bb02af4886/bugfix/RESEARCH_SUMMARY.md +0 -346
  387. package/plan/001_d3bb02af4886/bugfix/architecture/codebase_structure.md +0 -311
  388. package/plan/001_d3bb02af4886/bugfix/architecture/concurrent_execution_best_practices.md +0 -1565
  389. package/plan/001_d3bb02af4886/bugfix/architecture/error_handling_patterns.md +0 -288
  390. package/plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md +0 -741
  391. package/plan/001_d3bb02af4886/docs/PRP/P1M1T1S4-functional-workflow-error-state-capture-test.md +0 -652
  392. package/plan/001_d3bb02af4886/docs/PRP/P1P2-PRP.md +0 -527
  393. package/plan/001_d3bb02af4886/docs/PRP/P3P4-PRP.md +0 -1388
  394. package/plan/001_d3bb02af4886/docs/PRP/P4P5-PRP.md +0 -1136
  395. package/plan/001_d3bb02af4886/docs/PRP/PRP.md +0 -527
  396. package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S1-PRP.md +0 -415
  397. package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S2-PRP.md +0 -378
  398. package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S4-PRP.md +0 -713
  399. package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M2T1S4-PRP.md +0 -370
  400. package/plan/001_d3bb02af4886/docs/PRP_P1M3T1S3.md +0 -499
  401. package/plan/001_d3bb02af4886/docs/TEST_RESULTS.md +0 -230
  402. package/plan/001_d3bb02af4886/docs/architecture/external_deps.md +0 -358
  403. package/plan/001_d3bb02af4886/docs/architecture/system_context.md +0 -242
  404. package/plan/001_d3bb02af4886/docs/bugfix/ANALYSIS_PRD_VS_IMPLEMENTATION.md +0 -1134
  405. package/plan/001_d3bb02af4886/docs/bugfix/GAP_ANALYSIS_SUMMARY.md +0 -179
  406. package/plan/001_d3bb02af4886/docs/bugfix/P1M4T2S1/PRP.md +0 -629
  407. package/plan/001_d3bb02af4886/docs/bugfix/P1M4T2S1/validation-report.md +0 -214
  408. package/plan/001_d3bb02af4886/docs/bugfix/PRP_P1M4T2S3.md +0 -629
  409. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_PRP.md +0 -529
  410. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_QUICK_REFERENCE.md +0 -142
  411. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_README.md +0 -304
  412. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_TEST_RESULTS.md +0 -558
  413. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_VALIDATION_SUMMARY.md +0 -256
  414. package/plan/001_d3bb02af4886/docs/bugfix/system_context.md +0 -346
  415. package/plan/001_d3bb02af4886/docs/bugfix-architecture/bug_analysis.md +0 -415
  416. package/plan/001_d3bb02af4886/docs/bugfix-architecture/implementation_patterns.md +0 -489
  417. package/plan/001_d3bb02af4886/docs/bugfix-architecture/system_context.md +0 -218
  418. package/plan/001_d3bb02af4886/docs/bugfix_INITIATION_SUMMARY.md +0 -380
  419. package/plan/001_d3bb02af4886/docs/research/CYCLE_DETECTION_PATTERNS.md +0 -1923
  420. package/plan/001_d3bb02af4886/docs/research/CYCLE_DETECTION_QUICK_REF.md +0 -319
  421. package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/codebase-context.md +0 -115
  422. package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/cycle-detection-algorithms.md +0 -134
  423. package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/test-patterns.md +0 -153
  424. package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/workflow-class.md +0 -132
  425. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/DECORATOR_DOCUMENTATION_BEST_PRACTICES.md +0 -716
  426. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/DECORATOR_DOCUMENTATION_QUICK_REF.md +0 -186
  427. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/GROUNDSWELL_DECORATOR_EXAMPLES.md +0 -604
  428. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/INDEX.md +0 -213
  429. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/codebase_structure.md +0 -30
  430. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/existing_test_pattern.md +0 -56
  431. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/getRootObservers_implementation.md +0 -53
  432. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/test_conventions.md +0 -49
  433. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/PRP.md +0 -958
  434. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/QUICK_REFERENCE.md +0 -339
  435. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/README.md +0 -305
  436. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/SUMMARY.md +0 -433
  437. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/bidirectional-tree-consistency-testing.md +0 -1574
  438. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/test-pattern-examples.md +0 -1014
  439. package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_BEST_PRACTICES.md +0 -1929
  440. package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_CODE_PATTERNS.md +0 -857
  441. package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_INTEGRATION_GUIDE.md +0 -738
  442. package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_RESEARCH_INDEX.md +0 -424
  443. package/plan/001_d3bb02af4886/docs/research/P1P2/REFLECTION_INDEX.md +0 -291
  444. package/plan/001_d3bb02af4886/docs/research/P1P2/REFLECTION_RESEARCH_REPORT.md +0 -1342
  445. package/plan/001_d3bb02af4886/docs/research/P1P2/RESEARCH_SUMMARY.md +0 -342
  446. package/plan/001_d3bb02af4886/docs/research/P1P2/anthropic-sdk.md +0 -174
  447. package/plan/001_d3bb02af4886/docs/research/P1P2/async-local-storage.md +0 -200
  448. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-code-patterns.md +0 -1205
  449. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-decision-matrix.md +0 -421
  450. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-implementation-guide.md +0 -1341
  451. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-integration-guide.md +0 -834
  452. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-patterns.md +0 -1468
  453. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-quick-reference.md +0 -558
  454. package/plan/001_d3bb02af4886/docs/research/P1P2/zod-schema.md +0 -152
  455. package/plan/001_d3bb02af4886/docs/research/P3P4/caching-lru.md +0 -116
  456. package/plan/001_d3bb02af4886/docs/research/P3P4/introspection-tools.md +0 -177
  457. package/plan/001_d3bb02af4886/docs/research/P3P4/reflection-patterns.md +0 -117
  458. package/plan/001_d3bb02af4886/docs/research/P4P5/RESEARCH_SUMMARY.md +0 -151
  459. package/plan/001_d3bb02af4886/docs/research/PROMISE_ALLSETTLED_QUICK_REF.md +0 -376
  460. package/plan/001_d3bb02af4886/docs/research/PROMISE_ALLSETTLED_RESEARCH.md +0 -1507
  461. package/plan/001_d3bb02af4886/docs/research/bugfix_typescript_patterns.md +0 -949
  462. package/plan/001_d3bb02af4886/docs/research/error-testing-research.md +0 -619
  463. package/plan/001_d3bb02af4886/docs/research/error_handling_patterns.md +0 -723
  464. package/plan/001_d3bb02af4886/docs/research/general/INTROSPECTION_RESEARCH_SUMMARY.md +0 -378
  465. package/plan/001_d3bb02af4886/docs/research/general/README-INTROSPECTION.md +0 -352
  466. package/plan/001_d3bb02af4886/docs/research/general/agent-introspection-patterns.md +0 -1085
  467. package/plan/001_d3bb02af4886/docs/research/general/introspection-security-guide.md +0 -984
  468. package/plan/001_d3bb02af4886/docs/research/general/introspection-tool-examples.md +0 -875
  469. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/PRP_TEMPLATE.md +0 -460
  470. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/QUICK_REFERENCE.md +0 -324
  471. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/README.md +0 -175
  472. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/RESEARCH_REPORT.md +0 -499
  473. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/SUMMARY.md +0 -163
  474. package/plan/001_d3bb02af4886/prd_snapshot.md +0 -543
  475. package/plan/bugfix/BUG_FIX_SUMMARY.md +0 -961
  476. package/scripts/generate-llms-full.ts +0 -206
  477. package/src/__tests__/adversarial/attachChild-performance.test.ts +0 -216
  478. package/src/__tests__/adversarial/circular-reference.test.ts +0 -101
  479. package/src/__tests__/adversarial/complex-circular-reference.test.ts +0 -139
  480. package/src/__tests__/adversarial/concurrent-task-failures.test.ts +0 -571
  481. package/src/__tests__/adversarial/deep-analysis.test.ts +0 -729
  482. package/src/__tests__/adversarial/deep-hierarchy-stress.test.ts +0 -213
  483. package/src/__tests__/adversarial/e2e-prd-validation.test.ts +0 -448
  484. package/src/__tests__/adversarial/edge-case.test.ts +0 -703
  485. package/src/__tests__/adversarial/error-merge-strategy.test.ts +0 -760
  486. package/src/__tests__/adversarial/incremental-performance.test.ts +0 -140
  487. package/src/__tests__/adversarial/node-map-update-benchmarks.test.ts +0 -457
  488. package/src/__tests__/adversarial/observer-propagation.test.ts +0 -487
  489. package/src/__tests__/adversarial/parent-validation.test.ts +0 -143
  490. package/src/__tests__/adversarial/prd-12-2-compliance.test.ts +0 -611
  491. package/src/__tests__/adversarial/prd-compliance.test.ts +0 -731
  492. package/src/__tests__/compatibility/backward-compatibility.test.ts +0 -1572
  493. package/src/__tests__/helpers/index.ts +0 -18
  494. package/src/__tests__/helpers/tree-verification.ts +0 -257
  495. package/src/__tests__/integration/agent-workflow.test.ts +0 -256
  496. package/src/__tests__/integration/bidirectional-consistency.test.ts +0 -847
  497. package/src/__tests__/integration/observer-logging.test.ts +0 -643
  498. package/src/__tests__/integration/tree-mirroring.test.ts +0 -151
  499. package/src/__tests__/integration/workflow-reparenting.test.ts +0 -303
  500. package/src/__tests__/unit/agent.test.ts +0 -169
  501. package/src/__tests__/unit/cache-key.test.ts +0 -182
  502. package/src/__tests__/unit/cache.test.ts +0 -172
  503. package/src/__tests__/unit/context.test.ts +0 -217
  504. package/src/__tests__/unit/decorators.test.ts +0 -100
  505. package/src/__tests__/unit/introspection-tools.test.ts +0 -277
  506. package/src/__tests__/unit/logger.test.ts +0 -293
  507. package/src/__tests__/unit/observable.test.ts +0 -321
  508. package/src/__tests__/unit/prompt.test.ts +0 -135
  509. package/src/__tests__/unit/reflection.test.ts +0 -210
  510. package/src/__tests__/unit/tree-debugger-incremental.test.ts +0 -170
  511. package/src/__tests__/unit/tree-debugger.test.ts +0 -85
  512. package/src/__tests__/unit/utils/workflow-error-utils.test.ts +0 -209
  513. package/src/__tests__/unit/workflow-detachChild.test.ts +0 -100
  514. package/src/__tests__/unit/workflow-emitEvent-childDetached.test.ts +0 -153
  515. package/src/__tests__/unit/workflow-isDescendantOf.test.ts +0 -180
  516. package/src/__tests__/unit/workflow.test.ts +0 -357
  517. package/src/cache/cache-key.ts +0 -244
  518. package/src/cache/cache.ts +0 -236
  519. package/src/core/agent.ts +0 -593
  520. package/src/core/event-tree.ts +0 -260
  521. package/src/core/logger.ts +0 -112
  522. package/src/core/mcp-handler.ts +0 -184
  523. package/src/core/prompt.ts +0 -150
  524. package/src/core/workflow-context.ts +0 -351
  525. package/src/core/workflow.ts +0 -540
  526. package/src/debugger/tree-debugger.ts +0 -255
  527. package/src/decorators/observed-state.ts +0 -95
  528. package/src/decorators/step.ts +0 -139
  529. package/src/decorators/task.ts +0 -159
  530. package/src/examples/tdd-orchestrator.ts +0 -65
  531. package/src/examples/test-cycle-workflow.ts +0 -64
  532. package/src/index.ts +0 -142
  533. package/src/reflection/reflection.ts +0 -407
  534. package/src/tools/index.ts +0 -36
  535. package/src/tools/introspection.ts +0 -464
  536. package/src/types/agent.ts +0 -90
  537. package/src/types/decorators.ts +0 -32
  538. package/src/types/error-strategy.ts +0 -13
  539. package/src/types/error.ts +0 -20
  540. package/src/types/events.ts +0 -75
  541. package/src/types/index.ts +0 -55
  542. package/src/types/logging.ts +0 -24
  543. package/src/types/observer.ts +0 -18
  544. package/src/types/prompt.ts +0 -40
  545. package/src/types/reflection.ts +0 -117
  546. package/src/types/sdk-primitives.ts +0 -128
  547. package/src/types/workflow-context.ts +0 -163
  548. package/src/types/workflow.ts +0 -37
  549. package/src/utils/id.ts +0 -11
  550. package/src/utils/index.ts +0 -4
  551. package/src/utils/observable.ts +0 -106
  552. package/src/utils/workflow-error-utils.ts +0 -56
  553. package/tsconfig.json +0 -22
  554. package/vitest.config.ts +0 -16
@@ -1,564 +0,0 @@
1
- # PRP: P1.M2.T2.S1 - Add errorMergeStrategy to TaskOptions Interface
2
-
3
- ---
4
-
5
- ## Goal
6
-
7
- **Feature Goal**: Extend the `TaskOptions` interface to include `errorMergeStrategy?: ErrorMergeStrategy` field, enabling configuration of concurrent error aggregation behavior in the @Task decorator.
8
-
9
- **Deliverable**: Modified `src/types/decorators.ts` with:
10
- 1. Import statement for `ErrorMergeStrategy` type
11
- 2. New optional `errorMergeStrategy` field added to `TaskOptions` interface
12
- 3. TypeScript compilation successful with no type errors
13
-
14
- **Success Definition**:
15
- - TypeScript compiler (`tsc --noEmit`) completes without errors
16
- - `TaskOptions` interface includes the new field with correct type annotation
17
- - Export of `TaskOptions` from `src/types/index.ts` continues to work
18
- - The field is properly optional (can be omitted when using @Task decorator)
19
-
20
- ---
21
-
22
- ## User Persona (if applicable)
23
-
24
- **Target User**: Library Developer / Architect
25
-
26
- **Use Case**: A developer implementing concurrent workflow tasks needs to configure how multiple errors from failed concurrent operations should be merged and propagated.
27
-
28
- **User Journey**:
29
- 1. Developer reads @Task decorator documentation
30
- 2. Developer discovers `errorMergeStrategy` option in TaskOptions
31
- 3. Developer passes `errorMergeStrategy` configuration to @Task decorator
32
- 4. Concurrent task failures are aggregated according to the specified strategy
33
-
34
- **Pain Points Addressed**:
35
- - Currently no way to configure error merging for concurrent tasks
36
- - ErrorMergeStrategy type exists but is completely unused (zero imports in codebase)
37
- - Developers cannot opt-in to multi-error aggregation behavior
38
-
39
- ---
40
-
41
- ## Why
42
-
43
- - **Architectural Foundation**: This change enables P1.M2.T2.S2 (implement error aggregation logic in @Task decorator). Without this field, there is no configuration hook to pass ErrorMergeStrategy into the decorator.
44
- - **PRD Compliance**: PRD Section 10 specifies "Optional Multi-Error Merging" as a feature. The type exists but has no implementation path.
45
- - **Backward Compatibility**: Adding an optional field maintains existing behavior (undefined = default behavior unchanged) while enabling future functionality.
46
- - **Dependency Chain**: This is the first subtask in P1.M2.T2, the parent task depends on this interface change being complete before error aggregation logic can be implemented.
47
-
48
- ---
49
-
50
- ## What
51
-
52
- Add `errorMergeStrategy?: ErrorMergeStrategy` field to the `TaskOptions` interface in `src/types/decorators.ts`.
53
-
54
- ### Current State
55
- ```typescript
56
- // src/types/decorators.ts
57
- export interface TaskOptions {
58
- /** Custom task name (defaults to method name) */
59
- name?: string;
60
- /** If true, run returned workflows concurrently */
61
- concurrent?: boolean;
62
- }
63
- ```
64
-
65
- ### Target State
66
- ```typescript
67
- // src/types/decorators.ts
68
- import type { ErrorMergeStrategy } from './error-strategy.js';
69
-
70
- export interface TaskOptions {
71
- /** Custom task name (defaults to method name) */
72
- name?: string;
73
- /** If true, run returned workflows concurrently */
74
- concurrent?: boolean;
75
- /** Strategy for merging errors from concurrent task execution */
76
- errorMergeStrategy?: ErrorMergeStrategy;
77
- }
78
- ```
79
-
80
- ### Success Criteria
81
-
82
- - [ ] `import type { ErrorMergeStrategy } from './error-strategy.js';` added at top of file
83
- - [ ] `errorMergeStrategy?: ErrorMergeStrategy;` field added to TaskOptions interface
84
- - [ ] Field placed after `concurrent` (maintains logical ordering)
85
- - [ ] JSDoc comment included: `/** Strategy for merging errors from concurrent task execution */`
86
- - [ ] TypeScript compilation succeeds: `npx tsc --noEmit`
87
- - [ ] No linting errors: `npm run lint` (if available)
88
- - [ ] Export verification: `TaskOptions` still exports correctly from `src/types/index.ts`
89
-
90
- ---
91
-
92
- ## All Needed Context
93
-
94
- ### Context Completeness Check
95
-
96
- **"No Prior Knowledge" Test**: If someone knew nothing about this codebase, would they have everything needed to implement this successfully?
97
-
98
- - [X] Exact file path and current content of target file (`src/types/decorators.ts`)
99
- - [X] Exact definition of type to import (`ErrorMergeStrategy` from `src/types/error-strategy.ts`)
100
- - [X] Import syntax pattern used in codebase (`import type` with `.js` extension)
101
- - [X] JSDoc comment formatting pattern from existing code
102
- - [X] Validation commands that work in this project
103
-
104
- ### Documentation & References
105
-
106
- ```yaml
107
- # MUST READ - Include these in your context window
108
-
109
- - file: src/types/decorators.ts
110
- why: Target file to modify - contains TaskOptions interface that needs the new field
111
- pattern: Interface definition with optional fields using `?` syntax, JSDoc comments above each field
112
- gotcha: File uses no imports currently - this will be the first import added
113
- current_content: |
114
- export interface StepOptions {
115
- name?: string;
116
- snapshotState?: boolean;
117
- trackTiming?: boolean;
118
- logStart?: boolean;
119
- logFinish?: boolean;
120
- }
121
-
122
- export interface TaskOptions {
123
- name?: string;
124
- concurrent?: boolean;
125
- }
126
-
127
- - file: src/types/error-strategy.ts
128
- why: Contains the ErrorMergeStrategy interface definition that needs to be imported
129
- pattern: Type-only import with `.js` extension (TypeScript module resolution)
130
- gotcha: The file itself imports WorkflowError from './error.js'
131
- current_content: |
132
- import type { WorkflowError } from './error.js';
133
-
134
- export interface ErrorMergeStrategy {
135
- /** Enable error merging (default: false, first error wins) */
136
- enabled: boolean;
137
- /** Maximum depth to merge errors */
138
- maxMergeDepth?: number;
139
- /** Custom function to combine multiple errors */
140
- combine?(errors: WorkflowError[]): WorkflowError;
141
- }
142
-
143
- - file: src/types/index.ts
144
- why: Central export barrel - verify TaskOptions export continues to work
145
- pattern: Re-exports using `export type { TaskOptions } from './decorators.js';`
146
- gotcha: This file already exports both StepOptions and TaskOptions from decorators.ts
147
-
148
- - docfile: plan/001_d3bb02af4886/bugfix/architecture/error_handling_patterns.md
149
- why: Architectural context explaining why ErrorMergeStrategy exists but isn't used
150
- section: Lines 101-105 ("Status: Defined But Unused"), Lines 163-168 ("Recommended Extension")
151
- critical: |
152
- - ErrorMergeStrategy is exported from src/index.ts
153
- - ZERO imports anywhere in implementation files
154
- - Only appears in type definitions and documentation
155
- - TaskOptions interface does not include errorMergeStrategy property
156
- - @Task decorator has no way to receive ErrorMergeStrategy configuration
157
-
158
- - url: https://www.typescriptlang.org/docs/handbook/2/objects.html#optional-properties
159
- why: TypeScript official documentation on optional properties syntax
160
- section: Optional Properties section
161
- critical: Use `propertyName?: Type` syntax for optional fields
162
-
163
- - url: https://www.typescriptlang.org/docs/handbook/modules.html#importing-types
164
- why: TypeScript official documentation on type-only imports
165
- section: Importing Types section
166
- critical: Use `import type { TypeName } from './module.js';` for type-only imports
167
-
168
- - file: src/types/workflow-context.ts
169
- why: Example of proper type import pattern in codebase
170
- pattern: Lines 8-9 show `import type { WorkflowNode } from './workflow.js';`
171
- gotcha: All type imports in this codebase use `.js` extension (TypeScript module resolution to .js files)
172
-
173
- - file: src/types/agent.ts
174
- why: Example of optional configuration interface pattern similar to TaskOptions
175
- pattern: AgentConfig interface shows multiple optional boolean and complex type fields
176
- gotcha: Optional fields for feature flags and configuration options follow consistent naming
177
- ```
178
-
179
- ### Current Codebase Tree
180
-
181
- ```bash
182
- /home/dustin/projects/groundswell
183
- ├── plan/
184
- │ └── 001_d3bb02af4886/
185
- │ └── bugfix/
186
- │ └── 001_e8e04329daf3/
187
- │ ├── architecture/
188
- │ │ └── error_handling_patterns.md # READ: Architectural context
189
- │ ├── P1M2T2S1/
190
- │ │ ├── research/ # External research storage
191
- │ │ └── PRP.md # ← CREATE THIS FILE
192
- │ └── docs/
193
- ├── src/
194
- │ ├── types/
195
- │ │ ├── decorators.ts # ← MODIFY: Add field here
196
- │ │ ├── error-strategy.ts # READ: ErrorMergeStrategy definition
197
- │ │ ├── error.ts # REFERENCE: WorkflowError type
198
- │ │ └── index.ts # VERIFY: Export still works
199
- │ ├── decorators/
200
- │ │ └── task.ts # FUTURE: Will use this field (P1.M2.T2.S2)
201
- └── tsconfig.json # REFERENCE: TypeScript config
202
- ```
203
-
204
- ### Desired Codebase Tree with Files to be Modified
205
-
206
- ```bash
207
- # No new files - modification only
208
- # Modified: src/types/decorators.ts
209
- # - Add: import type { ErrorMergeStrategy } from './error-strategy.js';
210
- # - Add: errorMergeStrategy?: ErrorMergeStrategy; field to TaskOptions interface
211
- ```
212
-
213
- ### Known Gotchas of Our Codebase & Library Quirks
214
-
215
- ```typescript
216
- // CRITICAL: TypeScript Module Resolution
217
- // This codebase uses .js extensions in import statements even though source files are .ts
218
- // This is because TypeScript compiles to .js and the import paths reflect the output structure
219
- // WRONG: import type { ErrorMergeStrategy } from './error-strategy';
220
- // CORRECT: import type { ErrorMergeStrategy } from './error-strategy.js';
221
-
222
- // CRITICAL: Type-Only Imports
223
- // This codebase consistently uses 'import type' for type imports, not regular imports
224
- // WRONG: import { ErrorMergeStrategy } from './error-strategy.js';
225
- // CORRECT: import type { ErrorMergeStrategy } from './error-strategy.js';
226
-
227
- // CRITICAL: No Interface Extension Pattern
228
- // This codebase does NOT use 'interface Child extends Parent'
229
- // Types remain independent and reference each other through imports
230
- // This avoids circular dependencies in complex type graphs
231
-
232
- // CRITICAL: JSDoc Comment Format
233
- // Each field in the interface has a JSDoc comment above it
234
- // Use /** ... */ syntax (not // comments)
235
- // Comment format: /** [Brief description of what the field does] */
236
-
237
- // CRITICAL: Optional Field Ordering
238
- // Existing TaskOptions fields: name, concurrent
239
- // Add new field after existing fields (maintains append pattern)
240
- // Keep related fields grouped (errorMergeStrategy relates to concurrent)
241
-
242
- // CRITICAL: This File Currently Has No Imports
243
- // src/types/decorators.ts is standalone - this will be its FIRST import
244
- // Verify the import is placed at the very top of the file, before any interface definitions
245
- ```
246
-
247
- ---
248
-
249
- ## Implementation Blueprint
250
-
251
- ### Data Models and Structure
252
-
253
- No new data models needed. Using existing types:
254
- - `ErrorMergeStrategy` from `src/types/error-strategy.ts` (already defined)
255
- - `TaskOptions` from `src/types/decorators.ts` (being extended)
256
-
257
- ### Implementation Tasks (ordered by dependencies)
258
-
259
- ```yaml
260
- Task 1: ADD import statement to src/types/decorators.ts
261
- - ADD: import type { ErrorMergeStrategy } from './error-strategy.js';
262
- - PLACEMENT: Top of file, before any interface definitions
263
- - PATTERN: Follow src/types/workflow-context.ts import pattern (lines 8-9)
264
- - SYNTAX: Use 'import type' for type-only import
265
- - EXTENSION: Must use '.js' extension (TypeScript module resolution)
266
- - DEPENDENCIES: None (first task)
267
-
268
- Task 2: MODIFY TaskOptions interface in src/types/decorators.ts
269
- - ADD: errorMergeStrategy?: ErrorMergeStrategy; field
270
- - PLACEMENT: After 'concurrent?: boolean;' field
271
- - JSDOC: /** Strategy for merging errors from concurrent task execution */
272
- - PATTERN: Follow existing field format (name + JSDoc above, same indentation)
273
- - TYPE: ErrorMergeStrategy (imported in Task 1)
274
- - OPTIONAL: Use '?' to make field optional (backward compatibility)
275
- - DEPENDENCIES: Task 1 must complete first
276
-
277
- Task 3: VERIFY TypeScript compilation
278
- - RUN: npx tsc --noEmit
279
- - EXPECTED: No errors, clean compilation
280
- - VERIFY: TaskOptions type includes new field
281
- - DEPENDENCIES: Task 1 and Task 2 complete
282
- ```
283
-
284
- ### Implementation Patterns & Key Details
285
-
286
- ```typescript
287
- // FILE: src/types/decorators.ts
288
- // This is the complete target file after modification
289
-
290
- // ============================================================================
291
- // IMPORTS (new - this file previously had no imports)
292
- // ============================================================================
293
- import type { ErrorMergeStrategy } from './error-strategy.js';
294
-
295
- // ============================================================================
296
- // STEP OPTIONS (unchanged - for reference)
297
- // ============================================================================
298
- /**
299
- * Configuration options for @Step decorator
300
- */
301
- export interface StepOptions {
302
- /** Custom step name (defaults to method name) */
303
- name?: string;
304
- /** If true, capture state snapshot after step completion */
305
- snapshotState?: boolean;
306
- /** Track and emit step duration (default: true) */
307
- trackTiming?: boolean;
308
- /** If true, log message at step start */
309
- logStart?: boolean;
310
- /** If true, log message at step end */
311
- logFinish?: boolean;
312
- }
313
-
314
- // ============================================================================
315
- // TASK OPTIONS (modified - new field added)
316
- // ============================================================================
317
- /**
318
- * Configuration options for @Task decorator
319
- *
320
- * @note The decorator uses lenient validation - non-Workflow returns are
321
- * silently skipped. See the @Task decorator JSDoc for details.
322
- */
323
- export interface TaskOptions {
324
- /** Custom task name (defaults to method name) */
325
- name?: string;
326
- /** If true, run returned workflows concurrently */
327
- concurrent?: boolean;
328
- /** Strategy for merging errors from concurrent task execution */
329
- errorMergeStrategy?: ErrorMergeStrategy;
330
- }
331
-
332
- // ============================================================================
333
- // PATTERN NOTES
334
- // ============================================================================
335
- // 1. Import is type-only: 'import type { ... }'
336
- // 2. Import uses .js extension: './error-strategy.js'
337
- // 3. Import is at top of file, before any code
338
- // 4. New field uses '?' for optional
339
- // 5. New field has JSDoc comment above (same format as other fields)
340
- // 6. New field placed after existing fields (append pattern)
341
- // 7. Indentation matches existing code (2 spaces)
342
- ```
343
-
344
- ### Integration Points
345
-
346
- ```yaml
347
- TYPE_SYSTEM:
348
- - verify: "TaskOptions export from src/types/index.ts still works"
349
- - verify: "TypeScript compiler recognizes the new field"
350
- - verify: "Type inference works when using @Task decorator with new option"
351
-
352
- FUTURE_INTEGRATION:
353
- - reference: "src/decorators/task.ts will read this field in P1.M2.T2.S2"
354
- - reference: "ErrorMergeStrategy.combine() will be called during error aggregation"
355
- - reference: "Promise.allSettled implementation will check this field (P1.M2.T1.S2)"
356
- ```
357
-
358
- ---
359
-
360
- ## Validation Loop
361
-
362
- ### Level 1: Syntax & Style (Immediate Feedback)
363
-
364
- ```bash
365
- # Run after file modification - fix before proceeding
366
-
367
- # TypeScript type checking
368
- npx tsc --noEmit
369
-
370
- # Expected: Zero errors. Output should be silent with exit code 0.
371
-
372
- # If you see errors like:
373
- # - "Cannot find module './error-strategy.js'" → Check the import path and .js extension
374
- # - "Duplicate identifier" → Check for accidental duplicate field or interface declaration
375
- # - "Property 'errorMergeStrategy' does not exist" → Check field name and type spelling
376
-
377
- # Linting (if project has linting configured)
378
- npm run lint 2>/dev/null || npx eslint src/types/decorators.ts 2>/dev/null || echo "No linter configured"
379
-
380
- # Expected: Zero linting errors. If ESLint is configured, it should pass.
381
- ```
382
-
383
- ### Level 2: Unit Tests (Component Validation)
384
-
385
- ```bash
386
- # Verify TaskOptions type exports correctly
387
- node -e "
388
- const ts = require('typescript');
389
- const program = ts.createProgram('./src/types/decorators.ts', { module: ts.ModuleKind.ESNext });
390
- const source = program.getSourceFile('./src/types/decorators.ts');
391
- console.log('File parsed successfully');
392
- console.log('Exports:', source.statements.filter(s => s.modifiers?.some(m => m.kind === 83)).map(s => s.name.text));
393
- " 2>/dev/null || echo "TypeScript API test skipped"
394
-
395
- # Manual type verification using TypeScript compiler API
396
- cat > /tmp/test-taskoptions-type.ts << 'EOF'
397
- import type { TaskOptions } from './src/types/decorators.js';
398
- import type { ErrorMergeStrategy } from './src/types/error-strategy.js';
399
-
400
- // This should compile without errors
401
- const options1: TaskOptions = {};
402
- const options2: TaskOptions = { name: 'myTask' };
403
- const options3: TaskOptions = { concurrent: true };
404
- const options4: TaskOptions = { errorMergeStrategy: { enabled: true } };
405
- const options5: TaskOptions = {
406
- name: 'myTask',
407
- concurrent: true,
408
- errorMergeStrategy: {
409
- enabled: true,
410
- maxMergeDepth: 5,
411
- combine: (errors) => errors[0]
412
- }
413
- };
414
-
415
- // This should fail type checking (uncomment to verify error handling)
416
- // const invalid: TaskOptions = { errorMergeStrategy: 'not an object' };
417
-
418
- console.log('All type checks passed!');
419
- EOF
420
-
421
- npx tsc --noEmit /tmp/test-taskoptions-type.ts
422
-
423
- # Expected: Zero errors. All test cases should compile successfully.
424
- ```
425
-
426
- ### Level 3: Integration Testing (System Validation)
427
-
428
- ```bash
429
- # Verify export chain from src/types/index.ts
430
- cat > /tmp/test-export.ts << 'EOF'
431
- // Test that TaskOptions still exports correctly
432
- import type { TaskOptions } from './src/types/index.js';
433
-
434
- const test: TaskOptions = {
435
- concurrent: true,
436
- errorMergeStrategy: { enabled: true }
437
- };
438
-
439
- console.log('TaskOptions export verified:', test);
440
- EOF
441
-
442
- npx tsc --noEmit /tmp/test-export.ts
443
-
444
- # Expected: Zero errors. Export chain should work.
445
-
446
- # Verify no breaking changes to existing code
447
- # (This ensures backward compatibility - existing @Task usage still works)
448
- grep -r "@Task" src/ --include="*.ts" | grep -v "node_modules" | head -5
449
-
450
- # Expected: Existing @Task decorator usage should still be valid.
451
- # The new field is optional, so all existing usage is unaffected.
452
- ```
453
-
454
- ### Level 4: Domain-Specific Validation
455
-
456
- ```bash
457
- # Type shape verification - ensure ErrorMergeStrategy type is correctly imported
458
- cat > /tmp/test-type-shape.ts << 'EOF'
459
- import type { TaskOptions } from './src/types/decorators.js';
460
- import type { ErrorMergeStrategy } from './src/types/error-strategy.js';
461
-
462
- // Verify the type shape matches expectations
463
- const testStrategy: ErrorMergeStrategy = {
464
- enabled: true,
465
- maxMergeDepth: 10,
466
- combine: (errors) => errors[0]
467
- };
468
-
469
- const testOptions: TaskOptions = {
470
- errorMergeStrategy: testStrategy
471
- };
472
-
473
- // Type-level test: ensure the field is actually optional
474
- const optionalTest: TaskOptions = {}; // Should work - all fields optional
475
-
476
- console.log('Type shape verification passed');
477
- EOF
478
-
479
- npx tsc --noEmit /tmp/test-type-shape.ts
480
-
481
- # Expected: Zero errors. Type shape should match ErrorMergeStrategy interface.
482
-
483
- # Verify module resolution (the .js extension in imports)
484
- node -e "console.log('Module resolution test: OK')" 2>/dev/null
485
-
486
- # Check for any circular dependency issues
487
- npx tsc --noEmit --listFiles /tmp/test-type-shape.ts 2>&1 | grep -i "circular\|cycle" || echo "No circular dependencies detected"
488
-
489
- # Expected: No circular dependency warnings.
490
- ```
491
-
492
- ---
493
-
494
- ## Final Validation Checklist
495
-
496
- ### Technical Validation
497
-
498
- - [ ] TypeScript compilation succeeds: `npx tsc --noEmit` (zero errors)
499
- - [ ] Import statement uses `import type` syntax (not regular import)
500
- - [ ] Import statement uses `.js` extension (not `.ts`)
501
- - [ ] Field is optional (`errorMergeStrategy?: ErrorMergeStrategy`)
502
- - [ ] Field type is `ErrorMergeStrategy` (exact interface name)
503
- - [ ] JSDoc comment included above the field
504
- - [ ] Export from `src/types/index.ts` still works
505
- - [ ] No circular dependencies introduced
506
-
507
- ### Feature Validation
508
-
509
- - [ ] `TaskOptions` interface has exactly 3 fields: name, concurrent, errorMergeStrategy
510
- - [ ] Field ordering is logical (errorMergeStrategy after concurrent)
511
- - [ ] All existing @Task decorator usage still compiles (backward compatibility)
512
- - [ ] New field can be used with ErrorMergeStrategy objects
513
- - [ ] Type inference works correctly when field is provided
514
-
515
- ### Code Quality Validation
516
-
517
- - [ ] Follows existing codebase patterns (JSDoc format, indentation, naming)
518
- - [ ] File placement unchanged (still in src/types/decorators.ts)
519
- - [ ] No additional changes beyond the specified field and import
520
- - [ ] No anti-patterns introduced (no interface extension, no circular deps)
521
-
522
- ### Documentation & Deployment
523
-
524
- - [ ] PRP is self-documenting with clear step-by-step instructions
525
- - [ ] All file references include exact paths
526
- - [ ] All gotchas are documented for future reference
527
- - [ ] Validation commands are project-specific and executable
528
-
529
- ---
530
-
531
- ## Anti-Patterns to Avoid
532
-
533
- - ❌ **Don't use regular import**: Use `import type { ErrorMergeStrategy }` not `import { ErrorMergeStrategy }`
534
- - ❌ **Don't use .ts extension**: Use `./error-strategy.js` not `./error-strategy.ts` in imports
535
- - ❌ **Don't make field required**: Use `errorMergeStrategy?:` not `errorMergeStrategy:` (must be optional for backward compatibility)
536
- - ❌ **Don't skip JSDoc**: Add comment above the field like other fields have
537
- - ❌ **Don't use interface extension**: Don't do `interface ExtendedTaskOptions extends TaskOptions` - modify TaskOptions directly
538
- - ❌ **Don't place import in middle of file**: Import must be at top of file, before interface definitions
539
- - ❌ **Don't change existing fields**: Only add the new field, don't modify name or concurrent fields
540
- - ❌ **Don't forget .js extension**: TypeScript module resolution requires .js in source imports
541
-
542
- ---
543
-
544
- ## Success Metrics
545
-
546
- **Confidence Score**: 10/10
547
-
548
- **Validation Rationale**:
549
- 1. **Single File Modification**: Only one file needs changes (`src/types/decorators.ts`)
550
- 2. **Simple Change**: Add import + add field (2 lines of code)
551
- 3. **Clear Type Definition**: ErrorMergeStrategy is already well-defined
552
- 4. **No Runtime Impact**: This is a type-only change, no runtime behavior changes
553
- 5. **Backward Compatible**: Optional field means all existing code continues to work
554
- 6. **Well-Researched**: All patterns and gotchas documented from codebase analysis
555
- 7. **Clear Validation**: TypeScript compiler provides immediate feedback
556
-
557
- **One-Pass Implementation Success Factors**:
558
- - Exact file path and current content provided
559
- - Exact type definition to import provided
560
- - Import syntax pattern documented with examples
561
- - JSDoc format pattern documented
562
- - Validation commands that work in this project
563
- - All gotchas documented (module resolution, type-only imports, no extension pattern)
564
- - Success criteria is specific and measurable