groundswell 0.0.2 → 0.0.3

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 (633) hide show
  1. package/dist/__tests__/adversarial/attachChild-performance.test.d.ts +16 -0
  2. package/dist/__tests__/adversarial/attachChild-performance.test.d.ts.map +1 -0
  3. package/dist/__tests__/adversarial/attachChild-performance.test.js +187 -0
  4. package/dist/__tests__/adversarial/attachChild-performance.test.js.map +1 -0
  5. package/dist/__tests__/adversarial/circular-reference.test.d.ts +13 -0
  6. package/dist/__tests__/adversarial/circular-reference.test.d.ts.map +1 -0
  7. package/dist/__tests__/adversarial/circular-reference.test.js +92 -0
  8. package/dist/__tests__/adversarial/circular-reference.test.js.map +1 -0
  9. package/dist/__tests__/adversarial/complex-circular-reference.test.d.ts +16 -0
  10. package/dist/__tests__/adversarial/complex-circular-reference.test.d.ts.map +1 -0
  11. package/dist/__tests__/adversarial/complex-circular-reference.test.js +127 -0
  12. package/dist/__tests__/adversarial/complex-circular-reference.test.js.map +1 -0
  13. package/dist/__tests__/adversarial/concurrent-task-failures.test.d.ts +21 -0
  14. package/dist/__tests__/adversarial/concurrent-task-failures.test.d.ts.map +1 -0
  15. package/dist/__tests__/adversarial/concurrent-task-failures.test.js +667 -0
  16. package/dist/__tests__/adversarial/concurrent-task-failures.test.js.map +1 -0
  17. package/dist/__tests__/adversarial/deep-analysis.test.d.ts +6 -0
  18. package/dist/__tests__/adversarial/deep-analysis.test.d.ts.map +1 -0
  19. package/dist/__tests__/adversarial/deep-analysis.test.js +877 -0
  20. package/dist/__tests__/adversarial/deep-analysis.test.js.map +1 -0
  21. package/dist/__tests__/adversarial/deep-hierarchy-stress.test.d.ts +13 -0
  22. package/dist/__tests__/adversarial/deep-hierarchy-stress.test.d.ts.map +1 -0
  23. package/dist/__tests__/adversarial/deep-hierarchy-stress.test.js +186 -0
  24. package/dist/__tests__/adversarial/deep-hierarchy-stress.test.js.map +1 -0
  25. package/dist/__tests__/adversarial/e2e-prd-validation.test.d.ts +6 -0
  26. package/dist/__tests__/adversarial/e2e-prd-validation.test.d.ts.map +1 -0
  27. package/dist/__tests__/adversarial/e2e-prd-validation.test.js +626 -0
  28. package/dist/__tests__/adversarial/e2e-prd-validation.test.js.map +1 -0
  29. package/dist/__tests__/adversarial/edge-case.test.d.ts +6 -0
  30. package/dist/__tests__/adversarial/edge-case.test.d.ts.map +1 -0
  31. package/dist/__tests__/adversarial/edge-case.test.js +857 -0
  32. package/dist/__tests__/adversarial/edge-case.test.js.map +1 -0
  33. package/dist/__tests__/adversarial/error-merge-strategy.test.d.ts +20 -0
  34. package/dist/__tests__/adversarial/error-merge-strategy.test.d.ts.map +1 -0
  35. package/dist/__tests__/adversarial/error-merge-strategy.test.js +907 -0
  36. package/dist/__tests__/adversarial/error-merge-strategy.test.js.map +1 -0
  37. package/dist/__tests__/adversarial/incremental-performance.test.d.ts +2 -0
  38. package/dist/__tests__/adversarial/incremental-performance.test.d.ts.map +1 -0
  39. package/dist/__tests__/adversarial/incremental-performance.test.js +113 -0
  40. package/dist/__tests__/adversarial/incremental-performance.test.js.map +1 -0
  41. package/dist/__tests__/adversarial/node-map-update-benchmarks.test.d.ts +22 -0
  42. package/dist/__tests__/adversarial/node-map-update-benchmarks.test.d.ts.map +1 -0
  43. package/dist/__tests__/adversarial/node-map-update-benchmarks.test.js +383 -0
  44. package/dist/__tests__/adversarial/node-map-update-benchmarks.test.js.map +1 -0
  45. package/dist/__tests__/adversarial/observer-propagation.test.d.ts +21 -0
  46. package/dist/__tests__/adversarial/observer-propagation.test.d.ts.map +1 -0
  47. package/dist/__tests__/adversarial/observer-propagation.test.js +404 -0
  48. package/dist/__tests__/adversarial/observer-propagation.test.js.map +1 -0
  49. package/dist/__tests__/adversarial/parent-validation.test.d.ts +13 -0
  50. package/dist/__tests__/adversarial/parent-validation.test.d.ts.map +1 -0
  51. package/dist/__tests__/adversarial/parent-validation.test.js +128 -0
  52. package/dist/__tests__/adversarial/parent-validation.test.js.map +1 -0
  53. package/dist/__tests__/adversarial/prd-12-2-compliance.test.d.ts +20 -0
  54. package/dist/__tests__/adversarial/prd-12-2-compliance.test.d.ts.map +1 -0
  55. package/dist/__tests__/adversarial/prd-12-2-compliance.test.js +482 -0
  56. package/dist/__tests__/adversarial/prd-12-2-compliance.test.js.map +1 -0
  57. package/dist/__tests__/adversarial/prd-compliance.test.d.ts +6 -0
  58. package/dist/__tests__/adversarial/prd-compliance.test.d.ts.map +1 -0
  59. package/dist/__tests__/adversarial/prd-compliance.test.js +886 -0
  60. package/dist/__tests__/adversarial/prd-compliance.test.js.map +1 -0
  61. package/dist/__tests__/compatibility/backward-compatibility.test.d.ts +22 -0
  62. package/dist/__tests__/compatibility/backward-compatibility.test.d.ts.map +1 -0
  63. package/dist/__tests__/compatibility/backward-compatibility.test.js +1843 -0
  64. package/dist/__tests__/compatibility/backward-compatibility.test.js.map +1 -0
  65. package/dist/__tests__/helpers/index.d.ts +10 -0
  66. package/dist/__tests__/helpers/index.d.ts.map +1 -0
  67. package/{src/__tests__/helpers/index.ts → dist/__tests__/helpers/index.js} +2 -10
  68. package/dist/__tests__/helpers/index.js.map +1 -0
  69. package/dist/__tests__/helpers/tree-verification.d.ts +90 -0
  70. package/dist/__tests__/helpers/tree-verification.d.ts.map +1 -0
  71. package/dist/__tests__/helpers/tree-verification.js +202 -0
  72. package/dist/__tests__/helpers/tree-verification.js.map +1 -0
  73. package/dist/__tests__/integration/agent-workflow.test.d.ts +2 -0
  74. package/dist/__tests__/integration/agent-workflow.test.d.ts.map +1 -0
  75. package/dist/__tests__/integration/agent-workflow.test.js +256 -0
  76. package/dist/__tests__/integration/agent-workflow.test.js.map +1 -0
  77. package/dist/__tests__/integration/bidirectional-consistency.test.d.ts +14 -0
  78. package/dist/__tests__/integration/bidirectional-consistency.test.d.ts.map +1 -0
  79. package/dist/__tests__/integration/bidirectional-consistency.test.js +668 -0
  80. package/dist/__tests__/integration/bidirectional-consistency.test.js.map +1 -0
  81. package/dist/__tests__/integration/observer-logging.test.d.ts +2 -0
  82. package/dist/__tests__/integration/observer-logging.test.d.ts.map +1 -0
  83. package/dist/__tests__/integration/observer-logging.test.js +517 -0
  84. package/dist/__tests__/integration/observer-logging.test.js.map +1 -0
  85. package/dist/__tests__/integration/tree-mirroring.test.d.ts +2 -0
  86. package/dist/__tests__/integration/tree-mirroring.test.d.ts.map +1 -0
  87. package/dist/__tests__/integration/tree-mirroring.test.js +117 -0
  88. package/dist/__tests__/integration/tree-mirroring.test.js.map +1 -0
  89. package/dist/__tests__/integration/workflow-reparenting.test.d.ts +12 -0
  90. package/dist/__tests__/integration/workflow-reparenting.test.d.ts.map +1 -0
  91. package/dist/__tests__/integration/workflow-reparenting.test.js +239 -0
  92. package/dist/__tests__/integration/workflow-reparenting.test.js.map +1 -0
  93. package/dist/__tests__/unit/agent.test.d.ts +2 -0
  94. package/dist/__tests__/unit/agent.test.d.ts.map +1 -0
  95. package/dist/__tests__/unit/agent.test.js +143 -0
  96. package/dist/__tests__/unit/agent.test.js.map +1 -0
  97. package/dist/__tests__/unit/cache-key.test.d.ts +5 -0
  98. package/dist/__tests__/unit/cache-key.test.d.ts.map +1 -0
  99. package/dist/__tests__/unit/cache-key.test.js +145 -0
  100. package/dist/__tests__/unit/cache-key.test.js.map +1 -0
  101. package/dist/__tests__/unit/cache.test.d.ts +5 -0
  102. package/dist/__tests__/unit/cache.test.d.ts.map +1 -0
  103. package/dist/__tests__/unit/cache.test.js +132 -0
  104. package/dist/__tests__/unit/cache.test.js.map +1 -0
  105. package/dist/__tests__/unit/context.test.d.ts +2 -0
  106. package/dist/__tests__/unit/context.test.d.ts.map +1 -0
  107. package/dist/__tests__/unit/context.test.js +220 -0
  108. package/dist/__tests__/unit/context.test.js.map +1 -0
  109. package/dist/__tests__/unit/decorators.test.d.ts +2 -0
  110. package/dist/__tests__/unit/decorators.test.d.ts.map +1 -0
  111. package/dist/__tests__/unit/decorators.test.js +162 -0
  112. package/dist/__tests__/unit/decorators.test.js.map +1 -0
  113. package/dist/__tests__/unit/introspection-tools.test.d.ts +5 -0
  114. package/dist/__tests__/unit/introspection-tools.test.d.ts.map +1 -0
  115. package/dist/__tests__/unit/introspection-tools.test.js +191 -0
  116. package/dist/__tests__/unit/introspection-tools.test.js.map +1 -0
  117. package/dist/__tests__/unit/logger.test.d.ts +2 -0
  118. package/dist/__tests__/unit/logger.test.d.ts.map +1 -0
  119. package/dist/__tests__/unit/logger.test.js +241 -0
  120. package/dist/__tests__/unit/logger.test.js.map +1 -0
  121. package/dist/__tests__/unit/observable.test.d.ts +2 -0
  122. package/dist/__tests__/unit/observable.test.d.ts.map +1 -0
  123. package/dist/__tests__/unit/observable.test.js +251 -0
  124. package/dist/__tests__/unit/observable.test.js.map +1 -0
  125. package/dist/__tests__/unit/prompt.test.d.ts +2 -0
  126. package/dist/__tests__/unit/prompt.test.d.ts.map +1 -0
  127. package/dist/__tests__/unit/prompt.test.js +113 -0
  128. package/dist/__tests__/unit/prompt.test.js.map +1 -0
  129. package/dist/__tests__/unit/reflection.test.d.ts +5 -0
  130. package/dist/__tests__/unit/reflection.test.d.ts.map +1 -0
  131. package/dist/__tests__/unit/reflection.test.js +160 -0
  132. package/dist/__tests__/unit/reflection.test.js.map +1 -0
  133. package/dist/__tests__/unit/tree-debugger-incremental.test.d.ts +2 -0
  134. package/dist/__tests__/unit/tree-debugger-incremental.test.d.ts.map +1 -0
  135. package/dist/__tests__/unit/tree-debugger-incremental.test.js +136 -0
  136. package/dist/__tests__/unit/tree-debugger-incremental.test.js.map +1 -0
  137. package/dist/__tests__/unit/tree-debugger.test.d.ts +2 -0
  138. package/dist/__tests__/unit/tree-debugger.test.d.ts.map +1 -0
  139. package/dist/__tests__/unit/tree-debugger.test.js +69 -0
  140. package/dist/__tests__/unit/tree-debugger.test.js.map +1 -0
  141. package/dist/__tests__/unit/utils/workflow-error-utils.test.d.ts +2 -0
  142. package/dist/__tests__/unit/utils/workflow-error-utils.test.d.ts.map +1 -0
  143. package/dist/__tests__/unit/utils/workflow-error-utils.test.js +154 -0
  144. package/dist/__tests__/unit/utils/workflow-error-utils.test.js.map +1 -0
  145. package/dist/__tests__/unit/workflow-detachChild.test.d.ts +2 -0
  146. package/dist/__tests__/unit/workflow-detachChild.test.d.ts.map +1 -0
  147. package/dist/__tests__/unit/workflow-detachChild.test.js +76 -0
  148. package/dist/__tests__/unit/workflow-detachChild.test.js.map +1 -0
  149. package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.d.ts +2 -0
  150. package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.d.ts.map +1 -0
  151. package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.js +122 -0
  152. package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.js.map +1 -0
  153. package/dist/__tests__/unit/workflow-isDescendantOf.test.d.ts +2 -0
  154. package/dist/__tests__/unit/workflow-isDescendantOf.test.d.ts.map +1 -0
  155. package/dist/__tests__/unit/workflow-isDescendantOf.test.js +140 -0
  156. package/dist/__tests__/unit/workflow-isDescendantOf.test.js.map +1 -0
  157. package/dist/__tests__/unit/workflow.test.d.ts +2 -0
  158. package/dist/__tests__/unit/workflow.test.d.ts.map +1 -0
  159. package/dist/__tests__/unit/workflow.test.js +330 -0
  160. package/dist/__tests__/unit/workflow.test.js.map +1 -0
  161. package/dist/cache/cache-key.d.ts +66 -0
  162. package/dist/cache/cache-key.d.ts.map +1 -0
  163. package/dist/cache/cache-key.js +195 -0
  164. package/dist/cache/cache-key.js.map +1 -0
  165. package/dist/cache/cache.d.ts +104 -0
  166. package/dist/cache/cache.d.ts.map +1 -0
  167. package/dist/cache/cache.js +179 -0
  168. package/dist/cache/cache.js.map +1 -0
  169. package/{src/cache/index.ts → dist/cache/index.d.ts} +1 -1
  170. package/dist/cache/index.d.ts.map +1 -0
  171. package/dist/cache/index.js +6 -0
  172. package/dist/cache/index.js.map +1 -0
  173. package/dist/core/agent.d.ts +112 -0
  174. package/dist/core/agent.d.ts.map +1 -0
  175. package/dist/core/agent.js +426 -0
  176. package/dist/core/agent.js.map +1 -0
  177. package/{src/core/context.ts → dist/core/context.d.ts} +16 -67
  178. package/dist/core/context.d.ts.map +1 -0
  179. package/dist/core/context.js +80 -0
  180. package/dist/core/context.js.map +1 -0
  181. package/dist/core/event-tree.d.ts +72 -0
  182. package/dist/core/event-tree.d.ts.map +1 -0
  183. package/dist/core/event-tree.js +211 -0
  184. package/dist/core/event-tree.js.map +1 -0
  185. package/{src/core/factory.ts → dist/core/factory.d.ts} +6 -27
  186. package/dist/core/factory.d.ts.map +1 -0
  187. package/dist/core/factory.js +110 -0
  188. package/dist/core/factory.js.map +1 -0
  189. package/{src/core/index.ts → dist/core/index.d.ts} +2 -10
  190. package/dist/core/index.d.ts.map +1 -0
  191. package/dist/core/index.js +9 -0
  192. package/dist/core/index.js.map +1 -0
  193. package/dist/core/logger.d.ts +50 -0
  194. package/dist/core/logger.d.ts.map +1 -0
  195. package/dist/core/logger.js +91 -0
  196. package/dist/core/logger.js.map +1 -0
  197. package/dist/core/mcp-handler.d.ts +69 -0
  198. package/dist/core/mcp-handler.d.ts.map +1 -0
  199. package/dist/core/mcp-handler.js +143 -0
  200. package/dist/core/mcp-handler.js.map +1 -0
  201. package/dist/core/prompt.d.ts +80 -0
  202. package/dist/core/prompt.d.ts.map +1 -0
  203. package/dist/core/prompt.js +120 -0
  204. package/dist/core/prompt.js.map +1 -0
  205. package/dist/core/workflow-context.d.ts +57 -0
  206. package/dist/core/workflow-context.d.ts.map +1 -0
  207. package/dist/core/workflow-context.js +263 -0
  208. package/dist/core/workflow-context.js.map +1 -0
  209. package/dist/core/workflow.d.ts +241 -0
  210. package/dist/core/workflow.d.ts.map +1 -0
  211. package/dist/core/workflow.js +464 -0
  212. package/dist/core/workflow.js.map +1 -0
  213. package/dist/debugger/index.d.ts +2 -0
  214. package/dist/debugger/index.d.ts.map +1 -0
  215. package/{src/debugger/index.ts → dist/debugger/index.js} +1 -0
  216. package/dist/debugger/index.js.map +1 -0
  217. package/dist/debugger/tree-debugger.d.ts +71 -0
  218. package/dist/debugger/tree-debugger.d.ts.map +1 -0
  219. package/dist/debugger/tree-debugger.js +198 -0
  220. package/dist/debugger/tree-debugger.js.map +1 -0
  221. package/dist/decorators/index.d.ts +4 -0
  222. package/dist/decorators/index.d.ts.map +1 -0
  223. package/{src/decorators/index.ts → dist/decorators/index.js} +1 -0
  224. package/dist/decorators/index.js.map +1 -0
  225. package/dist/decorators/observed-state.d.ts +32 -0
  226. package/dist/decorators/observed-state.d.ts.map +1 -0
  227. package/dist/decorators/observed-state.js +79 -0
  228. package/dist/decorators/observed-state.js.map +1 -0
  229. package/dist/decorators/step.d.ts +15 -0
  230. package/dist/decorators/step.d.ts.map +1 -0
  231. package/dist/decorators/step.js +110 -0
  232. package/dist/decorators/step.js.map +1 -0
  233. package/dist/decorators/task.d.ts +50 -0
  234. package/dist/decorators/task.d.ts.map +1 -0
  235. package/dist/decorators/task.js +118 -0
  236. package/dist/decorators/task.js.map +1 -0
  237. package/dist/examples/index.d.ts +3 -0
  238. package/dist/examples/index.d.ts.map +1 -0
  239. package/{src/examples/index.ts → dist/examples/index.js} +1 -0
  240. package/dist/examples/index.js.map +1 -0
  241. package/dist/examples/tdd-orchestrator.d.ts +15 -0
  242. package/dist/examples/tdd-orchestrator.d.ts.map +1 -0
  243. package/dist/examples/tdd-orchestrator.js +121 -0
  244. package/dist/examples/tdd-orchestrator.js.map +1 -0
  245. package/dist/examples/test-cycle-workflow.d.ts +14 -0
  246. package/dist/examples/test-cycle-workflow.d.ts.map +1 -0
  247. package/dist/examples/test-cycle-workflow.js +116 -0
  248. package/dist/examples/test-cycle-workflow.js.map +1 -0
  249. package/dist/index.d.ts +27 -0
  250. package/dist/index.d.ts.map +1 -0
  251. package/dist/index.js +40 -0
  252. package/dist/index.js.map +1 -0
  253. package/dist/reflection/index.d.ts +5 -0
  254. package/dist/reflection/index.d.ts.map +1 -0
  255. package/{src/reflection/index.ts → dist/reflection/index.js} +1 -1
  256. package/dist/reflection/index.js.map +1 -0
  257. package/dist/reflection/reflection.d.ts +84 -0
  258. package/dist/reflection/reflection.d.ts.map +1 -0
  259. package/dist/reflection/reflection.js +329 -0
  260. package/dist/reflection/reflection.js.map +1 -0
  261. package/dist/tools/index.d.ts +6 -0
  262. package/dist/tools/index.d.ts.map +1 -0
  263. package/dist/tools/index.js +11 -0
  264. package/dist/tools/index.js.map +1 -0
  265. package/dist/tools/introspection.d.ts +165 -0
  266. package/dist/tools/introspection.d.ts.map +1 -0
  267. package/dist/tools/introspection.js +324 -0
  268. package/dist/tools/introspection.js.map +1 -0
  269. package/dist/types/agent.d.ts +66 -0
  270. package/dist/types/agent.d.ts.map +1 -0
  271. package/dist/types/agent.js +6 -0
  272. package/dist/types/agent.js.map +1 -0
  273. package/dist/types/decorators.d.ts +31 -0
  274. package/dist/types/decorators.d.ts.map +1 -0
  275. package/dist/types/decorators.js +2 -0
  276. package/dist/types/decorators.js.map +1 -0
  277. package/dist/types/error-strategy.d.ts +13 -0
  278. package/dist/types/error-strategy.d.ts.map +1 -0
  279. package/dist/types/error-strategy.js +2 -0
  280. package/dist/types/error-strategy.js.map +1 -0
  281. package/dist/types/error.d.ts +20 -0
  282. package/dist/types/error.d.ts.map +1 -0
  283. package/dist/types/error.js +2 -0
  284. package/dist/types/error.js.map +1 -0
  285. package/dist/types/events.d.ts +87 -0
  286. package/dist/types/events.d.ts.map +1 -0
  287. package/dist/types/events.js +2 -0
  288. package/dist/types/events.js.map +1 -0
  289. package/dist/types/index.d.ts +15 -0
  290. package/dist/types/index.d.ts.map +1 -0
  291. package/dist/types/index.js +2 -0
  292. package/dist/types/index.js.map +1 -0
  293. package/dist/types/logging.d.ts +24 -0
  294. package/dist/types/logging.d.ts.map +1 -0
  295. package/dist/types/logging.js +2 -0
  296. package/dist/types/logging.js.map +1 -0
  297. package/dist/types/observer.d.ts +18 -0
  298. package/dist/types/observer.d.ts.map +1 -0
  299. package/dist/types/observer.js +2 -0
  300. package/dist/types/observer.js.map +1 -0
  301. package/dist/types/prompt.d.ts +31 -0
  302. package/dist/types/prompt.d.ts.map +1 -0
  303. package/dist/types/prompt.js +6 -0
  304. package/dist/types/prompt.js.map +1 -0
  305. package/dist/types/reflection.d.ts +96 -0
  306. package/dist/types/reflection.d.ts.map +1 -0
  307. package/dist/types/reflection.js +24 -0
  308. package/dist/types/reflection.js.map +1 -0
  309. package/dist/types/sdk-primitives.d.ts +118 -0
  310. package/dist/types/sdk-primitives.d.ts.map +1 -0
  311. package/dist/types/sdk-primitives.js +6 -0
  312. package/dist/types/sdk-primitives.js.map +1 -0
  313. package/{src/types/snapshot.ts → dist/types/snapshot.d.ts} +5 -5
  314. package/dist/types/snapshot.d.ts.map +1 -0
  315. package/dist/types/snapshot.js +2 -0
  316. package/dist/types/snapshot.js.map +1 -0
  317. package/dist/types/workflow-context.d.ts +139 -0
  318. package/dist/types/workflow-context.d.ts.map +1 -0
  319. package/dist/types/workflow-context.js +8 -0
  320. package/dist/types/workflow-context.js.map +1 -0
  321. package/dist/types/workflow.d.ts +30 -0
  322. package/dist/types/workflow.d.ts.map +1 -0
  323. package/dist/types/workflow.js +2 -0
  324. package/dist/types/workflow.js.map +1 -0
  325. package/dist/utils/id.d.ts +6 -0
  326. package/dist/utils/id.d.ts.map +1 -0
  327. package/dist/utils/id.js +12 -0
  328. package/dist/utils/id.js.map +1 -0
  329. package/{src/utils/index.ts → dist/utils/index.d.ts} +1 -0
  330. package/dist/utils/index.d.ts.map +1 -0
  331. package/dist/utils/index.js +4 -0
  332. package/dist/utils/index.js.map +1 -0
  333. package/dist/utils/observable.d.ts +54 -0
  334. package/dist/utils/observable.d.ts.map +1 -0
  335. package/dist/utils/observable.js +82 -0
  336. package/dist/utils/observable.js.map +1 -0
  337. package/dist/utils/workflow-error-utils.d.ts +22 -0
  338. package/dist/utils/workflow-error-utils.d.ts.map +1 -0
  339. package/dist/utils/workflow-error-utils.js +45 -0
  340. package/dist/utils/workflow-error-utils.js.map +1 -0
  341. package/package.json +5 -2
  342. package/.claude/commands/subtask-planning/prp-base-create.md +0 -120
  343. package/.claude/commands/subtask-planning/prp-base-execute.md +0 -65
  344. package/.claude/commands/task-breakdown.md +0 -94
  345. package/.claude/settings.local.json +0 -9
  346. package/.claude/system_prompts/task-breakdown.md +0 -101
  347. package/PRD.md +0 -543
  348. package/PRPs/001-hierarchical-workflow-engine.md +0 -2438
  349. package/PRPs/PRDs/002-agent-prompt.md +0 -390
  350. package/PRPs/PRDs/003-agent-prompt.md +0 -943
  351. package/PRPs/PRDs/004-agent-prompt.md +0 -1136
  352. package/PRPs/PRDs/tasks-001.json +0 -492
  353. package/PRPs/README.md +0 -83
  354. package/PRPs/templates/prp_base.md +0 -222
  355. package/docs/agent.md +0 -422
  356. package/docs/prompt.md +0 -419
  357. package/docs/workflow.md +0 -600
  358. package/examples/README.md +0 -258
  359. package/examples/examples/01-basic-workflow.ts +0 -100
  360. package/examples/examples/02-decorator-options.ts +0 -217
  361. package/examples/examples/03-parent-child.ts +0 -241
  362. package/examples/examples/04-observers-debugger.ts +0 -340
  363. package/examples/examples/05-error-handling.ts +0 -387
  364. package/examples/examples/06-concurrent-tasks.ts +0 -352
  365. package/examples/examples/07-agent-loops.ts +0 -432
  366. package/examples/examples/08-sdk-features.ts +0 -667
  367. package/examples/examples/09-reflection.ts +0 -573
  368. package/examples/examples/10-introspection.ts +0 -550
  369. package/examples/examples/11-reparenting-workflows.ts +0 -269
  370. package/examples/index.ts +0 -147
  371. package/examples/utils/helpers.ts +0 -57
  372. package/package-lock.json +0 -2398
  373. package/plan/001_d3bb02af4886/TEST_RESULTS.md +0 -259
  374. package/plan/001_d3bb02af4886/backlog.json +0 -867
  375. package/plan/001_d3bb02af4886/bug_fix_tasks.json +0 -484
  376. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S1/PRP.md +0 -488
  377. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S2/PRP.md +0 -581
  378. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S3/PRP.md +0 -687
  379. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S1/PRP.md +0 -492
  380. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/PRP.md +0 -932
  381. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/concurrent_error_testing_patterns.md +0 -1109
  382. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/vitest_concurrent_testing.md +0 -802
  383. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/workflow_engine_test_references.md +0 -603
  384. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S1/PRP.md +0 -564
  385. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S3/PRP.md +0 -518
  386. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S4/PRP.md +0 -1252
  387. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/PRP.md +0 -364
  388. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/CODEBASE_INVENTORY.md +0 -114
  389. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/DECORATOR_DOCUMENTATION_PATTERNS.md +0 -205
  390. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/PRD_LOCATION_ANALYSIS.md +0 -199
  391. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/ULTRATHINK_PRP_PLAN.md +0 -134
  392. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S1/PRP.md +0 -495
  393. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S1/research/console_error_inventory.md +0 -435
  394. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S2/PRP.md +0 -506
  395. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S3/PRP.md +0 -612
  396. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S2/PRP.md +0 -558
  397. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S2/research/external_research.md +0 -788
  398. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T3S2/PRP.md +0 -460
  399. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T3S3/PRP.md +0 -454
  400. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/PRP.md +0 -520
  401. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/RECOMMENDATION.md +0 -417
  402. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/research/external_workflow_engines_research.md +0 -760
  403. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/research/security_implications_analysis.md +0 -245
  404. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S2/PRP.md +0 -792
  405. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S1/PRP.md +0 -535
  406. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S1/TEST_EXECUTION_REPORT.md +0 -190
  407. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/PRP.md +0 -654
  408. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/TEST_FIX_REPORT.md +0 -227
  409. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/KEY_FINDINGS.md +0 -345
  410. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/QUICK_REFERENCE.md +0 -193
  411. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/test_maintenance_research.md +0 -1323
  412. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S1/BREAKING_CHANGES_AUDIT.md +0 -1011
  413. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S1/PRP.md +0 -927
  414. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S2/PRP.md +0 -505
  415. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/architecture/logger_child_signature_analysis.md +0 -401
  416. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/child_implementation_research.md +0 -142
  417. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/test_patterns_research.md +0 -112
  418. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/vitest_patterns_research.md +0 -159
  419. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/PRP.md +0 -549
  420. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/VERIFICATION_REPORT.md +0 -368
  421. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/edge_case_analysis.md +0 -172
  422. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/usage_inventory.md +0 -175
  423. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T1S2/PRP.md +0 -696
  424. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T1S4/PRP.md +0 -860
  425. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/PRP.md +0 -1066
  426. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/01-testing-aggregated-errors.md +0 -1103
  427. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/01_typescript_error_aggregation_patterns.md +0 -789
  428. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/02-error-merge-strategy-testing-guide.md +0 -1098
  429. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/02_aggregate_error_patterns.md +0 -1037
  430. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/03-promise-allsettled-testing-patterns.md +0 -916
  431. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/03_error_merging_strategies.md +0 -1045
  432. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/04_github_stackoverflow_examples.md +0 -890
  433. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/05_comprehensive_summary.md +0 -822
  434. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/INDEX.md +0 -668
  435. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/QUICK_REFERENCE.md +0 -706
  436. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/README.md +0 -265
  437. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/RESEARCH_REPORT.md +0 -655
  438. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S4/research/vitest_testing_patterns.md +0 -1103
  439. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T3S2/PRP.md +0 -426
  440. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/PRP.md +0 -506
  441. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/QUICK_REFERENCE.md +0 -114
  442. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/RESEARCH_SUMMARY.md +0 -316
  443. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/vitest_observer_error_logging_best_practices.md +0 -754
  444. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S3/PRP.md +0 -612
  445. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/PRP.md +0 -719
  446. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/README.md +0 -215
  447. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/analysis.md +0 -765
  448. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S3/PRP.md +0 -718
  449. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/DECISION.md +0 -149
  450. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/PRP.md +0 -470
  451. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/ULTRATHINK_PLAN.md +0 -332
  452. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/codebase_workflow_name_analysis.md +0 -167
  453. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/external_best_practices.md +0 -265
  454. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/validation_patterns.md +0 -273
  455. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T4S1/workflow_engine_ancestry_api_research.md +0 -760
  456. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T4S3-PRP.md +0 -434
  457. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S1/PRP.md +0 -717
  458. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/PRP.md +0 -472
  459. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/VALIDATION_REPORT.md +0 -125
  460. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/research/ULTRATHINK_PRP_PLAN.md +0 -301
  461. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/error-logging-best-practices.md +0 -1170
  462. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/research_typescript_partial_and_overloads.md +0 -940
  463. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/vitest-quick-reference.md +0 -151
  464. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/vitest-research.md +0 -650
  465. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/prd_snapshot.md +0 -259
  466. package/plan/001_d3bb02af4886/bugfix/P1M1T1S1/PRP.md +0 -457
  467. package/plan/001_d3bb02af4886/bugfix/RESEARCH_SUMMARY.md +0 -346
  468. package/plan/001_d3bb02af4886/bugfix/architecture/codebase_structure.md +0 -311
  469. package/plan/001_d3bb02af4886/bugfix/architecture/concurrent_execution_best_practices.md +0 -1565
  470. package/plan/001_d3bb02af4886/bugfix/architecture/error_handling_patterns.md +0 -288
  471. package/plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md +0 -741
  472. package/plan/001_d3bb02af4886/docs/PRP/P1M1T1S4-functional-workflow-error-state-capture-test.md +0 -652
  473. package/plan/001_d3bb02af4886/docs/PRP/P1P2-PRP.md +0 -527
  474. package/plan/001_d3bb02af4886/docs/PRP/P3P4-PRP.md +0 -1388
  475. package/plan/001_d3bb02af4886/docs/PRP/P4P5-PRP.md +0 -1136
  476. package/plan/001_d3bb02af4886/docs/PRP/PRP.md +0 -527
  477. package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S1-PRP.md +0 -415
  478. package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S2-PRP.md +0 -378
  479. package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S4-PRP.md +0 -713
  480. package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M2T1S4-PRP.md +0 -370
  481. package/plan/001_d3bb02af4886/docs/PRP_P1M3T1S3.md +0 -499
  482. package/plan/001_d3bb02af4886/docs/TEST_RESULTS.md +0 -230
  483. package/plan/001_d3bb02af4886/docs/architecture/external_deps.md +0 -358
  484. package/plan/001_d3bb02af4886/docs/architecture/system_context.md +0 -242
  485. package/plan/001_d3bb02af4886/docs/bugfix/ANALYSIS_PRD_VS_IMPLEMENTATION.md +0 -1134
  486. package/plan/001_d3bb02af4886/docs/bugfix/GAP_ANALYSIS_SUMMARY.md +0 -179
  487. package/plan/001_d3bb02af4886/docs/bugfix/P1M4T2S1/PRP.md +0 -629
  488. package/plan/001_d3bb02af4886/docs/bugfix/P1M4T2S1/validation-report.md +0 -214
  489. package/plan/001_d3bb02af4886/docs/bugfix/PRP_P1M4T2S3.md +0 -629
  490. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_PRP.md +0 -529
  491. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_QUICK_REFERENCE.md +0 -142
  492. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_README.md +0 -304
  493. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_TEST_RESULTS.md +0 -558
  494. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_VALIDATION_SUMMARY.md +0 -256
  495. package/plan/001_d3bb02af4886/docs/bugfix/system_context.md +0 -346
  496. package/plan/001_d3bb02af4886/docs/bugfix-architecture/bug_analysis.md +0 -415
  497. package/plan/001_d3bb02af4886/docs/bugfix-architecture/implementation_patterns.md +0 -489
  498. package/plan/001_d3bb02af4886/docs/bugfix-architecture/system_context.md +0 -218
  499. package/plan/001_d3bb02af4886/docs/bugfix_INITIATION_SUMMARY.md +0 -380
  500. package/plan/001_d3bb02af4886/docs/research/CYCLE_DETECTION_PATTERNS.md +0 -1923
  501. package/plan/001_d3bb02af4886/docs/research/CYCLE_DETECTION_QUICK_REF.md +0 -319
  502. package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/codebase-context.md +0 -115
  503. package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/cycle-detection-algorithms.md +0 -134
  504. package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/test-patterns.md +0 -153
  505. package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/workflow-class.md +0 -132
  506. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/DECORATOR_DOCUMENTATION_BEST_PRACTICES.md +0 -716
  507. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/DECORATOR_DOCUMENTATION_QUICK_REF.md +0 -186
  508. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/GROUNDSWELL_DECORATOR_EXAMPLES.md +0 -604
  509. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/INDEX.md +0 -213
  510. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/codebase_structure.md +0 -30
  511. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/existing_test_pattern.md +0 -56
  512. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/getRootObservers_implementation.md +0 -53
  513. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/test_conventions.md +0 -49
  514. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/PRP.md +0 -958
  515. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/QUICK_REFERENCE.md +0 -339
  516. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/README.md +0 -305
  517. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/SUMMARY.md +0 -433
  518. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/bidirectional-tree-consistency-testing.md +0 -1574
  519. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/test-pattern-examples.md +0 -1014
  520. package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_BEST_PRACTICES.md +0 -1929
  521. package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_CODE_PATTERNS.md +0 -857
  522. package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_INTEGRATION_GUIDE.md +0 -738
  523. package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_RESEARCH_INDEX.md +0 -424
  524. package/plan/001_d3bb02af4886/docs/research/P1P2/REFLECTION_INDEX.md +0 -291
  525. package/plan/001_d3bb02af4886/docs/research/P1P2/REFLECTION_RESEARCH_REPORT.md +0 -1342
  526. package/plan/001_d3bb02af4886/docs/research/P1P2/RESEARCH_SUMMARY.md +0 -342
  527. package/plan/001_d3bb02af4886/docs/research/P1P2/anthropic-sdk.md +0 -174
  528. package/plan/001_d3bb02af4886/docs/research/P1P2/async-local-storage.md +0 -200
  529. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-code-patterns.md +0 -1205
  530. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-decision-matrix.md +0 -421
  531. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-implementation-guide.md +0 -1341
  532. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-integration-guide.md +0 -834
  533. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-patterns.md +0 -1468
  534. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-quick-reference.md +0 -558
  535. package/plan/001_d3bb02af4886/docs/research/P1P2/zod-schema.md +0 -152
  536. package/plan/001_d3bb02af4886/docs/research/P3P4/caching-lru.md +0 -116
  537. package/plan/001_d3bb02af4886/docs/research/P3P4/introspection-tools.md +0 -177
  538. package/plan/001_d3bb02af4886/docs/research/P3P4/reflection-patterns.md +0 -117
  539. package/plan/001_d3bb02af4886/docs/research/P4P5/RESEARCH_SUMMARY.md +0 -151
  540. package/plan/001_d3bb02af4886/docs/research/PROMISE_ALLSETTLED_QUICK_REF.md +0 -376
  541. package/plan/001_d3bb02af4886/docs/research/PROMISE_ALLSETTLED_RESEARCH.md +0 -1507
  542. package/plan/001_d3bb02af4886/docs/research/bugfix_typescript_patterns.md +0 -949
  543. package/plan/001_d3bb02af4886/docs/research/error-testing-research.md +0 -619
  544. package/plan/001_d3bb02af4886/docs/research/error_handling_patterns.md +0 -723
  545. package/plan/001_d3bb02af4886/docs/research/general/INTROSPECTION_RESEARCH_SUMMARY.md +0 -378
  546. package/plan/001_d3bb02af4886/docs/research/general/README-INTROSPECTION.md +0 -352
  547. package/plan/001_d3bb02af4886/docs/research/general/agent-introspection-patterns.md +0 -1085
  548. package/plan/001_d3bb02af4886/docs/research/general/introspection-security-guide.md +0 -984
  549. package/plan/001_d3bb02af4886/docs/research/general/introspection-tool-examples.md +0 -875
  550. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/PRP_TEMPLATE.md +0 -460
  551. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/QUICK_REFERENCE.md +0 -324
  552. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/README.md +0 -175
  553. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/RESEARCH_REPORT.md +0 -499
  554. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/SUMMARY.md +0 -163
  555. package/plan/001_d3bb02af4886/prd_snapshot.md +0 -543
  556. package/plan/bugfix/BUG_FIX_SUMMARY.md +0 -961
  557. package/scripts/generate-llms-full.ts +0 -206
  558. package/src/__tests__/adversarial/attachChild-performance.test.ts +0 -216
  559. package/src/__tests__/adversarial/circular-reference.test.ts +0 -101
  560. package/src/__tests__/adversarial/complex-circular-reference.test.ts +0 -139
  561. package/src/__tests__/adversarial/concurrent-task-failures.test.ts +0 -571
  562. package/src/__tests__/adversarial/deep-analysis.test.ts +0 -729
  563. package/src/__tests__/adversarial/deep-hierarchy-stress.test.ts +0 -213
  564. package/src/__tests__/adversarial/e2e-prd-validation.test.ts +0 -448
  565. package/src/__tests__/adversarial/edge-case.test.ts +0 -703
  566. package/src/__tests__/adversarial/error-merge-strategy.test.ts +0 -760
  567. package/src/__tests__/adversarial/incremental-performance.test.ts +0 -140
  568. package/src/__tests__/adversarial/node-map-update-benchmarks.test.ts +0 -457
  569. package/src/__tests__/adversarial/observer-propagation.test.ts +0 -487
  570. package/src/__tests__/adversarial/parent-validation.test.ts +0 -143
  571. package/src/__tests__/adversarial/prd-12-2-compliance.test.ts +0 -611
  572. package/src/__tests__/adversarial/prd-compliance.test.ts +0 -731
  573. package/src/__tests__/compatibility/backward-compatibility.test.ts +0 -1572
  574. package/src/__tests__/helpers/tree-verification.ts +0 -257
  575. package/src/__tests__/integration/agent-workflow.test.ts +0 -256
  576. package/src/__tests__/integration/bidirectional-consistency.test.ts +0 -847
  577. package/src/__tests__/integration/observer-logging.test.ts +0 -643
  578. package/src/__tests__/integration/tree-mirroring.test.ts +0 -151
  579. package/src/__tests__/integration/workflow-reparenting.test.ts +0 -303
  580. package/src/__tests__/unit/agent.test.ts +0 -169
  581. package/src/__tests__/unit/cache-key.test.ts +0 -182
  582. package/src/__tests__/unit/cache.test.ts +0 -172
  583. package/src/__tests__/unit/context.test.ts +0 -217
  584. package/src/__tests__/unit/decorators.test.ts +0 -100
  585. package/src/__tests__/unit/introspection-tools.test.ts +0 -277
  586. package/src/__tests__/unit/logger.test.ts +0 -293
  587. package/src/__tests__/unit/observable.test.ts +0 -321
  588. package/src/__tests__/unit/prompt.test.ts +0 -135
  589. package/src/__tests__/unit/reflection.test.ts +0 -210
  590. package/src/__tests__/unit/tree-debugger-incremental.test.ts +0 -170
  591. package/src/__tests__/unit/tree-debugger.test.ts +0 -85
  592. package/src/__tests__/unit/utils/workflow-error-utils.test.ts +0 -209
  593. package/src/__tests__/unit/workflow-detachChild.test.ts +0 -100
  594. package/src/__tests__/unit/workflow-emitEvent-childDetached.test.ts +0 -153
  595. package/src/__tests__/unit/workflow-isDescendantOf.test.ts +0 -180
  596. package/src/__tests__/unit/workflow.test.ts +0 -357
  597. package/src/cache/cache-key.ts +0 -244
  598. package/src/cache/cache.ts +0 -236
  599. package/src/core/agent.ts +0 -593
  600. package/src/core/event-tree.ts +0 -260
  601. package/src/core/logger.ts +0 -112
  602. package/src/core/mcp-handler.ts +0 -184
  603. package/src/core/prompt.ts +0 -150
  604. package/src/core/workflow-context.ts +0 -351
  605. package/src/core/workflow.ts +0 -540
  606. package/src/debugger/tree-debugger.ts +0 -255
  607. package/src/decorators/observed-state.ts +0 -95
  608. package/src/decorators/step.ts +0 -139
  609. package/src/decorators/task.ts +0 -159
  610. package/src/examples/tdd-orchestrator.ts +0 -65
  611. package/src/examples/test-cycle-workflow.ts +0 -64
  612. package/src/index.ts +0 -142
  613. package/src/reflection/reflection.ts +0 -407
  614. package/src/tools/index.ts +0 -36
  615. package/src/tools/introspection.ts +0 -464
  616. package/src/types/agent.ts +0 -90
  617. package/src/types/decorators.ts +0 -32
  618. package/src/types/error-strategy.ts +0 -13
  619. package/src/types/error.ts +0 -20
  620. package/src/types/events.ts +0 -75
  621. package/src/types/index.ts +0 -55
  622. package/src/types/logging.ts +0 -24
  623. package/src/types/observer.ts +0 -18
  624. package/src/types/prompt.ts +0 -40
  625. package/src/types/reflection.ts +0 -117
  626. package/src/types/sdk-primitives.ts +0 -128
  627. package/src/types/workflow-context.ts +0 -163
  628. package/src/types/workflow.ts +0 -37
  629. package/src/utils/id.ts +0 -11
  630. package/src/utils/observable.ts +0 -106
  631. package/src/utils/workflow-error-utils.ts +0 -56
  632. package/tsconfig.json +0 -22
  633. package/vitest.config.ts +0 -16
@@ -1,346 +0,0 @@
1
- # Bug Fix Research Summary - Hierarchical Workflow Engine
2
-
3
- **Date:** 2025-01-12
4
- **Project:** Hierarchical Workflow Engine Bug Fixes
5
- **Document:** Bug Fix Requirements (Creative PRD Validation Testing)
6
-
7
- ---
8
-
9
- ## Executive Summary
10
-
11
- This document summarizes the research phase for the Hierarchical Workflow Engine bug fix project. All 9 bugs identified during PRD validation testing have been analyzed, validated against the codebase, and decomposed into atomic implementation tasks.
12
-
13
- ### Key Findings
14
-
15
- - **All 9 bug report claims VALIDATED** - Code exists exactly as stated in the bug report
16
- - **344 existing tests** - 100% pass rate maintained throughout bug fixes
17
- - **4 Phases, 4 Milestones, 11 Tasks, 46 Subtasks** - Complete implementation plan created
18
- - **Backward compatibility prioritized** - All fixes maintain existing API contracts where possible
19
-
20
- ---
21
-
22
- ## Research Artifacts Created
23
-
24
- ### Architecture Documentation
25
-
26
- Three comprehensive architecture documents were created in `plan/bugfix/architecture/`:
27
-
28
- #### 1. codebase_structure.md (14KB)
29
- **Purpose:** Complete codebase mapping and bug claim validation
30
-
31
- **Contents:**
32
- - Directory structure overview
33
- - Key files and responsibilities
34
- - Validation of all 7 bug report claims with evidence
35
- - Decorator system pattern analysis
36
- - Error class hierarchy
37
- - Observer pattern implementation
38
- - Logger architecture details
39
- - Dual tree architecture explanation
40
- - Event type catalog
41
- - Testing strategy overview
42
- - Dependencies list
43
-
44
- **Key Validation:** Confirmed all bug report claims are accurate with line numbers and code snippets.
45
-
46
- #### 2. error_handling_patterns.md (9.6KB)
47
- **Purpose:** Deep analysis of error handling architecture and Promise.all usage
48
-
49
- **Contents:**
50
- - WorkflowError interface structure
51
- - All Promise.all usage locations (3 found)
52
- - Step-by-step error propagation flow
53
- - Why ErrorMergeStrategy exists but isn't used (4 reasons)
54
- - Recommended Promise.allSettled implementation pattern
55
- - Production-ready code examples
56
- - Usage examples for error aggregation
57
- - Additional findings (error events, state capture, recovery patterns, testing coverage)
58
-
59
- **Key Finding:** ErrorMergeStrategy is defined but completely unused - requires TaskOptions extension and Promise.allSettled implementation.
60
-
61
- #### 3. concurrent_execution_best_practices.md (47KB)
62
- **Purpose:** Research on production workflow engine patterns and best practices
63
-
64
- **Contents:**
65
- - Promise.all vs Promise.allSettled technical comparison
66
- - Production patterns from Temporal.io, AWS Step Functions, Cadence, Apache Airflow
67
- - 4 error aggregation strategies with analysis
68
- - Decision framework for fail-fast vs complete-all
69
- - Strategy selection matrix (10 real-world scenarios)
70
- - Groundswell-specific recommendations with code examples
71
- - 4-phase implementation roadmap
72
- - Complete code examples for WorkflowAggregateError
73
-
74
- **Key Recommendation:** Default to 'complete-all' strategy for observability, maintain 'fail-fast' as initial default for backward compatibility.
75
-
76
- ---
77
-
78
- ## Bug Fix Task Breakdown
79
-
80
- ### File: `./bug_fix_tasks.json` (36KB, 436 lines)
81
-
82
- **Structure:**
83
- ```json
84
- {
85
- "backlog": [
86
- {
87
- "type": "Phase",
88
- "id": "P1",
89
- "title": "Bug Fixes - Hierarchical Workflow Engine",
90
- "status": "Ready",
91
- "milestones": [
92
- { "type": "Milestone", "id": "P1.M1", ... }, // Critical Fixes
93
- { "type": "Milestone", "id": "P1.M2", ... }, // Major Fixes
94
- { "type": "Milestone", "id": "P1.M3", ... }, // Minor Fixes
95
- { "type": "Milestone", "id": "P1.M4", ... } // Validation
96
- ]
97
- }
98
- ]
99
- }
100
- ```
101
-
102
- ### Milestone Breakdown
103
-
104
- #### P1.M1: Critical Fixes - Signature Mismatches (1 Task, 4 Subtasks)
105
- **Focus:** WorkflowLogger.child() signature mismatch
106
-
107
- **Task:** Fix WorkflowLogger.child() Signature Mismatch
108
- - S1: Research PRD specification (1 SP)
109
- - S2: Update signature to accept Partial<LogEntry> (2 SP)
110
- - S3: Add tests for new signature (2 SP)
111
- - S4: Verify backward compatibility (1 SP)
112
-
113
- **Story Points:** 6
114
-
115
- **Key Deliverable:** child() accepts Partial<LogEntry> while maintaining backward compatibility with string argument.
116
-
117
- ---
118
-
119
- #### P1.M2: Major Fixes - Concurrent Execution & Error Handling (3 Tasks, 11 Subtasks)
120
- **Focus:** Promise.all replacement and ErrorMergeStrategy implementation
121
-
122
- **Task 1:** Replace Promise.all with Promise.allSettled
123
- - S1: Analyze current implementation (1 SP)
124
- - S2: Implement Promise.allSettled (2 SP)
125
- - S3: Add concurrent failure tests (2 SP)
126
- - S4: Run full test suite (1 SP)
127
-
128
- **Task 2:** Implement ErrorMergeStrategy Support
129
- - S1: Add to TaskOptions interface (1 SP)
130
- - S2: Implement aggregation logic (2 SP)
131
- - S3: Create default merger (1 SP)
132
- - S4: Add tests (2 SP)
133
-
134
- **Task 3:** Document trackTiming Default
135
- - S1: Locate PRD section (1 SP)
136
- - S2: Update documentation (1 SP)
137
-
138
- **Story Points:** 14
139
-
140
- **Key Deliverable:** Concurrent tasks use Promise.allSettled with opt-in error aggregation via ErrorMergeStrategy.
141
-
142
- ---
143
-
144
- #### P1.M3: Minor Fixes - Logging & Performance (4 Tasks, 11 Subtasks)
145
- **Focus:** Observer error handling, performance optimizations, validation
146
-
147
- **Task 1:** Replace console.error with Logger
148
- - S1: Find all console.error calls (1 SP)
149
- - S2: Replace with logger.error (2 SP)
150
- - S3: Add tests (1 SP)
151
-
152
- **Task 2:** Optimize Tree Debugger Node Map
153
- - S1: Analyze onTreeChanged (1 SP)
154
- - S2: Implement incremental updates (2 SP)
155
- - S3: Add benchmarks (1 SP)
156
-
157
- **Task 3:** Add Workflow Name Validation
158
- - S1: Determine requirements (1 SP)
159
- - S2: Implement validation (1 SP)
160
- - S3: Add tests (1 SP)
161
-
162
- **Task 4:** Consider Exposing isDescendantOf
163
- - S1: Evaluate use cases (1 SP)
164
- - S2: Implement if approved (1 SP)
165
- - S3: Add tests (1 SP)
166
-
167
- **Story Points:** 14
168
-
169
- **Key Deliverable:** Observer errors use logger, tree debugger has incremental updates, optional name validation.
170
-
171
- ---
172
-
173
- #### P1.M4: Validation & Documentation (3 Tasks, 7 Subtasks)
174
- **Focus:** Testing, documentation, and backward compatibility
175
-
176
- **Task 1:** Run Full Test Suite
177
- - S1: Execute tests (1 SP)
178
- - S2: Fix failures (2 SP)
179
-
180
- **Task 2:** Create Bug Fix Summary
181
- - S1: Document fixes (2 SP)
182
- - S2: Update changelog (1 SP)
183
-
184
- **Task 3:** Verify Backward Compatibility
185
- - S1: Audit breaking changes (1 SP)
186
- - S2: Add compatibility tests (2 SP)
187
-
188
- **Story Points:** 9
189
-
190
- **Key Deliverable:** All tests pass, complete documentation, backward compatibility verified.
191
-
192
- ---
193
-
194
- ## Total Project Metrics
195
-
196
- - **Total Story Points:** 43
197
- - **Estimated Effort:** ~2-3 weeks (1 developer)
198
- - **Critical Issues:** 1 fixed
199
- - **Major Issues:** 3 fixed
200
- - **Minor Issues:** 5 fixed (2 evaluated, may not implement)
201
- - **Test Coverage:** 344+ existing tests maintained
202
- - **Documentation:** 3 architecture docs (70KB) + task breakdown (36KB)
203
-
204
- ---
205
-
206
- ## Risk Assessment
207
-
208
- ### High Risk Items
209
- 1. **WorkflowLogger.child() signature change** - Public API change, requires careful backward compatibility
210
- 2. **Promise.all to Promise.allSettled** - Changes concurrent execution semantics, may break existing error handling expectations
211
-
212
- ### Medium Risk Items
213
- 1. **ErrorMergeStrategy implementation** - New feature added to existing codebase, requires thorough testing
214
- 2. **Observer error handling** - Changes internal error flow, may affect debugging workflows
215
-
216
- ### Low Risk Items
217
- 1. **Documentation updates** - No code changes
218
- 2. **Performance optimizations** - Implementation detail, doesn't change behavior
219
- 3. **Validation additions** - Only affects previously invalid inputs
220
-
221
- ---
222
-
223
- ## Migration Considerations
224
-
225
- ### Breaking Changes
226
- 1. **WorkflowLogger.child() signature**
227
- - Old: `child(parentLogId: string)`
228
- - New: `child(meta: Partial<LogEntry>)`
229
- - Migration: String argument still works (backward compatible), but users should migrate to Partial<LogEntry> for new features
230
-
231
- ### Non-Breaking Changes
232
- 1. **Promise.allSettled** - Behavior change but API unchanged
233
- 2. **ErrorMergeStrategy** - Opt-in new feature
234
- 3. **Observer error logging** - Internal implementation detail
235
- 4. **Tree debugger optimization** - Performance improvement, behavior unchanged
236
-
237
- ---
238
-
239
- ## Testing Strategy
240
-
241
- ### Existing Tests
242
- - **344 tests** - All must continue passing
243
- - **100% pass rate** - Quality gate for completion
244
- - **Adversarial tests** - Edge case coverage already exists
245
-
246
- ### New Tests Required
247
- 1. **WorkflowLogger.child()** - 4 test scenarios
248
- 2. **Concurrent failures** - 4 test scenarios
249
- 3. **ErrorMergeStrategy** - 3 test scenarios
250
- 4. **Observer error logging** - 2 test scenarios
251
- 5. **Tree debugger performance** - Benchmark tests
252
- 6. **Name validation** - 3 test scenarios (if implemented)
253
- 7. **Backward compatibility** - Migration path tests
254
-
255
- ### Test Execution
256
- ```bash
257
- # Run all tests
258
- npm test
259
-
260
- # Run specific test suites
261
- npm test -- logger
262
- npm test -- concurrent
263
- npm test -- error-merge
264
- ```
265
-
266
- ---
267
-
268
- ## Implementation Order Recommendation
269
-
270
- ### Phase 1: Critical Fixes (Week 1, Days 1-2)
271
- 1. Fix WorkflowLogger.child() signature
272
- 2. Verify backward compatibility
273
- 3. Update PRD documentation for trackTiming
274
-
275
- ### Phase 2: Major Fixes (Week 1, Days 3-5)
276
- 1. Implement Promise.allSettled
277
- 2. Add ErrorMergeStrategy support
278
- 3. Test concurrent execution scenarios
279
-
280
- ### Phase 3: Minor Fixes (Week 2, Days 1-3)
281
- 1. Replace console.error with logger
282
- 2. Optimize tree debugger
283
- 3. Evaluate name validation and isDescendantOf
284
-
285
- ### Phase 4: Validation (Week 2, Days 4-5)
286
- 1. Full test suite execution
287
- 2. Documentation and changelog
288
- 3. Backward compatibility verification
289
-
290
- ---
291
-
292
- ## Success Criteria
293
-
294
- ### Must Have (Blocking)
295
- - ✅ All 344 existing tests pass
296
- - ✅ All critical bugs fixed (child() signature)
297
- - ✅ All major bugs fixed (Promise.allSettled, ErrorMergeStrategy)
298
- - ✅ No regressions introduced
299
- - ✅ Backward compatibility maintained
300
-
301
- ### Should Have (Important)
302
- - ✅ Observer errors use logger
303
- - ✅ Tree debugger performance optimized
304
- - ✅ Complete documentation and changelog
305
- - ✅ Comprehensive test coverage for new features
306
-
307
- ### Could Have (Nice to Have)
308
- - ⚠️ Workflow name validation (decision pending)
309
- - ⚠️ Public isDescendantOf API (decision pending)
310
-
311
- ---
312
-
313
- ## Next Steps
314
-
315
- 1. **Review this research summary** with stakeholders
316
- 2. **Approve task breakdown** in `bug_fix_tasks.json`
317
- 3. **Begin implementation** starting with P1.M1 (Critical Fixes)
318
- 4. **Track progress** using task IDs (e.g., P1.M1.T1.S1)
319
- 5. **Update research docs** if implementation reveals new information
320
-
321
- ---
322
-
323
- ## Appendix: File Locations
324
-
325
- ### Research Documents
326
- - `plan/bugfix/architecture/codebase_structure.md` - Codebase mapping
327
- - `plan/bugfix/architecture/error_handling_patterns.md` - Error analysis
328
- - `plan/bugfix/architecture/concurrent_execution_best_practices.md` - Best practices
329
- - `plan/bugfix/RESEARCH_SUMMARY.md` - This document
330
-
331
- ### Implementation Artifacts
332
- - `./bug_fix_tasks.json` - Complete task breakdown (USE THIS FILE)
333
-
334
- ### Source Files Referenced
335
- - `src/core/logger.ts:84` - child() method
336
- - `src/decorators/task.ts:112` - Promise.all usage
337
- - `src/types/error-strategy.ts` - ErrorMergeStrategy interface
338
- - `src/decorators/step.ts:94` - trackTiming default
339
- - `src/core/workflow.ts:376,124-139` - Observer errors and getRootObservers
340
- - `src/debugger/tree-debugger.ts:80-84` - Tree rebuild logic
341
-
342
- ---
343
-
344
- **Document Status:** ✅ Complete
345
- **Ready for Implementation:** ✅ Yes
346
- **Task Breakdown Available:** ✅ Yes (`./bug_fix_tasks.json`)
@@ -1,311 +0,0 @@
1
- # Codebase Structure Analysis - Hierarchical Workflow Engine
2
-
3
- ## 1. Directory Structure Overview
4
-
5
- ```
6
- /home/dustin/projects/groundswell/
7
- ├── src/
8
- │ ├── core/ # Core workflow engine
9
- │ │ ├── workflow.ts # Main Workflow class
10
- │ │ ├── logger.ts # WorkflowLogger
11
- │ │ ├── agent.ts # Agent class
12
- │ │ ├── prompt.ts # Prompt class
13
- │ │ ├── context.ts # Execution context
14
- │ │ ├── workflow-context.ts
15
- │ │ ├── event-tree.ts # Event tree implementation
16
- │ │ ├── factory.ts # Factory functions
17
- │ │ └── mcp-handler.ts # MCP (Model Context Protocol) handler
18
- │ ├── decorators/ # Decorator implementations
19
- │ │ ├── step.ts # @Step decorator
20
- │ │ ├── task.ts # @Task decorator
21
- │ │ └── observed-state.ts # @ObservedState decorator
22
- │ ├── types/ # TypeScript type definitions
23
- │ │ ├── workflow.ts # WorkflowNode, WorkflowStatus
24
- │ │ ├── error.ts # WorkflowError interface
25
- │ │ ├── error-strategy.ts # ErrorMergeStrategy
26
- │ │ ├── observer.ts # WorkflowObserver interface
27
- │ │ ├── events.ts # WorkflowEvent discriminated union
28
- │ │ ├── logging.ts # LogEntry, LogLevel
29
- │ │ ├── decorators.ts # StepOptions, TaskOptions
30
- │ │ └── index.ts # Type exports
31
- │ ├── debugger/ # Debugging tools
32
- │ │ └── tree-debugger.ts # WorkflowTreeDebugger
33
- │ ├── cache/ # Caching system
34
- │ │ ├── cache.ts # LLMCache
35
- │ │ └── cache-key.ts # Cache key generation
36
- │ ├── reflection/ # Reflection system
37
- │ │ └── reflection.ts # ReflectionManager
38
- │ ├── tools/ # Introspection tools
39
- │ │ └── introspection.ts
40
- │ ├── utils/ # Utilities
41
- │ │ ├── id.ts # generateId()
42
- │ │ └── observable.ts # Observable class
43
- │ ├── __tests__/ # Test suites
44
- │ │ ├── unit/
45
- │ │ ├── integration/
46
- │ │ └── adversarial/ # Edge case and stress tests
47
- │ └── index.ts # Main exports
48
- ├── examples/ # Example workflows
49
- ├── docs/ # Documentation
50
- └── package.json # Project configuration
51
- ```
52
-
53
- ## 2. Key Files and Their Responsibilities
54
-
55
- | File | Responsibility |
56
- |------|----------------|
57
- | `src/core/workflow.ts` | Main Workflow class supporting both class-based (subclass with run()) and functional (executor) patterns. Manages parent-child relationships, observers, event emission, and tree structure validation. |
58
- | `src/core/logger.ts` | WorkflowLogger class that emits log entries to workflow nodes and observers with hierarchical logging support via child() method. |
59
- | `src/decorators/step.ts` | @Step decorator that wraps methods to emit stepStart/stepEnd events, track timing, handle errors, and optionally snapshot state. |
60
- | `src/decorators/task.ts` | @Task decorator that wraps methods returning child workflows, automatically attaches them, and supports concurrent execution. |
61
- | `src/decorators/observed-state.ts` | @ObservedState decorator for marking fields to include in state snapshots with support for redaction and hiding. |
62
- | `src/debugger/tree-debugger.ts` | WorkflowTreeDebugger observer that builds node lookup maps and renders ASCII tree visualizations. |
63
- | `src/types/error.ts` | WorkflowError interface containing message, original error, workflowId, stack, state snapshot, and logs. |
64
- | `src/types/error-strategy.ts` | ErrorMergeStrategy interface for merging multiple errors from concurrent operations. |
65
- | `src/types/observer.ts` | WorkflowObserver interface defining onLog, onEvent, onStateUpdated, and onTreeChanged methods. |
66
- | `src/utils/observable.ts` | Lightweight Observable implementation for event streaming with subscription management. |
67
- | `src/utils/id.ts` | generateId() utility using crypto.randomUUID with timestamp fallback. |
68
-
69
- ## 3. Bug Report Claim Validation
70
-
71
- | Claim | Location | Status | Evidence |
72
- |-------|----------|--------|----------|
73
- | **WorkflowLogger.child() signature** | `src/core/logger.ts:84` | ✅ **CONFIRMED** | Line 84: `child(parentLogId: string): WorkflowLogger {` - Returns new WorkflowLogger with parentLogId passed to constructor |
74
- | **Concurrent task execution** | `src/decorators/task.ts:112` | ✅ **CONFIRMED** | Line 112: `await Promise.all(runnable.map((w) => w.run()));` - Executes runnable workflows in parallel when `opts.concurrent` is true |
75
- | **ErrorMergeStrategy definition** | `src/types/error-strategy.ts` | ✅ **CONFIRMED** | File exists with interface defining `enabled: boolean`, `maxMergeDepth?: number`, and `combine?(errors: WorkflowError[]): WorkflowError` |
76
- | **trackTiming default** | `src/decorators/step.ts:94` | ✅ **CONFIRMED** | Line 94: `if (opts.trackTiming !== false)` - Default is true (timing tracked unless explicitly disabled) |
77
- | **Observer error handling** | `src/core/workflow.ts:376` | ✅ **CONFIRMED** | Lines 367-377: Observer callbacks wrapped in try-catch with `console.error('Observer onEvent error:', err);` at line 376 |
78
- | **getRootObservers method** | `src/core/workflow.ts:124-139` | ✅ **CONFIRMED** | Lines 124-139: Private method traversing parent chain with cycle detection using visited Set |
79
- | **Tree debugger node map** | `src/debugger/tree-debugger.ts:80-84` | ✅ **CONFIRMED** | Lines 80-84: onTreeChanged() clears nodeMap and calls buildNodeMap(root); buildNodeMap() at line 54 uses `this.nodeMap.set(node.id, node);` |
80
-
81
- **All 7 bug report claims are VALID and the code exists exactly as stated.**
82
-
83
- ## 4. Decorator System Pattern
84
-
85
- The codebase uses **standard ECMAScript Stage 3 Decorators** (not legacy TypeScript decorators).
86
-
87
- ### Pattern Structure
88
-
89
- All decorators follow this pattern:
90
- ```typescript
91
- export function DecoratorName(opts: Options = {}) {
92
- return function <This, Args extends unknown[], Return>(
93
- originalMethod: (this: This, ...args: Args) => Promise<Return>,
94
- context: ClassMethodDecoratorContext<This, (this: This, ...args: Args) => Promise<Return>>
95
- ) {
96
- // CRITICAL: Use regular function, not arrow function
97
- async function wrapper(this: This, ...args: Args): Promise<Return> {
98
- // Cast to WorkflowLike for accessing workflow properties
99
- const wf = this as unknown as WorkflowLike;
100
-
101
- // Pre-processing (emit events, capture start time)
102
-
103
- const result = await originalMethod.call(this, ...args);
104
-
105
- // Post-processing (emit events, attach children, etc.)
106
-
107
- return result;
108
- }
109
-
110
- return wrapper;
111
- };
112
- }
113
- ```
114
-
115
- ### Key Design Decisions
116
-
117
- 1. **Regular function over arrow functions** - Preserves `this` binding for instance access
118
- 2. **WorkflowLike interface casting** - Enables duck-typing for workflow-like objects
119
- 3. **Lenient validation** - Non-workflow returns are silently skipped rather than throwing
120
- 4. **Event emission pattern** - All decorators emit events via `wf.emitEvent()`
121
-
122
- ## 5. Error Class Hierarchy
123
-
124
- ```
125
- WorkflowError (interface)
126
- ├── message: string
127
- ├── original: unknown // Original thrown error
128
- ├── workflowId: string // ID where error occurred
129
- ├── stack?: string // Stack trace if available
130
- ├── state: SerializedWorkflowState // State snapshot at error time
131
- └── logs: LogEntry[] // Logs from failing node
132
-
133
- ErrorMergeStrategy (interface)
134
- ├── enabled: boolean // Enable error merging (default: false)
135
- ├── maxMergeDepth?: number // Maximum depth to merge errors
136
- └── combine?(errors: WorkflowError[]): WorkflowError // Custom combiner
137
- ```
138
-
139
- Error handling flow:
140
- 1. Errors caught in decorator wrappers (@Step, @Task)
141
- 2. Enriched with workflow context (state, logs, workflowId)
142
- 3. Emitted as 'error' events to observers
143
- 4. Re-thrown for upstream handling
144
-
145
- ## 6. Observer Pattern Implementation
146
-
147
- ### Observer Interface
148
-
149
- ```typescript
150
- interface WorkflowObserver {
151
- onLog(entry: LogEntry): void;
152
- onEvent(event: WorkflowEvent): void;
153
- onStateUpdated(node: WorkflowNode): void;
154
- onTreeChanged(root: WorkflowNode): void;
155
- }
156
- ```
157
-
158
- ### Observer Management
159
-
160
- - **Registration**: `workflow.addObserver(observer)` - Only allowed on root workflows
161
- - **Storage**: Private `observers: WorkflowObserver[]` array on root workflow
162
- - **Propagation**: Child workflows access root observers via `getRootObservers()` method
163
- - **Error isolation**: All observer callbacks wrapped in try-catch to prevent observer failures from affecting workflow execution
164
-
165
- ### Event Flow
166
-
167
- ```
168
- Workflow.emitEvent()
169
- ├── Push to node.events array
170
- ├── Get observers via getRootObservers()
171
- └── For each observer:
172
- ├── Call onEvent(event)
173
- ├── Call onTreeChanged(root) if tree update event
174
- └── Catch and log errors (console.error)
175
- ```
176
-
177
- ### Key Implementation Details
178
-
179
- 1. **Root-only observers**: Observers can only be added to root workflows (throws error if parent exists)
180
- 2. **Cycle-safe traversal**: `getRootObservers()` uses visited Set to detect circular parent-child relationships
181
- 3. **Lazy initialization**: Logger created with root observers in constructor
182
- 4. **Multiple observer types**: WorkflowTreeDebugger, custom observers can be attached
183
-
184
- ## 7. Logger Architecture
185
-
186
- ### WorkflowLogger Class
187
-
188
- ```typescript
189
- class WorkflowLogger {
190
- private readonly parentLogId?: string;
191
-
192
- constructor(
193
- private readonly node: WorkflowNode,
194
- private readonly observers: WorkflowObserver[],
195
- parentLogId?: string
196
- )
197
-
198
- // Logging methods
199
- debug(message: string, data?: unknown): void
200
- info(message: string, data?: unknown): void
201
- warn(message: string, data?: unknown): void
202
- error(message: string, data?: unknown): void
203
-
204
- // Hierarchical logging
205
- child(parentLogId: string): WorkflowLogger
206
- }
207
- ```
208
-
209
- ### Log Entry Structure
210
-
211
- ```typescript
212
- interface LogEntry {
213
- id: string; // Unique identifier
214
- workflowId: string; // Workflow that created log
215
- timestamp: number; // Unix timestamp in ms
216
- level: LogLevel; // 'debug' | 'info' | 'warn' | 'error'
217
- message: string; // Log message
218
- data?: unknown; // Optional structured data
219
- parentLogId?: string; // Parent log ID for hierarchy
220
- }
221
- ```
222
-
223
- ### Logging Flow
224
-
225
- 1. Log method called → `log(level, message, data)`
226
- 2. LogEntry created with metadata and parentLogId if child logger
227
- 3. Entry pushed to `node.logs` array
228
- 4. All observers notified via `obs.onLog(entry)`
229
- 5. Observer errors caught and logged to console
230
-
231
- ### Key Features
232
-
233
- - **Hierarchical logging**: `child()` method creates logger with parentLogId reference
234
- - **Observer broadcast**: All log entries sent to all root observers
235
- - **Error isolation**: Observer onLog errors don't stop logging
236
- - **Timestamp tracking**: Automatic timestamp generation
237
-
238
- ## 8. Additional Architecture Patterns
239
-
240
- ### Dual Tree Architecture
241
-
242
- The codebase maintains **two synchronized tree structures**:
243
-
244
- 1. **Workflow Tree**: `workflow.children` array (Workflow class instances)
245
- 2. **Node Tree**: `node.children` array (WorkflowNode data structures)
246
-
247
- This 1:1 mirror is maintained in:
248
- - `attachChild()`: Adds to both trees and sets parent references
249
- - `detachChild()`: Removes from both trees and clears parent references
250
-
251
- ### Cycle Detection
252
-
253
- Three methods use visited Set pattern for cycle detection:
254
-
255
- 1. `getRootObservers()` - Lines 124-139
256
- 2. `isDescendantOf()` - Lines 151-169 (private helper for attachChild validation)
257
- 3. `getRoot()` - Lines 175-190
258
-
259
- All throw `'Circular parent-child relationship detected'` if cycle found.
260
-
261
- ### Event Types
262
-
263
- The discriminated union includes 17+ event types:
264
- - Core: childAttached, childDetached, stateSnapshot, stepStart, stepEnd, error, taskStart, taskEnd, treeUpdated
265
- - Agent: agentPromptStart, agentPromptEnd
266
- - Tools: toolInvocation, mcpEvent
267
- - Reflection: reflectionStart, reflectionEnd
268
- - Cache: cacheHit, cacheMiss
269
-
270
- ## 9. Testing Strategy
271
-
272
- The test suite is organized into:
273
-
274
- - **Unit tests**: Individual component testing
275
- - **Integration tests**: Multi-component workflows
276
- - **Adversarial tests**: Edge cases, circular references, deep hierarchies, PRD compliance
277
-
278
- Test coverage includes:
279
- - Decorator behavior
280
- - Tree mirroring (workflow/node tree consistency)
281
- - Reparenting workflows
282
- - Observer propagation
283
- - attachChild/detachChild validation
284
- - Circular reference detection
285
- - Performance benchmarks (attachChild performance)
286
-
287
- ## 10. Dependencies
288
-
289
- **Core Runtime**:
290
- - `@anthropic-ai/sdk` ^0.71.1 - Anthropic Claude API
291
- - `zod` ^3.23.0 - Schema validation
292
- - `lru-cache` ^10.4.3 - LLM response caching
293
-
294
- **Development**:
295
- - `typescript` ^5.2.0 - Stage 3 decorators support
296
- - `vitest` ^1.0.0 - Testing framework
297
- - `tsx` ^4.21.0 - TypeScript execution
298
-
299
- ## Summary
300
-
301
- The Hierarchical Workflow Engine is a well-architected TypeScript library that provides:
302
-
303
- 1. **Validated bug report claims** - All 7 claims confirmed accurate
304
- 2. **Modern decorator pattern** - ECMAScript Stage 3 decorators with proper `this` preservation
305
- 3. **Robust observer system** - Root-based observer management with error isolation
306
- 4. **Dual tree architecture** - Synchronized workflow and node trees with cycle detection
307
- 5. **Rich error context** - WorkflowError includes state snapshots and logs
308
- 6. **Hierarchical logging** - Parent-child log relationships via child() method
309
- 7. **Comprehensive tooling** - Debugger, caching, reflection, and introspection
310
-
311
- The codebase demonstrates strong engineering practices with clear separation of concerns, extensive type safety, and thorough test coverage including adversarial test cases.