@substrate-ai/factory 0.19.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (885) hide show
  1. package/dist/__tests__/config.test.d.ts +11 -0
  2. package/dist/__tests__/config.test.d.ts.map +1 -0
  3. package/dist/__tests__/config.test.js +215 -0
  4. package/dist/__tests__/config.test.js.map +1 -0
  5. package/dist/__tests__/factory-run-command.test.d.ts +12 -0
  6. package/dist/__tests__/factory-run-command.test.d.ts.map +1 -0
  7. package/dist/__tests__/factory-run-command.test.js +454 -0
  8. package/dist/__tests__/factory-run-command.test.js.map +1 -0
  9. package/dist/__tests__/factory-validate-command.test.d.ts +15 -0
  10. package/dist/__tests__/factory-validate-command.test.d.ts.map +1 -0
  11. package/dist/__tests__/factory-validate-command.test.js +339 -0
  12. package/dist/__tests__/factory-validate-command.test.js.map +1 -0
  13. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.d.ts +72 -0
  14. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.d.ts.map +1 -0
  15. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.js +121 -0
  16. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.js.map +1 -0
  17. package/dist/__tests__/fixtures/llm-edge-routing.dot.d.ts +28 -0
  18. package/dist/__tests__/fixtures/llm-edge-routing.dot.d.ts.map +1 -0
  19. package/dist/__tests__/fixtures/llm-edge-routing.dot.js +55 -0
  20. package/dist/__tests__/fixtures/llm-edge-routing.dot.js.map +1 -0
  21. package/dist/__tests__/fixtures/manager-loop.dot.d.ts +34 -0
  22. package/dist/__tests__/fixtures/manager-loop.dot.d.ts.map +1 -0
  23. package/dist/__tests__/fixtures/manager-loop.dot.js +61 -0
  24. package/dist/__tests__/fixtures/manager-loop.dot.js.map +1 -0
  25. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.d.ts +42 -0
  26. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.d.ts.map +1 -0
  27. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.js +118 -0
  28. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.js.map +1 -0
  29. package/dist/__tests__/fixtures/subgraph-parent.dot.d.ts +35 -0
  30. package/dist/__tests__/fixtures/subgraph-parent.dot.d.ts.map +1 -0
  31. package/dist/__tests__/fixtures/subgraph-parent.dot.js +69 -0
  32. package/dist/__tests__/fixtures/subgraph-parent.dot.js.map +1 -0
  33. package/dist/__tests__/integration/advanced-graph-events.test.d.ts +19 -0
  34. package/dist/__tests__/integration/advanced-graph-events.test.d.ts.map +1 -0
  35. package/dist/__tests__/integration/advanced-graph-events.test.js +288 -0
  36. package/dist/__tests__/integration/advanced-graph-events.test.js.map +1 -0
  37. package/dist/__tests__/integration/checkpoint-resume.test.d.ts +10 -0
  38. package/dist/__tests__/integration/checkpoint-resume.test.d.ts.map +1 -0
  39. package/dist/__tests__/integration/checkpoint-resume.test.js +125 -0
  40. package/dist/__tests__/integration/checkpoint-resume.test.js.map +1 -0
  41. package/dist/__tests__/integration/conditional-pipeline.test.d.ts +10 -0
  42. package/dist/__tests__/integration/conditional-pipeline.test.d.ts.map +1 -0
  43. package/dist/__tests__/integration/conditional-pipeline.test.js +106 -0
  44. package/dist/__tests__/integration/conditional-pipeline.test.js.map +1 -0
  45. package/dist/__tests__/integration/convergence-validation.test.d.ts +14 -0
  46. package/dist/__tests__/integration/convergence-validation.test.d.ts.map +1 -0
  47. package/dist/__tests__/integration/convergence-validation.test.js +449 -0
  48. package/dist/__tests__/integration/convergence-validation.test.js.map +1 -0
  49. package/dist/__tests__/integration/epic44-coverage-gate.test.d.ts +12 -0
  50. package/dist/__tests__/integration/epic44-coverage-gate.test.d.ts.map +1 -0
  51. package/dist/__tests__/integration/epic44-coverage-gate.test.js +58 -0
  52. package/dist/__tests__/integration/epic44-coverage-gate.test.js.map +1 -0
  53. package/dist/__tests__/integration/epic45-coverage-gate.test.d.ts +11 -0
  54. package/dist/__tests__/integration/epic45-coverage-gate.test.d.ts.map +1 -0
  55. package/dist/__tests__/integration/epic45-coverage-gate.test.js +64 -0
  56. package/dist/__tests__/integration/epic45-coverage-gate.test.js.map +1 -0
  57. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.d.ts +2 -0
  58. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.d.ts.map +1 -0
  59. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.js +285 -0
  60. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.js.map +1 -0
  61. package/dist/__tests__/integration/events.test.d.ts +8 -0
  62. package/dist/__tests__/integration/events.test.d.ts.map +1 -0
  63. package/dist/__tests__/integration/events.test.js +194 -0
  64. package/dist/__tests__/integration/events.test.js.map +1 -0
  65. package/dist/__tests__/integration/graphs.d.ts +59 -0
  66. package/dist/__tests__/integration/graphs.d.ts.map +1 -0
  67. package/dist/__tests__/integration/graphs.js +164 -0
  68. package/dist/__tests__/integration/graphs.js.map +1 -0
  69. package/dist/__tests__/integration/helpers.d.ts +127 -0
  70. package/dist/__tests__/integration/helpers.d.ts.map +1 -0
  71. package/dist/__tests__/integration/helpers.js +167 -0
  72. package/dist/__tests__/integration/helpers.js.map +1 -0
  73. package/dist/__tests__/integration/integrity.test.d.ts +8 -0
  74. package/dist/__tests__/integration/integrity.test.d.ts.map +1 -0
  75. package/dist/__tests__/integration/integrity.test.js +198 -0
  76. package/dist/__tests__/integration/integrity.test.js.map +1 -0
  77. package/dist/__tests__/integration/llm-edge-routing.test.d.ts +21 -0
  78. package/dist/__tests__/integration/llm-edge-routing.test.d.ts.map +1 -0
  79. package/dist/__tests__/integration/llm-edge-routing.test.js +341 -0
  80. package/dist/__tests__/integration/llm-edge-routing.test.js.map +1 -0
  81. package/dist/__tests__/integration/manager-loop.test.d.ts +24 -0
  82. package/dist/__tests__/integration/manager-loop.test.d.ts.map +1 -0
  83. package/dist/__tests__/integration/manager-loop.test.js +276 -0
  84. package/dist/__tests__/integration/manager-loop.test.js.map +1 -0
  85. package/dist/__tests__/integration/multi-type-graph.test.d.ts +10 -0
  86. package/dist/__tests__/integration/multi-type-graph.test.d.ts.map +1 -0
  87. package/dist/__tests__/integration/multi-type-graph.test.js +100 -0
  88. package/dist/__tests__/integration/multi-type-graph.test.js.map +1 -0
  89. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.d.ts +22 -0
  90. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.d.ts.map +1 -0
  91. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.js +515 -0
  92. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.js.map +1 -0
  93. package/dist/__tests__/integration/persistence.test.d.ts +8 -0
  94. package/dist/__tests__/integration/persistence.test.d.ts.map +1 -0
  95. package/dist/__tests__/integration/persistence.test.js +129 -0
  96. package/dist/__tests__/integration/persistence.test.js.map +1 -0
  97. package/dist/__tests__/integration/pipeline-templates-integration.test.d.ts +16 -0
  98. package/dist/__tests__/integration/pipeline-templates-integration.test.d.ts.map +1 -0
  99. package/dist/__tests__/integration/pipeline-templates-integration.test.js +171 -0
  100. package/dist/__tests__/integration/pipeline-templates-integration.test.js.map +1 -0
  101. package/dist/__tests__/integration/scenario-pipeline.test.d.ts +11 -0
  102. package/dist/__tests__/integration/scenario-pipeline.test.d.ts.map +1 -0
  103. package/dist/__tests__/integration/scenario-pipeline.test.js +243 -0
  104. package/dist/__tests__/integration/scenario-pipeline.test.js.map +1 -0
  105. package/dist/__tests__/integration/stylesheet-application.test.d.ts +12 -0
  106. package/dist/__tests__/integration/stylesheet-application.test.d.ts.map +1 -0
  107. package/dist/__tests__/integration/stylesheet-application.test.js +119 -0
  108. package/dist/__tests__/integration/stylesheet-application.test.js.map +1 -0
  109. package/dist/__tests__/integration/subgraph-execution.test.d.ts +24 -0
  110. package/dist/__tests__/integration/subgraph-execution.test.d.ts.map +1 -0
  111. package/dist/__tests__/integration/subgraph-execution.test.js +291 -0
  112. package/dist/__tests__/integration/subgraph-execution.test.js.map +1 -0
  113. package/dist/__tests__/integration/validation-errors.test.d.ts +8 -0
  114. package/dist/__tests__/integration/validation-errors.test.d.ts.map +1 -0
  115. package/dist/__tests__/integration/validation-errors.test.js +150 -0
  116. package/dist/__tests__/integration/validation-errors.test.js.map +1 -0
  117. package/dist/agent/__tests__/loop-detection.test.d.ts +2 -0
  118. package/dist/agent/__tests__/loop-detection.test.d.ts.map +1 -0
  119. package/dist/agent/__tests__/loop-detection.test.js +236 -0
  120. package/dist/agent/__tests__/loop-detection.test.js.map +1 -0
  121. package/dist/agent/__tests__/loop.test.d.ts +2 -0
  122. package/dist/agent/__tests__/loop.test.d.ts.map +1 -0
  123. package/dist/agent/__tests__/loop.test.js +868 -0
  124. package/dist/agent/__tests__/loop.test.js.map +1 -0
  125. package/dist/agent/__tests__/truncation.test.d.ts +2 -0
  126. package/dist/agent/__tests__/truncation.test.d.ts.map +1 -0
  127. package/dist/agent/__tests__/truncation.test.js +276 -0
  128. package/dist/agent/__tests__/truncation.test.js.map +1 -0
  129. package/dist/agent/index.d.ts +11 -0
  130. package/dist/agent/index.d.ts.map +1 -0
  131. package/dist/agent/index.js +13 -0
  132. package/dist/agent/index.js.map +1 -0
  133. package/dist/agent/loop-detection.d.ts +21 -0
  134. package/dist/agent/loop-detection.d.ts.map +1 -0
  135. package/dist/agent/loop-detection.js +61 -0
  136. package/dist/agent/loop-detection.js.map +1 -0
  137. package/dist/agent/loop.d.ts +88 -0
  138. package/dist/agent/loop.d.ts.map +1 -0
  139. package/dist/agent/loop.js +411 -0
  140. package/dist/agent/loop.js.map +1 -0
  141. package/dist/agent/tools/__tests__/anthropic-tools.test.d.ts +6 -0
  142. package/dist/agent/tools/__tests__/anthropic-tools.test.d.ts.map +1 -0
  143. package/dist/agent/tools/__tests__/anthropic-tools.test.js +49 -0
  144. package/dist/agent/tools/__tests__/anthropic-tools.test.js.map +1 -0
  145. package/dist/agent/tools/__tests__/environment.test.d.ts +6 -0
  146. package/dist/agent/tools/__tests__/environment.test.d.ts.map +1 -0
  147. package/dist/agent/tools/__tests__/environment.test.js +33 -0
  148. package/dist/agent/tools/__tests__/environment.test.js.map +1 -0
  149. package/dist/agent/tools/__tests__/gemini-tools.test.d.ts +6 -0
  150. package/dist/agent/tools/__tests__/gemini-tools.test.d.ts.map +1 -0
  151. package/dist/agent/tools/__tests__/gemini-tools.test.js +98 -0
  152. package/dist/agent/tools/__tests__/gemini-tools.test.js.map +1 -0
  153. package/dist/agent/tools/__tests__/openai-tools.test.d.ts +6 -0
  154. package/dist/agent/tools/__tests__/openai-tools.test.d.ts.map +1 -0
  155. package/dist/agent/tools/__tests__/openai-tools.test.js +53 -0
  156. package/dist/agent/tools/__tests__/openai-tools.test.js.map +1 -0
  157. package/dist/agent/tools/__tests__/patch.test.d.ts +6 -0
  158. package/dist/agent/tools/__tests__/patch.test.d.ts.map +1 -0
  159. package/dist/agent/tools/__tests__/patch.test.js +116 -0
  160. package/dist/agent/tools/__tests__/patch.test.js.map +1 -0
  161. package/dist/agent/tools/__tests__/profiles.test.d.ts +6 -0
  162. package/dist/agent/tools/__tests__/profiles.test.d.ts.map +1 -0
  163. package/dist/agent/tools/__tests__/profiles.test.js +125 -0
  164. package/dist/agent/tools/__tests__/profiles.test.js.map +1 -0
  165. package/dist/agent/tools/__tests__/registry.test.d.ts +6 -0
  166. package/dist/agent/tools/__tests__/registry.test.d.ts.map +1 -0
  167. package/dist/agent/tools/__tests__/registry.test.js +94 -0
  168. package/dist/agent/tools/__tests__/registry.test.js.map +1 -0
  169. package/dist/agent/tools/__tests__/shared.test.d.ts +6 -0
  170. package/dist/agent/tools/__tests__/shared.test.d.ts.map +1 -0
  171. package/dist/agent/tools/__tests__/shared.test.js +131 -0
  172. package/dist/agent/tools/__tests__/shared.test.js.map +1 -0
  173. package/dist/agent/tools/anthropic-tools.d.ts +15 -0
  174. package/dist/agent/tools/anthropic-tools.d.ts.map +1 -0
  175. package/dist/agent/tools/anthropic-tools.js +45 -0
  176. package/dist/agent/tools/anthropic-tools.js.map +1 -0
  177. package/dist/agent/tools/environment.d.ts +11 -0
  178. package/dist/agent/tools/environment.d.ts.map +1 -0
  179. package/dist/agent/tools/environment.js +35 -0
  180. package/dist/agent/tools/environment.js.map +1 -0
  181. package/dist/agent/tools/gemini-tools.d.ts +29 -0
  182. package/dist/agent/tools/gemini-tools.d.ts.map +1 -0
  183. package/dist/agent/tools/gemini-tools.js +112 -0
  184. package/dist/agent/tools/gemini-tools.js.map +1 -0
  185. package/dist/agent/tools/index.d.ts +13 -0
  186. package/dist/agent/tools/index.d.ts.map +1 -0
  187. package/dist/agent/tools/index.js +13 -0
  188. package/dist/agent/tools/index.js.map +1 -0
  189. package/dist/agent/tools/openai-tools.d.ts +18 -0
  190. package/dist/agent/tools/openai-tools.d.ts.map +1 -0
  191. package/dist/agent/tools/openai-tools.js +208 -0
  192. package/dist/agent/tools/openai-tools.js.map +1 -0
  193. package/dist/agent/tools/profiles.d.ts +66 -0
  194. package/dist/agent/tools/profiles.d.ts.map +1 -0
  195. package/dist/agent/tools/profiles.js +121 -0
  196. package/dist/agent/tools/profiles.js.map +1 -0
  197. package/dist/agent/tools/registry.d.ts +16 -0
  198. package/dist/agent/tools/registry.d.ts.map +1 -0
  199. package/dist/agent/tools/registry.js +55 -0
  200. package/dist/agent/tools/registry.js.map +1 -0
  201. package/dist/agent/tools/shared.d.ts +10 -0
  202. package/dist/agent/tools/shared.d.ts.map +1 -0
  203. package/dist/agent/tools/shared.js +207 -0
  204. package/dist/agent/tools/shared.js.map +1 -0
  205. package/dist/agent/tools/types.d.ts +55 -0
  206. package/dist/agent/tools/types.d.ts.map +1 -0
  207. package/dist/agent/tools/types.js +14 -0
  208. package/dist/agent/tools/types.js.map +1 -0
  209. package/dist/agent/truncation.d.ts +29 -0
  210. package/dist/agent/truncation.d.ts.map +1 -0
  211. package/dist/agent/truncation.js +76 -0
  212. package/dist/agent/truncation.js.map +1 -0
  213. package/dist/agent/types.d.ts +91 -0
  214. package/dist/agent/types.d.ts.map +1 -0
  215. package/dist/agent/types.js +45 -0
  216. package/dist/agent/types.js.map +1 -0
  217. package/dist/backend/__tests__/direct-backend.test.d.ts +14 -0
  218. package/dist/backend/__tests__/direct-backend.test.d.ts.map +1 -0
  219. package/dist/backend/__tests__/direct-backend.test.js +393 -0
  220. package/dist/backend/__tests__/direct-backend.test.js.map +1 -0
  221. package/dist/backend/__tests__/direct-bootstrap.test.d.ts +7 -0
  222. package/dist/backend/__tests__/direct-bootstrap.test.d.ts.map +1 -0
  223. package/dist/backend/__tests__/direct-bootstrap.test.js +177 -0
  224. package/dist/backend/__tests__/direct-bootstrap.test.js.map +1 -0
  225. package/dist/backend/__tests__/mock-backend.test.d.ts +7 -0
  226. package/dist/backend/__tests__/mock-backend.test.d.ts.map +1 -0
  227. package/dist/backend/__tests__/mock-backend.test.js +273 -0
  228. package/dist/backend/__tests__/mock-backend.test.js.map +1 -0
  229. package/dist/backend/__tests__/parity.test.d.ts +17 -0
  230. package/dist/backend/__tests__/parity.test.d.ts.map +1 -0
  231. package/dist/backend/__tests__/parity.test.js +411 -0
  232. package/dist/backend/__tests__/parity.test.js.map +1 -0
  233. package/dist/backend/direct-backend.d.ts +27 -0
  234. package/dist/backend/direct-backend.d.ts.map +1 -0
  235. package/dist/backend/direct-backend.js +76 -0
  236. package/dist/backend/direct-backend.js.map +1 -0
  237. package/dist/backend/direct-bootstrap.d.ts +29 -0
  238. package/dist/backend/direct-bootstrap.d.ts.map +1 -0
  239. package/dist/backend/direct-bootstrap.js +109 -0
  240. package/dist/backend/direct-bootstrap.js.map +1 -0
  241. package/dist/backend/index.d.ts +11 -0
  242. package/dist/backend/index.d.ts.map +1 -0
  243. package/dist/backend/index.js +8 -0
  244. package/dist/backend/index.js.map +1 -0
  245. package/dist/backend/mock-backend.d.ts +49 -0
  246. package/dist/backend/mock-backend.d.ts.map +1 -0
  247. package/dist/backend/mock-backend.js +87 -0
  248. package/dist/backend/mock-backend.js.map +1 -0
  249. package/dist/backend/types.d.ts +74 -0
  250. package/dist/backend/types.d.ts.map +1 -0
  251. package/dist/backend/types.js +12 -0
  252. package/dist/backend/types.js.map +1 -0
  253. package/dist/config.d.ts +196 -0
  254. package/dist/config.d.ts.map +1 -0
  255. package/dist/config.js +140 -0
  256. package/dist/config.js.map +1 -0
  257. package/dist/context/__tests__/auto-summarizer.test.d.ts +14 -0
  258. package/dist/context/__tests__/auto-summarizer.test.d.ts.map +1 -0
  259. package/dist/context/__tests__/auto-summarizer.test.js +189 -0
  260. package/dist/context/__tests__/auto-summarizer.test.js.map +1 -0
  261. package/dist/context/__tests__/context-cli-command.test.d.ts +7 -0
  262. package/dist/context/__tests__/context-cli-command.test.d.ts.map +1 -0
  263. package/dist/context/__tests__/context-cli-command.test.js +331 -0
  264. package/dist/context/__tests__/context-cli-command.test.js.map +1 -0
  265. package/dist/context/__tests__/pyramid-summary-integration.test.d.ts +2 -0
  266. package/dist/context/__tests__/pyramid-summary-integration.test.d.ts.map +1 -0
  267. package/dist/context/__tests__/pyramid-summary-integration.test.js +533 -0
  268. package/dist/context/__tests__/pyramid-summary-integration.test.js.map +1 -0
  269. package/dist/context/__tests__/summarizer.test.d.ts +2 -0
  270. package/dist/context/__tests__/summarizer.test.d.ts.map +1 -0
  271. package/dist/context/__tests__/summarizer.test.js +189 -0
  272. package/dist/context/__tests__/summarizer.test.js.map +1 -0
  273. package/dist/context/__tests__/summary-cache.test.d.ts +2 -0
  274. package/dist/context/__tests__/summary-cache.test.d.ts.map +1 -0
  275. package/dist/context/__tests__/summary-cache.test.js +214 -0
  276. package/dist/context/__tests__/summary-cache.test.js.map +1 -0
  277. package/dist/context/__tests__/summary-metrics.test.d.ts +2 -0
  278. package/dist/context/__tests__/summary-metrics.test.d.ts.map +1 -0
  279. package/dist/context/__tests__/summary-metrics.test.js +172 -0
  280. package/dist/context/__tests__/summary-metrics.test.js.map +1 -0
  281. package/dist/context/__tests__/summary-types.test.d.ts +2 -0
  282. package/dist/context/__tests__/summary-types.test.d.ts.map +1 -0
  283. package/dist/context/__tests__/summary-types.test.js +130 -0
  284. package/dist/context/__tests__/summary-types.test.js.map +1 -0
  285. package/dist/context/auto-summarizer.d.ts +120 -0
  286. package/dist/context/auto-summarizer.d.ts.map +1 -0
  287. package/dist/context/auto-summarizer.js +91 -0
  288. package/dist/context/auto-summarizer.js.map +1 -0
  289. package/dist/context/cli-command.d.ts +109 -0
  290. package/dist/context/cli-command.d.ts.map +1 -0
  291. package/dist/context/cli-command.js +382 -0
  292. package/dist/context/cli-command.js.map +1 -0
  293. package/dist/context/index.d.ts +8 -0
  294. package/dist/context/index.d.ts.map +1 -0
  295. package/dist/context/index.js +8 -0
  296. package/dist/context/index.js.map +1 -0
  297. package/dist/context/summarizer.d.ts +12 -0
  298. package/dist/context/summarizer.d.ts.map +1 -0
  299. package/dist/context/summarizer.js +105 -0
  300. package/dist/context/summarizer.js.map +1 -0
  301. package/dist/context/summary-cache.d.ts +41 -0
  302. package/dist/context/summary-cache.d.ts.map +1 -0
  303. package/dist/context/summary-cache.js +80 -0
  304. package/dist/context/summary-cache.js.map +1 -0
  305. package/dist/context/summary-engine.d.ts +46 -0
  306. package/dist/context/summary-engine.d.ts.map +1 -0
  307. package/dist/context/summary-engine.js +2 -0
  308. package/dist/context/summary-engine.js.map +1 -0
  309. package/dist/context/summary-metrics.d.ts +75 -0
  310. package/dist/context/summary-metrics.d.ts.map +1 -0
  311. package/dist/context/summary-metrics.js +160 -0
  312. package/dist/context/summary-metrics.js.map +1 -0
  313. package/dist/context/summary-types.d.ts +103 -0
  314. package/dist/context/summary-types.d.ts.map +1 -0
  315. package/dist/context/summary-types.js +39 -0
  316. package/dist/context/summary-types.js.map +1 -0
  317. package/dist/convergence/__tests__/budget.test.d.ts +6 -0
  318. package/dist/convergence/__tests__/budget.test.d.ts.map +1 -0
  319. package/dist/convergence/__tests__/budget.test.js +187 -0
  320. package/dist/convergence/__tests__/budget.test.js.map +1 -0
  321. package/dist/convergence/__tests__/controller.test.d.ts +9 -0
  322. package/dist/convergence/__tests__/controller.test.d.ts.map +1 -0
  323. package/dist/convergence/__tests__/controller.test.js +585 -0
  324. package/dist/convergence/__tests__/controller.test.js.map +1 -0
  325. package/dist/convergence/__tests__/dual-signal.test.d.ts +14 -0
  326. package/dist/convergence/__tests__/dual-signal.test.d.ts.map +1 -0
  327. package/dist/convergence/__tests__/dual-signal.test.js +123 -0
  328. package/dist/convergence/__tests__/dual-signal.test.js.map +1 -0
  329. package/dist/convergence/__tests__/epic46-integration.test.d.ts +15 -0
  330. package/dist/convergence/__tests__/epic46-integration.test.d.ts.map +1 -0
  331. package/dist/convergence/__tests__/epic46-integration.test.js +522 -0
  332. package/dist/convergence/__tests__/epic46-integration.test.js.map +1 -0
  333. package/dist/convergence/__tests__/plateau.test.d.ts +6 -0
  334. package/dist/convergence/__tests__/plateau.test.d.ts.map +1 -0
  335. package/dist/convergence/__tests__/plateau.test.js +163 -0
  336. package/dist/convergence/__tests__/plateau.test.js.map +1 -0
  337. package/dist/convergence/__tests__/remediation.test.d.ts +11 -0
  338. package/dist/convergence/__tests__/remediation.test.d.ts.map +1 -0
  339. package/dist/convergence/__tests__/remediation.test.js +209 -0
  340. package/dist/convergence/__tests__/remediation.test.js.map +1 -0
  341. package/dist/convergence/__tests__/scenario-primary.test.d.ts +13 -0
  342. package/dist/convergence/__tests__/scenario-primary.test.d.ts.map +1 -0
  343. package/dist/convergence/__tests__/scenario-primary.test.js +183 -0
  344. package/dist/convergence/__tests__/scenario-primary.test.js.map +1 -0
  345. package/dist/convergence/budget.d.ts +181 -0
  346. package/dist/convergence/budget.d.ts.map +1 -0
  347. package/dist/convergence/budget.js +218 -0
  348. package/dist/convergence/budget.js.map +1 -0
  349. package/dist/convergence/controller.d.ts +133 -0
  350. package/dist/convergence/controller.d.ts.map +1 -0
  351. package/dist/convergence/controller.js +102 -0
  352. package/dist/convergence/controller.js.map +1 -0
  353. package/dist/convergence/dual-signal.d.ts +73 -0
  354. package/dist/convergence/dual-signal.d.ts.map +1 -0
  355. package/dist/convergence/dual-signal.js +78 -0
  356. package/dist/convergence/dual-signal.js.map +1 -0
  357. package/dist/convergence/index.d.ts +17 -0
  358. package/dist/convergence/index.d.ts.map +1 -0
  359. package/dist/convergence/index.js +11 -0
  360. package/dist/convergence/index.js.map +1 -0
  361. package/dist/convergence/plateau.d.ts +99 -0
  362. package/dist/convergence/plateau.d.ts.map +1 -0
  363. package/dist/convergence/plateau.js +83 -0
  364. package/dist/convergence/plateau.js.map +1 -0
  365. package/dist/convergence/remediation.d.ts +105 -0
  366. package/dist/convergence/remediation.d.ts.map +1 -0
  367. package/dist/convergence/remediation.js +117 -0
  368. package/dist/convergence/remediation.js.map +1 -0
  369. package/dist/events.d.ts +331 -0
  370. package/dist/events.d.ts.map +1 -0
  371. package/dist/events.js +13 -0
  372. package/dist/events.js.map +1 -0
  373. package/dist/factory-command.d.ts +40 -0
  374. package/dist/factory-command.d.ts.map +1 -0
  375. package/dist/factory-command.js +626 -0
  376. package/dist/factory-command.js.map +1 -0
  377. package/dist/factory-command.test.d.ts +8 -0
  378. package/dist/factory-command.test.d.ts.map +1 -0
  379. package/dist/factory-command.test.js +304 -0
  380. package/dist/factory-command.test.js.map +1 -0
  381. package/dist/graph/__tests__/attractor-compliance.test.d.ts +10 -0
  382. package/dist/graph/__tests__/attractor-compliance.test.d.ts.map +1 -0
  383. package/dist/graph/__tests__/attractor-compliance.test.js +766 -0
  384. package/dist/graph/__tests__/attractor-compliance.test.js.map +1 -0
  385. package/dist/graph/__tests__/checkpoint.test.d.ts +8 -0
  386. package/dist/graph/__tests__/checkpoint.test.d.ts.map +1 -0
  387. package/dist/graph/__tests__/checkpoint.test.js +329 -0
  388. package/dist/graph/__tests__/checkpoint.test.js.map +1 -0
  389. package/dist/graph/__tests__/condition-parser.test.d.ts +14 -0
  390. package/dist/graph/__tests__/condition-parser.test.d.ts.map +1 -0
  391. package/dist/graph/__tests__/condition-parser.test.js +406 -0
  392. package/dist/graph/__tests__/condition-parser.test.js.map +1 -0
  393. package/dist/graph/__tests__/context.test.d.ts +14 -0
  394. package/dist/graph/__tests__/context.test.d.ts.map +1 -0
  395. package/dist/graph/__tests__/context.test.js +276 -0
  396. package/dist/graph/__tests__/context.test.js.map +1 -0
  397. package/dist/graph/__tests__/edge-selector-events.test.d.ts +11 -0
  398. package/dist/graph/__tests__/edge-selector-events.test.d.ts.map +1 -0
  399. package/dist/graph/__tests__/edge-selector-events.test.js +184 -0
  400. package/dist/graph/__tests__/edge-selector-events.test.js.map +1 -0
  401. package/dist/graph/__tests__/edge-selector.test.d.ts +6 -0
  402. package/dist/graph/__tests__/edge-selector.test.d.ts.map +1 -0
  403. package/dist/graph/__tests__/edge-selector.test.js +452 -0
  404. package/dist/graph/__tests__/edge-selector.test.js.map +1 -0
  405. package/dist/graph/__tests__/executor-convergence.test.d.ts +12 -0
  406. package/dist/graph/__tests__/executor-convergence.test.d.ts.map +1 -0
  407. package/dist/graph/__tests__/executor-convergence.test.js +432 -0
  408. package/dist/graph/__tests__/executor-convergence.test.js.map +1 -0
  409. package/dist/graph/__tests__/executor-fidelity.test.d.ts +13 -0
  410. package/dist/graph/__tests__/executor-fidelity.test.d.ts.map +1 -0
  411. package/dist/graph/__tests__/executor-fidelity.test.js +335 -0
  412. package/dist/graph/__tests__/executor-fidelity.test.js.map +1 -0
  413. package/dist/graph/__tests__/executor.test.d.ts +14 -0
  414. package/dist/graph/__tests__/executor.test.d.ts.map +1 -0
  415. package/dist/graph/__tests__/executor.test.js +901 -0
  416. package/dist/graph/__tests__/executor.test.js.map +1 -0
  417. package/dist/graph/__tests__/fidelity.test.d.ts +8 -0
  418. package/dist/graph/__tests__/fidelity.test.d.ts.map +1 -0
  419. package/dist/graph/__tests__/fidelity.test.js +135 -0
  420. package/dist/graph/__tests__/fidelity.test.js.map +1 -0
  421. package/dist/graph/__tests__/llm-evaluator.test.d.ts +7 -0
  422. package/dist/graph/__tests__/llm-evaluator.test.d.ts.map +1 -0
  423. package/dist/graph/__tests__/llm-evaluator.test.js +106 -0
  424. package/dist/graph/__tests__/llm-evaluator.test.js.map +1 -0
  425. package/dist/graph/__tests__/parser-chaining.test.d.ts +13 -0
  426. package/dist/graph/__tests__/parser-chaining.test.d.ts.map +1 -0
  427. package/dist/graph/__tests__/parser-chaining.test.js +215 -0
  428. package/dist/graph/__tests__/parser-chaining.test.js.map +1 -0
  429. package/dist/graph/__tests__/parser.test.d.ts +22 -0
  430. package/dist/graph/__tests__/parser.test.d.ts.map +1 -0
  431. package/dist/graph/__tests__/parser.test.js +452 -0
  432. package/dist/graph/__tests__/parser.test.js.map +1 -0
  433. package/dist/graph/__tests__/run-state.test.d.ts +13 -0
  434. package/dist/graph/__tests__/run-state.test.d.ts.map +1 -0
  435. package/dist/graph/__tests__/run-state.test.js +189 -0
  436. package/dist/graph/__tests__/run-state.test.js.map +1 -0
  437. package/dist/graph/__tests__/transformer.test.d.ts +16 -0
  438. package/dist/graph/__tests__/transformer.test.d.ts.map +1 -0
  439. package/dist/graph/__tests__/transformer.test.js +350 -0
  440. package/dist/graph/__tests__/transformer.test.js.map +1 -0
  441. package/dist/graph/__tests__/validator-errors.test.d.ts +15 -0
  442. package/dist/graph/__tests__/validator-errors.test.d.ts.map +1 -0
  443. package/dist/graph/__tests__/validator-errors.test.js +572 -0
  444. package/dist/graph/__tests__/validator-errors.test.js.map +1 -0
  445. package/dist/graph/__tests__/validator-warnings.test.d.ts +15 -0
  446. package/dist/graph/__tests__/validator-warnings.test.d.ts.map +1 -0
  447. package/dist/graph/__tests__/validator-warnings.test.js +363 -0
  448. package/dist/graph/__tests__/validator-warnings.test.js.map +1 -0
  449. package/dist/graph/checkpoint.d.ts +61 -0
  450. package/dist/graph/checkpoint.d.ts.map +1 -0
  451. package/dist/graph/checkpoint.js +80 -0
  452. package/dist/graph/checkpoint.js.map +1 -0
  453. package/dist/graph/condition-parser.d.ts +55 -0
  454. package/dist/graph/condition-parser.d.ts.map +1 -0
  455. package/dist/graph/condition-parser.js +213 -0
  456. package/dist/graph/condition-parser.js.map +1 -0
  457. package/dist/graph/context.d.ts +53 -0
  458. package/dist/graph/context.d.ts.map +1 -0
  459. package/dist/graph/context.js +90 -0
  460. package/dist/graph/context.js.map +1 -0
  461. package/dist/graph/edge-selector.d.ts +74 -0
  462. package/dist/graph/edge-selector.d.ts.map +1 -0
  463. package/dist/graph/edge-selector.js +178 -0
  464. package/dist/graph/edge-selector.js.map +1 -0
  465. package/dist/graph/executor.d.ts +133 -0
  466. package/dist/graph/executor.d.ts.map +1 -0
  467. package/dist/graph/executor.js +787 -0
  468. package/dist/graph/executor.js.map +1 -0
  469. package/dist/graph/fidelity.d.ts +27 -0
  470. package/dist/graph/fidelity.d.ts.map +1 -0
  471. package/dist/graph/fidelity.js +38 -0
  472. package/dist/graph/fidelity.js.map +1 -0
  473. package/dist/graph/index.d.ts +13 -0
  474. package/dist/graph/index.d.ts.map +1 -0
  475. package/dist/graph/index.js +9 -0
  476. package/dist/graph/index.js.map +1 -0
  477. package/dist/graph/llm-evaluator.d.ts +61 -0
  478. package/dist/graph/llm-evaluator.d.ts.map +1 -0
  479. package/dist/graph/llm-evaluator.js +106 -0
  480. package/dist/graph/llm-evaluator.js.map +1 -0
  481. package/dist/graph/parser.d.ts +28 -0
  482. package/dist/graph/parser.d.ts.map +1 -0
  483. package/dist/graph/parser.js +370 -0
  484. package/dist/graph/parser.js.map +1 -0
  485. package/dist/graph/rules/error-rules.d.ts +19 -0
  486. package/dist/graph/rules/error-rules.d.ts.map +1 -0
  487. package/dist/graph/rules/error-rules.js +264 -0
  488. package/dist/graph/rules/error-rules.js.map +1 -0
  489. package/dist/graph/rules/warning-rules.d.ts +7 -0
  490. package/dist/graph/rules/warning-rules.d.ts.map +1 -0
  491. package/dist/graph/rules/warning-rules.js +165 -0
  492. package/dist/graph/rules/warning-rules.js.map +1 -0
  493. package/dist/graph/run-state.d.ts +62 -0
  494. package/dist/graph/run-state.d.ts.map +1 -0
  495. package/dist/graph/run-state.js +79 -0
  496. package/dist/graph/run-state.js.map +1 -0
  497. package/dist/graph/transformer.d.ts +31 -0
  498. package/dist/graph/transformer.d.ts.map +1 -0
  499. package/dist/graph/transformer.js +64 -0
  500. package/dist/graph/transformer.js.map +1 -0
  501. package/dist/graph/types.d.ts +320 -0
  502. package/dist/graph/types.d.ts.map +1 -0
  503. package/dist/graph/types.js +6 -0
  504. package/dist/graph/types.js.map +1 -0
  505. package/dist/graph/validator.d.ts +16 -0
  506. package/dist/graph/validator.d.ts.map +1 -0
  507. package/dist/graph/validator.js +40 -0
  508. package/dist/graph/validator.js.map +1 -0
  509. package/dist/handlers/__tests__/codergen-handler.test.d.ts +14 -0
  510. package/dist/handlers/__tests__/codergen-handler.test.d.ts.map +1 -0
  511. package/dist/handlers/__tests__/codergen-handler.test.js +442 -0
  512. package/dist/handlers/__tests__/codergen-handler.test.js.map +1 -0
  513. package/dist/handlers/__tests__/fan-in.test.d.ts +14 -0
  514. package/dist/handlers/__tests__/fan-in.test.d.ts.map +1 -0
  515. package/dist/handlers/__tests__/fan-in.test.js +399 -0
  516. package/dist/handlers/__tests__/fan-in.test.js.map +1 -0
  517. package/dist/handlers/__tests__/join-policy.test.d.ts +9 -0
  518. package/dist/handlers/__tests__/join-policy.test.d.ts.map +1 -0
  519. package/dist/handlers/__tests__/join-policy.test.js +201 -0
  520. package/dist/handlers/__tests__/join-policy.test.js.map +1 -0
  521. package/dist/handlers/__tests__/manager-loop.test.d.ts +14 -0
  522. package/dist/handlers/__tests__/manager-loop.test.d.ts.map +1 -0
  523. package/dist/handlers/__tests__/manager-loop.test.js +322 -0
  524. package/dist/handlers/__tests__/manager-loop.test.js.map +1 -0
  525. package/dist/handlers/__tests__/parallel-events.test.d.ts +12 -0
  526. package/dist/handlers/__tests__/parallel-events.test.d.ts.map +1 -0
  527. package/dist/handlers/__tests__/parallel-events.test.js +252 -0
  528. package/dist/handlers/__tests__/parallel-events.test.js.map +1 -0
  529. package/dist/handlers/__tests__/parallel-handler.test.d.ts +14 -0
  530. package/dist/handlers/__tests__/parallel-handler.test.d.ts.map +1 -0
  531. package/dist/handlers/__tests__/parallel-handler.test.js +337 -0
  532. package/dist/handlers/__tests__/parallel-handler.test.js.map +1 -0
  533. package/dist/handlers/__tests__/parallel-join.test.d.ts +9 -0
  534. package/dist/handlers/__tests__/parallel-join.test.d.ts.map +1 -0
  535. package/dist/handlers/__tests__/parallel-join.test.js +267 -0
  536. package/dist/handlers/__tests__/parallel-join.test.js.map +1 -0
  537. package/dist/handlers/__tests__/registry.test.d.ts +14 -0
  538. package/dist/handlers/__tests__/registry.test.d.ts.map +1 -0
  539. package/dist/handlers/__tests__/registry.test.js +315 -0
  540. package/dist/handlers/__tests__/registry.test.js.map +1 -0
  541. package/dist/handlers/__tests__/subgraph-events.test.d.ts +10 -0
  542. package/dist/handlers/__tests__/subgraph-events.test.d.ts.map +1 -0
  543. package/dist/handlers/__tests__/subgraph-events.test.js +189 -0
  544. package/dist/handlers/__tests__/subgraph-events.test.js.map +1 -0
  545. package/dist/handlers/__tests__/subgraph-inheritance.test.d.ts +14 -0
  546. package/dist/handlers/__tests__/subgraph-inheritance.test.d.ts.map +1 -0
  547. package/dist/handlers/__tests__/subgraph-inheritance.test.js +267 -0
  548. package/dist/handlers/__tests__/subgraph-inheritance.test.js.map +1 -0
  549. package/dist/handlers/__tests__/subgraph.test.d.ts +14 -0
  550. package/dist/handlers/__tests__/subgraph.test.d.ts.map +1 -0
  551. package/dist/handlers/__tests__/subgraph.test.js +369 -0
  552. package/dist/handlers/__tests__/subgraph.test.js.map +1 -0
  553. package/dist/handlers/__tests__/tool-handler.test.d.ts +11 -0
  554. package/dist/handlers/__tests__/tool-handler.test.d.ts.map +1 -0
  555. package/dist/handlers/__tests__/tool-handler.test.js +184 -0
  556. package/dist/handlers/__tests__/tool-handler.test.js.map +1 -0
  557. package/dist/handlers/__tests__/tool-scenario.test.d.ts +12 -0
  558. package/dist/handlers/__tests__/tool-scenario.test.d.ts.map +1 -0
  559. package/dist/handlers/__tests__/tool-scenario.test.js +222 -0
  560. package/dist/handlers/__tests__/tool-scenario.test.js.map +1 -0
  561. package/dist/handlers/__tests__/wait-human-handler.test.d.ts +11 -0
  562. package/dist/handlers/__tests__/wait-human-handler.test.d.ts.map +1 -0
  563. package/dist/handlers/__tests__/wait-human-handler.test.js +251 -0
  564. package/dist/handlers/__tests__/wait-human-handler.test.js.map +1 -0
  565. package/dist/handlers/codergen-handler.d.ts +83 -0
  566. package/dist/handlers/codergen-handler.d.ts.map +1 -0
  567. package/dist/handlers/codergen-handler.js +152 -0
  568. package/dist/handlers/codergen-handler.js.map +1 -0
  569. package/dist/handlers/conditional.d.ts +15 -0
  570. package/dist/handlers/conditional.d.ts.map +1 -0
  571. package/dist/handlers/conditional.js +16 -0
  572. package/dist/handlers/conditional.js.map +1 -0
  573. package/dist/handlers/exit.d.ts +10 -0
  574. package/dist/handlers/exit.d.ts.map +1 -0
  575. package/dist/handlers/exit.js +11 -0
  576. package/dist/handlers/exit.js.map +1 -0
  577. package/dist/handlers/fan-in.d.ts +74 -0
  578. package/dist/handlers/fan-in.d.ts.map +1 -0
  579. package/dist/handlers/fan-in.js +191 -0
  580. package/dist/handlers/fan-in.js.map +1 -0
  581. package/dist/handlers/index.d.ts +29 -0
  582. package/dist/handlers/index.d.ts.map +1 -0
  583. package/dist/handlers/index.js +22 -0
  584. package/dist/handlers/index.js.map +1 -0
  585. package/dist/handlers/join-policy.d.ts +117 -0
  586. package/dist/handlers/join-policy.d.ts.map +1 -0
  587. package/dist/handlers/join-policy.js +129 -0
  588. package/dist/handlers/join-policy.js.map +1 -0
  589. package/dist/handlers/manager-loop.d.ts +54 -0
  590. package/dist/handlers/manager-loop.d.ts.map +1 -0
  591. package/dist/handlers/manager-loop.js +177 -0
  592. package/dist/handlers/manager-loop.js.map +1 -0
  593. package/dist/handlers/parallel.d.ts +31 -0
  594. package/dist/handlers/parallel.d.ts.map +1 -0
  595. package/dist/handlers/parallel.js +362 -0
  596. package/dist/handlers/parallel.js.map +1 -0
  597. package/dist/handlers/registry.d.ts +75 -0
  598. package/dist/handlers/registry.d.ts.map +1 -0
  599. package/dist/handlers/registry.js +132 -0
  600. package/dist/handlers/registry.js.map +1 -0
  601. package/dist/handlers/start.d.ts +10 -0
  602. package/dist/handlers/start.d.ts.map +1 -0
  603. package/dist/handlers/start.js +11 -0
  604. package/dist/handlers/start.js.map +1 -0
  605. package/dist/handlers/subgraph.d.ts +46 -0
  606. package/dist/handlers/subgraph.d.ts.map +1 -0
  607. package/dist/handlers/subgraph.js +178 -0
  608. package/dist/handlers/subgraph.js.map +1 -0
  609. package/dist/handlers/tool.d.ts +36 -0
  610. package/dist/handlers/tool.d.ts.map +1 -0
  611. package/dist/handlers/tool.js +99 -0
  612. package/dist/handlers/tool.js.map +1 -0
  613. package/dist/handlers/types.d.ts +98 -0
  614. package/dist/handlers/types.d.ts.map +1 -0
  615. package/dist/handlers/types.js +6 -0
  616. package/dist/handlers/types.js.map +1 -0
  617. package/dist/handlers/wait-human.d.ts +65 -0
  618. package/dist/handlers/wait-human.d.ts.map +1 -0
  619. package/dist/handlers/wait-human.js +124 -0
  620. package/dist/handlers/wait-human.js.map +1 -0
  621. package/dist/index.d.ts +24 -0
  622. package/dist/index.d.ts.map +1 -0
  623. package/dist/index.js +33 -0
  624. package/dist/index.js.map +1 -0
  625. package/dist/llm/__tests__/client.test.d.ts +2 -0
  626. package/dist/llm/__tests__/client.test.d.ts.map +1 -0
  627. package/dist/llm/__tests__/client.test.js +198 -0
  628. package/dist/llm/__tests__/client.test.js.map +1 -0
  629. package/dist/llm/__tests__/types.test.d.ts +2 -0
  630. package/dist/llm/__tests__/types.test.d.ts.map +1 -0
  631. package/dist/llm/__tests__/types.test.js +289 -0
  632. package/dist/llm/__tests__/types.test.js.map +1 -0
  633. package/dist/llm/client.d.ts +19 -0
  634. package/dist/llm/client.d.ts.map +1 -0
  635. package/dist/llm/client.js +50 -0
  636. package/dist/llm/client.js.map +1 -0
  637. package/dist/llm/index.d.ts +6 -0
  638. package/dist/llm/index.d.ts.map +1 -0
  639. package/dist/llm/index.js +6 -0
  640. package/dist/llm/index.js.map +1 -0
  641. package/dist/llm/middleware/__tests__/cost-tracking.test.d.ts +2 -0
  642. package/dist/llm/middleware/__tests__/cost-tracking.test.d.ts.map +1 -0
  643. package/dist/llm/middleware/__tests__/cost-tracking.test.js +73 -0
  644. package/dist/llm/middleware/__tests__/cost-tracking.test.js.map +1 -0
  645. package/dist/llm/middleware/__tests__/logging.test.d.ts +2 -0
  646. package/dist/llm/middleware/__tests__/logging.test.d.ts.map +1 -0
  647. package/dist/llm/middleware/__tests__/logging.test.js +127 -0
  648. package/dist/llm/middleware/__tests__/logging.test.js.map +1 -0
  649. package/dist/llm/middleware/__tests__/retry.test.d.ts +2 -0
  650. package/dist/llm/middleware/__tests__/retry.test.d.ts.map +1 -0
  651. package/dist/llm/middleware/__tests__/retry.test.js +126 -0
  652. package/dist/llm/middleware/__tests__/retry.test.js.map +1 -0
  653. package/dist/llm/middleware/cost-tracking.d.ts +8 -0
  654. package/dist/llm/middleware/cost-tracking.d.ts.map +1 -0
  655. package/dist/llm/middleware/cost-tracking.js +34 -0
  656. package/dist/llm/middleware/cost-tracking.js.map +1 -0
  657. package/dist/llm/middleware/index.d.ts +5 -0
  658. package/dist/llm/middleware/index.d.ts.map +1 -0
  659. package/dist/llm/middleware/index.js +6 -0
  660. package/dist/llm/middleware/index.js.map +1 -0
  661. package/dist/llm/middleware/logging.d.ts +6 -0
  662. package/dist/llm/middleware/logging.d.ts.map +1 -0
  663. package/dist/llm/middleware/logging.js +54 -0
  664. package/dist/llm/middleware/logging.js.map +1 -0
  665. package/dist/llm/middleware/retry.d.ts +14 -0
  666. package/dist/llm/middleware/retry.d.ts.map +1 -0
  667. package/dist/llm/middleware/retry.js +40 -0
  668. package/dist/llm/middleware/retry.js.map +1 -0
  669. package/dist/llm/middleware/types.d.ts +23 -0
  670. package/dist/llm/middleware/types.d.ts.map +1 -0
  671. package/dist/llm/middleware/types.js +24 -0
  672. package/dist/llm/middleware/types.js.map +1 -0
  673. package/dist/llm/model-registry.d.ts +14 -0
  674. package/dist/llm/model-registry.d.ts.map +1 -0
  675. package/dist/llm/model-registry.js +32 -0
  676. package/dist/llm/model-registry.js.map +1 -0
  677. package/dist/llm/providers/__tests__/anthropic.test.d.ts +2 -0
  678. package/dist/llm/providers/__tests__/anthropic.test.d.ts.map +1 -0
  679. package/dist/llm/providers/__tests__/anthropic.test.js +412 -0
  680. package/dist/llm/providers/__tests__/anthropic.test.js.map +1 -0
  681. package/dist/llm/providers/__tests__/gemini.test.d.ts +2 -0
  682. package/dist/llm/providers/__tests__/gemini.test.d.ts.map +1 -0
  683. package/dist/llm/providers/__tests__/gemini.test.js +591 -0
  684. package/dist/llm/providers/__tests__/gemini.test.js.map +1 -0
  685. package/dist/llm/providers/__tests__/openai.test.d.ts +2 -0
  686. package/dist/llm/providers/__tests__/openai.test.d.ts.map +1 -0
  687. package/dist/llm/providers/__tests__/openai.test.js +546 -0
  688. package/dist/llm/providers/__tests__/openai.test.js.map +1 -0
  689. package/dist/llm/providers/anthropic.d.ts +25 -0
  690. package/dist/llm/providers/anthropic.d.ts.map +1 -0
  691. package/dist/llm/providers/anthropic.js +315 -0
  692. package/dist/llm/providers/anthropic.js.map +1 -0
  693. package/dist/llm/providers/gemini.d.ts +28 -0
  694. package/dist/llm/providers/gemini.d.ts.map +1 -0
  695. package/dist/llm/providers/gemini.js +429 -0
  696. package/dist/llm/providers/gemini.js.map +1 -0
  697. package/dist/llm/providers/index.d.ts +7 -0
  698. package/dist/llm/providers/index.d.ts.map +1 -0
  699. package/dist/llm/providers/index.js +4 -0
  700. package/dist/llm/providers/index.js.map +1 -0
  701. package/dist/llm/providers/openai.d.ts +28 -0
  702. package/dist/llm/providers/openai.d.ts.map +1 -0
  703. package/dist/llm/providers/openai.js +426 -0
  704. package/dist/llm/providers/openai.js.map +1 -0
  705. package/dist/llm/types.d.ts +127 -0
  706. package/dist/llm/types.d.ts.map +1 -0
  707. package/dist/llm/types.js +21 -0
  708. package/dist/llm/types.js.map +1 -0
  709. package/dist/persistence/__tests__/factory-queries.test.d.ts +9 -0
  710. package/dist/persistence/__tests__/factory-queries.test.d.ts.map +1 -0
  711. package/dist/persistence/__tests__/factory-queries.test.js +372 -0
  712. package/dist/persistence/__tests__/factory-queries.test.js.map +1 -0
  713. package/dist/persistence/__tests__/factory-schema.test.d.ts +6 -0
  714. package/dist/persistence/__tests__/factory-schema.test.d.ts.map +1 -0
  715. package/dist/persistence/__tests__/factory-schema.test.js +105 -0
  716. package/dist/persistence/__tests__/factory-schema.test.js.map +1 -0
  717. package/dist/persistence/factory-queries.d.ts +204 -0
  718. package/dist/persistence/factory-queries.d.ts.map +1 -0
  719. package/dist/persistence/factory-queries.js +186 -0
  720. package/dist/persistence/factory-queries.js.map +1 -0
  721. package/dist/persistence/factory-schema.d.ts +16 -0
  722. package/dist/persistence/factory-schema.d.ts.map +1 -0
  723. package/dist/persistence/factory-schema.js +89 -0
  724. package/dist/persistence/factory-schema.js.map +1 -0
  725. package/dist/scenarios/__tests__/cli-command-list.test.d.ts +7 -0
  726. package/dist/scenarios/__tests__/cli-command-list.test.d.ts.map +1 -0
  727. package/dist/scenarios/__tests__/cli-command-list.test.js +237 -0
  728. package/dist/scenarios/__tests__/cli-command-list.test.js.map +1 -0
  729. package/dist/scenarios/__tests__/cli-command.test.d.ts +11 -0
  730. package/dist/scenarios/__tests__/cli-command.test.d.ts.map +1 -0
  731. package/dist/scenarios/__tests__/cli-command.test.js +275 -0
  732. package/dist/scenarios/__tests__/cli-command.test.js.map +1 -0
  733. package/dist/scenarios/__tests__/integrity-pipeline.test.d.ts +15 -0
  734. package/dist/scenarios/__tests__/integrity-pipeline.test.d.ts.map +1 -0
  735. package/dist/scenarios/__tests__/integrity-pipeline.test.js +318 -0
  736. package/dist/scenarios/__tests__/integrity-pipeline.test.js.map +1 -0
  737. package/dist/scenarios/__tests__/runner-twins.test.d.ts +13 -0
  738. package/dist/scenarios/__tests__/runner-twins.test.d.ts.map +1 -0
  739. package/dist/scenarios/__tests__/runner-twins.test.js +205 -0
  740. package/dist/scenarios/__tests__/runner-twins.test.js.map +1 -0
  741. package/dist/scenarios/__tests__/scorer.test.d.ts +11 -0
  742. package/dist/scenarios/__tests__/scorer.test.d.ts.map +1 -0
  743. package/dist/scenarios/__tests__/scorer.test.js +225 -0
  744. package/dist/scenarios/__tests__/scorer.test.js.map +1 -0
  745. package/dist/scenarios/__tests__/scoring-integration.test.d.ts +8 -0
  746. package/dist/scenarios/__tests__/scoring-integration.test.d.ts.map +1 -0
  747. package/dist/scenarios/__tests__/scoring-integration.test.js +178 -0
  748. package/dist/scenarios/__tests__/scoring-integration.test.js.map +1 -0
  749. package/dist/scenarios/__tests__/store.test.d.ts +5 -0
  750. package/dist/scenarios/__tests__/store.test.d.ts.map +1 -0
  751. package/dist/scenarios/__tests__/store.test.js +169 -0
  752. package/dist/scenarios/__tests__/store.test.js.map +1 -0
  753. package/dist/scenarios/cli-command.d.ts +20 -0
  754. package/dist/scenarios/cli-command.d.ts.map +1 -0
  755. package/dist/scenarios/cli-command.js +66 -0
  756. package/dist/scenarios/cli-command.js.map +1 -0
  757. package/dist/scenarios/index.d.ts +11 -0
  758. package/dist/scenarios/index.d.ts.map +1 -0
  759. package/dist/scenarios/index.js +11 -0
  760. package/dist/scenarios/index.js.map +1 -0
  761. package/dist/scenarios/runner.d.ts +64 -0
  762. package/dist/scenarios/runner.d.ts.map +1 -0
  763. package/dist/scenarios/runner.js +205 -0
  764. package/dist/scenarios/runner.js.map +1 -0
  765. package/dist/scenarios/scorer.d.ts +69 -0
  766. package/dist/scenarios/scorer.d.ts.map +1 -0
  767. package/dist/scenarios/scorer.js +66 -0
  768. package/dist/scenarios/scorer.js.map +1 -0
  769. package/dist/scenarios/store.d.ts +33 -0
  770. package/dist/scenarios/store.d.ts.map +1 -0
  771. package/dist/scenarios/store.js +92 -0
  772. package/dist/scenarios/store.js.map +1 -0
  773. package/dist/scenarios/types.d.ts +40 -0
  774. package/dist/scenarios/types.d.ts.map +1 -0
  775. package/dist/scenarios/types.js +5 -0
  776. package/dist/scenarios/types.js.map +1 -0
  777. package/dist/stylesheet/__tests__/stylesheet.test.d.ts +17 -0
  778. package/dist/stylesheet/__tests__/stylesheet.test.d.ts.map +1 -0
  779. package/dist/stylesheet/__tests__/stylesheet.test.js +368 -0
  780. package/dist/stylesheet/__tests__/stylesheet.test.js.map +1 -0
  781. package/dist/stylesheet/parser.d.ts +44 -0
  782. package/dist/stylesheet/parser.d.ts.map +1 -0
  783. package/dist/stylesheet/parser.js +190 -0
  784. package/dist/stylesheet/parser.js.map +1 -0
  785. package/dist/stylesheet/resolver.d.ts +38 -0
  786. package/dist/stylesheet/resolver.d.ts.map +1 -0
  787. package/dist/stylesheet/resolver.js +96 -0
  788. package/dist/stylesheet/resolver.js.map +1 -0
  789. package/dist/templates/__tests__/templates.test.d.ts +7 -0
  790. package/dist/templates/__tests__/templates.test.d.ts.map +1 -0
  791. package/dist/templates/__tests__/templates.test.js +92 -0
  792. package/dist/templates/__tests__/templates.test.js.map +1 -0
  793. package/dist/templates/index.d.ts +38 -0
  794. package/dist/templates/index.d.ts.map +1 -0
  795. package/dist/templates/index.js +153 -0
  796. package/dist/templates/index.js.map +1 -0
  797. package/dist/twins/__tests__/docker-compose.test.d.ts +13 -0
  798. package/dist/twins/__tests__/docker-compose.test.d.ts.map +1 -0
  799. package/dist/twins/__tests__/docker-compose.test.js +247 -0
  800. package/dist/twins/__tests__/docker-compose.test.js.map +1 -0
  801. package/dist/twins/__tests__/health-monitor.test.d.ts +19 -0
  802. package/dist/twins/__tests__/health-monitor.test.d.ts.map +1 -0
  803. package/dist/twins/__tests__/health-monitor.test.js +301 -0
  804. package/dist/twins/__tests__/health-monitor.test.js.map +1 -0
  805. package/dist/twins/__tests__/integration/e2e.test.d.ts +18 -0
  806. package/dist/twins/__tests__/integration/e2e.test.d.ts.map +1 -0
  807. package/dist/twins/__tests__/integration/e2e.test.js +146 -0
  808. package/dist/twins/__tests__/integration/e2e.test.js.map +1 -0
  809. package/dist/twins/__tests__/integration/health-monitor-integration.test.d.ts +16 -0
  810. package/dist/twins/__tests__/integration/health-monitor-integration.test.d.ts.map +1 -0
  811. package/dist/twins/__tests__/integration/health-monitor-integration.test.js +183 -0
  812. package/dist/twins/__tests__/integration/health-monitor-integration.test.js.map +1 -0
  813. package/dist/twins/__tests__/integration/helpers.d.ts +32 -0
  814. package/dist/twins/__tests__/integration/helpers.d.ts.map +1 -0
  815. package/dist/twins/__tests__/integration/helpers.js +67 -0
  816. package/dist/twins/__tests__/integration/helpers.js.map +1 -0
  817. package/dist/twins/__tests__/integration/lifecycle.test.d.ts +14 -0
  818. package/dist/twins/__tests__/integration/lifecycle.test.d.ts.map +1 -0
  819. package/dist/twins/__tests__/integration/lifecycle.test.js +127 -0
  820. package/dist/twins/__tests__/integration/lifecycle.test.js.map +1 -0
  821. package/dist/twins/__tests__/integration/persistence-integration.test.d.ts +14 -0
  822. package/dist/twins/__tests__/integration/persistence-integration.test.d.ts.map +1 -0
  823. package/dist/twins/__tests__/integration/persistence-integration.test.js +132 -0
  824. package/dist/twins/__tests__/integration/persistence-integration.test.js.map +1 -0
  825. package/dist/twins/__tests__/persistence.test.d.ts +10 -0
  826. package/dist/twins/__tests__/persistence.test.d.ts.map +1 -0
  827. package/dist/twins/__tests__/persistence.test.js +300 -0
  828. package/dist/twins/__tests__/persistence.test.js.map +1 -0
  829. package/dist/twins/__tests__/registry.test.d.ts +7 -0
  830. package/dist/twins/__tests__/registry.test.d.ts.map +1 -0
  831. package/dist/twins/__tests__/registry.test.js +282 -0
  832. package/dist/twins/__tests__/registry.test.js.map +1 -0
  833. package/dist/twins/__tests__/run-state.test.d.ts +9 -0
  834. package/dist/twins/__tests__/run-state.test.d.ts.map +1 -0
  835. package/dist/twins/__tests__/run-state.test.js +112 -0
  836. package/dist/twins/__tests__/run-state.test.js.map +1 -0
  837. package/dist/twins/__tests__/templates-cli.test.d.ts +10 -0
  838. package/dist/twins/__tests__/templates-cli.test.d.ts.map +1 -0
  839. package/dist/twins/__tests__/templates-cli.test.js +187 -0
  840. package/dist/twins/__tests__/templates-cli.test.js.map +1 -0
  841. package/dist/twins/__tests__/templates.test.d.ts +7 -0
  842. package/dist/twins/__tests__/templates.test.d.ts.map +1 -0
  843. package/dist/twins/__tests__/templates.test.js +87 -0
  844. package/dist/twins/__tests__/templates.test.js.map +1 -0
  845. package/dist/twins/__tests__/twins-cli.test.d.ts +11 -0
  846. package/dist/twins/__tests__/twins-cli.test.d.ts.map +1 -0
  847. package/dist/twins/__tests__/twins-cli.test.js +365 -0
  848. package/dist/twins/__tests__/twins-cli.test.js.map +1 -0
  849. package/dist/twins/docker-compose.d.ts +48 -0
  850. package/dist/twins/docker-compose.d.ts.map +1 -0
  851. package/dist/twins/docker-compose.js +172 -0
  852. package/dist/twins/docker-compose.js.map +1 -0
  853. package/dist/twins/health-monitor.d.ts +36 -0
  854. package/dist/twins/health-monitor.d.ts.map +1 -0
  855. package/dist/twins/health-monitor.js +114 -0
  856. package/dist/twins/health-monitor.js.map +1 -0
  857. package/dist/twins/index.d.ts +22 -0
  858. package/dist/twins/index.d.ts.map +1 -0
  859. package/dist/twins/index.js +19 -0
  860. package/dist/twins/index.js.map +1 -0
  861. package/dist/twins/persistence.d.ts +100 -0
  862. package/dist/twins/persistence.d.ts.map +1 -0
  863. package/dist/twins/persistence.js +120 -0
  864. package/dist/twins/persistence.js.map +1 -0
  865. package/dist/twins/registry.d.ts +40 -0
  866. package/dist/twins/registry.d.ts.map +1 -0
  867. package/dist/twins/registry.js +175 -0
  868. package/dist/twins/registry.js.map +1 -0
  869. package/dist/twins/run-state.d.ts +47 -0
  870. package/dist/twins/run-state.d.ts.map +1 -0
  871. package/dist/twins/run-state.js +70 -0
  872. package/dist/twins/run-state.js.map +1 -0
  873. package/dist/twins/schema.d.ts +40 -0
  874. package/dist/twins/schema.d.ts.map +1 -0
  875. package/dist/twins/schema.js +46 -0
  876. package/dist/twins/schema.js.map +1 -0
  877. package/dist/twins/templates.d.ts +27 -0
  878. package/dist/twins/templates.d.ts.map +1 -0
  879. package/dist/twins/templates.js +63 -0
  880. package/dist/twins/templates.js.map +1 -0
  881. package/dist/twins/types.d.ts +55 -0
  882. package/dist/twins/types.d.ts.map +1 -0
  883. package/dist/twins/types.js +26 -0
  884. package/dist/twins/types.js.map +1 -0
  885. package/package.json +28 -0
@@ -0,0 +1,80 @@
1
+ /**
2
+ * SummaryCache — file-backed storage for summaries with a caching layer
3
+ * that prevents redundant LLM calls during long-running convergence sessions.
4
+ *
5
+ * Storage layout:
6
+ * {storageDir}/{runId}/summaries/{hash}-{level}.json ← CachedSummaryRecord
7
+ * {storageDir}/{runId}/summaries/{hash}.orig ← raw original content
8
+ */
9
+ import { createHash } from 'node:crypto';
10
+ import { mkdir, readFile, writeFile } from 'node:fs/promises';
11
+ import { join } from 'node:path';
12
+ export class SummaryCache {
13
+ config;
14
+ constructor(config) {
15
+ this.config = config;
16
+ }
17
+ summaryPath(hash, level) {
18
+ return join(this.config.storageDir, this.config.runId, 'summaries', `${hash}-${level}.json`);
19
+ }
20
+ originalPath(hash) {
21
+ return join(this.config.storageDir, this.config.runId, 'summaries', `${hash}.orig`);
22
+ }
23
+ async put(summary, originalContent) {
24
+ const dir = join(this.config.storageDir, this.config.runId, 'summaries');
25
+ await mkdir(dir, { recursive: true });
26
+ const record = { summary, cachedAt: new Date().toISOString() };
27
+ await writeFile(this.summaryPath(summary.originalHash, summary.level), JSON.stringify(record, null, 2));
28
+ if (originalContent !== undefined && this.config.storeOriginals !== false) {
29
+ await writeFile(this.originalPath(summary.originalHash), originalContent);
30
+ }
31
+ }
32
+ async get(originalHash, level) {
33
+ try {
34
+ const raw = await readFile(this.summaryPath(originalHash, level), 'utf-8');
35
+ const record = JSON.parse(raw);
36
+ return record.summary;
37
+ }
38
+ catch (err) {
39
+ if (err.code === 'ENOENT')
40
+ return null;
41
+ throw err;
42
+ }
43
+ }
44
+ async getOriginal(originalHash) {
45
+ try {
46
+ return await readFile(this.originalPath(originalHash), 'utf-8');
47
+ }
48
+ catch (err) {
49
+ if (err.code === 'ENOENT')
50
+ return null;
51
+ throw err;
52
+ }
53
+ }
54
+ }
55
+ export class CachingSummaryEngine {
56
+ inner;
57
+ cache;
58
+ name;
59
+ constructor(inner, cache) {
60
+ this.inner = inner;
61
+ this.cache = cache;
62
+ this.name = `caching(${inner.name})`;
63
+ }
64
+ async summarize(content, targetLevel, opts) {
65
+ const originalHash = createHash('sha256').update(content).digest('hex');
66
+ const cached = await this.cache.get(originalHash, targetLevel);
67
+ if (cached !== null)
68
+ return cached;
69
+ const summary = await this.inner.summarize(content, targetLevel, opts);
70
+ await this.cache.put(summary, content);
71
+ return summary;
72
+ }
73
+ async expand(summary, targetLevel, opts) {
74
+ const original = await this.cache.getOriginal(summary.originalHash);
75
+ if (original !== null)
76
+ return original;
77
+ return this.inner.expand(summary, targetLevel, opts);
78
+ }
79
+ }
80
+ //# sourceMappingURL=summary-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary-cache.js","sourceRoot":"","sources":["../../src/context/summary-cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * SummaryEngine interface for reversible multi-level context summarization.
3
+ *
4
+ * Zero runtime imports — pure TypeScript interface declaration only.
5
+ */
6
+ import type { Summary, SummaryLevel, SummarizeOptions, ExpandOptions } from './summary-types.js';
7
+ /**
8
+ * Reversible multi-level context summarization engine.
9
+ *
10
+ * Contract: expand(summarize(content, level), 'full') must preserve all
11
+ * code blocks, file paths, error messages, and key decisions from the original.
12
+ *
13
+ * Implementations:
14
+ * - LLMSummaryEngine (story 49-2): LLM-backed summarization and expansion
15
+ * - Passthrough mock: for tests, returns content unmodified or sliced by budget fraction
16
+ */
17
+ export interface SummaryEngine {
18
+ /**
19
+ * A human-readable name for this engine instance.
20
+ * Used for traceability in logs and metrics.
21
+ */
22
+ readonly name: string;
23
+ /**
24
+ * Summarize content to the target level.
25
+ *
26
+ * @param content - The original content to summarize
27
+ * @param targetLevel - The desired summary level
28
+ * @param opts - Optional configuration for the summarization
29
+ * @returns A Summary object containing the compressed content and provenance metadata
30
+ */
31
+ summarize(content: string, targetLevel: SummaryLevel, opts?: SummarizeOptions): Promise<Summary>;
32
+ /**
33
+ * Expand a summary back toward a higher-fidelity representation.
34
+ *
35
+ * When `opts.originalContent` is provided, implementations may use it for
36
+ * lossless or near-lossless expansion. Without it, expansion relies on
37
+ * heuristics or LLM inference.
38
+ *
39
+ * @param summary - The summary to expand
40
+ * @param targetLevel - The target level (typically 'full' for full recovery)
41
+ * @param opts - Optional configuration including the original content
42
+ * @returns The expanded content as a string
43
+ */
44
+ expand(summary: Summary, targetLevel: SummaryLevel, opts?: ExpandOptions): Promise<string>;
45
+ }
46
+ //# sourceMappingURL=summary-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary-engine.d.ts","sourceRoot":"","sources":["../../src/context/summary-engine.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEhG;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;;;;;;OAOG;IACH,SAAS,CACP,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,YAAY,EACzB,IAAI,CAAC,EAAE,gBAAgB,GACtB,OAAO,CAAC,OAAO,CAAC,CAAA;IAEnB;;;;;;;;;;;OAWG;IACH,MAAM,CACJ,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,YAAY,EACzB,IAAI,CAAC,EAAE,aAAa,GACnB,OAAO,CAAC,MAAM,CAAC,CAAA;CACnB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=summary-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary-engine.js","sourceRoot":"","sources":["../../src/context/summary-engine.ts"],"names":[],"mappings":""}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Summary quality metrics: compression ratio, key-fact retention, round-trip preservation.
3
+ *
4
+ * Provides pure metric computation functions, a SummaryQualityAnalyzer class, and
5
+ * QualityMetricsPersistence for recording metrics to a JSONL file.
6
+ */
7
+ import type { Summary, SummaryLevel } from './summary-types.js';
8
+ export interface QualityReport {
9
+ summaryHash: string;
10
+ level: SummaryLevel;
11
+ /** [0,1] when available; -1 sentinel when token counts absent */
12
+ compressionRatio: number;
13
+ keyFactRetentionRate: number;
14
+ /** null when expanded not provided */
15
+ roundTripScore: number | null;
16
+ overallScore: number;
17
+ /** ISO-8601 */
18
+ computedAt: string;
19
+ }
20
+ export interface PersistedQualityEntry extends QualityReport {
21
+ /** ISO-8601 — time written to disk */
22
+ recordedAt: string;
23
+ }
24
+ export interface QualityThresholds {
25
+ minKeyFactRetentionRate?: number;
26
+ minRoundTripScore?: number;
27
+ minOverallScore?: number;
28
+ }
29
+ export declare class QualityBelowThresholdError extends Error {
30
+ readonly report: QualityReport;
31
+ readonly failures: string[];
32
+ constructor(report: QualityReport, failures: string[]);
33
+ }
34
+ export interface QualityMetricsPersistenceConfig {
35
+ runId: string;
36
+ storageDir: string;
37
+ }
38
+ /**
39
+ * Compute the compression ratio of a summary.
40
+ * Returns summaryTokenCount / originalTokenCount in [0, 1].
41
+ * Returns -1 as a sentinel when token counts are absent or originalTokenCount is zero.
42
+ */
43
+ export declare function computeCompressionRatio(summary: Summary): number;
44
+ /**
45
+ * Extract key facts from content:
46
+ * - Fenced code blocks (triple-backtick)
47
+ * - File-path tokens matching known extensions
48
+ * - Error-type names
49
+ */
50
+ export declare function extractKeyFacts(content: string): Set<string>;
51
+ /**
52
+ * Compute the key-fact retention rate between original and summarized content.
53
+ * Returns the fraction of original key facts that appear in the summarized content.
54
+ * Returns 1.0 when the original has no key facts.
55
+ */
56
+ export declare function computeKeyFactRetentionRate(original: string, summarized: string): number;
57
+ /**
58
+ * Compute the round-trip preservation score between original and expanded content.
59
+ * Uses Jaccard word-set overlap: intersection / union.
60
+ * Returns 1.0 when both word sets are empty.
61
+ * Returns 0.0 when exactly one set is non-empty.
62
+ */
63
+ export declare function computeRoundTripScore(original: string, expanded: string): number;
64
+ export declare class SummaryQualityAnalyzer {
65
+ analyze(original: string, summary: Summary, expanded?: string): QualityReport;
66
+ assertQuality(report: QualityReport, thresholds: QualityThresholds): void;
67
+ }
68
+ export declare class QualityMetricsPersistence {
69
+ private readonly config;
70
+ constructor(config: QualityMetricsPersistenceConfig);
71
+ private metricsPath;
72
+ record(report: QualityReport): Promise<void>;
73
+ readAll(): Promise<PersistedQualityEntry[]>;
74
+ }
75
+ //# sourceMappingURL=summary-metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary-metrics.d.ts","sourceRoot":"","sources":["../../src/context/summary-metrics.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAI/D,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,YAAY,CAAA;IACnB,iEAAiE;IACjE,gBAAgB,EAAE,MAAM,CAAA;IACxB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,sCAAsC;IACtC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe;IACf,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC1D,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,qBAAa,0BAA2B,SAAQ,KAAK;aAEjC,MAAM,EAAE,aAAa;aACrB,QAAQ,EAAE,MAAM,EAAE;gBADlB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAAE;CAKrC;AAED,MAAM,WAAW,+BAA+B;IAC9C,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;CACnB;AAID;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAShE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAuB5D;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAUxF;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAchF;AAID,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa;IAqB7E,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,iBAAiB,GAAG,IAAI;CAmC1E;AAID,qBAAa,yBAAyB;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,+BAA+B;IAEpE,OAAO,CAAC,WAAW;IAIb,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5C,OAAO,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;CAclD"}
@@ -0,0 +1,160 @@
1
+ /**
2
+ * Summary quality metrics: compression ratio, key-fact retention, round-trip preservation.
3
+ *
4
+ * Provides pure metric computation functions, a SummaryQualityAnalyzer class, and
5
+ * QualityMetricsPersistence for recording metrics to a JSONL file.
6
+ */
7
+ import { appendFile, mkdir, readFile } from 'node:fs/promises';
8
+ import { join } from 'node:path';
9
+ export class QualityBelowThresholdError extends Error {
10
+ report;
11
+ failures;
12
+ constructor(report, failures) {
13
+ super(`Summary quality below threshold: ${failures.join(', ')}`);
14
+ this.report = report;
15
+ this.failures = failures;
16
+ this.name = 'QualityBelowThresholdError';
17
+ }
18
+ }
19
+ // ─── Pure Metric Computation Functions ───────────────────────────────────────
20
+ /**
21
+ * Compute the compression ratio of a summary.
22
+ * Returns summaryTokenCount / originalTokenCount in [0, 1].
23
+ * Returns -1 as a sentinel when token counts are absent or originalTokenCount is zero.
24
+ */
25
+ export function computeCompressionRatio(summary) {
26
+ if (summary.originalTokenCount === undefined ||
27
+ summary.originalTokenCount === 0 ||
28
+ summary.summaryTokenCount === undefined) {
29
+ return -1;
30
+ }
31
+ return summary.summaryTokenCount / summary.originalTokenCount;
32
+ }
33
+ /**
34
+ * Extract key facts from content:
35
+ * - Fenced code blocks (triple-backtick)
36
+ * - File-path tokens matching known extensions
37
+ * - Error-type names
38
+ */
39
+ export function extractKeyFacts(content) {
40
+ const facts = new Set();
41
+ // Extract fenced code blocks
42
+ const codeBlockRegex = /```[\s\S]*?```/g;
43
+ let match;
44
+ while ((match = codeBlockRegex.exec(content)) !== null) {
45
+ facts.add(match[0].trim());
46
+ }
47
+ // Extract file-path tokens
48
+ const filePathRegex = /[\w./]+(\.ts|\.js|\.json|\.md|\.go|\.py|\.yaml|\.yml)\b/g;
49
+ while ((match = filePathRegex.exec(content)) !== null) {
50
+ facts.add(match[0]);
51
+ }
52
+ // Extract error-type names
53
+ const errorTypeRegex = /\b(Error|Exception|ENOENT|ETIMEDOUT|TypeError|SyntaxError)\b/g;
54
+ while ((match = errorTypeRegex.exec(content)) !== null) {
55
+ facts.add(match[0]);
56
+ }
57
+ return facts;
58
+ }
59
+ /**
60
+ * Compute the key-fact retention rate between original and summarized content.
61
+ * Returns the fraction of original key facts that appear in the summarized content.
62
+ * Returns 1.0 when the original has no key facts.
63
+ */
64
+ export function computeKeyFactRetentionRate(original, summarized) {
65
+ const originalFacts = extractKeyFacts(original);
66
+ const summarizedFacts = extractKeyFacts(summarized);
67
+ if (originalFacts.size === 0) {
68
+ return 1.0;
69
+ }
70
+ const preserved = [...originalFacts].filter(f => summarizedFacts.has(f)).length;
71
+ return preserved / originalFacts.size;
72
+ }
73
+ /**
74
+ * Compute the round-trip preservation score between original and expanded content.
75
+ * Uses Jaccard word-set overlap: intersection / union.
76
+ * Returns 1.0 when both word sets are empty.
77
+ * Returns 0.0 when exactly one set is non-empty.
78
+ */
79
+ export function computeRoundTripScore(original, expanded) {
80
+ const words = (s) => new Set(s.toLowerCase().split(/\W+/).filter(w => w.length > 0));
81
+ const wordsA = words(original);
82
+ const wordsB = words(expanded);
83
+ if (wordsA.size === 0 && wordsB.size === 0) {
84
+ return 1.0;
85
+ }
86
+ const intersection = [...wordsA].filter(w => wordsB.has(w)).length;
87
+ const union = new Set([...wordsA, ...wordsB]).size;
88
+ return intersection / union;
89
+ }
90
+ // ─── SummaryQualityAnalyzer ───────────────────────────────────────────────────
91
+ export class SummaryQualityAnalyzer {
92
+ analyze(original, summary, expanded) {
93
+ const compressionRatio = computeCompressionRatio(summary);
94
+ const keyFactRetentionRate = computeKeyFactRetentionRate(original, summary.content);
95
+ const roundTripScore = expanded !== undefined ? computeRoundTripScore(original, expanded) : null;
96
+ const overallScore = roundTripScore !== null
97
+ ? keyFactRetentionRate * 0.6 + roundTripScore * 0.4
98
+ : keyFactRetentionRate;
99
+ return {
100
+ summaryHash: summary.originalHash,
101
+ level: summary.level,
102
+ compressionRatio,
103
+ keyFactRetentionRate,
104
+ roundTripScore,
105
+ overallScore,
106
+ computedAt: new Date().toISOString(),
107
+ };
108
+ }
109
+ assertQuality(report, thresholds) {
110
+ const failures = [];
111
+ if (thresholds.minKeyFactRetentionRate !== undefined &&
112
+ report.keyFactRetentionRate < thresholds.minKeyFactRetentionRate) {
113
+ failures.push(`keyFactRetentionRate ${report.keyFactRetentionRate.toFixed(3)} < ${thresholds.minKeyFactRetentionRate}`);
114
+ }
115
+ if (thresholds.minRoundTripScore !== undefined &&
116
+ report.roundTripScore !== null &&
117
+ report.roundTripScore < thresholds.minRoundTripScore) {
118
+ failures.push(`roundTripScore ${report.roundTripScore.toFixed(3)} < ${thresholds.minRoundTripScore}`);
119
+ }
120
+ if (thresholds.minOverallScore !== undefined &&
121
+ report.overallScore < thresholds.minOverallScore) {
122
+ failures.push(`overallScore ${report.overallScore.toFixed(3)} < ${thresholds.minOverallScore}`);
123
+ }
124
+ if (failures.length > 0) {
125
+ throw new QualityBelowThresholdError(report, failures);
126
+ }
127
+ }
128
+ }
129
+ // ─── QualityMetricsPersistence ────────────────────────────────────────────────
130
+ export class QualityMetricsPersistence {
131
+ config;
132
+ constructor(config) {
133
+ this.config = config;
134
+ }
135
+ metricsPath() {
136
+ return join(this.config.storageDir, 'runs', this.config.runId, 'quality-metrics.jsonl');
137
+ }
138
+ async record(report) {
139
+ const dir = join(this.config.storageDir, 'runs', this.config.runId);
140
+ await mkdir(dir, { recursive: true });
141
+ const entry = { ...report, recordedAt: new Date().toISOString() };
142
+ await appendFile(this.metricsPath(), JSON.stringify(entry) + '\n', 'utf-8');
143
+ }
144
+ async readAll() {
145
+ try {
146
+ const raw = await readFile(this.metricsPath(), 'utf-8');
147
+ return raw
148
+ .split('\n')
149
+ .filter(line => line.length > 0)
150
+ .map(line => JSON.parse(line));
151
+ }
152
+ catch (err) {
153
+ if (typeof err === 'object' && err !== null && err.code === 'ENOENT') {
154
+ return [];
155
+ }
156
+ throw err;
157
+ }
158
+ }
159
+ }
160
+ //# sourceMappingURL=summary-metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary-metrics.js","sourceRoot":"","sources":["../../src/context/summary-metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Summary level definitions and context budget types for reversible context compression.
3
+ *
4
+ * No runtime imports — pure TypeScript type/interface/const declarations only.
5
+ */
6
+ /**
7
+ * The level of summarization to apply to a context.
8
+ *
9
+ * - `full`: No compression — the entire context is preserved (100% of token budget).
10
+ * - `high`: Light compression — major details preserved (75% of token budget).
11
+ * - `medium`: Moderate compression — key decisions, code blocks, and errors preserved (50% of token budget).
12
+ * - `low`: Aggressive compression — only the most essential information preserved (25% of token budget).
13
+ */
14
+ export type SummaryLevel = 'full' | 'high' | 'medium' | 'low';
15
+ /**
16
+ * Token-budget fraction for each summary level.
17
+ * Multiply by the model's token limit to get the target token count.
18
+ */
19
+ export declare const SUMMARY_BUDGET: Record<SummaryLevel, number>;
20
+ /**
21
+ * The default summary level to use when none is specified.
22
+ * Balances compression ratio and information preservation.
23
+ */
24
+ export declare const DEFAULT_SUMMARY_LEVEL: SummaryLevel;
25
+ /**
26
+ * The result produced by a summarization operation.
27
+ * Contains the summarized content along with provenance metadata
28
+ * to support lossless or near-lossless expansion.
29
+ */
30
+ export interface Summary {
31
+ /** The summary level that was applied */
32
+ level: SummaryLevel;
33
+ /** The summarized content */
34
+ content: string;
35
+ /** SHA-256 hex digest of the original content (before summarization) */
36
+ originalHash: string;
37
+ /** ISO-8601 timestamp of when the summary was created */
38
+ createdAt: string;
39
+ /** Token count of the original content, if known */
40
+ originalTokenCount?: number;
41
+ /** Token count of the summarized content, if known */
42
+ summaryTokenCount?: number;
43
+ /**
44
+ * The pipeline iteration index this summary was created for.
45
+ * Used by `factory context summarize/expand/stats` CLI commands to map
46
+ * iteration numbers to stored summary hashes.
47
+ */
48
+ iterationIndex?: number;
49
+ /** Additional arbitrary metadata from the summarization engine */
50
+ metadata?: Record<string, unknown>;
51
+ }
52
+ /**
53
+ * Options for a summarize() call.
54
+ * All boolean fields default to `true` in implementations to maximize recoverability.
55
+ */
56
+ export interface SummarizeOptions {
57
+ /** The model's maximum token limit — used to compute the target token count */
58
+ modelTokenLimit?: number;
59
+ /** Whether to preserve code blocks verbatim (default: true) */
60
+ preserveCodeBlocks?: boolean;
61
+ /** Whether to preserve file paths (default: true) */
62
+ preserveFilePaths?: boolean;
63
+ /** Whether to preserve error messages verbatim (default: true) */
64
+ preserveErrorMessages?: boolean;
65
+ }
66
+ /**
67
+ * Options for an expand() call.
68
+ */
69
+ export interface ExpandOptions {
70
+ /**
71
+ * The original content before summarization.
72
+ * When provided, implementations may use it for lossless expansion
73
+ * (e.g., by re-injecting preserved sections).
74
+ */
75
+ originalContent?: string;
76
+ /** Additional arbitrary metadata to guide expansion */
77
+ metadata?: Record<string, unknown>;
78
+ }
79
+ /**
80
+ * Describes the token budget for a particular summarization level
81
+ * relative to a model's token limit.
82
+ */
83
+ export interface ContextBudget {
84
+ /** The model's maximum token limit */
85
+ modelTokenLimit: number;
86
+ /** The summary level this budget corresponds to */
87
+ level: SummaryLevel;
88
+ /** Target token count = Math.floor(modelTokenLimit * SUMMARY_BUDGET[level]) */
89
+ targetTokenCount: number;
90
+ /** The compression ratio = SUMMARY_BUDGET[level] */
91
+ compressionRatio: number;
92
+ }
93
+ /**
94
+ * Compute the context budget for a given model token limit and summary level.
95
+ *
96
+ * Pure function — no I/O, no async, no external imports.
97
+ *
98
+ * @param modelTokenLimit - The model's maximum token limit
99
+ * @param level - The desired summary level
100
+ * @returns A fully populated ContextBudget object
101
+ */
102
+ export declare function computeBudget(modelTokenLimit: number, level: SummaryLevel): ContextBudget;
103
+ //# sourceMappingURL=summary-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary-types.d.ts","sourceRoot":"","sources":["../../src/context/summary-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAA;AAE7D;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAKvD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAAuB,CAAA;AAE3D;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,yCAAyC;IACzC,KAAK,EAAE,YAAY,CAAA;IACnB,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,wEAAwE;IACxE,YAAY,EAAE,MAAM,CAAA;IACpB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAA;IACjB,oDAAoD;IACpD,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,sDAAsD;IACtD,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,kEAAkE;IAClE,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,eAAe,EAAE,MAAM,CAAA;IACvB,mDAAmD;IACnD,KAAK,EAAE,YAAY,CAAA;IACnB,+EAA+E;IAC/E,gBAAgB,EAAE,MAAM,CAAA;IACxB,oDAAoD;IACpD,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,aAAa,CAQzF"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Summary level definitions and context budget types for reversible context compression.
3
+ *
4
+ * No runtime imports — pure TypeScript type/interface/const declarations only.
5
+ */
6
+ /**
7
+ * Token-budget fraction for each summary level.
8
+ * Multiply by the model's token limit to get the target token count.
9
+ */
10
+ export const SUMMARY_BUDGET = {
11
+ full: 1.0,
12
+ high: 0.75,
13
+ medium: 0.50,
14
+ low: 0.25,
15
+ };
16
+ /**
17
+ * The default summary level to use when none is specified.
18
+ * Balances compression ratio and information preservation.
19
+ */
20
+ export const DEFAULT_SUMMARY_LEVEL = 'medium';
21
+ /**
22
+ * Compute the context budget for a given model token limit and summary level.
23
+ *
24
+ * Pure function — no I/O, no async, no external imports.
25
+ *
26
+ * @param modelTokenLimit - The model's maximum token limit
27
+ * @param level - The desired summary level
28
+ * @returns A fully populated ContextBudget object
29
+ */
30
+ export function computeBudget(modelTokenLimit, level) {
31
+ const compressionRatio = SUMMARY_BUDGET[level];
32
+ return {
33
+ modelTokenLimit,
34
+ level,
35
+ targetTokenCount: Math.floor(modelTokenLimit * compressionRatio),
36
+ compressionRatio,
37
+ };
38
+ }
39
+ //# sourceMappingURL=summary-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary-types.js","sourceRoot":"","sources":["../../src/context/summary-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAiC;IAC1D,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,IAAI;CACV,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAiB,QAAQ,CAAA;AA0E3D;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,eAAuB,EAAE,KAAmB;IACxE,MAAM,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;IAC9C,OAAO;QACL,eAAe;QACf,KAAK;QACL,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,gBAAgB,CAAC;QAChE,gBAAgB;KACjB,CAAA;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Unit tests for per-node budget enforcement.
3
+ * Story 45-3 — AC1 through AC7.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=budget.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget.test.d.ts","sourceRoot":"","sources":["../../../src/convergence/__tests__/budget.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}