@substrate-ai/factory 0.19.54

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 (885) hide show
  1. package/dist/__tests__/config.test.d.ts +11 -0
  2. package/dist/__tests__/config.test.d.ts.map +1 -0
  3. package/dist/__tests__/config.test.js +215 -0
  4. package/dist/__tests__/config.test.js.map +1 -0
  5. package/dist/__tests__/factory-run-command.test.d.ts +12 -0
  6. package/dist/__tests__/factory-run-command.test.d.ts.map +1 -0
  7. package/dist/__tests__/factory-run-command.test.js +454 -0
  8. package/dist/__tests__/factory-run-command.test.js.map +1 -0
  9. package/dist/__tests__/factory-validate-command.test.d.ts +15 -0
  10. package/dist/__tests__/factory-validate-command.test.d.ts.map +1 -0
  11. package/dist/__tests__/factory-validate-command.test.js +339 -0
  12. package/dist/__tests__/factory-validate-command.test.js.map +1 -0
  13. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.d.ts +72 -0
  14. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.d.ts.map +1 -0
  15. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.js +121 -0
  16. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.js.map +1 -0
  17. package/dist/__tests__/fixtures/llm-edge-routing.dot.d.ts +28 -0
  18. package/dist/__tests__/fixtures/llm-edge-routing.dot.d.ts.map +1 -0
  19. package/dist/__tests__/fixtures/llm-edge-routing.dot.js +55 -0
  20. package/dist/__tests__/fixtures/llm-edge-routing.dot.js.map +1 -0
  21. package/dist/__tests__/fixtures/manager-loop.dot.d.ts +34 -0
  22. package/dist/__tests__/fixtures/manager-loop.dot.d.ts.map +1 -0
  23. package/dist/__tests__/fixtures/manager-loop.dot.js +61 -0
  24. package/dist/__tests__/fixtures/manager-loop.dot.js.map +1 -0
  25. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.d.ts +42 -0
  26. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.d.ts.map +1 -0
  27. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.js +118 -0
  28. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.js.map +1 -0
  29. package/dist/__tests__/fixtures/subgraph-parent.dot.d.ts +35 -0
  30. package/dist/__tests__/fixtures/subgraph-parent.dot.d.ts.map +1 -0
  31. package/dist/__tests__/fixtures/subgraph-parent.dot.js +69 -0
  32. package/dist/__tests__/fixtures/subgraph-parent.dot.js.map +1 -0
  33. package/dist/__tests__/integration/advanced-graph-events.test.d.ts +19 -0
  34. package/dist/__tests__/integration/advanced-graph-events.test.d.ts.map +1 -0
  35. package/dist/__tests__/integration/advanced-graph-events.test.js +288 -0
  36. package/dist/__tests__/integration/advanced-graph-events.test.js.map +1 -0
  37. package/dist/__tests__/integration/checkpoint-resume.test.d.ts +10 -0
  38. package/dist/__tests__/integration/checkpoint-resume.test.d.ts.map +1 -0
  39. package/dist/__tests__/integration/checkpoint-resume.test.js +125 -0
  40. package/dist/__tests__/integration/checkpoint-resume.test.js.map +1 -0
  41. package/dist/__tests__/integration/conditional-pipeline.test.d.ts +10 -0
  42. package/dist/__tests__/integration/conditional-pipeline.test.d.ts.map +1 -0
  43. package/dist/__tests__/integration/conditional-pipeline.test.js +106 -0
  44. package/dist/__tests__/integration/conditional-pipeline.test.js.map +1 -0
  45. package/dist/__tests__/integration/convergence-validation.test.d.ts +14 -0
  46. package/dist/__tests__/integration/convergence-validation.test.d.ts.map +1 -0
  47. package/dist/__tests__/integration/convergence-validation.test.js +449 -0
  48. package/dist/__tests__/integration/convergence-validation.test.js.map +1 -0
  49. package/dist/__tests__/integration/epic44-coverage-gate.test.d.ts +12 -0
  50. package/dist/__tests__/integration/epic44-coverage-gate.test.d.ts.map +1 -0
  51. package/dist/__tests__/integration/epic44-coverage-gate.test.js +58 -0
  52. package/dist/__tests__/integration/epic44-coverage-gate.test.js.map +1 -0
  53. package/dist/__tests__/integration/epic45-coverage-gate.test.d.ts +11 -0
  54. package/dist/__tests__/integration/epic45-coverage-gate.test.d.ts.map +1 -0
  55. package/dist/__tests__/integration/epic45-coverage-gate.test.js +64 -0
  56. package/dist/__tests__/integration/epic45-coverage-gate.test.js.map +1 -0
  57. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.d.ts +2 -0
  58. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.d.ts.map +1 -0
  59. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.js +285 -0
  60. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.js.map +1 -0
  61. package/dist/__tests__/integration/events.test.d.ts +8 -0
  62. package/dist/__tests__/integration/events.test.d.ts.map +1 -0
  63. package/dist/__tests__/integration/events.test.js +194 -0
  64. package/dist/__tests__/integration/events.test.js.map +1 -0
  65. package/dist/__tests__/integration/graphs.d.ts +59 -0
  66. package/dist/__tests__/integration/graphs.d.ts.map +1 -0
  67. package/dist/__tests__/integration/graphs.js +164 -0
  68. package/dist/__tests__/integration/graphs.js.map +1 -0
  69. package/dist/__tests__/integration/helpers.d.ts +127 -0
  70. package/dist/__tests__/integration/helpers.d.ts.map +1 -0
  71. package/dist/__tests__/integration/helpers.js +167 -0
  72. package/dist/__tests__/integration/helpers.js.map +1 -0
  73. package/dist/__tests__/integration/integrity.test.d.ts +8 -0
  74. package/dist/__tests__/integration/integrity.test.d.ts.map +1 -0
  75. package/dist/__tests__/integration/integrity.test.js +198 -0
  76. package/dist/__tests__/integration/integrity.test.js.map +1 -0
  77. package/dist/__tests__/integration/llm-edge-routing.test.d.ts +21 -0
  78. package/dist/__tests__/integration/llm-edge-routing.test.d.ts.map +1 -0
  79. package/dist/__tests__/integration/llm-edge-routing.test.js +341 -0
  80. package/dist/__tests__/integration/llm-edge-routing.test.js.map +1 -0
  81. package/dist/__tests__/integration/manager-loop.test.d.ts +24 -0
  82. package/dist/__tests__/integration/manager-loop.test.d.ts.map +1 -0
  83. package/dist/__tests__/integration/manager-loop.test.js +276 -0
  84. package/dist/__tests__/integration/manager-loop.test.js.map +1 -0
  85. package/dist/__tests__/integration/multi-type-graph.test.d.ts +10 -0
  86. package/dist/__tests__/integration/multi-type-graph.test.d.ts.map +1 -0
  87. package/dist/__tests__/integration/multi-type-graph.test.js +100 -0
  88. package/dist/__tests__/integration/multi-type-graph.test.js.map +1 -0
  89. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.d.ts +22 -0
  90. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.d.ts.map +1 -0
  91. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.js +515 -0
  92. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.js.map +1 -0
  93. package/dist/__tests__/integration/persistence.test.d.ts +8 -0
  94. package/dist/__tests__/integration/persistence.test.d.ts.map +1 -0
  95. package/dist/__tests__/integration/persistence.test.js +129 -0
  96. package/dist/__tests__/integration/persistence.test.js.map +1 -0
  97. package/dist/__tests__/integration/pipeline-templates-integration.test.d.ts +16 -0
  98. package/dist/__tests__/integration/pipeline-templates-integration.test.d.ts.map +1 -0
  99. package/dist/__tests__/integration/pipeline-templates-integration.test.js +171 -0
  100. package/dist/__tests__/integration/pipeline-templates-integration.test.js.map +1 -0
  101. package/dist/__tests__/integration/scenario-pipeline.test.d.ts +11 -0
  102. package/dist/__tests__/integration/scenario-pipeline.test.d.ts.map +1 -0
  103. package/dist/__tests__/integration/scenario-pipeline.test.js +243 -0
  104. package/dist/__tests__/integration/scenario-pipeline.test.js.map +1 -0
  105. package/dist/__tests__/integration/stylesheet-application.test.d.ts +12 -0
  106. package/dist/__tests__/integration/stylesheet-application.test.d.ts.map +1 -0
  107. package/dist/__tests__/integration/stylesheet-application.test.js +119 -0
  108. package/dist/__tests__/integration/stylesheet-application.test.js.map +1 -0
  109. package/dist/__tests__/integration/subgraph-execution.test.d.ts +24 -0
  110. package/dist/__tests__/integration/subgraph-execution.test.d.ts.map +1 -0
  111. package/dist/__tests__/integration/subgraph-execution.test.js +291 -0
  112. package/dist/__tests__/integration/subgraph-execution.test.js.map +1 -0
  113. package/dist/__tests__/integration/validation-errors.test.d.ts +8 -0
  114. package/dist/__tests__/integration/validation-errors.test.d.ts.map +1 -0
  115. package/dist/__tests__/integration/validation-errors.test.js +150 -0
  116. package/dist/__tests__/integration/validation-errors.test.js.map +1 -0
  117. package/dist/agent/__tests__/loop-detection.test.d.ts +2 -0
  118. package/dist/agent/__tests__/loop-detection.test.d.ts.map +1 -0
  119. package/dist/agent/__tests__/loop-detection.test.js +236 -0
  120. package/dist/agent/__tests__/loop-detection.test.js.map +1 -0
  121. package/dist/agent/__tests__/loop.test.d.ts +2 -0
  122. package/dist/agent/__tests__/loop.test.d.ts.map +1 -0
  123. package/dist/agent/__tests__/loop.test.js +868 -0
  124. package/dist/agent/__tests__/loop.test.js.map +1 -0
  125. package/dist/agent/__tests__/truncation.test.d.ts +2 -0
  126. package/dist/agent/__tests__/truncation.test.d.ts.map +1 -0
  127. package/dist/agent/__tests__/truncation.test.js +276 -0
  128. package/dist/agent/__tests__/truncation.test.js.map +1 -0
  129. package/dist/agent/index.d.ts +11 -0
  130. package/dist/agent/index.d.ts.map +1 -0
  131. package/dist/agent/index.js +13 -0
  132. package/dist/agent/index.js.map +1 -0
  133. package/dist/agent/loop-detection.d.ts +21 -0
  134. package/dist/agent/loop-detection.d.ts.map +1 -0
  135. package/dist/agent/loop-detection.js +61 -0
  136. package/dist/agent/loop-detection.js.map +1 -0
  137. package/dist/agent/loop.d.ts +88 -0
  138. package/dist/agent/loop.d.ts.map +1 -0
  139. package/dist/agent/loop.js +411 -0
  140. package/dist/agent/loop.js.map +1 -0
  141. package/dist/agent/tools/__tests__/anthropic-tools.test.d.ts +6 -0
  142. package/dist/agent/tools/__tests__/anthropic-tools.test.d.ts.map +1 -0
  143. package/dist/agent/tools/__tests__/anthropic-tools.test.js +49 -0
  144. package/dist/agent/tools/__tests__/anthropic-tools.test.js.map +1 -0
  145. package/dist/agent/tools/__tests__/environment.test.d.ts +6 -0
  146. package/dist/agent/tools/__tests__/environment.test.d.ts.map +1 -0
  147. package/dist/agent/tools/__tests__/environment.test.js +33 -0
  148. package/dist/agent/tools/__tests__/environment.test.js.map +1 -0
  149. package/dist/agent/tools/__tests__/gemini-tools.test.d.ts +6 -0
  150. package/dist/agent/tools/__tests__/gemini-tools.test.d.ts.map +1 -0
  151. package/dist/agent/tools/__tests__/gemini-tools.test.js +98 -0
  152. package/dist/agent/tools/__tests__/gemini-tools.test.js.map +1 -0
  153. package/dist/agent/tools/__tests__/openai-tools.test.d.ts +6 -0
  154. package/dist/agent/tools/__tests__/openai-tools.test.d.ts.map +1 -0
  155. package/dist/agent/tools/__tests__/openai-tools.test.js +53 -0
  156. package/dist/agent/tools/__tests__/openai-tools.test.js.map +1 -0
  157. package/dist/agent/tools/__tests__/patch.test.d.ts +6 -0
  158. package/dist/agent/tools/__tests__/patch.test.d.ts.map +1 -0
  159. package/dist/agent/tools/__tests__/patch.test.js +116 -0
  160. package/dist/agent/tools/__tests__/patch.test.js.map +1 -0
  161. package/dist/agent/tools/__tests__/profiles.test.d.ts +6 -0
  162. package/dist/agent/tools/__tests__/profiles.test.d.ts.map +1 -0
  163. package/dist/agent/tools/__tests__/profiles.test.js +125 -0
  164. package/dist/agent/tools/__tests__/profiles.test.js.map +1 -0
  165. package/dist/agent/tools/__tests__/registry.test.d.ts +6 -0
  166. package/dist/agent/tools/__tests__/registry.test.d.ts.map +1 -0
  167. package/dist/agent/tools/__tests__/registry.test.js +94 -0
  168. package/dist/agent/tools/__tests__/registry.test.js.map +1 -0
  169. package/dist/agent/tools/__tests__/shared.test.d.ts +6 -0
  170. package/dist/agent/tools/__tests__/shared.test.d.ts.map +1 -0
  171. package/dist/agent/tools/__tests__/shared.test.js +131 -0
  172. package/dist/agent/tools/__tests__/shared.test.js.map +1 -0
  173. package/dist/agent/tools/anthropic-tools.d.ts +15 -0
  174. package/dist/agent/tools/anthropic-tools.d.ts.map +1 -0
  175. package/dist/agent/tools/anthropic-tools.js +45 -0
  176. package/dist/agent/tools/anthropic-tools.js.map +1 -0
  177. package/dist/agent/tools/environment.d.ts +11 -0
  178. package/dist/agent/tools/environment.d.ts.map +1 -0
  179. package/dist/agent/tools/environment.js +35 -0
  180. package/dist/agent/tools/environment.js.map +1 -0
  181. package/dist/agent/tools/gemini-tools.d.ts +29 -0
  182. package/dist/agent/tools/gemini-tools.d.ts.map +1 -0
  183. package/dist/agent/tools/gemini-tools.js +112 -0
  184. package/dist/agent/tools/gemini-tools.js.map +1 -0
  185. package/dist/agent/tools/index.d.ts +13 -0
  186. package/dist/agent/tools/index.d.ts.map +1 -0
  187. package/dist/agent/tools/index.js +13 -0
  188. package/dist/agent/tools/index.js.map +1 -0
  189. package/dist/agent/tools/openai-tools.d.ts +18 -0
  190. package/dist/agent/tools/openai-tools.d.ts.map +1 -0
  191. package/dist/agent/tools/openai-tools.js +208 -0
  192. package/dist/agent/tools/openai-tools.js.map +1 -0
  193. package/dist/agent/tools/profiles.d.ts +66 -0
  194. package/dist/agent/tools/profiles.d.ts.map +1 -0
  195. package/dist/agent/tools/profiles.js +121 -0
  196. package/dist/agent/tools/profiles.js.map +1 -0
  197. package/dist/agent/tools/registry.d.ts +16 -0
  198. package/dist/agent/tools/registry.d.ts.map +1 -0
  199. package/dist/agent/tools/registry.js +55 -0
  200. package/dist/agent/tools/registry.js.map +1 -0
  201. package/dist/agent/tools/shared.d.ts +10 -0
  202. package/dist/agent/tools/shared.d.ts.map +1 -0
  203. package/dist/agent/tools/shared.js +207 -0
  204. package/dist/agent/tools/shared.js.map +1 -0
  205. package/dist/agent/tools/types.d.ts +55 -0
  206. package/dist/agent/tools/types.d.ts.map +1 -0
  207. package/dist/agent/tools/types.js +14 -0
  208. package/dist/agent/tools/types.js.map +1 -0
  209. package/dist/agent/truncation.d.ts +29 -0
  210. package/dist/agent/truncation.d.ts.map +1 -0
  211. package/dist/agent/truncation.js +76 -0
  212. package/dist/agent/truncation.js.map +1 -0
  213. package/dist/agent/types.d.ts +91 -0
  214. package/dist/agent/types.d.ts.map +1 -0
  215. package/dist/agent/types.js +45 -0
  216. package/dist/agent/types.js.map +1 -0
  217. package/dist/backend/__tests__/direct-backend.test.d.ts +14 -0
  218. package/dist/backend/__tests__/direct-backend.test.d.ts.map +1 -0
  219. package/dist/backend/__tests__/direct-backend.test.js +393 -0
  220. package/dist/backend/__tests__/direct-backend.test.js.map +1 -0
  221. package/dist/backend/__tests__/direct-bootstrap.test.d.ts +7 -0
  222. package/dist/backend/__tests__/direct-bootstrap.test.d.ts.map +1 -0
  223. package/dist/backend/__tests__/direct-bootstrap.test.js +177 -0
  224. package/dist/backend/__tests__/direct-bootstrap.test.js.map +1 -0
  225. package/dist/backend/__tests__/mock-backend.test.d.ts +7 -0
  226. package/dist/backend/__tests__/mock-backend.test.d.ts.map +1 -0
  227. package/dist/backend/__tests__/mock-backend.test.js +273 -0
  228. package/dist/backend/__tests__/mock-backend.test.js.map +1 -0
  229. package/dist/backend/__tests__/parity.test.d.ts +17 -0
  230. package/dist/backend/__tests__/parity.test.d.ts.map +1 -0
  231. package/dist/backend/__tests__/parity.test.js +411 -0
  232. package/dist/backend/__tests__/parity.test.js.map +1 -0
  233. package/dist/backend/direct-backend.d.ts +27 -0
  234. package/dist/backend/direct-backend.d.ts.map +1 -0
  235. package/dist/backend/direct-backend.js +76 -0
  236. package/dist/backend/direct-backend.js.map +1 -0
  237. package/dist/backend/direct-bootstrap.d.ts +29 -0
  238. package/dist/backend/direct-bootstrap.d.ts.map +1 -0
  239. package/dist/backend/direct-bootstrap.js +109 -0
  240. package/dist/backend/direct-bootstrap.js.map +1 -0
  241. package/dist/backend/index.d.ts +11 -0
  242. package/dist/backend/index.d.ts.map +1 -0
  243. package/dist/backend/index.js +8 -0
  244. package/dist/backend/index.js.map +1 -0
  245. package/dist/backend/mock-backend.d.ts +49 -0
  246. package/dist/backend/mock-backend.d.ts.map +1 -0
  247. package/dist/backend/mock-backend.js +87 -0
  248. package/dist/backend/mock-backend.js.map +1 -0
  249. package/dist/backend/types.d.ts +74 -0
  250. package/dist/backend/types.d.ts.map +1 -0
  251. package/dist/backend/types.js +12 -0
  252. package/dist/backend/types.js.map +1 -0
  253. package/dist/config.d.ts +196 -0
  254. package/dist/config.d.ts.map +1 -0
  255. package/dist/config.js +140 -0
  256. package/dist/config.js.map +1 -0
  257. package/dist/context/__tests__/auto-summarizer.test.d.ts +14 -0
  258. package/dist/context/__tests__/auto-summarizer.test.d.ts.map +1 -0
  259. package/dist/context/__tests__/auto-summarizer.test.js +189 -0
  260. package/dist/context/__tests__/auto-summarizer.test.js.map +1 -0
  261. package/dist/context/__tests__/context-cli-command.test.d.ts +7 -0
  262. package/dist/context/__tests__/context-cli-command.test.d.ts.map +1 -0
  263. package/dist/context/__tests__/context-cli-command.test.js +331 -0
  264. package/dist/context/__tests__/context-cli-command.test.js.map +1 -0
  265. package/dist/context/__tests__/pyramid-summary-integration.test.d.ts +2 -0
  266. package/dist/context/__tests__/pyramid-summary-integration.test.d.ts.map +1 -0
  267. package/dist/context/__tests__/pyramid-summary-integration.test.js +533 -0
  268. package/dist/context/__tests__/pyramid-summary-integration.test.js.map +1 -0
  269. package/dist/context/__tests__/summarizer.test.d.ts +2 -0
  270. package/dist/context/__tests__/summarizer.test.d.ts.map +1 -0
  271. package/dist/context/__tests__/summarizer.test.js +189 -0
  272. package/dist/context/__tests__/summarizer.test.js.map +1 -0
  273. package/dist/context/__tests__/summary-cache.test.d.ts +2 -0
  274. package/dist/context/__tests__/summary-cache.test.d.ts.map +1 -0
  275. package/dist/context/__tests__/summary-cache.test.js +214 -0
  276. package/dist/context/__tests__/summary-cache.test.js.map +1 -0
  277. package/dist/context/__tests__/summary-metrics.test.d.ts +2 -0
  278. package/dist/context/__tests__/summary-metrics.test.d.ts.map +1 -0
  279. package/dist/context/__tests__/summary-metrics.test.js +172 -0
  280. package/dist/context/__tests__/summary-metrics.test.js.map +1 -0
  281. package/dist/context/__tests__/summary-types.test.d.ts +2 -0
  282. package/dist/context/__tests__/summary-types.test.d.ts.map +1 -0
  283. package/dist/context/__tests__/summary-types.test.js +130 -0
  284. package/dist/context/__tests__/summary-types.test.js.map +1 -0
  285. package/dist/context/auto-summarizer.d.ts +120 -0
  286. package/dist/context/auto-summarizer.d.ts.map +1 -0
  287. package/dist/context/auto-summarizer.js +91 -0
  288. package/dist/context/auto-summarizer.js.map +1 -0
  289. package/dist/context/cli-command.d.ts +109 -0
  290. package/dist/context/cli-command.d.ts.map +1 -0
  291. package/dist/context/cli-command.js +382 -0
  292. package/dist/context/cli-command.js.map +1 -0
  293. package/dist/context/index.d.ts +8 -0
  294. package/dist/context/index.d.ts.map +1 -0
  295. package/dist/context/index.js +8 -0
  296. package/dist/context/index.js.map +1 -0
  297. package/dist/context/summarizer.d.ts +12 -0
  298. package/dist/context/summarizer.d.ts.map +1 -0
  299. package/dist/context/summarizer.js +105 -0
  300. package/dist/context/summarizer.js.map +1 -0
  301. package/dist/context/summary-cache.d.ts +41 -0
  302. package/dist/context/summary-cache.d.ts.map +1 -0
  303. package/dist/context/summary-cache.js +80 -0
  304. package/dist/context/summary-cache.js.map +1 -0
  305. package/dist/context/summary-engine.d.ts +46 -0
  306. package/dist/context/summary-engine.d.ts.map +1 -0
  307. package/dist/context/summary-engine.js +2 -0
  308. package/dist/context/summary-engine.js.map +1 -0
  309. package/dist/context/summary-metrics.d.ts +75 -0
  310. package/dist/context/summary-metrics.d.ts.map +1 -0
  311. package/dist/context/summary-metrics.js +160 -0
  312. package/dist/context/summary-metrics.js.map +1 -0
  313. package/dist/context/summary-types.d.ts +103 -0
  314. package/dist/context/summary-types.d.ts.map +1 -0
  315. package/dist/context/summary-types.js +39 -0
  316. package/dist/context/summary-types.js.map +1 -0
  317. package/dist/convergence/__tests__/budget.test.d.ts +6 -0
  318. package/dist/convergence/__tests__/budget.test.d.ts.map +1 -0
  319. package/dist/convergence/__tests__/budget.test.js +187 -0
  320. package/dist/convergence/__tests__/budget.test.js.map +1 -0
  321. package/dist/convergence/__tests__/controller.test.d.ts +9 -0
  322. package/dist/convergence/__tests__/controller.test.d.ts.map +1 -0
  323. package/dist/convergence/__tests__/controller.test.js +585 -0
  324. package/dist/convergence/__tests__/controller.test.js.map +1 -0
  325. package/dist/convergence/__tests__/dual-signal.test.d.ts +14 -0
  326. package/dist/convergence/__tests__/dual-signal.test.d.ts.map +1 -0
  327. package/dist/convergence/__tests__/dual-signal.test.js +123 -0
  328. package/dist/convergence/__tests__/dual-signal.test.js.map +1 -0
  329. package/dist/convergence/__tests__/epic46-integration.test.d.ts +15 -0
  330. package/dist/convergence/__tests__/epic46-integration.test.d.ts.map +1 -0
  331. package/dist/convergence/__tests__/epic46-integration.test.js +522 -0
  332. package/dist/convergence/__tests__/epic46-integration.test.js.map +1 -0
  333. package/dist/convergence/__tests__/plateau.test.d.ts +6 -0
  334. package/dist/convergence/__tests__/plateau.test.d.ts.map +1 -0
  335. package/dist/convergence/__tests__/plateau.test.js +163 -0
  336. package/dist/convergence/__tests__/plateau.test.js.map +1 -0
  337. package/dist/convergence/__tests__/remediation.test.d.ts +11 -0
  338. package/dist/convergence/__tests__/remediation.test.d.ts.map +1 -0
  339. package/dist/convergence/__tests__/remediation.test.js +209 -0
  340. package/dist/convergence/__tests__/remediation.test.js.map +1 -0
  341. package/dist/convergence/__tests__/scenario-primary.test.d.ts +13 -0
  342. package/dist/convergence/__tests__/scenario-primary.test.d.ts.map +1 -0
  343. package/dist/convergence/__tests__/scenario-primary.test.js +183 -0
  344. package/dist/convergence/__tests__/scenario-primary.test.js.map +1 -0
  345. package/dist/convergence/budget.d.ts +181 -0
  346. package/dist/convergence/budget.d.ts.map +1 -0
  347. package/dist/convergence/budget.js +218 -0
  348. package/dist/convergence/budget.js.map +1 -0
  349. package/dist/convergence/controller.d.ts +133 -0
  350. package/dist/convergence/controller.d.ts.map +1 -0
  351. package/dist/convergence/controller.js +102 -0
  352. package/dist/convergence/controller.js.map +1 -0
  353. package/dist/convergence/dual-signal.d.ts +73 -0
  354. package/dist/convergence/dual-signal.d.ts.map +1 -0
  355. package/dist/convergence/dual-signal.js +78 -0
  356. package/dist/convergence/dual-signal.js.map +1 -0
  357. package/dist/convergence/index.d.ts +17 -0
  358. package/dist/convergence/index.d.ts.map +1 -0
  359. package/dist/convergence/index.js +11 -0
  360. package/dist/convergence/index.js.map +1 -0
  361. package/dist/convergence/plateau.d.ts +99 -0
  362. package/dist/convergence/plateau.d.ts.map +1 -0
  363. package/dist/convergence/plateau.js +83 -0
  364. package/dist/convergence/plateau.js.map +1 -0
  365. package/dist/convergence/remediation.d.ts +105 -0
  366. package/dist/convergence/remediation.d.ts.map +1 -0
  367. package/dist/convergence/remediation.js +117 -0
  368. package/dist/convergence/remediation.js.map +1 -0
  369. package/dist/events.d.ts +331 -0
  370. package/dist/events.d.ts.map +1 -0
  371. package/dist/events.js +13 -0
  372. package/dist/events.js.map +1 -0
  373. package/dist/factory-command.d.ts +40 -0
  374. package/dist/factory-command.d.ts.map +1 -0
  375. package/dist/factory-command.js +626 -0
  376. package/dist/factory-command.js.map +1 -0
  377. package/dist/factory-command.test.d.ts +8 -0
  378. package/dist/factory-command.test.d.ts.map +1 -0
  379. package/dist/factory-command.test.js +304 -0
  380. package/dist/factory-command.test.js.map +1 -0
  381. package/dist/graph/__tests__/attractor-compliance.test.d.ts +10 -0
  382. package/dist/graph/__tests__/attractor-compliance.test.d.ts.map +1 -0
  383. package/dist/graph/__tests__/attractor-compliance.test.js +766 -0
  384. package/dist/graph/__tests__/attractor-compliance.test.js.map +1 -0
  385. package/dist/graph/__tests__/checkpoint.test.d.ts +8 -0
  386. package/dist/graph/__tests__/checkpoint.test.d.ts.map +1 -0
  387. package/dist/graph/__tests__/checkpoint.test.js +329 -0
  388. package/dist/graph/__tests__/checkpoint.test.js.map +1 -0
  389. package/dist/graph/__tests__/condition-parser.test.d.ts +14 -0
  390. package/dist/graph/__tests__/condition-parser.test.d.ts.map +1 -0
  391. package/dist/graph/__tests__/condition-parser.test.js +406 -0
  392. package/dist/graph/__tests__/condition-parser.test.js.map +1 -0
  393. package/dist/graph/__tests__/context.test.d.ts +14 -0
  394. package/dist/graph/__tests__/context.test.d.ts.map +1 -0
  395. package/dist/graph/__tests__/context.test.js +276 -0
  396. package/dist/graph/__tests__/context.test.js.map +1 -0
  397. package/dist/graph/__tests__/edge-selector-events.test.d.ts +11 -0
  398. package/dist/graph/__tests__/edge-selector-events.test.d.ts.map +1 -0
  399. package/dist/graph/__tests__/edge-selector-events.test.js +184 -0
  400. package/dist/graph/__tests__/edge-selector-events.test.js.map +1 -0
  401. package/dist/graph/__tests__/edge-selector.test.d.ts +6 -0
  402. package/dist/graph/__tests__/edge-selector.test.d.ts.map +1 -0
  403. package/dist/graph/__tests__/edge-selector.test.js +452 -0
  404. package/dist/graph/__tests__/edge-selector.test.js.map +1 -0
  405. package/dist/graph/__tests__/executor-convergence.test.d.ts +12 -0
  406. package/dist/graph/__tests__/executor-convergence.test.d.ts.map +1 -0
  407. package/dist/graph/__tests__/executor-convergence.test.js +432 -0
  408. package/dist/graph/__tests__/executor-convergence.test.js.map +1 -0
  409. package/dist/graph/__tests__/executor-fidelity.test.d.ts +13 -0
  410. package/dist/graph/__tests__/executor-fidelity.test.d.ts.map +1 -0
  411. package/dist/graph/__tests__/executor-fidelity.test.js +335 -0
  412. package/dist/graph/__tests__/executor-fidelity.test.js.map +1 -0
  413. package/dist/graph/__tests__/executor.test.d.ts +14 -0
  414. package/dist/graph/__tests__/executor.test.d.ts.map +1 -0
  415. package/dist/graph/__tests__/executor.test.js +901 -0
  416. package/dist/graph/__tests__/executor.test.js.map +1 -0
  417. package/dist/graph/__tests__/fidelity.test.d.ts +8 -0
  418. package/dist/graph/__tests__/fidelity.test.d.ts.map +1 -0
  419. package/dist/graph/__tests__/fidelity.test.js +135 -0
  420. package/dist/graph/__tests__/fidelity.test.js.map +1 -0
  421. package/dist/graph/__tests__/llm-evaluator.test.d.ts +7 -0
  422. package/dist/graph/__tests__/llm-evaluator.test.d.ts.map +1 -0
  423. package/dist/graph/__tests__/llm-evaluator.test.js +106 -0
  424. package/dist/graph/__tests__/llm-evaluator.test.js.map +1 -0
  425. package/dist/graph/__tests__/parser-chaining.test.d.ts +13 -0
  426. package/dist/graph/__tests__/parser-chaining.test.d.ts.map +1 -0
  427. package/dist/graph/__tests__/parser-chaining.test.js +215 -0
  428. package/dist/graph/__tests__/parser-chaining.test.js.map +1 -0
  429. package/dist/graph/__tests__/parser.test.d.ts +22 -0
  430. package/dist/graph/__tests__/parser.test.d.ts.map +1 -0
  431. package/dist/graph/__tests__/parser.test.js +452 -0
  432. package/dist/graph/__tests__/parser.test.js.map +1 -0
  433. package/dist/graph/__tests__/run-state.test.d.ts +13 -0
  434. package/dist/graph/__tests__/run-state.test.d.ts.map +1 -0
  435. package/dist/graph/__tests__/run-state.test.js +189 -0
  436. package/dist/graph/__tests__/run-state.test.js.map +1 -0
  437. package/dist/graph/__tests__/transformer.test.d.ts +16 -0
  438. package/dist/graph/__tests__/transformer.test.d.ts.map +1 -0
  439. package/dist/graph/__tests__/transformer.test.js +350 -0
  440. package/dist/graph/__tests__/transformer.test.js.map +1 -0
  441. package/dist/graph/__tests__/validator-errors.test.d.ts +15 -0
  442. package/dist/graph/__tests__/validator-errors.test.d.ts.map +1 -0
  443. package/dist/graph/__tests__/validator-errors.test.js +572 -0
  444. package/dist/graph/__tests__/validator-errors.test.js.map +1 -0
  445. package/dist/graph/__tests__/validator-warnings.test.d.ts +15 -0
  446. package/dist/graph/__tests__/validator-warnings.test.d.ts.map +1 -0
  447. package/dist/graph/__tests__/validator-warnings.test.js +363 -0
  448. package/dist/graph/__tests__/validator-warnings.test.js.map +1 -0
  449. package/dist/graph/checkpoint.d.ts +61 -0
  450. package/dist/graph/checkpoint.d.ts.map +1 -0
  451. package/dist/graph/checkpoint.js +80 -0
  452. package/dist/graph/checkpoint.js.map +1 -0
  453. package/dist/graph/condition-parser.d.ts +55 -0
  454. package/dist/graph/condition-parser.d.ts.map +1 -0
  455. package/dist/graph/condition-parser.js +213 -0
  456. package/dist/graph/condition-parser.js.map +1 -0
  457. package/dist/graph/context.d.ts +53 -0
  458. package/dist/graph/context.d.ts.map +1 -0
  459. package/dist/graph/context.js +90 -0
  460. package/dist/graph/context.js.map +1 -0
  461. package/dist/graph/edge-selector.d.ts +74 -0
  462. package/dist/graph/edge-selector.d.ts.map +1 -0
  463. package/dist/graph/edge-selector.js +178 -0
  464. package/dist/graph/edge-selector.js.map +1 -0
  465. package/dist/graph/executor.d.ts +133 -0
  466. package/dist/graph/executor.d.ts.map +1 -0
  467. package/dist/graph/executor.js +787 -0
  468. package/dist/graph/executor.js.map +1 -0
  469. package/dist/graph/fidelity.d.ts +27 -0
  470. package/dist/graph/fidelity.d.ts.map +1 -0
  471. package/dist/graph/fidelity.js +38 -0
  472. package/dist/graph/fidelity.js.map +1 -0
  473. package/dist/graph/index.d.ts +13 -0
  474. package/dist/graph/index.d.ts.map +1 -0
  475. package/dist/graph/index.js +9 -0
  476. package/dist/graph/index.js.map +1 -0
  477. package/dist/graph/llm-evaluator.d.ts +61 -0
  478. package/dist/graph/llm-evaluator.d.ts.map +1 -0
  479. package/dist/graph/llm-evaluator.js +106 -0
  480. package/dist/graph/llm-evaluator.js.map +1 -0
  481. package/dist/graph/parser.d.ts +28 -0
  482. package/dist/graph/parser.d.ts.map +1 -0
  483. package/dist/graph/parser.js +370 -0
  484. package/dist/graph/parser.js.map +1 -0
  485. package/dist/graph/rules/error-rules.d.ts +19 -0
  486. package/dist/graph/rules/error-rules.d.ts.map +1 -0
  487. package/dist/graph/rules/error-rules.js +264 -0
  488. package/dist/graph/rules/error-rules.js.map +1 -0
  489. package/dist/graph/rules/warning-rules.d.ts +7 -0
  490. package/dist/graph/rules/warning-rules.d.ts.map +1 -0
  491. package/dist/graph/rules/warning-rules.js +165 -0
  492. package/dist/graph/rules/warning-rules.js.map +1 -0
  493. package/dist/graph/run-state.d.ts +62 -0
  494. package/dist/graph/run-state.d.ts.map +1 -0
  495. package/dist/graph/run-state.js +79 -0
  496. package/dist/graph/run-state.js.map +1 -0
  497. package/dist/graph/transformer.d.ts +31 -0
  498. package/dist/graph/transformer.d.ts.map +1 -0
  499. package/dist/graph/transformer.js +64 -0
  500. package/dist/graph/transformer.js.map +1 -0
  501. package/dist/graph/types.d.ts +320 -0
  502. package/dist/graph/types.d.ts.map +1 -0
  503. package/dist/graph/types.js +6 -0
  504. package/dist/graph/types.js.map +1 -0
  505. package/dist/graph/validator.d.ts +16 -0
  506. package/dist/graph/validator.d.ts.map +1 -0
  507. package/dist/graph/validator.js +40 -0
  508. package/dist/graph/validator.js.map +1 -0
  509. package/dist/handlers/__tests__/codergen-handler.test.d.ts +14 -0
  510. package/dist/handlers/__tests__/codergen-handler.test.d.ts.map +1 -0
  511. package/dist/handlers/__tests__/codergen-handler.test.js +442 -0
  512. package/dist/handlers/__tests__/codergen-handler.test.js.map +1 -0
  513. package/dist/handlers/__tests__/fan-in.test.d.ts +14 -0
  514. package/dist/handlers/__tests__/fan-in.test.d.ts.map +1 -0
  515. package/dist/handlers/__tests__/fan-in.test.js +399 -0
  516. package/dist/handlers/__tests__/fan-in.test.js.map +1 -0
  517. package/dist/handlers/__tests__/join-policy.test.d.ts +9 -0
  518. package/dist/handlers/__tests__/join-policy.test.d.ts.map +1 -0
  519. package/dist/handlers/__tests__/join-policy.test.js +201 -0
  520. package/dist/handlers/__tests__/join-policy.test.js.map +1 -0
  521. package/dist/handlers/__tests__/manager-loop.test.d.ts +14 -0
  522. package/dist/handlers/__tests__/manager-loop.test.d.ts.map +1 -0
  523. package/dist/handlers/__tests__/manager-loop.test.js +322 -0
  524. package/dist/handlers/__tests__/manager-loop.test.js.map +1 -0
  525. package/dist/handlers/__tests__/parallel-events.test.d.ts +12 -0
  526. package/dist/handlers/__tests__/parallel-events.test.d.ts.map +1 -0
  527. package/dist/handlers/__tests__/parallel-events.test.js +252 -0
  528. package/dist/handlers/__tests__/parallel-events.test.js.map +1 -0
  529. package/dist/handlers/__tests__/parallel-handler.test.d.ts +14 -0
  530. package/dist/handlers/__tests__/parallel-handler.test.d.ts.map +1 -0
  531. package/dist/handlers/__tests__/parallel-handler.test.js +337 -0
  532. package/dist/handlers/__tests__/parallel-handler.test.js.map +1 -0
  533. package/dist/handlers/__tests__/parallel-join.test.d.ts +9 -0
  534. package/dist/handlers/__tests__/parallel-join.test.d.ts.map +1 -0
  535. package/dist/handlers/__tests__/parallel-join.test.js +267 -0
  536. package/dist/handlers/__tests__/parallel-join.test.js.map +1 -0
  537. package/dist/handlers/__tests__/registry.test.d.ts +14 -0
  538. package/dist/handlers/__tests__/registry.test.d.ts.map +1 -0
  539. package/dist/handlers/__tests__/registry.test.js +315 -0
  540. package/dist/handlers/__tests__/registry.test.js.map +1 -0
  541. package/dist/handlers/__tests__/subgraph-events.test.d.ts +10 -0
  542. package/dist/handlers/__tests__/subgraph-events.test.d.ts.map +1 -0
  543. package/dist/handlers/__tests__/subgraph-events.test.js +189 -0
  544. package/dist/handlers/__tests__/subgraph-events.test.js.map +1 -0
  545. package/dist/handlers/__tests__/subgraph-inheritance.test.d.ts +14 -0
  546. package/dist/handlers/__tests__/subgraph-inheritance.test.d.ts.map +1 -0
  547. package/dist/handlers/__tests__/subgraph-inheritance.test.js +267 -0
  548. package/dist/handlers/__tests__/subgraph-inheritance.test.js.map +1 -0
  549. package/dist/handlers/__tests__/subgraph.test.d.ts +14 -0
  550. package/dist/handlers/__tests__/subgraph.test.d.ts.map +1 -0
  551. package/dist/handlers/__tests__/subgraph.test.js +369 -0
  552. package/dist/handlers/__tests__/subgraph.test.js.map +1 -0
  553. package/dist/handlers/__tests__/tool-handler.test.d.ts +11 -0
  554. package/dist/handlers/__tests__/tool-handler.test.d.ts.map +1 -0
  555. package/dist/handlers/__tests__/tool-handler.test.js +184 -0
  556. package/dist/handlers/__tests__/tool-handler.test.js.map +1 -0
  557. package/dist/handlers/__tests__/tool-scenario.test.d.ts +12 -0
  558. package/dist/handlers/__tests__/tool-scenario.test.d.ts.map +1 -0
  559. package/dist/handlers/__tests__/tool-scenario.test.js +222 -0
  560. package/dist/handlers/__tests__/tool-scenario.test.js.map +1 -0
  561. package/dist/handlers/__tests__/wait-human-handler.test.d.ts +11 -0
  562. package/dist/handlers/__tests__/wait-human-handler.test.d.ts.map +1 -0
  563. package/dist/handlers/__tests__/wait-human-handler.test.js +251 -0
  564. package/dist/handlers/__tests__/wait-human-handler.test.js.map +1 -0
  565. package/dist/handlers/codergen-handler.d.ts +83 -0
  566. package/dist/handlers/codergen-handler.d.ts.map +1 -0
  567. package/dist/handlers/codergen-handler.js +152 -0
  568. package/dist/handlers/codergen-handler.js.map +1 -0
  569. package/dist/handlers/conditional.d.ts +15 -0
  570. package/dist/handlers/conditional.d.ts.map +1 -0
  571. package/dist/handlers/conditional.js +16 -0
  572. package/dist/handlers/conditional.js.map +1 -0
  573. package/dist/handlers/exit.d.ts +10 -0
  574. package/dist/handlers/exit.d.ts.map +1 -0
  575. package/dist/handlers/exit.js +11 -0
  576. package/dist/handlers/exit.js.map +1 -0
  577. package/dist/handlers/fan-in.d.ts +74 -0
  578. package/dist/handlers/fan-in.d.ts.map +1 -0
  579. package/dist/handlers/fan-in.js +191 -0
  580. package/dist/handlers/fan-in.js.map +1 -0
  581. package/dist/handlers/index.d.ts +29 -0
  582. package/dist/handlers/index.d.ts.map +1 -0
  583. package/dist/handlers/index.js +22 -0
  584. package/dist/handlers/index.js.map +1 -0
  585. package/dist/handlers/join-policy.d.ts +117 -0
  586. package/dist/handlers/join-policy.d.ts.map +1 -0
  587. package/dist/handlers/join-policy.js +129 -0
  588. package/dist/handlers/join-policy.js.map +1 -0
  589. package/dist/handlers/manager-loop.d.ts +54 -0
  590. package/dist/handlers/manager-loop.d.ts.map +1 -0
  591. package/dist/handlers/manager-loop.js +177 -0
  592. package/dist/handlers/manager-loop.js.map +1 -0
  593. package/dist/handlers/parallel.d.ts +31 -0
  594. package/dist/handlers/parallel.d.ts.map +1 -0
  595. package/dist/handlers/parallel.js +362 -0
  596. package/dist/handlers/parallel.js.map +1 -0
  597. package/dist/handlers/registry.d.ts +75 -0
  598. package/dist/handlers/registry.d.ts.map +1 -0
  599. package/dist/handlers/registry.js +132 -0
  600. package/dist/handlers/registry.js.map +1 -0
  601. package/dist/handlers/start.d.ts +10 -0
  602. package/dist/handlers/start.d.ts.map +1 -0
  603. package/dist/handlers/start.js +11 -0
  604. package/dist/handlers/start.js.map +1 -0
  605. package/dist/handlers/subgraph.d.ts +46 -0
  606. package/dist/handlers/subgraph.d.ts.map +1 -0
  607. package/dist/handlers/subgraph.js +178 -0
  608. package/dist/handlers/subgraph.js.map +1 -0
  609. package/dist/handlers/tool.d.ts +36 -0
  610. package/dist/handlers/tool.d.ts.map +1 -0
  611. package/dist/handlers/tool.js +99 -0
  612. package/dist/handlers/tool.js.map +1 -0
  613. package/dist/handlers/types.d.ts +98 -0
  614. package/dist/handlers/types.d.ts.map +1 -0
  615. package/dist/handlers/types.js +6 -0
  616. package/dist/handlers/types.js.map +1 -0
  617. package/dist/handlers/wait-human.d.ts +65 -0
  618. package/dist/handlers/wait-human.d.ts.map +1 -0
  619. package/dist/handlers/wait-human.js +124 -0
  620. package/dist/handlers/wait-human.js.map +1 -0
  621. package/dist/index.d.ts +24 -0
  622. package/dist/index.d.ts.map +1 -0
  623. package/dist/index.js +33 -0
  624. package/dist/index.js.map +1 -0
  625. package/dist/llm/__tests__/client.test.d.ts +2 -0
  626. package/dist/llm/__tests__/client.test.d.ts.map +1 -0
  627. package/dist/llm/__tests__/client.test.js +198 -0
  628. package/dist/llm/__tests__/client.test.js.map +1 -0
  629. package/dist/llm/__tests__/types.test.d.ts +2 -0
  630. package/dist/llm/__tests__/types.test.d.ts.map +1 -0
  631. package/dist/llm/__tests__/types.test.js +289 -0
  632. package/dist/llm/__tests__/types.test.js.map +1 -0
  633. package/dist/llm/client.d.ts +19 -0
  634. package/dist/llm/client.d.ts.map +1 -0
  635. package/dist/llm/client.js +50 -0
  636. package/dist/llm/client.js.map +1 -0
  637. package/dist/llm/index.d.ts +6 -0
  638. package/dist/llm/index.d.ts.map +1 -0
  639. package/dist/llm/index.js +6 -0
  640. package/dist/llm/index.js.map +1 -0
  641. package/dist/llm/middleware/__tests__/cost-tracking.test.d.ts +2 -0
  642. package/dist/llm/middleware/__tests__/cost-tracking.test.d.ts.map +1 -0
  643. package/dist/llm/middleware/__tests__/cost-tracking.test.js +73 -0
  644. package/dist/llm/middleware/__tests__/cost-tracking.test.js.map +1 -0
  645. package/dist/llm/middleware/__tests__/logging.test.d.ts +2 -0
  646. package/dist/llm/middleware/__tests__/logging.test.d.ts.map +1 -0
  647. package/dist/llm/middleware/__tests__/logging.test.js +127 -0
  648. package/dist/llm/middleware/__tests__/logging.test.js.map +1 -0
  649. package/dist/llm/middleware/__tests__/retry.test.d.ts +2 -0
  650. package/dist/llm/middleware/__tests__/retry.test.d.ts.map +1 -0
  651. package/dist/llm/middleware/__tests__/retry.test.js +126 -0
  652. package/dist/llm/middleware/__tests__/retry.test.js.map +1 -0
  653. package/dist/llm/middleware/cost-tracking.d.ts +8 -0
  654. package/dist/llm/middleware/cost-tracking.d.ts.map +1 -0
  655. package/dist/llm/middleware/cost-tracking.js +34 -0
  656. package/dist/llm/middleware/cost-tracking.js.map +1 -0
  657. package/dist/llm/middleware/index.d.ts +5 -0
  658. package/dist/llm/middleware/index.d.ts.map +1 -0
  659. package/dist/llm/middleware/index.js +6 -0
  660. package/dist/llm/middleware/index.js.map +1 -0
  661. package/dist/llm/middleware/logging.d.ts +6 -0
  662. package/dist/llm/middleware/logging.d.ts.map +1 -0
  663. package/dist/llm/middleware/logging.js +54 -0
  664. package/dist/llm/middleware/logging.js.map +1 -0
  665. package/dist/llm/middleware/retry.d.ts +14 -0
  666. package/dist/llm/middleware/retry.d.ts.map +1 -0
  667. package/dist/llm/middleware/retry.js +40 -0
  668. package/dist/llm/middleware/retry.js.map +1 -0
  669. package/dist/llm/middleware/types.d.ts +23 -0
  670. package/dist/llm/middleware/types.d.ts.map +1 -0
  671. package/dist/llm/middleware/types.js +24 -0
  672. package/dist/llm/middleware/types.js.map +1 -0
  673. package/dist/llm/model-registry.d.ts +14 -0
  674. package/dist/llm/model-registry.d.ts.map +1 -0
  675. package/dist/llm/model-registry.js +32 -0
  676. package/dist/llm/model-registry.js.map +1 -0
  677. package/dist/llm/providers/__tests__/anthropic.test.d.ts +2 -0
  678. package/dist/llm/providers/__tests__/anthropic.test.d.ts.map +1 -0
  679. package/dist/llm/providers/__tests__/anthropic.test.js +412 -0
  680. package/dist/llm/providers/__tests__/anthropic.test.js.map +1 -0
  681. package/dist/llm/providers/__tests__/gemini.test.d.ts +2 -0
  682. package/dist/llm/providers/__tests__/gemini.test.d.ts.map +1 -0
  683. package/dist/llm/providers/__tests__/gemini.test.js +591 -0
  684. package/dist/llm/providers/__tests__/gemini.test.js.map +1 -0
  685. package/dist/llm/providers/__tests__/openai.test.d.ts +2 -0
  686. package/dist/llm/providers/__tests__/openai.test.d.ts.map +1 -0
  687. package/dist/llm/providers/__tests__/openai.test.js +546 -0
  688. package/dist/llm/providers/__tests__/openai.test.js.map +1 -0
  689. package/dist/llm/providers/anthropic.d.ts +25 -0
  690. package/dist/llm/providers/anthropic.d.ts.map +1 -0
  691. package/dist/llm/providers/anthropic.js +315 -0
  692. package/dist/llm/providers/anthropic.js.map +1 -0
  693. package/dist/llm/providers/gemini.d.ts +28 -0
  694. package/dist/llm/providers/gemini.d.ts.map +1 -0
  695. package/dist/llm/providers/gemini.js +429 -0
  696. package/dist/llm/providers/gemini.js.map +1 -0
  697. package/dist/llm/providers/index.d.ts +7 -0
  698. package/dist/llm/providers/index.d.ts.map +1 -0
  699. package/dist/llm/providers/index.js +4 -0
  700. package/dist/llm/providers/index.js.map +1 -0
  701. package/dist/llm/providers/openai.d.ts +28 -0
  702. package/dist/llm/providers/openai.d.ts.map +1 -0
  703. package/dist/llm/providers/openai.js +426 -0
  704. package/dist/llm/providers/openai.js.map +1 -0
  705. package/dist/llm/types.d.ts +127 -0
  706. package/dist/llm/types.d.ts.map +1 -0
  707. package/dist/llm/types.js +21 -0
  708. package/dist/llm/types.js.map +1 -0
  709. package/dist/persistence/__tests__/factory-queries.test.d.ts +9 -0
  710. package/dist/persistence/__tests__/factory-queries.test.d.ts.map +1 -0
  711. package/dist/persistence/__tests__/factory-queries.test.js +372 -0
  712. package/dist/persistence/__tests__/factory-queries.test.js.map +1 -0
  713. package/dist/persistence/__tests__/factory-schema.test.d.ts +6 -0
  714. package/dist/persistence/__tests__/factory-schema.test.d.ts.map +1 -0
  715. package/dist/persistence/__tests__/factory-schema.test.js +105 -0
  716. package/dist/persistence/__tests__/factory-schema.test.js.map +1 -0
  717. package/dist/persistence/factory-queries.d.ts +204 -0
  718. package/dist/persistence/factory-queries.d.ts.map +1 -0
  719. package/dist/persistence/factory-queries.js +186 -0
  720. package/dist/persistence/factory-queries.js.map +1 -0
  721. package/dist/persistence/factory-schema.d.ts +16 -0
  722. package/dist/persistence/factory-schema.d.ts.map +1 -0
  723. package/dist/persistence/factory-schema.js +89 -0
  724. package/dist/persistence/factory-schema.js.map +1 -0
  725. package/dist/scenarios/__tests__/cli-command-list.test.d.ts +7 -0
  726. package/dist/scenarios/__tests__/cli-command-list.test.d.ts.map +1 -0
  727. package/dist/scenarios/__tests__/cli-command-list.test.js +237 -0
  728. package/dist/scenarios/__tests__/cli-command-list.test.js.map +1 -0
  729. package/dist/scenarios/__tests__/cli-command.test.d.ts +11 -0
  730. package/dist/scenarios/__tests__/cli-command.test.d.ts.map +1 -0
  731. package/dist/scenarios/__tests__/cli-command.test.js +275 -0
  732. package/dist/scenarios/__tests__/cli-command.test.js.map +1 -0
  733. package/dist/scenarios/__tests__/integrity-pipeline.test.d.ts +15 -0
  734. package/dist/scenarios/__tests__/integrity-pipeline.test.d.ts.map +1 -0
  735. package/dist/scenarios/__tests__/integrity-pipeline.test.js +318 -0
  736. package/dist/scenarios/__tests__/integrity-pipeline.test.js.map +1 -0
  737. package/dist/scenarios/__tests__/runner-twins.test.d.ts +13 -0
  738. package/dist/scenarios/__tests__/runner-twins.test.d.ts.map +1 -0
  739. package/dist/scenarios/__tests__/runner-twins.test.js +205 -0
  740. package/dist/scenarios/__tests__/runner-twins.test.js.map +1 -0
  741. package/dist/scenarios/__tests__/scorer.test.d.ts +11 -0
  742. package/dist/scenarios/__tests__/scorer.test.d.ts.map +1 -0
  743. package/dist/scenarios/__tests__/scorer.test.js +225 -0
  744. package/dist/scenarios/__tests__/scorer.test.js.map +1 -0
  745. package/dist/scenarios/__tests__/scoring-integration.test.d.ts +8 -0
  746. package/dist/scenarios/__tests__/scoring-integration.test.d.ts.map +1 -0
  747. package/dist/scenarios/__tests__/scoring-integration.test.js +178 -0
  748. package/dist/scenarios/__tests__/scoring-integration.test.js.map +1 -0
  749. package/dist/scenarios/__tests__/store.test.d.ts +5 -0
  750. package/dist/scenarios/__tests__/store.test.d.ts.map +1 -0
  751. package/dist/scenarios/__tests__/store.test.js +169 -0
  752. package/dist/scenarios/__tests__/store.test.js.map +1 -0
  753. package/dist/scenarios/cli-command.d.ts +20 -0
  754. package/dist/scenarios/cli-command.d.ts.map +1 -0
  755. package/dist/scenarios/cli-command.js +66 -0
  756. package/dist/scenarios/cli-command.js.map +1 -0
  757. package/dist/scenarios/index.d.ts +11 -0
  758. package/dist/scenarios/index.d.ts.map +1 -0
  759. package/dist/scenarios/index.js +11 -0
  760. package/dist/scenarios/index.js.map +1 -0
  761. package/dist/scenarios/runner.d.ts +64 -0
  762. package/dist/scenarios/runner.d.ts.map +1 -0
  763. package/dist/scenarios/runner.js +205 -0
  764. package/dist/scenarios/runner.js.map +1 -0
  765. package/dist/scenarios/scorer.d.ts +69 -0
  766. package/dist/scenarios/scorer.d.ts.map +1 -0
  767. package/dist/scenarios/scorer.js +66 -0
  768. package/dist/scenarios/scorer.js.map +1 -0
  769. package/dist/scenarios/store.d.ts +33 -0
  770. package/dist/scenarios/store.d.ts.map +1 -0
  771. package/dist/scenarios/store.js +92 -0
  772. package/dist/scenarios/store.js.map +1 -0
  773. package/dist/scenarios/types.d.ts +40 -0
  774. package/dist/scenarios/types.d.ts.map +1 -0
  775. package/dist/scenarios/types.js +5 -0
  776. package/dist/scenarios/types.js.map +1 -0
  777. package/dist/stylesheet/__tests__/stylesheet.test.d.ts +17 -0
  778. package/dist/stylesheet/__tests__/stylesheet.test.d.ts.map +1 -0
  779. package/dist/stylesheet/__tests__/stylesheet.test.js +368 -0
  780. package/dist/stylesheet/__tests__/stylesheet.test.js.map +1 -0
  781. package/dist/stylesheet/parser.d.ts +44 -0
  782. package/dist/stylesheet/parser.d.ts.map +1 -0
  783. package/dist/stylesheet/parser.js +190 -0
  784. package/dist/stylesheet/parser.js.map +1 -0
  785. package/dist/stylesheet/resolver.d.ts +38 -0
  786. package/dist/stylesheet/resolver.d.ts.map +1 -0
  787. package/dist/stylesheet/resolver.js +96 -0
  788. package/dist/stylesheet/resolver.js.map +1 -0
  789. package/dist/templates/__tests__/templates.test.d.ts +7 -0
  790. package/dist/templates/__tests__/templates.test.d.ts.map +1 -0
  791. package/dist/templates/__tests__/templates.test.js +92 -0
  792. package/dist/templates/__tests__/templates.test.js.map +1 -0
  793. package/dist/templates/index.d.ts +38 -0
  794. package/dist/templates/index.d.ts.map +1 -0
  795. package/dist/templates/index.js +153 -0
  796. package/dist/templates/index.js.map +1 -0
  797. package/dist/twins/__tests__/docker-compose.test.d.ts +13 -0
  798. package/dist/twins/__tests__/docker-compose.test.d.ts.map +1 -0
  799. package/dist/twins/__tests__/docker-compose.test.js +247 -0
  800. package/dist/twins/__tests__/docker-compose.test.js.map +1 -0
  801. package/dist/twins/__tests__/health-monitor.test.d.ts +19 -0
  802. package/dist/twins/__tests__/health-monitor.test.d.ts.map +1 -0
  803. package/dist/twins/__tests__/health-monitor.test.js +301 -0
  804. package/dist/twins/__tests__/health-monitor.test.js.map +1 -0
  805. package/dist/twins/__tests__/integration/e2e.test.d.ts +18 -0
  806. package/dist/twins/__tests__/integration/e2e.test.d.ts.map +1 -0
  807. package/dist/twins/__tests__/integration/e2e.test.js +146 -0
  808. package/dist/twins/__tests__/integration/e2e.test.js.map +1 -0
  809. package/dist/twins/__tests__/integration/health-monitor-integration.test.d.ts +16 -0
  810. package/dist/twins/__tests__/integration/health-monitor-integration.test.d.ts.map +1 -0
  811. package/dist/twins/__tests__/integration/health-monitor-integration.test.js +183 -0
  812. package/dist/twins/__tests__/integration/health-monitor-integration.test.js.map +1 -0
  813. package/dist/twins/__tests__/integration/helpers.d.ts +32 -0
  814. package/dist/twins/__tests__/integration/helpers.d.ts.map +1 -0
  815. package/dist/twins/__tests__/integration/helpers.js +67 -0
  816. package/dist/twins/__tests__/integration/helpers.js.map +1 -0
  817. package/dist/twins/__tests__/integration/lifecycle.test.d.ts +14 -0
  818. package/dist/twins/__tests__/integration/lifecycle.test.d.ts.map +1 -0
  819. package/dist/twins/__tests__/integration/lifecycle.test.js +127 -0
  820. package/dist/twins/__tests__/integration/lifecycle.test.js.map +1 -0
  821. package/dist/twins/__tests__/integration/persistence-integration.test.d.ts +14 -0
  822. package/dist/twins/__tests__/integration/persistence-integration.test.d.ts.map +1 -0
  823. package/dist/twins/__tests__/integration/persistence-integration.test.js +132 -0
  824. package/dist/twins/__tests__/integration/persistence-integration.test.js.map +1 -0
  825. package/dist/twins/__tests__/persistence.test.d.ts +10 -0
  826. package/dist/twins/__tests__/persistence.test.d.ts.map +1 -0
  827. package/dist/twins/__tests__/persistence.test.js +300 -0
  828. package/dist/twins/__tests__/persistence.test.js.map +1 -0
  829. package/dist/twins/__tests__/registry.test.d.ts +7 -0
  830. package/dist/twins/__tests__/registry.test.d.ts.map +1 -0
  831. package/dist/twins/__tests__/registry.test.js +282 -0
  832. package/dist/twins/__tests__/registry.test.js.map +1 -0
  833. package/dist/twins/__tests__/run-state.test.d.ts +9 -0
  834. package/dist/twins/__tests__/run-state.test.d.ts.map +1 -0
  835. package/dist/twins/__tests__/run-state.test.js +112 -0
  836. package/dist/twins/__tests__/run-state.test.js.map +1 -0
  837. package/dist/twins/__tests__/templates-cli.test.d.ts +10 -0
  838. package/dist/twins/__tests__/templates-cli.test.d.ts.map +1 -0
  839. package/dist/twins/__tests__/templates-cli.test.js +187 -0
  840. package/dist/twins/__tests__/templates-cli.test.js.map +1 -0
  841. package/dist/twins/__tests__/templates.test.d.ts +7 -0
  842. package/dist/twins/__tests__/templates.test.d.ts.map +1 -0
  843. package/dist/twins/__tests__/templates.test.js +87 -0
  844. package/dist/twins/__tests__/templates.test.js.map +1 -0
  845. package/dist/twins/__tests__/twins-cli.test.d.ts +11 -0
  846. package/dist/twins/__tests__/twins-cli.test.d.ts.map +1 -0
  847. package/dist/twins/__tests__/twins-cli.test.js +365 -0
  848. package/dist/twins/__tests__/twins-cli.test.js.map +1 -0
  849. package/dist/twins/docker-compose.d.ts +48 -0
  850. package/dist/twins/docker-compose.d.ts.map +1 -0
  851. package/dist/twins/docker-compose.js +172 -0
  852. package/dist/twins/docker-compose.js.map +1 -0
  853. package/dist/twins/health-monitor.d.ts +36 -0
  854. package/dist/twins/health-monitor.d.ts.map +1 -0
  855. package/dist/twins/health-monitor.js +114 -0
  856. package/dist/twins/health-monitor.js.map +1 -0
  857. package/dist/twins/index.d.ts +22 -0
  858. package/dist/twins/index.d.ts.map +1 -0
  859. package/dist/twins/index.js +19 -0
  860. package/dist/twins/index.js.map +1 -0
  861. package/dist/twins/persistence.d.ts +100 -0
  862. package/dist/twins/persistence.d.ts.map +1 -0
  863. package/dist/twins/persistence.js +120 -0
  864. package/dist/twins/persistence.js.map +1 -0
  865. package/dist/twins/registry.d.ts +40 -0
  866. package/dist/twins/registry.d.ts.map +1 -0
  867. package/dist/twins/registry.js +175 -0
  868. package/dist/twins/registry.js.map +1 -0
  869. package/dist/twins/run-state.d.ts +47 -0
  870. package/dist/twins/run-state.d.ts.map +1 -0
  871. package/dist/twins/run-state.js +70 -0
  872. package/dist/twins/run-state.js.map +1 -0
  873. package/dist/twins/schema.d.ts +40 -0
  874. package/dist/twins/schema.d.ts.map +1 -0
  875. package/dist/twins/schema.js +46 -0
  876. package/dist/twins/schema.js.map +1 -0
  877. package/dist/twins/templates.d.ts +27 -0
  878. package/dist/twins/templates.d.ts.map +1 -0
  879. package/dist/twins/templates.js +63 -0
  880. package/dist/twins/templates.js.map +1 -0
  881. package/dist/twins/types.d.ts +55 -0
  882. package/dist/twins/types.d.ts.map +1 -0
  883. package/dist/twins/types.js +26 -0
  884. package/dist/twins/types.js.map +1 -0
  885. package/package.json +28 -0
@@ -0,0 +1,204 @@
1
+ /**
2
+ * Factory persistence query functions for graph runs, node results, and scenario results.
3
+ *
4
+ * All functions accept a DatabaseAdapter as first argument, follow the established
5
+ * pattern from @substrate-ai/core's metrics queries, and use portable SQL patterns
6
+ * (select-then-delete-then-insert in transactions) compatible with both
7
+ * InMemoryDatabaseAdapter and DoltDatabaseAdapter.
8
+ *
9
+ * Story 46-3: Score Persistence to Database.
10
+ */
11
+ import type { DatabaseAdapter } from '@substrate-ai/core';
12
+ export interface GraphRunInput {
13
+ /** Unique run identifier */
14
+ id: string;
15
+ /** Path to the DOT graph file */
16
+ graph_file: string;
17
+ /** Run goal/objective (optional) */
18
+ graph_goal?: string;
19
+ /** Run status: 'running' | 'completed' | 'failed' */
20
+ status: string;
21
+ /** ISO timestamp when the run started */
22
+ started_at: string;
23
+ /** ISO timestamp when the run completed (optional) */
24
+ completed_at?: string;
25
+ /** Total cost in USD (optional) */
26
+ total_cost_usd?: number;
27
+ /** Number of nodes in the graph */
28
+ node_count?: number;
29
+ /** Final outcome string (optional) */
30
+ final_outcome?: string;
31
+ /** Path to checkpoint file (optional) */
32
+ checkpoint_path?: string;
33
+ }
34
+ export interface GraphRunRow {
35
+ id: string;
36
+ graph_file: string;
37
+ /** Nullable in DB — undefined when column was NULL */
38
+ graph_goal: string | null;
39
+ status: string;
40
+ started_at: string;
41
+ /** Nullable in DB — null until the run completes */
42
+ completed_at: string | null;
43
+ total_cost_usd: number;
44
+ node_count: number;
45
+ /** Nullable in DB — null until the run terminates */
46
+ final_outcome: string | null;
47
+ /** Nullable in DB — null when no checkpoint was used */
48
+ checkpoint_path: string | null;
49
+ }
50
+ export interface GraphNodeResultInput {
51
+ /** Parent run identifier */
52
+ run_id: string;
53
+ /** Node identifier */
54
+ node_id: string;
55
+ /** Attempt number (1-indexed) */
56
+ attempt: number;
57
+ /** Node execution status */
58
+ status: string;
59
+ /** ISO timestamp when node started */
60
+ started_at: string;
61
+ /** ISO timestamp when node completed (optional) */
62
+ completed_at?: string;
63
+ /** Execution duration in milliseconds (optional) */
64
+ duration_ms?: number;
65
+ /** Cost in USD for this node (optional, default 0) */
66
+ cost_usd?: number;
67
+ /** Failure reason if status is FAIL (optional) */
68
+ failure_reason?: string;
69
+ /** JSON snapshot of context at completion (optional) */
70
+ context_snapshot?: string;
71
+ }
72
+ export interface GraphNodeResultRow {
73
+ /** Auto-generated row id */
74
+ id: number;
75
+ run_id: string;
76
+ node_id: string;
77
+ attempt: number;
78
+ status: string;
79
+ started_at: string;
80
+ /** Nullable in DB — null if node was interrupted */
81
+ completed_at: string | null;
82
+ /** Nullable in DB — null if not recorded */
83
+ duration_ms: number | null;
84
+ cost_usd: number;
85
+ /** Nullable in DB — null when node succeeded */
86
+ failure_reason: string | null;
87
+ /** Nullable in DB — null when not captured */
88
+ context_snapshot: string | null;
89
+ }
90
+ export interface ScenarioResultInput {
91
+ /** Parent run identifier */
92
+ run_id: string;
93
+ /** Node identifier that triggered the scenario run */
94
+ node_id: string;
95
+ /** Convergence iteration number */
96
+ iteration: number;
97
+ /** Total number of scenarios */
98
+ total_scenarios: number;
99
+ /** Number of scenarios that passed */
100
+ passed: number;
101
+ /** Number of scenarios that failed */
102
+ failed: number;
103
+ /** Satisfaction score (0.0 – 1.0) */
104
+ satisfaction_score: number;
105
+ /** Minimum threshold for passing */
106
+ threshold: number;
107
+ /** Whether satisfaction_score >= threshold */
108
+ passes: boolean;
109
+ /** JSON-serialized score breakdown (optional) */
110
+ details?: string;
111
+ /** ISO timestamp when scenarios were executed (optional) */
112
+ executed_at?: string;
113
+ }
114
+ export interface ScenarioResultRow {
115
+ /** Auto-generated row id */
116
+ id: number;
117
+ run_id: string;
118
+ node_id: string;
119
+ iteration: number;
120
+ total_scenarios: number;
121
+ passed: number;
122
+ failed: number;
123
+ satisfaction_score: number;
124
+ threshold: number;
125
+ passes: boolean;
126
+ /** Nullable in DB — null when no breakdown details were recorded */
127
+ details: string | null;
128
+ executed_at: string;
129
+ }
130
+ /**
131
+ * Insert or replace a graph_runs row.
132
+ *
133
+ * Uses portable select-then-delete-then-insert pattern inside a transaction
134
+ * (not INSERT OR REPLACE which is SQLite-specific).
135
+ *
136
+ * - First call (status: 'running'): inserts the row.
137
+ * - Second call (status: 'completed'/'failed'): deletes the old row and inserts
138
+ * the updated row with completion details.
139
+ */
140
+ export declare function upsertGraphRun(adapter: DatabaseAdapter, input: GraphRunInput): Promise<void>;
141
+ /**
142
+ * Append a graph_node_results row for a single node execution attempt.
143
+ *
144
+ * Each attempt is a distinct row — no upsert needed since run_id + node_id + attempt
145
+ * together uniquely identify each record.
146
+ */
147
+ export declare function insertGraphNodeResult(adapter: DatabaseAdapter, input: GraphNodeResultInput): Promise<void>;
148
+ /**
149
+ * Append a scenario_results row for a single scenario run iteration.
150
+ *
151
+ * The `details` field (score breakdown) should be serialized as JSON string
152
+ * before calling this function, or passed raw if already serialized.
153
+ */
154
+ export declare function insertScenarioResult(adapter: DatabaseAdapter, input: ScenarioResultInput): Promise<void>;
155
+ /**
156
+ * Retrieve all scenario results for a given run, ordered by iteration ascending.
157
+ *
158
+ * @returns Array of ScenarioResultRow ordered by iteration. Empty array if none exist.
159
+ */
160
+ export declare function getScenarioResultsForRun(adapter: DatabaseAdapter, runId: string): Promise<ScenarioResultRow[]>;
161
+ /**
162
+ * List graph run records in descending started_at order.
163
+ *
164
+ * @param limit - Maximum number of rows to return (default 20).
165
+ */
166
+ export declare function listGraphRuns(adapter: DatabaseAdapter, limit?: number): Promise<GraphRunRow[]>;
167
+ /**
168
+ * Summarized view of a factory graph run for display in `substrate metrics`.
169
+ * Combines data from `graph_runs` and `scenario_results`.
170
+ */
171
+ export interface FactoryRunSummary {
172
+ /** Unique run identifier */
173
+ run_id: string;
174
+ /** Latest satisfaction score (0.0–1.0); null if no scenario results exist */
175
+ satisfaction_score: number | null;
176
+ /** Number of scenario result iterations recorded for this run */
177
+ iterations: number;
178
+ /** Final outcome of the run (maps to final_outcome in graph_runs); null if not set */
179
+ convergence_status: string | null;
180
+ /** ISO timestamp when the run started */
181
+ started_at: string;
182
+ /** ISO timestamp when the run completed; null if still running */
183
+ completed_at: string | null;
184
+ /** Total cost in USD */
185
+ total_cost_usd: number;
186
+ /** Discriminator to distinguish from SDLC runs in JSON output */
187
+ type: 'factory';
188
+ /** Whether the latest iteration passed the satisfaction threshold; null if no scenario results */
189
+ passes: boolean | null;
190
+ }
191
+ /**
192
+ * Retrieve a summarized list of factory graph runs, enriched with per-run
193
+ * iteration counts and latest satisfaction scores from `scenario_results`.
194
+ *
195
+ * Uses two queries (not a JOIN) for portability across adapters:
196
+ * 1. SELECT from graph_runs ordered by started_at DESC
197
+ * 2. GROUP BY aggregation on scenario_results for iteration counts and scores
198
+ *
199
+ * @param adapter - Database adapter (already opened)
200
+ * @param limit - Maximum number of graph runs to return (default 20)
201
+ * @returns Array of FactoryRunSummary ordered by started_at DESC; empty array on error
202
+ */
203
+ export declare function getFactoryRunSummaries(adapter: DatabaseAdapter, limit?: number): Promise<FactoryRunSummary[]>;
204
+ //# sourceMappingURL=factory-queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory-queries.d.ts","sourceRoot":"","sources":["../../src/persistence/factory-queries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,186 @@
1
+ /**
2
+ * Factory persistence query functions for graph runs, node results, and scenario results.
3
+ *
4
+ * All functions accept a DatabaseAdapter as first argument, follow the established
5
+ * pattern from @substrate-ai/core's metrics queries, and use portable SQL patterns
6
+ * (select-then-delete-then-insert in transactions) compatible with both
7
+ * InMemoryDatabaseAdapter and DoltDatabaseAdapter.
8
+ *
9
+ * Story 46-3: Score Persistence to Database.
10
+ */
11
+ // ---------------------------------------------------------------------------
12
+ // upsertGraphRun
13
+ // ---------------------------------------------------------------------------
14
+ /**
15
+ * Insert or replace a graph_runs row.
16
+ *
17
+ * Uses portable select-then-delete-then-insert pattern inside a transaction
18
+ * (not INSERT OR REPLACE which is SQLite-specific).
19
+ *
20
+ * - First call (status: 'running'): inserts the row.
21
+ * - Second call (status: 'completed'/'failed'): deletes the old row and inserts
22
+ * the updated row with completion details.
23
+ */
24
+ export async function upsertGraphRun(adapter, input) {
25
+ await adapter.transaction(async (tx) => {
26
+ const existing = await tx.query('SELECT id FROM graph_runs WHERE id = ?', [input.id]);
27
+ if (existing.length > 0) {
28
+ await tx.query('DELETE FROM graph_runs WHERE id = ?', [input.id]);
29
+ }
30
+ await tx.query(`INSERT INTO graph_runs (
31
+ id, graph_file, graph_goal, status, started_at, completed_at,
32
+ total_cost_usd, node_count, final_outcome, checkpoint_path
33
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
34
+ input.id,
35
+ input.graph_file,
36
+ input.graph_goal ?? null,
37
+ input.status,
38
+ input.started_at,
39
+ input.completed_at ?? null,
40
+ input.total_cost_usd ?? 0,
41
+ input.node_count ?? 0,
42
+ input.final_outcome ?? null,
43
+ input.checkpoint_path ?? null,
44
+ ]);
45
+ });
46
+ }
47
+ // ---------------------------------------------------------------------------
48
+ // insertGraphNodeResult
49
+ // ---------------------------------------------------------------------------
50
+ /**
51
+ * Append a graph_node_results row for a single node execution attempt.
52
+ *
53
+ * Each attempt is a distinct row — no upsert needed since run_id + node_id + attempt
54
+ * together uniquely identify each record.
55
+ */
56
+ export async function insertGraphNodeResult(adapter, input) {
57
+ await adapter.transaction(async (tx) => {
58
+ await tx.query(`INSERT INTO graph_node_results (
59
+ run_id, node_id, attempt, status, started_at, completed_at,
60
+ duration_ms, cost_usd, failure_reason, context_snapshot
61
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
62
+ input.run_id,
63
+ input.node_id,
64
+ input.attempt,
65
+ input.status,
66
+ input.started_at,
67
+ input.completed_at ?? null,
68
+ input.duration_ms ?? null,
69
+ input.cost_usd ?? 0,
70
+ input.failure_reason ?? null,
71
+ input.context_snapshot ?? null,
72
+ ]);
73
+ });
74
+ }
75
+ // ---------------------------------------------------------------------------
76
+ // insertScenarioResult
77
+ // ---------------------------------------------------------------------------
78
+ /**
79
+ * Append a scenario_results row for a single scenario run iteration.
80
+ *
81
+ * The `details` field (score breakdown) should be serialized as JSON string
82
+ * before calling this function, or passed raw if already serialized.
83
+ */
84
+ export async function insertScenarioResult(adapter, input) {
85
+ await adapter.transaction(async (tx) => {
86
+ await tx.query(`INSERT INTO scenario_results (
87
+ run_id, node_id, iteration, total_scenarios, passed, failed,
88
+ satisfaction_score, threshold, passes, details, executed_at
89
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
90
+ input.run_id,
91
+ input.node_id,
92
+ input.iteration,
93
+ input.total_scenarios,
94
+ input.passed,
95
+ input.failed,
96
+ input.satisfaction_score,
97
+ input.threshold,
98
+ input.passes ? 1 : 0,
99
+ input.details ?? null,
100
+ input.executed_at ?? new Date().toISOString(),
101
+ ]);
102
+ });
103
+ }
104
+ // ---------------------------------------------------------------------------
105
+ // getScenarioResultsForRun
106
+ // ---------------------------------------------------------------------------
107
+ /**
108
+ * Retrieve all scenario results for a given run, ordered by iteration ascending.
109
+ *
110
+ * @returns Array of ScenarioResultRow ordered by iteration. Empty array if none exist.
111
+ */
112
+ export async function getScenarioResultsForRun(adapter, runId) {
113
+ const rows = await adapter.query('SELECT * FROM scenario_results WHERE run_id = ? ORDER BY iteration ASC', [runId]);
114
+ // Coerce `passes` from integer (0/1) to boolean — adapters store it as an
115
+ // integer for portability, so `row.passes` may be 0 or 1 on read.
116
+ return rows.map((row) => ({ ...row, passes: Boolean(row.passes) }));
117
+ }
118
+ // ---------------------------------------------------------------------------
119
+ // listGraphRuns
120
+ // ---------------------------------------------------------------------------
121
+ /**
122
+ * List graph run records in descending started_at order.
123
+ *
124
+ * @param limit - Maximum number of rows to return (default 20).
125
+ */
126
+ export async function listGraphRuns(adapter, limit = 20) {
127
+ return adapter.query('SELECT * FROM graph_runs ORDER BY started_at DESC LIMIT ?', [limit]);
128
+ }
129
+ // ---------------------------------------------------------------------------
130
+ // getFactoryRunSummaries
131
+ // ---------------------------------------------------------------------------
132
+ /**
133
+ * Retrieve a summarized list of factory graph runs, enriched with per-run
134
+ * iteration counts and latest satisfaction scores from `scenario_results`.
135
+ *
136
+ * Uses two queries (not a JOIN) for portability across adapters:
137
+ * 1. SELECT from graph_runs ordered by started_at DESC
138
+ * 2. GROUP BY aggregation on scenario_results for iteration counts and scores
139
+ *
140
+ * @param adapter - Database adapter (already opened)
141
+ * @param limit - Maximum number of graph runs to return (default 20)
142
+ * @returns Array of FactoryRunSummary ordered by started_at DESC; empty array on error
143
+ */
144
+ export async function getFactoryRunSummaries(adapter, limit = 20) {
145
+ // Query 1: fetch run list
146
+ const runs = await adapter.query('SELECT id, started_at, completed_at, total_cost_usd, final_outcome FROM graph_runs ORDER BY started_at DESC LIMIT ?', [limit]);
147
+ if (runs.length === 0) {
148
+ return [];
149
+ }
150
+ // Query 2: aggregate scenario_results by run_id (iteration count and max satisfaction score)
151
+ const scenarioAgg = await adapter.query('SELECT run_id, COUNT(*) as iterations, MAX(satisfaction_score) as satisfaction_score FROM scenario_results GROUP BY run_id', []);
152
+ // Query 3: get the passes value from the latest iteration for each run_id.
153
+ // Using a JOIN with a MAX(iteration) subquery is the most portable approach
154
+ // (works in both SQLite and MySQL/Dolt) and avoids the MAX(passes) pitfall
155
+ // where any passing iteration would incorrectly show ✓ for a regressed run.
156
+ const latestPassesRows = await adapter.query('SELECT s.run_id, s.passes FROM scenario_results s INNER JOIN (SELECT run_id, MAX(iteration) AS max_iter FROM scenario_results GROUP BY run_id) latest ON s.run_id = latest.run_id AND s.iteration = latest.max_iter', []);
157
+ // Build a lookup map from run_id → scenario aggregation
158
+ const scenarioMap = new Map();
159
+ for (const row of scenarioAgg) {
160
+ scenarioMap.set(row.run_id, {
161
+ iterations: row.iterations,
162
+ satisfaction_score: row.satisfaction_score,
163
+ });
164
+ }
165
+ // Build a lookup map from run_id → latest-iteration passes (boolean)
166
+ const latestPassesMap = new Map();
167
+ for (const row of latestPassesRows) {
168
+ latestPassesMap.set(row.run_id, row.passes !== 0);
169
+ }
170
+ // Combine
171
+ return runs.map((run) => {
172
+ const agg = scenarioMap.get(run.id);
173
+ return {
174
+ run_id: run.id,
175
+ satisfaction_score: agg !== undefined ? agg.satisfaction_score : null,
176
+ iterations: agg !== undefined ? agg.iterations : 0,
177
+ convergence_status: run.final_outcome,
178
+ started_at: run.started_at,
179
+ completed_at: run.completed_at,
180
+ total_cost_usd: run.total_cost_usd,
181
+ type: 'factory',
182
+ passes: latestPassesMap.has(run.id) ? (latestPassesMap.get(run.id) ?? null) : null,
183
+ };
184
+ });
185
+ }
186
+ //# sourceMappingURL=factory-queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory-queries.js","sourceRoot":"","sources":["../../src/persistence/factory-queries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Factory schema DDL for graph execution and scenario validation tables.
3
+ * Companion to `@substrate-ai/core`'s `initSchema` — call both during factory initialization.
4
+ */
5
+ import type { DatabaseAdapter } from '@substrate-ai/core';
6
+ /**
7
+ * Initialize all factory-specific persistence tables on the given adapter.
8
+ * Idempotent — safe to call multiple times.
9
+ *
10
+ * Creates:
11
+ * - graph_runs: top-level graph execution run records
12
+ * - graph_node_results: per-node execution results within a run
13
+ * - scenario_results: scenario validation outcomes within a run
14
+ */
15
+ export declare function factorySchema(adapter: DatabaseAdapter): Promise<void>;
16
+ //# sourceMappingURL=factory-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory-schema.d.ts","sourceRoot":"","sources":["../../src/persistence/factory-schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAgF3E"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Factory schema DDL for graph execution and scenario validation tables.
3
+ * Companion to `@substrate-ai/core`'s `initSchema` — call both during factory initialization.
4
+ */
5
+ /**
6
+ * Initialize all factory-specific persistence tables on the given adapter.
7
+ * Idempotent — safe to call multiple times.
8
+ *
9
+ * Creates:
10
+ * - graph_runs: top-level graph execution run records
11
+ * - graph_node_results: per-node execution results within a run
12
+ * - scenario_results: scenario validation outcomes within a run
13
+ */
14
+ export async function factorySchema(adapter) {
15
+ // -- graph_runs (AC1) -------------------------------------------------------
16
+ await adapter.exec(`
17
+ CREATE TABLE IF NOT EXISTS graph_runs (
18
+ id VARCHAR(255) PRIMARY KEY,
19
+ graph_file TEXT NOT NULL,
20
+ graph_goal TEXT,
21
+ status VARCHAR(32) NOT NULL DEFAULT 'running',
22
+ started_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
23
+ completed_at DATETIME,
24
+ total_cost_usd DOUBLE NOT NULL DEFAULT 0.0,
25
+ node_count INTEGER NOT NULL DEFAULT 0,
26
+ final_outcome VARCHAR(32),
27
+ checkpoint_path TEXT
28
+ )
29
+ `);
30
+ // -- graph_node_results (AC2, AC4) ------------------------------------------
31
+ await adapter.exec(`
32
+ CREATE TABLE IF NOT EXISTS graph_node_results (
33
+ id INTEGER PRIMARY KEY AUTO_INCREMENT,
34
+ run_id VARCHAR(255) NOT NULL ,
35
+ node_id VARCHAR(255) NOT NULL,
36
+ attempt INTEGER NOT NULL DEFAULT 1,
37
+ status VARCHAR(32) NOT NULL,
38
+ started_at DATETIME NOT NULL,
39
+ completed_at DATETIME,
40
+ duration_ms INTEGER,
41
+ cost_usd DOUBLE NOT NULL DEFAULT 0.0,
42
+ failure_reason TEXT,
43
+ context_snapshot TEXT
44
+ )
45
+ `);
46
+ await adapter.exec('CREATE INDEX IF NOT EXISTS idx_graph_node_results_run ON graph_node_results(run_id)');
47
+ // -- scenario_results (AC3, AC4) --------------------------------------------
48
+ await adapter.exec(`
49
+ CREATE TABLE IF NOT EXISTS scenario_results (
50
+ id INTEGER PRIMARY KEY AUTO_INCREMENT,
51
+ run_id VARCHAR(255) NOT NULL ,
52
+ node_id VARCHAR(255) NOT NULL,
53
+ iteration INTEGER NOT NULL DEFAULT 1,
54
+ total_scenarios INTEGER NOT NULL,
55
+ passed INTEGER NOT NULL,
56
+ failed INTEGER NOT NULL,
57
+ satisfaction_score DOUBLE NOT NULL,
58
+ threshold DOUBLE NOT NULL DEFAULT 0.8,
59
+ passes BOOLEAN NOT NULL,
60
+ details TEXT,
61
+ executed_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
62
+ )
63
+ `);
64
+ await adapter.exec('CREATE INDEX IF NOT EXISTS idx_scenario_results_run ON scenario_results(run_id)');
65
+ // -- twin_runs (AC1) --------------------------------------------------------
66
+ await adapter.exec(`
67
+ CREATE TABLE IF NOT EXISTS twin_runs (
68
+ id VARCHAR(255) PRIMARY KEY,
69
+ run_id VARCHAR(255),
70
+ twin_name VARCHAR(255) NOT NULL,
71
+ started_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
72
+ stopped_at DATETIME,
73
+ status VARCHAR(32) NOT NULL DEFAULT 'running',
74
+ ports_json TEXT
75
+ )
76
+ `);
77
+ // -- twin_health_failures (AC2) ---------------------------------------------
78
+ await adapter.exec(`
79
+ CREATE TABLE IF NOT EXISTS twin_health_failures (
80
+ id INTEGER PRIMARY KEY AUTO_INCREMENT,
81
+ twin_name VARCHAR(255) NOT NULL,
82
+ run_id VARCHAR(255),
83
+ checked_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
84
+ error_message TEXT NOT NULL
85
+ )
86
+ `);
87
+ await adapter.exec('CREATE INDEX IF NOT EXISTS idx_twin_health_failures_twin ON twin_health_failures(twin_name)');
88
+ }
89
+ //# sourceMappingURL=factory-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory-schema.js","sourceRoot":"","sources":["../../src/persistence/factory-schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAwB;IAC1D,8EAA8E;IAC9E,MAAM,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;;;;GAalB,CAAC,CAAA;IAEF,8EAA8E;IAC9E,MAAM,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;;;;;GAclB,CAAC,CAAA;IACF,MAAM,OAAO,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAA;IAEzG,8EAA8E;IAC9E,MAAM,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;GAelB,CAAC,CAAA;IACF,MAAM,OAAO,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAA;IAErG,8EAA8E;IAC9E,MAAM,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;GAUlB,CAAC,CAAA;IAEF,8EAA8E;IAC9E,MAAM,OAAO,CAAC,IAAI,CAAC;;;;;;;;GAQlB,CAAC,CAAA;IACF,MAAM,OAAO,CAAC,IAAI,CAChB,6FAA6F,CAC9F,CAAA;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Unit tests for `scenarios list` and `scenarios run` CLI subcommands.
3
+ *
4
+ * Tests AC1–AC4 from story 44-8.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=cli-command-list.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-command-list.test.d.ts","sourceRoot":"","sources":["../../../src/scenarios/__tests__/cli-command-list.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}