@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,522 +0,0 @@
1
- /**
2
- * epic46-integration.test.ts
3
- *
4
- * End-to-end integration tests for Epic 46 Satisfaction Scoring:
5
- * - Dual-signal Phase 2 agreement tracking (AC2)
6
- * - Scenario-primary mode advisory events (AC3)
7
- * - Score persistence roundtrip (AC4)
8
- * - Multi-iteration score history (AC5)
9
- * - Factory run listing and upsert semantics (AC6)
10
- * - Combined end-to-end flow (AC1–AC6)
11
- *
12
- * Story 46-8.
13
- */
14
- import { describe, it, expect, vi, beforeEach } from 'vitest';
15
- import { evaluateDualSignal, createDualSignalCoordinator } from '../dual-signal.js';
16
- import { createDatabaseAdapter } from '@substrate-ai/core';
17
- import { factorySchema } from '../../persistence/factory-schema.js';
18
- import { upsertGraphRun, insertScenarioResult, getScenarioResultsForRun, listGraphRuns, } from '../../persistence/factory-queries.js';
19
- import { createSatisfactionScorer } from '../../scenarios/scorer.js';
20
- // ---------------------------------------------------------------------------
21
- // Helpers
22
- // ---------------------------------------------------------------------------
23
- function makeRunResult(scenarios) {
24
- const passedCount = scenarios.filter(s => s.status === 'pass').length;
25
- return {
26
- scenarios: scenarios.map(s => ({
27
- name: s.name,
28
- status: s.status,
29
- exitCode: s.status === 'pass' ? 0 : 1,
30
- stdout: '',
31
- stderr: s.status === 'fail' ? 'assertion failed' : '',
32
- durationMs: 100,
33
- })),
34
- summary: {
35
- total: scenarios.length,
36
- passed: passedCount,
37
- failed: scenarios.length - passedCount,
38
- },
39
- durationMs: 300,
40
- };
41
- }
42
- function makeGraphRunInput(id, status, overrides = {}) {
43
- return {
44
- id,
45
- graph_file: 'pipeline.dot',
46
- graph_goal: 'test goal',
47
- status,
48
- started_at: new Date(Date.now() - 1000).toISOString(),
49
- node_count: 3,
50
- ...overrides,
51
- };
52
- }
53
- // ---------------------------------------------------------------------------
54
- // Dual-signal Phase 2 agreement tracking (AC2)
55
- // ---------------------------------------------------------------------------
56
- describe('Dual-signal Phase 2 agreement tracking', () => {
57
- // 8 agreeing pairs and 2 disagreeing pairs
58
- // Agreeing: SHIP_IT/score≥0.8 or NEEDS_MAJOR_REWORK/score<0.8
59
- // Disagreeing: SHIP_IT/score<0.8 or NEEDS_MINOR_FIXES/score≥0.8
60
- const threshold = 0.8;
61
- it('SHIP_IT with score=0.9 (≥0.8) returns AGREE', () => {
62
- const result = evaluateDualSignal('SHIP_IT', 0.9, threshold);
63
- expect(result.agreement).toBe('AGREE');
64
- expect(result.authoritativeDecision).toBe('SHIP_IT');
65
- });
66
- it('SHIP_IT with score=0.85 (≥0.8) returns AGREE', () => {
67
- const result = evaluateDualSignal('SHIP_IT', 0.85, threshold);
68
- expect(result.agreement).toBe('AGREE');
69
- expect(result.authoritativeDecision).toBe('SHIP_IT');
70
- });
71
- it('LGTM_WITH_NOTES with score=0.95 (≥0.8) returns AGREE', () => {
72
- const result = evaluateDualSignal('LGTM_WITH_NOTES', 0.95, threshold);
73
- expect(result.agreement).toBe('AGREE');
74
- expect(result.authoritativeDecision).toBe('LGTM_WITH_NOTES');
75
- });
76
- it('NEEDS_MAJOR_REWORK with score=0.3 (<0.8) returns AGREE', () => {
77
- const result = evaluateDualSignal('NEEDS_MAJOR_REWORK', 0.3, threshold);
78
- expect(result.agreement).toBe('AGREE');
79
- expect(result.authoritativeDecision).toBe('NEEDS_MAJOR_REWORK');
80
- });
81
- it('NEEDS_MAJOR_REWORK with score=0.5 (<0.8) returns AGREE', () => {
82
- const result = evaluateDualSignal('NEEDS_MAJOR_REWORK', 0.5, threshold);
83
- expect(result.agreement).toBe('AGREE');
84
- expect(result.authoritativeDecision).toBe('NEEDS_MAJOR_REWORK');
85
- });
86
- it('NEEDS_MINOR_FIXES with score=0.2 (<0.8) returns AGREE', () => {
87
- const result = evaluateDualSignal('NEEDS_MINOR_FIXES', 0.2, threshold);
88
- expect(result.agreement).toBe('AGREE');
89
- expect(result.authoritativeDecision).toBe('NEEDS_MINOR_FIXES');
90
- });
91
- it('NEEDS_MINOR_FIXES with score=0.4 (<0.8) returns AGREE', () => {
92
- const result = evaluateDualSignal('NEEDS_MINOR_FIXES', 0.4, threshold);
93
- expect(result.agreement).toBe('AGREE');
94
- expect(result.authoritativeDecision).toBe('NEEDS_MINOR_FIXES');
95
- });
96
- it('SHIP_IT with score=1.0 (≥0.8) returns AGREE', () => {
97
- const result = evaluateDualSignal('SHIP_IT', 1.0, threshold);
98
- expect(result.agreement).toBe('AGREE');
99
- expect(result.authoritativeDecision).toBe('SHIP_IT');
100
- });
101
- // Disagreeing pair 1: SHIP_IT but score < 0.8
102
- it('SHIP_IT with score=0.6 (<0.8) returns DISAGREE', () => {
103
- const result = evaluateDualSignal('SHIP_IT', 0.6, threshold);
104
- expect(result.agreement).toBe('DISAGREE');
105
- expect(result.authoritativeDecision).toBe('SHIP_IT');
106
- });
107
- // Disagreeing pair 2: NEEDS_MINOR_FIXES but score >= 0.8
108
- it('NEEDS_MINOR_FIXES with score=0.85 (≥0.8) returns DISAGREE', () => {
109
- const result = evaluateDualSignal('NEEDS_MINOR_FIXES', 0.85, threshold);
110
- expect(result.agreement).toBe('DISAGREE');
111
- expect(result.authoritativeDecision).toBe('NEEDS_MINOR_FIXES');
112
- });
113
- it('LGTM_WITH_NOTES is treated as code review pass (codeReviewPassed=true)', () => {
114
- const result = evaluateDualSignal('LGTM_WITH_NOTES', 0.5, threshold);
115
- expect(result.codeReviewPassed).toBe(true);
116
- expect(result.agreement).toBe('DISAGREE');
117
- });
118
- it('score === threshold returns scenarioPassed=true (boundary condition)', () => {
119
- const result = evaluateDualSignal('SHIP_IT', 0.8, threshold);
120
- expect(result.scenarioPassed).toBe(true);
121
- expect(result.agreement).toBe('AGREE');
122
- });
123
- });
124
- // ---------------------------------------------------------------------------
125
- // Scenario-primary mode — advisory events and gate control (AC3)
126
- // ---------------------------------------------------------------------------
127
- describe('Scenario-primary mode — advisory events and gate control', () => {
128
- let mockBus;
129
- beforeEach(() => {
130
- mockBus = { emit: vi.fn() };
131
- vi.clearAllMocks();
132
- });
133
- it('emits scenario:score-computed with passes=true and scenario:advisory-computed when score passes but code review fails', () => {
134
- const coordinator = createDualSignalCoordinator({
135
- eventBus: mockBus,
136
- threshold: 0.8,
137
- qualityMode: 'scenario-primary',
138
- });
139
- coordinator.evaluate('NEEDS_MAJOR_REWORK', 0.9, 'run-1');
140
- const emitMock = vi.mocked(mockBus.emit);
141
- expect(emitMock).toHaveBeenCalledWith('scenario:score-computed', expect.objectContaining({
142
- runId: 'run-1',
143
- passes: true,
144
- score: 0.9,
145
- threshold: 0.8,
146
- }));
147
- expect(emitMock).toHaveBeenCalledWith('scenario:advisory-computed', expect.objectContaining({
148
- runId: 'run-1',
149
- verdict: 'NEEDS_MAJOR_REWORK',
150
- codeReviewPassed: false,
151
- score: 0.9,
152
- threshold: 0.8,
153
- agreement: 'DISAGREE',
154
- }));
155
- });
156
- it('emits scenario:score-computed with passes=false when score fails (code review passes)', () => {
157
- const coordinator = createDualSignalCoordinator({
158
- eventBus: mockBus,
159
- threshold: 0.8,
160
- qualityMode: 'scenario-primary',
161
- });
162
- coordinator.evaluate('SHIP_IT', 0.6, 'run-2');
163
- const emitMock = vi.mocked(mockBus.emit);
164
- expect(emitMock).toHaveBeenCalledWith('scenario:score-computed', expect.objectContaining({
165
- runId: 'run-2',
166
- passes: false,
167
- }));
168
- expect(emitMock).toHaveBeenCalledWith('scenario:advisory-computed', expect.objectContaining({
169
- runId: 'run-2',
170
- agreement: 'DISAGREE',
171
- codeReviewPassed: true,
172
- }));
173
- });
174
- it('emits advisory-computed with agreement=AGREE when both signals agree', () => {
175
- const coordinator = createDualSignalCoordinator({
176
- eventBus: mockBus,
177
- threshold: 0.8,
178
- qualityMode: 'scenario-primary',
179
- });
180
- coordinator.evaluate('SHIP_IT', 0.85, 'run-3');
181
- expect(vi.mocked(mockBus.emit)).toHaveBeenCalledWith('scenario:advisory-computed', expect.objectContaining({
182
- runId: 'run-3',
183
- agreement: 'AGREE',
184
- }));
185
- });
186
- it('does NOT emit scenario:advisory-computed in default dual-signal mode', () => {
187
- const coordinator = createDualSignalCoordinator({
188
- eventBus: mockBus,
189
- threshold: 0.8,
190
- // qualityMode not set — defaults to undefined (not scenario-primary)
191
- });
192
- coordinator.evaluate('SHIP_IT', 0.9, 'run-4');
193
- const emitMock = vi.mocked(mockBus.emit);
194
- const advisoryCalls = emitMock.mock.calls.filter(call => call[0] === 'scenario:advisory-computed');
195
- expect(advisoryCalls).toHaveLength(0);
196
- });
197
- it('threads runId correctly into both emitted event payloads', () => {
198
- const coordinator = createDualSignalCoordinator({
199
- eventBus: mockBus,
200
- threshold: 0.8,
201
- qualityMode: 'scenario-primary',
202
- });
203
- coordinator.evaluate('NEEDS_MINOR_FIXES', 0.9, 'specific-run-id-xyz');
204
- const emitMock = vi.mocked(mockBus.emit);
205
- const scoreCall = emitMock.mock.calls.find(c => c[0] === 'scenario:score-computed');
206
- const advisoryCall = emitMock.mock.calls.find(c => c[0] === 'scenario:advisory-computed');
207
- expect(scoreCall?.[1]).toMatchObject({ runId: 'specific-run-id-xyz' });
208
- expect(advisoryCall?.[1]).toMatchObject({ runId: 'specific-run-id-xyz' });
209
- });
210
- it('evaluate() returns a DualSignalResult whose fields match the emitted payload', () => {
211
- const coordinator = createDualSignalCoordinator({
212
- eventBus: mockBus,
213
- threshold: 0.8,
214
- qualityMode: 'scenario-primary',
215
- });
216
- const result = coordinator.evaluate('NEEDS_MAJOR_REWORK', 0.9, 'run-5');
217
- const emitMock = vi.mocked(mockBus.emit);
218
- const scoreCall = emitMock.mock.calls.find(c => c[0] === 'scenario:score-computed');
219
- const payload = scoreCall?.[1];
220
- expect(result.score).toBe(payload.score);
221
- expect(result.scenarioPassed).toBe(payload.passes);
222
- expect(result.agreement).toBe(payload.agreement);
223
- expect(result.authoritativeDecision).toBe('NEEDS_MAJOR_REWORK');
224
- });
225
- });
226
- // ---------------------------------------------------------------------------
227
- // Score persistence roundtrip (AC4, AC5)
228
- // ---------------------------------------------------------------------------
229
- describe('Score persistence roundtrip', () => {
230
- let adapter;
231
- beforeEach(async () => {
232
- adapter = createDatabaseAdapter({ backend: 'memory' });
233
- await factorySchema(adapter);
234
- vi.clearAllMocks();
235
- });
236
- it('AC4: inserts and retrieves one scenario result with full breakdown', async () => {
237
- const runId = 'persist-test-001';
238
- await upsertGraphRun(adapter, makeGraphRunInput(runId, 'running'));
239
- const breakdown = [{ name: 'critical', passed: true, weight: 3.0, contribution: 0.60 }];
240
- const input = {
241
- run_id: runId,
242
- node_id: 'scenario-node',
243
- iteration: 1,
244
- total_scenarios: 1,
245
- passed: 1,
246
- failed: 0,
247
- satisfaction_score: 0.80,
248
- threshold: 0.80,
249
- passes: true,
250
- details: JSON.stringify(breakdown),
251
- };
252
- await insertScenarioResult(adapter, input);
253
- const rows = await getScenarioResultsForRun(adapter, runId);
254
- expect(rows).toHaveLength(1);
255
- expect(rows[0].run_id).toBe(runId);
256
- expect(rows[0].satisfaction_score).toBeCloseTo(0.80, 10);
257
- expect(rows[0].passes).toBe(true);
258
- expect(rows[0].threshold).toBeCloseTo(0.80, 10);
259
- expect(rows[0].node_id).toBe('scenario-node');
260
- expect(rows[0].iteration).toBe(1);
261
- const parsedBreakdown = JSON.parse(rows[0].details);
262
- expect(parsedBreakdown).toEqual(breakdown);
263
- expect(parsedBreakdown[0].name).toBe('critical');
264
- expect(parsedBreakdown[0].passed).toBe(true);
265
- expect(parsedBreakdown[0].weight).toBe(3.0);
266
- expect(parsedBreakdown[0].contribution).toBeCloseTo(0.60, 10);
267
- });
268
- it('handles empty/null details without parse error on retrieve', async () => {
269
- const runId = 'persist-test-002';
270
- await upsertGraphRun(adapter, makeGraphRunInput(runId, 'running'));
271
- const input = {
272
- run_id: runId,
273
- node_id: 'node-1',
274
- iteration: 1,
275
- total_scenarios: 2,
276
- passed: 1,
277
- failed: 1,
278
- satisfaction_score: 0.50,
279
- threshold: 0.80,
280
- passes: false,
281
- // No details field
282
- };
283
- await insertScenarioResult(adapter, input);
284
- const rows = await getScenarioResultsForRun(adapter, runId);
285
- expect(rows).toHaveLength(1);
286
- expect(rows[0].details).toBeNull();
287
- // Confirm it doesn't throw when attempting to parse (null guard)
288
- const detail = rows[0].details;
289
- expect(() => detail !== null ? JSON.parse(detail) : null).not.toThrow();
290
- });
291
- it('AC5: inserts 3 iterations and retrieves in ascending order with correct scores', async () => {
292
- const runId = 'persist-test-003';
293
- await upsertGraphRun(adapter, makeGraphRunInput(runId, 'running'));
294
- await insertScenarioResult(adapter, {
295
- run_id: runId, node_id: 'node-1', iteration: 1,
296
- total_scenarios: 5, passed: 3, failed: 2,
297
- satisfaction_score: 0.60, threshold: 0.80, passes: false,
298
- });
299
- await insertScenarioResult(adapter, {
300
- run_id: runId, node_id: 'node-1', iteration: 2,
301
- total_scenarios: 5, passed: 4, failed: 1,
302
- satisfaction_score: 0.72, threshold: 0.80, passes: false,
303
- });
304
- await insertScenarioResult(adapter, {
305
- run_id: runId, node_id: 'node-1', iteration: 3,
306
- total_scenarios: 5, passed: 5, failed: 0,
307
- satisfaction_score: 0.85, threshold: 0.80, passes: true,
308
- });
309
- const rows = await getScenarioResultsForRun(adapter, runId);
310
- expect(rows).toHaveLength(3);
311
- // Ascending iteration order
312
- expect(rows[0].iteration).toBe(1);
313
- expect(rows[1].iteration).toBe(2);
314
- expect(rows[2].iteration).toBe(3);
315
- // Correct scores
316
- expect(rows[0].satisfaction_score).toBeCloseTo(0.60, 10);
317
- expect(rows[1].satisfaction_score).toBeCloseTo(0.72, 10);
318
- expect(rows[2].satisfaction_score).toBeCloseTo(0.85, 10);
319
- // passes correctness
320
- expect(rows[0].passes).toBe(false);
321
- expect(rows[1].passes).toBe(false);
322
- expect(rows[2].passes).toBe(true);
323
- });
324
- it('getScenarioResultsForRun returns empty array for unknown run_id', async () => {
325
- const rows = await getScenarioResultsForRun(adapter, 'nonexistent-run-000');
326
- expect(rows).toEqual([]);
327
- });
328
- it('stores passes=false correctly and coerces integer 0 to boolean false on read', async () => {
329
- const runId = 'persist-test-004';
330
- await upsertGraphRun(adapter, makeGraphRunInput(runId, 'running'));
331
- await insertScenarioResult(adapter, {
332
- run_id: runId, node_id: 'node-1', iteration: 1,
333
- total_scenarios: 5, passed: 2, failed: 3,
334
- satisfaction_score: 0.40, threshold: 0.80, passes: false,
335
- });
336
- const rows = await getScenarioResultsForRun(adapter, runId);
337
- expect(rows[0].passes).toBe(false);
338
- expect(typeof rows[0].passes).toBe('boolean');
339
- });
340
- it('stores passes=true correctly and coerces integer 1 to boolean true on read', async () => {
341
- const runId = 'persist-test-005';
342
- await upsertGraphRun(adapter, makeGraphRunInput(runId, 'running'));
343
- await insertScenarioResult(adapter, {
344
- run_id: runId, node_id: 'node-1', iteration: 1,
345
- total_scenarios: 5, passed: 5, failed: 0,
346
- satisfaction_score: 1.0, threshold: 0.80, passes: true,
347
- });
348
- const rows = await getScenarioResultsForRun(adapter, runId);
349
- expect(rows[0].passes).toBe(true);
350
- expect(typeof rows[0].passes).toBe('boolean');
351
- });
352
- });
353
- // ---------------------------------------------------------------------------
354
- // Factory run listing and upsert semantics (AC6)
355
- // ---------------------------------------------------------------------------
356
- describe('Factory run listing and upsert semantics', () => {
357
- let adapter;
358
- beforeEach(async () => {
359
- adapter = createDatabaseAdapter({ backend: 'memory' });
360
- await factorySchema(adapter);
361
- vi.clearAllMocks();
362
- });
363
- it('upsertGraphRun overwrites (does not duplicate) on second call with same id', async () => {
364
- const runId = 'upsert-test-001';
365
- await upsertGraphRun(adapter, makeGraphRunInput(runId, 'running'));
366
- await upsertGraphRun(adapter, makeGraphRunInput(runId, 'completed', {
367
- final_outcome: 'SUCCESS',
368
- completed_at: new Date().toISOString(),
369
- }));
370
- const runs = await listGraphRuns(adapter, 10);
371
- expect(runs).toHaveLength(1);
372
- expect(runs[0].id).toBe(runId);
373
- expect(runs[0].status).toBe('completed');
374
- expect(runs[0].final_outcome).toBe('SUCCESS');
375
- });
376
- it('listGraphRuns returns two distinct runs in descending started_at order', async () => {
377
- const now = Date.now();
378
- await upsertGraphRun(adapter, {
379
- id: 'run-older',
380
- graph_file: 'pipeline.dot',
381
- status: 'completed',
382
- started_at: new Date(now - 2000).toISOString(),
383
- });
384
- await upsertGraphRun(adapter, {
385
- id: 'run-newer',
386
- graph_file: 'pipeline.dot',
387
- status: 'running',
388
- started_at: new Date(now - 500).toISOString(),
389
- });
390
- const runs = await listGraphRuns(adapter, 10);
391
- expect(runs).toHaveLength(2);
392
- expect(runs[0].id).toBe('run-newer');
393
- expect(runs[1].id).toBe('run-older');
394
- });
395
- it('listGraphRuns with limit=1 returns only the most-recent run', async () => {
396
- const now = Date.now();
397
- await upsertGraphRun(adapter, {
398
- id: 'run-a',
399
- graph_file: 'pipeline.dot',
400
- status: 'completed',
401
- started_at: new Date(now - 3000).toISOString(),
402
- });
403
- await upsertGraphRun(adapter, {
404
- id: 'run-b',
405
- graph_file: 'pipeline.dot',
406
- status: 'completed',
407
- started_at: new Date(now - 1000).toISOString(),
408
- });
409
- await upsertGraphRun(adapter, {
410
- id: 'run-c',
411
- graph_file: 'pipeline.dot',
412
- status: 'running',
413
- started_at: new Date(now).toISOString(),
414
- });
415
- const runs = await listGraphRuns(adapter, 1);
416
- expect(runs).toHaveLength(1);
417
- expect(runs[0].id).toBe('run-c');
418
- });
419
- it('listGraphRuns on empty database returns empty array', async () => {
420
- const runs = await listGraphRuns(adapter, 10);
421
- expect(runs).toEqual([]);
422
- });
423
- });
424
- // ---------------------------------------------------------------------------
425
- // End-to-end: scoring → persistence → listing (AC1–AC6)
426
- // ---------------------------------------------------------------------------
427
- describe('End-to-end: scoring → persistence → listing', () => {
428
- let adapter;
429
- beforeEach(async () => {
430
- adapter = createDatabaseAdapter({ backend: 'memory' });
431
- await factorySchema(adapter);
432
- vi.clearAllMocks();
433
- });
434
- it('computes score, persists, retrieves, and satisfaction_score matches', async () => {
435
- const scorer = createSatisfactionScorer(0.8);
436
- const weights = { critical: 3.0, 'standard-1': 1.0, 'standard-2': 1.0 };
437
- const runResult = makeRunResult([
438
- { name: 'critical', status: 'pass' },
439
- { name: 'standard-1', status: 'pass' },
440
- { name: 'standard-2', status: 'fail' },
441
- ]);
442
- const scoreResult = scorer.compute(runResult, weights);
443
- const runId = 'e2e-run-001';
444
- await upsertGraphRun(adapter, makeGraphRunInput(runId, 'running'));
445
- await insertScenarioResult(adapter, {
446
- run_id: runId,
447
- node_id: 'scenario-node',
448
- iteration: 1,
449
- total_scenarios: 3,
450
- passed: 2,
451
- failed: 1,
452
- satisfaction_score: scoreResult.score,
453
- threshold: scoreResult.threshold,
454
- passes: scoreResult.passes,
455
- details: JSON.stringify(scoreResult.breakdown),
456
- });
457
- const rows = await getScenarioResultsForRun(adapter, runId);
458
- expect(rows).toHaveLength(1);
459
- expect(rows[0].satisfaction_score).toBeCloseTo(scoreResult.score, 10);
460
- expect(rows[0].passes).toBe(scoreResult.passes);
461
- });
462
- it('run appears in listGraphRuns with status=running after initial insert', async () => {
463
- const runId = 'e2e-run-002';
464
- await upsertGraphRun(adapter, makeGraphRunInput(runId, 'running'));
465
- const runs = await listGraphRuns(adapter, 10);
466
- const run = runs.find(r => r.id === runId);
467
- expect(run).toBeDefined();
468
- expect(run.status).toBe('running');
469
- });
470
- it('upsert to completed status updates the run correctly', async () => {
471
- const runId = 'e2e-run-003';
472
- await upsertGraphRun(adapter, makeGraphRunInput(runId, 'running'));
473
- // Update to completed
474
- await upsertGraphRun(adapter, makeGraphRunInput(runId, 'completed', {
475
- final_outcome: 'SUCCESS',
476
- completed_at: new Date().toISOString(),
477
- }));
478
- const runs = await listGraphRuns(adapter, 10);
479
- const run = runs.find(r => r.id === runId);
480
- expect(run).toBeDefined();
481
- expect(run.status).toBe('completed');
482
- expect(run.final_outcome).toBe('SUCCESS');
483
- // Confirm only 1 row (no duplicate)
484
- const matchingRuns = runs.filter(r => r.id === runId);
485
- expect(matchingRuns).toHaveLength(1);
486
- });
487
- it('breakdown persisted via JSON.stringify survives roundtrip correctly', async () => {
488
- const scorer = createSatisfactionScorer(0.8);
489
- const weights = { critical: 3.0, 'standard-1': 1.0, 'standard-2': 1.0 };
490
- const runResult = makeRunResult([
491
- { name: 'critical', status: 'pass' },
492
- { name: 'standard-1', status: 'pass' },
493
- { name: 'standard-2', status: 'fail' },
494
- ]);
495
- const scoreResult = scorer.compute(runResult, weights);
496
- const runId = 'e2e-run-004';
497
- await upsertGraphRun(adapter, makeGraphRunInput(runId, 'running'));
498
- await insertScenarioResult(adapter, {
499
- run_id: runId,
500
- node_id: 'node-1',
501
- iteration: 1,
502
- total_scenarios: 3,
503
- passed: 2,
504
- failed: 1,
505
- satisfaction_score: scoreResult.score,
506
- threshold: scoreResult.threshold,
507
- passes: scoreResult.passes,
508
- details: JSON.stringify(scoreResult.breakdown),
509
- });
510
- const rows = await getScenarioResultsForRun(adapter, runId);
511
- expect(rows).toHaveLength(1);
512
- const parsedBreakdown = JSON.parse(rows[0].details);
513
- expect(parsedBreakdown).toHaveLength(scoreResult.breakdown.length);
514
- for (const [i, expected] of scoreResult.breakdown.entries()) {
515
- expect(parsedBreakdown[i].name).toBe(expected.name);
516
- expect(parsedBreakdown[i].passed).toBe(expected.passed);
517
- expect(parsedBreakdown[i].weight).toBe(expected.weight);
518
- expect(parsedBreakdown[i].contribution).toBeCloseTo(expected.contribution, 10);
519
- }
520
- });
521
- });
522
- //# sourceMappingURL=epic46-integration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"epic46-integration.test.js","sourceRoot":"","sources":["../../../src/convergence/__tests__/epic46-integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Unit tests for PlateauDetector and checkPlateauAndEmit.
3
- * Story 45-6.
4
- */
5
- export {};
6
- //# sourceMappingURL=plateau.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plateau.test.d.ts","sourceRoot":"","sources":["../../../src/convergence/__tests__/plateau.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}