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,100 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { Workflow, Step, Task, ObservedState, getObservedState, WorkflowEvent, WorkflowObserver } from '../../index.js';
3
-
4
- describe('@Step decorator', () => {
5
- class StepTestWorkflow extends Workflow {
6
- stepCalled = false;
7
-
8
- @Step({ trackTiming: true })
9
- async myStep(): Promise<string> {
10
- this.stepCalled = true;
11
- return 'step result';
12
- }
13
-
14
- async run(): Promise<void> {
15
- await this.myStep();
16
- }
17
- }
18
-
19
- it('should execute the original method', async () => {
20
- const wf = new StepTestWorkflow();
21
- await wf.run();
22
- expect(wf.stepCalled).toBe(true);
23
- });
24
-
25
- it('should emit stepStart and stepEnd events', async () => {
26
- const wf = new StepTestWorkflow();
27
- const events: WorkflowEvent[] = [];
28
-
29
- wf.addObserver({
30
- onLog: () => {},
31
- onEvent: (e) => events.push(e),
32
- onStateUpdated: () => {},
33
- onTreeChanged: () => {},
34
- });
35
-
36
- await wf.run();
37
-
38
- const startEvent = events.find((e) => e.type === 'stepStart');
39
- const endEvent = events.find((e) => e.type === 'stepEnd');
40
-
41
- expect(startEvent).toBeDefined();
42
- expect(endEvent).toBeDefined();
43
- if (endEvent?.type === 'stepEnd') {
44
- expect(endEvent.duration).toBeGreaterThanOrEqual(0);
45
- }
46
- });
47
-
48
- it('should wrap errors in WorkflowError', async () => {
49
- class FailingWorkflow extends Workflow {
50
- @Step()
51
- async failingStep(): Promise<void> {
52
- throw new Error('Step failed');
53
- }
54
-
55
- async run(): Promise<void> {
56
- await this.failingStep();
57
- }
58
- }
59
-
60
- const wf = new FailingWorkflow();
61
-
62
- await expect(wf.run()).rejects.toMatchObject({
63
- message: 'Step failed',
64
- workflowId: wf.id,
65
- });
66
- });
67
- });
68
-
69
- describe('@ObservedState decorator', () => {
70
- class StateTestWorkflow extends Workflow {
71
- @ObservedState()
72
- publicField: string = 'public';
73
-
74
- @ObservedState({ redact: true })
75
- secretField: string = 'secret';
76
-
77
- @ObservedState({ hidden: true })
78
- hiddenField: string = 'hidden';
79
-
80
- async run(): Promise<void> {}
81
- }
82
-
83
- it('should include public fields in snapshot', () => {
84
- const wf = new StateTestWorkflow();
85
- const state = getObservedState(wf);
86
- expect(state.publicField).toBe('public');
87
- });
88
-
89
- it('should redact secret fields', () => {
90
- const wf = new StateTestWorkflow();
91
- const state = getObservedState(wf);
92
- expect(state.secretField).toBe('***');
93
- });
94
-
95
- it('should exclude hidden fields', () => {
96
- const wf = new StateTestWorkflow();
97
- const state = getObservedState(wf);
98
- expect('hiddenField' in state).toBe(false);
99
- });
100
- });
@@ -1,277 +0,0 @@
1
- /**
2
- * Unit tests for introspection tools
3
- */
4
-
5
- import { describe, it, expect, beforeEach, afterEach } from 'vitest';
6
- import {
7
- INTROSPECTION_TOOLS,
8
- handleInspectCurrentNode,
9
- handleReadAncestorChain,
10
- handleListSiblingsChildren,
11
- handleInspectPriorOutputs,
12
- handleInspectCacheStatus,
13
- handleRequestSpawnWorkflow,
14
- executeIntrospectionTool,
15
- } from '../../tools/introspection.js';
16
- import { runInContext, type AgentExecutionContext } from '../../core/context.js';
17
- import type { WorkflowNode } from '../../types/index.js';
18
- import { defaultCache } from '../../cache/cache.js';
19
-
20
- describe('Introspection Tools', () => {
21
- describe('INTROSPECTION_TOOLS', () => {
22
- it('should export 6 tools', () => {
23
- expect(INTROSPECTION_TOOLS).toHaveLength(6);
24
- });
25
-
26
- it('should have valid tool definitions', () => {
27
- for (const tool of INTROSPECTION_TOOLS) {
28
- expect(tool.name).toBeDefined();
29
- expect(tool.description).toBeDefined();
30
- expect(tool.input_schema).toBeDefined();
31
- expect(tool.input_schema.type).toBe('object');
32
- }
33
- });
34
-
35
- it('should include all expected tool names', () => {
36
- const names = INTROSPECTION_TOOLS.map((t) => t.name);
37
- expect(names).toContain('inspect_current_node');
38
- expect(names).toContain('read_ancestor_chain');
39
- expect(names).toContain('list_siblings_children');
40
- expect(names).toContain('inspect_prior_outputs');
41
- expect(names).toContain('inspect_cache_status');
42
- expect(names).toContain('request_spawn_workflow');
43
- });
44
- });
45
-
46
- describe('handlers', () => {
47
- const createTestNode = (
48
- id: string,
49
- name: string,
50
- parent: WorkflowNode | null = null
51
- ): WorkflowNode => ({
52
- id,
53
- name,
54
- parent,
55
- children: [],
56
- status: 'running',
57
- logs: [],
58
- events: [],
59
- stateSnapshot: null,
60
- });
61
-
62
- const createContext = (node: WorkflowNode): AgentExecutionContext => ({
63
- workflowNode: node,
64
- emitEvent: () => {},
65
- workflowId: 'test-workflow',
66
- });
67
-
68
- describe('handleInspectCurrentNode', () => {
69
- it('should throw when not in workflow context', async () => {
70
- await expect(handleInspectCurrentNode()).rejects.toThrow(
71
- 'Not in workflow context'
72
- );
73
- });
74
-
75
- it('should return current node info', async () => {
76
- const parent = createTestNode('parent-1', 'Parent');
77
- const node = createTestNode('child-1', 'Child', parent);
78
- parent.children.push(node);
79
-
80
- const result = await runInContext(createContext(node), () =>
81
- handleInspectCurrentNode()
82
- );
83
-
84
- expect(result.id).toBe('child-1');
85
- expect(result.name).toBe('Child');
86
- expect(result.status).toBe('running');
87
- expect(result.parentId).toBe('parent-1');
88
- expect(result.parentName).toBe('Parent');
89
- expect(result.depth).toBe(1);
90
- });
91
-
92
- it('should handle root node (no parent)', async () => {
93
- const node = createTestNode('root-1', 'Root');
94
-
95
- const result = await runInContext(createContext(node), () =>
96
- handleInspectCurrentNode()
97
- );
98
-
99
- expect(result.parentId).toBeUndefined();
100
- expect(result.depth).toBe(0);
101
- });
102
- });
103
-
104
- describe('handleReadAncestorChain', () => {
105
- it('should throw when not in workflow context', async () => {
106
- await expect(handleReadAncestorChain({})).rejects.toThrow(
107
- 'Not in workflow context'
108
- );
109
- });
110
-
111
- it('should return ancestor chain', async () => {
112
- const root = createTestNode('root-1', 'Root');
113
- const parent = createTestNode('parent-1', 'Parent', root);
114
- root.children.push(parent);
115
- const child = createTestNode('child-1', 'Child', parent);
116
- parent.children.push(child);
117
-
118
- const result = await runInContext(createContext(child), () =>
119
- handleReadAncestorChain({})
120
- );
121
-
122
- expect(result.ancestors).toHaveLength(2);
123
- expect(result.ancestors[0].id).toBe('parent-1');
124
- expect(result.ancestors[1].id).toBe('root-1');
125
- expect(result.totalDepth).toBe(2);
126
- });
127
-
128
- it('should respect maxDepth limit', async () => {
129
- const root = createTestNode('root-1', 'Root');
130
- const parent = createTestNode('parent-1', 'Parent', root);
131
- root.children.push(parent);
132
- const child = createTestNode('child-1', 'Child', parent);
133
- parent.children.push(child);
134
-
135
- const result = await runInContext(createContext(child), () =>
136
- handleReadAncestorChain({ maxDepth: 1 })
137
- );
138
-
139
- expect(result.ancestors).toHaveLength(1);
140
- expect(result.ancestors[0].id).toBe('parent-1');
141
- });
142
- });
143
-
144
- describe('handleListSiblingsChildren', () => {
145
- it('should throw when not in workflow context', async () => {
146
- await expect(
147
- handleListSiblingsChildren({ type: 'children' })
148
- ).rejects.toThrow('Not in workflow context');
149
- });
150
-
151
- it('should return children', async () => {
152
- const parent = createTestNode('parent-1', 'Parent');
153
- const child1 = createTestNode('child-1', 'Child 1', parent);
154
- const child2 = createTestNode('child-2', 'Child 2', parent);
155
- parent.children.push(child1, child2);
156
-
157
- const result = await runInContext(createContext(parent), () =>
158
- handleListSiblingsChildren({ type: 'children' })
159
- );
160
-
161
- expect(result.type).toBe('children');
162
- expect(result.nodes).toHaveLength(2);
163
- });
164
-
165
- it('should return siblings (excluding self)', async () => {
166
- const parent = createTestNode('parent-1', 'Parent');
167
- const child1 = createTestNode('child-1', 'Child 1', parent);
168
- const child2 = createTestNode('child-2', 'Child 2', parent);
169
- parent.children.push(child1, child2);
170
-
171
- const result = await runInContext(createContext(child1), () =>
172
- handleListSiblingsChildren({ type: 'siblings' })
173
- );
174
-
175
- expect(result.type).toBe('siblings');
176
- expect(result.nodes).toHaveLength(1);
177
- expect(result.nodes[0].id).toBe('child-2');
178
- });
179
- });
180
-
181
- describe('handleInspectPriorOutputs', () => {
182
- it('should throw when not in workflow context', async () => {
183
- await expect(handleInspectPriorOutputs({})).rejects.toThrow(
184
- 'Not in workflow context'
185
- );
186
- });
187
-
188
- it('should return completed sibling outputs', async () => {
189
- const parent = createTestNode('parent-1', 'Parent');
190
- const completed = createTestNode('completed-1', 'Completed', parent);
191
- completed.status = 'completed';
192
- // Add a valid workflow event for testing
193
- completed.events.push({
194
- type: 'stepEnd',
195
- node: completed,
196
- step: 'test-step',
197
- duration: 100,
198
- } as never); // Cast to avoid strict type checking in tests
199
- const current = createTestNode('current-1', 'Current', parent);
200
- parent.children.push(completed, current);
201
-
202
- const result = await runInContext(createContext(current), () =>
203
- handleInspectPriorOutputs({})
204
- );
205
-
206
- expect(result).toHaveLength(1);
207
- expect(result[0].nodeId).toBe('completed-1');
208
- expect(result[0].status).toBe('completed');
209
- });
210
- });
211
-
212
- describe('handleInspectCacheStatus', () => {
213
- beforeEach(async () => {
214
- await defaultCache.clear();
215
- });
216
-
217
- it('should return false for missing cache key', async () => {
218
- const result = await handleInspectCacheStatus({
219
- promptHash: 'nonexistent-key',
220
- });
221
-
222
- expect(result.exists).toBe(false);
223
- expect(result.key).toBe('nonexistent-key');
224
- });
225
-
226
- it('should return true for existing cache key', async () => {
227
- await defaultCache.set('test-key', { data: 'test' });
228
-
229
- const result = await handleInspectCacheStatus({ promptHash: 'test-key' });
230
-
231
- expect(result.exists).toBe(true);
232
- });
233
- });
234
-
235
- describe('handleRequestSpawnWorkflow', () => {
236
- it('should throw when not in workflow context', async () => {
237
- await expect(
238
- handleRequestSpawnWorkflow({ name: 'Test', description: 'Test workflow' })
239
- ).rejects.toThrow('Not in workflow context');
240
- });
241
-
242
- it('should return spawn request', async () => {
243
- const node = createTestNode('node-1', 'Node');
244
-
245
- const result = await runInContext(createContext(node), () =>
246
- handleRequestSpawnWorkflow({
247
- name: 'NewWorkflow',
248
- description: 'A new workflow',
249
- })
250
- );
251
-
252
- expect(result.name).toBe('NewWorkflow');
253
- expect(result.description).toBe('A new workflow');
254
- expect(result.requestId).toMatch(/^spawn-/);
255
- expect(result.status).toBe('pending');
256
- });
257
- });
258
- });
259
-
260
- describe('executeIntrospectionTool', () => {
261
- it('should execute tool by name', async () => {
262
- await defaultCache.set('cache-test', 'value');
263
-
264
- const result = await executeIntrospectionTool('inspect_cache_status', {
265
- promptHash: 'cache-test',
266
- });
267
-
268
- expect(result).toMatchObject({ exists: true, key: 'cache-test' });
269
- });
270
-
271
- it('should throw for unknown tool', async () => {
272
- await expect(
273
- executeIntrospectionTool('unknown_tool', {})
274
- ).rejects.toThrow('Unknown introspection tool');
275
- });
276
- });
277
- });
@@ -1,135 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { z } from 'zod';
3
- import { Prompt } from '../../core/prompt.js';
4
-
5
- describe('Prompt', () => {
6
- it('should create with unique id', () => {
7
- const p1 = new Prompt({
8
- user: 'Test',
9
- responseFormat: z.object({ message: z.string() }),
10
- });
11
- const p2 = new Prompt({
12
- user: 'Test',
13
- responseFormat: z.object({ message: z.string() }),
14
- });
15
- expect(p1.id).not.toBe(p2.id);
16
- });
17
-
18
- it('should store user message and data', () => {
19
- const prompt = new Prompt({
20
- user: 'Hello world',
21
- data: { key: 'value' },
22
- responseFormat: z.object({ result: z.string() }),
23
- });
24
-
25
- expect(prompt.user).toBe('Hello world');
26
- expect(prompt.data).toEqual({ key: 'value' });
27
- });
28
-
29
- it('should validate response successfully', () => {
30
- const schema = z.object({
31
- name: z.string(),
32
- age: z.number(),
33
- });
34
-
35
- const prompt = new Prompt({
36
- user: 'Get person',
37
- responseFormat: schema,
38
- });
39
-
40
- const result = prompt.validateResponse({ name: 'John', age: 30 });
41
- expect(result).toEqual({ name: 'John', age: 30 });
42
- });
43
-
44
- it('should throw on invalid response', () => {
45
- const schema = z.object({
46
- name: z.string(),
47
- age: z.number(),
48
- });
49
-
50
- const prompt = new Prompt({
51
- user: 'Get person',
52
- responseFormat: schema,
53
- });
54
-
55
- expect(() => prompt.validateResponse({ name: 'John' })).toThrow();
56
- });
57
-
58
- it('should safely validate response', () => {
59
- const schema = z.object({ value: z.number() });
60
- const prompt = new Prompt({
61
- user: 'Test',
62
- responseFormat: schema,
63
- });
64
-
65
- const success = prompt.safeValidateResponse({ value: 42 });
66
- expect(success.success).toBe(true);
67
- if (success.success) {
68
- expect(success.data).toEqual({ value: 42 });
69
- }
70
-
71
- const failure = prompt.safeValidateResponse({ value: 'not a number' });
72
- expect(failure.success).toBe(false);
73
- });
74
-
75
- it('should build user message without data', () => {
76
- const prompt = new Prompt({
77
- user: 'Simple message',
78
- responseFormat: z.string(),
79
- });
80
-
81
- expect(prompt.buildUserMessage()).toBe('Simple message');
82
- });
83
-
84
- it('should build user message with data', () => {
85
- const prompt = new Prompt({
86
- user: 'Message with data',
87
- data: { items: ['a', 'b', 'c'] },
88
- responseFormat: z.string(),
89
- });
90
-
91
- const message = prompt.buildUserMessage();
92
- expect(message).toContain('Message with data');
93
- expect(message).toContain('<items>');
94
- expect(message).toContain('</items>');
95
- });
96
-
97
- it('should create new prompt with updated data', () => {
98
- const original = new Prompt({
99
- user: 'Test',
100
- data: { a: 1 },
101
- responseFormat: z.string(),
102
- });
103
-
104
- const updated = original.withData({ b: 2 });
105
-
106
- expect(original.data).toEqual({ a: 1 });
107
- expect(updated.data).toEqual({ a: 1, b: 2 });
108
- expect(original.id).not.toBe(updated.id);
109
- });
110
-
111
- it('should store override fields', () => {
112
- const prompt = new Prompt({
113
- user: 'Test',
114
- responseFormat: z.string(),
115
- system: 'Custom system prompt',
116
- tools: [{ name: 'test', description: 'Test tool', input_schema: { type: 'object', properties: {} } }],
117
- enableReflection: true,
118
- });
119
-
120
- expect(prompt.systemOverride).toBe('Custom system prompt');
121
- expect(prompt.toolsOverride).toHaveLength(1);
122
- expect(prompt.enableReflection).toBe(true);
123
- });
124
-
125
- it('should be immutable', () => {
126
- const prompt = new Prompt({
127
- user: 'Test',
128
- data: { key: 'value' },
129
- responseFormat: z.string(),
130
- });
131
-
132
- expect(Object.isFrozen(prompt)).toBe(true);
133
- expect(Object.isFrozen(prompt.data)).toBe(true);
134
- });
135
- });