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,492 +0,0 @@
1
- {
2
- "backlog": [
3
- {
4
- "type": "Phase",
5
- "id": "P1",
6
- "title": "MVP - Hierarchical Workflow Engine",
7
- "status": "Complete",
8
- "description": "Implement the core hierarchical workflow orchestration engine with full observability, tree debugging, and error introspection capabilities.",
9
- "milestones": [
10
- {
11
- "type": "Milestone",
12
- "id": "P1.M1",
13
- "title": "Core Data Model & Type System",
14
- "status": "Complete",
15
- "description": "Establish all TypeScript interfaces, types, and foundational data structures for the workflow engine.",
16
- "tasks": [
17
- {
18
- "type": "Task",
19
- "id": "P1.M1.T1",
20
- "title": "Define Core Interfaces",
21
- "status": "Complete",
22
- "description": "Implement all TypeScript interfaces from PRD sections 3-6.",
23
- "subtasks": [
24
- {
25
- "type": "Subtask",
26
- "id": "P1.M1.T1.S1",
27
- "title": "Implement WorkflowStatus and WorkflowNode interfaces",
28
- "status": "Complete",
29
- "story_points": 1,
30
- "dependencies": [],
31
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: None. This is the foundational type layer.\n2. LOGIC: Create file `src/types/workflow.ts`. Implement `WorkflowStatus` type as union of 'idle' | 'running' | 'completed' | 'failed' | 'cancelled'. Implement `WorkflowNode` interface with fields: id (string), name (string), parent (WorkflowNode | null), children (WorkflowNode[]), status (WorkflowStatus), logs (LogEntry[]), events (WorkflowEvent[]), stateSnapshot (SerializedWorkflowState | null). Use forward declaration for LogEntry, WorkflowEvent, SerializedWorkflowState.\n3. OUTPUT: Export `WorkflowStatus`, `WorkflowNode` from `src/types/workflow.ts`. These will be consumed by P1.M1.T1.S2 and P1.M1.T2.S1."
32
- },
33
- {
34
- "type": "Subtask",
35
- "id": "P1.M1.T1.S2",
36
- "title": "Implement LogEntry and LogLevel interfaces",
37
- "status": "Complete",
38
- "story_points": 1,
39
- "dependencies": [
40
- "P1.M1.T1.S1"
41
- ],
42
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `WorkflowNode` from `src/types/workflow.ts` (from P1.M1.T1.S1).\n2. LOGIC: Create file `src/types/logging.ts`. Implement `LogLevel` as union type 'debug' | 'info' | 'warn' | 'error'. Implement `LogEntry` interface with: id (string), workflowId (string), timestamp (number), level (LogLevel), message (string), data (unknown, optional), parentLogId (string, optional).\n3. OUTPUT: Export `LogLevel`, `LogEntry` from `src/types/logging.ts`. Update `src/types/workflow.ts` to import and use `LogEntry`. Consumed by P1.M1.T1.S3 and P1.M2.T1."
43
- },
44
- {
45
- "type": "Subtask",
46
- "id": "P1.M1.T1.S3",
47
- "title": "Implement WorkflowEvent union type",
48
- "status": "Complete",
49
- "story_points": 1,
50
- "dependencies": [
51
- "P1.M1.T1.S1",
52
- "P1.M1.T1.S2"
53
- ],
54
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `WorkflowNode` from `src/types/workflow.ts`, import `WorkflowError` (forward declare if needed).\n2. LOGIC: Create file `src/types/events.ts`. Implement `WorkflowEvent` as discriminated union with types: 'childAttached' (parentId: string, child: WorkflowNode), 'stateSnapshot' (node: WorkflowNode), 'stepStart' (node: WorkflowNode, step: string), 'stepEnd' (node: WorkflowNode, step: string, duration: number), 'error' (node: WorkflowNode, error: WorkflowError), 'taskStart' (node: WorkflowNode, task: string), 'taskEnd' (node: WorkflowNode, task: string), 'treeUpdated' (root: WorkflowNode).\n3. OUTPUT: Export `WorkflowEvent` from `src/types/events.ts`. Update `src/types/workflow.ts` to use this type. Consumed by P1.M1.T2.S1, P1.M3.T1."
55
- },
56
- {
57
- "type": "Subtask",
58
- "id": "P1.M1.T1.S4",
59
- "title": "Implement WorkflowError interface",
60
- "status": "Complete",
61
- "story_points": 1,
62
- "dependencies": [
63
- "P1.M1.T1.S2"
64
- ],
65
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `LogEntry` from `src/types/logging.ts`, import `SerializedWorkflowState` (forward declare or from snapshot types).\n2. LOGIC: Create file `src/types/error.ts`. Implement `WorkflowError` interface with: message (string), original (unknown), workflowId (string), stack (string, optional), state (SerializedWorkflowState), logs (LogEntry[]).\n3. OUTPUT: Export `WorkflowError` from `src/types/error.ts`. Consumed by P1.M1.T1.S3, P1.M3.T2."
66
- },
67
- {
68
- "type": "Subtask",
69
- "id": "P1.M1.T1.S5",
70
- "title": "Implement Snapshot types and StateFieldMetadata",
71
- "status": "Complete",
72
- "story_points": 1,
73
- "dependencies": [],
74
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: None. Independent type definitions.\n2. LOGIC: Create file `src/types/snapshot.ts`. Implement `SerializedWorkflowState` as `Record<string, unknown>`. Implement `StateFieldMetadata` interface with: hidden (boolean, optional), redact (boolean, optional).\n3. OUTPUT: Export `SerializedWorkflowState`, `StateFieldMetadata` from `src/types/snapshot.ts`. Consumed by P1.M1.T1.S1, P1.M1.T1.S4, P1.M3.T3."
75
- },
76
- {
77
- "type": "Subtask",
78
- "id": "P1.M1.T1.S6",
79
- "title": "Create barrel export and type index",
80
- "status": "Complete",
81
- "story_points": 0.5,
82
- "dependencies": [
83
- "P1.M1.T1.S1",
84
- "P1.M1.T1.S2",
85
- "P1.M1.T1.S3",
86
- "P1.M1.T1.S4",
87
- "P1.M1.T1.S5"
88
- ],
89
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: All type files from P1.M1.T1.S1-S5: `src/types/workflow.ts`, `src/types/logging.ts`, `src/types/events.ts`, `src/types/error.ts`, `src/types/snapshot.ts`.\n2. LOGIC: Create file `src/types/index.ts`. Re-export all types from each file. Ensure no circular dependencies. Create file `src/index.ts` as main entry point exporting from `src/types/index.ts`.\n3. OUTPUT: Export barrel at `src/types/index.ts` and `src/index.ts`. All consumers import from these entry points."
90
- }
91
- ]
92
- },
93
- {
94
- "type": "Task",
95
- "id": "P1.M1.T2",
96
- "title": "Define Observer Interface",
97
- "status": "Complete",
98
- "description": "Implement the WorkflowObserver interface for event subscription.",
99
- "subtasks": [
100
- {
101
- "type": "Subtask",
102
- "id": "P1.M1.T2.S1",
103
- "title": "Implement WorkflowObserver interface",
104
- "status": "Complete",
105
- "story_points": 1,
106
- "dependencies": [
107
- "P1.M1.T1.S3"
108
- ],
109
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `LogEntry` from `src/types/logging.ts`, `WorkflowEvent` from `src/types/events.ts`, `WorkflowNode` from `src/types/workflow.ts`.\n2. LOGIC: Create file `src/types/observer.ts`. Implement `WorkflowObserver` interface with methods: onLog(entry: LogEntry): void, onEvent(event: WorkflowEvent): void, onStateUpdated(node: WorkflowNode): void, onTreeChanged(root: WorkflowNode): void.\n3. OUTPUT: Export `WorkflowObserver` from `src/types/observer.ts`. Update `src/types/index.ts` to include this export. Consumed by P1.M2.T1, P1.M2.T2."
110
- }
111
- ]
112
- },
113
- {
114
- "type": "Task",
115
- "id": "P1.M1.T3",
116
- "title": "Define Decorator Option Interfaces",
117
- "status": "Complete",
118
- "description": "Implement configuration interfaces for decorators.",
119
- "subtasks": [
120
- {
121
- "type": "Subtask",
122
- "id": "P1.M1.T3.S1",
123
- "title": "Implement StepOptions and TaskOptions interfaces",
124
- "status": "Complete",
125
- "story_points": 1,
126
- "dependencies": [
127
- "P1.M1.T1.S6"
128
- ],
129
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: None. These are standalone configuration types.\n2. LOGIC: Create file `src/types/decorators.ts`. Implement `StepOptions` interface with: name (string, optional), snapshotState (boolean, optional), trackTiming (boolean, optional), logStart (boolean, optional), logFinish (boolean, optional). Implement `TaskOptions` interface with: name (string, optional), concurrent (boolean, optional).\n3. OUTPUT: Export `StepOptions`, `TaskOptions` from `src/types/decorators.ts`. Update `src/types/index.ts`. Consumed by P1.M3.T1, P1.M3.T2."
130
- },
131
- {
132
- "type": "Subtask",
133
- "id": "P1.M1.T3.S2",
134
- "title": "Implement ErrorMergeStrategy interface",
135
- "status": "Complete",
136
- "story_points": 1,
137
- "dependencies": [
138
- "P1.M1.T1.S4"
139
- ],
140
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `WorkflowError` from `src/types/error.ts`.\n2. LOGIC: Create file `src/types/error-strategy.ts`. Implement `ErrorMergeStrategy` interface with: enabled (boolean), maxMergeDepth (number, optional), combine (function (errors: WorkflowError[]) => WorkflowError, optional).\n3. OUTPUT: Export `ErrorMergeStrategy` from `src/types/error-strategy.ts`. Update `src/types/index.ts`. Consumed by P1.M3.T2 for advanced error handling."
141
- }
142
- ]
143
- }
144
- ]
145
- },
146
- {
147
- "type": "Milestone",
148
- "id": "P1.M2",
149
- "title": "Core Runtime Components",
150
- "status": "Complete",
151
- "description": "Implement the WorkflowLogger, Workflow base class, and core runtime utilities.",
152
- "tasks": [
153
- {
154
- "type": "Task",
155
- "id": "P1.M2.T1",
156
- "title": "Implement WorkflowLogger",
157
- "status": "Complete",
158
- "description": "Build the hierarchical logging system that emits to observers.",
159
- "subtasks": [
160
- {
161
- "type": "Subtask",
162
- "id": "P1.M2.T1.S1",
163
- "title": "Implement ID generation utility",
164
- "status": "Complete",
165
- "story_points": 0.5,
166
- "dependencies": [],
167
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: None.\n2. LOGIC: Create file `src/utils/id.ts`. Implement `generateId(): string` function that generates unique identifiers. Use crypto.randomUUID() if available, otherwise implement a fallback using timestamp + random suffix pattern.\n3. OUTPUT: Export `generateId` from `src/utils/id.ts`. Create `src/utils/index.ts` barrel. Consumed by P1.M2.T1.S2, P1.M2.T2.S1."
168
- },
169
- {
170
- "type": "Subtask",
171
- "id": "P1.M2.T1.S2",
172
- "title": "Implement WorkflowLogger class core",
173
- "status": "Complete",
174
- "story_points": 2,
175
- "dependencies": [
176
- "P1.M1.T1.S6",
177
- "P1.M1.T2.S1",
178
- "P1.M2.T1.S1"
179
- ],
180
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `WorkflowNode`, `LogEntry`, `LogLevel` from `src/types/index.ts`. Import `WorkflowObserver` from `src/types/observer.ts`. Import `generateId` from `src/utils/id.ts`.\n2. LOGIC: Create file `src/core/logger.ts`. Implement `WorkflowLogger` class with: constructor(node: WorkflowNode, observers: WorkflowObserver[]). Private `emit(entry: LogEntry)` method that pushes to node.logs and calls obs.onLog for each observer. Implement debug/info/warn/error methods that create LogEntry with: id (generateId()), workflowId (this.node.id), timestamp (Date.now()), level, message, data.\n3. OUTPUT: Export `WorkflowLogger` from `src/core/logger.ts`. Consumed by P1.M2.T1.S3, P1.M2.T2.S1."
181
- },
182
- {
183
- "type": "Subtask",
184
- "id": "P1.M2.T1.S3",
185
- "title": "Implement WorkflowLogger child logger support",
186
- "status": "Complete",
187
- "story_points": 1,
188
- "dependencies": [
189
- "P1.M2.T1.S2"
190
- ],
191
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: `WorkflowLogger` class from `src/core/logger.ts` (P1.M2.T1.S2).\n2. LOGIC: Extend `WorkflowLogger` with `child(meta: Partial<LogEntry>): WorkflowLogger` method. Child logger inherits node and observers but prepends parentLogId to all emitted entries. Store meta.id as parentLogId for child entries. Ensure child logs link to parent logs via parentLogId field.\n3. OUTPUT: Updated `WorkflowLogger` with child() method. Consumed by P1.M2.T2 for hierarchical logging."
192
- }
193
- ]
194
- },
195
- {
196
- "type": "Task",
197
- "id": "P1.M2.T2",
198
- "title": "Implement Workflow Base Class",
199
- "status": "Complete",
200
- "description": "Build the abstract Workflow base class with parent/child management and event emission.",
201
- "subtasks": [
202
- {
203
- "type": "Subtask",
204
- "id": "P1.M2.T2.S1",
205
- "title": "Implement Workflow class constructor and node initialization",
206
- "status": "Complete",
207
- "story_points": 2,
208
- "dependencies": [
209
- "P1.M2.T1.S2"
210
- ],
211
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import all types from `src/types/index.ts`. Import `WorkflowLogger` from `src/core/logger.ts`. Import `generateId` from `src/utils/id.ts`.\n2. LOGIC: Create file `src/core/workflow.ts`. Implement abstract class `Workflow` with: public readonly id (string), public parent (Workflow | null = null), public children (Workflow[] = []), public status (WorkflowStatus = 'idle'), protected readonly logger (WorkflowLogger), protected readonly node (WorkflowNode). Constructor signature: constructor(name?: string, parent?: Workflow). Initialize id via generateId(). Create node object with all required fields. Initialize logger with node and getRootObservers(). If parent provided, call parent.attachChild(this).\n3. OUTPUT: Export `Workflow` from `src/core/workflow.ts`. Consumed by P1.M2.T2.S2, P1.M3.T1."
212
- },
213
- {
214
- "type": "Subtask",
215
- "id": "P1.M2.T2.S2",
216
- "title": "Implement Workflow observer and child management",
217
- "status": "Complete",
218
- "story_points": 2,
219
- "dependencies": [
220
- "P1.M2.T2.S1"
221
- ],
222
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: `Workflow` class from `src/core/workflow.ts` (P1.M2.T2.S1).\n2. LOGIC: Add to `Workflow` class: private observers array (WorkflowObserver[]) at root level only. Implement `getRootObservers(): WorkflowObserver[]` that traverses up to root and returns root's observers. Implement `attachChild(child: Workflow)` that pushes child to this.children, pushes child.node to this.node.children, and emits 'childAttached' event. Implement `addObserver(observer: WorkflowObserver)` on root workflow only.\n3. OUTPUT: Updated `Workflow` class with observer management. Consumed by P1.M2.T2.S3."
223
- },
224
- {
225
- "type": "Subtask",
226
- "id": "P1.M2.T2.S3",
227
- "title": "Implement Workflow event emission and state snapshot",
228
- "status": "Complete",
229
- "story_points": 2,
230
- "dependencies": [
231
- "P1.M2.T2.S2",
232
- "P1.M3.T3.S1"
233
- ],
234
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: `Workflow` class from P1.M2.T2.S2. Import `getObservedState` from `src/decorators/observed-state.ts` (P1.M3.T3.S1).\n2. LOGIC: Add to `Workflow` class: protected `emitEvent(event: WorkflowEvent)` that pushes event to node.events and notifies all root observers via onEvent(). If event type is 'treeUpdated', also call onTreeChanged(). Implement `snapshotState()` that calls getObservedState(this), stores in node.stateSnapshot, and notifies observers via onStateUpdated(). Add abstract method signature: abstract run(...args: any[]): Promise<any>.\n3. OUTPUT: Complete `Workflow` base class. Export from `src/core/workflow.ts` and `src/core/index.ts` barrel. Consumed by P1.M3.T1, P1.M3.T2."
235
- }
236
- ]
237
- }
238
- ]
239
- },
240
- {
241
- "type": "Milestone",
242
- "id": "P1.M3",
243
- "title": "Decorator System",
244
- "status": "Complete",
245
- "description": "Implement @Step, @Task, and @ObservedState decorators with full functionality.",
246
- "tasks": [
247
- {
248
- "type": "Task",
249
- "id": "P1.M3.T1",
250
- "title": "Implement @Step Decorator",
251
- "status": "Complete",
252
- "description": "Build the Step decorator with timing, logging, snapshot, and error wrapping.",
253
- "subtasks": [
254
- {
255
- "type": "Subtask",
256
- "id": "P1.M3.T1.S1",
257
- "title": "Implement @Step decorator core functionality",
258
- "status": "Complete",
259
- "story_points": 2,
260
- "dependencies": [
261
- "P1.M2.T2.S3",
262
- "P1.M1.T3.S1"
263
- ],
264
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `StepOptions` from `src/types/decorators.ts`. Import `Workflow` from `src/core/workflow.ts`. Import `WorkflowError` from `src/types/error.ts`. Import `getObservedState` from `src/decorators/observed-state.ts`.\n2. LOGIC: Create file `src/decorators/step.ts`. Implement `Step(opts: StepOptions = {}): MethodDecorator`. Return decorator that wraps original method. Extract workflow instance as `this`. Determine stepName from opts.name or property key. If opts.logStart, call wf.logger.info('STEP START: ...'). Emit 'stepStart' event. Execute original method. On success: if opts.snapshotState call wf.snapshotState(). If opts.trackTiming, emit 'stepEnd' with duration. If opts.logFinish, log end. Return result.\n3. OUTPUT: Export `Step` from `src/decorators/step.ts`. Consumed by P1.M3.T1.S2."
265
- },
266
- {
267
- "type": "Subtask",
268
- "id": "P1.M3.T1.S2",
269
- "title": "Implement @Step error wrapping into WorkflowError",
270
- "status": "Complete",
271
- "story_points": 1,
272
- "dependencies": [
273
- "P1.M3.T1.S1",
274
- "P1.M3.T3.S1"
275
- ],
276
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: `Step` decorator from P1.M3.T1.S1. Import `getObservedState` from `src/decorators/observed-state.ts`.\n2. LOGIC: Extend `Step` decorator's catch block. Create `WorkflowError` object with: message (err?.message ?? 'error'), original (err), workflowId (wf.id), stack (err?.stack), state (getObservedState(wf)), logs ([...wf.node.logs]). Emit 'error' event with this WorkflowError. Re-throw the WorkflowError (not original error).\n3. OUTPUT: Complete `Step` decorator with error handling. Export from `src/decorators/step.ts`. Update `src/decorators/index.ts` barrel. Consumed by user workflow implementations."
277
- }
278
- ]
279
- },
280
- {
281
- "type": "Task",
282
- "id": "P1.M3.T2",
283
- "title": "Implement @Task Decorator",
284
- "status": "Complete",
285
- "description": "Build the Task decorator for child workflow attachment and concurrency.",
286
- "subtasks": [
287
- {
288
- "type": "Subtask",
289
- "id": "P1.M3.T2.S1",
290
- "title": "Implement @Task decorator with child attachment",
291
- "status": "Complete",
292
- "story_points": 2,
293
- "dependencies": [
294
- "P1.M2.T2.S3",
295
- "P1.M1.T3.S1"
296
- ],
297
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `TaskOptions` from `src/types/decorators.ts`. Import `Workflow` from `src/core/workflow.ts`.\n2. LOGIC: Create file `src/decorators/task.ts`. Implement `Task(opts: TaskOptions = {}): MethodDecorator`. Return decorator that wraps original method. Extract workflow as `this`. Determine taskName from opts.name or property key. Emit 'taskStart' event. Execute original method. Validate result is Workflow or Workflow[]. Normalize to array. For each child: set child.parent = wf, call wf.attachChild(child). Emit 'taskEnd' event. Return result.\n3. OUTPUT: Export `Task` from `src/decorators/task.ts`. Consumed by P1.M3.T2.S2."
298
- },
299
- {
300
- "type": "Subtask",
301
- "id": "P1.M3.T2.S2",
302
- "title": "Implement @Task concurrent execution support",
303
- "status": "Complete",
304
- "story_points": 1,
305
- "dependencies": [
306
- "P1.M3.T2.S1"
307
- ],
308
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: `Task` decorator from P1.M3.T2.S1.\n2. LOGIC: Extend `Task` decorator. If opts.concurrent is true and result is array of Workflows, use Promise.all to run all child workflows concurrently via child.run(). If opts.concurrent is false or not specified, run sequentially. Store execution promises and handle errors appropriately.\n3. OUTPUT: Complete `Task` decorator with concurrency. Export from `src/decorators/task.ts`. Update `src/decorators/index.ts`. Consumed by user workflow implementations."
309
- }
310
- ]
311
- },
312
- {
313
- "type": "Task",
314
- "id": "P1.M3.T3",
315
- "title": "Implement @ObservedState Decorator",
316
- "status": "Complete",
317
- "description": "Build the property decorator for state snapshot tracking.",
318
- "subtasks": [
319
- {
320
- "type": "Subtask",
321
- "id": "P1.M3.T3.S1",
322
- "title": "Implement @ObservedState decorator and getObservedState utility",
323
- "status": "Complete",
324
- "story_points": 2,
325
- "dependencies": [
326
- "P1.M1.T1.S5"
327
- ],
328
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `StateFieldMetadata`, `SerializedWorkflowState` from `src/types/snapshot.ts`.\n2. LOGIC: Create file `src/decorators/observed-state.ts`. Create module-level WeakMap: `OBSERVED_STATE_FIELDS = new WeakMap<object, Map<string, StateFieldMetadata>>()`. Implement `ObservedState(meta: StateFieldMetadata = {}): PropertyDecorator` that stores metadata in WeakMap keyed by target prototype and property name. Implement `getObservedState(obj: any): SerializedWorkflowState` that retrieves metadata map, iterates over fields, applies redact (replace value with '***') and hidden (skip field) logic, returns state object.\n3. OUTPUT: Export `ObservedState`, `getObservedState` from `src/decorators/observed-state.ts`. Create `src/decorators/index.ts` barrel. Consumed by P1.M2.T2.S3, P1.M3.T1.S2."
329
- }
330
- ]
331
- }
332
- ]
333
- },
334
- {
335
- "type": "Milestone",
336
- "id": "P1.M4",
337
- "title": "Tree Debugger System",
338
- "status": "Complete",
339
- "description": "Implement the WorkflowTreeDebugger API for real-time tree visualization.",
340
- "tasks": [
341
- {
342
- "type": "Task",
343
- "id": "P1.M4.T1",
344
- "title": "Implement Observable Event Stream",
345
- "status": "Complete",
346
- "description": "Build the event observable for real-time subscription.",
347
- "subtasks": [
348
- {
349
- "type": "Subtask",
350
- "id": "P1.M4.T1.S1",
351
- "title": "Implement lightweight Observable class",
352
- "status": "Complete",
353
- "story_points": 2,
354
- "dependencies": [
355
- "P1.M1.T1.S3"
356
- ],
357
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `WorkflowEvent` from `src/types/events.ts`.\n2. LOGIC: Create file `src/utils/observable.ts`. Implement generic `Observable<T>` class with: private subscribers (Set<(value: T) => void>), subscribe(callback: (value: T) => void): () => void (returns unsubscribe function), next(value: T) that notifies all subscribers. Keep implementation minimal without external dependencies.\n3. OUTPUT: Export `Observable` from `src/utils/observable.ts`. Update `src/utils/index.ts`. Consumed by P1.M4.T2.S1."
358
- }
359
- ]
360
- },
361
- {
362
- "type": "Task",
363
- "id": "P1.M4.T2",
364
- "title": "Implement WorkflowTreeDebugger",
365
- "status": "Complete",
366
- "description": "Build the tree debugger with traversal and string rendering.",
367
- "subtasks": [
368
- {
369
- "type": "Subtask",
370
- "id": "P1.M4.T2.S1",
371
- "title": "Implement WorkflowTreeDebugger core",
372
- "status": "Complete",
373
- "story_points": 2,
374
- "dependencies": [
375
- "P1.M4.T1.S1",
376
- "P1.M2.T2.S3"
377
- ],
378
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `Observable` from `src/utils/observable.ts`. Import `WorkflowNode`, `WorkflowEvent` from `src/types/index.ts`. Import `WorkflowObserver` from `src/types/observer.ts`. Import `Workflow` from `src/core/workflow.ts`.\n2. LOGIC: Create file `src/debugger/tree-debugger.ts`. Implement `WorkflowTreeDebugger` class with: private root (WorkflowNode), public events (Observable<WorkflowEvent>), constructor(workflow: Workflow) that stores workflow.node as root and registers as observer. Implement `getTree(): WorkflowNode` returning root. Implement `getNode(id: string): WorkflowNode | undefined` with recursive tree search.\n3. OUTPUT: Export `WorkflowTreeDebugger` from `src/debugger/tree-debugger.ts`. Consumed by P1.M4.T2.S2."
379
- },
380
- {
381
- "type": "Subtask",
382
- "id": "P1.M4.T2.S2",
383
- "title": "Implement tree string rendering methods",
384
- "status": "Complete",
385
- "story_points": 2,
386
- "dependencies": [
387
- "P1.M4.T2.S1"
388
- ],
389
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: `WorkflowTreeDebugger` class from P1.M4.T2.S1.\n2. LOGIC: Extend `WorkflowTreeDebugger` with: `toTreeString(node?: WorkflowNode): string` that renders ASCII tree structure using box-drawing characters (├─, └─, │). Show node name, status, child count. Default to root if no node provided. Implement `toLogString(node?: WorkflowNode): string` that renders all logs from node and descendants in chronological order with timestamp, level, message. Format: '[timestamp] [level] [workflowName] message'.\n3. OUTPUT: Complete `WorkflowTreeDebugger`. Create `src/debugger/index.ts` barrel. Update main `src/index.ts` to export debugger. Consumed by terminal UI implementations."
390
- }
391
- ]
392
- }
393
- ]
394
- },
395
- {
396
- "type": "Milestone",
397
- "id": "P1.M5",
398
- "title": "Integration & Validation",
399
- "status": "Complete",
400
- "description": "Validate the complete system works together with integration tests and example workflows.",
401
- "tasks": [
402
- {
403
- "type": "Task",
404
- "id": "P1.M5.T1",
405
- "title": "Build Example Workflow Suite",
406
- "status": "Complete",
407
- "description": "Create the TDDOrchestrator and TestCycleWorkflow examples from PRD.",
408
- "subtasks": [
409
- {
410
- "type": "Subtask",
411
- "id": "P1.M5.T1.S1",
412
- "title": "Implement TestCycleWorkflow example",
413
- "status": "Complete",
414
- "story_points": 2,
415
- "dependencies": [
416
- "P1.M3.T1.S2",
417
- "P1.M3.T2.S2",
418
- "P1.M3.T3.S1"
419
- ],
420
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `Workflow` from `src/core/workflow.ts`. Import `Step`, `ObservedState` from `src/decorators/index.ts`.\n2. LOGIC: Create file `src/examples/test-cycle-workflow.ts`. Implement `TestCycleWorkflow extends Workflow` with: @ObservedState() currentTest: string. Implement @Step({ snapshotState: true }) generateTest() that sets currentTest and returns mock test. Implement @Step() runTest() that may throw error. Implement @Step() updateImplementation(). Implement run() that calls steps in sequence.\n3. OUTPUT: Export `TestCycleWorkflow` from `src/examples/test-cycle-workflow.ts`. Consumed by P1.M5.T1.S2 for integration."
421
- },
422
- {
423
- "type": "Subtask",
424
- "id": "P1.M5.T1.S2",
425
- "title": "Implement TDDOrchestrator example",
426
- "status": "Complete",
427
- "story_points": 2,
428
- "dependencies": [
429
- "P1.M5.T1.S1"
430
- ],
431
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `Workflow` from `src/core/workflow.ts`. Import `Step`, `Task` from `src/decorators/index.ts`. Import `TestCycleWorkflow` from `src/examples/test-cycle-workflow.ts`.\n2. LOGIC: Create file `src/examples/tdd-orchestrator.ts`. Implement `TDDOrchestrator extends Workflow` with: @Step({ logStart: true }) setupEnvironment() that performs setup logic. @Task() runCycle() that returns new TestCycleWorkflow('Cycle', this). Implement run() with try/catch that calls setupEnvironment(), runCycle(), and handles WorkflowError for restart decisions.\n3. OUTPUT: Export `TDDOrchestrator` from `src/examples/tdd-orchestrator.ts`. Create `src/examples/index.ts` barrel. Consumed by integration tests."
432
- }
433
- ]
434
- },
435
- {
436
- "type": "Task",
437
- "id": "P1.M5.T2",
438
- "title": "End-to-End Integration Validation",
439
- "status": "Complete",
440
- "description": "Validate complete system integration with tree mirroring.",
441
- "subtasks": [
442
- {
443
- "type": "Subtask",
444
- "id": "P1.M5.T2.S1",
445
- "title": "Validate tree mirroring accuracy",
446
- "status": "Complete",
447
- "story_points": 2,
448
- "dependencies": [
449
- "P1.M5.T1.S2",
450
- "P1.M4.T2.S2"
451
- ],
452
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `TDDOrchestrator` from `src/examples/tdd-orchestrator.ts`. Import `WorkflowTreeDebugger` from `src/debugger/tree-debugger.ts`.\n2. LOGIC: Create file `src/__tests__/integration/tree-mirroring.test.ts`. Create test that: instantiates TDDOrchestrator, attaches WorkflowTreeDebugger, runs workflow, verifies getTree() returns node structure matching workflow.node exactly (1:1 mirror). Verify parent/child relationships. Verify all events captured. Verify logs exist at correct nodes. Test error scenarios produce proper WorkflowError with state snapshot.\n3. OUTPUT: Integration test file validating PRD requirement: 'All logs & events must form a perfect 1:1 tree mirror of the workflow execution tree in memory'. Consumed by CI pipeline."
453
- },
454
- {
455
- "type": "Subtask",
456
- "id": "P1.M5.T2.S2",
457
- "title": "Validate observer event delivery",
458
- "status": "Complete",
459
- "story_points": 1,
460
- "dependencies": [
461
- "P1.M5.T2.S1"
462
- ],
463
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import test utilities from P1.M5.T2.S1. Import `WorkflowObserver` from `src/types/observer.ts`.\n2. LOGIC: Create file `src/__tests__/integration/observer-events.test.ts`. Create mock observer implementing WorkflowObserver. Attach to root workflow. Run workflow. Verify onLog called for each log entry. Verify onEvent called for each event type (childAttached, stepStart, stepEnd, taskStart, taskEnd, treeUpdated). Verify onStateUpdated called when snapshotState triggers. Verify onTreeChanged called on tree mutations.\n3. OUTPUT: Integration test file validating observer contract. Ensures debugger receives all events for real-time updates."
464
- }
465
- ]
466
- },
467
- {
468
- "type": "Task",
469
- "id": "P1.M5.T3",
470
- "title": "Package Export Finalization",
471
- "status": "Complete",
472
- "description": "Finalize public API exports and package configuration.",
473
- "subtasks": [
474
- {
475
- "type": "Subtask",
476
- "id": "P1.M5.T3.S1",
477
- "title": "Finalize public API surface",
478
- "status": "Complete",
479
- "story_points": 1,
480
- "dependencies": [
481
- "P1.M5.T2.S2"
482
- ],
483
- "context_scope": "CONTRACT DEFINITION:\n1. INPUT: All modules from previous subtasks: `src/types/index.ts`, `src/core/index.ts`, `src/decorators/index.ts`, `src/debugger/index.ts`, `src/utils/index.ts`.\n2. LOGIC: Update `src/index.ts` as main entry point. Export all public types (WorkflowNode, WorkflowStatus, LogEntry, WorkflowEvent, WorkflowError, etc.). Export Workflow base class. Export decorators (Step, Task, ObservedState). Export WorkflowTreeDebugger. Export WorkflowObserver interface. Do NOT export internal utilities or WeakMaps. Update package.json main/module/types fields.\n3. OUTPUT: Clean public API at `src/index.ts`. Package ready for npm publish or local consumption."
484
- }
485
- ]
486
- }
487
- ]
488
- }
489
- ]
490
- }
491
- ]
492
- }
package/PRPs/README.md DELETED
@@ -1,83 +0,0 @@
1
- # PRPs (Product Requirements Packages)
2
-
3
- > PRPs are comprehensive implementation guides designed for **one-pass implementation success**.
4
-
5
- ## What is a PRP?
6
-
7
- A PRP is more than a requirements document—it's a complete implementation package that provides everything an AI agent (or developer) needs to successfully implement a feature without additional context gathering.
8
-
9
- ## Core Principle
10
-
11
- **"No Prior Knowledge" Test**: If someone knew nothing about this codebase, would they have everything needed to implement this feature successfully using only the PRP?
12
-
13
- ## PRP Structure
14
-
15
- Each PRP contains:
16
-
17
- 1. **Goal** - Clear feature goal, deliverable, and success criteria
18
- 2. **Context** - External documentation URLs, codebase patterns, technical constraints, and known gotchas
19
- 3. **Implementation Tasks** - Dependency-ordered tasks with specific file names and code patterns
20
- 4. **Implementation Details** - Code examples, file structure, and interface definitions
21
- 5. **Testing Strategy** - Unit tests, integration tests, and manual validation steps
22
- 6. **Final Validation Checklist** - Comprehensive checklist for quality assurance
23
- 7. **Confidence Score** - Rating of expected one-pass success likelihood
24
-
25
- ## Using PRPs
26
-
27
- ### For AI Agents
28
- 1. Read the entire PRP before starting
29
- 2. Follow tasks in order (they have dependencies)
30
- 3. Use the validation steps after each task
31
- 4. Consult external URLs for additional context when needed
32
- 5. Reference local research docs in project root for patterns
33
-
34
- ### For Developers
35
- 1. Use PRPs as detailed implementation guides
36
- 2. The task breakdown serves as a sprint plan
37
- 3. Code patterns show exactly how to implement each component
38
- 4. Tests provide immediate validation
39
-
40
- ## Directory Structure
41
-
42
- ```
43
- PRPs/
44
- ├── README.md # This file
45
- ├── templates/
46
- │ └── prp_base.md # Template for creating new PRPs
47
- ├── ai_docs/ # Research documents for AI reference
48
- └── XXX-feature-name.md # Individual PRPs (numbered)
49
- ```
50
-
51
- ## Creating a New PRP
52
-
53
- 1. Copy `templates/prp_base.md`
54
- 2. Number it sequentially (e.g., `002-next-feature.md`)
55
- 3. Fill in all sections with specific, actionable content
56
- 4. Apply the "No Prior Knowledge" test
57
- 5. Rate your confidence score honestly
58
-
59
- ## Quality Standards
60
-
61
- A good PRP:
62
- - Has **specific file paths**, not generic references
63
- - Includes **working code examples** for each pattern
64
- - Lists **exact dependencies** with versions
65
- - Provides **executable validation commands**
66
- - Covers **error cases** and edge conditions
67
- - Uses **information-dense keywords** from codebase analysis
68
-
69
- ## Current PRPs
70
-
71
- | Number | Name | Status | Confidence |
72
- |--------|------|--------|------------|
73
- | 001 | Hierarchical Workflow Engine | Implementation-Ready | 9/10 |
74
-
75
- ## Research Materials
76
-
77
- Detailed research documents are stored in the project root:
78
- - `DECORATOR_QUICK_REFERENCE.md` - TypeScript decorator patterns
79
- - `DECORATOR_EXAMPLES.ts` - Production-ready decorator code
80
- - `TREE_VISUALIZATION_QUICK_REF.md` - ASCII tree rendering
81
- - `TREE_DEBUG_EXAMPLES.ts` - Tree debugger implementation
82
-
83
- These are referenced by PRPs and contain deep technical research.