@substrate-ai/factory 0.19.54 → 0.20.2

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 (491) hide show
  1. package/README.md +39 -0
  2. package/dist/config.d.ts +4 -4
  3. package/package.json +12 -3
  4. package/dist/__tests__/config.test.d.ts +0 -11
  5. package/dist/__tests__/config.test.d.ts.map +0 -1
  6. package/dist/__tests__/config.test.js +0 -215
  7. package/dist/__tests__/config.test.js.map +0 -1
  8. package/dist/__tests__/factory-run-command.test.d.ts +0 -12
  9. package/dist/__tests__/factory-run-command.test.d.ts.map +0 -1
  10. package/dist/__tests__/factory-run-command.test.js +0 -454
  11. package/dist/__tests__/factory-run-command.test.js.map +0 -1
  12. package/dist/__tests__/factory-validate-command.test.d.ts +0 -15
  13. package/dist/__tests__/factory-validate-command.test.d.ts.map +0 -1
  14. package/dist/__tests__/factory-validate-command.test.js +0 -339
  15. package/dist/__tests__/factory-validate-command.test.js.map +0 -1
  16. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.d.ts +0 -72
  17. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.d.ts.map +0 -1
  18. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.js +0 -121
  19. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.js.map +0 -1
  20. package/dist/__tests__/fixtures/llm-edge-routing.dot.d.ts +0 -28
  21. package/dist/__tests__/fixtures/llm-edge-routing.dot.d.ts.map +0 -1
  22. package/dist/__tests__/fixtures/llm-edge-routing.dot.js +0 -55
  23. package/dist/__tests__/fixtures/llm-edge-routing.dot.js.map +0 -1
  24. package/dist/__tests__/fixtures/manager-loop.dot.d.ts +0 -34
  25. package/dist/__tests__/fixtures/manager-loop.dot.d.ts.map +0 -1
  26. package/dist/__tests__/fixtures/manager-loop.dot.js +0 -61
  27. package/dist/__tests__/fixtures/manager-loop.dot.js.map +0 -1
  28. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.d.ts +0 -42
  29. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.d.ts.map +0 -1
  30. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.js +0 -118
  31. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.js.map +0 -1
  32. package/dist/__tests__/fixtures/subgraph-parent.dot.d.ts +0 -35
  33. package/dist/__tests__/fixtures/subgraph-parent.dot.d.ts.map +0 -1
  34. package/dist/__tests__/fixtures/subgraph-parent.dot.js +0 -69
  35. package/dist/__tests__/fixtures/subgraph-parent.dot.js.map +0 -1
  36. package/dist/__tests__/integration/advanced-graph-events.test.d.ts +0 -19
  37. package/dist/__tests__/integration/advanced-graph-events.test.d.ts.map +0 -1
  38. package/dist/__tests__/integration/advanced-graph-events.test.js +0 -288
  39. package/dist/__tests__/integration/advanced-graph-events.test.js.map +0 -1
  40. package/dist/__tests__/integration/checkpoint-resume.test.d.ts +0 -10
  41. package/dist/__tests__/integration/checkpoint-resume.test.d.ts.map +0 -1
  42. package/dist/__tests__/integration/checkpoint-resume.test.js +0 -125
  43. package/dist/__tests__/integration/checkpoint-resume.test.js.map +0 -1
  44. package/dist/__tests__/integration/conditional-pipeline.test.d.ts +0 -10
  45. package/dist/__tests__/integration/conditional-pipeline.test.d.ts.map +0 -1
  46. package/dist/__tests__/integration/conditional-pipeline.test.js +0 -106
  47. package/dist/__tests__/integration/conditional-pipeline.test.js.map +0 -1
  48. package/dist/__tests__/integration/convergence-validation.test.d.ts +0 -14
  49. package/dist/__tests__/integration/convergence-validation.test.d.ts.map +0 -1
  50. package/dist/__tests__/integration/convergence-validation.test.js +0 -449
  51. package/dist/__tests__/integration/convergence-validation.test.js.map +0 -1
  52. package/dist/__tests__/integration/epic44-coverage-gate.test.d.ts +0 -12
  53. package/dist/__tests__/integration/epic44-coverage-gate.test.d.ts.map +0 -1
  54. package/dist/__tests__/integration/epic44-coverage-gate.test.js +0 -58
  55. package/dist/__tests__/integration/epic44-coverage-gate.test.js.map +0 -1
  56. package/dist/__tests__/integration/epic45-coverage-gate.test.d.ts +0 -11
  57. package/dist/__tests__/integration/epic45-coverage-gate.test.d.ts.map +0 -1
  58. package/dist/__tests__/integration/epic45-coverage-gate.test.js +0 -64
  59. package/dist/__tests__/integration/epic45-coverage-gate.test.js.map +0 -1
  60. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.d.ts +0 -2
  61. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.d.ts.map +0 -1
  62. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.js +0 -285
  63. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.js.map +0 -1
  64. package/dist/__tests__/integration/events.test.d.ts +0 -8
  65. package/dist/__tests__/integration/events.test.d.ts.map +0 -1
  66. package/dist/__tests__/integration/events.test.js +0 -194
  67. package/dist/__tests__/integration/events.test.js.map +0 -1
  68. package/dist/__tests__/integration/graphs.d.ts +0 -59
  69. package/dist/__tests__/integration/graphs.d.ts.map +0 -1
  70. package/dist/__tests__/integration/graphs.js +0 -164
  71. package/dist/__tests__/integration/graphs.js.map +0 -1
  72. package/dist/__tests__/integration/helpers.d.ts +0 -127
  73. package/dist/__tests__/integration/helpers.d.ts.map +0 -1
  74. package/dist/__tests__/integration/helpers.js +0 -167
  75. package/dist/__tests__/integration/helpers.js.map +0 -1
  76. package/dist/__tests__/integration/integrity.test.d.ts +0 -8
  77. package/dist/__tests__/integration/integrity.test.d.ts.map +0 -1
  78. package/dist/__tests__/integration/integrity.test.js +0 -198
  79. package/dist/__tests__/integration/integrity.test.js.map +0 -1
  80. package/dist/__tests__/integration/llm-edge-routing.test.d.ts +0 -21
  81. package/dist/__tests__/integration/llm-edge-routing.test.d.ts.map +0 -1
  82. package/dist/__tests__/integration/llm-edge-routing.test.js +0 -341
  83. package/dist/__tests__/integration/llm-edge-routing.test.js.map +0 -1
  84. package/dist/__tests__/integration/manager-loop.test.d.ts +0 -24
  85. package/dist/__tests__/integration/manager-loop.test.d.ts.map +0 -1
  86. package/dist/__tests__/integration/manager-loop.test.js +0 -276
  87. package/dist/__tests__/integration/manager-loop.test.js.map +0 -1
  88. package/dist/__tests__/integration/multi-type-graph.test.d.ts +0 -10
  89. package/dist/__tests__/integration/multi-type-graph.test.d.ts.map +0 -1
  90. package/dist/__tests__/integration/multi-type-graph.test.js +0 -100
  91. package/dist/__tests__/integration/multi-type-graph.test.js.map +0 -1
  92. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.d.ts +0 -22
  93. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.d.ts.map +0 -1
  94. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.js +0 -515
  95. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.js.map +0 -1
  96. package/dist/__tests__/integration/persistence.test.d.ts +0 -8
  97. package/dist/__tests__/integration/persistence.test.d.ts.map +0 -1
  98. package/dist/__tests__/integration/persistence.test.js +0 -129
  99. package/dist/__tests__/integration/persistence.test.js.map +0 -1
  100. package/dist/__tests__/integration/pipeline-templates-integration.test.d.ts +0 -16
  101. package/dist/__tests__/integration/pipeline-templates-integration.test.d.ts.map +0 -1
  102. package/dist/__tests__/integration/pipeline-templates-integration.test.js +0 -171
  103. package/dist/__tests__/integration/pipeline-templates-integration.test.js.map +0 -1
  104. package/dist/__tests__/integration/scenario-pipeline.test.d.ts +0 -11
  105. package/dist/__tests__/integration/scenario-pipeline.test.d.ts.map +0 -1
  106. package/dist/__tests__/integration/scenario-pipeline.test.js +0 -243
  107. package/dist/__tests__/integration/scenario-pipeline.test.js.map +0 -1
  108. package/dist/__tests__/integration/stylesheet-application.test.d.ts +0 -12
  109. package/dist/__tests__/integration/stylesheet-application.test.d.ts.map +0 -1
  110. package/dist/__tests__/integration/stylesheet-application.test.js +0 -119
  111. package/dist/__tests__/integration/stylesheet-application.test.js.map +0 -1
  112. package/dist/__tests__/integration/subgraph-execution.test.d.ts +0 -24
  113. package/dist/__tests__/integration/subgraph-execution.test.d.ts.map +0 -1
  114. package/dist/__tests__/integration/subgraph-execution.test.js +0 -291
  115. package/dist/__tests__/integration/subgraph-execution.test.js.map +0 -1
  116. package/dist/__tests__/integration/validation-errors.test.d.ts +0 -8
  117. package/dist/__tests__/integration/validation-errors.test.d.ts.map +0 -1
  118. package/dist/__tests__/integration/validation-errors.test.js +0 -150
  119. package/dist/__tests__/integration/validation-errors.test.js.map +0 -1
  120. package/dist/agent/__tests__/loop-detection.test.d.ts +0 -2
  121. package/dist/agent/__tests__/loop-detection.test.d.ts.map +0 -1
  122. package/dist/agent/__tests__/loop-detection.test.js +0 -236
  123. package/dist/agent/__tests__/loop-detection.test.js.map +0 -1
  124. package/dist/agent/__tests__/loop.test.d.ts +0 -2
  125. package/dist/agent/__tests__/loop.test.d.ts.map +0 -1
  126. package/dist/agent/__tests__/loop.test.js +0 -868
  127. package/dist/agent/__tests__/loop.test.js.map +0 -1
  128. package/dist/agent/__tests__/truncation.test.d.ts +0 -2
  129. package/dist/agent/__tests__/truncation.test.d.ts.map +0 -1
  130. package/dist/agent/__tests__/truncation.test.js +0 -276
  131. package/dist/agent/__tests__/truncation.test.js.map +0 -1
  132. package/dist/agent/tools/__tests__/anthropic-tools.test.d.ts +0 -6
  133. package/dist/agent/tools/__tests__/anthropic-tools.test.d.ts.map +0 -1
  134. package/dist/agent/tools/__tests__/anthropic-tools.test.js +0 -49
  135. package/dist/agent/tools/__tests__/anthropic-tools.test.js.map +0 -1
  136. package/dist/agent/tools/__tests__/environment.test.d.ts +0 -6
  137. package/dist/agent/tools/__tests__/environment.test.d.ts.map +0 -1
  138. package/dist/agent/tools/__tests__/environment.test.js +0 -33
  139. package/dist/agent/tools/__tests__/environment.test.js.map +0 -1
  140. package/dist/agent/tools/__tests__/gemini-tools.test.d.ts +0 -6
  141. package/dist/agent/tools/__tests__/gemini-tools.test.d.ts.map +0 -1
  142. package/dist/agent/tools/__tests__/gemini-tools.test.js +0 -98
  143. package/dist/agent/tools/__tests__/gemini-tools.test.js.map +0 -1
  144. package/dist/agent/tools/__tests__/openai-tools.test.d.ts +0 -6
  145. package/dist/agent/tools/__tests__/openai-tools.test.d.ts.map +0 -1
  146. package/dist/agent/tools/__tests__/openai-tools.test.js +0 -53
  147. package/dist/agent/tools/__tests__/openai-tools.test.js.map +0 -1
  148. package/dist/agent/tools/__tests__/patch.test.d.ts +0 -6
  149. package/dist/agent/tools/__tests__/patch.test.d.ts.map +0 -1
  150. package/dist/agent/tools/__tests__/patch.test.js +0 -116
  151. package/dist/agent/tools/__tests__/patch.test.js.map +0 -1
  152. package/dist/agent/tools/__tests__/profiles.test.d.ts +0 -6
  153. package/dist/agent/tools/__tests__/profiles.test.d.ts.map +0 -1
  154. package/dist/agent/tools/__tests__/profiles.test.js +0 -125
  155. package/dist/agent/tools/__tests__/profiles.test.js.map +0 -1
  156. package/dist/agent/tools/__tests__/registry.test.d.ts +0 -6
  157. package/dist/agent/tools/__tests__/registry.test.d.ts.map +0 -1
  158. package/dist/agent/tools/__tests__/registry.test.js +0 -94
  159. package/dist/agent/tools/__tests__/registry.test.js.map +0 -1
  160. package/dist/agent/tools/__tests__/shared.test.d.ts +0 -6
  161. package/dist/agent/tools/__tests__/shared.test.d.ts.map +0 -1
  162. package/dist/agent/tools/__tests__/shared.test.js +0 -131
  163. package/dist/agent/tools/__tests__/shared.test.js.map +0 -1
  164. package/dist/backend/__tests__/direct-backend.test.d.ts +0 -14
  165. package/dist/backend/__tests__/direct-backend.test.d.ts.map +0 -1
  166. package/dist/backend/__tests__/direct-backend.test.js +0 -393
  167. package/dist/backend/__tests__/direct-backend.test.js.map +0 -1
  168. package/dist/backend/__tests__/direct-bootstrap.test.d.ts +0 -7
  169. package/dist/backend/__tests__/direct-bootstrap.test.d.ts.map +0 -1
  170. package/dist/backend/__tests__/direct-bootstrap.test.js +0 -177
  171. package/dist/backend/__tests__/direct-bootstrap.test.js.map +0 -1
  172. package/dist/backend/__tests__/mock-backend.test.d.ts +0 -7
  173. package/dist/backend/__tests__/mock-backend.test.d.ts.map +0 -1
  174. package/dist/backend/__tests__/mock-backend.test.js +0 -273
  175. package/dist/backend/__tests__/mock-backend.test.js.map +0 -1
  176. package/dist/backend/__tests__/parity.test.d.ts +0 -17
  177. package/dist/backend/__tests__/parity.test.d.ts.map +0 -1
  178. package/dist/backend/__tests__/parity.test.js +0 -411
  179. package/dist/backend/__tests__/parity.test.js.map +0 -1
  180. package/dist/context/__tests__/auto-summarizer.test.d.ts +0 -14
  181. package/dist/context/__tests__/auto-summarizer.test.d.ts.map +0 -1
  182. package/dist/context/__tests__/auto-summarizer.test.js +0 -189
  183. package/dist/context/__tests__/auto-summarizer.test.js.map +0 -1
  184. package/dist/context/__tests__/context-cli-command.test.d.ts +0 -7
  185. package/dist/context/__tests__/context-cli-command.test.d.ts.map +0 -1
  186. package/dist/context/__tests__/context-cli-command.test.js +0 -331
  187. package/dist/context/__tests__/context-cli-command.test.js.map +0 -1
  188. package/dist/context/__tests__/pyramid-summary-integration.test.d.ts +0 -2
  189. package/dist/context/__tests__/pyramid-summary-integration.test.d.ts.map +0 -1
  190. package/dist/context/__tests__/pyramid-summary-integration.test.js +0 -533
  191. package/dist/context/__tests__/pyramid-summary-integration.test.js.map +0 -1
  192. package/dist/context/__tests__/summarizer.test.d.ts +0 -2
  193. package/dist/context/__tests__/summarizer.test.d.ts.map +0 -1
  194. package/dist/context/__tests__/summarizer.test.js +0 -189
  195. package/dist/context/__tests__/summarizer.test.js.map +0 -1
  196. package/dist/context/__tests__/summary-cache.test.d.ts +0 -2
  197. package/dist/context/__tests__/summary-cache.test.d.ts.map +0 -1
  198. package/dist/context/__tests__/summary-cache.test.js +0 -214
  199. package/dist/context/__tests__/summary-cache.test.js.map +0 -1
  200. package/dist/context/__tests__/summary-metrics.test.d.ts +0 -2
  201. package/dist/context/__tests__/summary-metrics.test.d.ts.map +0 -1
  202. package/dist/context/__tests__/summary-metrics.test.js +0 -172
  203. package/dist/context/__tests__/summary-metrics.test.js.map +0 -1
  204. package/dist/context/__tests__/summary-types.test.d.ts +0 -2
  205. package/dist/context/__tests__/summary-types.test.d.ts.map +0 -1
  206. package/dist/context/__tests__/summary-types.test.js +0 -130
  207. package/dist/context/__tests__/summary-types.test.js.map +0 -1
  208. package/dist/convergence/__tests__/budget.test.d.ts +0 -6
  209. package/dist/convergence/__tests__/budget.test.d.ts.map +0 -1
  210. package/dist/convergence/__tests__/budget.test.js +0 -187
  211. package/dist/convergence/__tests__/budget.test.js.map +0 -1
  212. package/dist/convergence/__tests__/controller.test.d.ts +0 -9
  213. package/dist/convergence/__tests__/controller.test.d.ts.map +0 -1
  214. package/dist/convergence/__tests__/controller.test.js +0 -585
  215. package/dist/convergence/__tests__/controller.test.js.map +0 -1
  216. package/dist/convergence/__tests__/dual-signal.test.d.ts +0 -14
  217. package/dist/convergence/__tests__/dual-signal.test.d.ts.map +0 -1
  218. package/dist/convergence/__tests__/dual-signal.test.js +0 -123
  219. package/dist/convergence/__tests__/dual-signal.test.js.map +0 -1
  220. package/dist/convergence/__tests__/epic46-integration.test.d.ts +0 -15
  221. package/dist/convergence/__tests__/epic46-integration.test.d.ts.map +0 -1
  222. package/dist/convergence/__tests__/epic46-integration.test.js +0 -522
  223. package/dist/convergence/__tests__/epic46-integration.test.js.map +0 -1
  224. package/dist/convergence/__tests__/plateau.test.d.ts +0 -6
  225. package/dist/convergence/__tests__/plateau.test.d.ts.map +0 -1
  226. package/dist/convergence/__tests__/plateau.test.js +0 -163
  227. package/dist/convergence/__tests__/plateau.test.js.map +0 -1
  228. package/dist/convergence/__tests__/remediation.test.d.ts +0 -11
  229. package/dist/convergence/__tests__/remediation.test.d.ts.map +0 -1
  230. package/dist/convergence/__tests__/remediation.test.js +0 -209
  231. package/dist/convergence/__tests__/remediation.test.js.map +0 -1
  232. package/dist/convergence/__tests__/scenario-primary.test.d.ts +0 -13
  233. package/dist/convergence/__tests__/scenario-primary.test.d.ts.map +0 -1
  234. package/dist/convergence/__tests__/scenario-primary.test.js +0 -183
  235. package/dist/convergence/__tests__/scenario-primary.test.js.map +0 -1
  236. package/dist/factory-command.test.d.ts +0 -8
  237. package/dist/factory-command.test.d.ts.map +0 -1
  238. package/dist/factory-command.test.js +0 -304
  239. package/dist/factory-command.test.js.map +0 -1
  240. package/dist/graph/__tests__/attractor-compliance.test.d.ts +0 -10
  241. package/dist/graph/__tests__/attractor-compliance.test.d.ts.map +0 -1
  242. package/dist/graph/__tests__/attractor-compliance.test.js +0 -766
  243. package/dist/graph/__tests__/attractor-compliance.test.js.map +0 -1
  244. package/dist/graph/__tests__/checkpoint.test.d.ts +0 -8
  245. package/dist/graph/__tests__/checkpoint.test.d.ts.map +0 -1
  246. package/dist/graph/__tests__/checkpoint.test.js +0 -329
  247. package/dist/graph/__tests__/checkpoint.test.js.map +0 -1
  248. package/dist/graph/__tests__/condition-parser.test.d.ts +0 -14
  249. package/dist/graph/__tests__/condition-parser.test.d.ts.map +0 -1
  250. package/dist/graph/__tests__/condition-parser.test.js +0 -406
  251. package/dist/graph/__tests__/condition-parser.test.js.map +0 -1
  252. package/dist/graph/__tests__/context.test.d.ts +0 -14
  253. package/dist/graph/__tests__/context.test.d.ts.map +0 -1
  254. package/dist/graph/__tests__/context.test.js +0 -276
  255. package/dist/graph/__tests__/context.test.js.map +0 -1
  256. package/dist/graph/__tests__/edge-selector-events.test.d.ts +0 -11
  257. package/dist/graph/__tests__/edge-selector-events.test.d.ts.map +0 -1
  258. package/dist/graph/__tests__/edge-selector-events.test.js +0 -184
  259. package/dist/graph/__tests__/edge-selector-events.test.js.map +0 -1
  260. package/dist/graph/__tests__/edge-selector.test.d.ts +0 -6
  261. package/dist/graph/__tests__/edge-selector.test.d.ts.map +0 -1
  262. package/dist/graph/__tests__/edge-selector.test.js +0 -452
  263. package/dist/graph/__tests__/edge-selector.test.js.map +0 -1
  264. package/dist/graph/__tests__/executor-convergence.test.d.ts +0 -12
  265. package/dist/graph/__tests__/executor-convergence.test.d.ts.map +0 -1
  266. package/dist/graph/__tests__/executor-convergence.test.js +0 -432
  267. package/dist/graph/__tests__/executor-convergence.test.js.map +0 -1
  268. package/dist/graph/__tests__/executor-fidelity.test.d.ts +0 -13
  269. package/dist/graph/__tests__/executor-fidelity.test.d.ts.map +0 -1
  270. package/dist/graph/__tests__/executor-fidelity.test.js +0 -335
  271. package/dist/graph/__tests__/executor-fidelity.test.js.map +0 -1
  272. package/dist/graph/__tests__/executor.test.d.ts +0 -14
  273. package/dist/graph/__tests__/executor.test.d.ts.map +0 -1
  274. package/dist/graph/__tests__/executor.test.js +0 -901
  275. package/dist/graph/__tests__/executor.test.js.map +0 -1
  276. package/dist/graph/__tests__/fidelity.test.d.ts +0 -8
  277. package/dist/graph/__tests__/fidelity.test.d.ts.map +0 -1
  278. package/dist/graph/__tests__/fidelity.test.js +0 -135
  279. package/dist/graph/__tests__/fidelity.test.js.map +0 -1
  280. package/dist/graph/__tests__/llm-evaluator.test.d.ts +0 -7
  281. package/dist/graph/__tests__/llm-evaluator.test.d.ts.map +0 -1
  282. package/dist/graph/__tests__/llm-evaluator.test.js +0 -106
  283. package/dist/graph/__tests__/llm-evaluator.test.js.map +0 -1
  284. package/dist/graph/__tests__/parser-chaining.test.d.ts +0 -13
  285. package/dist/graph/__tests__/parser-chaining.test.d.ts.map +0 -1
  286. package/dist/graph/__tests__/parser-chaining.test.js +0 -215
  287. package/dist/graph/__tests__/parser-chaining.test.js.map +0 -1
  288. package/dist/graph/__tests__/parser.test.d.ts +0 -22
  289. package/dist/graph/__tests__/parser.test.d.ts.map +0 -1
  290. package/dist/graph/__tests__/parser.test.js +0 -452
  291. package/dist/graph/__tests__/parser.test.js.map +0 -1
  292. package/dist/graph/__tests__/run-state.test.d.ts +0 -13
  293. package/dist/graph/__tests__/run-state.test.d.ts.map +0 -1
  294. package/dist/graph/__tests__/run-state.test.js +0 -189
  295. package/dist/graph/__tests__/run-state.test.js.map +0 -1
  296. package/dist/graph/__tests__/transformer.test.d.ts +0 -16
  297. package/dist/graph/__tests__/transformer.test.d.ts.map +0 -1
  298. package/dist/graph/__tests__/transformer.test.js +0 -350
  299. package/dist/graph/__tests__/transformer.test.js.map +0 -1
  300. package/dist/graph/__tests__/validator-errors.test.d.ts +0 -15
  301. package/dist/graph/__tests__/validator-errors.test.d.ts.map +0 -1
  302. package/dist/graph/__tests__/validator-errors.test.js +0 -572
  303. package/dist/graph/__tests__/validator-errors.test.js.map +0 -1
  304. package/dist/graph/__tests__/validator-warnings.test.d.ts +0 -15
  305. package/dist/graph/__tests__/validator-warnings.test.d.ts.map +0 -1
  306. package/dist/graph/__tests__/validator-warnings.test.js +0 -363
  307. package/dist/graph/__tests__/validator-warnings.test.js.map +0 -1
  308. package/dist/handlers/__tests__/codergen-handler.test.d.ts +0 -14
  309. package/dist/handlers/__tests__/codergen-handler.test.d.ts.map +0 -1
  310. package/dist/handlers/__tests__/codergen-handler.test.js +0 -442
  311. package/dist/handlers/__tests__/codergen-handler.test.js.map +0 -1
  312. package/dist/handlers/__tests__/fan-in.test.d.ts +0 -14
  313. package/dist/handlers/__tests__/fan-in.test.d.ts.map +0 -1
  314. package/dist/handlers/__tests__/fan-in.test.js +0 -399
  315. package/dist/handlers/__tests__/fan-in.test.js.map +0 -1
  316. package/dist/handlers/__tests__/join-policy.test.d.ts +0 -9
  317. package/dist/handlers/__tests__/join-policy.test.d.ts.map +0 -1
  318. package/dist/handlers/__tests__/join-policy.test.js +0 -201
  319. package/dist/handlers/__tests__/join-policy.test.js.map +0 -1
  320. package/dist/handlers/__tests__/manager-loop.test.d.ts +0 -14
  321. package/dist/handlers/__tests__/manager-loop.test.d.ts.map +0 -1
  322. package/dist/handlers/__tests__/manager-loop.test.js +0 -322
  323. package/dist/handlers/__tests__/manager-loop.test.js.map +0 -1
  324. package/dist/handlers/__tests__/parallel-events.test.d.ts +0 -12
  325. package/dist/handlers/__tests__/parallel-events.test.d.ts.map +0 -1
  326. package/dist/handlers/__tests__/parallel-events.test.js +0 -252
  327. package/dist/handlers/__tests__/parallel-events.test.js.map +0 -1
  328. package/dist/handlers/__tests__/parallel-handler.test.d.ts +0 -14
  329. package/dist/handlers/__tests__/parallel-handler.test.d.ts.map +0 -1
  330. package/dist/handlers/__tests__/parallel-handler.test.js +0 -337
  331. package/dist/handlers/__tests__/parallel-handler.test.js.map +0 -1
  332. package/dist/handlers/__tests__/parallel-join.test.d.ts +0 -9
  333. package/dist/handlers/__tests__/parallel-join.test.d.ts.map +0 -1
  334. package/dist/handlers/__tests__/parallel-join.test.js +0 -267
  335. package/dist/handlers/__tests__/parallel-join.test.js.map +0 -1
  336. package/dist/handlers/__tests__/registry.test.d.ts +0 -14
  337. package/dist/handlers/__tests__/registry.test.d.ts.map +0 -1
  338. package/dist/handlers/__tests__/registry.test.js +0 -315
  339. package/dist/handlers/__tests__/registry.test.js.map +0 -1
  340. package/dist/handlers/__tests__/subgraph-events.test.d.ts +0 -10
  341. package/dist/handlers/__tests__/subgraph-events.test.d.ts.map +0 -1
  342. package/dist/handlers/__tests__/subgraph-events.test.js +0 -189
  343. package/dist/handlers/__tests__/subgraph-events.test.js.map +0 -1
  344. package/dist/handlers/__tests__/subgraph-inheritance.test.d.ts +0 -14
  345. package/dist/handlers/__tests__/subgraph-inheritance.test.d.ts.map +0 -1
  346. package/dist/handlers/__tests__/subgraph-inheritance.test.js +0 -267
  347. package/dist/handlers/__tests__/subgraph-inheritance.test.js.map +0 -1
  348. package/dist/handlers/__tests__/subgraph.test.d.ts +0 -14
  349. package/dist/handlers/__tests__/subgraph.test.d.ts.map +0 -1
  350. package/dist/handlers/__tests__/subgraph.test.js +0 -369
  351. package/dist/handlers/__tests__/subgraph.test.js.map +0 -1
  352. package/dist/handlers/__tests__/tool-handler.test.d.ts +0 -11
  353. package/dist/handlers/__tests__/tool-handler.test.d.ts.map +0 -1
  354. package/dist/handlers/__tests__/tool-handler.test.js +0 -184
  355. package/dist/handlers/__tests__/tool-handler.test.js.map +0 -1
  356. package/dist/handlers/__tests__/tool-scenario.test.d.ts +0 -12
  357. package/dist/handlers/__tests__/tool-scenario.test.d.ts.map +0 -1
  358. package/dist/handlers/__tests__/tool-scenario.test.js +0 -222
  359. package/dist/handlers/__tests__/tool-scenario.test.js.map +0 -1
  360. package/dist/handlers/__tests__/wait-human-handler.test.d.ts +0 -11
  361. package/dist/handlers/__tests__/wait-human-handler.test.d.ts.map +0 -1
  362. package/dist/handlers/__tests__/wait-human-handler.test.js +0 -251
  363. package/dist/handlers/__tests__/wait-human-handler.test.js.map +0 -1
  364. package/dist/llm/__tests__/client.test.d.ts +0 -2
  365. package/dist/llm/__tests__/client.test.d.ts.map +0 -1
  366. package/dist/llm/__tests__/client.test.js +0 -198
  367. package/dist/llm/__tests__/client.test.js.map +0 -1
  368. package/dist/llm/__tests__/types.test.d.ts +0 -2
  369. package/dist/llm/__tests__/types.test.d.ts.map +0 -1
  370. package/dist/llm/__tests__/types.test.js +0 -289
  371. package/dist/llm/__tests__/types.test.js.map +0 -1
  372. package/dist/llm/middleware/__tests__/cost-tracking.test.d.ts +0 -2
  373. package/dist/llm/middleware/__tests__/cost-tracking.test.d.ts.map +0 -1
  374. package/dist/llm/middleware/__tests__/cost-tracking.test.js +0 -73
  375. package/dist/llm/middleware/__tests__/cost-tracking.test.js.map +0 -1
  376. package/dist/llm/middleware/__tests__/logging.test.d.ts +0 -2
  377. package/dist/llm/middleware/__tests__/logging.test.d.ts.map +0 -1
  378. package/dist/llm/middleware/__tests__/logging.test.js +0 -127
  379. package/dist/llm/middleware/__tests__/logging.test.js.map +0 -1
  380. package/dist/llm/middleware/__tests__/retry.test.d.ts +0 -2
  381. package/dist/llm/middleware/__tests__/retry.test.d.ts.map +0 -1
  382. package/dist/llm/middleware/__tests__/retry.test.js +0 -126
  383. package/dist/llm/middleware/__tests__/retry.test.js.map +0 -1
  384. package/dist/llm/providers/__tests__/anthropic.test.d.ts +0 -2
  385. package/dist/llm/providers/__tests__/anthropic.test.d.ts.map +0 -1
  386. package/dist/llm/providers/__tests__/anthropic.test.js +0 -412
  387. package/dist/llm/providers/__tests__/anthropic.test.js.map +0 -1
  388. package/dist/llm/providers/__tests__/gemini.test.d.ts +0 -2
  389. package/dist/llm/providers/__tests__/gemini.test.d.ts.map +0 -1
  390. package/dist/llm/providers/__tests__/gemini.test.js +0 -591
  391. package/dist/llm/providers/__tests__/gemini.test.js.map +0 -1
  392. package/dist/llm/providers/__tests__/openai.test.d.ts +0 -2
  393. package/dist/llm/providers/__tests__/openai.test.d.ts.map +0 -1
  394. package/dist/llm/providers/__tests__/openai.test.js +0 -546
  395. package/dist/llm/providers/__tests__/openai.test.js.map +0 -1
  396. package/dist/persistence/__tests__/factory-queries.test.d.ts +0 -9
  397. package/dist/persistence/__tests__/factory-queries.test.d.ts.map +0 -1
  398. package/dist/persistence/__tests__/factory-queries.test.js +0 -372
  399. package/dist/persistence/__tests__/factory-queries.test.js.map +0 -1
  400. package/dist/persistence/__tests__/factory-schema.test.d.ts +0 -6
  401. package/dist/persistence/__tests__/factory-schema.test.d.ts.map +0 -1
  402. package/dist/persistence/__tests__/factory-schema.test.js +0 -105
  403. package/dist/persistence/__tests__/factory-schema.test.js.map +0 -1
  404. package/dist/scenarios/__tests__/cli-command-list.test.d.ts +0 -7
  405. package/dist/scenarios/__tests__/cli-command-list.test.d.ts.map +0 -1
  406. package/dist/scenarios/__tests__/cli-command-list.test.js +0 -237
  407. package/dist/scenarios/__tests__/cli-command-list.test.js.map +0 -1
  408. package/dist/scenarios/__tests__/cli-command.test.d.ts +0 -11
  409. package/dist/scenarios/__tests__/cli-command.test.d.ts.map +0 -1
  410. package/dist/scenarios/__tests__/cli-command.test.js +0 -275
  411. package/dist/scenarios/__tests__/cli-command.test.js.map +0 -1
  412. package/dist/scenarios/__tests__/integrity-pipeline.test.d.ts +0 -15
  413. package/dist/scenarios/__tests__/integrity-pipeline.test.d.ts.map +0 -1
  414. package/dist/scenarios/__tests__/integrity-pipeline.test.js +0 -318
  415. package/dist/scenarios/__tests__/integrity-pipeline.test.js.map +0 -1
  416. package/dist/scenarios/__tests__/runner-twins.test.d.ts +0 -13
  417. package/dist/scenarios/__tests__/runner-twins.test.d.ts.map +0 -1
  418. package/dist/scenarios/__tests__/runner-twins.test.js +0 -205
  419. package/dist/scenarios/__tests__/runner-twins.test.js.map +0 -1
  420. package/dist/scenarios/__tests__/scorer.test.d.ts +0 -11
  421. package/dist/scenarios/__tests__/scorer.test.d.ts.map +0 -1
  422. package/dist/scenarios/__tests__/scorer.test.js +0 -225
  423. package/dist/scenarios/__tests__/scorer.test.js.map +0 -1
  424. package/dist/scenarios/__tests__/scoring-integration.test.d.ts +0 -8
  425. package/dist/scenarios/__tests__/scoring-integration.test.d.ts.map +0 -1
  426. package/dist/scenarios/__tests__/scoring-integration.test.js +0 -178
  427. package/dist/scenarios/__tests__/scoring-integration.test.js.map +0 -1
  428. package/dist/scenarios/__tests__/store.test.d.ts +0 -5
  429. package/dist/scenarios/__tests__/store.test.d.ts.map +0 -1
  430. package/dist/scenarios/__tests__/store.test.js +0 -169
  431. package/dist/scenarios/__tests__/store.test.js.map +0 -1
  432. package/dist/stylesheet/__tests__/stylesheet.test.d.ts +0 -17
  433. package/dist/stylesheet/__tests__/stylesheet.test.d.ts.map +0 -1
  434. package/dist/stylesheet/__tests__/stylesheet.test.js +0 -368
  435. package/dist/stylesheet/__tests__/stylesheet.test.js.map +0 -1
  436. package/dist/templates/__tests__/templates.test.d.ts +0 -7
  437. package/dist/templates/__tests__/templates.test.d.ts.map +0 -1
  438. package/dist/templates/__tests__/templates.test.js +0 -92
  439. package/dist/templates/__tests__/templates.test.js.map +0 -1
  440. package/dist/twins/__tests__/docker-compose.test.d.ts +0 -13
  441. package/dist/twins/__tests__/docker-compose.test.d.ts.map +0 -1
  442. package/dist/twins/__tests__/docker-compose.test.js +0 -247
  443. package/dist/twins/__tests__/docker-compose.test.js.map +0 -1
  444. package/dist/twins/__tests__/health-monitor.test.d.ts +0 -19
  445. package/dist/twins/__tests__/health-monitor.test.d.ts.map +0 -1
  446. package/dist/twins/__tests__/health-monitor.test.js +0 -301
  447. package/dist/twins/__tests__/health-monitor.test.js.map +0 -1
  448. package/dist/twins/__tests__/integration/e2e.test.d.ts +0 -18
  449. package/dist/twins/__tests__/integration/e2e.test.d.ts.map +0 -1
  450. package/dist/twins/__tests__/integration/e2e.test.js +0 -146
  451. package/dist/twins/__tests__/integration/e2e.test.js.map +0 -1
  452. package/dist/twins/__tests__/integration/health-monitor-integration.test.d.ts +0 -16
  453. package/dist/twins/__tests__/integration/health-monitor-integration.test.d.ts.map +0 -1
  454. package/dist/twins/__tests__/integration/health-monitor-integration.test.js +0 -183
  455. package/dist/twins/__tests__/integration/health-monitor-integration.test.js.map +0 -1
  456. package/dist/twins/__tests__/integration/helpers.d.ts +0 -32
  457. package/dist/twins/__tests__/integration/helpers.d.ts.map +0 -1
  458. package/dist/twins/__tests__/integration/helpers.js +0 -67
  459. package/dist/twins/__tests__/integration/helpers.js.map +0 -1
  460. package/dist/twins/__tests__/integration/lifecycle.test.d.ts +0 -14
  461. package/dist/twins/__tests__/integration/lifecycle.test.d.ts.map +0 -1
  462. package/dist/twins/__tests__/integration/lifecycle.test.js +0 -127
  463. package/dist/twins/__tests__/integration/lifecycle.test.js.map +0 -1
  464. package/dist/twins/__tests__/integration/persistence-integration.test.d.ts +0 -14
  465. package/dist/twins/__tests__/integration/persistence-integration.test.d.ts.map +0 -1
  466. package/dist/twins/__tests__/integration/persistence-integration.test.js +0 -132
  467. package/dist/twins/__tests__/integration/persistence-integration.test.js.map +0 -1
  468. package/dist/twins/__tests__/persistence.test.d.ts +0 -10
  469. package/dist/twins/__tests__/persistence.test.d.ts.map +0 -1
  470. package/dist/twins/__tests__/persistence.test.js +0 -300
  471. package/dist/twins/__tests__/persistence.test.js.map +0 -1
  472. package/dist/twins/__tests__/registry.test.d.ts +0 -7
  473. package/dist/twins/__tests__/registry.test.d.ts.map +0 -1
  474. package/dist/twins/__tests__/registry.test.js +0 -282
  475. package/dist/twins/__tests__/registry.test.js.map +0 -1
  476. package/dist/twins/__tests__/run-state.test.d.ts +0 -9
  477. package/dist/twins/__tests__/run-state.test.d.ts.map +0 -1
  478. package/dist/twins/__tests__/run-state.test.js +0 -112
  479. package/dist/twins/__tests__/run-state.test.js.map +0 -1
  480. package/dist/twins/__tests__/templates-cli.test.d.ts +0 -10
  481. package/dist/twins/__tests__/templates-cli.test.d.ts.map +0 -1
  482. package/dist/twins/__tests__/templates-cli.test.js +0 -187
  483. package/dist/twins/__tests__/templates-cli.test.js.map +0 -1
  484. package/dist/twins/__tests__/templates.test.d.ts +0 -7
  485. package/dist/twins/__tests__/templates.test.d.ts.map +0 -1
  486. package/dist/twins/__tests__/templates.test.js +0 -87
  487. package/dist/twins/__tests__/templates.test.js.map +0 -1
  488. package/dist/twins/__tests__/twins-cli.test.d.ts +0 -11
  489. package/dist/twins/__tests__/twins-cli.test.d.ts.map +0 -1
  490. package/dist/twins/__tests__/twins-cli.test.js +0 -365
  491. package/dist/twins/__tests__/twins-cli.test.js.map +0 -1
@@ -1,432 +0,0 @@
1
- /**
2
- * Convergence controller integration tests for the graph executor.
3
- * Story 45-8: tests that all convergence components are wired into the
4
- * execution loop (goal gate resolution, retry routing, budget enforcement,
5
- * plateau detection, and remediation context injection).
6
- *
7
- * DO NOT modify executor.test.ts — this file is the focused integration
8
- * test for the convergence loop wiring. The existing executor.test.ts
9
- * mocks out the convergence module entirely; these tests use real implementations.
10
- */
11
- import { describe, it, expect, vi, afterEach } from 'vitest';
12
- import { getRemediationContext } from '../../convergence/remediation.js';
13
- import { createGraphExecutor } from '../executor.js';
14
- // ---------------------------------------------------------------------------
15
- // Test helpers
16
- // ---------------------------------------------------------------------------
17
- const minimalNode = {
18
- id: '',
19
- label: '',
20
- shape: '',
21
- type: '',
22
- prompt: '',
23
- maxRetries: 0,
24
- goalGate: false,
25
- retryTarget: '',
26
- fallbackRetryTarget: '',
27
- fidelity: '',
28
- threadId: '',
29
- class: '',
30
- timeout: 0,
31
- llmModel: '',
32
- llmProvider: '',
33
- reasoningEffort: '',
34
- autoStatus: false,
35
- allowPartial: false,
36
- toolCommand: '',
37
- backend: '',
38
- };
39
- function makeNode(id, overrides) {
40
- return { ...minimalNode, id, ...overrides };
41
- }
42
- function makeEdge(fromNode, toNode, overrides) {
43
- return {
44
- fromNode,
45
- toNode,
46
- label: '',
47
- condition: '',
48
- weight: 0,
49
- fidelity: '',
50
- threadId: '',
51
- loopRestart: false,
52
- ...overrides,
53
- };
54
- }
55
- /**
56
- * Build a minimal Graph stub conforming to the Graph interface.
57
- * startNodeId/exitNodeId designate which nodes play those roles.
58
- * opts.retryTarget sets the graph-level retry target.
59
- */
60
- function makeGraph(nodeList, edgeList, startNodeId, exitNodeId, opts) {
61
- const nodeMap = new Map(nodeList.map((n) => [n.id, n]));
62
- return {
63
- id: '',
64
- goal: '',
65
- label: '',
66
- modelStylesheet: '',
67
- defaultMaxRetries: 0,
68
- retryTarget: opts?.retryTarget ?? '',
69
- fallbackRetryTarget: opts?.fallbackRetryTarget ?? '',
70
- defaultFidelity: '',
71
- nodes: nodeMap,
72
- edges: edgeList,
73
- outgoingEdges: (nodeId) => edgeList.filter((e) => e.fromNode === nodeId),
74
- startNode: () => nodeMap.get(startNodeId),
75
- exitNode: () => nodeMap.get(exitNodeId),
76
- };
77
- }
78
- /** Build an IHandlerRegistry that dispatches to per-node handler mocks by node id. */
79
- function makeRegistry(handlerMap) {
80
- return {
81
- register: vi.fn(),
82
- registerShape: vi.fn(),
83
- setDefault: vi.fn(),
84
- resolve: vi.fn().mockImplementation((node) => {
85
- const handler = handlerMap[node.id];
86
- if (!handler)
87
- throw new Error(`No handler registered for node "${node.id}"`);
88
- return handler;
89
- }),
90
- };
91
- }
92
- /** Build a minimal GraphExecutorConfig with test defaults. */
93
- function makeConfig(registry, overrides) {
94
- return {
95
- runId: 'convergence-test-run',
96
- logsRoot: '/tmp/convergence-test',
97
- handlerRegistry: registry,
98
- ...overrides,
99
- };
100
- }
101
- /** Build a mock TypedEventBus that records all emitted events by key. */
102
- function makeEventBus() {
103
- const emitted = {};
104
- return {
105
- emitted,
106
- emit: vi.fn().mockImplementation((event, payload) => {
107
- if (!emitted[event])
108
- emitted[event] = [];
109
- emitted[event].push(payload);
110
- }),
111
- on: vi.fn(),
112
- off: vi.fn(),
113
- };
114
- }
115
- // ---------------------------------------------------------------------------
116
- // Teardown
117
- // ---------------------------------------------------------------------------
118
- afterEach(() => {
119
- vi.restoreAllMocks();
120
- });
121
- // ---------------------------------------------------------------------------
122
- // AC1: Session budget halt takes highest priority
123
- // ---------------------------------------------------------------------------
124
- describe('AC1: Session budget halt takes highest priority', () => {
125
- it('returns FAIL before dispatching any handler when wallClockCapMs is exceeded', async () => {
126
- // Spy on Date.now() so we can control elapsed time deterministically.
127
- // Call #1: SessionBudgetManager constructor records startTime = 0.
128
- // Call #2+: checkBudget() → getElapsedMs() → Date.now() returns 200ms.
129
- // With wallClockCapMs=100, elapsedMs=200 > 100 → budget exceeded before first dispatch.
130
- let nowCallCount = 0;
131
- vi.spyOn(Date, 'now').mockImplementation(() => {
132
- nowCallCount++;
133
- return nowCallCount === 1 ? 0 : 200;
134
- });
135
- const handler = vi.fn();
136
- const registry = makeRegistry({ start: handler });
137
- const graph = makeGraph([makeNode('start'), makeNode('exit')], [makeEdge('start', 'exit')], 'start', 'exit');
138
- const executor = createGraphExecutor();
139
- const result = await executor.run(graph, makeConfig(registry, { wallClockCapMs: 100 }));
140
- expect(result.status).toBe('FAIL');
141
- expect(result.failureReason).toContain('Session budget exceeded');
142
- // No handler was dispatched — budget check fires before dispatch
143
- expect(handler).not.toHaveBeenCalled();
144
- });
145
- });
146
- // ---------------------------------------------------------------------------
147
- // AC2: Pipeline budget halt takes second priority
148
- // ---------------------------------------------------------------------------
149
- describe('AC2: Pipeline budget halt takes second priority', () => {
150
- it('accumulates per-node cost and halts the next dispatch when cap is exceeded', async () => {
151
- // start handler sets 'factory.lastNodeCostUsd': 0.02 → pipelineManager accumulates $0.02.
152
- // On the next loop iteration, pipelineManager.checkBudget(0.01) → 0.02 > 0.01 → FAIL.
153
- const startHandler = vi.fn().mockResolvedValue({
154
- status: 'SUCCESS',
155
- contextUpdates: { 'factory.lastNodeCostUsd': 0.02 },
156
- });
157
- const nextHandler = vi.fn().mockResolvedValue({ status: 'SUCCESS' });
158
- const registry = makeRegistry({ start: startHandler, next: nextHandler });
159
- const graph = makeGraph([makeNode('start'), makeNode('next'), makeNode('exit')], [makeEdge('start', 'next'), makeEdge('next', 'exit')], 'start', 'exit');
160
- const executor = createGraphExecutor();
161
- const result = await executor.run(graph, makeConfig(registry, { pipelineBudgetCapUsd: 0.01 }));
162
- expect(result.status).toBe('FAIL');
163
- expect(result.failureReason).toContain('Pipeline budget exceeded');
164
- // start was dispatched (cost accumulated); next was NOT dispatched (budget halts first)
165
- expect(startHandler).toHaveBeenCalledTimes(1);
166
- expect(nextHandler).not.toHaveBeenCalled();
167
- });
168
- });
169
- // ---------------------------------------------------------------------------
170
- // AC3: Retry target resolved via controller.resolveRetryTarget() at exit node
171
- // ---------------------------------------------------------------------------
172
- describe('AC3: resolveRetryTarget at exit node routes to retry target', () => {
173
- it('routes to fix→goalGate→exit on second iteration when goalGate was unsatisfied', async () => {
174
- // goalGate has goalGate=true but is NOT in the initial start→exit path.
175
- // At exit: goalGate is unsatisfied (never dispatched).
176
- // resolveRetryTarget(goalGate, graph) returns 'fix' via graph.retryTarget.
177
- // fix→goalGate→exit: goalGate dispatched successfully → satisfied → SUCCESS.
178
- const goalGateNode = makeNode('goalGate', { goalGate: true });
179
- const startHandler = vi.fn().mockResolvedValue({ status: 'SUCCESS' });
180
- const fixHandler = vi.fn().mockResolvedValue({ status: 'SUCCESS' });
181
- const goalGateHandler = vi.fn().mockResolvedValue({ status: 'SUCCESS' });
182
- const registry = makeRegistry({
183
- start: startHandler,
184
- fix: fixHandler,
185
- goalGate: goalGateHandler,
186
- });
187
- const graph = makeGraph([makeNode('start'), goalGateNode, makeNode('fix'), makeNode('exit')], [
188
- makeEdge('start', 'exit'),
189
- makeEdge('fix', 'goalGate'),
190
- makeEdge('goalGate', 'exit'),
191
- ], 'start', 'exit', { retryTarget: 'fix' });
192
- const executor = createGraphExecutor();
193
- const result = await executor.run(graph, makeConfig(registry));
194
- expect(result.status).toBe('SUCCESS');
195
- expect(startHandler).toHaveBeenCalledTimes(1);
196
- expect(fixHandler).toHaveBeenCalledTimes(1);
197
- expect(goalGateHandler).toHaveBeenCalledTimes(1);
198
- });
199
- });
200
- // ---------------------------------------------------------------------------
201
- // AC4: No retry target resolves to FAIL return
202
- // ---------------------------------------------------------------------------
203
- describe('AC4: no retry target resolves to FAIL', () => {
204
- it('returns FAIL with "Goal gate failed: no retry target" when no retryTarget is set', async () => {
205
- // goalGate has goalGate=true but no retryTarget exists at any level.
206
- // resolveRetryTarget returns null → FAIL immediately.
207
- const goalGateNode = makeNode('goalGate', { goalGate: true });
208
- const startHandler = vi.fn().mockResolvedValue({ status: 'SUCCESS' });
209
- const registry = makeRegistry({ start: startHandler });
210
- const graph = makeGraph([makeNode('start'), goalGateNode, makeNode('exit')], [makeEdge('start', 'exit')], 'start', 'exit');
211
- const executor = createGraphExecutor();
212
- const result = await executor.run(graph, makeConfig(registry));
213
- expect(result.status).toBe('FAIL');
214
- expect(result.failureReason).toBe('Goal gate failed: no retry target');
215
- });
216
- });
217
- // ---------------------------------------------------------------------------
218
- // AC5: Plateau detection halts convergence loop with FAIL
219
- // ---------------------------------------------------------------------------
220
- describe('AC5: Plateau detection halts convergence loop', () => {
221
- it('returns FAIL with plateau message after window fills with identical scores', async () => {
222
- // goalGate is in graph (goalGate=true) but NOT in any execution path.
223
- // satisfactionScore defaults to 0.0 (never set in context).
224
- // plateauWindow=2, plateauThreshold=0.5 → plateau fires after 2 retries with score=0.0.
225
- //
226
- // Trace:
227
- // start→exit: goalGate unsatisfied → iter=1 → record(1, 0.0) → [0.0] → no plateau → route to fix
228
- // fix→exit: goalGate still unsatisfied → iter=2 → record(2, 0.0) → [0.0, 0.0] → plateau! → FAIL
229
- const goalGateNode = makeNode('goalGate', { goalGate: true });
230
- const startHandler = vi.fn().mockResolvedValue({ status: 'SUCCESS' });
231
- const fixHandler = vi.fn().mockResolvedValue({ status: 'SUCCESS' });
232
- const registry = makeRegistry({ start: startHandler, fix: fixHandler });
233
- const graph = makeGraph([makeNode('start'), goalGateNode, makeNode('fix'), makeNode('exit')], [
234
- makeEdge('start', 'exit'),
235
- makeEdge('fix', 'exit'),
236
- ], 'start', 'exit', { retryTarget: 'fix' });
237
- const executor = createGraphExecutor();
238
- const result = await executor.run(graph, makeConfig(registry, {
239
- plateauWindow: 2,
240
- plateauThreshold: 0.5,
241
- }));
242
- expect(result.status).toBe('FAIL');
243
- expect(result.failureReason).toContain('Convergence plateau detected');
244
- expect(result.failureReason).toContain('2 iteration(s)');
245
- // fix handler was called once (after first retry), then plateau fired on second retry
246
- expect(fixHandler).toHaveBeenCalledTimes(1);
247
- });
248
- });
249
- // ---------------------------------------------------------------------------
250
- // AC6: Remediation context injected into IGraphContext before retry dispatch
251
- // ---------------------------------------------------------------------------
252
- describe('AC6: Remediation context injected before retry dispatch', () => {
253
- it('injects RemediationContext with correct iterationCount and previousFailureReason', async () => {
254
- // fix handler reads the remediation context and stores it for assertion.
255
- let capturedRemediation;
256
- const goalGateNode = makeNode('goalGate', { goalGate: true });
257
- const startHandler = vi.fn().mockResolvedValue({ status: 'SUCCESS' });
258
- const goalGateHandler = vi.fn().mockResolvedValue({ status: 'SUCCESS' });
259
- const fixHandler = vi.fn().mockImplementation(async (_node, ctx) => {
260
- capturedRemediation = getRemediationContext(ctx);
261
- return { status: 'SUCCESS' };
262
- });
263
- const registry = makeRegistry({
264
- start: startHandler,
265
- fix: fixHandler,
266
- goalGate: goalGateHandler,
267
- });
268
- const graph = makeGraph([makeNode('start'), goalGateNode, makeNode('fix'), makeNode('exit')], [
269
- makeEdge('start', 'exit'),
270
- makeEdge('fix', 'goalGate'),
271
- makeEdge('goalGate', 'exit'),
272
- ], 'start', 'exit', { retryTarget: 'fix' });
273
- const executor = createGraphExecutor();
274
- const result = await executor.run(graph, makeConfig(registry));
275
- // Converges to SUCCESS on second iteration (fix→goalGate→exit)
276
- expect(result.status).toBe('SUCCESS');
277
- // Remediation context was injected before fix ran
278
- expect(capturedRemediation).toBeDefined();
279
- expect(capturedRemediation.iterationCount).toBe(1);
280
- // previousFailureReason contains the failing gate node id
281
- expect(capturedRemediation.previousFailureReason).toContain('goalGate');
282
- });
283
- });
284
- // ---------------------------------------------------------------------------
285
- // AC7: Convergence loop exits SUCCESS when goal gates are satisfied
286
- // ---------------------------------------------------------------------------
287
- describe('AC7: Convergence loop exits SUCCESS on convergence', () => {
288
- it('returns SUCCESS after goal gate is satisfied on second iteration', async () => {
289
- // Identical to AC3: verifies that the executor correctly exits with SUCCESS
290
- // rather than continuing to retry after the goal gate is satisfied.
291
- const goalGateNode = makeNode('goalGate', { goalGate: true });
292
- const startHandler = vi.fn().mockResolvedValue({ status: 'SUCCESS' });
293
- const fixHandler = vi.fn().mockResolvedValue({ status: 'SUCCESS' });
294
- const goalGateHandler = vi.fn().mockResolvedValue({ status: 'SUCCESS' });
295
- const registry = makeRegistry({
296
- start: startHandler,
297
- fix: fixHandler,
298
- goalGate: goalGateHandler,
299
- });
300
- const graph = makeGraph([makeNode('start'), goalGateNode, makeNode('fix'), makeNode('exit')], [
301
- makeEdge('start', 'exit'),
302
- makeEdge('fix', 'goalGate'),
303
- makeEdge('goalGate', 'exit'),
304
- ], 'start', 'exit', { retryTarget: 'fix' });
305
- const executor = createGraphExecutor();
306
- const result = await executor.run(graph, makeConfig(registry));
307
- // Iteration 1: start → exit (goalGate unsatisfied → retry to fix)
308
- // Iteration 2: fix → goalGate (SUCCESS) → exit (goalGate satisfied → SUCCESS)
309
- expect(result.status).toBe('SUCCESS');
310
- expect(startHandler).toHaveBeenCalledTimes(1);
311
- expect(fixHandler).toHaveBeenCalledTimes(1);
312
- expect(goalGateHandler).toHaveBeenCalledTimes(1);
313
- });
314
- it('does not retry again after SUCCESS on second iteration (no infinite loop)', async () => {
315
- // Ensures the executor terminates and does not re-enter the convergence loop.
316
- const goalGateNode = makeNode('goalGate', { goalGate: true });
317
- const startHandler = vi.fn().mockResolvedValue({ status: 'SUCCESS' });
318
- const fixHandler = vi.fn().mockResolvedValue({ status: 'SUCCESS' });
319
- const goalGateHandler = vi.fn().mockResolvedValue({ status: 'SUCCESS' });
320
- const registry = makeRegistry({
321
- start: startHandler,
322
- fix: fixHandler,
323
- goalGate: goalGateHandler,
324
- });
325
- const graph = makeGraph([makeNode('start'), goalGateNode, makeNode('fix'), makeNode('exit')], [
326
- makeEdge('start', 'exit'),
327
- makeEdge('fix', 'goalGate'),
328
- makeEdge('goalGate', 'exit'),
329
- ], 'start', 'exit', { retryTarget: 'fix' });
330
- const executor = createGraphExecutor();
331
- const result = await executor.run(graph, makeConfig(registry));
332
- expect(result.status).toBe('SUCCESS');
333
- // Each handler called exactly once — no extra iterations
334
- expect(fixHandler).toHaveBeenCalledTimes(1);
335
- expect(goalGateHandler).toHaveBeenCalledTimes(1);
336
- });
337
- });
338
- // ---------------------------------------------------------------------------
339
- // BUG 1 regression: satisfaction_score key flows from tool handler to plateau
340
- // ---------------------------------------------------------------------------
341
- describe('Satisfaction score key alignment (BUG 1 regression)', () => {
342
- it('reads satisfaction_score from context for plateau detection', async () => {
343
- // Tool handler writes satisfaction_score to context (via contextUpdates).
344
- // The executor reads satisfaction_score (not convergence.satisfactionScore)
345
- // for plateau detection. With window=2 and threshold=0.05, two identical
346
- // scores trigger a plateau. If the key was wrong, score would default to
347
- // 0.0 and plateau would still fire — but on the *wrong* value. We verify
348
- // the actual score value appears in the failure message.
349
- const goalGateNode = makeNode('goalGate', { goalGate: true });
350
- // toolNode returns SUCCESS with satisfaction_score: 0.42 (mimics tool handler output)
351
- const startHandler = vi.fn().mockResolvedValue({
352
- status: 'SUCCESS',
353
- contextUpdates: { satisfaction_score: 0.42 },
354
- });
355
- const fixHandler = vi.fn().mockResolvedValue({
356
- status: 'SUCCESS',
357
- contextUpdates: { satisfaction_score: 0.42 },
358
- });
359
- const registry = makeRegistry({ start: startHandler, fix: fixHandler });
360
- const graph = makeGraph([makeNode('start'), goalGateNode, makeNode('fix'), makeNode('exit')], [
361
- makeEdge('start', 'exit'),
362
- makeEdge('fix', 'exit'),
363
- ], 'start', 'exit', { retryTarget: 'fix' });
364
- const executor = createGraphExecutor();
365
- const result = await executor.run(graph, makeConfig(registry, {
366
- plateauWindow: 2,
367
- plateauThreshold: 0.05,
368
- }));
369
- expect(result.status).toBe('FAIL');
370
- expect(result.failureReason).toContain('Convergence plateau detected');
371
- // The actual score (0.42) must appear in the message — proves the executor
372
- // read the correct context key, not 0.0 (the default when key is missing).
373
- expect(result.failureReason).toContain('0.42');
374
- });
375
- });
376
- // ---------------------------------------------------------------------------
377
- // BUG 2 regression: convergence:budget-exhausted event emission
378
- // ---------------------------------------------------------------------------
379
- describe('convergence:budget-exhausted event emission (BUG 2 regression)', () => {
380
- it('emits convergence:budget-exhausted with level=session when session budget is exceeded', async () => {
381
- // Mock Date.now so SessionBudgetManager sees elapsed > cap
382
- let nowCallCount = 0;
383
- vi.spyOn(Date, 'now').mockImplementation(() => {
384
- nowCallCount++;
385
- return nowCallCount === 1 ? 0 : 200;
386
- });
387
- const handler = vi.fn();
388
- const registry = makeRegistry({ start: handler });
389
- const eventBus = makeEventBus();
390
- const graph = makeGraph([makeNode('start'), makeNode('exit')], [makeEdge('start', 'exit')], 'start', 'exit');
391
- const executor = createGraphExecutor();
392
- const result = await executor.run(graph, makeConfig(registry, {
393
- wallClockCapMs: 100,
394
- eventBus,
395
- }));
396
- expect(result.status).toBe('FAIL');
397
- // Verify the event was emitted
398
- const budgetEvents = eventBus.emitted['convergence:budget-exhausted'] ?? [];
399
- expect(budgetEvents).toHaveLength(1);
400
- expect(budgetEvents[0]).toEqual({
401
- runId: 'convergence-test-run',
402
- level: 'session',
403
- reason: 'wall clock budget exhausted',
404
- });
405
- });
406
- it('emits convergence:budget-exhausted with level=pipeline when pipeline budget is exceeded', async () => {
407
- // start handler sets cost that exceeds pipeline cap
408
- const startHandler = vi.fn().mockResolvedValue({
409
- status: 'SUCCESS',
410
- contextUpdates: { 'factory.lastNodeCostUsd': 0.02 },
411
- });
412
- const nextHandler = vi.fn().mockResolvedValue({ status: 'SUCCESS' });
413
- const registry = makeRegistry({ start: startHandler, next: nextHandler });
414
- const eventBus = makeEventBus();
415
- const graph = makeGraph([makeNode('start'), makeNode('next'), makeNode('exit')], [makeEdge('start', 'next'), makeEdge('next', 'exit')], 'start', 'exit');
416
- const executor = createGraphExecutor();
417
- const result = await executor.run(graph, makeConfig(registry, {
418
- pipelineBudgetCapUsd: 0.01,
419
- eventBus,
420
- }));
421
- expect(result.status).toBe('FAIL');
422
- // Verify the event was emitted
423
- const budgetEvents = eventBus.emitted['convergence:budget-exhausted'] ?? [];
424
- expect(budgetEvents).toHaveLength(1);
425
- expect(budgetEvents[0]).toEqual({
426
- runId: 'convergence-test-run',
427
- level: 'pipeline',
428
- reason: expect.stringContaining('pipeline budget exhausted'),
429
- });
430
- });
431
- });
432
- //# sourceMappingURL=executor-convergence.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"executor-convergence.test.js","sourceRoot":"","sources":["../../../src/graph/__tests__/executor-convergence.test.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Integration tests for graph executor fidelity-based context summarization.
3
- *
4
- * Covers AC4 (pre-dispatch summarization fires / no-ops correctly),
5
- * AC5 (graph:context-summarized event emitted),
6
- * AC6 (checkpoint-resume fidelity 'summary:high' → level 'high').
7
- * Story 49-5.
8
- *
9
- * Approach: mock CheckpointManager (file I/O) and ConvergenceController (avoid
10
- * real goal-gate evaluation). MockSummaryEngine is a plain class — no vi.mock().
11
- */
12
- export {};
13
- //# sourceMappingURL=executor-fidelity.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"executor-fidelity.test.d.ts","sourceRoot":"","sources":["../../../src/graph/__tests__/executor-fidelity.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}