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,206 +0,0 @@
1
- #!/usr/bin/env npx tsx
2
- /**
3
- * Generates llms_full.txt by combining:
4
- * 1. README.md and its linked markdown documentation files
5
- * 2. Examples README and all example source files
6
- *
7
- * Future-proof design:
8
- * - Auto-discovers markdown files linked from README.md (docs/*.md pattern)
9
- * - Auto-discovers all example files matching examples/examples/*.ts
10
- * - New docs and examples are automatically included without script changes
11
- */
12
-
13
- import * as fs from "fs";
14
- import * as path from "path";
15
- import { fileURLToPath } from "url";
16
-
17
- const __filename = fileURLToPath(import.meta.url);
18
- const __dirname = path.dirname(__filename);
19
- const ROOT_DIR = path.resolve(__dirname, "..");
20
- const OUTPUT_FILE = path.join(ROOT_DIR, "llms_full.txt");
21
-
22
- interface Section {
23
- title: string;
24
- content: string;
25
- filePath?: string;
26
- }
27
-
28
- function readFile(filePath: string): string {
29
- try {
30
- return fs.readFileSync(filePath, "utf-8");
31
- } catch (error) {
32
- console.warn(`Warning: Could not read ${filePath}`);
33
- return "";
34
- }
35
- }
36
-
37
- function extractMarkdownLinks(content: string, baseDir: string): string[] {
38
- // Match markdown links: [text](path.md) - only .md files
39
- const linkRegex = /\[([^\]]+)\]\(([^)]+\.md)\)/g;
40
- const links: string[] = [];
41
- let match;
42
-
43
- while ((match = linkRegex.exec(content)) !== null) {
44
- const linkPath = match[2];
45
- // Only include relative links (not http/https)
46
- if (!linkPath.startsWith("http://") && !linkPath.startsWith("https://")) {
47
- const absolutePath = path.resolve(baseDir, linkPath);
48
- if (fs.existsSync(absolutePath) && !links.includes(absolutePath)) {
49
- links.push(absolutePath);
50
- }
51
- }
52
- }
53
-
54
- return links;
55
- }
56
-
57
- function discoverDocsMarkdown(): string[] {
58
- const docsDir = path.join(ROOT_DIR, "docs");
59
- if (!fs.existsSync(docsDir)) {
60
- return [];
61
- }
62
-
63
- return fs
64
- .readdirSync(docsDir)
65
- .filter((file) => file.endsWith(".md"))
66
- .map((file) => path.join(docsDir, file))
67
- .sort();
68
- }
69
-
70
- function discoverExamples(): string[] {
71
- const examplesDir = path.join(ROOT_DIR, "examples", "examples");
72
- if (!fs.existsSync(examplesDir)) {
73
- return [];
74
- }
75
-
76
- return fs
77
- .readdirSync(examplesDir)
78
- .filter((file) => file.endsWith(".ts"))
79
- .sort() // Sorting ensures NN- prefixed files are in order
80
- .map((file) => path.join(examplesDir, file));
81
- }
82
-
83
- function formatSection(section: Section): string {
84
- const separator = "=".repeat(80);
85
- const relativePath = section.filePath
86
- ? path.relative(ROOT_DIR, section.filePath)
87
- : "";
88
-
89
- let header = `${separator}\n${section.title}`;
90
- if (relativePath) {
91
- header += `\nFile: ${relativePath}`;
92
- }
93
- header += `\n${separator}\n\n`;
94
-
95
- return header + section.content.trim() + "\n\n";
96
- }
97
-
98
- function generateLlmsFull(): void {
99
- const sections: Section[] = [];
100
- const processedFiles = new Set<string>();
101
-
102
- // 1. Main README
103
- const readmePath = path.join(ROOT_DIR, "README.md");
104
- const readmeContent = readFile(readmePath);
105
- if (readmeContent) {
106
- sections.push({
107
- title: "PROJECT README",
108
- content: readmeContent,
109
- filePath: readmePath,
110
- });
111
- processedFiles.add(readmePath);
112
- }
113
-
114
- // 2. Documentation files from docs/ directory
115
- // First, get links from README to preserve intended order
116
- const linkedDocs = extractMarkdownLinks(readmeContent, ROOT_DIR);
117
- // Then discover all docs to catch any not linked
118
- const allDocs = discoverDocsMarkdown();
119
-
120
- // Process linked docs first (preserves README order)
121
- for (const docPath of linkedDocs) {
122
- if (
123
- docPath.includes("/docs/") &&
124
- !processedFiles.has(docPath) &&
125
- fs.existsSync(docPath)
126
- ) {
127
- const content = readFile(docPath);
128
- const fileName = path.basename(docPath, ".md").toUpperCase();
129
- sections.push({
130
- title: `DOCUMENTATION: ${fileName}`,
131
- content,
132
- filePath: docPath,
133
- });
134
- processedFiles.add(docPath);
135
- }
136
- }
137
-
138
- // Add any docs not linked from README
139
- for (const docPath of allDocs) {
140
- if (!processedFiles.has(docPath)) {
141
- const content = readFile(docPath);
142
- const fileName = path.basename(docPath, ".md").toUpperCase();
143
- sections.push({
144
- title: `DOCUMENTATION: ${fileName}`,
145
- content,
146
- filePath: docPath,
147
- });
148
- processedFiles.add(docPath);
149
- }
150
- }
151
-
152
- // 3. Examples README
153
- const examplesReadmePath = path.join(ROOT_DIR, "examples", "README.md");
154
- if (fs.existsSync(examplesReadmePath)) {
155
- const content = readFile(examplesReadmePath);
156
- sections.push({
157
- title: "EXAMPLES OVERVIEW",
158
- content,
159
- filePath: examplesReadmePath,
160
- });
161
- processedFiles.add(examplesReadmePath);
162
- }
163
-
164
- // 4. All example source files
165
- const examples = discoverExamples();
166
- for (const examplePath of examples) {
167
- const content = readFile(examplePath);
168
- const fileName = path.basename(examplePath);
169
- // Extract example number and name from filename (e.g., "01-basic-workflow.ts")
170
- const match = fileName.match(/^(\d+)-(.+)\.ts$/);
171
- const exampleName = match
172
- ? `Example ${parseInt(match[1])}: ${match[2].replace(/-/g, " ")}`
173
- : fileName;
174
-
175
- sections.push({
176
- title: `EXAMPLE: ${exampleName.toUpperCase()}`,
177
- content,
178
- filePath: examplePath,
179
- });
180
- }
181
-
182
- // Build output
183
- const header = `GROUNDSWELL - LLM DOCUMENTATION
184
- Generated: ${new Date().toISOString()}
185
- ${"=".repeat(80)}
186
-
187
- This file contains the complete documentation and examples for the Groundswell project.
188
- It is auto-generated by scripts/generate-llms-full.ts
189
-
190
- Contents:
191
- ${sections.map((s, i) => ` ${i + 1}. ${s.title}`).join("\n")}
192
-
193
- `;
194
-
195
- const output =
196
- header + sections.map((section) => formatSection(section)).join("\n");
197
-
198
- // Write output
199
- fs.writeFileSync(OUTPUT_FILE, output);
200
- console.log(`Generated ${path.relative(process.cwd(), OUTPUT_FILE)}`);
201
- console.log(`Total sections: ${sections.length}`);
202
- console.log(`Total size: ${(output.length / 1024).toFixed(1)} KB`);
203
- }
204
-
205
- // Run
206
- generateLlmsFull();
@@ -1,216 +0,0 @@
1
- /**
2
- * Performance Test: attachChild() with isDescendantOf() validation
3
- *
4
- * Validates that the isDescendantOf() method (added in P1.M1.T2.S2)
5
- * does not cause significant performance degradation in attachChild()
6
- * operations across various tree sizes and configurations.
7
- *
8
- * Performance Thresholds (from deep-hierarchy-stress.test.ts):
9
- * - Single operation: < 100ms
10
- * - Bulk operations (100 iterations): < 1000ms
11
- * - isDescendantOf() complexity: O(d) where d = tree depth
12
- *
13
- * Related: plan/bugfix/P1M4T2S2/PRP.md
14
- */
15
-
16
- import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
17
- import { Workflow } from '../../index.js';
18
- import { validateTreeConsistency, verifyBidirectionalLink } from '../helpers/tree-verification.js';
19
-
20
- /**
21
- * SimpleWorkflow class for performance testing
22
- * Pattern from: src/__tests__/adversarial/deep-hierarchy-stress.test.ts:20-26
23
- */
24
- class SimpleWorkflow extends Workflow {
25
- async run(): Promise<string> {
26
- this.setStatus('running');
27
- this.setStatus('completed');
28
- return 'done';
29
- }
30
- }
31
-
32
- describe('attachChild Performance Regression Tests', () => {
33
- /**
34
- * Setup: Mock console methods to capture error messages
35
- * Pattern from: src/__tests__/adversarial/deep-hierarchy-stress.test.ts:33-37
36
- */
37
- beforeEach(() => {
38
- vi.spyOn(console, 'log').mockImplementation(() => {});
39
- vi.spyOn(console, 'error').mockImplementation(() => {});
40
- vi.spyOn(console, 'warn').mockImplementation(() => {});
41
- });
42
-
43
- /**
44
- * Teardown: Restore all mocks to prevent test pollution
45
- * CRITICAL: Always use vi.restoreAllMocks() in afterEach
46
- */
47
- afterEach(() => {
48
- vi.restoreAllMocks();
49
- });
50
-
51
- /**
52
- * Test 1: Shallow tree performance (depth 10)
53
- *
54
- * Validates that attachChild() performs very fast on shallow trees
55
- * where isDescendantOf() only needs to traverse a short parent chain.
56
- *
57
- * Threshold: < 10ms (should be very fast for shallow trees)
58
- */
59
- it('should attach child in shallow tree within acceptable time', () => {
60
- // ARRANGE: Create shallow tree (depth 10)
61
- const DEPTH = 10;
62
- const root = new SimpleWorkflow('Root');
63
- let current: any = root;
64
-
65
- for (let i = 0; i < DEPTH; i++) {
66
- current = new SimpleWorkflow(`Level-${i}`, current);
67
- }
68
-
69
- // ACT: Measure attachChild() time for new child at depth 10
70
- const startTime = performance.now();
71
- const newChild = new SimpleWorkflow('NewChild', current);
72
- const attachDuration = performance.now() - startTime;
73
-
74
- // ASSERT: Verify functional correctness
75
- expect(newChild.parent).toBe(current);
76
- expect(current.children).toContain(newChild);
77
- verifyBidirectionalLink(current, newChild);
78
-
79
- // ASSERT: Verify performance threshold (< 10ms for shallow tree)
80
- expect(attachDuration).toBeLessThan(10);
81
- });
82
-
83
- /**
84
- * Test 2: Deep tree performance (depth 100)
85
- *
86
- * Validates that attachChild() scales linearly with tree depth.
87
- * isDescendantOf() must traverse 100 parent references, which should
88
- * complete in < 50ms given the O(d) iterative implementation.
89
- *
90
- * Threshold: < 50ms (linear scaling with depth)
91
- */
92
- it('should attach child in deep tree (depth 100) within acceptable time', () => {
93
- // ARRANGE: Create deep tree
94
- const DEPTH = 100;
95
- const root = new SimpleWorkflow('Root');
96
- let current: any = root;
97
-
98
- for (let i = 0; i < DEPTH; i++) {
99
- current = new SimpleWorkflow(`Child-${i}`, current);
100
- }
101
-
102
- // ACT: Measure attachChild() at deepest level
103
- const startTime = performance.now();
104
- const newChild = new SimpleWorkflow('NewChild', current);
105
- const attachDuration = performance.now() - startTime;
106
-
107
- // ASSERT: Functional correctness
108
- verifyBidirectionalLink(current, newChild);
109
-
110
- // ASSERT: Performance threshold (< 50ms for depth 100)
111
- expect(attachDuration).toBeLessThan(50);
112
-
113
- // ASSERT: Validate overall tree consistency
114
- const errors = validateTreeConsistency(root);
115
- expect(errors).toHaveLength(0);
116
- });
117
-
118
- /**
119
- * Test 3: Extreme deep tree (depth 1000)
120
- *
121
- * Validates that attachChild() handles extreme depth without stack overflow
122
- * and completes within acceptable time. This tests the O(d) complexity
123
- * at the upper bound of typical workflow tree depths.
124
- *
125
- * Threshold: < 100ms (from deep-hierarchy-stress.test.ts:169)
126
- */
127
- it('should attach child in extreme deep tree (depth 1000) without stack overflow', () => {
128
- const DEPTH = 1000;
129
- const root = new SimpleWorkflow('Root');
130
- let current: any = root;
131
-
132
- for (let i = 0; i < DEPTH; i++) {
133
- current = new SimpleWorkflow(`Child-${i}`, current);
134
- }
135
-
136
- // ACT: Measure attachChild() at depth 1000
137
- const startTime = performance.now();
138
- const newChild = new SimpleWorkflow('NewChild', current);
139
- const attachDuration = performance.now() - startTime;
140
-
141
- // ASSERT: Functional correctness
142
- verifyBidirectionalLink(current, newChild);
143
-
144
- // ASSERT: Performance threshold (< 100ms from deep-hierarchy-stress.test.ts:169)
145
- expect(attachDuration).toBeLessThan(100);
146
-
147
- // ASSERT: Validate tree consistency at extreme depth
148
- const errors = validateTreeConsistency(root);
149
- expect(errors).toHaveLength(0);
150
- });
151
-
152
- /**
153
- * Test 4: Wide tree performance (100 children)
154
- *
155
- * Validates that attachChild() performs efficiently when attaching
156
- * multiple children to a single parent. Each attachment only requires
157
- * checking immediate parent chain, so performance should be excellent.
158
- *
159
- * Threshold: < 100ms total, < 1ms average per attachment
160
- */
161
- it('should attach 100 children to single parent efficiently', () => {
162
- // ARRANGE: Create parent
163
- const parent = new SimpleWorkflow('Parent');
164
- const NUM_CHILDREN = 100;
165
-
166
- // ACT: Measure time to attach all children
167
- const startTime = performance.now();
168
- for (let i = 0; i < NUM_CHILDREN; i++) {
169
- const child = new SimpleWorkflow(`Child-${i}`, parent);
170
- }
171
- const totalDuration = performance.now() - startTime;
172
-
173
- // ASSERT: Verify all children attached
174
- expect(parent.children).toHaveLength(NUM_CHILDREN);
175
- parent.children.forEach(child => {
176
- verifyBidirectionalLink(parent, child);
177
- });
178
-
179
- // ASSERT: Performance (< 100ms total, < 1ms average)
180
- expect(totalDuration).toBeLessThan(100);
181
- const avgTime = totalDuration / NUM_CHILDREN;
182
- expect(avgTime).toBeLessThan(1); // < 1ms per attachment
183
- });
184
-
185
- /**
186
- * Test 5: Bulk attachment performance (100 operations)
187
- *
188
- * Validates that sequential attachChild() operations complete within
189
- * acceptable time. This measures cumulative overhead of isDescendantOf()
190
- * validation across multiple operations.
191
- *
192
- * Threshold: < 1000ms (from deep-hierarchy-stress.test.ts:186)
193
- */
194
- it('should complete 100 sequential attachChild operations within acceptable time', () => {
195
- // ARRANGE: Create root workflow
196
- const root = new SimpleWorkflow('Root');
197
- const ITERATIONS = 100;
198
-
199
- // ACT: Measure cumulative time for 100 attachments
200
- const totalStartTime = performance.now();
201
- for (let i = 0; i < ITERATIONS; i++) {
202
- const child = new SimpleWorkflow(`Child-${i}`, root);
203
- }
204
- const totalDuration = performance.now() - totalStartTime;
205
-
206
- // ASSERT: Verify functional correctness
207
- expect(root.children).toHaveLength(ITERATIONS);
208
-
209
- // ASSERT: Performance threshold (< 1000ms from deep-hierarchy-stress.test.ts:186)
210
- expect(totalDuration).toBeLessThan(1000);
211
-
212
- // ASSERT: Average time per operation
213
- const avgTime = totalDuration / ITERATIONS;
214
- expect(avgTime).toBeLessThan(10); // < 10ms average
215
- });
216
- });
@@ -1,101 +0,0 @@
1
- /**
2
- * Circular Reference Tests (TDD Red Phase)
3
- *
4
- * These tests validate the attachChild() method properly prevents
5
- * attaching an ancestor workflow as a child (which would create a circular reference).
6
- *
7
- * This is the RED phase of TDD - tests are written to FAIL initially,
8
- * documenting the expected behavior before implementation.
9
- *
10
- * Related: plan/docs/bugfix-architecture/bug_analysis.md
11
- */
12
-
13
- import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
14
- import { Workflow } from '../../index.js';
15
-
16
- /**
17
- * SimpleWorkflow class for testing
18
- * Pattern from: src/__tests__/unit/workflow.test.ts:4-11
19
- */
20
- class SimpleWorkflow extends Workflow {
21
- async run(): Promise<string> {
22
- this.setStatus('running');
23
- this.setStatus('completed');
24
- return 'done';
25
- }
26
- }
27
-
28
- describe('Adversarial: Circular Reference Detection', () => {
29
- /**
30
- * Setup: Mock console methods to capture error messages
31
- * Pattern from: research/console-mocking.md "Basic Spying Patterns"
32
- */
33
- beforeEach(() => {
34
- vi.spyOn(console, 'log').mockImplementation(() => {});
35
- vi.spyOn(console, 'error').mockImplementation(() => {});
36
- vi.spyOn(console, 'warn').mockImplementation(() => {});
37
- });
38
-
39
- /**
40
- * Teardown: Restore all mocks to prevent test pollution
41
- * CRITICAL: Always use vi.restoreAllMocks() in afterEach
42
- */
43
- afterEach(() => {
44
- vi.restoreAllMocks();
45
- });
46
-
47
- /**
48
- * Test 1: Immediate Circular Reference
49
- *
50
- * Bug: attachChild() does NOT check if the child being attached is actually
51
- * an ancestor of this workflow (would create a circular reference)
52
- *
53
- * Expected: Error thrown with message containing 'circular' OR 'cycle' OR 'ancestor'
54
- * Actual: No error thrown, circular reference created
55
- *
56
- * Pattern from: plan/docs/bugfix-architecture/implementation_patterns.md "Pattern 2"
57
- */
58
- it('should throw when attaching immediate parent as child', () => {
59
- // ARRANGE: Create parent and child workflows
60
- const parent = new SimpleWorkflow('Parent');
61
- const child = new SimpleWorkflow('Child', parent);
62
-
63
- // Verify initial state
64
- // CRITICAL: Constructor auto-attaches child to parent at workflow.ts:113-116
65
- expect(child.parent).toBe(parent);
66
- expect(parent.children).toContain(child);
67
-
68
- // ACT & ASSERT: Attempting to attach parent as child should throw
69
- // This test FAILS because attachChild() doesn't call this.isDescendantOf(child)
70
- expect(() => child.attachChild(parent)).toThrow(/circular|cycle|ancestor/i);
71
- });
72
-
73
- /**
74
- * Test 2: Ancestor Circular Reference (Multi-level)
75
- *
76
- * Bug: attachChild() does NOT check if the child being attached is an ancestor
77
- * anywhere up the parent chain (would create a circular reference)
78
- *
79
- * Expected: Error thrown with message containing 'circular' OR 'cycle' OR 'ancestor'
80
- * Actual: No error thrown, circular reference created
81
- *
82
- * Pattern from: plan/docs/bugfix-architecture/implementation_patterns.md "Pattern 2"
83
- */
84
- it('should throw when attaching ancestor as child', () => {
85
- // ARRANGE: Create 3-level hierarchy
86
- const root = new SimpleWorkflow('Root');
87
- const child1 = new SimpleWorkflow('Child1', root);
88
- const child2 = new SimpleWorkflow('Child2', child1);
89
-
90
- // Verify initial state
91
- // CRITICAL: Constructor auto-attaches at workflow.ts:113-116
92
- expect(child2.parent).toBe(child1);
93
- expect(child1.parent).toBe(root);
94
- expect(root.children).toContain(child1);
95
- expect(child1.children).toContain(child2);
96
-
97
- // ACT & ASSERT: Attempting to attach root as child of child2 should throw
98
- // This test FAILS because attachChild() doesn't call this.isDescendantOf(child)
99
- expect(() => child2.attachChild(root)).toThrow(/circular|cycle|ancestor/i);
100
- });
101
- });
@@ -1,139 +0,0 @@
1
- /**
2
- * Complex Circular Reference Tests
3
- *
4
- * These tests validate that isDescendantOf() correctly detects circular
5
- * references at various depths in the workflow tree.
6
- *
7
- * Test Cases:
8
- * 1. Immediate circular reference (depth 1): child.attachChild(parent)
9
- * 2. Two-level circular reference (depth 2): grandchild.attachChild(root)
10
- * 3. Three-level circular reference (depth 3): great-grandchild.attachChild(root)
11
- *
12
- * Pattern from: plan/docs/bugfix-architecture/implementation_patterns.md Pattern 8
13
- * Related: plan/bugfix/P1M3T1S3/PRP.md
14
- */
15
-
16
- import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
17
- import { Workflow } from '../../index.js';
18
-
19
- /**
20
- * SimpleWorkflow class for testing
21
- * Pattern from: src/__tests__/adversarial/circular-reference.test.ts:20-26
22
- */
23
- class SimpleWorkflow extends Workflow {
24
- async run(): Promise<string> {
25
- this.setStatus('running');
26
- this.setStatus('completed');
27
- return 'done';
28
- }
29
- }
30
-
31
- describe('Adversarial: Complex Circular Reference Detection', () => {
32
- /**
33
- * Setup: Mock console methods to capture error messages
34
- * Pattern from: src/__tests__/adversarial/circular-reference.test.ts:33-37
35
- */
36
- beforeEach(() => {
37
- vi.spyOn(console, 'log').mockImplementation(() => {});
38
- vi.spyOn(console, 'error').mockImplementation(() => {});
39
- vi.spyOn(console, 'warn').mockImplementation(() => {});
40
- });
41
-
42
- /**
43
- * Teardown: Restore all mocks to prevent test pollution
44
- * CRITICAL: Always use vi.restoreAllMocks() in afterEach
45
- */
46
- afterEach(() => {
47
- vi.restoreAllMocks();
48
- });
49
-
50
- /**
51
- * Test 1: Immediate Circular Reference (depth 1)
52
- *
53
- * Validates that attachChild() prevents creating a cycle when a child
54
- * attempts to attach its immediate parent as its child.
55
- *
56
- * Hierarchy: root -> child1
57
- * Cycle attempt: child1.attachChild(root)
58
- *
59
- * Expected: Error thrown with message containing 'circular' OR 'cycle' OR 'ancestor'
60
- */
61
- it('should throw when attaching immediate parent as child (depth 1)', () => {
62
- // ARRANGE: Create 2-level hierarchy (root, child1)
63
- const root = new SimpleWorkflow('Root');
64
- const child1 = new SimpleWorkflow('Child1', root);
65
-
66
- // Verify initial state
67
- // CRITICAL: Constructor auto-attaches child to parent at workflow.ts:113-116
68
- expect(child1.parent).toBe(root);
69
- expect(root.children).toContain(child1);
70
-
71
- // ACT & ASSERT: Attempting to attach parent as child should throw
72
- // This validates isDescendantOf() detects the immediate ancestor
73
- expect(() => child1.attachChild(root)).toThrow(/circular|cycle|ancestor/i);
74
- });
75
-
76
- /**
77
- * Test 2: Two-Level Circular Reference (depth 2)
78
- *
79
- * Validates that attachChild() prevents creating a cycle when a grandchild
80
- * attempts to attach its grandparent (root) as its child.
81
- *
82
- * Hierarchy: root -> child1 -> child2
83
- * Cycle attempt: child2.attachChild(root)
84
- *
85
- * Expected: Error thrown with message containing 'circular' OR 'cycle' OR 'ancestor'
86
- */
87
- it('should throw when attaching grandparent as child (depth 2)', () => {
88
- // ARRANGE: Create 3-level hierarchy (root, child1, child2)
89
- const root = new SimpleWorkflow('Root');
90
- const child1 = new SimpleWorkflow('Child1', root);
91
- const child2 = new SimpleWorkflow('Child2', child1);
92
-
93
- // Verify initial state
94
- // CRITICAL: Constructor auto-attaches at workflow.ts:113-116
95
- expect(child2.parent).toBe(child1);
96
- expect(child1.parent).toBe(root);
97
- expect(root.children).toContain(child1);
98
- expect(child1.children).toContain(child2);
99
-
100
- // ACT & ASSERT: Attempting to attach root as child of child2 should throw
101
- // This validates isDescendantOf() traverses the full ancestor chain
102
- expect(() => child2.attachChild(root)).toThrow(/circular|cycle|ancestor/i);
103
- });
104
-
105
- /**
106
- * Test 3: Three-Level Circular Reference (depth 3)
107
- *
108
- * Validates that attachChild() prevents creating a cycle when a great-grandchild
109
- * attempts to attach its great-grandparent (root) as its child.
110
- *
111
- * Hierarchy: root -> child1 -> child2 -> child3
112
- * Cycle attempt: child3.attachChild(root)
113
- *
114
- * Expected: Error thrown with message containing 'circular' OR 'cycle' OR 'ancestor'
115
- *
116
- * This test provides NEW coverage not present in circular-reference.test.ts
117
- * which only tests depth 1 (immediate parent) and depth 2 (ancestor).
118
- */
119
- it('should throw when attaching great-grandparent as child (depth 3)', () => {
120
- // ARRANGE: Create 4-level hierarchy (root, child1, child2, child3)
121
- const root = new SimpleWorkflow('Root');
122
- const child1 = new SimpleWorkflow('Child1', root); // root -> child1
123
- const child2 = new SimpleWorkflow('Child2', child1); // root -> child1 -> child2
124
- const child3 = new SimpleWorkflow('Child3', child2); // root -> child1 -> child2 -> child3
125
-
126
- // Verify initial state
127
- // CRITICAL: Constructor auto-attaches at workflow.ts:113-116
128
- expect(child3.parent).toBe(child2);
129
- expect(child2.parent).toBe(child1);
130
- expect(child1.parent).toBe(root);
131
- expect(root.children).toContain(child1);
132
- expect(child1.children).toContain(child2);
133
- expect(child2.children).toContain(child3);
134
-
135
- // ACT & ASSERT: Attempting to attach root as child of child3 should throw
136
- // This validates isDescendantOf() detects deep ancestors (3+ levels)
137
- expect(() => child3.attachChild(root)).toThrow(/circular|cycle|ancestor/i);
138
- });
139
- });