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
@@ -1,432 +0,0 @@
1
- /**
2
- * Example 7: Agent Loops with Observability
3
- *
4
- * Demonstrates:
5
- * - Using Agent.prompt() within ctx.step() loops
6
- * - Multiple agents for different item types
7
- * - Full event tree visualization with timing
8
- * - State snapshots at each iteration
9
- * - Cache hit/miss tracking
10
- */
11
-
12
- import { z } from 'zod';
13
- import {
14
- Workflow,
15
- Step,
16
- ObservedState,
17
- WorkflowTreeDebugger,
18
- createAgent,
19
- createPrompt,
20
- defaultCache,
21
- } from 'groundswell';
22
- import { printHeader, printSection, sleep, simulateApiCall } from '../utils/helpers.js';
23
-
24
- // ============================================================================
25
- // Response Schemas
26
- // ============================================================================
27
-
28
- const ClassificationSchema = z.object({
29
- item: z.string(),
30
- category: z.enum(['fruit', 'vegetable', 'grain', 'protein', 'dairy']),
31
- confidence: z.number().min(0).max(1),
32
- reasoning: z.string(),
33
- });
34
-
35
- const TextAnalysisSchema = z.object({
36
- input: z.string(),
37
- wordCount: z.number(),
38
- sentiment: z.enum(['positive', 'negative', 'neutral']),
39
- keyWords: z.array(z.string()),
40
- });
41
-
42
- const NumberAnalysisSchema = z.object({
43
- input: z.number(),
44
- isEven: z.boolean(),
45
- isPrime: z.boolean(),
46
- factors: z.array(z.number()),
47
- });
48
-
49
- type Classification = z.infer<typeof ClassificationSchema>;
50
- type TextAnalysis = z.infer<typeof TextAnalysisSchema>;
51
- type NumberAnalysis = z.infer<typeof NumberAnalysisSchema>;
52
-
53
- // ============================================================================
54
- // Simulated Agent Responses (no actual API calls)
55
- // ============================================================================
56
-
57
- /**
58
- * Simulate classification response
59
- */
60
- async function simulateClassification(item: string): Promise<Classification> {
61
- const categories: Record<string, 'fruit' | 'vegetable' | 'grain' | 'protein' | 'dairy'> = {
62
- apple: 'fruit',
63
- banana: 'fruit',
64
- cherry: 'fruit',
65
- carrot: 'vegetable',
66
- broccoli: 'vegetable',
67
- rice: 'grain',
68
- chicken: 'protein',
69
- milk: 'dairy',
70
- };
71
-
72
- await sleep(50 + Math.random() * 100);
73
-
74
- return {
75
- item,
76
- category: categories[item.toLowerCase()] ?? 'fruit',
77
- confidence: 0.85 + Math.random() * 0.15,
78
- reasoning: `${item} is classified based on its nutritional properties`,
79
- };
80
- }
81
-
82
- /**
83
- * Simulate text analysis response
84
- */
85
- async function simulateTextAnalysis(input: string): Promise<TextAnalysis> {
86
- await sleep(30 + Math.random() * 70);
87
-
88
- const words = input.split(/\s+/).filter((w) => w.length > 0);
89
- const sentiments: Array<'positive' | 'negative' | 'neutral'> = [
90
- 'positive',
91
- 'neutral',
92
- 'negative',
93
- ];
94
-
95
- return {
96
- input,
97
- wordCount: words.length,
98
- sentiment: sentiments[Math.floor(Math.random() * 3)],
99
- keyWords: words.filter((w) => w.length > 4).slice(0, 3),
100
- };
101
- }
102
-
103
- /**
104
- * Simulate number analysis response
105
- */
106
- async function simulateNumberAnalysis(input: number): Promise<NumberAnalysis> {
107
- await sleep(20 + Math.random() * 50);
108
-
109
- const isPrime = (n: number): boolean => {
110
- if (n < 2) return false;
111
- for (let i = 2; i <= Math.sqrt(n); i++) {
112
- if (n % i === 0) return false;
113
- }
114
- return true;
115
- };
116
-
117
- const getFactors = (n: number): number[] => {
118
- const factors: number[] = [];
119
- for (let i = 1; i <= n; i++) {
120
- if (n % i === 0) factors.push(i);
121
- }
122
- return factors;
123
- };
124
-
125
- return {
126
- input,
127
- isEven: input % 2 === 0,
128
- isPrime: isPrime(input),
129
- factors: getFactors(input),
130
- };
131
- }
132
-
133
- // ============================================================================
134
- // Workflow Definitions
135
- // ============================================================================
136
-
137
- /**
138
- * Basic agent loop workflow - processes items sequentially
139
- */
140
- class BasicAgentLoopWorkflow extends Workflow {
141
- @ObservedState()
142
- items: string[] = [];
143
-
144
- @ObservedState()
145
- results: Classification[] = [];
146
-
147
- @ObservedState()
148
- currentIndex: number = 0;
149
-
150
- constructor(name: string, items: string[]) {
151
- super(name);
152
- this.items = items;
153
- }
154
-
155
- @Step({ trackTiming: true, snapshotState: true })
156
- async processItem(item: string): Promise<Classification> {
157
- this.logger.info(`Processing: ${item}`);
158
- const result = await simulateClassification(item);
159
- this.results.push(result);
160
- this.currentIndex++;
161
- return result;
162
- }
163
-
164
- async run(): Promise<Classification[]> {
165
- this.setStatus('running');
166
- this.logger.info(`Starting loop with ${this.items.length} items`);
167
-
168
- const startTime = Date.now();
169
-
170
- for (const item of this.items) {
171
- await this.processItem(item);
172
- }
173
-
174
- const duration = Date.now() - startTime;
175
- this.logger.info(`Loop completed in ${duration}ms`);
176
-
177
- this.setStatus('completed');
178
- return this.results;
179
- }
180
- }
181
-
182
- /**
183
- * Multi-agent loop workflow - uses different agents for different data types
184
- */
185
- class MultiAgentLoopWorkflow extends Workflow {
186
- @ObservedState()
187
- mixedData: Array<string | number> = [];
188
-
189
- @ObservedState()
190
- textResults: TextAnalysis[] = [];
191
-
192
- @ObservedState()
193
- numberResults: NumberAnalysis[] = [];
194
-
195
- @ObservedState()
196
- processedCount: number = 0;
197
-
198
- constructor(name: string, data: Array<string | number>) {
199
- super(name);
200
- this.mixedData = data;
201
- }
202
-
203
- @Step({ trackTiming: true, snapshotState: true, name: 'analyze-text' })
204
- async analyzeText(input: string): Promise<TextAnalysis> {
205
- this.logger.info(`TextAgent analyzing: "${input}"`);
206
- const result = await simulateTextAnalysis(input);
207
- this.textResults.push(result);
208
- this.processedCount++;
209
- return result;
210
- }
211
-
212
- @Step({ trackTiming: true, snapshotState: true, name: 'analyze-number' })
213
- async analyzeNumber(input: number): Promise<NumberAnalysis> {
214
- this.logger.info(`NumberAgent analyzing: ${input}`);
215
- const result = await simulateNumberAnalysis(input);
216
- this.numberResults.push(result);
217
- this.processedCount++;
218
- return result;
219
- }
220
-
221
- async run(): Promise<void> {
222
- this.setStatus('running');
223
- this.logger.info(`Starting multi-agent loop with ${this.mixedData.length} items`);
224
-
225
- const startTime = Date.now();
226
-
227
- for (const input of this.mixedData) {
228
- if (typeof input === 'string') {
229
- await this.analyzeText(input);
230
- } else {
231
- await this.analyzeNumber(input);
232
- }
233
- }
234
-
235
- const duration = Date.now() - startTime;
236
- this.logger.info(`Multi-agent loop completed in ${duration}ms`);
237
- this.logger.info(`Text results: ${this.textResults.length}, Number results: ${this.numberResults.length}`);
238
-
239
- this.setStatus('completed');
240
- }
241
- }
242
-
243
- /**
244
- * Cached agent loop workflow - demonstrates cache hits across iterations
245
- */
246
- class CachedAgentLoopWorkflow extends Workflow {
247
- @ObservedState()
248
- items: string[] = [];
249
-
250
- @ObservedState()
251
- cacheHits: number = 0;
252
-
253
- @ObservedState()
254
- cacheMisses: number = 0;
255
-
256
- private cache: Map<string, Classification> = new Map();
257
-
258
- constructor(name: string, items: string[]) {
259
- super(name);
260
- this.items = items;
261
- }
262
-
263
- @Step({ trackTiming: true, snapshotState: true })
264
- async processWithCache(item: string): Promise<Classification> {
265
- // Check local cache first
266
- const cached = this.cache.get(item);
267
- if (cached) {
268
- this.cacheHits++;
269
- this.logger.info(`Cache HIT for: ${item}`);
270
- return cached;
271
- }
272
-
273
- this.cacheMisses++;
274
- this.logger.info(`Cache MISS for: ${item}`);
275
-
276
- const result = await simulateClassification(item);
277
- this.cache.set(item, result);
278
- return result;
279
- }
280
-
281
- async run(): Promise<void> {
282
- this.setStatus('running');
283
- this.logger.info(`Starting cached loop with ${this.items.length} items`);
284
-
285
- const startTime = Date.now();
286
-
287
- for (const item of this.items) {
288
- await this.processWithCache(item);
289
- }
290
-
291
- const duration = Date.now() - startTime;
292
- this.logger.info(`Cached loop completed in ${duration}ms`);
293
- this.logger.info(`Cache hits: ${this.cacheHits}, misses: ${this.cacheMisses}`);
294
-
295
- this.setStatus('completed');
296
- }
297
- }
298
-
299
- // ============================================================================
300
- // Main Example Runner
301
- // ============================================================================
302
-
303
- /**
304
- * Run the Agent Loops example
305
- */
306
- export async function runAgentLoopsExample(): Promise<void> {
307
- printHeader('Example 7: Agent Loops with Observability');
308
-
309
- // Part 1: Basic Agent Loop
310
- printSection('Part 1: Basic Agent Loop');
311
- {
312
- const items = ['apple', 'banana', 'cherry', 'carrot', 'broccoli'];
313
- const workflow = new BasicAgentLoopWorkflow('ClassificationLoop', items);
314
- const debugger_ = new WorkflowTreeDebugger(workflow);
315
-
316
- console.log(`Processing ${items.length} items: ${items.join(', ')}\n`);
317
-
318
- const startTime = Date.now();
319
- const results = await workflow.run();
320
- const elapsed = Date.now() - startTime;
321
-
322
- console.log(`\nResults (${elapsed}ms total):`);
323
- for (const result of results) {
324
- console.log(` ${result.item}: ${result.category} (${(result.confidence * 100).toFixed(1)}%)`);
325
- }
326
-
327
- console.log('\nTree visualization:');
328
- console.log(debugger_.toTreeString());
329
-
330
- const stats = debugger_.getStats();
331
- console.log('Statistics:', {
332
- totalNodes: stats.totalNodes,
333
- completedSteps: stats.completed,
334
- });
335
- }
336
-
337
- // Part 2: Multi-Agent Loop
338
- printSection('Part 2: Multi-Agent Loop (Different Agents per Type)');
339
- {
340
- const mixedData: Array<string | number> = [
341
- 'Hello world',
342
- 42,
343
- 'TypeScript is great',
344
- 17,
345
- 'Agent loops',
346
- 100,
347
- ];
348
-
349
- const workflow = new MultiAgentLoopWorkflow('MultiAgentLoop', mixedData);
350
- const debugger_ = new WorkflowTreeDebugger(workflow);
351
-
352
- console.log(`Processing mixed data: ${mixedData.length} items\n`);
353
-
354
- const startTime = Date.now();
355
- await workflow.run();
356
- const elapsed = Date.now() - startTime;
357
-
358
- console.log(`\nText Analysis Results:`);
359
- for (const result of workflow.textResults) {
360
- console.log(` "${result.input}": ${result.wordCount} words, ${result.sentiment} sentiment`);
361
- }
362
-
363
- console.log(`\nNumber Analysis Results:`);
364
- for (const result of workflow.numberResults) {
365
- console.log(` ${result.input}: even=${result.isEven}, prime=${result.isPrime}, factors=[${result.factors.join(',')}]`);
366
- }
367
-
368
- console.log(`\nTotal time: ${elapsed}ms`);
369
- console.log('\nTree visualization:');
370
- console.log(debugger_.toTreeString());
371
- }
372
-
373
- // Part 3: Cached Agent Loop
374
- printSection('Part 3: Cached Agent Loop (Duplicate Detection)');
375
- {
376
- // Include duplicates to demonstrate cache hits
377
- const items = ['apple', 'banana', 'apple', 'cherry', 'banana', 'apple'];
378
-
379
- const workflow = new CachedAgentLoopWorkflow('CachedLoop', items);
380
- const debugger_ = new WorkflowTreeDebugger(workflow);
381
-
382
- console.log(`Processing ${items.length} items with duplicates: ${items.join(', ')}\n`);
383
-
384
- const startTime = Date.now();
385
- await workflow.run();
386
- const elapsed = Date.now() - startTime;
387
-
388
- console.log(`\nCache Performance:`);
389
- console.log(` Total items: ${items.length}`);
390
- console.log(` Cache hits: ${workflow.cacheHits}`);
391
- console.log(` Cache misses: ${workflow.cacheMisses}`);
392
- console.log(` Hit rate: ${((workflow.cacheHits / items.length) * 100).toFixed(1)}%`);
393
- console.log(`\nTotal time: ${elapsed}ms`);
394
-
395
- console.log('\nTree visualization:');
396
- console.log(debugger_.toTreeString());
397
-
398
- const stats = debugger_.getStats();
399
- console.log('Statistics:', stats);
400
- }
401
-
402
- // Part 4: Performance Comparison
403
- printSection('Part 4: Sequential vs Timing Analysis');
404
- {
405
- const items = ['item1', 'item2', 'item3', 'item4', 'item5'];
406
-
407
- console.log('Sequential processing of 5 items:');
408
- const seqWorkflow = new BasicAgentLoopWorkflow('SequentialLoop', items);
409
-
410
- const seqStart = Date.now();
411
- await seqWorkflow.run();
412
- const seqTime = Date.now() - seqStart;
413
-
414
- console.log(` Sequential time: ${seqTime}ms`);
415
- console.log(` Average per item: ${(seqTime / items.length).toFixed(1)}ms`);
416
-
417
- // Show the timing from tree stats
418
- const debugger_ = new WorkflowTreeDebugger(seqWorkflow);
419
- const logs = debugger_.getTree().logs;
420
- console.log(`\nLog entries: ${logs.length}`);
421
- for (const log of logs.slice(-5)) {
422
- console.log(` [${log.level}] ${log.message}`);
423
- }
424
- }
425
-
426
- console.log('\n=== Example 7 Complete ===');
427
- }
428
-
429
- // Allow direct execution
430
- if (import.meta.url === `file://${process.argv[1]}`) {
431
- runAgentLoopsExample().catch(console.error);
432
- }