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,550 +0,0 @@
1
- /**
2
- * Example 10: Introspection Tools Demo
3
- *
4
- * Demonstrates:
5
- * - Agent with INTROSPECTION_TOOLS
6
- * - inspect_current_node - "Where am I?"
7
- * - read_ancestor_chain - "What's above me?"
8
- * - list_siblings_children - "What's around me?"
9
- * - inspect_prior_outputs - "What happened before?"
10
- * - inspect_cache_status - "Is this cached?"
11
- * - request_spawn_workflow - "Can I create children?"
12
- */
13
-
14
- import { z } from 'zod';
15
- import {
16
- Workflow,
17
- Step,
18
- Task,
19
- ObservedState,
20
- WorkflowTreeDebugger,
21
- INTROSPECTION_TOOLS,
22
- INTROSPECTION_HANDLERS,
23
- handleInspectCurrentNode,
24
- handleReadAncestorChain,
25
- handleListSiblingsChildren,
26
- handleInspectPriorOutputs,
27
- handleInspectCacheStatus,
28
- handleRequestSpawnWorkflow,
29
- runInContext,
30
- createChildContext,
31
- agentExecutionStorage,
32
- defaultCache,
33
- } from 'groundswell';
34
- import type {
35
- CurrentNodeInfo,
36
- AncestorChainResult,
37
- SiblingsChildrenResult,
38
- PriorOutputInfo,
39
- CacheStatusResult,
40
- SpawnWorkflowRequest,
41
- WorkflowNode,
42
- AgentExecutionContext,
43
- } from 'groundswell';
44
- import { printHeader, printSection, sleep, prettyJson } from '../utils/helpers.js';
45
-
46
- // ============================================================================
47
- // Helper to simulate execution context
48
- // ============================================================================
49
-
50
- /**
51
- * Create a mock workflow node for demonstration
52
- */
53
- function createMockNode(
54
- name: string,
55
- parent?: WorkflowNode,
56
- status: 'idle' | 'running' | 'completed' = 'running'
57
- ): WorkflowNode {
58
- return {
59
- id: `node-${name}-${Date.now()}`,
60
- name,
61
- status,
62
- parent,
63
- children: [],
64
- events: [],
65
- };
66
- }
67
-
68
- /**
69
- * Execute a function within a mock execution context
70
- */
71
- async function executeInMockContext<T>(
72
- node: WorkflowNode,
73
- fn: () => Promise<T>
74
- ): Promise<T> {
75
- const context: AgentExecutionContext = {
76
- workflowId: node.id,
77
- workflowName: node.name,
78
- workflowNode: node,
79
- emitEvent: (event) => {
80
- node.events.push(event);
81
- },
82
- };
83
-
84
- return runInContext(context, fn);
85
- }
86
-
87
- // ============================================================================
88
- // Workflow Definitions
89
- // ============================================================================
90
-
91
- /**
92
- * Root workflow for introspection demonstration
93
- */
94
- class IntrospectionDemoWorkflow extends Workflow {
95
- @ObservedState()
96
- introspectionResults: Record<string, unknown> = {};
97
-
98
- constructor(name: string, parent?: Workflow) {
99
- super(name, parent);
100
- }
101
-
102
- @Step({ trackTiming: true, snapshotState: true })
103
- async setupStep(): Promise<string> {
104
- this.logger.info('Setting up introspection demo');
105
- await sleep(50);
106
- return 'Setup complete';
107
- }
108
-
109
- @Step({ trackTiming: true, snapshotState: true })
110
- async processStep(): Promise<string> {
111
- this.logger.info('Processing data');
112
- await sleep(50);
113
- return 'Processing complete';
114
- }
115
-
116
- async run(): Promise<void> {
117
- this.setStatus('running');
118
- this.logger.info('Starting introspection demo workflow');
119
-
120
- await this.setupStep();
121
- await this.processStep();
122
-
123
- this.setStatus('completed');
124
- }
125
- }
126
-
127
- /**
128
- * Child workflow for nested hierarchy demonstration
129
- */
130
- class ChildIntrospectionWorkflow extends Workflow {
131
- @ObservedState()
132
- depth: number;
133
-
134
- constructor(name: string, depth: number, parent?: Workflow) {
135
- super(name, parent);
136
- this.depth = depth;
137
- }
138
-
139
- @Step({ trackTiming: true })
140
- async childWork(): Promise<string> {
141
- this.logger.info(`Child at depth ${this.depth} working`);
142
- await sleep(30);
143
- return `Child ${this.depth} result`;
144
- }
145
-
146
- async run(): Promise<string> {
147
- this.setStatus('running');
148
- const result = await this.childWork();
149
- this.setStatus('completed');
150
- return result;
151
- }
152
- }
153
-
154
- // ============================================================================
155
- // Introspection Tool Demonstrations
156
- // ============================================================================
157
-
158
- /**
159
- * Demonstrate inspect_current_node tool
160
- */
161
- async function demonstrateCurrentNode(): Promise<void> {
162
- console.log('Tool: inspect_current_node');
163
- console.log('Purpose: "Where am I?" - Get info about current workflow node\n');
164
-
165
- // Create mock hierarchy
166
- const root = createMockNode('RootWorkflow');
167
- const child = createMockNode('ChildWorkflow', root);
168
- root.children.push(child);
169
-
170
- await executeInMockContext(child, async () => {
171
- const result = await handleInspectCurrentNode();
172
-
173
- console.log('Result:');
174
- console.log(` ID: ${result.id}`);
175
- console.log(` Name: ${result.name}`);
176
- console.log(` Status: ${result.status}`);
177
- console.log(` Parent ID: ${result.parentId ?? '(none)'}`);
178
- console.log(` Parent Name: ${result.parentName ?? '(none)'}`);
179
- console.log(` Child Count: ${result.childCount}`);
180
- console.log(` Depth: ${result.depth}`);
181
- });
182
- }
183
-
184
- /**
185
- * Demonstrate read_ancestor_chain tool
186
- */
187
- async function demonstrateAncestorChain(): Promise<void> {
188
- console.log('Tool: read_ancestor_chain');
189
- console.log('Purpose: "What\'s above me?" - Get all ancestor nodes\n');
190
-
191
- // Create 3-level hierarchy
192
- const root = createMockNode('RootWorkflow', undefined, 'running');
193
- const level1 = createMockNode('Level1Workflow', root, 'running');
194
- const level2 = createMockNode('Level2Workflow', level1, 'running');
195
- root.children.push(level1);
196
- level1.children.push(level2);
197
-
198
- await executeInMockContext(level2, async () => {
199
- const result = await handleReadAncestorChain({ maxDepth: 10 });
200
-
201
- console.log(`Total depth: ${result.totalDepth}`);
202
- console.log('Ancestors (from current to root):');
203
- for (const ancestor of result.ancestors) {
204
- console.log(` Depth ${ancestor.depth}: ${ancestor.name} [${ancestor.status}]`);
205
- }
206
- });
207
- }
208
-
209
- /**
210
- * Demonstrate list_siblings_children tool
211
- */
212
- async function demonstrateSiblingsChildren(): Promise<void> {
213
- console.log('Tool: list_siblings_children');
214
- console.log('Purpose: "What\'s around me?" - List siblings or children\n');
215
-
216
- // Create hierarchy with siblings
217
- const root = createMockNode('RootWorkflow', undefined, 'running');
218
- const sibling1 = createMockNode('Sibling1', root, 'completed');
219
- const sibling2 = createMockNode('Sibling2', root, 'running');
220
- const sibling3 = createMockNode('Sibling3', root, 'idle');
221
- root.children.push(sibling1, sibling2, sibling3);
222
-
223
- // Add children to sibling2
224
- const child1 = createMockNode('Child1', sibling2, 'completed');
225
- const child2 = createMockNode('Child2', sibling2, 'running');
226
- sibling2.children.push(child1, child2);
227
-
228
- await executeInMockContext(sibling2, async () => {
229
- // Get siblings
230
- const siblings = await handleListSiblingsChildren({ type: 'siblings' });
231
- console.log('Siblings:');
232
- for (const node of siblings.nodes) {
233
- console.log(` - ${node.name} [${node.status}]`);
234
- }
235
-
236
- // Get children
237
- const children = await handleListSiblingsChildren({ type: 'children' });
238
- console.log('\nChildren:');
239
- for (const node of children.nodes) {
240
- console.log(` - ${node.name} [${node.status}]`);
241
- }
242
- });
243
- }
244
-
245
- /**
246
- * Demonstrate inspect_prior_outputs tool
247
- */
248
- async function demonstratePriorOutputs(): Promise<void> {
249
- console.log('Tool: inspect_prior_outputs');
250
- console.log('Purpose: "What happened before?" - Get outputs from prior steps\n');
251
-
252
- // Create hierarchy with completed siblings
253
- const root = createMockNode('RootWorkflow', undefined, 'running');
254
- const step1 = createMockNode('Step1', root, 'completed');
255
- const step2 = createMockNode('Step2', root, 'completed');
256
- const step3 = createMockNode('CurrentStep', root, 'running');
257
-
258
- // Add events to completed steps
259
- step1.events.push({ type: 'stepEnd', payload: { result: 'Step 1 output' } });
260
- step2.events.push({ type: 'stepEnd', payload: { result: 'Step 2 output' } });
261
-
262
- root.children.push(step1, step2, step3);
263
-
264
- await executeInMockContext(step3, async () => {
265
- const result = await handleInspectPriorOutputs({ count: 3 });
266
-
267
- console.log(`Found ${result.length} prior outputs:`);
268
- for (const output of result) {
269
- console.log(` Node: ${output.nodeName}`);
270
- console.log(` Status: ${output.status}`);
271
- console.log(` Events: ${output.events.length}`);
272
- }
273
- });
274
- }
275
-
276
- /**
277
- * Demonstrate inspect_cache_status tool
278
- */
279
- async function demonstrateCacheStatus(): Promise<void> {
280
- console.log('Tool: inspect_cache_status');
281
- console.log('Purpose: "Is this cached?" - Check if a prompt response is cached\n');
282
-
283
- // Set up some cache entries
284
- const testKey1 = 'test-prompt-hash-12345';
285
- const testKey2 = 'test-prompt-hash-67890';
286
-
287
- await defaultCache.set(testKey1, { result: 'Cached response' });
288
-
289
- // Check existing key
290
- const result1 = await handleInspectCacheStatus({ promptHash: testKey1 });
291
- console.log(`Key "${testKey1}":`);
292
- console.log(` Exists: ${result1.exists}`);
293
-
294
- // Check non-existing key
295
- const result2 = await handleInspectCacheStatus({ promptHash: testKey2 });
296
- console.log(`\nKey "${testKey2}":`);
297
- console.log(` Exists: ${result2.exists}`);
298
-
299
- // Show cache metrics
300
- const metrics = defaultCache.metrics();
301
- console.log('\nCache metrics:');
302
- console.log(` Entries: ${metrics.entries}`);
303
- console.log(` Hits: ${metrics.hits}`);
304
- console.log(` Misses: ${metrics.misses}`);
305
- }
306
-
307
- /**
308
- * Demonstrate request_spawn_workflow tool
309
- */
310
- async function demonstrateSpawnWorkflow(): Promise<void> {
311
- console.log('Tool: request_spawn_workflow');
312
- console.log('Purpose: "Can I create children?" - Request to spawn new workflow\n');
313
-
314
- const root = createMockNode('OrchestratorWorkflow');
315
-
316
- await executeInMockContext(root, async () => {
317
- const request = await handleRequestSpawnWorkflow({
318
- name: 'DynamicChildWorkflow',
319
- description: 'Process additional data discovered during execution',
320
- });
321
-
322
- console.log('Spawn request created:');
323
- console.log(` Name: ${request.name}`);
324
- console.log(` Description: ${request.description}`);
325
- console.log(` Request ID: ${request.requestId}`);
326
- console.log(` Status: ${request.status}`);
327
- console.log('\nNote: The orchestrator handles actual spawning based on this request.');
328
- });
329
- }
330
-
331
- // ============================================================================
332
- // Complete Integration Demo
333
- // ============================================================================
334
-
335
- /**
336
- * Workflow that uses introspection tools
337
- */
338
- class IntrospectiveWorkflow extends Workflow {
339
- @ObservedState()
340
- introspectionLog: Array<{ tool: string; result: unknown }> = [];
341
-
342
- constructor(name: string, parent?: Workflow) {
343
- super(name, parent);
344
- }
345
-
346
- @Step({ trackTiming: true, snapshotState: true, name: 'introspect-position' })
347
- async introspectPosition(): Promise<void> {
348
- this.logger.info('Using introspection to understand position');
349
-
350
- // Create context for this step
351
- const stepNode = createMockNode('introspect-position', undefined, 'running');
352
-
353
- await executeInMockContext(stepNode, async () => {
354
- const nodeInfo = await handleInspectCurrentNode();
355
- this.introspectionLog.push({ tool: 'inspect_current_node', result: nodeInfo });
356
- this.logger.info(`Position: ${nodeInfo.name} at depth ${nodeInfo.depth}`);
357
- });
358
- }
359
-
360
- @Step({ trackTiming: true, snapshotState: true, name: 'analyze-hierarchy' })
361
- async analyzeHierarchy(): Promise<void> {
362
- this.logger.info('Analyzing workflow hierarchy');
363
-
364
- // Create a mock hierarchy for demo
365
- const root = createMockNode('Root');
366
- const parent = createMockNode('Parent', root);
367
- const current = createMockNode('Current', parent);
368
- root.children.push(parent);
369
- parent.children.push(current);
370
-
371
- await executeInMockContext(current, async () => {
372
- const ancestors = await handleReadAncestorChain({ maxDepth: 5 });
373
- this.introspectionLog.push({ tool: 'read_ancestor_chain', result: ancestors });
374
- this.logger.info(`Found ${ancestors.ancestors.length} ancestors`);
375
- });
376
- }
377
-
378
- @Step({ trackTiming: true, snapshotState: true, name: 'check-cache' })
379
- async checkCache(): Promise<void> {
380
- this.logger.info('Checking cache status');
381
-
382
- const testHash = 'demo-prompt-hash';
383
- const cacheStatus = await handleInspectCacheStatus({ promptHash: testHash });
384
- this.introspectionLog.push({ tool: 'inspect_cache_status', result: cacheStatus });
385
- this.logger.info(`Cache hit: ${cacheStatus.exists}`);
386
- }
387
-
388
- async run(): Promise<void> {
389
- this.setStatus('running');
390
- this.logger.info('Starting introspective workflow');
391
-
392
- await this.introspectPosition();
393
- await this.analyzeHierarchy();
394
- await this.checkCache();
395
-
396
- this.logger.info(`Total introspection calls: ${this.introspectionLog.length}`);
397
- this.setStatus('completed');
398
- }
399
- }
400
-
401
- // ============================================================================
402
- // Main Example Runner
403
- // ============================================================================
404
-
405
- /**
406
- * Run the Introspection Tools example
407
- */
408
- export async function runIntrospectionExample(): Promise<void> {
409
- printHeader('Example 10: Introspection Tools Demo');
410
-
411
- // Overview of available tools
412
- printSection('Available Introspection Tools');
413
- {
414
- console.log('The INTROSPECTION_TOOLS array contains 6 tools:\n');
415
- for (const tool of INTROSPECTION_TOOLS) {
416
- console.log(` ${tool.name}`);
417
- console.log(` ${tool.description}`);
418
- console.log(` Required: ${tool.input_schema.required?.join(', ') || 'none'}\n`);
419
- }
420
- }
421
-
422
- // Part 1: inspect_current_node
423
- printSection('Part 1: inspect_current_node');
424
- {
425
- await demonstrateCurrentNode();
426
- }
427
-
428
- // Part 2: read_ancestor_chain
429
- printSection('Part 2: read_ancestor_chain');
430
- {
431
- await demonstrateAncestorChain();
432
- }
433
-
434
- // Part 3: list_siblings_children
435
- printSection('Part 3: list_siblings_children');
436
- {
437
- await demonstrateSiblingsChildren();
438
- }
439
-
440
- // Part 4: inspect_prior_outputs
441
- printSection('Part 4: inspect_prior_outputs');
442
- {
443
- await demonstratePriorOutputs();
444
- }
445
-
446
- // Part 5: inspect_cache_status
447
- printSection('Part 5: inspect_cache_status');
448
- {
449
- await demonstrateCacheStatus();
450
- }
451
-
452
- // Part 6: request_spawn_workflow
453
- printSection('Part 6: request_spawn_workflow');
454
- {
455
- await demonstrateSpawnWorkflow();
456
- }
457
-
458
- // Part 7: Complete Integration
459
- printSection('Part 7: Complete Workflow with Introspection');
460
- {
461
- console.log('Workflow using multiple introspection tools:\n');
462
-
463
- const workflow = new IntrospectiveWorkflow('IntrospectiveWorkflow');
464
- const debugger_ = new WorkflowTreeDebugger(workflow);
465
-
466
- await workflow.run();
467
-
468
- console.log('\nIntrospection log:');
469
- for (const entry of workflow.introspectionLog) {
470
- console.log(` Tool: ${entry.tool}`);
471
- if (typeof entry.result === 'object' && entry.result !== null) {
472
- const summary =
473
- 'exists' in entry.result
474
- ? `exists: ${entry.result.exists}`
475
- : 'name' in entry.result
476
- ? `name: ${(entry.result as { name: string }).name}`
477
- : 'ancestors' in entry.result
478
- ? `${(entry.result as { ancestors: unknown[] }).ancestors.length} ancestors`
479
- : JSON.stringify(entry.result).slice(0, 50);
480
- console.log(` Result: ${summary}`);
481
- }
482
- console.log('');
483
- }
484
-
485
- console.log('Tree:');
486
- console.log(debugger_.toTreeString());
487
- }
488
-
489
- // Part 8: Agent Integration Pattern
490
- printSection('Part 8: Agent Integration Pattern');
491
- {
492
- console.log('Pattern for agents using introspection tools:\n');
493
-
494
- console.log(`// Agent configuration with introspection tools
495
- const introspectionAgent = createAgent({
496
- name: 'IntrospectionAgent',
497
- tools: INTROSPECTION_TOOLS,
498
- system: \`You are an agent that can explore workflow hierarchies.
499
- Use the introspection tools to understand your position
500
- and what work has been done.\`
501
- });
502
-
503
- // Prompt for self-aware analysis
504
- const explorePrompt = createPrompt({
505
- user: 'Describe your position in the workflow and summarize prior work.',
506
- responseFormat: z.object({
507
- position: z.string(),
508
- depth: z.number(),
509
- parentName: z.string().optional(),
510
- summary: z.string()
511
- })
512
- });
513
-
514
- // Agent uses tools autonomously to gather context
515
- const analysis = await introspectionAgent.prompt(explorePrompt);
516
- `);
517
-
518
- console.log('\nThe agent can:');
519
- console.log(' 1. Call inspect_current_node to understand its position');
520
- console.log(' 2. Call read_ancestor_chain to understand hierarchy');
521
- console.log(' 3. Call list_siblings_children to see nearby nodes');
522
- console.log(' 4. Call inspect_prior_outputs to review prior work');
523
- console.log(' 5. Call inspect_cache_status to check for cached results');
524
- console.log(' 6. Call request_spawn_workflow to request child workflows');
525
- }
526
-
527
- // Summary
528
- printSection('Summary');
529
- {
530
- console.log('Introspection tools enable agents to:');
531
- console.log(' - Understand their position in the workflow hierarchy');
532
- console.log(' - Access context from parent and sibling workflows');
533
- console.log(' - Review outputs from prior execution steps');
534
- console.log(' - Check cache status before expensive operations');
535
- console.log(' - Request dynamic workflow spawning\n');
536
-
537
- console.log('All tools are:');
538
- console.log(' - Read-only (except request_spawn_workflow)');
539
- console.log(' - Security-filtered (sensitive data removed)');
540
- console.log(' - Context-aware (use getExecutionContext())');
541
- console.log(' - Result-limited (prevent overwhelming output)');
542
- }
543
-
544
- console.log('\n=== Example 10 Complete ===');
545
- }
546
-
547
- // Allow direct execution
548
- if (import.meta.url === `file://${process.argv[1]}`) {
549
- runIntrospectionExample().catch(console.error);
550
- }
package/examples/index.ts DELETED
@@ -1,143 +0,0 @@
1
- /**
2
- * Groundswell Workflow Engine - Example Runner
3
- *
4
- * This file runs all examples demonstrating the features of the
5
- * Groundswell workflow orchestration engine.
6
- *
7
- * Run individual examples:
8
- * npm run start:basic
9
- * npm run start:decorators
10
- * npm run start:parent-child
11
- * npm run start:observers
12
- * npm run start:errors
13
- * npm run start:concurrent
14
- *
15
- * Run all examples:
16
- * npm run start:all
17
- */
18
-
19
- import { runBasicWorkflowExample } from './examples/01-basic-workflow.js';
20
- import { runDecoratorOptionsExample } from './examples/02-decorator-options.js';
21
- import { runParentChildExample } from './examples/03-parent-child.js';
22
- import { runObserversDebuggerExample } from './examples/04-observers-debugger.js';
23
- import { runErrorHandlingExample } from './examples/05-error-handling.js';
24
- import { runConcurrentTasksExample } from './examples/06-concurrent-tasks.js';
25
- import { runAgentLoopsExample } from './examples/07-agent-loops.js';
26
- import { runSDKFeaturesExample } from './examples/08-sdk-features.js';
27
- import { runReflectionExample } from './examples/09-reflection.js';
28
- import { runIntrospectionExample } from './examples/10-introspection.js';
29
-
30
- const BANNER = `
31
- ╔═══════════════════════════════════════════════════════════════════════════════════════════════════╗
32
- ║ ║
33
- ║ ██████╗ ██████╗ ██████╗ ██╗ ██╗███╗ ██╗██████╗ ███████╗██╗ ██╗███████╗██╗ ██╗ ║
34
- ║ ██╔════╝ ██╔══██╗██╔═══██╗██║ ██║████╗ ██║██╔══██╗██╔════╝██║ ██║██╔════╝██║ ██║ ║
35
- ║ ██║ ███╗██████╔╝██║ ██║██║ ██║██╔██╗ ██║██║ ██║███████╗██║ █╗ ██║█████╗ ██║ ██║ ║
36
- ║ ██║ ██║██╔══██╗██║ ██║██║ ██║██║╚██╗██║██║ ██║╚════██║██║███╗██║██╔══╝ ██║ ██║ ║
37
- ║ ╚██████╔╝██║ ██║╚██████╔╝╚██████╔╝██║ ╚████║██████╔╝███████║╚███╔███╔╝███████╗███████╗███████╗ ║
38
- ║ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝╚═════╝ ╚══════╝ ╚══╝╚══╝ ╚══════╝╚══════╝╚══════╝ ║
39
- ║ ║
40
- ║ Workflow Engine Examples & Feature Showcase ║
41
- ║ ║
42
- ╚═══════════════════════════════════════════════════════════════════════════════════════════════════╝
43
- `;
44
-
45
- const MENU = `
46
- Available Examples:
47
- ───────────────────────────────────────────────────────────────────
48
- 1. Basic Workflow - Core workflow concepts
49
- 2. Decorator Options - All @Step, @Task, @ObservedState options
50
- 3. Parent-Child Workflows - Hierarchical workflow structures
51
- 4. Observers & Debugger - Real-time monitoring and debugging
52
- 5. Error Handling - Error wrapping, recovery patterns
53
- 6. Concurrent Tasks - Parallel execution patterns
54
- 7. Agent Loops - Agent.prompt() in loops with observability
55
- 8. SDK Features - Tools, MCPs, hooks, skills integration
56
- 9. Multi-level Reflection - Workflow, agent, prompt reflection
57
- 10. Introspection Tools - Agent self-awareness and hierarchy navigation
58
-
59
- A. Run All Examples
60
- Q. Quit
61
- ───────────────────────────────────────────────────────────────────
62
- `;
63
-
64
- async function sleep(ms: number): Promise<void> {
65
- return new Promise((resolve) => setTimeout(resolve, ms));
66
- }
67
-
68
- async function waitForInput(prompt: string): Promise<void> {
69
- console.log(`\n${prompt}`);
70
- console.log('Press Enter to continue...');
71
- await new Promise<void>((resolve) => {
72
- process.stdin.once('data', () => resolve());
73
- });
74
- }
75
-
76
- async function runAllExamples(): Promise<void> {
77
- console.log(BANNER);
78
- console.log('Running all examples sequentially...\n');
79
-
80
- const examples = [
81
- { name: '1. Basic Workflow', fn: runBasicWorkflowExample },
82
- { name: '2. Decorator Options', fn: runDecoratorOptionsExample },
83
- { name: '3. Parent-Child Workflows', fn: runParentChildExample },
84
- { name: '4. Observers & Debugger', fn: runObserversDebuggerExample },
85
- { name: '5. Error Handling', fn: runErrorHandlingExample },
86
- { name: '6. Concurrent Tasks', fn: runConcurrentTasksExample },
87
- { name: '7. Agent Loops', fn: runAgentLoopsExample },
88
- { name: '8. SDK Features', fn: runSDKFeaturesExample },
89
- { name: '9. Multi-level Reflection', fn: runReflectionExample },
90
- { name: '10. Introspection Tools', fn: runIntrospectionExample },
91
- ];
92
-
93
- for (const example of examples) {
94
- console.log(`\n${'#'.repeat(70)}`);
95
- console.log(`# Running: ${example.name}`);
96
- console.log(`${'#'.repeat(70)}`);
97
-
98
- try {
99
- await example.fn();
100
- } catch (error) {
101
- console.error(`Example ${example.name} failed:`, error);
102
- }
103
-
104
- await sleep(500); // Brief pause between examples
105
- }
106
-
107
- console.log('\n' + '═'.repeat(70));
108
- console.log('All examples completed!');
109
- console.log('═'.repeat(70));
110
-
111
- console.log(`
112
- Summary of Features Demonstrated:
113
- ─────────────────────────────────
114
- ✓ Workflow base class with status management
115
- ✓ WorkflowLogger with structured logging
116
- ✓ @Step decorator with all options (name, snapshotState, trackTiming, logStart, logFinish)
117
- ✓ @Task decorator with concurrent option
118
- ✓ @ObservedState decorator with hidden and redact options
119
- ✓ Parent-child workflow hierarchies
120
- ✓ Automatic child attachment via constructor
121
- ✓ Event propagation to root observers
122
- ✓ WorkflowTreeDebugger with ASCII tree visualization
123
- ✓ Custom WorkflowObserver implementations
124
- ✓ Observable event streaming
125
- ✓ WorkflowError with full context (state, logs, stack)
126
- ✓ Error recovery patterns
127
- ✓ Sequential vs parallel execution
128
- ✓ Fan-out / fan-in patterns
129
- ✓ Agent.prompt() in loops with full observability
130
- ✓ Custom tools, MCPs, hooks, skills integration
131
- ✓ Multi-level reflection (workflow, agent, prompt)
132
- ✓ Introspection tools for hierarchy navigation
133
- ✓ Cache integration with metrics
134
- `);
135
- }
136
-
137
- // Main entry point
138
- runAllExamples()
139
- .then(() => process.exit(0))
140
- .catch((err) => {
141
- console.error('Fatal error:', err);
142
- process.exit(1);
143
- });