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,629 +0,0 @@
1
- # Product Requirement Prompt (PRP): Verify TypeScript Compilation and Type Checking
2
-
3
- ---
4
-
5
- ## Goal
6
-
7
- **Feature Goal**: Verify that TypeScript compilation and type checking succeed after the addition of the `childDetached` event type to the `WorkflowEvent` discriminated union.
8
-
9
- **Deliverable**: Verification report confirming that:
10
- 1. TypeScript compilation succeeds with no type errors related to the new `childDetached` event type
11
- 2. The `WorkflowEvent` discriminated union correctly handles type narrowing for `childDetached`
12
- 3. Observer `onEvent()` methods properly accept the new event type
13
-
14
- **Success Definition**:
15
- - `npm run lint` (tsc --noEmit) completes with zero type errors related to `childDetached` event type
16
- - Discriminated union type narrowing works correctly for `childDetached` events
17
- - All observers can receive `childDetached` events without type errors
18
-
19
- ## User Persona (if applicable)
20
-
21
- **Target User**: Development team members who need confidence that the type system remains valid after adding the `childDetached` event type.
22
-
23
- **Use Case**: Final validation before release, ensuring that all type definitions are correct and the TypeScript compiler validates the codebase.
24
-
25
- **User Journey**:
26
- 1. Run `npm run lint` to check for type errors
27
- 2. Verify that the `childDetached` event type is properly typed
28
- 3. Confirm discriminated union narrowing works as expected
29
- 4. Ensure observers can handle the new event type
30
-
31
- **Pain Points Addressed**:
32
- - Catches type errors at compile time before runtime
33
- - Ensures type safety of the event system
34
- - Validates observer pattern compatibility
35
-
36
- ## Why
37
-
38
- - **Type Safety Foundation**: TypeScript strict mode catches type errors at compile time, preventing runtime issues
39
- - **Discriminated Union Integrity**: The `WorkflowEvent` discriminated union is core to the type system - all event handling depends on it working correctly
40
- - **Observer Pattern Compatibility**: Observers use `onEvent(event: WorkflowEvent)` - the new event type must be compatible
41
- - **Bug Fix Completion**: This task completes the validation phase of the bug fix for attachChild() tree integrity violation (P1)
42
- - **Release Readiness**: Ensures the codebase is ready for release with no type errors
43
-
44
- ## What
45
-
46
- Verify TypeScript compilation and type checking for the `childDetached` event type that was added in P1.M2.T1.S1.
47
-
48
- ### Validation Scope
49
-
50
- 1. **TypeScript Compilation**: Run `npm run lint` or `tsc --noEmit` to verify no type errors
51
- 2. **Discriminated Union Validation**: Verify that the `childDetached` event type is correctly typed and type narrowing works
52
- 3. **Observer Compatibility**: Verify that observer `onEvent()` methods can accept `childDetached` events
53
- 4. **Event Emission Validation**: Verify that `emitEvent()` can emit `childDetached` events
54
-
55
- ### Success Criteria
56
-
57
- - [ ] TypeScript compilation succeeds: `npm run lint` returns exit code 0 (no errors related to childDetached)
58
- - [ ] Discriminated union type narrowing works for `childDetached` events
59
- - [ ] Observer `onEvent()` accepts `childDetached` events without type errors
60
- - [ ] `emitEvent()` can emit `childDetached` events without type errors
61
-
62
- ### Exclusions
63
-
64
- - Pre-existing TypeScript errors related to protected `node` property access in test files are documented but not part of this validation
65
- - This task is validation only - no code modifications required
66
-
67
- ## All Needed Context
68
-
69
- ### Context Completeness Check
70
-
71
- **"No Prior Knowledge" Test**: If someone knew nothing about this codebase, would they have everything needed to implement this successfully?
72
-
73
- **Answer**: YES - This PRP provides:
74
- - Exact commands to run for TypeScript type checking
75
- - The location and structure of the `childDetached` event type
76
- - How discriminated unions work in this codebase
77
- - Expected validation results
78
- - Known pre-existing errors to ignore
79
-
80
- ### Documentation & References
81
-
82
- ```yaml
83
- # MUST READ - Include these in your context window
84
-
85
- - url: https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions
86
- why: Official TypeScript documentation on discriminated unions - understand how type narrowing works
87
- critical: The `type` property is the discriminator that enables TypeScript to narrow types
88
-
89
- - url: https://www.typescriptlang.org/docs/handbook/compiler-options.html
90
- why: TypeScript compiler options reference - understand what tsc --noEmit checks
91
- critical: strict mode enables all strict type checking options
92
-
93
- - file: /home/dustin/projects/groundswell/src/types/events.ts
94
- why: Contains the WorkflowEvent discriminated union with childDetached event type (line 11)
95
- pattern: Study the structure - all event types use { type: 'eventName'; ...properties }
96
- gotcha: childDetached uses childId: string (not child: WorkflowNode) because child is no longer in tree
97
-
98
- - file: /home/dustin/projects/groundswell/src/core/workflow.ts
99
- why: Contains emitEvent() method (lines 363-379) that emits childDetached events
100
- pattern: Events are emitted via this.emitEvent({ type: 'childDetached', parentId: this.id, childId: child.id })
101
- gotcha: emitEvent() has special handling for tree-changing events including childDetached (line 372)
102
-
103
- - file: /home/dustin/projects/groundswell/src/types/observer.ts
104
- why: Defines WorkflowObserver interface with onEvent() method (line 13)
105
- pattern: Observers receive all WorkflowEvent types via onEvent(event: WorkflowEvent)
106
- gotcha: Observers are NOT required to handle all event types - they can ignore unknown types
107
-
108
- - file: /home/dustin/projects/groundswell/package.json
109
- why: Contains npm scripts for TypeScript validation (lines 33-36)
110
- pattern: "lint": "tsc --noEmit" runs type checking without generating files
111
- gotcha: "build": "tsc" compiles TypeScript to JavaScript in dist/ directory
112
-
113
- - file: /home/dustin/projects/groundswell/tsconfig.json
114
- why: TypeScript compiler configuration
115
- pattern: strict mode enabled (line 12) - all strict type checking options are on
116
- gotcha: isolatedModules: true (line 18) ensures each file can be compiled independently
117
-
118
- - file: /home/dustin/projects/groundswell/src/__tests__/unit/workflow-detachChild.test.ts
119
- why: Contains tests for childDetached event type (lines 82-85)
120
- pattern: Uses discriminated union type guard: event.type === 'childDetached' && event.parentId
121
- gotcha: Test shows how type narrowing works for childDetached events
122
-
123
- - file: /home/dustin/projects/groundswell/src/__tests__/unit/workflow-emitEvent-childDetached.test.ts
124
- why: Contains comprehensive tests for childDetached event emission
125
- pattern: Tests verify event structure, observer notification, and tree change handling
126
- gotcha: This test file was created specifically for validating childDetached events
127
- ```
128
-
129
- ### Current Codebase Tree
130
-
131
- ```bash
132
- /home/dustin/projects/groundswell
133
- ├── src/
134
- │ ├── types/
135
- │ │ ├── events.ts # Contains WorkflowEvent discriminated union with childDetached (line 11)
136
- │ │ ├── observer.ts # Contains WorkflowObserver interface with onEvent() method
137
- │ │ └── index.ts # Type exports
138
- │ ├── core/
139
- │ │ └── workflow.ts # Contains emitEvent() and detachChild() methods
140
- │ └── __tests__/
141
- │ ├── unit/
142
- │ │ ├── workflow-detachChild.test.ts # Tests for childDetached events
143
- │ │ └── workflow-emitEvent-childDetached.test.ts # Event emission tests
144
- │ └── integration/
145
- │ └── workflow-reparenting.test.ts # Reparenting integration tests
146
- ├── plan/
147
- │ └── bugfix/
148
- │ └── P1M4T2S1/
149
- │ └── PRP.md # This file
150
- ├── package.json # npm scripts for TypeScript validation
151
- └── tsconfig.json # TypeScript compiler configuration
152
- ```
153
-
154
- ### Desired Codebase Tree with Files to be Added
155
-
156
- ```bash
157
- # NO FILES ARE ADDED OR MODIFIED IN THIS TASK
158
- # This is a VALIDATION task only
159
- plan/bugfix/P1M4T2S1/
160
- └── validation-report.md # OUTPUT: Validation results report (optional)
161
- ```
162
-
163
- ### Known Gotchas of Our Codebase & Library Quirks
164
-
165
- ```typescript
166
- // CRITICAL: TypeScript Version
167
- // - Declared in package.json: ^5.2.0
168
- // - Currently installed: 5.9.3
169
- // - Version mismatch is acceptable (caret range allows compatible updates)
170
-
171
- // CRITICAL: Pre-existing TypeScript Errors
172
- // - There are 50+ pre-existing TypeScript errors related to protected 'node' property access
173
- // - These errors are in test files: src/__tests__/adversarial/*.test.ts
174
- // - These errors are NOT related to the childDetached event type
175
- // - This validation focuses ONLY on childDetached-related type errors
176
- // - Example error: "Property 'node' is protected and only accessible within class 'Workflow<T>'"
177
-
178
- // CRITICAL: Strict Mode Configuration
179
- // - tsconfig.json has "strict": true (line 12)
180
- // - This enables ALL strict type checking options:
181
- // - noImplicitAny
182
- // - strictNullChecks
183
- // - strictFunctionTypes
184
- // - strictBindCallApply
185
- // - strictPropertyInitialization
186
- // - noImplicitThis
187
- // - alwaysStrict
188
- // - Any type error will cause compilation to fail
189
-
190
- // CRITICAL: Discriminated Union Pattern
191
- // - All WorkflowEvent types use 'type' property as discriminator (string literal)
192
- // - The discriminated union enables type narrowing in switch statements and if statements
193
- // - Type narrowing pattern: if (event.type === 'childDetached') { /* event has parentId, childId */ }
194
-
195
- // CRITICAL: childDetached Event Type Structure
196
- // - Location: src/types/events.ts, line 11
197
- // - Structure: { type: 'childDetached'; parentId: string; childId: string }
198
- // - Uses childId: string (not child: WorkflowNode) because child is no longer in tree after detachment
199
-
200
- // CRITICAL: Observer Pattern Type Safety
201
- // - Observers implement WorkflowObserver interface (src/types/observer.ts)
202
- // - onEvent() method signature: onEvent(event: WorkflowEvent): void
203
- // - Observers can handle childDetached events using type narrowing
204
- // - Observers are NOT required to handle all event types
205
-
206
- // CRITICAL: Event Emission Type Safety
207
- // - emitEvent() method accepts WorkflowEvent parameter
208
- // - TypeScript verifies that emitted events match WorkflowEvent union
209
- // - compile-time check: { type: 'childDetached', parentId: string, childId: string } is valid
210
-
211
- // GOTCHA: Type Checking Commands
212
- // - npm run lint = tsc --noEmit (type checking only, no file generation)
213
- // - npm run build = tsc (full compilation with file generation)
214
- // - Both commands perform the same type checking, differ only in output generation
215
-
216
- // GOTCHA: Exit Codes
217
- // - tsc returns exit code 0 on success
218
- // - tsc returns exit code 1 on compilation errors (when generating files)
219
- // - tsc returns exit code 2 on type errors (when using --noEmit)
220
- ```
221
-
222
- ## Implementation Blueprint
223
-
224
- ### Data Models and Structure
225
-
226
- No new data models are created in this validation task. We are validating existing type definitions.
227
-
228
- ### Implementation Tasks (ordered by dependencies)
229
-
230
- ```yaml
231
- Task 1: RUN TypeScript Type Checking
232
- - EXECUTE: npm run lint
233
- - EQUIVALENT: npx tsc --noEmit
234
- - EXPECTED: Command completes with exit code 0 (no childDetached-related errors)
235
- - GOTCHA: Pre-existing errors related to protected 'node' property should be ignored
236
- - TIMEOUT: 60 seconds (full codebase type checking)
237
-
238
- Task 2: VERIFY childDetached Event Type Definition
239
- - CHECK: src/types/events.ts line 11 for correct event type structure
240
- - VERIFY: { type: 'childDetached'; parentId: string; childId: string }
241
- - CONFIRM: Event type is in "Core workflow events" section (after childAttached)
242
- - VALIDATE: No typos in property names or type annotations
243
-
244
- Task 3: VERIFY Discriminated Union Type Narrowing
245
- - TEST: Create type narrowing test case (mental or in temp file)
246
- - PATTERN: if (event.type === 'childDetached') { /* event has parentId, childId */ }
247
- - CONFIRM: TypeScript correctly narrows type when checking event.type
248
- - VALIDATE: Properties parentId and childId are accessible after type guard
249
-
250
- Task 4: VERIFY Observer onEvent() Compatibility
251
- - CHECK: src/types/observer.ts line 13 for onEvent() method signature
252
- - VERIFY: onEvent(event: WorkflowEvent): void accepts all event types including childDetached
253
- - CONFIRM: Observer implementations can receive childDetached events
254
- - VALIDATE: No type errors when observers handle childDetached events
255
-
256
- Task 5: VERIFY Event Emission Type Safety
257
- - CHECK: src/core/workflow.ts line 353-357 for childDetached event emission
258
- - VERIFY: emitEvent() receives correctly shaped childDetached event
259
- - CONFIRM: Event structure matches WorkflowEvent discriminated union
260
- - VALIDATE: No type errors when emitting childDetached events
261
-
262
- Task 6: VERIFY Test File Type Safety
263
- - CHECK: src/__tests__/unit/workflow-detachChild.test.ts for type usage
264
- - VERIFY: Tests use discriminated union type guards correctly
265
- - CONFIRM: Test assertions work with type narrowing
266
- - VALIDATE: No type errors in childDetached test files
267
-
268
- Task 7: CREATE Validation Report (Optional)
269
- - DOCUMENT: Results of TypeScript type checking
270
- - RECORD: Any childDetached-related type errors found (should be none)
271
- - NOTE: Pre-existing errors that are NOT related to childDetached
272
- - CONCLUDE: Whether validation passed or failed
273
- ```
274
-
275
- ### Implementation Patterns & Key Details
276
-
277
- ```typescript
278
- // ============================================
279
- // DISCRIMINATED UNION TYPE DEFINITION
280
- // ============================================
281
- // File: src/types/events.ts, Line 11
282
- // The childDetached event type:
283
- | { type: 'childDetached'; parentId: string; childId: string }
284
-
285
- // ============================================
286
- // TYPE NARROWING PATTERN
287
- // ============================================
288
- // Observers and test code use this pattern:
289
- function handleEvent(event: WorkflowEvent) {
290
- if (event.type === 'childDetached') {
291
- // TypeScript knows event has: parentId, childId
292
- console.log(`Child ${event.childId} detached from ${event.parentId}`);
293
- }
294
- }
295
-
296
- // ============================================
297
- // EVENT EMISSION PATTERN
298
- // ============================================
299
- // File: src/core/workflow.ts, Lines 353-357
300
- this.emitEvent({
301
- type: 'childDetached',
302
- parentId: this.id,
303
- childId: child.id,
304
- });
305
-
306
- // ============================================
307
- // OBSERVER INTERFACE PATTERN
308
- // ============================================
309
- // File: src/types/observer.ts, Line 13
310
- export interface WorkflowObserver {
311
- onEvent(event: WorkflowEvent): void; // Accepts ALL event types including childDetached
312
- // ... other methods
313
- }
314
-
315
- // ============================================
316
- // TYPE CHECKING VALIDATION COMMANDS
317
- // ============================================
318
- // Run type checking without generating files:
319
- npm run lint // Uses tsc --noEmit
320
- // OR:
321
- npx tsc --noEmit // Direct TypeScript compiler invocation
322
-
323
- // Full compilation (also performs type checking):
324
- npm run build // Uses tsc (generates dist/ files)
325
-
326
- // ============================================
327
- // EXPECTED TYPE CHECKING RESULTS
328
- // ============================================
329
- // SUCCESS: Exit code 0, no output (or only pre-existing warnings)
330
- // FAILURE: Exit code 2, shows TypeScript errors
331
-
332
- // Pre-existing errors to IGNORE:
333
- // - "Property 'node' is protected and only accessible within class 'Workflow<T>'"
334
- // - These are in test files that access protected members
335
- // - These are NOT related to childDetached event type
336
-
337
- // Errors that would FAIL validation:
338
- // - "Type 'childDetached' is not assignable to type 'WorkflowEvent'"
339
- // - "Property 'childId' does not exist on type 'WorkflowEvent'"
340
- // - "Type '{ type: 'childDetached'; ... }' is missing properties"
341
-
342
- // ============================================
343
- // MANUAL TYPE CHECKING TEST (Optional)
344
- // ============================================
345
- // Create a temporary test file to verify type narrowing:
346
- /*
347
- // File: /tmp/test-childDetached-type.ts
348
- import { WorkflowEvent } from '/home/dustin/projects/groundswell/src/types/events.js';
349
-
350
- function testChildDetachedEvent(event: WorkflowEvent) {
351
- if (event.type === 'childDetached') {
352
- // TypeScript should narrow to: { type: 'childDetached'; parentId: string; childId: string }
353
- console.log(event.parentId); // Should work (no error)
354
- console.log(event.childId); // Should work (no error)
355
- // console.log(event.child); // Should ERROR: property 'child' does not exist
356
- }
357
- }
358
-
359
- // Test event emission
360
- const testEvent: WorkflowEvent = {
361
- type: 'childDetached',
362
- parentId: 'parent-123',
363
- childId: 'child-456',
364
- };
365
- */
366
- // Then run: npx tsc --noEmit /tmp/test-childDetached-type.ts
367
-
368
- // ============================================
369
- // STRICT MODE IMPLICATIONS
370
- // ============================================
371
- // tsconfig.json has "strict": true
372
- // This means:
373
- // - No implicit any types
374
- // - No null/undefined without explicit checking
375
- // - All type properties must match exactly
376
- // - Type narrowing is enforced at compile time
377
- ```
378
-
379
- ### Integration Points
380
-
381
- ```yaml
382
- NO INTEGRATION POINTS IN THIS VALIDATION TASK:
383
- - This task is VALIDATION ONLY
384
- - No code modifications required
385
- - No new files to create
386
- - No existing files to modify
387
-
388
- VALIDATION SCOPE:
389
- - TypeScript compiler type checking
390
- - Discriminated union type narrowing
391
- - Observer pattern type compatibility
392
- - Event emission type safety
393
- ```
394
-
395
- ## Validation Loop
396
-
397
- ### Level 1: Syntax & Style (TypeScript Type Checking)
398
-
399
- ```bash
400
- # Run type checking on entire project
401
- npm run lint # Primary validation command
402
- # OR:
403
- npx tsc --noEmit # Direct invocation
404
-
405
- # Expected Result:
406
- # - Exit code: 0 (success)
407
- # - No errors related to childDetached event type
408
- # - Pre-existing errors (protected 'node' access) can be ignored
409
-
410
- # If childDetached-related errors occur:
411
- # - Check event type definition in src/types/events.ts
412
- # - Verify property names match: parentId, childId
413
- # - Verify type annotations: string for both properties
414
- # - Check for typos in the discriminated union
415
-
416
- # Example of SUCCESSFUL output (only pre-existing errors shown):
417
- # src/__tests__/adversarial/deep-analysis.test.ts(69,23): error TS2445: Property 'node' is protected...
418
- # (These errors are NOT related to childDetached and should be ignored)
419
-
420
- # Example of FAILED output (childDetached-related):
421
- # src/types/events.ts(11,45): error TS2322: Type 'childDetached' is not assignable...
422
- # (This would indicate a problem with the childDetached type definition)
423
- ```
424
-
425
- ### Level 2: Discriminated Union Type Narrowing Validation
426
-
427
- ```bash
428
- # Create temporary test file to verify type narrowing
429
- cat > /tmp/test-childDetached-narrowing.ts << 'EOF'
430
- import { WorkflowEvent } from '/home/dustin/projects/groundswell/src/types/events.js';
431
-
432
- function testTypeNarrowing(event: WorkflowEvent) {
433
- // Test type narrowing for childDetached
434
- if (event.type === 'childDetached') {
435
- // TypeScript should narrow to childDetached type
436
- const parentId: string = event.parentId;
437
- const childId: string = event.childId;
438
-
439
- // This should ERROR (prove type narrowing works):
440
- // const child = event.child;
441
- }
442
-
443
- // Test switch statement pattern
444
- switch (event.type) {
445
- case 'childDetached':
446
- // TypeScript knows event has parentId and childId
447
- console.log(`Child ${event.childId} detached from ${event.parentId}`);
448
- break;
449
- case 'childAttached':
450
- // TypeScript knows event has child (not childId)
451
- console.log(`Child ${event.child.name} attached`);
452
- break;
453
- default:
454
- // Other event types
455
- break;
456
- }
457
- }
458
- EOF
459
-
460
- # Run type checking on test file
461
- npx tsc --noEmit /tmp/test-childDetached-narrowing.ts
462
-
463
- # Expected Result:
464
- # - Exit code: 0 (success)
465
- # - No type errors in the test file
466
- # - Uncommented line with event.child should cause error (prove type narrowing)
467
-
468
- # Cleanup
469
- rm /tmp/test-childDetached-narrowing.ts
470
- ```
471
-
472
- ### Level 3: Observer Compatibility Validation
473
-
474
- ```bash
475
- # Verify observer interface accepts childDetached events
476
- cat > /tmp/test-observer-compat.ts << 'EOF'
477
- import type { WorkflowObserver, WorkflowEvent } from '/home/dustin/projects/groundswell/src/types/index.js';
478
-
479
- // Create observer that handles childDetached events
480
- const testObserver: WorkflowObserver = {
481
- onLog(entry) {
482
- console.log('Log:', entry);
483
- },
484
- onEvent(event: WorkflowEvent) {
485
- // Test that childDetached events are accepted
486
- if (event.type === 'childDetached') {
487
- console.log(`Child detached: ${event.childId} from ${event.parentId}`);
488
- }
489
- },
490
- onStateUpdated(node) {
491
- console.log('State updated:', node.id);
492
- },
493
- onTreeChanged(root) {
494
- console.log('Tree changed:', root.id);
495
- }
496
- };
497
-
498
- // Test that childDetached event can be passed to observer
499
- const childDetachedEvent: WorkflowEvent = {
500
- type: 'childDetached',
501
- parentId: 'parent-123',
502
- childId: 'child-456',
503
- };
504
-
505
- testObserver.onEvent(childDetachedEvent); // Should work without type error
506
- EOF
507
-
508
- # Run type checking on test file
509
- npx tsc --noEmit /tmp/test-observer-compat.ts
510
-
511
- # Expected Result:
512
- # - Exit code: 0 (success)
513
- # - No type errors
514
- # - Observer accepts childDetached events
515
-
516
- # Cleanup
517
- rm /tmp/test-observer-compat.ts
518
- ```
519
-
520
- ### Level 4: Event Emission and Integration Validation
521
-
522
- ```bash
523
- # Run full test suite to ensure runtime validation
524
- npm test
525
-
526
- # Expected Result:
527
- # - All tests pass
528
- # - No runtime type errors
529
- # - childDetached events are emitted and handled correctly
530
-
531
- # Specific test file to verify:
532
- npm test -- workflow-emitEvent-childDetached.test.ts
533
- npm test -- workflow-detachChild.test.ts
534
- npm test -- workflow-reparenting.test.ts
535
-
536
- # Verify dist/ build artifacts (if build succeeds)
537
- npm run build
538
-
539
- # Expected Result:
540
- # - dist/ directory contains compiled JavaScript
541
- # - dist/types/events.d.ts contains type declarations
542
- # - childDetached event type appears in type declarations
543
-
544
- # Verify type declaration file includes childDetached
545
- grep -A 2 "childDetached" dist/types/events.d.ts
546
-
547
- # Expected output:
548
- # | { type: 'childDetached'; parentId: string; childId: string }
549
- ```
550
-
551
- ## Final Validation Checklist
552
-
553
- ### Technical Validation
554
-
555
- - [ ] Level 1 validation completed: `npm run lint` passes (exit code 0)
556
- - [ ] No childDetached-related type errors in TypeScript output
557
- - [ ] Pre-existing errors (protected 'node' access) documented but not blocking
558
- - [ ] Level 2 validation completed: Discriminated union type narrowing works correctly
559
- - [ ] Level 3 validation completed: Observers accept childDetached events
560
- - [ ] Level 4 validation completed: Full test suite passes
561
-
562
- ### Feature Validation
563
-
564
- - [ ] childDetached event type is correctly defined in src/types/events.ts
565
- - [ ] Event type uses correct structure: `{ type: 'childDetached'; parentId: string; childId: string }`
566
- - [ ] Type narrowing provides access to parentId and childId properties
567
- - [ ] Observer onEvent() method accepts childDetached events
568
- - [ ] emitEvent() can emit childDetached events without type errors
569
- - [ ] Test files demonstrate correct type usage
570
-
571
- ### Code Quality Validation
572
-
573
- - [ ] Follows existing discriminated union pattern in events.ts
574
- - [ ] Event type placement in "Core workflow events" section
575
- - [ ] Consistent with childAttached structure (mirror pattern)
576
- - [ ] No typos in property names or type annotations
577
- - [ ] TypeScript strict mode compliance maintained
578
-
579
- ### Documentation & Deployment
580
-
581
- - [ ] Type definition is self-documenting (property names are clear)
582
- - [ ] No additional documentation needed (type definition is sufficient)
583
- - [ ] No environment variables or configuration changes required
584
- - [ ] Ready for release (no blocking type errors)
585
-
586
- ---
587
-
588
- ## Anti-Patterns to Avoid
589
-
590
- - ❌ **Don't modify any code** - This is a validation task only
591
- - ❌ **Don't fix pre-existing errors** - Protected 'node' access errors are out of scope
592
- - ❌ **Don't skip type checking** - Always run `npm run lint` to validate
593
- - ❌ **Don't ignore childDetached-related errors** - Any errors with childDetached must be addressed
594
- - ❌ **Don't assume success** - Always verify with actual command execution
595
- - ❌ **Don't forget to check exit codes** - Exit code 0 = success, non-zero = failure
596
-
597
- ---
598
-
599
- ## References
600
-
601
- - **Bug Analysis**: `/home/dustin/projects/groundswell/plan/docs/bugfix-architecture/bug_analysis.md`
602
- - **Events Type File**: `/home/dustin/projects/groundswell/src/types/events.ts`
603
- - **Observer Interface**: `/home/dustin/projects/groundswell/src/types/observer.ts`
604
- - **Workflow Class**: `/home/dustin/projects/groundswell/src/core/workflow.ts`
605
- - **Test Files**:
606
- - `/home/dustin/projects/groundswell/src/__tests__/unit/workflow-detachChild.test.ts`
607
- - `/home/dustin/projects/groundswell/src/__tests__/unit/workflow-emitEvent-childDetached.test.ts`
608
- - **Previous Task**: P1.M2.T1.S1 - Add childDetached event type to events.ts (COMPLETED)
609
- - **Related Tasks**:
610
- - P1.M2.T1.S2: Write failing tests for detachChild() (COMPLETED)
611
- - P1.M2.T1.S3: Implement detachChild() method (COMPLETED)
612
- - P1.M2.T1.S4: Update emitEvent() to handle childDetached events (COMPLETED)
613
-
614
- ---
615
-
616
- ## Confidence Score
617
-
618
- **9/10** - One-pass implementation success likelihood
619
-
620
- **Justification**:
621
- - ✅ Clear validation commands with expected results
622
- - ✅ Comprehensive context on discriminated union patterns
623
- - ✅ Known pre-existing errors documented to avoid confusion
624
- - ✅ Multiple validation levels provide thorough coverage
625
- - ✅ No code modifications required (validation only)
626
- - ✅ Test files already demonstrate correct type usage
627
- - ⚠️ Minor risk: Developer may misinterpret pre-existing errors as validation failures (mitigated by clear documentation)
628
-
629
- **Validation**: The completed PRP enables an AI agent or developer to verify TypeScript compilation and type checking for the childDetached event type using only the PRP content and codebase access.