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,719 +0,0 @@
1
- # Product Requirement Prompt (PRP): P1.M3.T2.S1 - Analyze Tree Debugger onTreeChanged Implementation
2
-
3
- **PRP ID**: P1M3T2S1
4
- **Task ID**: P1.M3.T2.S1
5
- **Story Points**: 1
6
- **Status**: Researching
7
- **Created**: 2025-01-12
8
-
9
- ---
10
-
11
- ## Goal
12
-
13
- **Feature Goal**: Conduct a comprehensive analysis of the WorkflowTreeDebugger's `onTreeChanged()` implementation to understand the current full-rebuild behavior and identify opportunities for incremental updates.
14
-
15
- **Deliverable**: Analysis document stored at `plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S1/analysis.md` containing:
16
- - Current rebuild logic documentation with line number references
17
- - Tree change event type analysis (childAttached, childDetached, treeUpdated)
18
- - Performance impact assessment for current O(n) rebuild behavior
19
- - Identified opportunities for incremental O(1)/O(k) updates
20
- - Recommendations for P1.M3.T2.S2 implementation
21
-
22
- **Success Definition**:
23
- - [ ] Analysis document exists at specified path
24
- - [ ] Current implementation behavior fully documented with code references
25
- - [ ] All tree change trigger events identified and documented
26
- - [ ] Performance bottleneck clearly explained with complexity analysis
27
- - [ ] Incremental update opportunities identified with specific recommendations
28
- - [ ] Research findings stored in research/ subdirectory for P1.M3.T2.S2 reference
29
-
30
- ---
31
-
32
- ## User Persona (if applicable)
33
-
34
- **Target User**: Implementation AI agent for P1.M3.T2.S2 and P1.M3.T2.S3
35
-
36
- **Use Case**: The analysis document serves as the foundation for implementing incremental node map updates (P1.M3.T2.S2) and creating benchmark tests (P1.M3.T2.S3).
37
-
38
- **User Journey**:
39
- 1. Read analysis document to understand current behavior
40
- 2. Use identified opportunities to implement incremental updates
41
- 3. Reference performance analysis for benchmark test design
42
- 4. Validate implementation against recommendations
43
-
44
- **Pain Points Addressed**:
45
- - Eliminates need for P1.M3.T2.S2 agent to rediscover current implementation
46
- - Provides concrete recommendations backed by research
47
- - Accelerates implementation by providing clear guidance
48
-
49
- ---
50
-
51
- ## Why
52
-
53
- - **Performance Optimization**: Current O(n) full rebuild on every tree change is inefficient for large workflow trees (1000+ nodes)
54
- - **Foundation for Implementation**: Analysis enables P1.M3.T2.S2 to implement incremental updates without additional research overhead
55
- - **Informed Benchmark Design**: Performance assessment informs P1.M3.T2.S3 benchmark test design
56
- - **Documentation**: Creates permanent record of optimization rationale for future maintainers
57
-
58
- **Business Value**:
59
- - Reduces node map update overhead from O(n) to O(1) for single-node operations
60
- - Enables 100-1000× performance improvement for large trees with frequent structural changes
61
- - Prevents garbage collection pressure from Map.clear() and full rebuild
62
- - Maintains correctness while improving performance
63
-
64
- ---
65
-
66
- ## What
67
-
68
- **User-Visible Behavior**: No behavior change - this is a research and analysis task only.
69
-
70
- **Technical Requirements**:
71
- - Read and analyze `src/debugger/tree-debugger.ts` implementation
72
- - Read and analyze `src/core/workflow.ts` emitEvent and observer notification logic
73
- - Document all tree change events that trigger `onTreeChanged()`
74
- - Map current rebuild logic with specific line number references
75
- - Calculate time complexity of current operations
76
- - Research incremental update patterns
77
- - Document specific opportunities for optimization
78
-
79
- ### Success Criteria
80
-
81
- - [ ] Analysis document contains complete current implementation documentation
82
- - [ ] All three tree change events (childAttached, childDetached, treeUpdated) documented
83
- - [ ] Performance impact quantified with complexity analysis
84
- - [ ] At least 3 specific incremental update opportunities identified
85
- - [ ] Recommendations include code pattern examples
86
- - [ ] External research cited with specific URLs
87
-
88
- ---
89
-
90
- ## All Needed Context
91
-
92
- ### Context Completeness Check
93
-
94
- **"No Prior Knowledge" Test**: If someone knew nothing about this codebase, would they have everything needed to conduct this analysis successfully?
95
-
96
- **Answer**: YES - This PRP provides:
97
- - Exact file paths and line numbers for all relevant code
98
- - Complete WorkflowNode and WorkflowEvent type definitions
99
- - Observer pattern documentation
100
- - Testing framework patterns
101
- - External research with specific URLs
102
- - Output template for analysis document
103
-
104
- ### Documentation & References
105
-
106
- ```yaml
107
- # MUST READ - Code Files (read in order)
108
-
109
- - file: src/debugger/tree-debugger.ts
110
- why: Core implementation to analyze - contains onTreeChanged(), buildNodeMap(), onEvent(), nodeMap
111
- lines: "53-84" # buildNodeMap() and onTreeChanged() implementation
112
- pattern: Recursive tree traversal using for-of loop over node.children
113
- gotcha: "onEvent() at line 66-74 already handles childAttached incrementally - onTreeChanged() redundant"
114
-
115
- - file: src/core/workflow.ts
116
- why: Understanding when onTreeChanged is called via emitEvent()
117
- lines: "360-379" # emitEvent() method showing observer notification logic
118
- pattern: "obs.onTreeChanged(this.getRoot().node) called for childAttached, childDetached, treeUpdated events"
119
- gotcha: "onTreeChanged called AFTER onEvent - causing redundant work for childAttached"
120
-
121
- - file: src/types/workflow.ts
122
- why: WorkflowNode structure definition - needed to understand tree hierarchy
123
- lines: "16-37" # Complete WorkflowNode interface
124
- pattern: "id, name, parent, children[], status, logs[], events[], stateSnapshot"
125
- gotcha: "parent is WorkflowNode | null - null for root nodes"
126
-
127
- - file: src/types/events.ts
128
- why: WorkflowEvent discriminated union - all tree change event types
129
- lines: "8-18" # Core workflow events including childAttached, childDetached, treeUpdated
130
- pattern: "type: 'childAttached' | 'childDetached' | 'treeUpdated' are tree structure change events"
131
- gotcha: "childDetached only provides childId string, not full child node"
132
-
133
- - file: src/types/observer.ts
134
- why: WorkflowObserver interface defining onTreeChanged signature
135
- lines: "9-18" # Complete WorkflowObserver interface
136
- pattern: "onTreeChanged(root: WorkflowNode): void - receives root node after any tree change"
137
- gotcha: "Called for ALL tree events including state changes (via treeUpdated)"
138
-
139
- # EXTERNAL RESEARCH - Read for best practices and patterns
140
-
141
- - url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#instance-methods
142
- why: Map.set(), Map.get(), Map.delete() are O(1) - validates incremental approach feasibility
143
- critical: "Map operations have O(1) average case complexity - incremental updates faster than O(n) rebuild"
144
-
145
- - url: https://react.dev/learn/understanding-reacts-render-phase#rendering-and-committing
146
- why: React reconciliation algorithm - tree diffing strategy reference
147
- critical: "React only updates changed subtrees - same principle applies to node map updates"
148
-
149
- - url: https://v8.dev/blog/elements-kinds#hidden-classes
150
- why: V8 Map optimization and garbage collection behavior
151
- critical: "Map.clear() triggers full GC - incremental updates spread GC cost over time"
152
-
153
- - url: https://stackoverflow.com/questions/38476433/what-is-the-time-complexity-of-map-set-in-javascript#answer-38476768
154
- why: Confirmed O(1) complexity for Map operations
155
- critical: "Map.set() and Map.delete() are O(1) on average in modern JavaScript engines"
156
-
157
- # INTERNAL RESEARCH - Generated research package
158
-
159
- - docfile: plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/QUICK_REFERENCE.md
160
- why: Code examples and implementation patterns for incremental updates
161
- section: "Code Examples - Incremental Update Pattern"
162
-
163
- - docfile: plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/RESEARCH_REPORT.md
164
- why: Comprehensive analysis of current implementation and recommended patterns
165
- section: "Current Implementation Analysis" and "Recommended Implementation"
166
-
167
- - docfile: plan/001_d3bb02af4886/bugfix/architecture/codebase_structure.md
168
- why: Overall codebase architecture and dual tree structure
169
- section: "7. Observer Pattern Implementation" and "8. Additional Architecture Patterns"
170
-
171
- # TEST PATTERNS - For validation approach
172
-
173
- - file: src/__tests__/unit/tree-debugger.test.ts
174
- why: Existing test patterns for tree-debugger functionality
175
- pattern: "WorkflowTreeDebugger instantiation, getNode() lookup, tree string rendering"
176
- gotcha: "Tests verify nodeMap behavior - useful for validating incremental correctness"
177
-
178
- - file: src/__tests__/integration/tree-mirroring.test.ts
179
- why: Observer propagation and treeUpdated event testing
180
- pattern: "treeUpdated events trigger onTreeChanged callback"
181
- gotcha: "Test at lines 115-150 verifies onTreeChanged is called with correct root"
182
- ```
183
-
184
- ### Current Codebase Tree (relevant portions)
185
-
186
- ```
187
- src/
188
- ├── debugger/
189
- │ └── tree-debugger.ts # PRIMARY ANALYSIS TARGET
190
- │ ├── WorkflowTreeDebugger class
191
- │ ├── buildNodeMap() # Line 53-58 - O(n) recursive rebuild
192
- │ ├── onEvent() # Line 66-74 - handles childAttached incrementally
193
- │ ├── onTreeChanged() # Line 80-84 - O(n) full rebuild (OPTIMIZE TARGET)
194
- │ └── nodeMap: Map # Line 33 - node lookup map
195
- ├── core/
196
- │ └── workflow.ts # Event emission logic
197
- │ ├── emitEvent() # Line 363-379 - triggers onTreeChanged
198
- │ ├── attachChild() # Line 266-305 - childAttached trigger
199
- │ └── detachChild() # Line 329-358 - childDetached trigger
200
- ├── types/
201
- │ ├── workflow.ts # WorkflowNode interface
202
- │ ├── events.ts # WorkflowEvent discriminated union
203
- │ └── observer.ts # WorkflowObserver interface
204
- └── __tests__/
205
- ├── unit/
206
- │ └── tree-debugger.test.ts # Existing test patterns
207
- └── integration/
208
- └── tree-mirroring.test.ts # Observer propagation tests
209
- ```
210
-
211
- ### Known Gotchas of Our Codebase & Library Quirks
212
-
213
- ```typescript
214
- // CRITICAL: onEvent() and onTreeChanged() are BOTH called for tree changes
215
- // From src/core/workflow.ts:372-374
216
- if (event.type === 'treeUpdated' || event.type === 'childAttached' || event.type === 'childDetached') {
217
- obs.onTreeChanged(this.getRoot().node); // ❌ This triggers full rebuild
218
- }
219
-
220
- // CRITICAL: onEvent() already handles childAttached incrementally
221
- // From src/debugger/tree-debugger.ts:66-70
222
- onEvent(event: WorkflowEvent): void {
223
- if (event.type === 'childAttached') {
224
- this.buildNodeMap(event.child); // ✅ Already incremental!
225
- }
226
- // Then onTreeChanged() is called, causing REDUNDANT full rebuild
227
- }
228
-
229
- // CRITICAL: childDetached only provides childId, not full node
230
- // From src/types/events.ts:11
231
- { type: 'childDetached'; parentId: string; childId: string }
232
- // Must use stored node reference to collect descendants for removal
233
-
234
- // CRITICAL: buildNodeMap() is recursive - may hit call stack limits on deep trees
235
- // From src/debugger/tree-debugger.ts:53-58
236
- private buildNodeMap(node: WorkflowNode): void {
237
- this.nodeMap.set(node.id, node);
238
- for (const child of node.children) {
239
- this.buildNodeMap(child); // Recursive call
240
- }
241
- }
242
-
243
- // CRITICAL: treeUpdated is called for non-structural changes
244
- // From src/core/workflow.ts:414
245
- this.emitEvent({ type: 'treeUpdated', root: this.getRoot().node });
246
- // Called by setStatus() - NO tree structure change, just status update
247
- // Current implementation rebuilds entire map for status changes!
248
- ```
249
-
250
- ---
251
-
252
- ## Implementation Blueprint
253
-
254
- ### Data Models and Structure
255
-
256
- **No data model changes** - This is a research task only.
257
-
258
- **Data structures to analyze**:
259
-
260
- ```typescript
261
- // From src/types/workflow.ts:20-37
262
- interface WorkflowNode {
263
- id: string; // Unique identifier
264
- name: string; // Human-readable name
265
- parent: WorkflowNode | null; // Parent reference (null for root)
266
- children: WorkflowNode[]; // Child nodes (tree structure)
267
- status: WorkflowStatus; // Current execution state
268
- logs: LogEntry[]; // Log entries
269
- events: WorkflowEvent[]; // Emitted events
270
- stateSnapshot: SerializedWorkflowState | null; // State snapshot
271
- }
272
-
273
- // Tree structure maintained by debugger:
274
- // - this.root: WorkflowNode (root node reference)
275
- // - this.nodeMap: Map<string, WorkflowNode> (id -> node lookup)
276
- ```
277
-
278
- ### Implementation Tasks (ordered by dependencies)
279
-
280
- ```yaml
281
- Task 1: READ and document current implementation
282
- - READ: src/debugger/tree-debugger.ts lines 53-84 (buildNodeMap, onTreeChanged)
283
- - READ: src/debugger/tree-debugger.ts lines 66-74 (onEvent childAttached handling)
284
- - DOCUMENT: Current rebuild logic in analysis.md
285
- - IDENTIFY: Time complexity of buildNodeMap() - O(n) where n = total nodes
286
- - IDENTIFY: Redundant work - childAttached handled in both onEvent() AND onTreeChanged()
287
- - OUTPUT: Section "Current Implementation" in analysis.md
288
-
289
- Task 2: ANALYZE tree change event types
290
- - READ: src/types/events.ts lines 8-18 (core workflow events)
291
- - READ: src/core/workflow.ts lines 360-379 (emitEvent observer notification)
292
- - IDENTIFY: Three events trigger onTreeChanged:
293
- 1. childAttached - new subtree added
294
- 2. childDetached - subtree removed (only childId provided)
295
- 3. treeUpdated - root reference or status change
296
- - DOCUMENT: For each event:
297
- - When it occurs
298
- - What data it provides
299
- - Current onTreeChanged behavior
300
- - Optimal incremental behavior
301
- - OUTPUT: Section "Tree Change Event Analysis" in analysis.md
302
-
303
- Task 3: CALCULATE performance impact
304
- - CALCULATE: Current complexity per event type
305
- - childAttached: O(n) - rebuilds entire map
306
- - childDetached: O(n) - rebuilds entire map
307
- - treeUpdated: O(n) - rebuilds entire map
308
- - CALCULATE: Potential incremental complexity
309
- - childAttached: O(k) where k = nodes in new subtree (already implemented in onEvent)
310
- - childDetached: O(k) where k = nodes in removed subtree
311
- - treeUpdated: O(1) - just update root reference
312
- - CALCULATE: Speedup potential
313
- - Single node attach to 1000-node tree: 1000× faster (O(1000) → O(1))
314
- - Single node detach from 1000-node tree: 100× faster (O(1000) → O(10))
315
- - Root status update: 1000× faster (O(1000) → O(1))
316
- - OUTPUT: Section "Performance Impact Analysis" in analysis.md
317
-
318
- Task 4: IDENTIFY incremental update opportunities
319
- - RESEARCH: Read plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/
320
- - IDENTIFY: Opportunity 1 - Remove redundant childAttached rebuild
321
- - onEvent() already adds new subtree
322
- - onTreeChanged() rebuild is redundant work
323
- - IDENTIFY: Opportunity 2 - Implement childDetached subtree removal
324
- - Use stored node reference to collect descendants
325
- - Remove collected node IDs from map
326
- - IDENTIFY: Opportunity 3 - Replace treeUpdated full rebuild
327
- - Just update this.root reference
328
- - Node references in map unchanged
329
- - IDENTIFY: Opportunity 4 - Eliminate onTreeChanged rebuild entirely
330
- - All tree changes can be handled incrementally in onEvent()
331
- - OUTPUT: Section "Incremental Update Opportunities" in analysis.md
332
-
333
- Task 5: CREATE implementation recommendations
334
- - DOCUMENT: Specific code changes for P1.M3.T2.S2
335
- - Add handleChildDetached() method with BFS subtree collection
336
- - Modify onEvent() to handle childDetached
337
- - Remove full rebuild from onTreeChanged()
338
- - DOCUMENT: Code pattern examples (from research package)
339
- - BFS-based subtree removal
340
- - Incremental update pattern
341
- - DOCUMENT: Gotchas to avoid
342
- - Must remove entire subtree, not just detached node
343
- - Must handle case where node already removed from map
344
- - Recursive removal may hit stack limits - use iterative BFS
345
- - OUTPUT: Section "Implementation Recommendations" in analysis.md
346
-
347
- Task 6: STORE research for P1.M3.T2.S2 and P1.M3.T2.S3
348
- - CREATE: plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S1/research/ directory
349
- - COPY: External research URLs with annotations
350
- - STORE: Code pattern examples for incremental updates
351
- - STORE: Performance benchmark template for P1.M3.T2.S3
352
- - OUTPUT: research/README.md with links to all resources
353
- ```
354
-
355
- ### Implementation Patterns & Key Details
356
-
357
- ```typescript
358
- // Current Implementation (to analyze and document)
359
-
360
- // From src/debugger/tree-debugger.ts:53-58
361
- private buildNodeMap(node: WorkflowNode): void {
362
- // PATTERN: Recursive DFS traversal
363
- this.nodeMap.set(node.id, node);
364
- for (const child of node.children) {
365
- this.buildNodeMap(child); // RECURSIVE - may hit stack limits
366
- }
367
- // COMPLEXITY: O(n) where n = total nodes in tree
368
- // SIDE EFFECT: Replaces entire map content
369
- }
370
-
371
- // From src/debugger/tree-debugger.ts:66-74
372
- onEvent(event: WorkflowEvent): void {
373
- // PATTERN: Event-type dispatch
374
- if (event.type === 'childAttached') {
375
- this.buildNodeMap(event.child); // ✅ Already adds new subtree
376
- }
377
- // GOTCHA: No handling for childDetached - leaks orphaned nodes
378
-
379
- this.events.next(event);
380
- // GOTCHA: After onEvent returns, emitEvent() calls onTreeChanged()
381
- }
382
-
383
- // From src/debugger/tree-debugger.ts:80-84
384
- onTreeChanged(root: WorkflowNode): void {
385
- // PATTERN: Complete map invalidation
386
- this.root = root;
387
- this.nodeMap.clear(); // ❌ Clears entire map
388
- this.buildNodeMap(root); // ❌ O(n) rebuild from scratch
389
- // PROBLEM: Redundant work for childAttached (already handled in onEvent)
390
- // PROBLEM: Unnecessary for treeUpdated (node references unchanged)
391
- }
392
-
393
- // Recommended Incremental Pattern (for recommendations section)
394
-
395
- onEvent(event: WorkflowEvent): void {
396
- switch (event.type) {
397
- case 'childAttached':
398
- // ✅ Keep existing logic - already optimal
399
- this.buildNodeMap(event.child);
400
- break;
401
-
402
- case 'childDetached':
403
- // ✅ NEW: Incremental subtree removal
404
- this.removeSubtree(event.childId);
405
- break;
406
-
407
- case 'treeUpdated':
408
- // ✅ NEW: Just update root reference
409
- this.root = event.root;
410
- break;
411
- }
412
- this.events.next(event);
413
- }
414
-
415
- // BFS-based subtree removal (recommended over recursive)
416
- private removeSubtree(nodeId: string): void {
417
- const node = this.nodeMap.get(nodeId);
418
- if (!node) return;
419
-
420
- // Collect all descendants using BFS (avoid stack overflow)
421
- const toRemove: string[] = [];
422
- const queue = [node];
423
-
424
- while (queue.length > 0) {
425
- const current = queue.shift()!;
426
- toRemove.push(current.id);
427
- queue.push(...current.children);
428
- }
429
-
430
- // Remove all collected nodes
431
- for (const id of toRemove) {
432
- this.nodeMap.delete(id);
433
- }
434
- // COMPLEXITY: O(k) where k = nodes in removed subtree
435
- }
436
-
437
- onTreeChanged(root: WorkflowNode): void {
438
- // ✅ No longer needed - all updates handled in onEvent()
439
- this.root = root;
440
- }
441
- ```
442
-
443
- ### Integration Points
444
-
445
- ```yaml
446
- WORKFLOW EMIT EVENT:
447
- - file: src/core/workflow.ts:363-379
448
- - pattern: "emitEvent() calls obs.onEvent() then obs.onTreeChanged()"
449
- - gotcha: "Both observers called for same event - causes redundant work"
450
-
451
- EVENT TYPES:
452
- - file: src/types/events.ts:10-18
453
- - pattern: "Discriminated union with type field"
454
- - gotcha: "childDetached only provides childId, not full node"
455
-
456
- OBSERVER PATTERN:
457
- - file: src/core/workflow.ts:124-139
458
- - pattern: "getRootObservers() traverses parent chain"
459
- - gotcha: "Uses visited Set for cycle detection"
460
- ```
461
-
462
- ---
463
-
464
- ## Validation Loop
465
-
466
- ### Level 1: Completeness Check (Immediate Feedback)
467
-
468
- ```bash
469
- # Verify analysis document exists
470
- test -f plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S1/analysis.md
471
- echo "Analysis document exists: $?"
472
-
473
- # Verify document contains all required sections
474
- grep -q "Current Implementation" plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S1/analysis.md
475
- echo "Current Implementation section exists: $?"
476
-
477
- grep -q "Tree Change Event Analysis" plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S1/analysis.md
478
- echo "Event Analysis section exists: $?"
479
-
480
- grep -q "Performance Impact Analysis" plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S1/analysis.md
481
- echo "Performance Analysis section exists: $?"
482
-
483
- grep -q "Incremental Update Opportunities" plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S1/analysis.md
484
- echo "Opportunities section exists: $?"
485
-
486
- grep -q "Implementation Recommendations" plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S1/analysis.md
487
- echo "Recommendations section exists: $?"
488
-
489
- # Expected: All checks return 0 (true)
490
- ```
491
-
492
- ### Level 2: Content Quality Validation
493
-
494
- ```bash
495
- # Verify line number references are accurate
496
- grep -n "onTreeChanged" src/debugger/tree-debugger.ts
497
- # Expected: Line 80 shows onTreeChanged method
498
-
499
- grep -n "buildNodeMap" src/debugger/tree-debugger.ts
500
- # Expected: Line 53 shows buildNodeMap method
501
-
502
- grep -n "childAttached\|childDetached\|treeUpdated" src/types/events.ts
503
- # Expected: Lines 10-18 show event definitions
504
-
505
- # Verify analysis document contains code references
506
- grep -q "src/debugger/tree-debugger.ts:80-84" plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S1/analysis.md
507
- echo "Line number references present: $?"
508
-
509
- # Verify complexity analysis present
510
- grep -q "O(n)\|O(1)\|O(k)" plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S1/analysis.md
511
- echo "Complexity analysis present: $?"
512
-
513
- # Verify external research cited
514
- grep -q "https://" plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S1/analysis.md
515
- echo "External references cited: $?"
516
- ```
517
-
518
- ### Level 3: Research Artifact Validation
519
-
520
- ```bash
521
- # Verify research directory exists
522
- test -d plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S1/research
523
- echo "Research directory exists: $?"
524
-
525
- # Verify research README exists
526
- test -f plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S1/research/README.md
527
- echo "Research README exists: $?"
528
-
529
- # Verify README contains link to main research package
530
- grep -q "incremental-tree-map-updates" plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S1/research/README.md
531
- echo "Research package linked: $?"
532
- ```
533
-
534
- ### Level 4: Readiness for P1.M3.T2.S2 Validation
535
-
536
- ```bash
537
- # Verify recommendations are actionable
538
- grep -q "addSubtree\|removeSubtree\|handleChildDetached" plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S1/analysis.md
539
- echo "Actionable method names present: $?"
540
-
541
- # Verify code examples provided
542
- grep -q "```typescript" plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S1/analysis.md
543
- echo "Code examples present: $?"
544
-
545
- # Verify gotchas documented
546
- grep -q "GOTCHA\|gotcha\|WARNING" plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S1/analysis.md
547
- echo "Gotchas documented: $?"
548
- ```
549
-
550
- ---
551
-
552
- ## Final Validation Checklist
553
-
554
- ### Technical Validation
555
-
556
- - [ ] Analysis document exists at correct path
557
- - [ ] All required sections completed (Current Implementation, Event Analysis, Performance, Opportunities, Recommendations)
558
- - [ ] Line number references accurate and verifiable
559
- - [ ] Complexity analysis includes O(n), O(1), O(k) notations
560
- - [ ] External research URLs cited with annotations
561
- - [ ] Code pattern examples included for each recommendation
562
-
563
- ### Content Quality Validation
564
-
565
- - [ ] Current implementation behavior fully documented
566
- - [ ] All three tree change events (childAttached, childDetached, treeUpdated) analyzed
567
- - [ ] Performance impact quantified with specific complexity values
568
- - [ ] Redundant work identified (onEvent + onTreeChanged for childAttached)
569
- - [ ] At least 3 specific optimization opportunities identified
570
- - [ ] Implementation recommendations include specific method names and patterns
571
-
572
- ### Research Artifact Validation
573
-
574
- - [ ] research/ directory created
575
- - [ ] research/README.md exists with links to external resources
576
- - [ ] Code pattern examples stored for P1.M3.T2.S2 reference
577
- - [ ] Benchmark template provided for P1.M3.T2.S3
578
-
579
- ### P1.M3.T2.S2 Readiness Validation
580
-
581
- - [ ] Recommendations enable implementation without additional research
582
- - [ ] Specific method signatures provided (removeSubtree, handleChildDetached)
583
- - [ ] Code examples follow existing codebase patterns
584
- - [ ] Gotchas and anti-patterns documented to avoid
585
- - [ ] Performance expectations quantified for validation
586
-
587
- ---
588
-
589
- ## Anti-Patterns to Avoid
590
-
591
- - ❌ Don't implement code changes - this is a research task only
592
- - ❌ Don't skip external research - use provided URLs for validation
593
- - ❌ Don't omit line number references - P1.M3.T2.S2 needs exact locations
594
- - ❌ Don't ignore the redundancy between onEvent() and onTreeChanged()
595
- - ❌ Don't forget that childDetached only provides childId, not full node
596
- - ❌ Don't recommend recursive subtree removal - use iterative BFS to avoid stack limits
597
- - ❌ Don't omit complexity analysis - quantitative comparison essential
598
- - ❌ Don't forget to document the treeUpdated case - root reference changes only
599
-
600
- ---
601
-
602
- ## Output Template
603
-
604
- The analysis document should follow this structure:
605
-
606
- ```markdown
607
- # Tree Debugger onTreeChanged Implementation Analysis
608
-
609
- ## Current Implementation
610
-
611
- ### buildNodeMap() - Line 53-58
612
- [Code snippet and analysis]
613
-
614
- ### onEvent() - Line 66-74
615
- [Code snippet and analysis]
616
-
617
- ### onTreeChanged() - Line 80-84
618
- [Code snippet and analysis]
619
-
620
- ## Tree Change Event Analysis
621
-
622
- ### childAttached Event
623
- - When: Called by attachChild() after child added to workflow.children and node.children
624
- - Data: { type: 'childAttached', parentId: string, child: WorkflowNode }
625
- - Current behavior: Added in onEvent(), then entire map rebuilt in onTreeChanged()
626
- - Optimal behavior: Just add in onEvent(), skip onTreeChanged() rebuild
627
-
628
- ### childDetached Event
629
- [Similar analysis]
630
-
631
- ### treeUpdated Event
632
- [Similar analysis]
633
-
634
- ## Performance Impact Analysis
635
-
636
- ### Current Complexity
637
- - childAttached: O(n)
638
- - childDetached: O(n)
639
- - treeUpdated: O(n)
640
-
641
- ### Incremental Complexity
642
- - childAttached: O(k) already implemented
643
- - childDetached: O(k) - needs implementation
644
- - treeUpdated: O(1) - needs implementation
645
-
646
- ### Speedup Potential
647
- [Table with specific speedup calculations]
648
-
649
- ## Incremental Update Opportunities
650
-
651
- ### Opportunity 1: Eliminate Redundant childAttached Rebuild
652
- [Description and recommendation]
653
-
654
- ### Opportunity 2: Implement childDetached Subtree Removal
655
- [Description with code pattern]
656
-
657
- ### Opportunity 3: Replace treeUpdated Full Rebuild
658
- [Description with code pattern]
659
-
660
- ### Opportunity 4: Remove onTreeChanged Rebuild Entirely
661
- [Description with code pattern]
662
-
663
- ## Implementation Recommendations
664
-
665
- ### For P1.M3.T2.S2: Add removeSubtree() Method
666
- [Specific implementation guidance]
667
-
668
- ### For P1.M3.T2.S2: Modify onEvent() to Handle childDetached
669
- [Specific implementation guidance]
670
-
671
- ### For P1.M3.T2.S2: Simplify onTreeChanged()
672
- [Specific implementation guidance]
673
-
674
- ### Gotchas to Avoid
675
- [List of potential issues]
676
-
677
- ## References
678
-
679
- ### External Research
680
- [Links to MDN, React docs, V8 blog, StackOverflow]
681
-
682
- ### Internal Research
683
- [Links to research package files]
684
-
685
- ### Code Files Referenced
686
- [Links to specific files with line numbers]
687
- ```
688
-
689
- ---
690
-
691
- ## Appendix: Research Summary
692
-
693
- ### Research Package Location
694
-
695
- `plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/`
696
-
697
- ### Key Files
698
-
699
- - `QUICK_REFERENCE.md` - Code examples and patterns
700
- - `RESEARCH_REPORT.md` - Comprehensive analysis
701
- - `SUMMARY.md` - Executive summary
702
- - `PRP_TEMPLATE.md` - Implementation PRP template
703
-
704
- ### Expected P1.M3.T2.S2 Output
705
-
706
- After this analysis, P1.M3.T2.S2 should implement:
707
-
708
- 1. `removeSubtree(nodeId: string)` - BFS-based subtree removal
709
- 2. Modified `onEvent()` - Handle childDetached
710
- 3. Simplified `onTreeChanged()` - Remove full rebuild
711
-
712
- Expected performance improvement: **100-1000× faster** for large trees.
713
-
714
- ---
715
-
716
- **PRP Version**: 1.0
717
- **Last Updated**: 2025-01-12
718
- **Next PRP**: P1.M3.T2.S2 (Implementation)
719
- **Dependencies**: None (research task)