@substrate-ai/factory 0.19.54 → 0.20.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (491) hide show
  1. package/README.md +39 -0
  2. package/dist/config.d.ts +4 -4
  3. package/package.json +12 -3
  4. package/dist/__tests__/config.test.d.ts +0 -11
  5. package/dist/__tests__/config.test.d.ts.map +0 -1
  6. package/dist/__tests__/config.test.js +0 -215
  7. package/dist/__tests__/config.test.js.map +0 -1
  8. package/dist/__tests__/factory-run-command.test.d.ts +0 -12
  9. package/dist/__tests__/factory-run-command.test.d.ts.map +0 -1
  10. package/dist/__tests__/factory-run-command.test.js +0 -454
  11. package/dist/__tests__/factory-run-command.test.js.map +0 -1
  12. package/dist/__tests__/factory-validate-command.test.d.ts +0 -15
  13. package/dist/__tests__/factory-validate-command.test.d.ts.map +0 -1
  14. package/dist/__tests__/factory-validate-command.test.js +0 -339
  15. package/dist/__tests__/factory-validate-command.test.js.map +0 -1
  16. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.d.ts +0 -72
  17. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.d.ts.map +0 -1
  18. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.js +0 -121
  19. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.js.map +0 -1
  20. package/dist/__tests__/fixtures/llm-edge-routing.dot.d.ts +0 -28
  21. package/dist/__tests__/fixtures/llm-edge-routing.dot.d.ts.map +0 -1
  22. package/dist/__tests__/fixtures/llm-edge-routing.dot.js +0 -55
  23. package/dist/__tests__/fixtures/llm-edge-routing.dot.js.map +0 -1
  24. package/dist/__tests__/fixtures/manager-loop.dot.d.ts +0 -34
  25. package/dist/__tests__/fixtures/manager-loop.dot.d.ts.map +0 -1
  26. package/dist/__tests__/fixtures/manager-loop.dot.js +0 -61
  27. package/dist/__tests__/fixtures/manager-loop.dot.js.map +0 -1
  28. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.d.ts +0 -42
  29. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.d.ts.map +0 -1
  30. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.js +0 -118
  31. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.js.map +0 -1
  32. package/dist/__tests__/fixtures/subgraph-parent.dot.d.ts +0 -35
  33. package/dist/__tests__/fixtures/subgraph-parent.dot.d.ts.map +0 -1
  34. package/dist/__tests__/fixtures/subgraph-parent.dot.js +0 -69
  35. package/dist/__tests__/fixtures/subgraph-parent.dot.js.map +0 -1
  36. package/dist/__tests__/integration/advanced-graph-events.test.d.ts +0 -19
  37. package/dist/__tests__/integration/advanced-graph-events.test.d.ts.map +0 -1
  38. package/dist/__tests__/integration/advanced-graph-events.test.js +0 -288
  39. package/dist/__tests__/integration/advanced-graph-events.test.js.map +0 -1
  40. package/dist/__tests__/integration/checkpoint-resume.test.d.ts +0 -10
  41. package/dist/__tests__/integration/checkpoint-resume.test.d.ts.map +0 -1
  42. package/dist/__tests__/integration/checkpoint-resume.test.js +0 -125
  43. package/dist/__tests__/integration/checkpoint-resume.test.js.map +0 -1
  44. package/dist/__tests__/integration/conditional-pipeline.test.d.ts +0 -10
  45. package/dist/__tests__/integration/conditional-pipeline.test.d.ts.map +0 -1
  46. package/dist/__tests__/integration/conditional-pipeline.test.js +0 -106
  47. package/dist/__tests__/integration/conditional-pipeline.test.js.map +0 -1
  48. package/dist/__tests__/integration/convergence-validation.test.d.ts +0 -14
  49. package/dist/__tests__/integration/convergence-validation.test.d.ts.map +0 -1
  50. package/dist/__tests__/integration/convergence-validation.test.js +0 -449
  51. package/dist/__tests__/integration/convergence-validation.test.js.map +0 -1
  52. package/dist/__tests__/integration/epic44-coverage-gate.test.d.ts +0 -12
  53. package/dist/__tests__/integration/epic44-coverage-gate.test.d.ts.map +0 -1
  54. package/dist/__tests__/integration/epic44-coverage-gate.test.js +0 -58
  55. package/dist/__tests__/integration/epic44-coverage-gate.test.js.map +0 -1
  56. package/dist/__tests__/integration/epic45-coverage-gate.test.d.ts +0 -11
  57. package/dist/__tests__/integration/epic45-coverage-gate.test.d.ts.map +0 -1
  58. package/dist/__tests__/integration/epic45-coverage-gate.test.js +0 -64
  59. package/dist/__tests__/integration/epic45-coverage-gate.test.js.map +0 -1
  60. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.d.ts +0 -2
  61. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.d.ts.map +0 -1
  62. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.js +0 -285
  63. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.js.map +0 -1
  64. package/dist/__tests__/integration/events.test.d.ts +0 -8
  65. package/dist/__tests__/integration/events.test.d.ts.map +0 -1
  66. package/dist/__tests__/integration/events.test.js +0 -194
  67. package/dist/__tests__/integration/events.test.js.map +0 -1
  68. package/dist/__tests__/integration/graphs.d.ts +0 -59
  69. package/dist/__tests__/integration/graphs.d.ts.map +0 -1
  70. package/dist/__tests__/integration/graphs.js +0 -164
  71. package/dist/__tests__/integration/graphs.js.map +0 -1
  72. package/dist/__tests__/integration/helpers.d.ts +0 -127
  73. package/dist/__tests__/integration/helpers.d.ts.map +0 -1
  74. package/dist/__tests__/integration/helpers.js +0 -167
  75. package/dist/__tests__/integration/helpers.js.map +0 -1
  76. package/dist/__tests__/integration/integrity.test.d.ts +0 -8
  77. package/dist/__tests__/integration/integrity.test.d.ts.map +0 -1
  78. package/dist/__tests__/integration/integrity.test.js +0 -198
  79. package/dist/__tests__/integration/integrity.test.js.map +0 -1
  80. package/dist/__tests__/integration/llm-edge-routing.test.d.ts +0 -21
  81. package/dist/__tests__/integration/llm-edge-routing.test.d.ts.map +0 -1
  82. package/dist/__tests__/integration/llm-edge-routing.test.js +0 -341
  83. package/dist/__tests__/integration/llm-edge-routing.test.js.map +0 -1
  84. package/dist/__tests__/integration/manager-loop.test.d.ts +0 -24
  85. package/dist/__tests__/integration/manager-loop.test.d.ts.map +0 -1
  86. package/dist/__tests__/integration/manager-loop.test.js +0 -276
  87. package/dist/__tests__/integration/manager-loop.test.js.map +0 -1
  88. package/dist/__tests__/integration/multi-type-graph.test.d.ts +0 -10
  89. package/dist/__tests__/integration/multi-type-graph.test.d.ts.map +0 -1
  90. package/dist/__tests__/integration/multi-type-graph.test.js +0 -100
  91. package/dist/__tests__/integration/multi-type-graph.test.js.map +0 -1
  92. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.d.ts +0 -22
  93. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.d.ts.map +0 -1
  94. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.js +0 -515
  95. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.js.map +0 -1
  96. package/dist/__tests__/integration/persistence.test.d.ts +0 -8
  97. package/dist/__tests__/integration/persistence.test.d.ts.map +0 -1
  98. package/dist/__tests__/integration/persistence.test.js +0 -129
  99. package/dist/__tests__/integration/persistence.test.js.map +0 -1
  100. package/dist/__tests__/integration/pipeline-templates-integration.test.d.ts +0 -16
  101. package/dist/__tests__/integration/pipeline-templates-integration.test.d.ts.map +0 -1
  102. package/dist/__tests__/integration/pipeline-templates-integration.test.js +0 -171
  103. package/dist/__tests__/integration/pipeline-templates-integration.test.js.map +0 -1
  104. package/dist/__tests__/integration/scenario-pipeline.test.d.ts +0 -11
  105. package/dist/__tests__/integration/scenario-pipeline.test.d.ts.map +0 -1
  106. package/dist/__tests__/integration/scenario-pipeline.test.js +0 -243
  107. package/dist/__tests__/integration/scenario-pipeline.test.js.map +0 -1
  108. package/dist/__tests__/integration/stylesheet-application.test.d.ts +0 -12
  109. package/dist/__tests__/integration/stylesheet-application.test.d.ts.map +0 -1
  110. package/dist/__tests__/integration/stylesheet-application.test.js +0 -119
  111. package/dist/__tests__/integration/stylesheet-application.test.js.map +0 -1
  112. package/dist/__tests__/integration/subgraph-execution.test.d.ts +0 -24
  113. package/dist/__tests__/integration/subgraph-execution.test.d.ts.map +0 -1
  114. package/dist/__tests__/integration/subgraph-execution.test.js +0 -291
  115. package/dist/__tests__/integration/subgraph-execution.test.js.map +0 -1
  116. package/dist/__tests__/integration/validation-errors.test.d.ts +0 -8
  117. package/dist/__tests__/integration/validation-errors.test.d.ts.map +0 -1
  118. package/dist/__tests__/integration/validation-errors.test.js +0 -150
  119. package/dist/__tests__/integration/validation-errors.test.js.map +0 -1
  120. package/dist/agent/__tests__/loop-detection.test.d.ts +0 -2
  121. package/dist/agent/__tests__/loop-detection.test.d.ts.map +0 -1
  122. package/dist/agent/__tests__/loop-detection.test.js +0 -236
  123. package/dist/agent/__tests__/loop-detection.test.js.map +0 -1
  124. package/dist/agent/__tests__/loop.test.d.ts +0 -2
  125. package/dist/agent/__tests__/loop.test.d.ts.map +0 -1
  126. package/dist/agent/__tests__/loop.test.js +0 -868
  127. package/dist/agent/__tests__/loop.test.js.map +0 -1
  128. package/dist/agent/__tests__/truncation.test.d.ts +0 -2
  129. package/dist/agent/__tests__/truncation.test.d.ts.map +0 -1
  130. package/dist/agent/__tests__/truncation.test.js +0 -276
  131. package/dist/agent/__tests__/truncation.test.js.map +0 -1
  132. package/dist/agent/tools/__tests__/anthropic-tools.test.d.ts +0 -6
  133. package/dist/agent/tools/__tests__/anthropic-tools.test.d.ts.map +0 -1
  134. package/dist/agent/tools/__tests__/anthropic-tools.test.js +0 -49
  135. package/dist/agent/tools/__tests__/anthropic-tools.test.js.map +0 -1
  136. package/dist/agent/tools/__tests__/environment.test.d.ts +0 -6
  137. package/dist/agent/tools/__tests__/environment.test.d.ts.map +0 -1
  138. package/dist/agent/tools/__tests__/environment.test.js +0 -33
  139. package/dist/agent/tools/__tests__/environment.test.js.map +0 -1
  140. package/dist/agent/tools/__tests__/gemini-tools.test.d.ts +0 -6
  141. package/dist/agent/tools/__tests__/gemini-tools.test.d.ts.map +0 -1
  142. package/dist/agent/tools/__tests__/gemini-tools.test.js +0 -98
  143. package/dist/agent/tools/__tests__/gemini-tools.test.js.map +0 -1
  144. package/dist/agent/tools/__tests__/openai-tools.test.d.ts +0 -6
  145. package/dist/agent/tools/__tests__/openai-tools.test.d.ts.map +0 -1
  146. package/dist/agent/tools/__tests__/openai-tools.test.js +0 -53
  147. package/dist/agent/tools/__tests__/openai-tools.test.js.map +0 -1
  148. package/dist/agent/tools/__tests__/patch.test.d.ts +0 -6
  149. package/dist/agent/tools/__tests__/patch.test.d.ts.map +0 -1
  150. package/dist/agent/tools/__tests__/patch.test.js +0 -116
  151. package/dist/agent/tools/__tests__/patch.test.js.map +0 -1
  152. package/dist/agent/tools/__tests__/profiles.test.d.ts +0 -6
  153. package/dist/agent/tools/__tests__/profiles.test.d.ts.map +0 -1
  154. package/dist/agent/tools/__tests__/profiles.test.js +0 -125
  155. package/dist/agent/tools/__tests__/profiles.test.js.map +0 -1
  156. package/dist/agent/tools/__tests__/registry.test.d.ts +0 -6
  157. package/dist/agent/tools/__tests__/registry.test.d.ts.map +0 -1
  158. package/dist/agent/tools/__tests__/registry.test.js +0 -94
  159. package/dist/agent/tools/__tests__/registry.test.js.map +0 -1
  160. package/dist/agent/tools/__tests__/shared.test.d.ts +0 -6
  161. package/dist/agent/tools/__tests__/shared.test.d.ts.map +0 -1
  162. package/dist/agent/tools/__tests__/shared.test.js +0 -131
  163. package/dist/agent/tools/__tests__/shared.test.js.map +0 -1
  164. package/dist/backend/__tests__/direct-backend.test.d.ts +0 -14
  165. package/dist/backend/__tests__/direct-backend.test.d.ts.map +0 -1
  166. package/dist/backend/__tests__/direct-backend.test.js +0 -393
  167. package/dist/backend/__tests__/direct-backend.test.js.map +0 -1
  168. package/dist/backend/__tests__/direct-bootstrap.test.d.ts +0 -7
  169. package/dist/backend/__tests__/direct-bootstrap.test.d.ts.map +0 -1
  170. package/dist/backend/__tests__/direct-bootstrap.test.js +0 -177
  171. package/dist/backend/__tests__/direct-bootstrap.test.js.map +0 -1
  172. package/dist/backend/__tests__/mock-backend.test.d.ts +0 -7
  173. package/dist/backend/__tests__/mock-backend.test.d.ts.map +0 -1
  174. package/dist/backend/__tests__/mock-backend.test.js +0 -273
  175. package/dist/backend/__tests__/mock-backend.test.js.map +0 -1
  176. package/dist/backend/__tests__/parity.test.d.ts +0 -17
  177. package/dist/backend/__tests__/parity.test.d.ts.map +0 -1
  178. package/dist/backend/__tests__/parity.test.js +0 -411
  179. package/dist/backend/__tests__/parity.test.js.map +0 -1
  180. package/dist/context/__tests__/auto-summarizer.test.d.ts +0 -14
  181. package/dist/context/__tests__/auto-summarizer.test.d.ts.map +0 -1
  182. package/dist/context/__tests__/auto-summarizer.test.js +0 -189
  183. package/dist/context/__tests__/auto-summarizer.test.js.map +0 -1
  184. package/dist/context/__tests__/context-cli-command.test.d.ts +0 -7
  185. package/dist/context/__tests__/context-cli-command.test.d.ts.map +0 -1
  186. package/dist/context/__tests__/context-cli-command.test.js +0 -331
  187. package/dist/context/__tests__/context-cli-command.test.js.map +0 -1
  188. package/dist/context/__tests__/pyramid-summary-integration.test.d.ts +0 -2
  189. package/dist/context/__tests__/pyramid-summary-integration.test.d.ts.map +0 -1
  190. package/dist/context/__tests__/pyramid-summary-integration.test.js +0 -533
  191. package/dist/context/__tests__/pyramid-summary-integration.test.js.map +0 -1
  192. package/dist/context/__tests__/summarizer.test.d.ts +0 -2
  193. package/dist/context/__tests__/summarizer.test.d.ts.map +0 -1
  194. package/dist/context/__tests__/summarizer.test.js +0 -189
  195. package/dist/context/__tests__/summarizer.test.js.map +0 -1
  196. package/dist/context/__tests__/summary-cache.test.d.ts +0 -2
  197. package/dist/context/__tests__/summary-cache.test.d.ts.map +0 -1
  198. package/dist/context/__tests__/summary-cache.test.js +0 -214
  199. package/dist/context/__tests__/summary-cache.test.js.map +0 -1
  200. package/dist/context/__tests__/summary-metrics.test.d.ts +0 -2
  201. package/dist/context/__tests__/summary-metrics.test.d.ts.map +0 -1
  202. package/dist/context/__tests__/summary-metrics.test.js +0 -172
  203. package/dist/context/__tests__/summary-metrics.test.js.map +0 -1
  204. package/dist/context/__tests__/summary-types.test.d.ts +0 -2
  205. package/dist/context/__tests__/summary-types.test.d.ts.map +0 -1
  206. package/dist/context/__tests__/summary-types.test.js +0 -130
  207. package/dist/context/__tests__/summary-types.test.js.map +0 -1
  208. package/dist/convergence/__tests__/budget.test.d.ts +0 -6
  209. package/dist/convergence/__tests__/budget.test.d.ts.map +0 -1
  210. package/dist/convergence/__tests__/budget.test.js +0 -187
  211. package/dist/convergence/__tests__/budget.test.js.map +0 -1
  212. package/dist/convergence/__tests__/controller.test.d.ts +0 -9
  213. package/dist/convergence/__tests__/controller.test.d.ts.map +0 -1
  214. package/dist/convergence/__tests__/controller.test.js +0 -585
  215. package/dist/convergence/__tests__/controller.test.js.map +0 -1
  216. package/dist/convergence/__tests__/dual-signal.test.d.ts +0 -14
  217. package/dist/convergence/__tests__/dual-signal.test.d.ts.map +0 -1
  218. package/dist/convergence/__tests__/dual-signal.test.js +0 -123
  219. package/dist/convergence/__tests__/dual-signal.test.js.map +0 -1
  220. package/dist/convergence/__tests__/epic46-integration.test.d.ts +0 -15
  221. package/dist/convergence/__tests__/epic46-integration.test.d.ts.map +0 -1
  222. package/dist/convergence/__tests__/epic46-integration.test.js +0 -522
  223. package/dist/convergence/__tests__/epic46-integration.test.js.map +0 -1
  224. package/dist/convergence/__tests__/plateau.test.d.ts +0 -6
  225. package/dist/convergence/__tests__/plateau.test.d.ts.map +0 -1
  226. package/dist/convergence/__tests__/plateau.test.js +0 -163
  227. package/dist/convergence/__tests__/plateau.test.js.map +0 -1
  228. package/dist/convergence/__tests__/remediation.test.d.ts +0 -11
  229. package/dist/convergence/__tests__/remediation.test.d.ts.map +0 -1
  230. package/dist/convergence/__tests__/remediation.test.js +0 -209
  231. package/dist/convergence/__tests__/remediation.test.js.map +0 -1
  232. package/dist/convergence/__tests__/scenario-primary.test.d.ts +0 -13
  233. package/dist/convergence/__tests__/scenario-primary.test.d.ts.map +0 -1
  234. package/dist/convergence/__tests__/scenario-primary.test.js +0 -183
  235. package/dist/convergence/__tests__/scenario-primary.test.js.map +0 -1
  236. package/dist/factory-command.test.d.ts +0 -8
  237. package/dist/factory-command.test.d.ts.map +0 -1
  238. package/dist/factory-command.test.js +0 -304
  239. package/dist/factory-command.test.js.map +0 -1
  240. package/dist/graph/__tests__/attractor-compliance.test.d.ts +0 -10
  241. package/dist/graph/__tests__/attractor-compliance.test.d.ts.map +0 -1
  242. package/dist/graph/__tests__/attractor-compliance.test.js +0 -766
  243. package/dist/graph/__tests__/attractor-compliance.test.js.map +0 -1
  244. package/dist/graph/__tests__/checkpoint.test.d.ts +0 -8
  245. package/dist/graph/__tests__/checkpoint.test.d.ts.map +0 -1
  246. package/dist/graph/__tests__/checkpoint.test.js +0 -329
  247. package/dist/graph/__tests__/checkpoint.test.js.map +0 -1
  248. package/dist/graph/__tests__/condition-parser.test.d.ts +0 -14
  249. package/dist/graph/__tests__/condition-parser.test.d.ts.map +0 -1
  250. package/dist/graph/__tests__/condition-parser.test.js +0 -406
  251. package/dist/graph/__tests__/condition-parser.test.js.map +0 -1
  252. package/dist/graph/__tests__/context.test.d.ts +0 -14
  253. package/dist/graph/__tests__/context.test.d.ts.map +0 -1
  254. package/dist/graph/__tests__/context.test.js +0 -276
  255. package/dist/graph/__tests__/context.test.js.map +0 -1
  256. package/dist/graph/__tests__/edge-selector-events.test.d.ts +0 -11
  257. package/dist/graph/__tests__/edge-selector-events.test.d.ts.map +0 -1
  258. package/dist/graph/__tests__/edge-selector-events.test.js +0 -184
  259. package/dist/graph/__tests__/edge-selector-events.test.js.map +0 -1
  260. package/dist/graph/__tests__/edge-selector.test.d.ts +0 -6
  261. package/dist/graph/__tests__/edge-selector.test.d.ts.map +0 -1
  262. package/dist/graph/__tests__/edge-selector.test.js +0 -452
  263. package/dist/graph/__tests__/edge-selector.test.js.map +0 -1
  264. package/dist/graph/__tests__/executor-convergence.test.d.ts +0 -12
  265. package/dist/graph/__tests__/executor-convergence.test.d.ts.map +0 -1
  266. package/dist/graph/__tests__/executor-convergence.test.js +0 -432
  267. package/dist/graph/__tests__/executor-convergence.test.js.map +0 -1
  268. package/dist/graph/__tests__/executor-fidelity.test.d.ts +0 -13
  269. package/dist/graph/__tests__/executor-fidelity.test.d.ts.map +0 -1
  270. package/dist/graph/__tests__/executor-fidelity.test.js +0 -335
  271. package/dist/graph/__tests__/executor-fidelity.test.js.map +0 -1
  272. package/dist/graph/__tests__/executor.test.d.ts +0 -14
  273. package/dist/graph/__tests__/executor.test.d.ts.map +0 -1
  274. package/dist/graph/__tests__/executor.test.js +0 -901
  275. package/dist/graph/__tests__/executor.test.js.map +0 -1
  276. package/dist/graph/__tests__/fidelity.test.d.ts +0 -8
  277. package/dist/graph/__tests__/fidelity.test.d.ts.map +0 -1
  278. package/dist/graph/__tests__/fidelity.test.js +0 -135
  279. package/dist/graph/__tests__/fidelity.test.js.map +0 -1
  280. package/dist/graph/__tests__/llm-evaluator.test.d.ts +0 -7
  281. package/dist/graph/__tests__/llm-evaluator.test.d.ts.map +0 -1
  282. package/dist/graph/__tests__/llm-evaluator.test.js +0 -106
  283. package/dist/graph/__tests__/llm-evaluator.test.js.map +0 -1
  284. package/dist/graph/__tests__/parser-chaining.test.d.ts +0 -13
  285. package/dist/graph/__tests__/parser-chaining.test.d.ts.map +0 -1
  286. package/dist/graph/__tests__/parser-chaining.test.js +0 -215
  287. package/dist/graph/__tests__/parser-chaining.test.js.map +0 -1
  288. package/dist/graph/__tests__/parser.test.d.ts +0 -22
  289. package/dist/graph/__tests__/parser.test.d.ts.map +0 -1
  290. package/dist/graph/__tests__/parser.test.js +0 -452
  291. package/dist/graph/__tests__/parser.test.js.map +0 -1
  292. package/dist/graph/__tests__/run-state.test.d.ts +0 -13
  293. package/dist/graph/__tests__/run-state.test.d.ts.map +0 -1
  294. package/dist/graph/__tests__/run-state.test.js +0 -189
  295. package/dist/graph/__tests__/run-state.test.js.map +0 -1
  296. package/dist/graph/__tests__/transformer.test.d.ts +0 -16
  297. package/dist/graph/__tests__/transformer.test.d.ts.map +0 -1
  298. package/dist/graph/__tests__/transformer.test.js +0 -350
  299. package/dist/graph/__tests__/transformer.test.js.map +0 -1
  300. package/dist/graph/__tests__/validator-errors.test.d.ts +0 -15
  301. package/dist/graph/__tests__/validator-errors.test.d.ts.map +0 -1
  302. package/dist/graph/__tests__/validator-errors.test.js +0 -572
  303. package/dist/graph/__tests__/validator-errors.test.js.map +0 -1
  304. package/dist/graph/__tests__/validator-warnings.test.d.ts +0 -15
  305. package/dist/graph/__tests__/validator-warnings.test.d.ts.map +0 -1
  306. package/dist/graph/__tests__/validator-warnings.test.js +0 -363
  307. package/dist/graph/__tests__/validator-warnings.test.js.map +0 -1
  308. package/dist/handlers/__tests__/codergen-handler.test.d.ts +0 -14
  309. package/dist/handlers/__tests__/codergen-handler.test.d.ts.map +0 -1
  310. package/dist/handlers/__tests__/codergen-handler.test.js +0 -442
  311. package/dist/handlers/__tests__/codergen-handler.test.js.map +0 -1
  312. package/dist/handlers/__tests__/fan-in.test.d.ts +0 -14
  313. package/dist/handlers/__tests__/fan-in.test.d.ts.map +0 -1
  314. package/dist/handlers/__tests__/fan-in.test.js +0 -399
  315. package/dist/handlers/__tests__/fan-in.test.js.map +0 -1
  316. package/dist/handlers/__tests__/join-policy.test.d.ts +0 -9
  317. package/dist/handlers/__tests__/join-policy.test.d.ts.map +0 -1
  318. package/dist/handlers/__tests__/join-policy.test.js +0 -201
  319. package/dist/handlers/__tests__/join-policy.test.js.map +0 -1
  320. package/dist/handlers/__tests__/manager-loop.test.d.ts +0 -14
  321. package/dist/handlers/__tests__/manager-loop.test.d.ts.map +0 -1
  322. package/dist/handlers/__tests__/manager-loop.test.js +0 -322
  323. package/dist/handlers/__tests__/manager-loop.test.js.map +0 -1
  324. package/dist/handlers/__tests__/parallel-events.test.d.ts +0 -12
  325. package/dist/handlers/__tests__/parallel-events.test.d.ts.map +0 -1
  326. package/dist/handlers/__tests__/parallel-events.test.js +0 -252
  327. package/dist/handlers/__tests__/parallel-events.test.js.map +0 -1
  328. package/dist/handlers/__tests__/parallel-handler.test.d.ts +0 -14
  329. package/dist/handlers/__tests__/parallel-handler.test.d.ts.map +0 -1
  330. package/dist/handlers/__tests__/parallel-handler.test.js +0 -337
  331. package/dist/handlers/__tests__/parallel-handler.test.js.map +0 -1
  332. package/dist/handlers/__tests__/parallel-join.test.d.ts +0 -9
  333. package/dist/handlers/__tests__/parallel-join.test.d.ts.map +0 -1
  334. package/dist/handlers/__tests__/parallel-join.test.js +0 -267
  335. package/dist/handlers/__tests__/parallel-join.test.js.map +0 -1
  336. package/dist/handlers/__tests__/registry.test.d.ts +0 -14
  337. package/dist/handlers/__tests__/registry.test.d.ts.map +0 -1
  338. package/dist/handlers/__tests__/registry.test.js +0 -315
  339. package/dist/handlers/__tests__/registry.test.js.map +0 -1
  340. package/dist/handlers/__tests__/subgraph-events.test.d.ts +0 -10
  341. package/dist/handlers/__tests__/subgraph-events.test.d.ts.map +0 -1
  342. package/dist/handlers/__tests__/subgraph-events.test.js +0 -189
  343. package/dist/handlers/__tests__/subgraph-events.test.js.map +0 -1
  344. package/dist/handlers/__tests__/subgraph-inheritance.test.d.ts +0 -14
  345. package/dist/handlers/__tests__/subgraph-inheritance.test.d.ts.map +0 -1
  346. package/dist/handlers/__tests__/subgraph-inheritance.test.js +0 -267
  347. package/dist/handlers/__tests__/subgraph-inheritance.test.js.map +0 -1
  348. package/dist/handlers/__tests__/subgraph.test.d.ts +0 -14
  349. package/dist/handlers/__tests__/subgraph.test.d.ts.map +0 -1
  350. package/dist/handlers/__tests__/subgraph.test.js +0 -369
  351. package/dist/handlers/__tests__/subgraph.test.js.map +0 -1
  352. package/dist/handlers/__tests__/tool-handler.test.d.ts +0 -11
  353. package/dist/handlers/__tests__/tool-handler.test.d.ts.map +0 -1
  354. package/dist/handlers/__tests__/tool-handler.test.js +0 -184
  355. package/dist/handlers/__tests__/tool-handler.test.js.map +0 -1
  356. package/dist/handlers/__tests__/tool-scenario.test.d.ts +0 -12
  357. package/dist/handlers/__tests__/tool-scenario.test.d.ts.map +0 -1
  358. package/dist/handlers/__tests__/tool-scenario.test.js +0 -222
  359. package/dist/handlers/__tests__/tool-scenario.test.js.map +0 -1
  360. package/dist/handlers/__tests__/wait-human-handler.test.d.ts +0 -11
  361. package/dist/handlers/__tests__/wait-human-handler.test.d.ts.map +0 -1
  362. package/dist/handlers/__tests__/wait-human-handler.test.js +0 -251
  363. package/dist/handlers/__tests__/wait-human-handler.test.js.map +0 -1
  364. package/dist/llm/__tests__/client.test.d.ts +0 -2
  365. package/dist/llm/__tests__/client.test.d.ts.map +0 -1
  366. package/dist/llm/__tests__/client.test.js +0 -198
  367. package/dist/llm/__tests__/client.test.js.map +0 -1
  368. package/dist/llm/__tests__/types.test.d.ts +0 -2
  369. package/dist/llm/__tests__/types.test.d.ts.map +0 -1
  370. package/dist/llm/__tests__/types.test.js +0 -289
  371. package/dist/llm/__tests__/types.test.js.map +0 -1
  372. package/dist/llm/middleware/__tests__/cost-tracking.test.d.ts +0 -2
  373. package/dist/llm/middleware/__tests__/cost-tracking.test.d.ts.map +0 -1
  374. package/dist/llm/middleware/__tests__/cost-tracking.test.js +0 -73
  375. package/dist/llm/middleware/__tests__/cost-tracking.test.js.map +0 -1
  376. package/dist/llm/middleware/__tests__/logging.test.d.ts +0 -2
  377. package/dist/llm/middleware/__tests__/logging.test.d.ts.map +0 -1
  378. package/dist/llm/middleware/__tests__/logging.test.js +0 -127
  379. package/dist/llm/middleware/__tests__/logging.test.js.map +0 -1
  380. package/dist/llm/middleware/__tests__/retry.test.d.ts +0 -2
  381. package/dist/llm/middleware/__tests__/retry.test.d.ts.map +0 -1
  382. package/dist/llm/middleware/__tests__/retry.test.js +0 -126
  383. package/dist/llm/middleware/__tests__/retry.test.js.map +0 -1
  384. package/dist/llm/providers/__tests__/anthropic.test.d.ts +0 -2
  385. package/dist/llm/providers/__tests__/anthropic.test.d.ts.map +0 -1
  386. package/dist/llm/providers/__tests__/anthropic.test.js +0 -412
  387. package/dist/llm/providers/__tests__/anthropic.test.js.map +0 -1
  388. package/dist/llm/providers/__tests__/gemini.test.d.ts +0 -2
  389. package/dist/llm/providers/__tests__/gemini.test.d.ts.map +0 -1
  390. package/dist/llm/providers/__tests__/gemini.test.js +0 -591
  391. package/dist/llm/providers/__tests__/gemini.test.js.map +0 -1
  392. package/dist/llm/providers/__tests__/openai.test.d.ts +0 -2
  393. package/dist/llm/providers/__tests__/openai.test.d.ts.map +0 -1
  394. package/dist/llm/providers/__tests__/openai.test.js +0 -546
  395. package/dist/llm/providers/__tests__/openai.test.js.map +0 -1
  396. package/dist/persistence/__tests__/factory-queries.test.d.ts +0 -9
  397. package/dist/persistence/__tests__/factory-queries.test.d.ts.map +0 -1
  398. package/dist/persistence/__tests__/factory-queries.test.js +0 -372
  399. package/dist/persistence/__tests__/factory-queries.test.js.map +0 -1
  400. package/dist/persistence/__tests__/factory-schema.test.d.ts +0 -6
  401. package/dist/persistence/__tests__/factory-schema.test.d.ts.map +0 -1
  402. package/dist/persistence/__tests__/factory-schema.test.js +0 -105
  403. package/dist/persistence/__tests__/factory-schema.test.js.map +0 -1
  404. package/dist/scenarios/__tests__/cli-command-list.test.d.ts +0 -7
  405. package/dist/scenarios/__tests__/cli-command-list.test.d.ts.map +0 -1
  406. package/dist/scenarios/__tests__/cli-command-list.test.js +0 -237
  407. package/dist/scenarios/__tests__/cli-command-list.test.js.map +0 -1
  408. package/dist/scenarios/__tests__/cli-command.test.d.ts +0 -11
  409. package/dist/scenarios/__tests__/cli-command.test.d.ts.map +0 -1
  410. package/dist/scenarios/__tests__/cli-command.test.js +0 -275
  411. package/dist/scenarios/__tests__/cli-command.test.js.map +0 -1
  412. package/dist/scenarios/__tests__/integrity-pipeline.test.d.ts +0 -15
  413. package/dist/scenarios/__tests__/integrity-pipeline.test.d.ts.map +0 -1
  414. package/dist/scenarios/__tests__/integrity-pipeline.test.js +0 -318
  415. package/dist/scenarios/__tests__/integrity-pipeline.test.js.map +0 -1
  416. package/dist/scenarios/__tests__/runner-twins.test.d.ts +0 -13
  417. package/dist/scenarios/__tests__/runner-twins.test.d.ts.map +0 -1
  418. package/dist/scenarios/__tests__/runner-twins.test.js +0 -205
  419. package/dist/scenarios/__tests__/runner-twins.test.js.map +0 -1
  420. package/dist/scenarios/__tests__/scorer.test.d.ts +0 -11
  421. package/dist/scenarios/__tests__/scorer.test.d.ts.map +0 -1
  422. package/dist/scenarios/__tests__/scorer.test.js +0 -225
  423. package/dist/scenarios/__tests__/scorer.test.js.map +0 -1
  424. package/dist/scenarios/__tests__/scoring-integration.test.d.ts +0 -8
  425. package/dist/scenarios/__tests__/scoring-integration.test.d.ts.map +0 -1
  426. package/dist/scenarios/__tests__/scoring-integration.test.js +0 -178
  427. package/dist/scenarios/__tests__/scoring-integration.test.js.map +0 -1
  428. package/dist/scenarios/__tests__/store.test.d.ts +0 -5
  429. package/dist/scenarios/__tests__/store.test.d.ts.map +0 -1
  430. package/dist/scenarios/__tests__/store.test.js +0 -169
  431. package/dist/scenarios/__tests__/store.test.js.map +0 -1
  432. package/dist/stylesheet/__tests__/stylesheet.test.d.ts +0 -17
  433. package/dist/stylesheet/__tests__/stylesheet.test.d.ts.map +0 -1
  434. package/dist/stylesheet/__tests__/stylesheet.test.js +0 -368
  435. package/dist/stylesheet/__tests__/stylesheet.test.js.map +0 -1
  436. package/dist/templates/__tests__/templates.test.d.ts +0 -7
  437. package/dist/templates/__tests__/templates.test.d.ts.map +0 -1
  438. package/dist/templates/__tests__/templates.test.js +0 -92
  439. package/dist/templates/__tests__/templates.test.js.map +0 -1
  440. package/dist/twins/__tests__/docker-compose.test.d.ts +0 -13
  441. package/dist/twins/__tests__/docker-compose.test.d.ts.map +0 -1
  442. package/dist/twins/__tests__/docker-compose.test.js +0 -247
  443. package/dist/twins/__tests__/docker-compose.test.js.map +0 -1
  444. package/dist/twins/__tests__/health-monitor.test.d.ts +0 -19
  445. package/dist/twins/__tests__/health-monitor.test.d.ts.map +0 -1
  446. package/dist/twins/__tests__/health-monitor.test.js +0 -301
  447. package/dist/twins/__tests__/health-monitor.test.js.map +0 -1
  448. package/dist/twins/__tests__/integration/e2e.test.d.ts +0 -18
  449. package/dist/twins/__tests__/integration/e2e.test.d.ts.map +0 -1
  450. package/dist/twins/__tests__/integration/e2e.test.js +0 -146
  451. package/dist/twins/__tests__/integration/e2e.test.js.map +0 -1
  452. package/dist/twins/__tests__/integration/health-monitor-integration.test.d.ts +0 -16
  453. package/dist/twins/__tests__/integration/health-monitor-integration.test.d.ts.map +0 -1
  454. package/dist/twins/__tests__/integration/health-monitor-integration.test.js +0 -183
  455. package/dist/twins/__tests__/integration/health-monitor-integration.test.js.map +0 -1
  456. package/dist/twins/__tests__/integration/helpers.d.ts +0 -32
  457. package/dist/twins/__tests__/integration/helpers.d.ts.map +0 -1
  458. package/dist/twins/__tests__/integration/helpers.js +0 -67
  459. package/dist/twins/__tests__/integration/helpers.js.map +0 -1
  460. package/dist/twins/__tests__/integration/lifecycle.test.d.ts +0 -14
  461. package/dist/twins/__tests__/integration/lifecycle.test.d.ts.map +0 -1
  462. package/dist/twins/__tests__/integration/lifecycle.test.js +0 -127
  463. package/dist/twins/__tests__/integration/lifecycle.test.js.map +0 -1
  464. package/dist/twins/__tests__/integration/persistence-integration.test.d.ts +0 -14
  465. package/dist/twins/__tests__/integration/persistence-integration.test.d.ts.map +0 -1
  466. package/dist/twins/__tests__/integration/persistence-integration.test.js +0 -132
  467. package/dist/twins/__tests__/integration/persistence-integration.test.js.map +0 -1
  468. package/dist/twins/__tests__/persistence.test.d.ts +0 -10
  469. package/dist/twins/__tests__/persistence.test.d.ts.map +0 -1
  470. package/dist/twins/__tests__/persistence.test.js +0 -300
  471. package/dist/twins/__tests__/persistence.test.js.map +0 -1
  472. package/dist/twins/__tests__/registry.test.d.ts +0 -7
  473. package/dist/twins/__tests__/registry.test.d.ts.map +0 -1
  474. package/dist/twins/__tests__/registry.test.js +0 -282
  475. package/dist/twins/__tests__/registry.test.js.map +0 -1
  476. package/dist/twins/__tests__/run-state.test.d.ts +0 -9
  477. package/dist/twins/__tests__/run-state.test.d.ts.map +0 -1
  478. package/dist/twins/__tests__/run-state.test.js +0 -112
  479. package/dist/twins/__tests__/run-state.test.js.map +0 -1
  480. package/dist/twins/__tests__/templates-cli.test.d.ts +0 -10
  481. package/dist/twins/__tests__/templates-cli.test.d.ts.map +0 -1
  482. package/dist/twins/__tests__/templates-cli.test.js +0 -187
  483. package/dist/twins/__tests__/templates-cli.test.js.map +0 -1
  484. package/dist/twins/__tests__/templates.test.d.ts +0 -7
  485. package/dist/twins/__tests__/templates.test.d.ts.map +0 -1
  486. package/dist/twins/__tests__/templates.test.js +0 -87
  487. package/dist/twins/__tests__/templates.test.js.map +0 -1
  488. package/dist/twins/__tests__/twins-cli.test.d.ts +0 -11
  489. package/dist/twins/__tests__/twins-cli.test.d.ts.map +0 -1
  490. package/dist/twins/__tests__/twins-cli.test.js +0 -365
  491. package/dist/twins/__tests__/twins-cli.test.js.map +0 -1
@@ -1,533 +0,0 @@
1
- /**
2
- * Integration tests for the pyramid summarization system (Story 49-8).
3
- *
4
- * Covers cross-component flows between LLMSummaryEngine, AutoSummarizer,
5
- * and ConvergenceController.
6
- */
7
- import { describe, it, expect, vi } from 'vitest';
8
- import { createHash } from 'node:crypto';
9
- import { LLMSummaryEngine } from '../summarizer.js';
10
- import { AutoSummarizer, estimateTokens, } from '../auto-summarizer.js';
11
- import { SUMMARY_BUDGET, } from '../summary-types.js';
12
- import { createConvergenceController } from '../../convergence/controller.js';
13
- // ---------------------------------------------------------------------------
14
- // Mock helpers
15
- // ---------------------------------------------------------------------------
16
- function createMockLLMClient(defaultResponse = 'mock summary content') {
17
- let callCount = 0;
18
- let responseContent = defaultResponse;
19
- const client = {
20
- complete: vi.fn(async (_req) => {
21
- callCount++;
22
- return {
23
- content: responseContent,
24
- toolCalls: [],
25
- usage: { inputTokens: 100, outputTokens: 30, totalTokens: 130 },
26
- model: 'mock-model',
27
- stopReason: 'stop',
28
- providerMetadata: {},
29
- };
30
- }),
31
- };
32
- return {
33
- client,
34
- get callCount() {
35
- return callCount;
36
- },
37
- setResponse(content) {
38
- responseContent = content;
39
- },
40
- };
41
- }
42
- class MockSummaryEngine {
43
- name = 'mock';
44
- callCount = 0;
45
- async summarize(content, targetLevel, _opts) {
46
- this.callCount++;
47
- return {
48
- level: targetLevel,
49
- content: content.slice(0, 20),
50
- originalHash: 'mock-hash-' + this.callCount,
51
- createdAt: new Date().toISOString(),
52
- originalTokenCount: 100,
53
- summaryTokenCount: 20,
54
- };
55
- }
56
- async expand(summary, _targetLevel, opts) {
57
- return opts?.originalContent ?? summary.content;
58
- }
59
- }
60
- // Type narrowing helper
61
- function isCompressed(ctx) {
62
- return 'compressed' in ctx;
63
- }
64
- // ---------------------------------------------------------------------------
65
- // AC1: Full 12-iteration pipeline simulation
66
- // ---------------------------------------------------------------------------
67
- describe('Full 12-iteration pipeline simulation', () => {
68
- // AutoSummarizer: limit=1000, threshold=0.8 → trigger at > 800
69
- const mockEngine = new MockSummaryEngine();
70
- const summarizer = new AutoSummarizer(mockEngine, 1000, { threshold: 0.8 });
71
- // Build 12 IterationContext objects, each with tokenEstimate=90
72
- const iterations = Array.from({ length: 12 }, (_, i) => ({
73
- index: i,
74
- content: `iteration ${i} content`,
75
- tokenEstimate: 90,
76
- }));
77
- it('shouldTrigger returns false for 8 iterations (total 720 < 800)', () => {
78
- expect(summarizer.shouldTrigger(iterations.slice(0, 8))).toBe(false);
79
- });
80
- it('shouldTrigger returns true for 9 iterations (total 810 > 800)', () => {
81
- expect(summarizer.shouldTrigger(iterations.slice(0, 9))).toBe(true);
82
- });
83
- it('compress(iterations[0..8], 8) returns CompressionResult with iterations.length === 9', async () => {
84
- const result = await summarizer.compress(iterations.slice(0, 9), 8);
85
- expect(result.iterations).toHaveLength(9);
86
- });
87
- it('all entries at indices 0–7 have compressed: true discriminant', async () => {
88
- const result = await summarizer.compress(iterations.slice(0, 9), 8);
89
- for (let i = 0; i < 8; i++) {
90
- const entry = result.iterations.find((c) => c.index === i);
91
- expect(entry).toBeDefined();
92
- expect('compressed' in entry).toBe(true);
93
- expect(entry.compressed).toBe(true);
94
- }
95
- });
96
- it('entry at index 8 does not have compressed property (is plain IterationContext)', async () => {
97
- const result = await summarizer.compress(iterations.slice(0, 9), 8);
98
- const entry8 = result.iterations.find((c) => c.index === 8);
99
- expect(entry8).toBeDefined();
100
- expect('compressed' in entry8).toBe(false);
101
- expect(entry8.content).toBe('iteration 8 content');
102
- });
103
- it('compressedIndices equals [0, 1, 2, 3, 4, 5, 6, 7]', async () => {
104
- const result = await summarizer.compress(iterations.slice(0, 9), 8);
105
- expect(result.compressedIndices).toEqual([0, 1, 2, 3, 4, 5, 6, 7]);
106
- });
107
- });
108
- // ---------------------------------------------------------------------------
109
- // AC2: Lossless round-trip across all summary levels
110
- // ---------------------------------------------------------------------------
111
- describe('Lossless round-trip — all summary levels', () => {
112
- const originalContent = 'This is the full original content with important details that must be preserved exactly.';
113
- it('expand at "full" level with originalContent returns exact original content', async () => {
114
- const mock = createMockLLMClient();
115
- const engine = new LLMSummaryEngine(mock.client);
116
- const summary = await engine.summarize(originalContent, 'full');
117
- const expanded = await engine.expand(summary, 'full', { originalContent });
118
- expect(expanded).toBe(originalContent);
119
- });
120
- it('expand at "high" level with originalContent returns exact original content', async () => {
121
- const mock = createMockLLMClient();
122
- const engine = new LLMSummaryEngine(mock.client);
123
- const summary = await engine.summarize(originalContent, 'high');
124
- const expanded = await engine.expand(summary, 'full', { originalContent });
125
- expect(expanded).toBe(originalContent);
126
- });
127
- it('expand at "medium" level with originalContent returns exact original content', async () => {
128
- const mock = createMockLLMClient();
129
- const engine = new LLMSummaryEngine(mock.client);
130
- const summary = await engine.summarize(originalContent, 'medium');
131
- const expanded = await engine.expand(summary, 'full', { originalContent });
132
- expect(expanded).toBe(originalContent);
133
- });
134
- it('expand at "low" level with originalContent returns exact original content', async () => {
135
- const mock = createMockLLMClient();
136
- const engine = new LLMSummaryEngine(mock.client);
137
- const summary = await engine.summarize(originalContent, 'low');
138
- const expanded = await engine.expand(summary, 'full', { originalContent });
139
- expect(expanded).toBe(originalContent);
140
- });
141
- it('MockLLMClient.complete is not called during any expand with originalContent (callCount stays at 4)', async () => {
142
- const mock = createMockLLMClient();
143
- const engine = new LLMSummaryEngine(mock.client);
144
- const levels = ['full', 'high', 'medium', 'low'];
145
- // Summarize at all 4 levels
146
- const summaries = [];
147
- for (const level of levels) {
148
- summaries.push(await engine.summarize(originalContent, level));
149
- }
150
- const afterSummarize = mock.callCount;
151
- // Expand all 4 with originalContent — no LLM calls expected
152
- for (const summary of summaries) {
153
- await engine.expand(summary, 'full', { originalContent });
154
- }
155
- expect(mock.callCount).toBe(afterSummarize);
156
- expect(mock.callCount).toBe(4);
157
- });
158
- it('summary.originalHash for "high" level equals SHA-256 of original content', async () => {
159
- const mock = createMockLLMClient();
160
- const engine = new LLMSummaryEngine(mock.client);
161
- const summary = await engine.summarize(originalContent, 'high');
162
- const expectedHash = createHash('sha256').update(originalContent).digest('hex');
163
- expect(summary.originalHash).toBe(expectedHash);
164
- });
165
- it('summary.createdAt for "low" level is a valid ISO-8601 string parseable by new Date()', async () => {
166
- const mock = createMockLLMClient();
167
- const engine = new LLMSummaryEngine(mock.client);
168
- const summary = await engine.summarize(originalContent, 'low');
169
- const parsed = new Date(summary.createdAt);
170
- expect(Number.isNaN(parsed.getTime())).toBe(false);
171
- expect(parsed.getTime()).toBeGreaterThan(0);
172
- });
173
- });
174
- // ---------------------------------------------------------------------------
175
- // AC3: LLM expansion path — no originalContent
176
- // ---------------------------------------------------------------------------
177
- describe('LLM expansion path — no originalContent', () => {
178
- it('MockLLMClient.callCount is 1 after summarize and 2 after expand (no originalContent)', async () => {
179
- const mock = createMockLLMClient('summary text');
180
- const engine = new LLMSummaryEngine(mock.client);
181
- const content = 'Some original content to summarize';
182
- const summary = await engine.summarize(content, 'medium');
183
- expect(mock.callCount).toBe(1);
184
- mock.setResponse('expanded content from LLM');
185
- await engine.expand(summary, 'full');
186
- expect(mock.callCount).toBe(2);
187
- });
188
- it('expand without originalContent returns the mock LLM response content', async () => {
189
- const mock = createMockLLMClient('summary text');
190
- const engine = new LLMSummaryEngine(mock.client);
191
- const content = 'Some original content to summarize';
192
- const summary = await engine.summarize(content, 'medium');
193
- mock.setResponse('expand result content');
194
- const expanded = await engine.expand(summary, 'full');
195
- expect(expanded).toBe('expand result content');
196
- });
197
- it('summary.summaryTokenCount is a positive integer set from LLM response outputTokens (30)', async () => {
198
- const mock = createMockLLMClient();
199
- const engine = new LLMSummaryEngine(mock.client);
200
- const summary = await engine.summarize('content', 'medium');
201
- expect(summary.summaryTokenCount).toBeDefined();
202
- expect(typeof summary.summaryTokenCount).toBe('number');
203
- expect(summary.summaryTokenCount).toBeGreaterThan(0);
204
- expect(summary.summaryTokenCount).toBe(30);
205
- });
206
- it('summary.originalTokenCount is a positive integer set from LLM response inputTokens (100)', async () => {
207
- const mock = createMockLLMClient();
208
- const engine = new LLMSummaryEngine(mock.client);
209
- const summary = await engine.summarize('content', 'medium');
210
- expect(summary.originalTokenCount).toBeDefined();
211
- expect(typeof summary.originalTokenCount).toBe('number');
212
- expect(summary.originalTokenCount).toBeGreaterThan(0);
213
- expect(summary.originalTokenCount).toBe(100);
214
- });
215
- });
216
- // ---------------------------------------------------------------------------
217
- // AC4: ConvergenceController integration with AutoSummarizer
218
- // ---------------------------------------------------------------------------
219
- describe('ConvergenceController with AutoSummarizer integration', () => {
220
- it('recordIterationContext appends to getStoredContexts — length 3 after 3 calls', () => {
221
- const controller = createConvergenceController();
222
- controller.recordIterationContext({ index: 0, content: 'ctx 0', tokenEstimate: 10 });
223
- controller.recordIterationContext({ index: 1, content: 'ctx 1', tokenEstimate: 10 });
224
- controller.recordIterationContext({ index: 2, content: 'ctx 2', tokenEstimate: 10 });
225
- expect(controller.getStoredContexts()).toHaveLength(3);
226
- });
227
- it('prepareForIteration without autoSummarizer returns stored contexts unchanged', async () => {
228
- const controller = createConvergenceController();
229
- controller.recordIterationContext({ index: 0, content: 'ctx 0', tokenEstimate: 50 });
230
- controller.recordIterationContext({ index: 1, content: 'ctx 1', tokenEstimate: 50 });
231
- const result = await controller.prepareForIteration(2);
232
- expect(result).toHaveLength(2);
233
- expect(isCompressed(result[0])).toBe(false);
234
- expect(isCompressed(result[1])).toBe(false);
235
- });
236
- it('after 6 contexts at 40 tokens each (total 240 > 160), prepareForIteration(5) returns 6 entries', async () => {
237
- const mockEngine = new MockSummaryEngine();
238
- const autoSummarizer = new AutoSummarizer(mockEngine, 200, {
239
- threshold: 0.8,
240
- targetLevel: 'medium',
241
- });
242
- const controller = createConvergenceController({ autoSummarizer });
243
- for (let i = 0; i < 6; i++) {
244
- controller.recordIterationContext({ index: i, content: `ctx ${i}`, tokenEstimate: 40 });
245
- }
246
- const result = await controller.prepareForIteration(5);
247
- expect(result).toHaveLength(6);
248
- });
249
- it('all returned entries with index < 5 have compressed: true after prepareForIteration(5)', async () => {
250
- const mockEngine = new MockSummaryEngine();
251
- const autoSummarizer = new AutoSummarizer(mockEngine, 200, {
252
- threshold: 0.8,
253
- targetLevel: 'medium',
254
- });
255
- const controller = createConvergenceController({ autoSummarizer });
256
- for (let i = 0; i < 6; i++) {
257
- controller.recordIterationContext({ index: i, content: `ctx ${i}`, tokenEstimate: 40 });
258
- }
259
- const result = await controller.prepareForIteration(5);
260
- const compressedEntries = result.filter((c) => c.index < 5);
261
- expect(compressedEntries.every(isCompressed)).toBe(true);
262
- });
263
- it('entry at index 5 lacks "compressed" key (is plain IterationContext)', async () => {
264
- const mockEngine = new MockSummaryEngine();
265
- const autoSummarizer = new AutoSummarizer(mockEngine, 200, {
266
- threshold: 0.8,
267
- targetLevel: 'medium',
268
- });
269
- const controller = createConvergenceController({ autoSummarizer });
270
- for (let i = 0; i < 6; i++) {
271
- controller.recordIterationContext({ index: i, content: `ctx ${i}`, tokenEstimate: 40 });
272
- }
273
- const result = await controller.prepareForIteration(5);
274
- const entry5 = result.find((c) => c.index === 5);
275
- expect(entry5).toBeDefined();
276
- expect(isCompressed(entry5)).toBe(false);
277
- });
278
- it('each compressed entry has summary.level === "medium" (the configured targetLevel)', async () => {
279
- const mockEngine = new MockSummaryEngine();
280
- const autoSummarizer = new AutoSummarizer(mockEngine, 200, {
281
- threshold: 0.8,
282
- targetLevel: 'medium',
283
- });
284
- const controller = createConvergenceController({ autoSummarizer });
285
- for (let i = 0; i < 6; i++) {
286
- controller.recordIterationContext({ index: i, content: `ctx ${i}`, tokenEstimate: 40 });
287
- }
288
- const result = await controller.prepareForIteration(5);
289
- const compressedEntries = result.filter(isCompressed);
290
- for (const entry of compressedEntries) {
291
- expect(entry.summary.level).toBe('medium');
292
- }
293
- });
294
- it('getStoredContexts().length === 6 after compression', async () => {
295
- const mockEngine = new MockSummaryEngine();
296
- const autoSummarizer = new AutoSummarizer(mockEngine, 200, {
297
- threshold: 0.8,
298
- targetLevel: 'medium',
299
- });
300
- const controller = createConvergenceController({ autoSummarizer });
301
- for (let i = 0; i < 6; i++) {
302
- controller.recordIterationContext({ index: i, content: `ctx ${i}`, tokenEstimate: 40 });
303
- }
304
- await controller.prepareForIteration(5);
305
- expect(controller.getStoredContexts()).toHaveLength(6);
306
- });
307
- it('MockSummaryEngine.callCount === 5 after compressing indices 0–4', async () => {
308
- const mockEngine = new MockSummaryEngine();
309
- const autoSummarizer = new AutoSummarizer(mockEngine, 200, {
310
- threshold: 0.8,
311
- targetLevel: 'medium',
312
- });
313
- const controller = createConvergenceController({ autoSummarizer });
314
- for (let i = 0; i < 6; i++) {
315
- controller.recordIterationContext({ index: i, content: `ctx ${i}`, tokenEstimate: 40 });
316
- }
317
- await controller.prepareForIteration(5);
318
- expect(mockEngine.callCount).toBe(5);
319
- });
320
- });
321
- // ---------------------------------------------------------------------------
322
- // AC5: Hash and metadata integrity
323
- // ---------------------------------------------------------------------------
324
- describe('Hash and metadata integrity', () => {
325
- const content = `\`\`\`js\nconst x = 1\n\`\`\`\n\nFile: src/foo/bar.ts\n\nError: ENOENT: file not found`;
326
- it('summary.originalHash is a 64-character lowercase hex string', async () => {
327
- const mock = createMockLLMClient();
328
- const engine = new LLMSummaryEngine(mock.client);
329
- const summary = await engine.summarize(content, 'medium');
330
- expect(summary.originalHash).toHaveLength(64);
331
- expect(summary.originalHash).toMatch(/^[0-9a-f]{64}$/);
332
- });
333
- it('summary.originalHash matches SHA-256 of the input content', async () => {
334
- const mock = createMockLLMClient();
335
- const engine = new LLMSummaryEngine(mock.client);
336
- const summary = await engine.summarize(content, 'medium');
337
- const expectedHash = createHash('sha256').update(content).digest('hex');
338
- expect(summary.originalHash).toBe(expectedHash);
339
- });
340
- it('summary.createdAt yields a valid non-NaN date when parsed by new Date()', async () => {
341
- const mock = createMockLLMClient();
342
- const engine = new LLMSummaryEngine(mock.client);
343
- const summary = await engine.summarize(content, 'medium');
344
- const parsed = new Date(summary.createdAt);
345
- expect(Number.isNaN(parsed.getTime())).toBe(false);
346
- expect(parsed.getTime()).toBeGreaterThan(0);
347
- });
348
- it('summary.summaryTokenCount is a positive integer', async () => {
349
- const mock = createMockLLMClient();
350
- const engine = new LLMSummaryEngine(mock.client);
351
- const summary = await engine.summarize(content, 'medium');
352
- expect(summary.summaryTokenCount).toBeDefined();
353
- expect(summary.summaryTokenCount).toBeGreaterThan(0);
354
- expect(Number.isInteger(summary.summaryTokenCount)).toBe(true);
355
- });
356
- it('summary.originalTokenCount is a positive integer', async () => {
357
- const mock = createMockLLMClient();
358
- const engine = new LLMSummaryEngine(mock.client);
359
- const summary = await engine.summarize(content, 'medium');
360
- expect(summary.originalTokenCount).toBeDefined();
361
- expect(summary.originalTokenCount).toBeGreaterThan(0);
362
- expect(Number.isInteger(summary.originalTokenCount)).toBe(true);
363
- });
364
- });
365
- // ---------------------------------------------------------------------------
366
- // AC6: Boundary conditions for shouldTrigger and estimateTokens
367
- // ---------------------------------------------------------------------------
368
- describe('shouldTrigger boundary conditions', () => {
369
- // Model limit = 100, threshold = 0.8 → trigger at total strictly > 80
370
- const mockEngine = new MockSummaryEngine();
371
- it('total === 80 (exactly at threshold) returns false', () => {
372
- const summarizer = new AutoSummarizer(mockEngine, 100, { threshold: 0.8 });
373
- const iterations = [
374
- { index: 0, content: '', tokenEstimate: 40 },
375
- { index: 1, content: '', tokenEstimate: 40 },
376
- ];
377
- expect(summarizer.shouldTrigger(iterations)).toBe(false);
378
- });
379
- it('total === 81 (one above threshold) returns true', () => {
380
- const summarizer = new AutoSummarizer(mockEngine, 100, { threshold: 0.8 });
381
- const iterations = [
382
- { index: 0, content: '', tokenEstimate: 40 },
383
- { index: 1, content: '', tokenEstimate: 41 },
384
- ];
385
- expect(summarizer.shouldTrigger(iterations)).toBe(true);
386
- });
387
- it('total === 40 (well below threshold) returns false', () => {
388
- const summarizer = new AutoSummarizer(mockEngine, 100, { threshold: 0.8 });
389
- const iterations = [
390
- { index: 0, content: '', tokenEstimate: 40 },
391
- ];
392
- expect(summarizer.shouldTrigger(iterations)).toBe(false);
393
- });
394
- it('iteration with no tokenEstimate and 40-char content uses estimateTokens → 10 tokens → false', () => {
395
- const summarizer = new AutoSummarizer(mockEngine, 100, { threshold: 0.8 });
396
- // 40 chars / 4 = 10 tokens; 10 > 80? → false
397
- const content40 = 'a'.repeat(40);
398
- expect(estimateTokens(content40)).toBe(10);
399
- const iterations = [{ index: 0, content: content40 }];
400
- // Manually computed: 10 tokens, trigger at >80 → false
401
- expect(summarizer.shouldTrigger(iterations)).toBe(false);
402
- });
403
- it('explicit tokenEstimate=90 overrides content-based estimate and triggers (90 > 80)', () => {
404
- const summarizer = new AutoSummarizer(mockEngine, 100, { threshold: 0.8 });
405
- // content is 'a' (1 char → estimateTokens=1), but tokenEstimate=90 overrides
406
- const iterations = [
407
- { index: 0, content: 'a', tokenEstimate: 90 },
408
- ];
409
- expect(summarizer.shouldTrigger(iterations)).toBe(true);
410
- });
411
- it('threshold=0.5: trigger fires at total > 50 (51 tokens → true)', () => {
412
- const summarizer = new AutoSummarizer(mockEngine, 100, { threshold: 0.5 });
413
- const iterations = [
414
- { index: 0, content: '', tokenEstimate: 51 },
415
- ];
416
- expect(summarizer.shouldTrigger(iterations)).toBe(true);
417
- });
418
- it('threshold=0.5: does not fire at exactly 50 tokens', () => {
419
- const summarizer = new AutoSummarizer(mockEngine, 100, { threshold: 0.5 });
420
- const iterations = [
421
- { index: 0, content: '', tokenEstimate: 50 },
422
- ];
423
- expect(summarizer.shouldTrigger(iterations)).toBe(false);
424
- });
425
- it('threshold=0.95: does not fire at 94 tokens (94 is not > 95)', () => {
426
- const summarizer = new AutoSummarizer(mockEngine, 100, { threshold: 0.95 });
427
- const iterations = [
428
- { index: 0, content: '', tokenEstimate: 94 },
429
- ];
430
- expect(summarizer.shouldTrigger(iterations)).toBe(false);
431
- });
432
- it('threshold=0.95: fires at 96 tokens (96 > 95)', () => {
433
- const summarizer = new AutoSummarizer(mockEngine, 100, { threshold: 0.95 });
434
- const iterations = [
435
- { index: 0, content: '', tokenEstimate: 96 },
436
- ];
437
- expect(summarizer.shouldTrigger(iterations)).toBe(true);
438
- });
439
- });
440
- // ---------------------------------------------------------------------------
441
- // AC7: Multi-round compression through ConvergenceController
442
- // ---------------------------------------------------------------------------
443
- describe('Multi-round compression via ConvergenceController', () => {
444
- // limit=100, threshold=0.8 → trigger at > 80
445
- function setupController() {
446
- const mockEngine = new MockSummaryEngine();
447
- const autoSummarizer = new AutoSummarizer(mockEngine, 100, {
448
- threshold: 0.8,
449
- targetLevel: 'medium',
450
- });
451
- const controller = createConvergenceController({ autoSummarizer });
452
- return { mockEngine, autoSummarizer, controller };
453
- }
454
- it('after first prepareForIteration(4), getStoredContexts() has 5 entries with indices 0–3 compressed', async () => {
455
- const { controller } = setupController();
456
- // Record 5 contexts (0-4), each with 25 tokens → total=125 > 80 → triggers
457
- for (let i = 0; i < 5; i++) {
458
- controller.recordIterationContext({ index: i, content: `ctx ${i}`, tokenEstimate: 25 });
459
- }
460
- await controller.prepareForIteration(4);
461
- const stored = controller.getStoredContexts();
462
- expect(stored).toHaveLength(5);
463
- // Indices 0-3 should be compressed, index 4 should be plain
464
- for (let i = 0; i < 4; i++) {
465
- const entry = stored.find((c) => c.index === i);
466
- expect(entry).toBeDefined();
467
- expect(isCompressed(entry)).toBe(true);
468
- }
469
- const entry4 = stored.find((c) => c.index === 4);
470
- expect(entry4).toBeDefined();
471
- expect(isCompressed(entry4)).toBe(false);
472
- });
473
- it('callCount increases by only 1 after second round (already-compressed 0–3 not re-summarized)', async () => {
474
- const { mockEngine, controller } = setupController();
475
- // First round: record 5 contexts (0-4) at 25 tokens each
476
- for (let i = 0; i < 5; i++) {
477
- controller.recordIterationContext({ index: i, content: `ctx ${i}`, tokenEstimate: 25 });
478
- }
479
- await controller.prepareForIteration(4);
480
- const callCountAfterFirst = mockEngine.callCount; // should be 4
481
- // Record context index=5 with tokenEstimate=90 → uncompressed=[iter4_25, iter5_90]=115>80 → triggers
482
- controller.recordIterationContext({ index: 5, content: 'ctx 5', tokenEstimate: 90 });
483
- await controller.prepareForIteration(5);
484
- expect(mockEngine.callCount).toBe(callCountAfterFirst + 1);
485
- });
486
- it('getStoredContexts() after second round has length 6', async () => {
487
- const { controller } = setupController();
488
- for (let i = 0; i < 5; i++) {
489
- controller.recordIterationContext({ index: i, content: `ctx ${i}`, tokenEstimate: 25 });
490
- }
491
- await controller.prepareForIteration(4);
492
- controller.recordIterationContext({ index: 5, content: 'ctx 5', tokenEstimate: 90 });
493
- await controller.prepareForIteration(5);
494
- expect(controller.getStoredContexts()).toHaveLength(6);
495
- });
496
- it('indices 0–4 all compressed: true, index 5 is plain IterationContext after second round', async () => {
497
- const { controller } = setupController();
498
- for (let i = 0; i < 5; i++) {
499
- controller.recordIterationContext({ index: i, content: `ctx ${i}`, tokenEstimate: 25 });
500
- }
501
- await controller.prepareForIteration(4);
502
- controller.recordIterationContext({ index: 5, content: 'ctx 5', tokenEstimate: 90 });
503
- await controller.prepareForIteration(5);
504
- const stored = controller.getStoredContexts();
505
- for (let i = 0; i < 5; i++) {
506
- const entry = stored.find((c) => c.index === i);
507
- expect(entry).toBeDefined();
508
- expect(isCompressed(entry)).toBe(true);
509
- }
510
- const entry5 = stored.find((c) => c.index === 5);
511
- expect(entry5).toBeDefined();
512
- expect(isCompressed(entry5)).toBe(false);
513
- });
514
- it('merged array is sorted by index (index 0 first, index 5 last) after second round', async () => {
515
- const { controller } = setupController();
516
- for (let i = 0; i < 5; i++) {
517
- controller.recordIterationContext({ index: i, content: `ctx ${i}`, tokenEstimate: 25 });
518
- }
519
- await controller.prepareForIteration(4);
520
- controller.recordIterationContext({ index: 5, content: 'ctx 5', tokenEstimate: 90 });
521
- await controller.prepareForIteration(5);
522
- const stored = controller.getStoredContexts();
523
- expect(stored[0]?.index).toBe(0);
524
- expect(stored[stored.length - 1]?.index).toBe(5);
525
- // Verify fully sorted
526
- for (let i = 1; i < stored.length; i++) {
527
- expect(stored[i].index).toBeGreaterThan(stored[i - 1].index);
528
- }
529
- });
530
- });
531
- // Ensure SUMMARY_BUDGET is referenced to avoid import being flagged as unused
532
- void SUMMARY_BUDGET;
533
- //# sourceMappingURL=pyramid-summary-integration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pyramid-summary-integration.test.js","sourceRoot":"","sources":["../../../src/context/__tests__/pyramid-summary-integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=summarizer.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"summarizer.test.d.ts","sourceRoot":"","sources":["../../../src/context/__tests__/summarizer.test.ts"],"names":[],"mappings":""}