@substrate-ai/factory 0.20.1 → 0.20.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (486) hide show
  1. package/README.md +39 -0
  2. package/package.json +6 -3
  3. package/dist/__tests__/config.test.d.ts +0 -11
  4. package/dist/__tests__/config.test.d.ts.map +0 -1
  5. package/dist/__tests__/config.test.js +0 -215
  6. package/dist/__tests__/config.test.js.map +0 -1
  7. package/dist/__tests__/factory-run-command.test.d.ts +0 -12
  8. package/dist/__tests__/factory-run-command.test.d.ts.map +0 -1
  9. package/dist/__tests__/factory-run-command.test.js +0 -454
  10. package/dist/__tests__/factory-run-command.test.js.map +0 -1
  11. package/dist/__tests__/factory-validate-command.test.d.ts +0 -15
  12. package/dist/__tests__/factory-validate-command.test.d.ts.map +0 -1
  13. package/dist/__tests__/factory-validate-command.test.js +0 -339
  14. package/dist/__tests__/factory-validate-command.test.js.map +0 -1
  15. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.d.ts +0 -72
  16. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.d.ts.map +0 -1
  17. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.js +0 -121
  18. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.js.map +0 -1
  19. package/dist/__tests__/fixtures/llm-edge-routing.dot.d.ts +0 -28
  20. package/dist/__tests__/fixtures/llm-edge-routing.dot.d.ts.map +0 -1
  21. package/dist/__tests__/fixtures/llm-edge-routing.dot.js +0 -55
  22. package/dist/__tests__/fixtures/llm-edge-routing.dot.js.map +0 -1
  23. package/dist/__tests__/fixtures/manager-loop.dot.d.ts +0 -34
  24. package/dist/__tests__/fixtures/manager-loop.dot.d.ts.map +0 -1
  25. package/dist/__tests__/fixtures/manager-loop.dot.js +0 -61
  26. package/dist/__tests__/fixtures/manager-loop.dot.js.map +0 -1
  27. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.d.ts +0 -42
  28. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.d.ts.map +0 -1
  29. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.js +0 -118
  30. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.js.map +0 -1
  31. package/dist/__tests__/fixtures/subgraph-parent.dot.d.ts +0 -35
  32. package/dist/__tests__/fixtures/subgraph-parent.dot.d.ts.map +0 -1
  33. package/dist/__tests__/fixtures/subgraph-parent.dot.js +0 -69
  34. package/dist/__tests__/fixtures/subgraph-parent.dot.js.map +0 -1
  35. package/dist/__tests__/integration/advanced-graph-events.test.d.ts +0 -19
  36. package/dist/__tests__/integration/advanced-graph-events.test.d.ts.map +0 -1
  37. package/dist/__tests__/integration/advanced-graph-events.test.js +0 -288
  38. package/dist/__tests__/integration/advanced-graph-events.test.js.map +0 -1
  39. package/dist/__tests__/integration/checkpoint-resume.test.d.ts +0 -10
  40. package/dist/__tests__/integration/checkpoint-resume.test.d.ts.map +0 -1
  41. package/dist/__tests__/integration/checkpoint-resume.test.js +0 -125
  42. package/dist/__tests__/integration/checkpoint-resume.test.js.map +0 -1
  43. package/dist/__tests__/integration/conditional-pipeline.test.d.ts +0 -10
  44. package/dist/__tests__/integration/conditional-pipeline.test.d.ts.map +0 -1
  45. package/dist/__tests__/integration/conditional-pipeline.test.js +0 -106
  46. package/dist/__tests__/integration/conditional-pipeline.test.js.map +0 -1
  47. package/dist/__tests__/integration/convergence-validation.test.d.ts +0 -14
  48. package/dist/__tests__/integration/convergence-validation.test.d.ts.map +0 -1
  49. package/dist/__tests__/integration/convergence-validation.test.js +0 -449
  50. package/dist/__tests__/integration/convergence-validation.test.js.map +0 -1
  51. package/dist/__tests__/integration/epic44-coverage-gate.test.d.ts +0 -12
  52. package/dist/__tests__/integration/epic44-coverage-gate.test.d.ts.map +0 -1
  53. package/dist/__tests__/integration/epic44-coverage-gate.test.js +0 -58
  54. package/dist/__tests__/integration/epic44-coverage-gate.test.js.map +0 -1
  55. package/dist/__tests__/integration/epic45-coverage-gate.test.d.ts +0 -11
  56. package/dist/__tests__/integration/epic45-coverage-gate.test.d.ts.map +0 -1
  57. package/dist/__tests__/integration/epic45-coverage-gate.test.js +0 -64
  58. package/dist/__tests__/integration/epic45-coverage-gate.test.js.map +0 -1
  59. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.d.ts +0 -2
  60. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.d.ts.map +0 -1
  61. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.js +0 -285
  62. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.js.map +0 -1
  63. package/dist/__tests__/integration/events.test.d.ts +0 -8
  64. package/dist/__tests__/integration/events.test.d.ts.map +0 -1
  65. package/dist/__tests__/integration/events.test.js +0 -194
  66. package/dist/__tests__/integration/events.test.js.map +0 -1
  67. package/dist/__tests__/integration/graphs.d.ts +0 -59
  68. package/dist/__tests__/integration/graphs.d.ts.map +0 -1
  69. package/dist/__tests__/integration/graphs.js +0 -164
  70. package/dist/__tests__/integration/graphs.js.map +0 -1
  71. package/dist/__tests__/integration/helpers.d.ts +0 -127
  72. package/dist/__tests__/integration/helpers.d.ts.map +0 -1
  73. package/dist/__tests__/integration/helpers.js +0 -167
  74. package/dist/__tests__/integration/helpers.js.map +0 -1
  75. package/dist/__tests__/integration/integrity.test.d.ts +0 -8
  76. package/dist/__tests__/integration/integrity.test.d.ts.map +0 -1
  77. package/dist/__tests__/integration/integrity.test.js +0 -198
  78. package/dist/__tests__/integration/integrity.test.js.map +0 -1
  79. package/dist/__tests__/integration/llm-edge-routing.test.d.ts +0 -21
  80. package/dist/__tests__/integration/llm-edge-routing.test.d.ts.map +0 -1
  81. package/dist/__tests__/integration/llm-edge-routing.test.js +0 -341
  82. package/dist/__tests__/integration/llm-edge-routing.test.js.map +0 -1
  83. package/dist/__tests__/integration/manager-loop.test.d.ts +0 -24
  84. package/dist/__tests__/integration/manager-loop.test.d.ts.map +0 -1
  85. package/dist/__tests__/integration/manager-loop.test.js +0 -276
  86. package/dist/__tests__/integration/manager-loop.test.js.map +0 -1
  87. package/dist/__tests__/integration/multi-type-graph.test.d.ts +0 -10
  88. package/dist/__tests__/integration/multi-type-graph.test.d.ts.map +0 -1
  89. package/dist/__tests__/integration/multi-type-graph.test.js +0 -100
  90. package/dist/__tests__/integration/multi-type-graph.test.js.map +0 -1
  91. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.d.ts +0 -22
  92. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.d.ts.map +0 -1
  93. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.js +0 -515
  94. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.js.map +0 -1
  95. package/dist/__tests__/integration/persistence.test.d.ts +0 -8
  96. package/dist/__tests__/integration/persistence.test.d.ts.map +0 -1
  97. package/dist/__tests__/integration/persistence.test.js +0 -129
  98. package/dist/__tests__/integration/persistence.test.js.map +0 -1
  99. package/dist/__tests__/integration/pipeline-templates-integration.test.d.ts +0 -16
  100. package/dist/__tests__/integration/pipeline-templates-integration.test.d.ts.map +0 -1
  101. package/dist/__tests__/integration/pipeline-templates-integration.test.js +0 -171
  102. package/dist/__tests__/integration/pipeline-templates-integration.test.js.map +0 -1
  103. package/dist/__tests__/integration/scenario-pipeline.test.d.ts +0 -11
  104. package/dist/__tests__/integration/scenario-pipeline.test.d.ts.map +0 -1
  105. package/dist/__tests__/integration/scenario-pipeline.test.js +0 -243
  106. package/dist/__tests__/integration/scenario-pipeline.test.js.map +0 -1
  107. package/dist/__tests__/integration/stylesheet-application.test.d.ts +0 -12
  108. package/dist/__tests__/integration/stylesheet-application.test.d.ts.map +0 -1
  109. package/dist/__tests__/integration/stylesheet-application.test.js +0 -119
  110. package/dist/__tests__/integration/stylesheet-application.test.js.map +0 -1
  111. package/dist/__tests__/integration/subgraph-execution.test.d.ts +0 -24
  112. package/dist/__tests__/integration/subgraph-execution.test.d.ts.map +0 -1
  113. package/dist/__tests__/integration/subgraph-execution.test.js +0 -291
  114. package/dist/__tests__/integration/subgraph-execution.test.js.map +0 -1
  115. package/dist/__tests__/integration/validation-errors.test.d.ts +0 -8
  116. package/dist/__tests__/integration/validation-errors.test.d.ts.map +0 -1
  117. package/dist/__tests__/integration/validation-errors.test.js +0 -150
  118. package/dist/__tests__/integration/validation-errors.test.js.map +0 -1
  119. package/dist/agent/__tests__/loop-detection.test.d.ts +0 -2
  120. package/dist/agent/__tests__/loop-detection.test.d.ts.map +0 -1
  121. package/dist/agent/__tests__/loop-detection.test.js +0 -236
  122. package/dist/agent/__tests__/loop-detection.test.js.map +0 -1
  123. package/dist/agent/__tests__/loop.test.d.ts +0 -2
  124. package/dist/agent/__tests__/loop.test.d.ts.map +0 -1
  125. package/dist/agent/__tests__/loop.test.js +0 -868
  126. package/dist/agent/__tests__/loop.test.js.map +0 -1
  127. package/dist/agent/__tests__/truncation.test.d.ts +0 -2
  128. package/dist/agent/__tests__/truncation.test.d.ts.map +0 -1
  129. package/dist/agent/__tests__/truncation.test.js +0 -276
  130. package/dist/agent/__tests__/truncation.test.js.map +0 -1
  131. package/dist/agent/tools/__tests__/anthropic-tools.test.d.ts +0 -6
  132. package/dist/agent/tools/__tests__/anthropic-tools.test.d.ts.map +0 -1
  133. package/dist/agent/tools/__tests__/anthropic-tools.test.js +0 -49
  134. package/dist/agent/tools/__tests__/anthropic-tools.test.js.map +0 -1
  135. package/dist/agent/tools/__tests__/environment.test.d.ts +0 -6
  136. package/dist/agent/tools/__tests__/environment.test.d.ts.map +0 -1
  137. package/dist/agent/tools/__tests__/environment.test.js +0 -33
  138. package/dist/agent/tools/__tests__/environment.test.js.map +0 -1
  139. package/dist/agent/tools/__tests__/gemini-tools.test.d.ts +0 -6
  140. package/dist/agent/tools/__tests__/gemini-tools.test.d.ts.map +0 -1
  141. package/dist/agent/tools/__tests__/gemini-tools.test.js +0 -98
  142. package/dist/agent/tools/__tests__/gemini-tools.test.js.map +0 -1
  143. package/dist/agent/tools/__tests__/openai-tools.test.d.ts +0 -6
  144. package/dist/agent/tools/__tests__/openai-tools.test.d.ts.map +0 -1
  145. package/dist/agent/tools/__tests__/openai-tools.test.js +0 -53
  146. package/dist/agent/tools/__tests__/openai-tools.test.js.map +0 -1
  147. package/dist/agent/tools/__tests__/patch.test.d.ts +0 -6
  148. package/dist/agent/tools/__tests__/patch.test.d.ts.map +0 -1
  149. package/dist/agent/tools/__tests__/patch.test.js +0 -116
  150. package/dist/agent/tools/__tests__/patch.test.js.map +0 -1
  151. package/dist/agent/tools/__tests__/profiles.test.d.ts +0 -6
  152. package/dist/agent/tools/__tests__/profiles.test.d.ts.map +0 -1
  153. package/dist/agent/tools/__tests__/profiles.test.js +0 -125
  154. package/dist/agent/tools/__tests__/profiles.test.js.map +0 -1
  155. package/dist/agent/tools/__tests__/registry.test.d.ts +0 -6
  156. package/dist/agent/tools/__tests__/registry.test.d.ts.map +0 -1
  157. package/dist/agent/tools/__tests__/registry.test.js +0 -94
  158. package/dist/agent/tools/__tests__/registry.test.js.map +0 -1
  159. package/dist/agent/tools/__tests__/shared.test.d.ts +0 -6
  160. package/dist/agent/tools/__tests__/shared.test.d.ts.map +0 -1
  161. package/dist/agent/tools/__tests__/shared.test.js +0 -131
  162. package/dist/agent/tools/__tests__/shared.test.js.map +0 -1
  163. package/dist/backend/__tests__/direct-backend.test.d.ts +0 -14
  164. package/dist/backend/__tests__/direct-backend.test.d.ts.map +0 -1
  165. package/dist/backend/__tests__/direct-backend.test.js +0 -393
  166. package/dist/backend/__tests__/direct-backend.test.js.map +0 -1
  167. package/dist/backend/__tests__/direct-bootstrap.test.d.ts +0 -7
  168. package/dist/backend/__tests__/direct-bootstrap.test.d.ts.map +0 -1
  169. package/dist/backend/__tests__/direct-bootstrap.test.js +0 -177
  170. package/dist/backend/__tests__/direct-bootstrap.test.js.map +0 -1
  171. package/dist/backend/__tests__/mock-backend.test.d.ts +0 -7
  172. package/dist/backend/__tests__/mock-backend.test.d.ts.map +0 -1
  173. package/dist/backend/__tests__/mock-backend.test.js +0 -273
  174. package/dist/backend/__tests__/mock-backend.test.js.map +0 -1
  175. package/dist/backend/__tests__/parity.test.d.ts +0 -17
  176. package/dist/backend/__tests__/parity.test.d.ts.map +0 -1
  177. package/dist/backend/__tests__/parity.test.js +0 -411
  178. package/dist/backend/__tests__/parity.test.js.map +0 -1
  179. package/dist/context/__tests__/auto-summarizer.test.d.ts +0 -14
  180. package/dist/context/__tests__/auto-summarizer.test.d.ts.map +0 -1
  181. package/dist/context/__tests__/auto-summarizer.test.js +0 -189
  182. package/dist/context/__tests__/auto-summarizer.test.js.map +0 -1
  183. package/dist/context/__tests__/context-cli-command.test.d.ts +0 -7
  184. package/dist/context/__tests__/context-cli-command.test.d.ts.map +0 -1
  185. package/dist/context/__tests__/context-cli-command.test.js +0 -331
  186. package/dist/context/__tests__/context-cli-command.test.js.map +0 -1
  187. package/dist/context/__tests__/pyramid-summary-integration.test.d.ts +0 -2
  188. package/dist/context/__tests__/pyramid-summary-integration.test.d.ts.map +0 -1
  189. package/dist/context/__tests__/pyramid-summary-integration.test.js +0 -533
  190. package/dist/context/__tests__/pyramid-summary-integration.test.js.map +0 -1
  191. package/dist/context/__tests__/summarizer.test.d.ts +0 -2
  192. package/dist/context/__tests__/summarizer.test.d.ts.map +0 -1
  193. package/dist/context/__tests__/summarizer.test.js +0 -189
  194. package/dist/context/__tests__/summarizer.test.js.map +0 -1
  195. package/dist/context/__tests__/summary-cache.test.d.ts +0 -2
  196. package/dist/context/__tests__/summary-cache.test.d.ts.map +0 -1
  197. package/dist/context/__tests__/summary-cache.test.js +0 -214
  198. package/dist/context/__tests__/summary-cache.test.js.map +0 -1
  199. package/dist/context/__tests__/summary-metrics.test.d.ts +0 -2
  200. package/dist/context/__tests__/summary-metrics.test.d.ts.map +0 -1
  201. package/dist/context/__tests__/summary-metrics.test.js +0 -172
  202. package/dist/context/__tests__/summary-metrics.test.js.map +0 -1
  203. package/dist/context/__tests__/summary-types.test.d.ts +0 -2
  204. package/dist/context/__tests__/summary-types.test.d.ts.map +0 -1
  205. package/dist/context/__tests__/summary-types.test.js +0 -130
  206. package/dist/context/__tests__/summary-types.test.js.map +0 -1
  207. package/dist/convergence/__tests__/budget.test.d.ts +0 -6
  208. package/dist/convergence/__tests__/budget.test.d.ts.map +0 -1
  209. package/dist/convergence/__tests__/budget.test.js +0 -187
  210. package/dist/convergence/__tests__/budget.test.js.map +0 -1
  211. package/dist/convergence/__tests__/controller.test.d.ts +0 -9
  212. package/dist/convergence/__tests__/controller.test.d.ts.map +0 -1
  213. package/dist/convergence/__tests__/controller.test.js +0 -585
  214. package/dist/convergence/__tests__/controller.test.js.map +0 -1
  215. package/dist/convergence/__tests__/dual-signal.test.d.ts +0 -14
  216. package/dist/convergence/__tests__/dual-signal.test.d.ts.map +0 -1
  217. package/dist/convergence/__tests__/dual-signal.test.js +0 -123
  218. package/dist/convergence/__tests__/dual-signal.test.js.map +0 -1
  219. package/dist/convergence/__tests__/epic46-integration.test.d.ts +0 -15
  220. package/dist/convergence/__tests__/epic46-integration.test.d.ts.map +0 -1
  221. package/dist/convergence/__tests__/epic46-integration.test.js +0 -522
  222. package/dist/convergence/__tests__/epic46-integration.test.js.map +0 -1
  223. package/dist/convergence/__tests__/plateau.test.d.ts +0 -6
  224. package/dist/convergence/__tests__/plateau.test.d.ts.map +0 -1
  225. package/dist/convergence/__tests__/plateau.test.js +0 -163
  226. package/dist/convergence/__tests__/plateau.test.js.map +0 -1
  227. package/dist/convergence/__tests__/remediation.test.d.ts +0 -11
  228. package/dist/convergence/__tests__/remediation.test.d.ts.map +0 -1
  229. package/dist/convergence/__tests__/remediation.test.js +0 -209
  230. package/dist/convergence/__tests__/remediation.test.js.map +0 -1
  231. package/dist/convergence/__tests__/scenario-primary.test.d.ts +0 -13
  232. package/dist/convergence/__tests__/scenario-primary.test.d.ts.map +0 -1
  233. package/dist/convergence/__tests__/scenario-primary.test.js +0 -183
  234. package/dist/convergence/__tests__/scenario-primary.test.js.map +0 -1
  235. package/dist/factory-command.test.d.ts +0 -8
  236. package/dist/factory-command.test.d.ts.map +0 -1
  237. package/dist/factory-command.test.js +0 -304
  238. package/dist/factory-command.test.js.map +0 -1
  239. package/dist/graph/__tests__/attractor-compliance.test.d.ts +0 -10
  240. package/dist/graph/__tests__/attractor-compliance.test.d.ts.map +0 -1
  241. package/dist/graph/__tests__/attractor-compliance.test.js +0 -766
  242. package/dist/graph/__tests__/attractor-compliance.test.js.map +0 -1
  243. package/dist/graph/__tests__/checkpoint.test.d.ts +0 -8
  244. package/dist/graph/__tests__/checkpoint.test.d.ts.map +0 -1
  245. package/dist/graph/__tests__/checkpoint.test.js +0 -329
  246. package/dist/graph/__tests__/checkpoint.test.js.map +0 -1
  247. package/dist/graph/__tests__/condition-parser.test.d.ts +0 -14
  248. package/dist/graph/__tests__/condition-parser.test.d.ts.map +0 -1
  249. package/dist/graph/__tests__/condition-parser.test.js +0 -406
  250. package/dist/graph/__tests__/condition-parser.test.js.map +0 -1
  251. package/dist/graph/__tests__/context.test.d.ts +0 -14
  252. package/dist/graph/__tests__/context.test.d.ts.map +0 -1
  253. package/dist/graph/__tests__/context.test.js +0 -276
  254. package/dist/graph/__tests__/context.test.js.map +0 -1
  255. package/dist/graph/__tests__/edge-selector-events.test.d.ts +0 -11
  256. package/dist/graph/__tests__/edge-selector-events.test.d.ts.map +0 -1
  257. package/dist/graph/__tests__/edge-selector-events.test.js +0 -184
  258. package/dist/graph/__tests__/edge-selector-events.test.js.map +0 -1
  259. package/dist/graph/__tests__/edge-selector.test.d.ts +0 -6
  260. package/dist/graph/__tests__/edge-selector.test.d.ts.map +0 -1
  261. package/dist/graph/__tests__/edge-selector.test.js +0 -452
  262. package/dist/graph/__tests__/edge-selector.test.js.map +0 -1
  263. package/dist/graph/__tests__/executor-convergence.test.d.ts +0 -12
  264. package/dist/graph/__tests__/executor-convergence.test.d.ts.map +0 -1
  265. package/dist/graph/__tests__/executor-convergence.test.js +0 -432
  266. package/dist/graph/__tests__/executor-convergence.test.js.map +0 -1
  267. package/dist/graph/__tests__/executor-fidelity.test.d.ts +0 -13
  268. package/dist/graph/__tests__/executor-fidelity.test.d.ts.map +0 -1
  269. package/dist/graph/__tests__/executor-fidelity.test.js +0 -335
  270. package/dist/graph/__tests__/executor-fidelity.test.js.map +0 -1
  271. package/dist/graph/__tests__/executor.test.d.ts +0 -14
  272. package/dist/graph/__tests__/executor.test.d.ts.map +0 -1
  273. package/dist/graph/__tests__/executor.test.js +0 -901
  274. package/dist/graph/__tests__/executor.test.js.map +0 -1
  275. package/dist/graph/__tests__/fidelity.test.d.ts +0 -8
  276. package/dist/graph/__tests__/fidelity.test.d.ts.map +0 -1
  277. package/dist/graph/__tests__/fidelity.test.js +0 -135
  278. package/dist/graph/__tests__/fidelity.test.js.map +0 -1
  279. package/dist/graph/__tests__/llm-evaluator.test.d.ts +0 -7
  280. package/dist/graph/__tests__/llm-evaluator.test.d.ts.map +0 -1
  281. package/dist/graph/__tests__/llm-evaluator.test.js +0 -106
  282. package/dist/graph/__tests__/llm-evaluator.test.js.map +0 -1
  283. package/dist/graph/__tests__/parser-chaining.test.d.ts +0 -13
  284. package/dist/graph/__tests__/parser-chaining.test.d.ts.map +0 -1
  285. package/dist/graph/__tests__/parser-chaining.test.js +0 -215
  286. package/dist/graph/__tests__/parser-chaining.test.js.map +0 -1
  287. package/dist/graph/__tests__/parser.test.d.ts +0 -22
  288. package/dist/graph/__tests__/parser.test.d.ts.map +0 -1
  289. package/dist/graph/__tests__/parser.test.js +0 -452
  290. package/dist/graph/__tests__/parser.test.js.map +0 -1
  291. package/dist/graph/__tests__/run-state.test.d.ts +0 -13
  292. package/dist/graph/__tests__/run-state.test.d.ts.map +0 -1
  293. package/dist/graph/__tests__/run-state.test.js +0 -189
  294. package/dist/graph/__tests__/run-state.test.js.map +0 -1
  295. package/dist/graph/__tests__/transformer.test.d.ts +0 -16
  296. package/dist/graph/__tests__/transformer.test.d.ts.map +0 -1
  297. package/dist/graph/__tests__/transformer.test.js +0 -350
  298. package/dist/graph/__tests__/transformer.test.js.map +0 -1
  299. package/dist/graph/__tests__/validator-errors.test.d.ts +0 -15
  300. package/dist/graph/__tests__/validator-errors.test.d.ts.map +0 -1
  301. package/dist/graph/__tests__/validator-errors.test.js +0 -572
  302. package/dist/graph/__tests__/validator-errors.test.js.map +0 -1
  303. package/dist/graph/__tests__/validator-warnings.test.d.ts +0 -15
  304. package/dist/graph/__tests__/validator-warnings.test.d.ts.map +0 -1
  305. package/dist/graph/__tests__/validator-warnings.test.js +0 -363
  306. package/dist/graph/__tests__/validator-warnings.test.js.map +0 -1
  307. package/dist/handlers/__tests__/codergen-handler.test.d.ts +0 -14
  308. package/dist/handlers/__tests__/codergen-handler.test.d.ts.map +0 -1
  309. package/dist/handlers/__tests__/codergen-handler.test.js +0 -442
  310. package/dist/handlers/__tests__/codergen-handler.test.js.map +0 -1
  311. package/dist/handlers/__tests__/fan-in.test.d.ts +0 -14
  312. package/dist/handlers/__tests__/fan-in.test.d.ts.map +0 -1
  313. package/dist/handlers/__tests__/fan-in.test.js +0 -399
  314. package/dist/handlers/__tests__/fan-in.test.js.map +0 -1
  315. package/dist/handlers/__tests__/join-policy.test.d.ts +0 -9
  316. package/dist/handlers/__tests__/join-policy.test.d.ts.map +0 -1
  317. package/dist/handlers/__tests__/join-policy.test.js +0 -201
  318. package/dist/handlers/__tests__/join-policy.test.js.map +0 -1
  319. package/dist/handlers/__tests__/manager-loop.test.d.ts +0 -14
  320. package/dist/handlers/__tests__/manager-loop.test.d.ts.map +0 -1
  321. package/dist/handlers/__tests__/manager-loop.test.js +0 -322
  322. package/dist/handlers/__tests__/manager-loop.test.js.map +0 -1
  323. package/dist/handlers/__tests__/parallel-events.test.d.ts +0 -12
  324. package/dist/handlers/__tests__/parallel-events.test.d.ts.map +0 -1
  325. package/dist/handlers/__tests__/parallel-events.test.js +0 -252
  326. package/dist/handlers/__tests__/parallel-events.test.js.map +0 -1
  327. package/dist/handlers/__tests__/parallel-handler.test.d.ts +0 -14
  328. package/dist/handlers/__tests__/parallel-handler.test.d.ts.map +0 -1
  329. package/dist/handlers/__tests__/parallel-handler.test.js +0 -337
  330. package/dist/handlers/__tests__/parallel-handler.test.js.map +0 -1
  331. package/dist/handlers/__tests__/parallel-join.test.d.ts +0 -9
  332. package/dist/handlers/__tests__/parallel-join.test.d.ts.map +0 -1
  333. package/dist/handlers/__tests__/parallel-join.test.js +0 -267
  334. package/dist/handlers/__tests__/parallel-join.test.js.map +0 -1
  335. package/dist/handlers/__tests__/registry.test.d.ts +0 -14
  336. package/dist/handlers/__tests__/registry.test.d.ts.map +0 -1
  337. package/dist/handlers/__tests__/registry.test.js +0 -315
  338. package/dist/handlers/__tests__/registry.test.js.map +0 -1
  339. package/dist/handlers/__tests__/subgraph-events.test.d.ts +0 -10
  340. package/dist/handlers/__tests__/subgraph-events.test.d.ts.map +0 -1
  341. package/dist/handlers/__tests__/subgraph-events.test.js +0 -189
  342. package/dist/handlers/__tests__/subgraph-events.test.js.map +0 -1
  343. package/dist/handlers/__tests__/subgraph-inheritance.test.d.ts +0 -14
  344. package/dist/handlers/__tests__/subgraph-inheritance.test.d.ts.map +0 -1
  345. package/dist/handlers/__tests__/subgraph-inheritance.test.js +0 -267
  346. package/dist/handlers/__tests__/subgraph-inheritance.test.js.map +0 -1
  347. package/dist/handlers/__tests__/subgraph.test.d.ts +0 -14
  348. package/dist/handlers/__tests__/subgraph.test.d.ts.map +0 -1
  349. package/dist/handlers/__tests__/subgraph.test.js +0 -369
  350. package/dist/handlers/__tests__/subgraph.test.js.map +0 -1
  351. package/dist/handlers/__tests__/tool-handler.test.d.ts +0 -11
  352. package/dist/handlers/__tests__/tool-handler.test.d.ts.map +0 -1
  353. package/dist/handlers/__tests__/tool-handler.test.js +0 -184
  354. package/dist/handlers/__tests__/tool-handler.test.js.map +0 -1
  355. package/dist/handlers/__tests__/tool-scenario.test.d.ts +0 -12
  356. package/dist/handlers/__tests__/tool-scenario.test.d.ts.map +0 -1
  357. package/dist/handlers/__tests__/tool-scenario.test.js +0 -222
  358. package/dist/handlers/__tests__/tool-scenario.test.js.map +0 -1
  359. package/dist/handlers/__tests__/wait-human-handler.test.d.ts +0 -11
  360. package/dist/handlers/__tests__/wait-human-handler.test.d.ts.map +0 -1
  361. package/dist/handlers/__tests__/wait-human-handler.test.js +0 -251
  362. package/dist/handlers/__tests__/wait-human-handler.test.js.map +0 -1
  363. package/dist/llm/__tests__/client.test.d.ts +0 -2
  364. package/dist/llm/__tests__/client.test.d.ts.map +0 -1
  365. package/dist/llm/__tests__/client.test.js +0 -198
  366. package/dist/llm/__tests__/client.test.js.map +0 -1
  367. package/dist/llm/__tests__/types.test.d.ts +0 -2
  368. package/dist/llm/__tests__/types.test.d.ts.map +0 -1
  369. package/dist/llm/__tests__/types.test.js +0 -289
  370. package/dist/llm/__tests__/types.test.js.map +0 -1
  371. package/dist/llm/middleware/__tests__/cost-tracking.test.d.ts +0 -2
  372. package/dist/llm/middleware/__tests__/cost-tracking.test.d.ts.map +0 -1
  373. package/dist/llm/middleware/__tests__/cost-tracking.test.js +0 -73
  374. package/dist/llm/middleware/__tests__/cost-tracking.test.js.map +0 -1
  375. package/dist/llm/middleware/__tests__/logging.test.d.ts +0 -2
  376. package/dist/llm/middleware/__tests__/logging.test.d.ts.map +0 -1
  377. package/dist/llm/middleware/__tests__/logging.test.js +0 -127
  378. package/dist/llm/middleware/__tests__/logging.test.js.map +0 -1
  379. package/dist/llm/middleware/__tests__/retry.test.d.ts +0 -2
  380. package/dist/llm/middleware/__tests__/retry.test.d.ts.map +0 -1
  381. package/dist/llm/middleware/__tests__/retry.test.js +0 -126
  382. package/dist/llm/middleware/__tests__/retry.test.js.map +0 -1
  383. package/dist/llm/providers/__tests__/anthropic.test.d.ts +0 -2
  384. package/dist/llm/providers/__tests__/anthropic.test.d.ts.map +0 -1
  385. package/dist/llm/providers/__tests__/anthropic.test.js +0 -412
  386. package/dist/llm/providers/__tests__/anthropic.test.js.map +0 -1
  387. package/dist/llm/providers/__tests__/gemini.test.d.ts +0 -2
  388. package/dist/llm/providers/__tests__/gemini.test.d.ts.map +0 -1
  389. package/dist/llm/providers/__tests__/gemini.test.js +0 -591
  390. package/dist/llm/providers/__tests__/gemini.test.js.map +0 -1
  391. package/dist/llm/providers/__tests__/openai.test.d.ts +0 -2
  392. package/dist/llm/providers/__tests__/openai.test.d.ts.map +0 -1
  393. package/dist/llm/providers/__tests__/openai.test.js +0 -546
  394. package/dist/llm/providers/__tests__/openai.test.js.map +0 -1
  395. package/dist/persistence/__tests__/factory-queries.test.d.ts +0 -9
  396. package/dist/persistence/__tests__/factory-queries.test.d.ts.map +0 -1
  397. package/dist/persistence/__tests__/factory-queries.test.js +0 -372
  398. package/dist/persistence/__tests__/factory-queries.test.js.map +0 -1
  399. package/dist/persistence/__tests__/factory-schema.test.d.ts +0 -6
  400. package/dist/persistence/__tests__/factory-schema.test.d.ts.map +0 -1
  401. package/dist/persistence/__tests__/factory-schema.test.js +0 -105
  402. package/dist/persistence/__tests__/factory-schema.test.js.map +0 -1
  403. package/dist/scenarios/__tests__/cli-command-list.test.d.ts +0 -7
  404. package/dist/scenarios/__tests__/cli-command-list.test.d.ts.map +0 -1
  405. package/dist/scenarios/__tests__/cli-command-list.test.js +0 -237
  406. package/dist/scenarios/__tests__/cli-command-list.test.js.map +0 -1
  407. package/dist/scenarios/__tests__/cli-command.test.d.ts +0 -11
  408. package/dist/scenarios/__tests__/cli-command.test.d.ts.map +0 -1
  409. package/dist/scenarios/__tests__/cli-command.test.js +0 -275
  410. package/dist/scenarios/__tests__/cli-command.test.js.map +0 -1
  411. package/dist/scenarios/__tests__/integrity-pipeline.test.d.ts +0 -15
  412. package/dist/scenarios/__tests__/integrity-pipeline.test.d.ts.map +0 -1
  413. package/dist/scenarios/__tests__/integrity-pipeline.test.js +0 -318
  414. package/dist/scenarios/__tests__/integrity-pipeline.test.js.map +0 -1
  415. package/dist/scenarios/__tests__/runner-twins.test.d.ts +0 -13
  416. package/dist/scenarios/__tests__/runner-twins.test.d.ts.map +0 -1
  417. package/dist/scenarios/__tests__/runner-twins.test.js +0 -205
  418. package/dist/scenarios/__tests__/runner-twins.test.js.map +0 -1
  419. package/dist/scenarios/__tests__/scorer.test.d.ts +0 -11
  420. package/dist/scenarios/__tests__/scorer.test.d.ts.map +0 -1
  421. package/dist/scenarios/__tests__/scorer.test.js +0 -225
  422. package/dist/scenarios/__tests__/scorer.test.js.map +0 -1
  423. package/dist/scenarios/__tests__/scoring-integration.test.d.ts +0 -8
  424. package/dist/scenarios/__tests__/scoring-integration.test.d.ts.map +0 -1
  425. package/dist/scenarios/__tests__/scoring-integration.test.js +0 -178
  426. package/dist/scenarios/__tests__/scoring-integration.test.js.map +0 -1
  427. package/dist/scenarios/__tests__/store.test.d.ts +0 -5
  428. package/dist/scenarios/__tests__/store.test.d.ts.map +0 -1
  429. package/dist/scenarios/__tests__/store.test.js +0 -169
  430. package/dist/scenarios/__tests__/store.test.js.map +0 -1
  431. package/dist/stylesheet/__tests__/stylesheet.test.d.ts +0 -17
  432. package/dist/stylesheet/__tests__/stylesheet.test.d.ts.map +0 -1
  433. package/dist/stylesheet/__tests__/stylesheet.test.js +0 -368
  434. package/dist/stylesheet/__tests__/stylesheet.test.js.map +0 -1
  435. package/dist/templates/__tests__/templates.test.d.ts +0 -7
  436. package/dist/templates/__tests__/templates.test.d.ts.map +0 -1
  437. package/dist/templates/__tests__/templates.test.js +0 -92
  438. package/dist/templates/__tests__/templates.test.js.map +0 -1
  439. package/dist/twins/__tests__/docker-compose.test.d.ts +0 -13
  440. package/dist/twins/__tests__/docker-compose.test.d.ts.map +0 -1
  441. package/dist/twins/__tests__/docker-compose.test.js +0 -247
  442. package/dist/twins/__tests__/docker-compose.test.js.map +0 -1
  443. package/dist/twins/__tests__/health-monitor.test.d.ts +0 -19
  444. package/dist/twins/__tests__/health-monitor.test.d.ts.map +0 -1
  445. package/dist/twins/__tests__/health-monitor.test.js +0 -301
  446. package/dist/twins/__tests__/health-monitor.test.js.map +0 -1
  447. package/dist/twins/__tests__/integration/e2e.test.d.ts +0 -18
  448. package/dist/twins/__tests__/integration/e2e.test.d.ts.map +0 -1
  449. package/dist/twins/__tests__/integration/e2e.test.js +0 -146
  450. package/dist/twins/__tests__/integration/e2e.test.js.map +0 -1
  451. package/dist/twins/__tests__/integration/helpers.d.ts +0 -32
  452. package/dist/twins/__tests__/integration/helpers.d.ts.map +0 -1
  453. package/dist/twins/__tests__/integration/helpers.js +0 -67
  454. package/dist/twins/__tests__/integration/helpers.js.map +0 -1
  455. package/dist/twins/__tests__/integration/lifecycle.test.d.ts +0 -14
  456. package/dist/twins/__tests__/integration/lifecycle.test.d.ts.map +0 -1
  457. package/dist/twins/__tests__/integration/lifecycle.test.js +0 -127
  458. package/dist/twins/__tests__/integration/lifecycle.test.js.map +0 -1
  459. package/dist/twins/__tests__/integration/persistence-integration.test.d.ts +0 -14
  460. package/dist/twins/__tests__/integration/persistence-integration.test.d.ts.map +0 -1
  461. package/dist/twins/__tests__/integration/persistence-integration.test.js +0 -132
  462. package/dist/twins/__tests__/integration/persistence-integration.test.js.map +0 -1
  463. package/dist/twins/__tests__/persistence.test.d.ts +0 -10
  464. package/dist/twins/__tests__/persistence.test.d.ts.map +0 -1
  465. package/dist/twins/__tests__/persistence.test.js +0 -300
  466. package/dist/twins/__tests__/persistence.test.js.map +0 -1
  467. package/dist/twins/__tests__/registry.test.d.ts +0 -7
  468. package/dist/twins/__tests__/registry.test.d.ts.map +0 -1
  469. package/dist/twins/__tests__/registry.test.js +0 -282
  470. package/dist/twins/__tests__/registry.test.js.map +0 -1
  471. package/dist/twins/__tests__/run-state.test.d.ts +0 -9
  472. package/dist/twins/__tests__/run-state.test.d.ts.map +0 -1
  473. package/dist/twins/__tests__/run-state.test.js +0 -112
  474. package/dist/twins/__tests__/run-state.test.js.map +0 -1
  475. package/dist/twins/__tests__/templates-cli.test.d.ts +0 -10
  476. package/dist/twins/__tests__/templates-cli.test.d.ts.map +0 -1
  477. package/dist/twins/__tests__/templates-cli.test.js +0 -187
  478. package/dist/twins/__tests__/templates-cli.test.js.map +0 -1
  479. package/dist/twins/__tests__/templates.test.d.ts +0 -7
  480. package/dist/twins/__tests__/templates.test.d.ts.map +0 -1
  481. package/dist/twins/__tests__/templates.test.js +0 -87
  482. package/dist/twins/__tests__/templates.test.js.map +0 -1
  483. package/dist/twins/__tests__/twins-cli.test.d.ts +0 -11
  484. package/dist/twins/__tests__/twins-cli.test.d.ts.map +0 -1
  485. package/dist/twins/__tests__/twins-cli.test.js +0 -365
  486. 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"}