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/docs/workflow.md DELETED
@@ -1,600 +0,0 @@
1
- # Workflows
2
-
3
- Workflows are hierarchical task containers with built-in logging, state observation, and event emission.
4
-
5
- ## Table of Contents
6
-
7
- - [Basic Usage](#basic-usage)
8
- - [Functional Pattern](#functional-pattern)
9
- - [Decorators](#decorators)
10
- - [Parent-Child Workflows](#parent-child-workflows)
11
- - [Observers](#observers)
12
- - [Tree Debugger](#tree-debugger)
13
- - [Error Handling](#error-handling)
14
- - [Concurrent Execution](#concurrent-execution)
15
- - [API Reference](#api-reference)
16
-
17
- ## Basic Usage
18
-
19
- Extend `Workflow` and implement `run()`:
20
-
21
- ```typescript
22
- import { Workflow } from 'groundswell';
23
-
24
- class DataProcessor extends Workflow {
25
- async run(): Promise<string[]> {
26
- this.setStatus('running');
27
- this.logger.info('Processing started');
28
-
29
- const result = await this.processData();
30
-
31
- this.setStatus('completed');
32
- return result;
33
- }
34
-
35
- private async processData(): Promise<string[]> {
36
- return ['item1', 'item2'];
37
- }
38
- }
39
-
40
- const workflow = new DataProcessor('MyProcessor');
41
- const result = await workflow.run();
42
- ```
43
-
44
- ### Workflow Status
45
-
46
- ```
47
- idle -> running -> completed
48
- -> failed
49
- -> cancelled
50
- ```
51
-
52
- | Status | Description |
53
- |--------|-------------|
54
- | `idle` | Created but not started |
55
- | `running` | Currently executing |
56
- | `completed` | Finished successfully |
57
- | `failed` | Terminated with error |
58
- | `cancelled` | Manually cancelled |
59
-
60
- ### Logger
61
-
62
- Every workflow has a built-in logger:
63
-
64
- ```typescript
65
- this.logger.debug('Debug message', { data });
66
- this.logger.info('Info message');
67
- this.logger.warn('Warning message');
68
- this.logger.error('Error message', { error });
69
- ```
70
-
71
- ## Functional Pattern
72
-
73
- Create workflows without subclassing:
74
-
75
- ```typescript
76
- import { createWorkflow } from 'groundswell';
77
-
78
- const workflow = createWorkflow(
79
- { name: 'DataPipeline', enableReflection: true },
80
- async (ctx) => {
81
- const loaded = await ctx.step('load', async () => {
82
- return fetchData();
83
- });
84
-
85
- const processed = await ctx.step('process', async () => {
86
- return transform(loaded);
87
- });
88
-
89
- await ctx.step('save', async () => {
90
- return persist(processed);
91
- });
92
-
93
- return processed;
94
- }
95
- );
96
-
97
- const result = await workflow.run();
98
- console.log(result.data); // The actual result
99
- console.log(result.duration); // Execution time in ms
100
- ```
101
-
102
- ### WorkflowContext
103
-
104
- The context provides methods for composing workflows:
105
-
106
- | Method | Description |
107
- |--------|-------------|
108
- | `step(name, fn)` | Execute a named step with event tracking |
109
- | `spawnWorkflow(workflow)` | Spawn and attach a child workflow |
110
- | `replaceLastPromptResult(prompt, agent)` | Replace last prompt result without tree branching |
111
-
112
- ## Decorators
113
-
114
- ### @Step
115
-
116
- Wraps methods with event emission and error handling.
117
-
118
- ```typescript
119
- import { Step } from 'groundswell';
120
-
121
- class MyWorkflow extends Workflow {
122
- // Default - emits stepStart/stepEnd events
123
- @Step()
124
- async basicStep(): Promise<void> {}
125
-
126
- // Custom name
127
- @Step({ name: 'CustomStepName' })
128
- async namedStep(): Promise<void> {}
129
-
130
- // Capture state after completion
131
- @Step({ snapshotState: true })
132
- async snapshotStep(): Promise<void> {}
133
-
134
- // Track execution duration
135
- @Step({ trackTiming: true })
136
- async timedStep(): Promise<void> {}
137
-
138
- // Log start/end messages
139
- @Step({ logStart: true, logFinish: true })
140
- async loggedStep(): Promise<void> {}
141
-
142
- // All options
143
- @Step({
144
- name: 'FullStep',
145
- snapshotState: true,
146
- trackTiming: true,
147
- logStart: true,
148
- logFinish: true,
149
- })
150
- async fullStep(): Promise<void> {}
151
- }
152
- ```
153
-
154
- **Options:**
155
-
156
- | Option | Type | Description |
157
- |--------|------|-------------|
158
- | `name` | `string` | Custom step name (defaults to method name) |
159
- | `snapshotState` | `boolean` | Capture state snapshot after step completion |
160
- | `trackTiming` | `boolean` | Track and emit step duration |
161
- | `logStart` | `boolean` | Log message when step starts |
162
- | `logFinish` | `boolean` | Log message when step completes |
163
-
164
- ### @Task
165
-
166
- Wraps methods that return child workflows.
167
-
168
- ```typescript
169
- import { Task } from 'groundswell';
170
-
171
- class ParentWorkflow extends Workflow {
172
- // Basic - attaches returned workflow as child
173
- @Task()
174
- async createChild(): Promise<ChildWorkflow> {
175
- return new ChildWorkflow('Child', this);
176
- }
177
-
178
- // Custom name
179
- @Task({ name: 'SpawnWorker' })
180
- async spawnWorker(): Promise<WorkerWorkflow> {
181
- return new WorkerWorkflow('Worker', this);
182
- }
183
-
184
- // Concurrent - runs all returned workflows in parallel
185
- @Task({ concurrent: true })
186
- async createWorkers(): Promise<WorkerWorkflow[]> {
187
- return [
188
- new WorkerWorkflow('W1', this),
189
- new WorkerWorkflow('W2', this),
190
- new WorkerWorkflow('W3', this),
191
- ];
192
- }
193
-
194
- async run(): Promise<void> {
195
- const child = await this.createChild();
196
- await child.run();
197
- }
198
- }
199
- ```
200
-
201
- **Options:**
202
-
203
- | Option | Type | Description |
204
- |--------|------|-------------|
205
- | `name` | `string` | Custom task name |
206
- | `concurrent` | `boolean` | Run returned workflows in parallel |
207
-
208
- ### @ObservedState
209
-
210
- Marks fields for inclusion in state snapshots.
211
-
212
- ```typescript
213
- import { ObservedState, getObservedState } from 'groundswell';
214
-
215
- class MyWorkflow extends Workflow {
216
- // Included in snapshots
217
- @ObservedState()
218
- progress = 0;
219
-
220
- // Shown as '***' in snapshots
221
- @ObservedState({ redact: true })
222
- apiKey = 'secret';
223
-
224
- // Excluded from snapshots
225
- @ObservedState({ hidden: true })
226
- internalState = {};
227
-
228
- async run(): Promise<void> {
229
- this.progress = 50;
230
-
231
- // Get current state snapshot
232
- const state = getObservedState(this);
233
- // { progress: 50, apiKey: '***' }
234
- }
235
- }
236
- ```
237
-
238
- **Options:**
239
-
240
- | Option | Type | Description |
241
- |--------|------|-------------|
242
- | `hidden` | `boolean` | Exclude field from snapshots entirely |
243
- | `redact` | `boolean` | Show value as `'***'` in snapshots |
244
-
245
- ## Parent-Child Workflows
246
-
247
- Workflows form a hierarchy. Pass the parent to the constructor:
248
-
249
- ```typescript
250
- class ChildWorkflow extends Workflow {
251
- async run(): Promise<void> {
252
- this.setStatus('running');
253
- this.logger.info('Child executing');
254
- this.setStatus('completed');
255
- }
256
- }
257
-
258
- class ParentWorkflow extends Workflow {
259
- @Task()
260
- async spawnChild(): Promise<ChildWorkflow> {
261
- return new ChildWorkflow('Child', this); // 'this' is parent
262
- }
263
-
264
- async run(): Promise<void> {
265
- this.setStatus('running');
266
-
267
- const child = await this.spawnChild();
268
- await child.run();
269
-
270
- // Access children
271
- console.log(this.children.length); // 1
272
-
273
- this.setStatus('completed');
274
- }
275
- }
276
- ```
277
-
278
- Events from children propagate to observers on the root workflow.
279
-
280
- ## Observers
281
-
282
- Attach observers to the root workflow to receive all events:
283
-
284
- ```typescript
285
- import { WorkflowObserver, LogEntry, WorkflowEvent, WorkflowNode } from 'groundswell';
286
-
287
- const observer: WorkflowObserver = {
288
- onLog(entry: LogEntry): void {
289
- console.log(`[${entry.level}] ${entry.message}`);
290
- },
291
-
292
- onEvent(event: WorkflowEvent): void {
293
- console.log(`Event: ${event.type}`);
294
- },
295
-
296
- onStateUpdated(node: WorkflowNode): void {
297
- console.log(`State updated: ${node.name}`);
298
- },
299
-
300
- onTreeChanged(root: WorkflowNode): void {
301
- console.log('Tree structure changed');
302
- },
303
- };
304
-
305
- const workflow = new MyWorkflow('Root');
306
- workflow.addObserver(observer);
307
- await workflow.run();
308
- ```
309
-
310
- ### Event Types
311
-
312
- | Type | Description |
313
- |------|-------------|
314
- | `stepStart` | Step execution started |
315
- | `stepEnd` | Step completed, includes `duration` |
316
- | `taskStart` | Task execution started |
317
- | `taskEnd` | Task completed |
318
- | `childAttached` | Child workflow attached |
319
- | `stateSnapshot` | State snapshot captured |
320
- | `error` | Error occurred |
321
- | `treeUpdated` | Tree structure changed |
322
-
323
- ## Tree Debugger
324
-
325
- Visualize workflow execution:
326
-
327
- ```typescript
328
- import { WorkflowTreeDebugger } from 'groundswell';
329
-
330
- const workflow = new ParentWorkflow('Root');
331
- const debugger_ = new WorkflowTreeDebugger(workflow);
332
-
333
- await workflow.run();
334
-
335
- // ASCII tree
336
- console.log(debugger_.toTreeString());
337
- // Root [completed]
338
- // Child-1 [completed]
339
- // Child-2 [completed]
340
-
341
- // Formatted logs
342
- console.log(debugger_.toLogString());
343
-
344
- // Statistics
345
- console.log(debugger_.getStats());
346
- // { totalNodes: 3, byStatus: { completed: 3 }, totalLogs: 10, totalEvents: 15 }
347
-
348
- // Find node by ID
349
- const node = debugger_.getNode(workflow.id);
350
-
351
- // Subscribe to events
352
- debugger_.events.subscribe({
353
- next: (event) => console.log(event.type),
354
- });
355
- ```
356
-
357
- ### Status Symbols
358
-
359
- | Symbol | Status |
360
- |--------|--------|
361
- | o | idle |
362
- | - | running |
363
- | + | completed |
364
- | x | failed |
365
- | / | cancelled |
366
-
367
- ## Error Handling
368
-
369
- Errors in `@Step` methods are wrapped in `WorkflowError` with full context:
370
-
371
- ```typescript
372
- import { WorkflowError } from 'groundswell';
373
-
374
- class MyWorkflow extends Workflow {
375
- @ObservedState()
376
- currentItem = '';
377
-
378
- @Step({ snapshotState: true })
379
- async process(): Promise<void> {
380
- this.currentItem = 'item-1';
381
- throw new Error('Processing failed');
382
- }
383
-
384
- async run(): Promise<void> {
385
- try {
386
- await this.process();
387
- } catch (error) {
388
- const wfError = error as WorkflowError;
389
-
390
- console.log(wfError.message); // 'Processing failed'
391
- console.log(wfError.workflowId); // workflow ID
392
- console.log(wfError.state); // { currentItem: 'item-1' }
393
- console.log(wfError.logs); // logs up to error
394
- console.log(wfError.stack); // stack trace
395
- }
396
- }
397
- }
398
- ```
399
-
400
- ### Retry Pattern
401
-
402
- ```typescript
403
- class RetryWorkflow extends Workflow {
404
- @ObservedState()
405
- attempt = 0;
406
-
407
- @Step()
408
- async unreliableOperation(): Promise<void> {
409
- this.attempt++;
410
- if (this.attempt < 3) {
411
- throw new Error('Temporary failure');
412
- }
413
- }
414
-
415
- async run(): Promise<void> {
416
- const maxAttempts = 3;
417
-
418
- while (this.attempt < maxAttempts) {
419
- try {
420
- await this.unreliableOperation();
421
- break;
422
- } catch (error) {
423
- if (this.attempt >= maxAttempts) throw error;
424
- await this.delay(1000 * this.attempt); // backoff
425
- }
426
- }
427
- }
428
-
429
- private delay(ms: number): Promise<void> {
430
- return new Promise(r => setTimeout(r, ms));
431
- }
432
- }
433
- ```
434
-
435
- ### Error Isolation
436
-
437
- Parent workflows can catch and handle child errors:
438
-
439
- ```typescript
440
- class ResilientParent extends Workflow {
441
- async run(): Promise<void> {
442
- for (const config of this.childConfigs) {
443
- const child = new ChildWorkflow(config, this);
444
-
445
- try {
446
- await child.run();
447
- } catch (error) {
448
- this.logger.warn(`Child failed: ${error.message}`);
449
- // Continue with other children
450
- }
451
- }
452
- }
453
- }
454
- ```
455
-
456
- ## Concurrent Execution
457
-
458
- ### Sequential (default)
459
-
460
- ```typescript
461
- for (const item of items) {
462
- const worker = await this.createWorker(item);
463
- await worker.run(); // waits for each
464
- }
465
- ```
466
-
467
- ### Parallel with @Task
468
-
469
- ```typescript
470
- @Task({ concurrent: true })
471
- async createWorkers(): Promise<Worker[]> {
472
- return items.map(item => new Worker(item, this));
473
- }
474
-
475
- // All workers run in parallel when method completes
476
- ```
477
-
478
- ### Manual Parallel
479
-
480
- ```typescript
481
- const workers = await Promise.all(
482
- items.map(item => this.createWorker(item))
483
- );
484
-
485
- const results = await Promise.all(
486
- workers.map(w => w.run())
487
- );
488
- ```
489
-
490
- ### Fan-Out / Fan-In
491
-
492
- ```typescript
493
- class Pipeline extends Workflow {
494
- @Step()
495
- async fanOut(): Promise<string[]> {
496
- const workers = this.items.map(
497
- item => new Worker(item, this)
498
- );
499
-
500
- // Run all in parallel
501
- return Promise.all(workers.map(w => w.run()));
502
- }
503
-
504
- @Step()
505
- async fanIn(results: string[]): Promise<void> {
506
- this.aggregatedResult = results.join(',');
507
- }
508
-
509
- async run(): Promise<void> {
510
- const results = await this.fanOut();
511
- await this.fanIn(results);
512
- }
513
- }
514
- ```
515
-
516
- ## API Reference
517
-
518
- ### Workflow Class
519
-
520
- ```typescript
521
- class Workflow<T = unknown> {
522
- readonly id: string;
523
- parent: Workflow | null;
524
- children: Workflow[];
525
- status: WorkflowStatus;
526
-
527
- constructor(name?: string, parent?: Workflow);
528
- constructor(config: WorkflowConfig, executor: WorkflowExecutor<T>);
529
-
530
- run(...args: unknown[]): Promise<T | WorkflowResult<T>>;
531
-
532
- protected setStatus(status: WorkflowStatus): void;
533
- protected readonly logger: WorkflowLogger;
534
-
535
- addObserver(observer: WorkflowObserver): void;
536
- removeObserver(observer: WorkflowObserver): void;
537
- attachChild(child: Workflow): void;
538
- snapshotState(): void;
539
- getNode(): WorkflowNode;
540
- emitEvent(event: WorkflowEvent): void;
541
- }
542
- ```
543
-
544
- ### Types
545
-
546
- ```typescript
547
- type WorkflowStatus = 'idle' | 'running' | 'completed' | 'failed' | 'cancelled';
548
-
549
- type LogLevel = 'debug' | 'info' | 'warn' | 'error';
550
-
551
- interface WorkflowConfig {
552
- name?: string;
553
- enableReflection?: boolean;
554
- }
555
-
556
- interface WorkflowResult<T> {
557
- data: T;
558
- node: WorkflowNode;
559
- duration: number;
560
- }
561
-
562
- interface LogEntry {
563
- id: string;
564
- workflowId: string;
565
- timestamp: number;
566
- level: LogLevel;
567
- message: string;
568
- data?: unknown;
569
- parentLogId?: string;
570
- }
571
-
572
- interface WorkflowError {
573
- message: string;
574
- original: unknown;
575
- workflowId: string;
576
- stack?: string;
577
- state: Record<string, unknown>;
578
- logs: LogEntry[];
579
- }
580
-
581
- interface WorkflowNode {
582
- id: string;
583
- name: string;
584
- parent: WorkflowNode | null;
585
- children: WorkflowNode[];
586
- status: WorkflowStatus;
587
- logs: LogEntry[];
588
- events: WorkflowEvent[];
589
- stateSnapshot: Record<string, unknown> | null;
590
- }
591
-
592
- interface WorkflowObserver {
593
- onLog(entry: LogEntry): void;
594
- onEvent(event: WorkflowEvent): void;
595
- onStateUpdated(node: WorkflowNode): void;
596
- onTreeChanged(root: WorkflowNode): void;
597
- }
598
- ```
599
-
600
- See [examples/07-agent-loops.ts](../examples/examples/07-agent-loops.ts) for workflow usage with agents.