groundswell 0.0.1 → 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 (451) hide show
  1. package/CHANGELOG.md +188 -0
  2. package/README.md +99 -5
  3. package/dist/__tests__/adversarial/attachChild-performance.test.d.ts +16 -0
  4. package/dist/__tests__/adversarial/attachChild-performance.test.d.ts.map +1 -0
  5. package/dist/__tests__/adversarial/attachChild-performance.test.js +187 -0
  6. package/dist/__tests__/adversarial/attachChild-performance.test.js.map +1 -0
  7. package/dist/__tests__/adversarial/circular-reference.test.d.ts +13 -0
  8. package/dist/__tests__/adversarial/circular-reference.test.d.ts.map +1 -0
  9. package/dist/__tests__/adversarial/circular-reference.test.js +92 -0
  10. package/dist/__tests__/adversarial/circular-reference.test.js.map +1 -0
  11. package/dist/__tests__/adversarial/complex-circular-reference.test.d.ts +16 -0
  12. package/dist/__tests__/adversarial/complex-circular-reference.test.d.ts.map +1 -0
  13. package/dist/__tests__/adversarial/complex-circular-reference.test.js +127 -0
  14. package/dist/__tests__/adversarial/complex-circular-reference.test.js.map +1 -0
  15. package/dist/__tests__/adversarial/concurrent-task-failures.test.d.ts +21 -0
  16. package/dist/__tests__/adversarial/concurrent-task-failures.test.d.ts.map +1 -0
  17. package/dist/__tests__/adversarial/concurrent-task-failures.test.js +667 -0
  18. package/dist/__tests__/adversarial/concurrent-task-failures.test.js.map +1 -0
  19. package/dist/__tests__/adversarial/deep-analysis.test.d.ts +6 -0
  20. package/dist/__tests__/adversarial/deep-analysis.test.d.ts.map +1 -0
  21. package/dist/__tests__/adversarial/deep-analysis.test.js +877 -0
  22. package/dist/__tests__/adversarial/deep-analysis.test.js.map +1 -0
  23. package/dist/__tests__/adversarial/deep-hierarchy-stress.test.d.ts +13 -0
  24. package/dist/__tests__/adversarial/deep-hierarchy-stress.test.d.ts.map +1 -0
  25. package/dist/__tests__/adversarial/deep-hierarchy-stress.test.js +186 -0
  26. package/dist/__tests__/adversarial/deep-hierarchy-stress.test.js.map +1 -0
  27. package/dist/__tests__/adversarial/e2e-prd-validation.test.d.ts +6 -0
  28. package/dist/__tests__/adversarial/e2e-prd-validation.test.d.ts.map +1 -0
  29. package/dist/__tests__/adversarial/e2e-prd-validation.test.js +626 -0
  30. package/dist/__tests__/adversarial/e2e-prd-validation.test.js.map +1 -0
  31. package/dist/__tests__/adversarial/edge-case.test.d.ts +6 -0
  32. package/dist/__tests__/adversarial/edge-case.test.d.ts.map +1 -0
  33. package/dist/__tests__/adversarial/edge-case.test.js +857 -0
  34. package/dist/__tests__/adversarial/edge-case.test.js.map +1 -0
  35. package/dist/__tests__/adversarial/error-merge-strategy.test.d.ts +20 -0
  36. package/dist/__tests__/adversarial/error-merge-strategy.test.d.ts.map +1 -0
  37. package/dist/__tests__/adversarial/error-merge-strategy.test.js +907 -0
  38. package/dist/__tests__/adversarial/error-merge-strategy.test.js.map +1 -0
  39. package/dist/__tests__/adversarial/incremental-performance.test.d.ts +2 -0
  40. package/dist/__tests__/adversarial/incremental-performance.test.d.ts.map +1 -0
  41. package/dist/__tests__/adversarial/incremental-performance.test.js +113 -0
  42. package/dist/__tests__/adversarial/incremental-performance.test.js.map +1 -0
  43. package/dist/__tests__/adversarial/node-map-update-benchmarks.test.d.ts +22 -0
  44. package/dist/__tests__/adversarial/node-map-update-benchmarks.test.d.ts.map +1 -0
  45. package/dist/__tests__/adversarial/node-map-update-benchmarks.test.js +383 -0
  46. package/dist/__tests__/adversarial/node-map-update-benchmarks.test.js.map +1 -0
  47. package/dist/__tests__/adversarial/observer-propagation.test.d.ts +21 -0
  48. package/dist/__tests__/adversarial/observer-propagation.test.d.ts.map +1 -0
  49. package/dist/__tests__/adversarial/observer-propagation.test.js +404 -0
  50. package/dist/__tests__/adversarial/observer-propagation.test.js.map +1 -0
  51. package/dist/__tests__/adversarial/parent-validation.test.d.ts +13 -0
  52. package/dist/__tests__/adversarial/parent-validation.test.d.ts.map +1 -0
  53. package/dist/__tests__/adversarial/parent-validation.test.js +128 -0
  54. package/dist/__tests__/adversarial/parent-validation.test.js.map +1 -0
  55. package/dist/__tests__/adversarial/prd-12-2-compliance.test.d.ts +20 -0
  56. package/dist/__tests__/adversarial/prd-12-2-compliance.test.d.ts.map +1 -0
  57. package/dist/__tests__/adversarial/prd-12-2-compliance.test.js +482 -0
  58. package/dist/__tests__/adversarial/prd-12-2-compliance.test.js.map +1 -0
  59. package/dist/__tests__/adversarial/prd-compliance.test.d.ts +6 -0
  60. package/dist/__tests__/adversarial/prd-compliance.test.d.ts.map +1 -0
  61. package/dist/__tests__/adversarial/prd-compliance.test.js +886 -0
  62. package/dist/__tests__/adversarial/prd-compliance.test.js.map +1 -0
  63. package/dist/__tests__/compatibility/backward-compatibility.test.d.ts +22 -0
  64. package/dist/__tests__/compatibility/backward-compatibility.test.d.ts.map +1 -0
  65. package/dist/__tests__/compatibility/backward-compatibility.test.js +1843 -0
  66. package/dist/__tests__/compatibility/backward-compatibility.test.js.map +1 -0
  67. package/dist/__tests__/helpers/index.d.ts +10 -0
  68. package/dist/__tests__/helpers/index.d.ts.map +1 -0
  69. package/dist/__tests__/helpers/index.js +10 -0
  70. package/dist/__tests__/helpers/index.js.map +1 -0
  71. package/dist/__tests__/helpers/tree-verification.d.ts +90 -0
  72. package/dist/__tests__/helpers/tree-verification.d.ts.map +1 -0
  73. package/dist/__tests__/helpers/tree-verification.js +202 -0
  74. package/dist/__tests__/helpers/tree-verification.js.map +1 -0
  75. package/dist/__tests__/integration/agent-workflow.test.d.ts +2 -0
  76. package/dist/__tests__/integration/agent-workflow.test.d.ts.map +1 -0
  77. package/dist/__tests__/integration/agent-workflow.test.js +256 -0
  78. package/dist/__tests__/integration/agent-workflow.test.js.map +1 -0
  79. package/dist/__tests__/integration/bidirectional-consistency.test.d.ts +14 -0
  80. package/dist/__tests__/integration/bidirectional-consistency.test.d.ts.map +1 -0
  81. package/dist/__tests__/integration/bidirectional-consistency.test.js +668 -0
  82. package/dist/__tests__/integration/bidirectional-consistency.test.js.map +1 -0
  83. package/dist/__tests__/integration/observer-logging.test.d.ts +2 -0
  84. package/dist/__tests__/integration/observer-logging.test.d.ts.map +1 -0
  85. package/dist/__tests__/integration/observer-logging.test.js +517 -0
  86. package/dist/__tests__/integration/observer-logging.test.js.map +1 -0
  87. package/dist/__tests__/integration/tree-mirroring.test.d.ts +2 -0
  88. package/dist/__tests__/integration/tree-mirroring.test.d.ts.map +1 -0
  89. package/dist/__tests__/integration/tree-mirroring.test.js +117 -0
  90. package/dist/__tests__/integration/tree-mirroring.test.js.map +1 -0
  91. package/dist/__tests__/integration/workflow-reparenting.test.d.ts +12 -0
  92. package/dist/__tests__/integration/workflow-reparenting.test.d.ts.map +1 -0
  93. package/dist/__tests__/integration/workflow-reparenting.test.js +239 -0
  94. package/dist/__tests__/integration/workflow-reparenting.test.js.map +1 -0
  95. package/dist/__tests__/unit/agent.test.d.ts +2 -0
  96. package/dist/__tests__/unit/agent.test.d.ts.map +1 -0
  97. package/dist/__tests__/unit/agent.test.js +143 -0
  98. package/dist/__tests__/unit/agent.test.js.map +1 -0
  99. package/dist/__tests__/unit/cache-key.test.d.ts +5 -0
  100. package/dist/__tests__/unit/cache-key.test.d.ts.map +1 -0
  101. package/dist/__tests__/unit/cache-key.test.js +145 -0
  102. package/dist/__tests__/unit/cache-key.test.js.map +1 -0
  103. package/dist/__tests__/unit/cache.test.d.ts +5 -0
  104. package/dist/__tests__/unit/cache.test.d.ts.map +1 -0
  105. package/dist/__tests__/unit/cache.test.js +132 -0
  106. package/dist/__tests__/unit/cache.test.js.map +1 -0
  107. package/dist/__tests__/unit/context.test.d.ts +2 -0
  108. package/dist/__tests__/unit/context.test.d.ts.map +1 -0
  109. package/dist/__tests__/unit/context.test.js +220 -0
  110. package/dist/__tests__/unit/context.test.js.map +1 -0
  111. package/dist/__tests__/unit/decorators.test.d.ts +2 -0
  112. package/dist/__tests__/unit/decorators.test.d.ts.map +1 -0
  113. package/dist/__tests__/unit/decorators.test.js +162 -0
  114. package/dist/__tests__/unit/decorators.test.js.map +1 -0
  115. package/dist/__tests__/unit/introspection-tools.test.d.ts +5 -0
  116. package/dist/__tests__/unit/introspection-tools.test.d.ts.map +1 -0
  117. package/dist/__tests__/unit/introspection-tools.test.js +191 -0
  118. package/dist/__tests__/unit/introspection-tools.test.js.map +1 -0
  119. package/dist/__tests__/unit/logger.test.d.ts +2 -0
  120. package/dist/__tests__/unit/logger.test.d.ts.map +1 -0
  121. package/dist/__tests__/unit/logger.test.js +241 -0
  122. package/dist/__tests__/unit/logger.test.js.map +1 -0
  123. package/dist/__tests__/unit/observable.test.d.ts +2 -0
  124. package/dist/__tests__/unit/observable.test.d.ts.map +1 -0
  125. package/dist/__tests__/unit/observable.test.js +251 -0
  126. package/dist/__tests__/unit/observable.test.js.map +1 -0
  127. package/dist/__tests__/unit/prompt.test.d.ts +2 -0
  128. package/dist/__tests__/unit/prompt.test.d.ts.map +1 -0
  129. package/dist/__tests__/unit/prompt.test.js +113 -0
  130. package/dist/__tests__/unit/prompt.test.js.map +1 -0
  131. package/dist/__tests__/unit/reflection.test.d.ts +5 -0
  132. package/dist/__tests__/unit/reflection.test.d.ts.map +1 -0
  133. package/dist/__tests__/unit/reflection.test.js +160 -0
  134. package/dist/__tests__/unit/reflection.test.js.map +1 -0
  135. package/dist/__tests__/unit/tree-debugger-incremental.test.d.ts +2 -0
  136. package/dist/__tests__/unit/tree-debugger-incremental.test.d.ts.map +1 -0
  137. package/dist/__tests__/unit/tree-debugger-incremental.test.js +136 -0
  138. package/dist/__tests__/unit/tree-debugger-incremental.test.js.map +1 -0
  139. package/dist/__tests__/unit/tree-debugger.test.d.ts +2 -0
  140. package/dist/__tests__/unit/tree-debugger.test.d.ts.map +1 -0
  141. package/dist/__tests__/unit/tree-debugger.test.js +69 -0
  142. package/dist/__tests__/unit/tree-debugger.test.js.map +1 -0
  143. package/dist/__tests__/unit/utils/workflow-error-utils.test.d.ts +2 -0
  144. package/dist/__tests__/unit/utils/workflow-error-utils.test.d.ts.map +1 -0
  145. package/dist/__tests__/unit/utils/workflow-error-utils.test.js +154 -0
  146. package/dist/__tests__/unit/utils/workflow-error-utils.test.js.map +1 -0
  147. package/dist/__tests__/unit/workflow-detachChild.test.d.ts +2 -0
  148. package/dist/__tests__/unit/workflow-detachChild.test.d.ts.map +1 -0
  149. package/dist/__tests__/unit/workflow-detachChild.test.js +76 -0
  150. package/dist/__tests__/unit/workflow-detachChild.test.js.map +1 -0
  151. package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.d.ts +2 -0
  152. package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.d.ts.map +1 -0
  153. package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.js +122 -0
  154. package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.js.map +1 -0
  155. package/dist/__tests__/unit/workflow-isDescendantOf.test.d.ts +2 -0
  156. package/dist/__tests__/unit/workflow-isDescendantOf.test.d.ts.map +1 -0
  157. package/dist/__tests__/unit/workflow-isDescendantOf.test.js +140 -0
  158. package/dist/__tests__/unit/workflow-isDescendantOf.test.js.map +1 -0
  159. package/dist/__tests__/unit/workflow.test.d.ts +2 -0
  160. package/dist/__tests__/unit/workflow.test.d.ts.map +1 -0
  161. package/dist/__tests__/unit/workflow.test.js +330 -0
  162. package/dist/__tests__/unit/workflow.test.js.map +1 -0
  163. package/dist/cache/cache-key.d.ts +66 -0
  164. package/dist/cache/cache-key.d.ts.map +1 -0
  165. package/dist/cache/cache-key.js +195 -0
  166. package/dist/cache/cache-key.js.map +1 -0
  167. package/dist/cache/cache.d.ts +104 -0
  168. package/dist/cache/cache.d.ts.map +1 -0
  169. package/dist/cache/cache.js +179 -0
  170. package/dist/cache/cache.js.map +1 -0
  171. package/{src/cache/index.ts → dist/cache/index.d.ts} +1 -1
  172. package/dist/cache/index.d.ts.map +1 -0
  173. package/dist/cache/index.js +6 -0
  174. package/dist/cache/index.js.map +1 -0
  175. package/dist/core/agent.d.ts +112 -0
  176. package/dist/core/agent.d.ts.map +1 -0
  177. package/dist/core/agent.js +426 -0
  178. package/dist/core/agent.js.map +1 -0
  179. package/{src/core/context.ts → dist/core/context.d.ts} +16 -67
  180. package/dist/core/context.d.ts.map +1 -0
  181. package/dist/core/context.js +80 -0
  182. package/dist/core/context.js.map +1 -0
  183. package/dist/core/event-tree.d.ts +72 -0
  184. package/dist/core/event-tree.d.ts.map +1 -0
  185. package/dist/core/event-tree.js +211 -0
  186. package/dist/core/event-tree.js.map +1 -0
  187. package/{src/core/factory.ts → dist/core/factory.d.ts} +6 -27
  188. package/dist/core/factory.d.ts.map +1 -0
  189. package/dist/core/factory.js +110 -0
  190. package/dist/core/factory.js.map +1 -0
  191. package/{src/core/index.ts → dist/core/index.d.ts} +2 -10
  192. package/dist/core/index.d.ts.map +1 -0
  193. package/dist/core/index.js +9 -0
  194. package/dist/core/index.js.map +1 -0
  195. package/dist/core/logger.d.ts +50 -0
  196. package/dist/core/logger.d.ts.map +1 -0
  197. package/dist/core/logger.js +91 -0
  198. package/dist/core/logger.js.map +1 -0
  199. package/dist/core/mcp-handler.d.ts +69 -0
  200. package/dist/core/mcp-handler.d.ts.map +1 -0
  201. package/dist/core/mcp-handler.js +143 -0
  202. package/dist/core/mcp-handler.js.map +1 -0
  203. package/dist/core/prompt.d.ts +80 -0
  204. package/dist/core/prompt.d.ts.map +1 -0
  205. package/dist/core/prompt.js +120 -0
  206. package/dist/core/prompt.js.map +1 -0
  207. package/dist/core/workflow-context.d.ts +57 -0
  208. package/dist/core/workflow-context.d.ts.map +1 -0
  209. package/dist/core/workflow-context.js +263 -0
  210. package/dist/core/workflow-context.js.map +1 -0
  211. package/dist/core/workflow.d.ts +241 -0
  212. package/dist/core/workflow.d.ts.map +1 -0
  213. package/dist/core/workflow.js +464 -0
  214. package/dist/core/workflow.js.map +1 -0
  215. package/dist/debugger/index.d.ts +2 -0
  216. package/dist/debugger/index.d.ts.map +1 -0
  217. package/{src/debugger/index.ts → dist/debugger/index.js} +1 -0
  218. package/dist/debugger/index.js.map +1 -0
  219. package/dist/debugger/tree-debugger.d.ts +71 -0
  220. package/dist/debugger/tree-debugger.d.ts.map +1 -0
  221. package/dist/debugger/tree-debugger.js +198 -0
  222. package/dist/debugger/tree-debugger.js.map +1 -0
  223. package/dist/decorators/index.d.ts +4 -0
  224. package/dist/decorators/index.d.ts.map +1 -0
  225. package/{src/decorators/index.ts → dist/decorators/index.js} +1 -0
  226. package/dist/decorators/index.js.map +1 -0
  227. package/dist/decorators/observed-state.d.ts +32 -0
  228. package/dist/decorators/observed-state.d.ts.map +1 -0
  229. package/dist/decorators/observed-state.js +79 -0
  230. package/dist/decorators/observed-state.js.map +1 -0
  231. package/dist/decorators/step.d.ts +15 -0
  232. package/dist/decorators/step.d.ts.map +1 -0
  233. package/dist/decorators/step.js +110 -0
  234. package/dist/decorators/step.js.map +1 -0
  235. package/dist/decorators/task.d.ts +50 -0
  236. package/dist/decorators/task.d.ts.map +1 -0
  237. package/dist/decorators/task.js +118 -0
  238. package/dist/decorators/task.js.map +1 -0
  239. package/dist/examples/index.d.ts +3 -0
  240. package/dist/examples/index.d.ts.map +1 -0
  241. package/{src/examples/index.ts → dist/examples/index.js} +1 -0
  242. package/dist/examples/index.js.map +1 -0
  243. package/dist/examples/tdd-orchestrator.d.ts +15 -0
  244. package/dist/examples/tdd-orchestrator.d.ts.map +1 -0
  245. package/dist/examples/tdd-orchestrator.js +121 -0
  246. package/dist/examples/tdd-orchestrator.js.map +1 -0
  247. package/dist/examples/test-cycle-workflow.d.ts +14 -0
  248. package/dist/examples/test-cycle-workflow.d.ts.map +1 -0
  249. package/dist/examples/test-cycle-workflow.js +116 -0
  250. package/dist/examples/test-cycle-workflow.js.map +1 -0
  251. package/dist/index.d.ts +27 -0
  252. package/dist/index.d.ts.map +1 -0
  253. package/dist/index.js +40 -0
  254. package/dist/index.js.map +1 -0
  255. package/dist/reflection/index.d.ts +5 -0
  256. package/dist/reflection/index.d.ts.map +1 -0
  257. package/{src/reflection/index.ts → dist/reflection/index.js} +1 -1
  258. package/dist/reflection/index.js.map +1 -0
  259. package/dist/reflection/reflection.d.ts +84 -0
  260. package/dist/reflection/reflection.d.ts.map +1 -0
  261. package/dist/reflection/reflection.js +329 -0
  262. package/dist/reflection/reflection.js.map +1 -0
  263. package/dist/tools/index.d.ts +6 -0
  264. package/dist/tools/index.d.ts.map +1 -0
  265. package/dist/tools/index.js +11 -0
  266. package/dist/tools/index.js.map +1 -0
  267. package/dist/tools/introspection.d.ts +165 -0
  268. package/dist/tools/introspection.d.ts.map +1 -0
  269. package/dist/tools/introspection.js +324 -0
  270. package/dist/tools/introspection.js.map +1 -0
  271. package/dist/types/agent.d.ts +66 -0
  272. package/dist/types/agent.d.ts.map +1 -0
  273. package/dist/types/agent.js +6 -0
  274. package/dist/types/agent.js.map +1 -0
  275. package/dist/types/decorators.d.ts +31 -0
  276. package/dist/types/decorators.d.ts.map +1 -0
  277. package/dist/types/decorators.js +2 -0
  278. package/dist/types/decorators.js.map +1 -0
  279. package/dist/types/error-strategy.d.ts +13 -0
  280. package/dist/types/error-strategy.d.ts.map +1 -0
  281. package/dist/types/error-strategy.js +2 -0
  282. package/dist/types/error-strategy.js.map +1 -0
  283. package/dist/types/error.d.ts +20 -0
  284. package/dist/types/error.d.ts.map +1 -0
  285. package/dist/types/error.js +2 -0
  286. package/dist/types/error.js.map +1 -0
  287. package/dist/types/events.d.ts +87 -0
  288. package/dist/types/events.d.ts.map +1 -0
  289. package/dist/types/events.js +2 -0
  290. package/dist/types/events.js.map +1 -0
  291. package/dist/types/index.d.ts +15 -0
  292. package/dist/types/index.d.ts.map +1 -0
  293. package/dist/types/index.js +2 -0
  294. package/dist/types/index.js.map +1 -0
  295. package/dist/types/logging.d.ts +24 -0
  296. package/dist/types/logging.d.ts.map +1 -0
  297. package/dist/types/logging.js +2 -0
  298. package/dist/types/logging.js.map +1 -0
  299. package/dist/types/observer.d.ts +18 -0
  300. package/dist/types/observer.d.ts.map +1 -0
  301. package/dist/types/observer.js +2 -0
  302. package/dist/types/observer.js.map +1 -0
  303. package/dist/types/prompt.d.ts +31 -0
  304. package/dist/types/prompt.d.ts.map +1 -0
  305. package/dist/types/prompt.js +6 -0
  306. package/dist/types/prompt.js.map +1 -0
  307. package/dist/types/reflection.d.ts +96 -0
  308. package/dist/types/reflection.d.ts.map +1 -0
  309. package/dist/types/reflection.js +24 -0
  310. package/dist/types/reflection.js.map +1 -0
  311. package/dist/types/sdk-primitives.d.ts +118 -0
  312. package/dist/types/sdk-primitives.d.ts.map +1 -0
  313. package/dist/types/sdk-primitives.js +6 -0
  314. package/dist/types/sdk-primitives.js.map +1 -0
  315. package/{src/types/snapshot.ts → dist/types/snapshot.d.ts} +5 -5
  316. package/dist/types/snapshot.d.ts.map +1 -0
  317. package/dist/types/snapshot.js +2 -0
  318. package/dist/types/snapshot.js.map +1 -0
  319. package/dist/types/workflow-context.d.ts +139 -0
  320. package/dist/types/workflow-context.d.ts.map +1 -0
  321. package/dist/types/workflow-context.js +8 -0
  322. package/dist/types/workflow-context.js.map +1 -0
  323. package/dist/types/workflow.d.ts +30 -0
  324. package/dist/types/workflow.d.ts.map +1 -0
  325. package/dist/types/workflow.js +2 -0
  326. package/dist/types/workflow.js.map +1 -0
  327. package/dist/utils/id.d.ts +6 -0
  328. package/dist/utils/id.d.ts.map +1 -0
  329. package/dist/utils/id.js +12 -0
  330. package/dist/utils/id.js.map +1 -0
  331. package/{src/utils/index.ts → dist/utils/index.d.ts} +2 -0
  332. package/dist/utils/index.d.ts.map +1 -0
  333. package/dist/utils/index.js +4 -0
  334. package/dist/utils/index.js.map +1 -0
  335. package/dist/utils/observable.d.ts +54 -0
  336. package/dist/utils/observable.d.ts.map +1 -0
  337. package/dist/utils/observable.js +82 -0
  338. package/dist/utils/observable.js.map +1 -0
  339. package/dist/utils/workflow-error-utils.d.ts +22 -0
  340. package/dist/utils/workflow-error-utils.d.ts.map +1 -0
  341. package/dist/utils/workflow-error-utils.js +45 -0
  342. package/dist/utils/workflow-error-utils.js.map +1 -0
  343. package/package.json +7 -2
  344. package/.claude/settings.local.json +0 -9
  345. package/.claude/system_prompts/task-breakdown.md +0 -100
  346. package/PRPs/001-hierarchical-workflow-engine.md +0 -2438
  347. package/PRPs/PRDs/001-hierarchical-workflow-engine.md +0 -543
  348. package/PRPs/PRDs/002-agent-prompt.md +0 -390
  349. package/PRPs/PRDs/003-agent-prompt.md +0 -943
  350. package/PRPs/PRDs/004-agent-prompt.md +0 -1136
  351. package/PRPs/PRDs/tasks-001.json +0 -492
  352. package/PRPs/README.md +0 -83
  353. package/PRPs/templates/prp_base.md +0 -222
  354. package/docs/agent.md +0 -422
  355. package/docs/prompt.md +0 -419
  356. package/docs/workflow.md +0 -600
  357. package/examples/README.md +0 -244
  358. package/examples/examples/01-basic-workflow.ts +0 -100
  359. package/examples/examples/02-decorator-options.ts +0 -217
  360. package/examples/examples/03-parent-child.ts +0 -241
  361. package/examples/examples/04-observers-debugger.ts +0 -340
  362. package/examples/examples/05-error-handling.ts +0 -387
  363. package/examples/examples/06-concurrent-tasks.ts +0 -352
  364. package/examples/examples/07-agent-loops.ts +0 -432
  365. package/examples/examples/08-sdk-features.ts +0 -667
  366. package/examples/examples/09-reflection.ts +0 -573
  367. package/examples/examples/10-introspection.ts +0 -550
  368. package/examples/index.ts +0 -143
  369. package/examples/utils/helpers.ts +0 -57
  370. package/llms_full.txt +0 -5890
  371. package/plan/P1P2/PRP.md +0 -527
  372. package/plan/P1P2/research/LRU_CACHE_BEST_PRACTICES.md +0 -1929
  373. package/plan/P1P2/research/LRU_CACHE_CODE_PATTERNS.md +0 -857
  374. package/plan/P1P2/research/LRU_CACHE_INTEGRATION_GUIDE.md +0 -738
  375. package/plan/P1P2/research/LRU_CACHE_RESEARCH_INDEX.md +0 -424
  376. package/plan/P1P2/research/REFLECTION_INDEX.md +0 -291
  377. package/plan/P1P2/research/REFLECTION_RESEARCH_REPORT.md +0 -1342
  378. package/plan/P1P2/research/RESEARCH_SUMMARY.md +0 -342
  379. package/plan/P1P2/research/anthropic-sdk.md +0 -174
  380. package/plan/P1P2/research/async-local-storage.md +0 -200
  381. package/plan/P1P2/research/reflection-code-patterns.md +0 -1205
  382. package/plan/P1P2/research/reflection-decision-matrix.md +0 -421
  383. package/plan/P1P2/research/reflection-implementation-guide.md +0 -1341
  384. package/plan/P1P2/research/reflection-integration-guide.md +0 -834
  385. package/plan/P1P2/research/reflection-patterns.md +0 -1468
  386. package/plan/P1P2/research/reflection-quick-reference.md +0 -558
  387. package/plan/P1P2/research/zod-schema.md +0 -152
  388. package/plan/P3P4/PRP.md +0 -1388
  389. package/plan/P3P4/research/caching-lru.md +0 -116
  390. package/plan/P3P4/research/introspection-tools.md +0 -177
  391. package/plan/P3P4/research/reflection-patterns.md +0 -117
  392. package/plan/P4P5/PRP.md +0 -1136
  393. package/plan/P4P5/research/RESEARCH_SUMMARY.md +0 -151
  394. package/plan/architecture/external_deps.md +0 -358
  395. package/plan/architecture/system_context.md +0 -242
  396. package/plan/backlog.json +0 -867
  397. package/plan/research/INTROSPECTION_RESEARCH_SUMMARY.md +0 -378
  398. package/plan/research/README-INTROSPECTION.md +0 -352
  399. package/plan/research/agent-introspection-patterns.md +0 -1085
  400. package/plan/research/introspection-security-guide.md +0 -928
  401. package/plan/research/introspection-tool-examples.md +0 -875
  402. package/scripts/generate-llms-full.ts +0 -206
  403. package/src/__tests__/integration/agent-workflow.test.ts +0 -256
  404. package/src/__tests__/integration/tree-mirroring.test.ts +0 -114
  405. package/src/__tests__/unit/agent.test.ts +0 -169
  406. package/src/__tests__/unit/cache-key.test.ts +0 -182
  407. package/src/__tests__/unit/cache.test.ts +0 -172
  408. package/src/__tests__/unit/context.test.ts +0 -138
  409. package/src/__tests__/unit/decorators.test.ts +0 -100
  410. package/src/__tests__/unit/introspection-tools.test.ts +0 -277
  411. package/src/__tests__/unit/prompt.test.ts +0 -135
  412. package/src/__tests__/unit/reflection.test.ts +0 -210
  413. package/src/__tests__/unit/tree-debugger.test.ts +0 -85
  414. package/src/__tests__/unit/workflow.test.ts +0 -81
  415. package/src/cache/cache-key.ts +0 -244
  416. package/src/cache/cache.ts +0 -236
  417. package/src/core/agent.ts +0 -573
  418. package/src/core/event-tree.ts +0 -260
  419. package/src/core/logger.ts +0 -87
  420. package/src/core/mcp-handler.ts +0 -184
  421. package/src/core/prompt.ts +0 -150
  422. package/src/core/workflow-context.ts +0 -349
  423. package/src/core/workflow.ts +0 -302
  424. package/src/debugger/tree-debugger.ts +0 -210
  425. package/src/decorators/observed-state.ts +0 -95
  426. package/src/decorators/step.ts +0 -139
  427. package/src/decorators/task.ts +0 -96
  428. package/src/examples/tdd-orchestrator.ts +0 -65
  429. package/src/examples/test-cycle-workflow.ts +0 -64
  430. package/src/index.ts +0 -140
  431. package/src/reflection/reflection.ts +0 -407
  432. package/src/tools/index.ts +0 -36
  433. package/src/tools/introspection.ts +0 -464
  434. package/src/types/agent.ts +0 -90
  435. package/src/types/decorators.ts +0 -25
  436. package/src/types/error-strategy.ts +0 -13
  437. package/src/types/error.ts +0 -20
  438. package/src/types/events.ts +0 -74
  439. package/src/types/index.ts +0 -55
  440. package/src/types/logging.ts +0 -24
  441. package/src/types/observer.ts +0 -18
  442. package/src/types/prompt.ts +0 -40
  443. package/src/types/reflection.ts +0 -117
  444. package/src/types/sdk-primitives.ts +0 -128
  445. package/src/types/workflow-context.ts +0 -163
  446. package/src/types/workflow.ts +0 -37
  447. package/src/utils/id.ts +0 -11
  448. package/src/utils/observable.ts +0 -77
  449. package/tasks.json +0 -0
  450. package/tsconfig.json +0 -22
  451. package/vitest.config.ts +0 -16
package/plan/P1P2/PRP.md DELETED
@@ -1,527 +0,0 @@
1
- # PRP: Agent & Prompt Foundation + Hierarchy Integration
2
-
3
- ## Phases 1 & 2 Implementation Plan
4
-
5
- ---
6
-
7
- ## Goal
8
-
9
- ### Feature Goal
10
- Implement the foundational Agent and Prompt classes with full Anthropic SDK integration, and integrate them into the existing workflow hierarchy with automatic context propagation and event capture.
11
-
12
- ### Deliverable
13
- A complete Agent/Prompt system where:
14
- 1. `Agent` class wraps Anthropic SDK for prompt execution
15
- 2. `Prompt<T>` class provides type-safe, immutable prompt definitions with Zod validation
16
- 3. Agent calls within workflow steps automatically capture events in the workflow tree
17
- 4. Zero-plumbing context propagation via `AsyncLocalStorage`
18
- 5. Extended `WorkflowEvent` union captures all agent/prompt/tool activities
19
-
20
- ### Success Definition
21
- - [ ] `npm run build` passes with no TypeScript errors
22
- - [ ] `npm test` passes all new and existing tests
23
- - [ ] Agent can execute prompts and validate responses with Zod schemas
24
- - [ ] Events from agent.prompt() calls appear in WorkflowTreeDebugger output
25
- - [ ] Context propagates automatically without manual plumbing
26
-
27
- ---
28
-
29
- ## Context
30
-
31
- ### External Documentation
32
- ```yaml
33
- anthropic_sdk:
34
- npm: "https://www.npmjs.com/package/@anthropic-ai/sdk"
35
- github: "https://github.com/anthropics/anthropic-sdk-typescript"
36
- api_reference: "https://github.com/anthropics/anthropic-sdk-typescript/blob/main/api.md"
37
- tool_use: "https://platform.claude.com/docs/en/agents-and-tools/tool-use/implement-tool-use"
38
- version: "^0.71.1"
39
-
40
- zod:
41
- npm: "https://www.npmjs.com/package/zod"
42
- docs: "https://v3.zod.dev/"
43
- api: "https://zod.dev/api"
44
- version: "^3.23.0"
45
-
46
- async_local_storage:
47
- node_docs: "https://nodejs.org/api/async_context.html"
48
- ```
49
-
50
- ### Codebase Patterns to Follow
51
- ```yaml
52
- workflow_base_class:
53
- file: "/src/core/workflow.ts"
54
- pattern: "Abstract class with node representation, emitEvent(), observer propagation"
55
- key_methods: "constructor(), attachChild(), emitEvent(), getNode(), setStatus()"
56
-
57
- event_types:
58
- file: "/src/types/events.ts"
59
- pattern: "Discriminated union with type field"
60
- existing: "childAttached, stateSnapshot, stepStart, stepEnd, error, taskStart, taskEnd, treeUpdated"
61
-
62
- observer_pattern:
63
- file: "/src/types/observer.ts"
64
- pattern: "WorkflowObserver interface with onLog, onEvent, onStateUpdated, onTreeChanged"
65
-
66
- step_decorator:
67
- file: "/src/decorators/step.ts"
68
- pattern: "Method decorator that emits stepStart/stepEnd events, captures timing"
69
-
70
- id_generation:
71
- file: "/src/utils/id.ts"
72
- pattern: "generateId() using crypto.randomUUID()"
73
-
74
- type_exports:
75
- file: "/src/types/index.ts"
76
- pattern: "Re-export all types from individual files"
77
-
78
- main_exports:
79
- file: "/src/index.ts"
80
- pattern: "Export classes from core/, decorators/, debugger/, utils/"
81
- ```
82
-
83
- ### Architectural Decisions (from system_context.md)
84
- ```yaml
85
- decision_1:
86
- rule: "Agent is NOT a Workflow subclass"
87
- reason: "Agents execute prompts; they don't have their own lifecycle"
88
-
89
- decision_2:
90
- rule: "Prompts are immutable value objects"
91
- reason: "Prompts define what to send; execution happens via Agent.prompt()"
92
-
93
- decision_3:
94
- rule: "WorkflowContext provides step() and spawnWorkflow()"
95
- reason: "PRD requires step() callable anywhere in JS control flow"
96
-
97
- decision_4:
98
- rule: "All SDK properties pass through unchanged"
99
- reason: "tools, mcps, skills, hooks, env must map 1:1 to Anthropic SDK"
100
- ```
101
-
102
- ### Test Patterns
103
- ```yaml
104
- test_framework: "vitest"
105
- test_location: "/src/__tests__/unit/*.test.ts and /src/__tests__/integration/*.test.ts"
106
- test_config: "/vitest.config.ts"
107
- test_pattern: |
108
- import { describe, it, expect } from 'vitest';
109
- describe('ClassName', () => {
110
- it('should do something', () => {
111
- expect(result).toBe(expected);
112
- });
113
- });
114
- ```
115
-
116
- ---
117
-
118
- ## Implementation Tasks
119
-
120
- ### Phase 1: Foundation Layer - Agent & Prompt Core
121
-
122
- #### P1.M1: Project Setup & Dependencies
123
-
124
- **P1.M1.T1.S1: Update package.json with dependencies**
125
- ```
126
- LOCATION: /package.json
127
- ACTION: Add dependencies block with @anthropic-ai/sdk@^0.71.1 and zod@^3.23.0
128
- VALIDATION: npm install succeeds, npm ls @anthropic-ai/sdk zod shows correct versions
129
- ```
130
-
131
- **P1.M1.T2.S1: Create AgentConfig and PromptOverrides types**
132
- ```
133
- LOCATION: /src/types/agent.ts (NEW FILE)
134
- PATTERN: Follow /src/types/workflow.ts structure
135
- EXPORTS: AgentConfig, PromptOverrides interfaces
136
- CONTENT:
137
- - AgentConfig: name?, system?, tools?, mcps?, skills?, hooks?, env?, enableReflection?, enableCache?
138
- - PromptOverrides: extends relevant AgentConfig fields + temperature?, maxTokens?, stop?, disableCache?
139
- VALIDATION: tsc --noEmit passes
140
- ```
141
-
142
- **P1.M1.T2.S2: Create PromptConfig and Prompt types**
143
- ```
144
- LOCATION: /src/types/prompt.ts (NEW FILE)
145
- IMPORTS: z from 'zod', AgentConfig from './agent.js'
146
- EXPORTS: PromptConfig<T> interface
147
- CONTENT:
148
- - PromptConfig<T>: user (string), data? (Record<string,any>), responseFormat (z.ZodType<T>)
149
- - Plus override fields: system?, tools?, mcps?, skills?, hooks?, enableReflection?
150
- VALIDATION: tsc --noEmit passes
151
- ```
152
-
153
- **P1.M1.T2.S3: Create SDK primitive types**
154
- ```
155
- LOCATION: /src/types/sdk-primitives.ts (NEW FILE)
156
- PATTERN: Mirror Anthropic SDK types for pass-through
157
- EXPORTS: Tool, MCPServer, Skill, AgentHooks, HookHandler interfaces
158
- CONTENT:
159
- - Tool: name, description, input_schema (JSON Schema object)
160
- - MCPServer: name, version?, transport ('stdio'|'inprocess'), command?, args?, tools?
161
- - Skill: name, path (string to skill directory)
162
- - AgentHooks: PreToolUse?, PostToolUse?, SessionStart?, SessionEnd? arrays
163
- VALIDATION: tsc --noEmit passes
164
- ```
165
-
166
- **P1.M1.T2.S4: Update types/index.ts exports**
167
- ```
168
- LOCATION: /src/types/index.ts
169
- ACTION: Add exports for new type files
170
- PATTERN: Follow existing re-export pattern
171
- ```
172
-
173
- #### P1.M2: Agent & Prompt Class Implementation
174
-
175
- **P1.M2.T1.S1: Implement Agent constructor and config storage**
176
- ```
177
- LOCATION: /src/core/agent.ts (NEW FILE)
178
- IMPORTS: Anthropic from '@anthropic-ai/sdk', types from '../types/index.js'
179
- PATTERN: Store config, instantiate private Anthropic client
180
- CLASS: Agent
181
- CONSTRUCTOR: (config: AgentConfig) => stores all config fields, creates client
182
- VALIDATION: Unit test creates Agent instance successfully
183
- ```
184
-
185
- **P1.M2.T2.S1: Implement Prompt<T> class**
186
- ```
187
- LOCATION: /src/core/prompt.ts (NEW FILE)
188
- IMPORTS: z from 'zod', types from '../types/index.js'
189
- CLASS: Prompt<T>
190
- CONSTRUCTOR: (config: PromptConfig<T>) => stores all fields as readonly
191
- METHODS: validateResponse(data: unknown): T using this.responseFormat.parse()
192
- PATTERN: Immutable value object - all fields readonly
193
- VALIDATION: Unit test creates Prompt, validates response successfully
194
- ```
195
-
196
- **P1.M2.T1.S2: Implement Agent.prompt() method**
197
- ```
198
- LOCATION: /src/core/agent.ts
199
- DEPENDENCIES: Agent constructor, Prompt class
200
- METHOD: prompt<T>(prompt: Prompt<T>, overrides?: PromptOverrides): Promise<T>
201
- LOGIC:
202
- 1. Merge config: Prompt overrides > PromptOverrides param > AgentConfig defaults
203
- 2. Build Anthropic messages.create() params
204
- 3. Execute API call
205
- 4. Extract text content from response
206
- 5. Parse JSON from text
207
- 6. Validate with prompt.responseFormat.parse()
208
- 7. Return typed result
209
- ERROR_HANDLING: Throw on validation failure, API errors
210
- VALIDATION: Integration test with mock API or real API call
211
- ```
212
-
213
- **P1.M2.T1.S3: Implement Agent.reflect() method**
214
- ```
215
- LOCATION: /src/core/agent.ts
216
- DEPENDENCIES: Agent.prompt()
217
- METHOD: reflect<T>(prompt: Prompt<T>, overrides?: PromptOverrides): Promise<T>
218
- LOGIC: Same as prompt() but with reflection system prefix when enableReflection is true
219
- VALIDATION: Unit test verifies reflection prefix added
220
- ```
221
-
222
- **P1.M2.T3.S1: Implement tools array pass-through**
223
- ```
224
- LOCATION: /src/core/agent.ts (within prompt() method)
225
- LOGIC:
226
- 1. Merge tools: prompt.toolsOverride ?? overrides?.tools ?? this.config.tools
227
- 2. Pass to messages.create({ tools: mergedTools })
228
- 3. Handle tool_use stop_reason with tool execution loop
229
- VALIDATION: Test with mock tool definition, verify passed to API
230
- ```
231
-
232
- **P1.M2.T3.S2: Implement MCP server handler**
233
- ```
234
- LOCATION: /src/core/mcp-handler.ts (NEW FILE)
235
- CLASS: MCPHandler
236
- METHODS:
237
- - registerServer(server: MCPServer): void
238
- - getTools(): Tool[] (converts MCP tools to Anthropic format)
239
- LOGIC: For inprocess transport: direct tool registration. For stdio: document as future.
240
- VALIDATION: Unit test with inprocess MCP server
241
- ```
242
-
243
- **P1.M2.T3.S3: Implement hooks pass-through**
244
- ```
245
- LOCATION: /src/core/agent.ts (within prompt() method)
246
- LOGIC:
247
- 1. Merge hooks from config/overrides
248
- 2. Call PreToolUse hooks before tool execution
249
- 3. Call PostToolUse hooks after tool execution
250
- VALIDATION: Unit test verifies hooks called at correct times
251
- ```
252
-
253
- **P1.M2.T3.S4: Implement skills and env pass-through**
254
- ```
255
- LOCATION: /src/core/agent.ts
256
- LOGIC:
257
- - Skills: Load SKILL.md from skill.path, inject into system prompt
258
- - Env: Temporarily set process.env during prompt execution
259
- VALIDATION: Test skill content appears in system prompt
260
- ```
261
-
262
- **P1.M2.T4: Update core/index.ts and main exports**
263
- ```
264
- LOCATION: /src/core/index.ts, /src/index.ts
265
- ACTION: Export Agent, Prompt classes
266
- VALIDATION: Import from 'groundswell' works
267
- ```
268
-
269
- ---
270
-
271
- ### Phase 2: Hierarchy & Event System Integration
272
-
273
- #### P2.M1: Event Tree Extension
274
-
275
- **P2.M1.T1.S1: Add agent event types to WorkflowEvent union**
276
- ```
277
- LOCATION: /src/types/events.ts
278
- ACTION: Extend WorkflowEvent union with new types
279
- NEW_TYPES:
280
- - { type: 'agentPromptStart'; agentId: string; promptId: string; node: WorkflowNode }
281
- - { type: 'agentPromptEnd'; agentId: string; promptId: string; node: WorkflowNode; duration: number; tokenUsage?: { input: number; output: number } }
282
- - { type: 'toolInvocation'; toolName: string; input: unknown; output: unknown; duration: number; node: WorkflowNode }
283
- - { type: 'mcpEvent'; serverName: string; event: string; node: WorkflowNode }
284
- - { type: 'reflectionStart'; level: string; node: WorkflowNode }
285
- - { type: 'reflectionEnd'; level: string; success: boolean; node: WorkflowNode }
286
- VALIDATION: tsc --noEmit passes
287
- ```
288
-
289
- **P2.M1.T2.S1: Create AgentExecutionContext for hierarchy tracking**
290
- ```
291
- LOCATION: /src/core/context.ts (NEW FILE)
292
- IMPORTS: AsyncLocalStorage from 'node:async_hooks'
293
- EXPORTS: AgentExecutionContext, agentExecutionContext (singleton)
294
- INTERFACE:
295
- - workflowNode: WorkflowNode | null
296
- - emitEvent: (event: WorkflowEvent) => void
297
- PATTERN: Use AsyncLocalStorage<AgentExecutionContext>
298
- METHODS:
299
- - getContext(): AgentExecutionContext | undefined
300
- - runInContext<T>(ctx: AgentExecutionContext, fn: () => Promise<T>): Promise<T>
301
- VALIDATION: Unit test context propagation through async calls
302
- ```
303
-
304
- **P2.M1.T1.S2: Emit agentPromptStart/End events from Agent.prompt()**
305
- ```
306
- LOCATION: /src/core/agent.ts
307
- DEPENDENCIES: AgentExecutionContext
308
- LOGIC:
309
- 1. Check agentExecutionContext.getContext()
310
- 2. If context exists, emit agentPromptStart before API call
311
- 3. Track duration
312
- 4. Emit agentPromptEnd after response with tokenUsage
313
- 5. If no context, events are standalone (not in tree)
314
- VALIDATION: Integration test shows events in tree when called from step
315
- ```
316
-
317
- **P2.M1.T1.S3: Emit toolInvocation and mcpEvent events**
318
- ```
319
- LOCATION: /src/core/agent.ts, /src/core/mcp-handler.ts
320
- DEPENDENCIES: AgentExecutionContext
321
- LOGIC:
322
- - In tool execution loop: emit toolInvocation for each tool call
323
- - In MCP handler: emit mcpEvent for MCP interactions
324
- VALIDATION: Test tool events appear nested under agentPrompt node
325
- ```
326
-
327
- **P2.M1.T2.S2: Integrate context into @Step decorator**
328
- ```
329
- LOCATION: /src/decorators/step.ts
330
- DEPENDENCIES: AgentExecutionContext
331
- LOGIC:
332
- 1. Before executing step function, get/create WorkflowNode
333
- 2. Create AgentExecutionContext with node and emitEvent
334
- 3. Use runInContext() to wrap step execution
335
- 4. Any agent.prompt() inside step automatically inherits context
336
- VALIDATION: Agent calls inside @Step decorated methods emit events in tree
337
- ```
338
-
339
- #### P2.M2: WorkflowContext Implementation
340
-
341
- **P2.M2.T1.S1: Define WorkflowContext interface**
342
- ```
343
- LOCATION: /src/types/workflow-context.ts (NEW FILE)
344
- EXPORTS: WorkflowContext interface
345
- CONTENT:
346
- - workflowId: string
347
- - parentWorkflowId?: string
348
- - step(name: string, fn: () => Promise<any>): Promise<any>
349
- - spawnWorkflow(wf: Workflow): Promise<any>
350
- - eventTree: EventTreeHandle
351
- - reflection: ReflectionAPI (placeholder for Phase 3)
352
- VALIDATION: tsc --noEmit passes
353
- ```
354
-
355
- **P2.M2.T1.S2: Implement WorkflowContext class**
356
- ```
357
- LOCATION: /src/core/workflow-context.ts (NEW FILE)
358
- CLASS: WorkflowContextImpl implements WorkflowContext
359
- CONSTRUCTOR: (workflow: Workflow)
360
- METHODS:
361
- - step(name, fn): Creates step node, sets AgentExecutionContext, executes fn, captures result/error, emits stepStart/stepEnd
362
- - spawnWorkflow(wf): Attaches child workflow, runs it, returns result
363
- - eventTree getter: Returns EventTreeHandle for current workflow
364
- PATTERN: Use AgentExecutionContext.runInContext() in step()
365
- VALIDATION: Test step() creates events, test spawnWorkflow() attaches children
366
- ```
367
-
368
- **P2.M2.T1.S3: Update Workflow class for executor pattern**
369
- ```
370
- LOCATION: /src/core/workflow.ts
371
- ACTION: Add optional executor function to constructor
372
- SIGNATURE: constructor(config?: WorkflowConfig | string, executor?: (ctx: WorkflowContext) => Promise<any>)
373
- LOGIC:
374
- - If executor provided: In run(), create WorkflowContext, call executor(ctx)
375
- - Keep abstract run() support for class-based workflows (backward compat)
376
- NEW_INTERFACE:
377
- WorkflowConfig { name?: string; enableReflection?: boolean }
378
- VALIDATION: Both patterns work - class-based and functional
379
- ```
380
-
381
- **P2.M2.T2.S1: Implement EventTreeHandle**
382
- ```
383
- LOCATION: /src/core/event-tree.ts (NEW FILE)
384
- CLASS: EventTreeHandle
385
- CONSTRUCTOR: (root: WorkflowNode)
386
- METHODS:
387
- - get root(): EventNode
388
- - getNode(id: string): EventNode | undefined
389
- - getChildren(id: string): EventNode[]
390
- - getAncestors(id: string): EventNode[]
391
- - toJSON(): EventNode
392
- PATTERN: Use existing WorkflowNode traversal from WorkflowTreeDebugger
393
- VALIDATION: Unit test all traversal methods
394
- ```
395
-
396
- **P2.M2.T3: Update exports**
397
- ```
398
- LOCATION: /src/types/index.ts, /src/core/index.ts, /src/index.ts
399
- ACTION: Export all new types and classes
400
- EXPORTS:
401
- - WorkflowContext, WorkflowContextImpl
402
- - EventTreeHandle
403
- - AgentExecutionContext helpers
404
- VALIDATION: All exports accessible from main package
405
- ```
406
-
407
- ---
408
-
409
- ## Validation Gates
410
-
411
- ### After Phase 1:
412
- ```bash
413
- # Type check
414
- npm run lint
415
-
416
- # Build
417
- npm run build
418
-
419
- # Unit tests for Agent and Prompt
420
- npm test -- --grep "Agent|Prompt"
421
-
422
- # Manual validation
423
- node -e "const { Agent, Prompt } = require('./dist'); console.log('Imports work');"
424
- ```
425
-
426
- ### After Phase 2:
427
- ```bash
428
- # Full test suite
429
- npm test
430
-
431
- # Integration test - events in tree
432
- npm test -- --grep "tree-mirroring"
433
-
434
- # Manual validation - create workflow with agent
435
- cat << 'EOF' > /tmp/test-agent.ts
436
- import { Workflow, Agent, Prompt, WorkflowTreeDebugger } from './dist';
437
- import { z } from 'zod';
438
-
439
- const agent = new Agent({ name: 'TestAgent' });
440
- const prompt = new Prompt({
441
- user: 'Say hello',
442
- responseFormat: z.object({ message: z.string() })
443
- });
444
-
445
- class TestWorkflow extends Workflow {
446
- async run() {
447
- this.setStatus('running');
448
- // This should emit events
449
- const result = await agent.prompt(prompt);
450
- console.log(result);
451
- this.setStatus('completed');
452
- }
453
- }
454
-
455
- const wf = new TestWorkflow('Test');
456
- const debugger_ = new WorkflowTreeDebugger(wf);
457
- debugger_.events.subscribe({ next: e => console.log('Event:', e.type) });
458
- wf.run();
459
- EOF
460
- npx tsx /tmp/test-agent.ts
461
- ```
462
-
463
- ---
464
-
465
- ## Final Validation Checklist
466
-
467
- - [ ] package.json has @anthropic-ai/sdk@^0.71.1 and zod@^3.23.0
468
- - [ ] All new files created in correct locations
469
- - [ ] Types exported from /src/types/index.ts
470
- - [ ] Classes exported from /src/index.ts
471
- - [ ] Agent.prompt() executes API calls and validates responses
472
- - [ ] Prompt<T> provides type-safe response validation
473
- - [ ] AgentExecutionContext propagates through AsyncLocalStorage
474
- - [ ] Events emitted when agent.prompt() called within workflow step
475
- - [ ] WorkflowTreeDebugger shows agent events in tree visualization
476
- - [ ] @Step decorator integrates context automatically
477
- - [ ] WorkflowContext.step() works for functional workflow pattern
478
- - [ ] All existing tests still pass
479
- - [ ] npm run build produces valid dist/
480
-
481
- ---
482
-
483
- ## File Creation Summary
484
-
485
- ### New Files:
486
- ```
487
- /src/types/agent.ts - AgentConfig, PromptOverrides types
488
- /src/types/prompt.ts - PromptConfig<T> type
489
- /src/types/sdk-primitives.ts - Tool, MCPServer, Skill, AgentHooks types
490
- /src/types/workflow-context.ts - WorkflowContext interface
491
- /src/core/agent.ts - Agent class
492
- /src/core/prompt.ts - Prompt<T> class
493
- /src/core/context.ts - AgentExecutionContext with AsyncLocalStorage
494
- /src/core/mcp-handler.ts - MCPHandler class
495
- /src/core/workflow-context.ts - WorkflowContextImpl class
496
- /src/core/event-tree.ts - EventTreeHandle class
497
- /src/__tests__/unit/agent.test.ts
498
- /src/__tests__/unit/prompt.test.ts
499
- /src/__tests__/unit/context.test.ts
500
- /src/__tests__/integration/agent-workflow.test.ts
501
- ```
502
-
503
- ### Modified Files:
504
- ```
505
- /package.json - Add dependencies
506
- /src/types/index.ts - Export new types
507
- /src/types/events.ts - Extend WorkflowEvent union
508
- /src/core/workflow.ts - Add executor pattern support
509
- /src/core/index.ts - Export new classes
510
- /src/decorators/step.ts - Integrate AgentExecutionContext
511
- /src/index.ts - Export all new public API
512
- ```
513
-
514
- ---
515
-
516
- ## Confidence Score: 8/10
517
-
518
- **Strengths:**
519
- - Clear existing codebase patterns to follow
520
- - Well-documented external dependencies
521
- - Specific file locations and method signatures
522
- - Comprehensive validation steps
523
-
524
- **Risks:**
525
- - AsyncLocalStorage integration with existing decorator may need iteration
526
- - Tool execution loop complexity depends on actual Anthropic SDK behavior
527
- - MCP handler may need refinement based on actual MCP protocol details