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,558 +0,0 @@
1
- # Reflection Patterns: Quick Reference Guide
2
-
3
- ## Decision Tree: When and How to Use Reflection
4
-
5
- ```
6
- START: Should I use reflection?
7
- |
8
- ├─ Does your task need high quality? (not time-critical)
9
- | └─ YES: Consider reflection
10
- | |
11
- | ├─ Can you get external feedback? (tool results, tests, retrieval)
12
- | | └─ YES: Use Reflexion (evidence-grounded)
13
- | | └─ NO: Use basic reflection with internal evaluation
14
- | |
15
- | ├─ Multiple attempts possible?
16
- | | └─ YES: Set max_attempts = 2-3
17
- | | └─ NO: Single-pass reflection only
18
- | |
19
- | └─ Can you allocate extra tokens?
20
- | └─ YES: Proceed with implementation
21
- | └─ NO: Use minimal reflection (1 cycle max)
22
- |
23
- └─ NO: Skip reflection, use single-pass generation
24
- (E.g., real-time chat, low-latency APIs)
25
- ```
26
-
27
- ---
28
-
29
- ## Reflection Approach Selection Matrix
30
-
31
- | Task Type | Approach | Max Attempts | Feedback Source | Notes |
32
- |-----------|----------|--------------|-----------------|-------|
33
- | Code Generation | Reflexion | 2-3 | Test results | Tool-assisted validation critical |
34
- | Writing/Content | Basic Reflection | 2-3 | Quality criteria | Simple evaluation works well |
35
- | Analysis/Research | Reflexion | 2-3 | Fact-checking, retrieval | Ground in external data |
36
- | Planning | Basic Reflection | 1-2 | Feasibility check | Keep lightweight |
37
- | Dialogue/Conversation | None | 0 | Real-time feedback | Too slow for interactive |
38
- | Multi-step workflows | Hierarchical | 1-2 per step | Manager review | Reflect at orchestration level |
39
- | Math/Logic Problems | Tool-Interactive | 2-3 | Verification | Use solver tools |
40
-
41
- ---
42
-
43
- ## Prompt Template Quick Reference
44
-
45
- ### Template 1: Quick Retry (Fastest)
46
- ```
47
- Generated: [OUTPUT]
48
- Issues: [BRIEF_ERROR]
49
-
50
- Try again, fixing these issues.
51
- ```
52
- **Use when**: Time-critical, simple corrections needed
53
- **Token cost**: Low
54
- **Effectiveness**: 60-70% improvement
55
-
56
- ### Template 2: Evidence-Grounded (Recommended)
57
- ```
58
- Your response: [OUTPUT]
59
- Evidence check: [TOOL_RESULTS]
60
- Issues: [CONTRADICTIONS]
61
-
62
- Fix issues based on evidence.
63
- Cite your sources.
64
- ```
65
- **Use when**: Accuracy matters, external tools available
66
- **Token cost**: Medium
67
- **Effectiveness**: 80-90% improvement
68
-
69
- ### Template 3: Self-Critique (Detailed)
70
- ```
71
- Your response: [OUTPUT]
72
- Quality evaluation: [SCORING]
73
-
74
- Identify weaknesses.
75
- Propose specific improvements.
76
- Rewrite addressing each weakness.
77
- ```
78
- **Use when**: Complex tasks, nuanced improvements needed
79
- **Token cost**: Medium-High
80
- **Effectiveness**: 75-85% improvement
81
-
82
- ### Template 4: Multi-Agent (Highest Quality)
83
- ```
84
- Initial response: [OUTPUT]
85
-
86
- As a critic, identify problems with this response.
87
- Be specific and cite evidence.
88
-
89
- [SEPARATE LLM CALL]
90
-
91
- Based on criticism: [FEEDBACK]
92
-
93
- Provide improved response addressing all feedback.
94
- ```
95
- **Use when**: Critical quality required, budget available
96
- **Token cost**: High (2 LLM calls)
97
- **Effectiveness**: 85-95% improvement
98
-
99
- ---
100
-
101
- ## Configuration Profiles
102
-
103
- ### Profile: Speed-Optimized
104
- ```
105
- max_attempts: 1
106
- reflection_style: "minimal"
107
- external_feedback: false
108
- token_budget: 20000
109
- timeout_seconds: 10
110
- ```
111
- **Best for**: Real-time applications, chat interfaces
112
-
113
- ### Profile: Quality-Optimized
114
- ```
115
- max_attempts: 3
116
- reflection_style: "evidence_grounded"
117
- external_feedback: true
118
- token_budget: 100000
119
- timeout_seconds: 60
120
- ```
121
- **Best for**: Knowledge work, analysis, content creation
122
-
123
- ### Profile: Balanced
124
- ```
125
- max_attempts: 2
126
- reflection_style: "self_critique"
127
- external_feedback: conditional
128
- token_budget: 50000
129
- timeout_seconds: 30
130
- ```
131
- **Best for**: Most production applications
132
-
133
- ### Profile: Safety-Critical
134
- ```
135
- max_attempts: 3
136
- reflection_style: "multi_agent"
137
- external_feedback: required
138
- token_budget: 150000
139
- timeout_seconds: 120
140
- loop_detection: aggressive
141
- security_validation: strict
142
- ```
143
- **Best for**: Medical, legal, financial applications
144
-
145
- ---
146
-
147
- ## Stopping Conditions Checklist
148
-
149
- Check these in order (first true = stop):
150
-
151
- 1. **Hard Limit**: `attempt_number >= max_attempts`
152
- - Never exceed configured maximum
153
- - Typically 2-3 for reflection
154
-
155
- 2. **Quality Achieved**: `quality_score >= target_threshold`
156
- - Task complete if quality is good enough
157
- - Typical threshold: 0.8 (0-1 scale)
158
-
159
- 3. **Improvement Stalled**: `improvement < min_improvement_threshold`
160
- - If quality improved less than 5% this cycle
161
- - Indicates diminishing returns
162
-
163
- 4. **Loop Detected**: `detect_infinite_loop(output, error, history)`
164
- - Stop if exact same output repeated
165
- - Stop if same error repeated 2+ times
166
- - Stop if outputs too similar (>95%)
167
-
168
- 5. **Budget Exceeded**: `tokens_used > token_budget OR time_elapsed > timeout`
169
- - Token budget exhausted
170
- - Wall-clock timeout reached
171
-
172
- 6. **User Intervention**: `user_requested_stop()`
173
- - If humans cancel the operation
174
- - If user provides different instruction
175
-
176
- ---
177
-
178
- ## Common Mistakes and Fixes
179
-
180
- ### Mistake 1: Reflecting Without External Feedback
181
-
182
- ```
183
- WRONG:
184
- Generate output
185
- → LLM reflects on own output
186
- → LLM generates improvement
187
- → Often doesn't improve or gets worse
188
-
189
- CORRECT:
190
- Generate output
191
- → Run tests/retrieve data/check facts
192
- → Provide concrete evidence to LLM
193
- → LLM reflects grounded in evidence
194
- → Improvement is reliable
195
- ```
196
-
197
- ### Mistake 2: Infinite Reflection Loops
198
-
199
- ```
200
- WRONG:
201
- while true:
202
- output = generate()
203
- feedback = reflect(output)
204
- output = improve(output, feedback)
205
-
206
- CORRECT:
207
- for attempt in range(max_attempts):
208
- if detect_loop(output):
209
- break
210
- output = generate()
211
- if is_good_enough(output):
212
- break
213
- feedback = reflect(output)
214
- output = improve(output, feedback)
215
- ```
216
-
217
- ### Mistake 3: Including Full History in Every Cycle
218
-
219
- ```
220
- WRONG:
221
- Attempt 1: 100 tokens output
222
- Reflect with 100 tokens context + feedback = 150 tokens
223
- Attempt 2: 150 tokens output
224
- Reflect with 250 tokens context + feedback = 400 tokens
225
- ... context window balloons exponentially
226
-
227
- CORRECT:
228
- Keep rolling window of last 2 attempts only
229
- Summarize older attempts: "Attempts 1-3 hit these issues: ..."
230
- Use external memory for full history
231
- Track lessons learned separately from raw outputs
232
- ```
233
-
234
- ### Mistake 4: Waiting for Perfect Quality
235
-
236
- ```
237
- WRONG:
238
- Set target_quality = 1.0 (perfect)
239
- Keep reflecting until perfect
240
- Uses all tokens, never actually achieves perfection
241
-
242
- CORRECT:
243
- Set target_quality = 0.8 (good enough)
244
- Stop when threshold reached
245
- Accept "best effort" after max attempts
246
- Use remaining budget for other tasks
247
- ```
248
-
249
- ### Mistake 5: Reflecting on Unpredictable Outputs
250
-
251
- ```
252
- WRONG:
253
- Task: "Write a creative story"
254
- → Every reflection produces completely different story
255
- → Can't detect improvement or loops
256
- → Metrics meaningless
257
-
258
- CORRECT:
259
- Only use reflection for deterministic/measurable tasks
260
- For creative tasks: use single-pass generation
261
- Or define specific evaluation criteria (tone, length, style)
262
- ```
263
-
264
- ---
265
-
266
- ## Performance Benchmarks
267
-
268
- These are typical baselines - adjust based on your models and tasks.
269
-
270
- ### Code Generation
271
- ```
272
- Task: "Write function that..."
273
- Approach: Reflexion with test feedback
274
-
275
- Without reflection:
276
- - Success rate: 60%
277
- - Time: 2-3 seconds
278
- - Token cost: 2000 tokens
279
-
280
- With reflection (2 cycles):
281
- - Success rate: 88%
282
- - Time: 5-8 seconds
283
- - Token cost: 5000 tokens
284
-
285
- ROI: +28% success rate, 2.5x cost
286
- ```
287
-
288
- ### Fact-Checking / Analysis
289
- ```
290
- Task: "Analyze this research finding"
291
- Approach: Reflexion with web search
292
-
293
- Without reflection:
294
- - Error rate: 20%
295
- - Token cost: 3000 tokens
296
-
297
- With reflection (2 cycles):
298
- - Error rate: 3%
299
- - Token cost: 8000 tokens
300
-
301
- ROI: Error reduction worth cost in high-stakes use cases
302
- ```
303
-
304
- ### Writing Quality
305
- ```
306
- Task: "Write product description"
307
- Approach: Self-critique reflection
308
-
309
- Without reflection:
310
- - Quality score: 6.5/10
311
- - Time: 3 seconds
312
- - Token cost: 2000 tokens
313
-
314
- With reflection (2 cycles):
315
- - Quality score: 8.2/10
316
- - Time: 8 seconds
317
- - Token cost: 5000 tokens
318
-
319
- ROI: 26% quality improvement, 2.5x cost
320
- Worth it for marketing/professional content
321
- Not worth it for chat responses
322
- ```
323
-
324
- ---
325
-
326
- ## Token Budget Calculator
327
-
328
- Quick estimation for reflection:
329
-
330
- ```
331
- Initial output generation:
332
- ~2-3 KB text = 500-750 tokens
333
-
334
- Per reflection cycle:
335
- - Feedback generation: 200-300 tokens
336
- - Improvement generation: similar to initial = 500-750 tokens
337
- - Total per cycle: 700-1050 tokens
338
-
339
- Examples:
340
- 1 cycle: 500 + 850 = 1350 tokens
341
- 2 cycles: 500 + 850 + 850 = 2200 tokens
342
- 3 cycles: 500 + 850 + 850 + 850 = 3050 tokens
343
-
344
- With memory/context:
345
- Add 20-30% overhead for context window usage
346
-
347
- Total budget recommendation:
348
- Simple task: 5000-10000 tokens
349
- Complex task: 20000-50000 tokens
350
- Very complex: 50000-100000+ tokens
351
- ```
352
-
353
- ---
354
-
355
- ## Security Checklist
356
-
357
- Before deploying reflection system:
358
-
359
- - [ ] Sanitize all feedback before sending to LLM
360
- - [ ] Validate tool calls mentioned in feedback are whitelisted
361
- - [ ] Limit feedback length (max 1000 characters)
362
- - [ ] Filter credentials/secrets from history
363
- - [ ] Implement reflection depth limits
364
- - [ ] Log all reflection activities for audit
365
- - [ ] Test with adversarial feedback/prompts
366
- - [ ] Define clear escalation paths
367
- - [ ] Set rate limits on reflection API calls
368
- - [ ] Monitor for unusual reflection patterns
369
-
370
- ---
371
-
372
- ## Introspection Tool Permissions Matrix
373
-
374
- | Tool | Worker Agent | Supervisor | Manager | Admin |
375
- |------|--------------|-----------|---------|-------|
376
- | `read_own_history` | Yes | Yes | Yes | Yes |
377
- | `read_own_metadata` | Yes | Yes | Yes | Yes |
378
- | `read_parent_context` | Limited | Yes | Yes | Yes |
379
- | `read_sibling_context` | No | Limited | Yes | Yes |
380
- | `modify_own_state` | No | No | Limited | Yes |
381
- | `escalate_to_parent` | Yes | Yes | Limited | No |
382
- | `query_execution_metrics` | Limited | Yes | Yes | Yes |
383
- | `query_cost_metrics` | No | Limited | Yes | Yes |
384
- | `read_credentials` | No | No | No | Yes |
385
-
386
- ---
387
-
388
- ## Monitoring Dashboard Essentials
389
-
390
- Key metrics to track:
391
-
392
- **Real-time:**
393
- - Active reflection cycles
394
- - Avg quality improvement this hour
395
- - Tokens used this hour
396
- - Loop detections this hour
397
-
398
- **Daily/Weekly:**
399
- - Success rate (with/without reflection)
400
- - Avg attempts per successful task
401
- - Most common errors
402
- - Most effective reflection approaches
403
-
404
- **Cost Analysis:**
405
- - Cost per improved result
406
- - Cost per percentage improvement
407
- - ROI per use case
408
-
409
- ---
410
-
411
- ## Integration Checklist
412
-
413
- ### Before deploying reflection:
414
-
415
- **Architecture**
416
- - [ ] LLM client configured with retry logic
417
- - [ ] Token tracking integrated
418
- - [ ] State persistence implemented (checkpoints)
419
- - [ ] Loop detection system active
420
-
421
- **Safety**
422
- - [ ] Input validation in place
423
- - [ ] Rate limits configured
424
- - [ ] Timeout limits set
425
- - [ ] Credentials filtered from context
426
-
427
- **Observability**
428
- - [ ] Logging configured
429
- - [ ] Metrics collection active
430
- - [ ] Alerting rules defined
431
- - [ ] Dashboard created
432
-
433
- **Testing**
434
- - [ ] Unit tests for reflection logic
435
- - [ ] Integration tests with LLM calls
436
- - [ ] Load tests on token budgets
437
- - [ ] Security/adversarial tests
438
-
439
- **Documentation**
440
- - [ ] How to configure reflection per task
441
- - [ ] How to interpret metrics
442
- - [ ] How to troubleshoot issues
443
- - [ ] How to modify templates
444
-
445
- ---
446
-
447
- ## When to Use vs. When NOT to Use Reflection
448
-
449
- ### Use Reflection When:
450
-
451
- ✓ Quality is more important than speed
452
- ✓ You have time/tokens to spend
453
- ✓ You can get external feedback (tests, tools, retrieval)
454
- ✓ The task is deterministic/measurable
455
- ✓ Users are willing to wait
456
- ✓ Cost is not the primary constraint
457
- ✓ Correctness is critical
458
-
459
- ### DO NOT Use Reflection When:
460
-
461
- ✗ Sub-second latency required
462
- ✗ Operating under strict token/cost limits
463
- ✗ Task is purely creative (no criteria)
464
- ✗ No external feedback available
465
- ✗ Frequent updates needed (information changes rapidly)
466
- ✗ Task is inherently random/unpredictable
467
- ✗ User engagement requires immediate response
468
-
469
- ---
470
-
471
- ## Quick Troubleshooting Guide
472
-
473
- | Problem | Symptoms | Solution |
474
- |---------|----------|----------|
475
- | Infinite Loop | Same output repeated, timeouts | Reduce max_attempts, add loop detection |
476
- | Token Overflow | Out of memory errors | Reduce budget, compress history, use external memory |
477
- | No Improvement | Quality stays same despite reflection | Add external feedback, change template |
478
- | Getting Worse | Quality decreases after reflection | Disable reflection for this task type |
479
- | Too Slow | Timeouts at reflection stage | Reduce reflection depth, use faster model |
480
- | Misleading Feedback | Loop keeps trying same wrong approach | Use multi-agent reflection, add evidence requirement |
481
- | Security Issues | Injection attempts in feedback | Add input validation, limit tool mentions |
482
-
483
- ---
484
-
485
- ## Example Configuration Files
486
-
487
- ### TypeScript Config
488
- ```typescript
489
- const reflectionConfig = {
490
- enabled: true,
491
- maxAttempts: 2,
492
- approach: "evidence_grounded",
493
- tokenBudget: 30000,
494
- qualityThreshold: 0.8,
495
- loopDetection: {
496
- enabled: true,
497
- identicalThreshold: 2,
498
- similarityThreshold: 0.95,
499
- },
500
- security: {
501
- maxFeedbackLength: 1000,
502
- forbiddenKeywords: ["api_key", "password"],
503
- allowedTools: ["search", "test", "validate"],
504
- },
505
- timeouts: {
506
- perCycleSeconds: 30,
507
- totalSeconds: 120,
508
- },
509
- };
510
- ```
511
-
512
- ### YAML Config
513
- ```yaml
514
- reflection:
515
- enabled: true
516
- max_attempts: 2
517
- approach: "evidence_grounded"
518
-
519
- budget:
520
- tokens: 30000
521
- time_seconds: 120
522
-
523
- quality:
524
- threshold: 0.8
525
- min_improvement: 0.05
526
-
527
- safety:
528
- max_feedback_length: 1000
529
- loop_detection: true
530
- forbidden_keywords:
531
- - api_key
532
- - password
533
- - token
534
- ```
535
-
536
- ---
537
-
538
- ## Further Reading
539
-
540
- ### Academic Papers
541
- - [Self-Reflection in LLM Agents](https://arxiv.org/pdf/2405.06682) - Core research
542
- - [Reflexion Framework](https://arxiv.org/abs/2303.11366) - Evidence grounding
543
- - [Language Agent Tree Search (LATS)](https://arxiv.org/abs/2310.04406) - Tree-based reflection
544
-
545
- ### Framework Documentation
546
- - [LangGraph Reflection](https://langchain-ai.github.io/langgraph/tutorials/reflection/reflection/)
547
- - [CrewAI Hierarchical Process](https://docs.crewai.com/how-to/hierarchical-process)
548
- - [LangChain Reflection Agents](https://blog.langchain.com/reflection-agents/)
549
-
550
- ### Security Resources
551
- - [OWASP LLM Security](https://genai.owasp.org/llmrisk/llm01-prompt-injection/)
552
- - [OpenAI on Prompt Injection](https://openai.com/index/prompt-injections/)
553
-
554
- ---
555
-
556
- **Last Updated**: December 2025
557
- **Version**: 1.0
558
-
@@ -1,152 +0,0 @@
1
- # Zod Schema Validation Research
2
-
3
- ## Official Documentation URLs
4
-
5
- | Resource | URL |
6
- |----------|-----|
7
- | **Zod v3 Docs** | https://v3.zod.dev/ |
8
- | **Current Docs** | https://zod.dev/ |
9
- | **Basics Guide** | https://zod.dev/basics |
10
- | **API Reference** | https://zod.dev/api |
11
- | **GitHub** | https://github.com/colinhacks/zod |
12
- | **NPM** | https://www.npmjs.com/package/zod |
13
- | **Error Formatting** | https://zod.dev/error-formatting |
14
- | **JSON Schema** | https://zod.dev/json-schema |
15
-
16
- ## Key Patterns
17
-
18
- ### Basic Schema Definition
19
- ```typescript
20
- import { z } from 'zod';
21
-
22
- const UserSchema = z.object({
23
- name: z.string(),
24
- email: z.string().email(),
25
- age: z.number().int().positive(),
26
- active: z.boolean()
27
- });
28
- ```
29
-
30
- ### Type Inference with z.infer<T>
31
- ```typescript
32
- type User = z.infer<typeof UserSchema>;
33
- // { name: string; email: string; age: number; active: boolean }
34
- ```
35
-
36
- ### Schema Validation
37
- ```typescript
38
- // Method 1: .parse() - throws ZodError on failure
39
- try {
40
- const result = userSchema.parse(data);
41
- } catch (error) {
42
- if (error instanceof z.ZodError) {
43
- console.error(error.issues);
44
- }
45
- }
46
-
47
- // Method 2: .safeParse() - returns discriminated union
48
- const result = userSchema.safeParse(data);
49
- if (result.success) {
50
- console.log(result.data); // Type-safe
51
- } else {
52
- console.error(result.error.issues);
53
- }
54
- ```
55
-
56
- ### Error Handling
57
- ```typescript
58
- const result = schema.safeParse(data);
59
- if (!result.success) {
60
- // Access issues array
61
- console.log(result.error.issues);
62
-
63
- // Format as nested object
64
- const formatted = result.error.format();
65
-
66
- // Flatten for forms
67
- const flattened = z.flattenError(result.error);
68
- }
69
- ```
70
-
71
- ## Schema Introspection
72
-
73
- ### Accessing _def (Internal)
74
- ```typescript
75
- const schema = z.object({
76
- name: z.string(),
77
- tags: z.array(z.string())
78
- });
79
-
80
- // Access object shape
81
- console.log(schema._def.shape());
82
-
83
- // Get array element type
84
- const arraySchema = z.array(z.string());
85
- console.log(arraySchema._def.type);
86
-
87
- // Detect schema type
88
- console.log(z.string()._def.typeName); // "ZodString"
89
- ```
90
-
91
- ### JSON Schema Conversion (v3)
92
- ```typescript
93
- // Use zod-to-json-schema for v3
94
- import { zodToJsonSchema } from 'zod-to-json-schema';
95
-
96
- const jsonSchema = zodToJsonSchema(zodSchema);
97
- ```
98
-
99
- ## Advanced Features
100
-
101
- ### Optional Fields
102
- ```typescript
103
- const schema = z.object({
104
- name: z.string(),
105
- middleName: z.string().optional(), // string | undefined
106
- nickname: z.string().nullable() // string | null
107
- });
108
- ```
109
-
110
- ### Union Types
111
- ```typescript
112
- const stringOrNumber = z.union([z.string(), z.number()]);
113
-
114
- // Discriminated union (more efficient)
115
- const result = z.discriminatedUnion('status', [
116
- z.object({ status: z.literal('success'), data: z.string() }),
117
- z.object({ status: z.literal('error'), message: z.string() })
118
- ]);
119
- ```
120
-
121
- ### Arrays
122
- ```typescript
123
- const stringArray = z.array(z.string());
124
- const boundedArray = z.array(z.number()).min(1).max(10);
125
- ```
126
-
127
- ## TypeScript Integration
128
-
129
- ### Generic ZodType Usage
130
- ```typescript
131
- import { z, ZodType } from 'zod';
132
-
133
- function validateData<T extends ZodType>(
134
- data: unknown,
135
- schema: T
136
- ): z.infer<T> {
137
- return schema.parse(data);
138
- }
139
-
140
- // Generic schema factory
141
- function createEnvelopeSchema<T extends ZodType>(messageSchema: T) {
142
- return z.object({
143
- from: z.string(),
144
- to: z.string(),
145
- message: messageSchema
146
- });
147
- }
148
- ```
149
-
150
- ## Package Version
151
-
152
- Use **zod@^3.23.0** for stability (not v4.x which is in beta).