agentic-qe 3.14.2 → 3.14.4

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 (760) hide show
  1. package/.claude/agents/v3/qe-coverage-specialist.md +1 -1
  2. package/.claude/agents/v3/qe-fleet-commander.md +1 -1
  3. package/.claude/agents/v3/qe-pentest-validator.md +1 -1
  4. package/.claude/agents/v3/qe-queen-coordinator.md +1 -1
  5. package/.claude/agents/v3/qe-risk-assessor.md +1 -1
  6. package/.claude/agents/v3/qe-root-cause-analyzer.md +1 -1
  7. package/.claude/agents/v3/qe-security-auditor.md +1 -1
  8. package/.claude/agents/v3/qe-test-architect.md +1 -1
  9. package/.claude/commands/aqe-costs.md +10 -10
  10. package/.claude/helpers/advisor-call.cjs +3 -3
  11. package/.claude/helpers/v3/advisor-call.cjs +3 -3
  12. package/.claude/skills/.validation/examples/chaos-engineering-output.example.json +1 -1
  13. package/.claude/skills/.validation/examples/performance-testing-output.example.json +1 -1
  14. package/.claude/skills/.validation/examples/security-testing-output.example.json +1 -1
  15. package/.claude/skills/.validation/examples/testability-scoring-output.example.json +1 -1
  16. package/.claude/skills/.validation/schemas/skill-eval.schema.json +4 -1
  17. package/.claude/skills/.validation/schemas/skill-frontmatter.schema.json +1 -1
  18. package/.claude/skills/.validation/schemas/skill-output.template.json +1 -1
  19. package/.claude/skills/.validation/templates/eval.template.yaml +1 -1
  20. package/.claude/skills/.validation/templates/security-testing-eval.template.yaml +1 -1
  21. package/.claude/skills/.validation/templates/skill-frontmatter.example.yaml +1 -1
  22. package/.claude/skills/.validation/test-data/sample-output.json +1 -1
  23. package/.claude/skills/a11y-ally/SKILL.md +1 -1
  24. package/.claude/skills/a11y-ally/evals/a11y-ally.yaml +1 -1
  25. package/.claude/skills/accessibility-testing/evals/accessibility-testing.yaml +1 -1
  26. package/.claude/skills/api-testing-patterns/evals/api-testing-patterns.yaml +1 -1
  27. package/.claude/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +1 -1
  28. package/.claude/skills/cicd-pipeline-qe-orchestrator/evals/cicd-pipeline-qe-orchestrator.yaml +1 -1
  29. package/.claude/skills/compatibility-testing/evals/compatibility-testing.yaml +1 -1
  30. package/.claude/skills/compliance-testing/evals/compliance-testing.yaml +1 -1
  31. package/.claude/skills/contract-testing/evals/contract-testing.yaml +1 -1
  32. package/.claude/skills/database-testing/evals/database-testing.yaml +1 -1
  33. package/.claude/skills/enterprise-integration-testing/evals/enterprise-integration-testing.yaml +1 -1
  34. package/.claude/skills/localization-testing/evals/localization-testing.yaml +1 -1
  35. package/.claude/skills/middleware-testing-patterns/evals/middleware-testing-patterns.yaml +1 -1
  36. package/.claude/skills/mobile-testing/evals/mobile-testing.yaml +1 -1
  37. package/.claude/skills/mutation-testing/evals/mutation-testing.yaml +1 -1
  38. package/.claude/skills/mutation-testing/test-data/sample-output.json +1 -1
  39. package/.claude/skills/n8n-expression-testing/evals/n8n-expression-testing.yaml +1 -1
  40. package/.claude/skills/n8n-integration-testing-patterns/evals/n8n-integration-testing-patterns.yaml +1 -1
  41. package/.claude/skills/n8n-security-testing/evals/n8n-security-testing.yaml +1 -1
  42. package/.claude/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +1 -1
  43. package/.claude/skills/n8n-workflow-testing-fundamentals/evals/n8n-workflow-testing-fundamentals.yaml +1 -1
  44. package/.claude/skills/observability-testing-patterns/evals/observability-testing-patterns.yaml +1 -1
  45. package/.claude/skills/pentest-validation/evals/pentest-validation.yaml +1 -1
  46. package/.claude/skills/performance-testing/evals/performance-testing.yaml +1 -1
  47. package/.claude/skills/qcsd-cicd-swarm/evals/qcsd-cicd-swarm.yaml +1 -1
  48. package/.claude/skills/qcsd-development-swarm/evals/qcsd-development-swarm.yaml +1 -1
  49. package/.claude/skills/qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +1 -1
  50. package/.claude/skills/qcsd-production-swarm/evals/qcsd-production-swarm.yaml +1 -1
  51. package/.claude/skills/qcsd-refinement-swarm/evals/qcsd-refinement-swarm.yaml +1 -1
  52. package/.claude/skills/qe-browser/evals/qe-browser.yaml +1 -1
  53. package/.claude/skills/qe-chaos-resilience/evals/qe-chaos-resilience.yaml +1 -1
  54. package/.claude/skills/qe-code-intelligence/evals/qe-code-intelligence.yaml +1 -1
  55. package/.claude/skills/qe-coverage-analysis/evals/qe-coverage-analysis.yaml +1 -1
  56. package/.claude/skills/qe-defect-intelligence/evals/qe-defect-intelligence.yaml +1 -1
  57. package/.claude/skills/qe-learning-optimization/evals/qe-learning-optimization.yaml +2 -2
  58. package/.claude/skills/qe-quality-assessment/evals/qe-quality-assessment.yaml +1 -1
  59. package/.claude/skills/qe-requirements-validation/evals/qe-requirements-validation.yaml +1 -1
  60. package/.claude/skills/qe-test-execution/evals/qe-test-execution.yaml +1 -1
  61. package/.claude/skills/qe-test-generation/evals/qe-test-generation.yaml +1 -1
  62. package/.claude/skills/qe-visual-accessibility/evals/qe-visual-accessibility.yaml +1 -1
  63. package/.claude/skills/quality-metrics/evals/quality-metrics.yaml +1 -1
  64. package/.claude/skills/regression-testing/evals/regression-testing.yaml +1 -1
  65. package/.claude/skills/risk-based-testing/evals/risk-based-testing.yaml +1 -1
  66. package/.claude/skills/security-testing/evals/security-testing.yaml +1 -1
  67. package/.claude/skills/security-visual-testing/evals/security-visual-testing.yaml +1 -1
  68. package/.claude/skills/shift-left-testing/evals/shift-left-testing.yaml +1 -1
  69. package/.claude/skills/shift-right-testing/evals/shift-right-testing.yaml +1 -1
  70. package/.claude/skills/skills-manifest.json +1 -1
  71. package/.claude/skills/test-automation-strategy/evals/test-automation-strategy.yaml +1 -1
  72. package/.claude/skills/test-data-management/evals/test-data-management.yaml +1 -1
  73. package/.claude/skills/test-design-techniques/evals/test-design-techniques.yaml +1 -1
  74. package/.claude/skills/test-reporting-analytics/evals/test-reporting-analytics.yaml +1 -1
  75. package/.claude/skills/testability-scoring/evals/testability-scoring.yaml +1 -1
  76. package/.claude/skills/validation-pipeline/evals/validation-pipeline.yaml +1 -1
  77. package/.claude/skills/verification-quality/evals/verification-quality.yaml +1 -1
  78. package/.claude/skills/visual-testing-advanced/evals/visual-testing-advanced.yaml +1 -1
  79. package/.claude/skills/wms-testing-patterns/evals/wms-testing-patterns.yaml +1 -1
  80. package/.opencode/agents/collective-intelligence-coordinator.yaml +1 -1
  81. package/.opencode/agents/ddd-domain-expert.yaml +1 -1
  82. package/.opencode/agents/memory-specialist.yaml +1 -1
  83. package/.opencode/agents/performance-engineer.yaml +1 -1
  84. package/.opencode/agents/qe-accessibility-auditor.yaml +1 -1
  85. package/.opencode/agents/qe-api-contract-validator.yaml +1 -1
  86. package/.opencode/agents/qe-bdd-generator.yaml +1 -1
  87. package/.opencode/agents/qe-chaos-engineer.yaml +1 -1
  88. package/.opencode/agents/qe-code-complexity.yaml +1 -1
  89. package/.opencode/agents/qe-code-intelligence.yaml +1 -1
  90. package/.opencode/agents/qe-coverage-analyzer.yaml +1 -1
  91. package/.opencode/agents/qe-defect-predictor.yaml +1 -1
  92. package/.opencode/agents/qe-dependency-mapper.yaml +1 -1
  93. package/.opencode/agents/qe-deployment-advisor.yaml +1 -1
  94. package/.opencode/agents/qe-devils-advocate.yaml +1 -1
  95. package/.opencode/agents/qe-flaky-hunter.yaml +1 -1
  96. package/.opencode/agents/qe-fleet-commander.yaml +1 -1
  97. package/.opencode/agents/qe-gap-detector.yaml +1 -1
  98. package/.opencode/agents/qe-graphql-tester.yaml +1 -1
  99. package/.opencode/agents/qe-impact-analyzer.yaml +1 -1
  100. package/.opencode/agents/qe-integration-architect.yaml +1 -1
  101. package/.opencode/agents/qe-integration-tester.yaml +1 -1
  102. package/.opencode/agents/qe-kg-builder.yaml +1 -1
  103. package/.opencode/agents/qe-learning-coordinator.yaml +1 -1
  104. package/.opencode/agents/qe-load-tester.yaml +1 -1
  105. package/.opencode/agents/qe-message-broker-tester.yaml +1 -1
  106. package/.opencode/agents/qe-metrics-optimizer.yaml +1 -1
  107. package/.opencode/agents/qe-middleware-validator.yaml +1 -1
  108. package/.opencode/agents/qe-mutation-tester.yaml +1 -1
  109. package/.opencode/agents/qe-odata-contract-tester.yaml +1 -1
  110. package/.opencode/agents/qe-parallel-executor.yaml +1 -1
  111. package/.opencode/agents/qe-pattern-learner.yaml +1 -1
  112. package/.opencode/agents/qe-pentest-validator.yaml +1 -1
  113. package/.opencode/agents/qe-performance-tester.yaml +1 -1
  114. package/.opencode/agents/qe-product-factors-assessor.yaml +1 -1
  115. package/.opencode/agents/qe-property-tester.yaml +1 -1
  116. package/.opencode/agents/qe-quality-criteria-recommender.yaml +1 -1
  117. package/.opencode/agents/qe-quality-gate.yaml +1 -1
  118. package/.opencode/agents/qe-queen-coordinator.yaml +1 -1
  119. package/.opencode/agents/qe-qx-partner.yaml +1 -1
  120. package/.opencode/agents/qe-regression-analyzer.yaml +1 -1
  121. package/.opencode/agents/qe-requirements-validator.yaml +1 -1
  122. package/.opencode/agents/qe-responsive-tester.yaml +1 -1
  123. package/.opencode/agents/qe-retry-handler.yaml +1 -1
  124. package/.opencode/agents/qe-risk-assessor.yaml +1 -1
  125. package/.opencode/agents/qe-root-cause-analyzer.yaml +1 -1
  126. package/.opencode/agents/qe-sap-idoc-tester.yaml +1 -1
  127. package/.opencode/agents/qe-sap-rfc-tester.yaml +1 -1
  128. package/.opencode/agents/qe-security-auditor.yaml +1 -1
  129. package/.opencode/agents/qe-security-scanner.yaml +1 -1
  130. package/.opencode/agents/qe-soap-tester.yaml +1 -1
  131. package/.opencode/agents/qe-sod-analyzer.yaml +1 -1
  132. package/.opencode/agents/qe-tdd-specialist.yaml +1 -1
  133. package/.opencode/agents/qe-test-generator.yaml +1 -1
  134. package/.opencode/agents/qe-test-idea-rewriter.yaml +1 -1
  135. package/.opencode/agents/qe-transfer-specialist.yaml +1 -1
  136. package/.opencode/agents/qe-visual-tester.yaml +1 -1
  137. package/.opencode/agents/security-architect.yaml +1 -1
  138. package/.opencode/agents/security-auditor.yaml +1 -1
  139. package/CHANGELOG.md +183 -0
  140. package/README.md +7 -2
  141. package/assets/agents/v3/helpers/advisor-call.cjs +3 -3
  142. package/assets/agents/v3/qe-coverage-specialist.md +1 -1
  143. package/assets/agents/v3/qe-fleet-commander.md +1 -1
  144. package/assets/agents/v3/qe-pentest-validator.md +1 -1
  145. package/assets/agents/v3/qe-queen-coordinator.md +1 -1
  146. package/assets/agents/v3/qe-risk-assessor.md +1 -1
  147. package/assets/agents/v3/qe-root-cause-analyzer.md +1 -1
  148. package/assets/agents/v3/qe-security-auditor.md +1 -1
  149. package/assets/agents/v3/qe-test-architect.md +1 -1
  150. package/assets/skills/.validation/examples/chaos-engineering-output.example.json +1 -1
  151. package/assets/skills/.validation/examples/performance-testing-output.example.json +1 -1
  152. package/assets/skills/.validation/examples/security-testing-output.example.json +1 -1
  153. package/assets/skills/.validation/examples/testability-scoring-output.example.json +1 -1
  154. package/assets/skills/.validation/schemas/skill-eval.schema.json +4 -1
  155. package/assets/skills/.validation/schemas/skill-frontmatter.schema.json +1 -1
  156. package/assets/skills/.validation/schemas/skill-output.template.json +1 -1
  157. package/assets/skills/.validation/templates/eval.template.yaml +1 -1
  158. package/assets/skills/.validation/templates/security-testing-eval.template.yaml +1 -1
  159. package/assets/skills/.validation/templates/skill-frontmatter.example.yaml +1 -1
  160. package/assets/skills/.validation/test-data/sample-output.json +1 -1
  161. package/assets/skills/a11y-ally/SKILL.md +1 -1
  162. package/assets/skills/a11y-ally/evals/a11y-ally.yaml +1 -1
  163. package/assets/skills/accessibility-testing/evals/accessibility-testing.yaml +1 -1
  164. package/assets/skills/api-testing-patterns/evals/api-testing-patterns.yaml +1 -1
  165. package/assets/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +1 -1
  166. package/assets/skills/cicd-pipeline-qe-orchestrator/evals/cicd-pipeline-qe-orchestrator.yaml +1 -1
  167. package/assets/skills/compatibility-testing/evals/compatibility-testing.yaml +1 -1
  168. package/assets/skills/compliance-testing/evals/compliance-testing.yaml +1 -1
  169. package/assets/skills/contract-testing/evals/contract-testing.yaml +1 -1
  170. package/assets/skills/database-testing/evals/database-testing.yaml +1 -1
  171. package/assets/skills/enterprise-integration-testing/evals/enterprise-integration-testing.yaml +1 -1
  172. package/assets/skills/localization-testing/evals/localization-testing.yaml +1 -1
  173. package/assets/skills/middleware-testing-patterns/evals/middleware-testing-patterns.yaml +1 -1
  174. package/assets/skills/mobile-testing/evals/mobile-testing.yaml +1 -1
  175. package/assets/skills/mutation-testing/evals/mutation-testing.yaml +1 -1
  176. package/assets/skills/mutation-testing/test-data/sample-output.json +1 -1
  177. package/assets/skills/n8n-expression-testing/evals/n8n-expression-testing.yaml +1 -1
  178. package/assets/skills/n8n-integration-testing-patterns/evals/n8n-integration-testing-patterns.yaml +1 -1
  179. package/assets/skills/n8n-security-testing/evals/n8n-security-testing.yaml +1 -1
  180. package/assets/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +1 -1
  181. package/assets/skills/n8n-workflow-testing-fundamentals/evals/n8n-workflow-testing-fundamentals.yaml +1 -1
  182. package/assets/skills/observability-testing-patterns/evals/observability-testing-patterns.yaml +1 -1
  183. package/assets/skills/pentest-validation/evals/pentest-validation.yaml +1 -1
  184. package/assets/skills/performance-testing/evals/performance-testing.yaml +1 -1
  185. package/assets/skills/qcsd-cicd-swarm/evals/qcsd-cicd-swarm.yaml +1 -1
  186. package/assets/skills/qcsd-development-swarm/evals/qcsd-development-swarm.yaml +1 -1
  187. package/assets/skills/qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +1 -1
  188. package/assets/skills/qcsd-production-swarm/evals/qcsd-production-swarm.yaml +1 -1
  189. package/assets/skills/qcsd-refinement-swarm/evals/qcsd-refinement-swarm.yaml +1 -1
  190. package/assets/skills/qe-browser/evals/qe-browser.yaml +1 -1
  191. package/assets/skills/qe-chaos-resilience/evals/qe-chaos-resilience.yaml +1 -1
  192. package/assets/skills/qe-code-intelligence/evals/qe-code-intelligence.yaml +1 -1
  193. package/assets/skills/qe-coverage-analysis/evals/qe-coverage-analysis.yaml +1 -1
  194. package/assets/skills/qe-defect-intelligence/evals/qe-defect-intelligence.yaml +1 -1
  195. package/assets/skills/qe-learning-optimization/evals/qe-learning-optimization.yaml +2 -2
  196. package/assets/skills/qe-quality-assessment/evals/qe-quality-assessment.yaml +1 -1
  197. package/assets/skills/qe-requirements-validation/evals/qe-requirements-validation.yaml +1 -1
  198. package/assets/skills/qe-test-execution/evals/qe-test-execution.yaml +1 -1
  199. package/assets/skills/qe-test-generation/evals/qe-test-generation.yaml +1 -1
  200. package/assets/skills/qe-visual-accessibility/evals/qe-visual-accessibility.yaml +1 -1
  201. package/assets/skills/quality-metrics/evals/quality-metrics.yaml +1 -1
  202. package/assets/skills/regression-testing/evals/regression-testing.yaml +1 -1
  203. package/assets/skills/risk-based-testing/evals/risk-based-testing.yaml +1 -1
  204. package/assets/skills/security-testing/evals/security-testing.yaml +1 -1
  205. package/assets/skills/security-visual-testing/evals/security-visual-testing.yaml +1 -1
  206. package/assets/skills/shift-left-testing/evals/shift-left-testing.yaml +1 -1
  207. package/assets/skills/shift-right-testing/evals/shift-right-testing.yaml +1 -1
  208. package/assets/skills/skills-manifest.json +1 -1
  209. package/assets/skills/test-automation-strategy/evals/test-automation-strategy.yaml +1 -1
  210. package/assets/skills/test-data-management/evals/test-data-management.yaml +1 -1
  211. package/assets/skills/test-design-techniques/evals/test-design-techniques.yaml +1 -1
  212. package/assets/skills/test-reporting-analytics/evals/test-reporting-analytics.yaml +1 -1
  213. package/assets/skills/testability-scoring/evals/testability-scoring.yaml +1 -1
  214. package/assets/skills/validation-pipeline/evals/validation-pipeline.yaml +1 -1
  215. package/assets/skills/verification-quality/evals/verification-quality.yaml +1 -1
  216. package/assets/skills/visual-testing-advanced/evals/visual-testing-advanced.yaml +1 -1
  217. package/assets/skills/wms-testing-patterns/evals/wms-testing-patterns.yaml +1 -1
  218. package/dist/cli/bundle.js +7 -7
  219. package/dist/cli/chunks/adapter-TNNNJRDG.js +2 -0
  220. package/dist/cli/chunks/{agent-booster-wasm-SD5N32MX.js → agent-booster-wasm-5PC7D2FW.js} +2 -2
  221. package/dist/cli/chunks/{agent-handler-OZRSJM7F.js → agent-handler-RDNTK4CA.js} +2 -2
  222. package/dist/cli/chunks/{agent-memory-branch-NYTRANRN.js → agent-memory-branch-NAAMBWIR.js} +2 -2
  223. package/dist/cli/chunks/aqe-learning-engine-5ZRMYJLB.js +2 -0
  224. package/dist/cli/chunks/{arena-EX3SC2DP.js → arena-HXTWJ5YY.js} +4 -4
  225. package/dist/cli/chunks/{arena-FOTVSRK4.js → arena-KXFHRWX4.js} +2 -2
  226. package/dist/cli/chunks/{audit-Q5GHSUQY.js → audit-YSGA7UWT.js} +3 -3
  227. package/dist/cli/chunks/base-KWZHOPSH.js +2 -0
  228. package/dist/cli/chunks/{better-sqlite3-S7M5R2HS.js → better-sqlite3-UICJZIDG.js} +2 -2
  229. package/dist/cli/chunks/brain-handler-ET6YAP4B.js +90 -0
  230. package/dist/cli/chunks/{branch-enumerator-RWAXTGEU.js → branch-enumerator-SS7UNVIA.js} +2 -2
  231. package/dist/cli/chunks/{browser-IGDESJGF.js → browser-77GI6KBE.js} +2 -2
  232. package/dist/cli/chunks/browser-workflow-2FZTKDUL.js +2 -0
  233. package/dist/cli/chunks/{chunk-U54OOA24.js → chunk-2JW3BCGG.js} +1 -1
  234. package/dist/cli/chunks/{chunk-LML5VTFK.js → chunk-33YYYWBQ.js} +1 -1
  235. package/dist/cli/chunks/{chunk-P64DMQ2C.js → chunk-34WO57CW.js} +1 -1
  236. package/dist/cli/chunks/{chunk-57TNBR2P.js → chunk-3QHGWY7T.js} +2 -2
  237. package/dist/cli/chunks/chunk-3TW5W5LX.js +2 -0
  238. package/dist/cli/chunks/{chunk-S4MR6RTE.js → chunk-3UPAMMCB.js} +1 -1
  239. package/dist/cli/chunks/{chunk-5WJUNRTY.js → chunk-3VOQRIQM.js} +2 -2
  240. package/dist/cli/chunks/{chunk-4RT7I7PI.js → chunk-3X3DJZJJ.js} +1 -1
  241. package/dist/cli/chunks/{chunk-RFNEHNJV.js → chunk-4MHXCAG2.js} +1 -1
  242. package/dist/cli/chunks/{chunk-PMUBG2RU.js → chunk-4OYFXLBK.js} +2 -2
  243. package/dist/cli/chunks/{chunk-W2FLULF4.js → chunk-55RWDRJD.js} +3 -3
  244. package/dist/cli/chunks/chunk-5R3QL7WN.js +14 -0
  245. package/dist/cli/chunks/{chunk-RHJVDCLV.js → chunk-5SJHQ2CO.js} +2 -2
  246. package/dist/cli/chunks/{chunk-HBTC4L53.js → chunk-5YPYDPBJ.js} +2 -2
  247. package/dist/cli/chunks/chunk-5Z6XZV7K.js +65 -0
  248. package/dist/cli/chunks/{chunk-6EHN7Q2Q.js → chunk-64PFWE2F.js} +2 -2
  249. package/dist/cli/chunks/{chunk-KFXZDQ5J.js → chunk-6CQN24ZK.js} +1 -1
  250. package/dist/cli/chunks/{chunk-WVY22NHZ.js → chunk-6J62K3SW.js} +2 -2
  251. package/dist/cli/chunks/{chunk-TLPL3EQY.js → chunk-6KJABXAR.js} +2 -2
  252. package/dist/cli/chunks/{chunk-PZKZY6PB.js → chunk-6QYNWR7U.js} +2 -2
  253. package/dist/cli/chunks/{chunk-A7N3YUDJ.js → chunk-6TPKK7LD.js} +2 -2
  254. package/dist/cli/chunks/{chunk-RYJHREYS.js → chunk-6UWGMOND.js} +2 -2
  255. package/dist/cli/chunks/{chunk-XPLSLHRB.js → chunk-6VRA2QGL.js} +1 -1
  256. package/dist/cli/chunks/{chunk-Q3JHS3UD.js → chunk-7D777LTF.js} +2 -2
  257. package/dist/cli/chunks/chunk-7ZIOFPL3.js +2 -0
  258. package/dist/cli/chunks/chunk-A4FYONNU.js +2 -0
  259. package/dist/cli/chunks/{chunk-7AFBNU6K.js → chunk-AIHDEEJO.js} +2 -2
  260. package/dist/cli/chunks/{chunk-L2F7FVIU.js → chunk-AUXFKCQL.js} +2 -2
  261. package/dist/cli/chunks/{chunk-67A6PEZM.js → chunk-AWWNB2T7.js} +2 -2
  262. package/dist/cli/chunks/{chunk-DVHWLAEO.js → chunk-BDESSCVR.js} +3 -3
  263. package/dist/cli/chunks/{chunk-JQ2ZD3WO.js → chunk-BFP7KO7P.js} +2 -2
  264. package/dist/cli/chunks/{chunk-N5ZRUOMR.js → chunk-BGE6FOLM.js} +2 -2
  265. package/dist/cli/chunks/{chunk-BWRHOIYC.js → chunk-BOARZKU3.js} +2 -2
  266. package/dist/cli/chunks/{chunk-CTCQOYBS.js → chunk-BOZZYWCR.js} +1 -1
  267. package/dist/cli/chunks/{chunk-NHHWLJQF.js → chunk-C2WU3533.js} +1 -1
  268. package/dist/cli/chunks/{chunk-5EHLGOWW.js → chunk-CDHQFHRP.js} +2 -2
  269. package/dist/cli/chunks/chunk-CDKG6EI7.js +16 -0
  270. package/dist/cli/chunks/{chunk-RGH3WGWD.js → chunk-CIKSHTEQ.js} +3 -3
  271. package/dist/cli/chunks/{chunk-K574FLVB.js → chunk-CIZ5JPDC.js} +2 -2
  272. package/dist/cli/chunks/{chunk-LWUJQGCS.js → chunk-CLTMDCSE.js} +2 -2
  273. package/dist/cli/chunks/{chunk-GHQ5PUOV.js → chunk-CNG6GQEZ.js} +2 -2
  274. package/dist/cli/chunks/{chunk-3C2K4YMS.js → chunk-CSU5NYOX.js} +3 -3
  275. package/dist/cli/chunks/chunk-CU46J64M.js +4 -0
  276. package/dist/cli/chunks/{chunk-EH5OCHAJ.js → chunk-CXQPR5MY.js} +1 -1
  277. package/dist/cli/chunks/chunk-DA5K5754.js +96 -0
  278. package/dist/cli/chunks/{chunk-FVGTINVR.js → chunk-DAEFDCJ4.js} +81 -65
  279. package/dist/cli/chunks/{chunk-MH73D5TN.js → chunk-DEYLEDJN.js} +2 -2
  280. package/dist/cli/chunks/{chunk-7FWP7CZY.js → chunk-DFZCKIGY.js} +3 -3
  281. package/dist/cli/chunks/{chunk-QXTW7XCS.js → chunk-DHJPWQBR.js} +2 -2
  282. package/dist/cli/chunks/{chunk-NAZVPZJS.js → chunk-DOTK76IJ.js} +2 -2
  283. package/dist/cli/chunks/{chunk-RCI64RIJ.js → chunk-DPFRKBOG.js} +2 -2
  284. package/dist/cli/chunks/{chunk-WMW47QMR.js → chunk-EDJ3O7RH.js} +2 -2
  285. package/dist/cli/chunks/{chunk-4K27ESCA.js → chunk-EKQ673SA.js} +1 -1
  286. package/dist/cli/chunks/chunk-F3SBRQC6.js +2 -0
  287. package/dist/cli/chunks/{chunk-4N44UJGI.js → chunk-FGYMFUE2.js} +2 -2
  288. package/dist/cli/chunks/chunk-FLYOJOKN.js +2 -0
  289. package/dist/cli/chunks/{chunk-W4OQYLYO.js → chunk-FRH6VAUS.js} +1 -1
  290. package/dist/cli/chunks/{chunk-VOYJJ3KA.js → chunk-FWGOHAAB.js} +2 -2
  291. package/dist/cli/chunks/{chunk-D4RCV4LY.js → chunk-G6T45OIC.js} +2 -2
  292. package/dist/cli/chunks/{chunk-2EHFEMRU.js → chunk-GPLQ6DOK.js} +2 -2
  293. package/dist/cli/chunks/{chunk-RVCWSAXI.js → chunk-HDSAM2RE.js} +2 -2
  294. package/dist/cli/chunks/chunk-HIVA55CJ.js +2 -0
  295. package/dist/cli/chunks/{chunk-6F4WHN7D.js → chunk-HIYXCDEP.js} +1 -1
  296. package/dist/cli/chunks/{chunk-NRR23SJV.js → chunk-HUWNIPZ5.js} +1 -1
  297. package/dist/cli/chunks/{chunk-4M6A3PVJ.js → chunk-HV2J7KKQ.js} +2 -2
  298. package/dist/cli/chunks/{chunk-CJHVOBJY.js → chunk-IFCLB7FJ.js} +1 -1
  299. package/dist/cli/chunks/{chunk-Q335R4MR.js → chunk-IPR4QP3H.js} +2 -2
  300. package/dist/cli/chunks/{chunk-HZMLNM2T.js → chunk-ISDMD6EU.js} +178 -175
  301. package/dist/cli/chunks/chunk-J6GNQS62.js +5 -0
  302. package/dist/cli/chunks/{chunk-3DFFFXXO.js → chunk-JBNEE5UH.js} +2 -2
  303. package/dist/cli/chunks/chunk-JZ3ORVZ3.js +54 -0
  304. package/dist/cli/chunks/{chunk-T4C56HBW.js → chunk-KCZR45PA.js} +2 -2
  305. package/dist/cli/chunks/chunk-KGT36Z42.js +14 -0
  306. package/dist/cli/chunks/{chunk-JIUF6NV6.js → chunk-KHFNNVJA.js} +2 -2
  307. package/dist/cli/chunks/{chunk-7SK6IMGZ.js → chunk-KPA7MZ6C.js} +2 -2
  308. package/dist/cli/chunks/{chunk-G2CLZVYI.js → chunk-KSKEF7LZ.js} +3 -3
  309. package/dist/cli/chunks/{chunk-6LMLN5R2.js → chunk-M2JBBZQB.js} +2 -2
  310. package/dist/cli/chunks/{chunk-UHTAI4ZB.js → chunk-M4WJKGVK.js} +1 -1
  311. package/dist/cli/chunks/{chunk-KZOBLLXW.js → chunk-M5QUBZY6.js} +2 -2
  312. package/dist/cli/chunks/{chunk-42WUDDUU.js → chunk-MCUJEZT6.js} +2 -2
  313. package/dist/cli/chunks/{chunk-ZFGND4QK.js → chunk-MDWCE7YW.js} +1 -1
  314. package/dist/cli/chunks/{chunk-TYVQNYXX.js → chunk-MEGDYJPV.js} +7 -7
  315. package/dist/cli/chunks/chunk-MIQTXNBG.js +4 -0
  316. package/dist/cli/chunks/{chunk-PFXX5Q32.js → chunk-MNW6QGNJ.js} +2 -2
  317. package/dist/cli/chunks/{chunk-IVGVOGIZ.js → chunk-MOBNBMFW.js} +1 -1
  318. package/dist/cli/chunks/{chunk-NWFIJNEB.js → chunk-MTZH7AHC.js} +1 -1
  319. package/dist/cli/chunks/chunk-MVNP7GIR.js +2 -0
  320. package/dist/cli/chunks/chunk-MVPCNSPY.js +2 -0
  321. package/dist/cli/chunks/chunk-NA7B2QYB.js +2 -0
  322. package/dist/cli/chunks/{chunk-E3Q7WNJD.js → chunk-NDPFGIMJ.js} +3 -3
  323. package/dist/cli/chunks/{chunk-GHUPID5E.js → chunk-NJBGXDQ7.js} +1 -1
  324. package/dist/cli/chunks/chunk-OBAP2TXZ.js +2 -0
  325. package/dist/cli/chunks/{chunk-OBCKP3G4.js → chunk-OCWWP5PL.js} +4 -4
  326. package/dist/cli/chunks/{chunk-CJCT452S.js → chunk-ODKLFVYC.js} +2 -2
  327. package/dist/cli/chunks/{chunk-YN6W2XIT.js → chunk-ONII3572.js} +4 -4
  328. package/dist/cli/chunks/{chunk-QW4LN5NK.js → chunk-OSLYSG3B.js} +2 -2
  329. package/dist/cli/chunks/{chunk-HZ6NEJMO.js → chunk-OULHKEVH.js} +2 -2
  330. package/dist/cli/chunks/{chunk-CG2MUD7U.js → chunk-PAWXJ73E.js} +1 -1
  331. package/dist/cli/chunks/chunk-PEPFCPES.js +2 -0
  332. package/dist/cli/chunks/{chunk-UIGEUEBT.js → chunk-PFR4G3DJ.js} +2 -2
  333. package/dist/cli/chunks/chunk-PO3IXGMQ.js +2 -0
  334. package/dist/cli/chunks/{chunk-6SZKLWZT.js → chunk-PZJOPURC.js} +5 -5
  335. package/dist/cli/chunks/{chunk-ARMZYHYL.js → chunk-Q5DO24IJ.js} +2 -2
  336. package/dist/cli/chunks/chunk-QGIU2WRL.js +2 -0
  337. package/dist/cli/chunks/{chunk-N3RN4QTC.js → chunk-R4VL6E65.js} +2 -2
  338. package/dist/cli/chunks/{chunk-MWQTACNA.js → chunk-R5NE6B2M.js} +2 -2
  339. package/dist/cli/chunks/{chunk-T46LOLW3.js → chunk-RJCYCLZV.js} +2 -2
  340. package/dist/cli/chunks/{chunk-CH2TQCV5.js → chunk-SGYJ4NFZ.js} +1 -1
  341. package/dist/cli/chunks/{chunk-NG2UVPTW.js → chunk-SRKETSFF.js} +1 -1
  342. package/dist/cli/chunks/{chunk-QFUX7ELG.js → chunk-STJCATGN.js} +2 -2
  343. package/dist/cli/chunks/{chunk-CIESXO73.js → chunk-STM3UDNO.js} +1 -1
  344. package/dist/cli/chunks/{chunk-C7AXRI7E.js → chunk-T6BVLVI5.js} +1 -1
  345. package/dist/cli/chunks/{chunk-HSJ5FQCF.js → chunk-TDZ53WO2.js} +2 -2
  346. package/dist/cli/chunks/{chunk-YF5OP6CR.js → chunk-TPGED2IF.js} +2 -2
  347. package/dist/cli/chunks/{chunk-2TG24LYQ.js → chunk-TSRSV3LD.js} +1 -1
  348. package/dist/cli/chunks/{chunk-6VKJAMZY.js → chunk-TT23RRB7.js} +1 -1
  349. package/dist/cli/chunks/{chunk-WXMSRBQF.js → chunk-TWAWHOP7.js} +2 -2
  350. package/dist/cli/chunks/{chunk-ZCDXJ27H.js → chunk-U5K45TFH.js} +1 -1
  351. package/dist/cli/chunks/{chunk-3WV4H33V.js → chunk-UDHKLT4C.js} +1 -1
  352. package/dist/cli/chunks/{chunk-VNAKBHJI.js → chunk-UEM7ZF5K.js} +2 -2
  353. package/dist/cli/chunks/{chunk-4ZUZDFAA.js → chunk-UGVHCMUN.js} +6 -6
  354. package/dist/cli/chunks/{chunk-NNOMDM4N.js → chunk-V3QLFNA2.js} +2 -2
  355. package/dist/cli/chunks/{chunk-S7N4BKI3.js → chunk-VD6QRULW.js} +2 -2
  356. package/dist/cli/chunks/{chunk-WBH4C4BG.js → chunk-VIHTL3U2.js} +2 -2
  357. package/dist/cli/chunks/chunk-W7BWUTVV.js +2 -0
  358. package/dist/cli/chunks/{chunk-IWFL6EFI.js → chunk-WLG5AJ4N.js} +2 -2
  359. package/dist/cli/chunks/{chunk-KEEBUVGV.js → chunk-XC7DYDSY.js} +8 -8
  360. package/dist/cli/chunks/{chunk-F2KRT2II.js → chunk-XJ7QNVI5.js} +3 -3
  361. package/dist/cli/chunks/chunk-XRT2WRMS.js +2 -0
  362. package/dist/cli/chunks/{chunk-ADK7DF3G.js → chunk-XRYF6JV7.js} +2 -2
  363. package/dist/cli/chunks/{chunk-PWEIDHT7.js → chunk-XWMZ6D6N.js} +2 -2
  364. package/dist/cli/chunks/{chunk-ICKLBATY.js → chunk-Y3MW3YBC.js} +2 -2
  365. package/dist/cli/chunks/chunk-YNXS6CGV.js +2 -0
  366. package/dist/cli/chunks/{chunk-PVHO6KLB.js → chunk-Z3RHREWF.js} +1 -1
  367. package/dist/cli/chunks/{chunk-EAJK25IS.js → chunk-ZBAKA4YB.js} +1 -1
  368. package/dist/cli/chunks/chunk-ZBJ4XOOV.js +180 -0
  369. package/dist/cli/chunks/chunk-ZBQY5GLF.js +11 -0
  370. package/dist/cli/chunks/{chunk-R5RNOLHI.js → chunk-ZJ26AQA5.js} +1 -1
  371. package/dist/cli/chunks/{chunk-KPFG4OIM.js → chunk-ZNEMGX5O.js} +1 -1
  372. package/dist/cli/chunks/{chunk-2H5YJ5ZK.js → chunk-ZNPKDCZR.js} +2 -2
  373. package/dist/cli/chunks/{chunk-DW6ZMNMR.js → chunk-ZZDIMOOV.js} +2 -2
  374. package/dist/cli/chunks/ci-464KPQNP.js +81 -0
  375. package/dist/cli/chunks/ci-output-I7FX2RSO.js +2 -0
  376. package/dist/cli/chunks/{circuit-breaker-4WST3QSA.js → circuit-breaker-3FW237WW.js} +2 -2
  377. package/dist/cli/chunks/{claude-flow-setup-KB4TKMYI.js → claude-flow-setup-6JKMBPGU.js} +2 -2
  378. package/dist/cli/chunks/client-7E4LM2WW.js +2 -0
  379. package/dist/cli/chunks/{cline-installer-W2ZHQ6WM.js → cline-installer-UWFHT6VY.js} +2 -2
  380. package/dist/cli/chunks/{code-TF2AVR5D.js → code-KQSUT3FS.js} +29 -29
  381. package/dist/cli/chunks/{code-index-extractor-RMDRUVQJ.js → code-index-extractor-PABBNUSC.js} +2 -2
  382. package/dist/cli/chunks/{codex-installer-VSTRHJHV.js → codex-installer-CQ24DTP5.js} +2 -2
  383. package/dist/cli/chunks/{completions-3Q37QVFR.js → completions-7RWHAUAR.js} +2 -2
  384. package/dist/cli/chunks/complexity-analyzer-XPOAF33E.js +2 -0
  385. package/dist/cli/chunks/{continuedev-installer-VTEXM455.js → continuedev-installer-V4F2FIZP.js} +2 -2
  386. package/dist/cli/chunks/{copilot-installer-AGY7DQUS.js → copilot-installer-JMICURQB.js} +2 -2
  387. package/dist/cli/chunks/core-handlers-IFG3757P.js +2 -0
  388. package/dist/cli/chunks/cost-tracker-5OFHEYFJ.js +2 -0
  389. package/dist/cli/chunks/{coverage-TT64IOS4.js → coverage-QKN57JDS.js} +3 -3
  390. package/dist/cli/chunks/cross-domain-router-EK7W4PGP.js +2 -0
  391. package/dist/cli/chunks/{cursor-installer-OVOJIOHN.js → cursor-installer-GBJ7YXSM.js} +2 -2
  392. package/dist/cli/chunks/{daemon-DMFZMXKA.js → daemon-GKP7CMEK.js} +3 -3
  393. package/dist/cli/chunks/{daemon-XCULEHWY.js → daemon-IAVSO6HK.js} +4 -4
  394. package/dist/cli/chunks/{dag-attention-scheduler-WW2RX4B5.js → dag-attention-scheduler-S225TCI7.js} +2 -2
  395. package/dist/cli/chunks/{detect-QNWIM232.js → detect-IUYH422U.js} +2 -2
  396. package/dist/cli/chunks/{dist-node-6GQIY3CG.js → dist-node-2YRE6A7C.js} +2 -2
  397. package/dist/cli/chunks/{domain-handler-6RJPDELX.js → domain-handler-PL2TZC6H.js} +2 -2
  398. package/dist/cli/chunks/domain-plugins-HCGLXKIT.js +2 -0
  399. package/dist/cli/chunks/{domain-transfer-WK524LBS.js → domain-transfer-KQJRUPXA.js} +2 -2
  400. package/dist/cli/chunks/dream-NFSCSLY7.js +2 -0
  401. package/dist/cli/chunks/{embed-and-insert-pattern-SO6GWJW7.js → embed-and-insert-pattern-ZPAG7235.js} +2 -2
  402. package/dist/cli/chunks/eval-WCK7KNFN.js +17 -0
  403. package/dist/cli/chunks/{experience-capture-middleware-BCCJ35OX.js → experience-capture-middleware-2MSQWSAR.js} +3 -3
  404. package/dist/cli/chunks/{fast-paths-CATDDBEU.js → fast-paths-VYOSIBKF.js} +2 -2
  405. package/dist/cli/chunks/{feature-flags-BUXNAORY.js → feature-flags-UJRHFBRX.js} +2 -2
  406. package/dist/cli/chunks/{feature-flags-KNNWWP5G.js → feature-flags-WCFUKHNQ.js} +2 -2
  407. package/dist/cli/chunks/{file-discovery-S4HF3O7D.js → file-discovery-JDGL4ZWS.js} +2 -2
  408. package/dist/cli/chunks/fleet-ROXVMZ2F.js +43 -0
  409. package/dist/cli/chunks/{gnn-wrapper-G7ABZUG7.js → gnn-wrapper-NIO4ZCO3.js} +2 -2
  410. package/dist/cli/chunks/{heartbeat-handler-UFMELIWT.js → heartbeat-handler-PI42WD3C.js} +4 -4
  411. package/dist/cli/chunks/heartbeat-scheduler-ZATCDJDK.js +2 -0
  412. package/dist/cli/chunks/hnsw-adapter-WXQABRCA.js +2 -0
  413. package/dist/cli/chunks/hnsw-index-TPSWLEA5.js +2 -0
  414. package/dist/cli/chunks/{hnsw-legacy-bridge-YIILSRXI.js → hnsw-legacy-bridge-YLC7SPK2.js} +2 -2
  415. package/dist/cli/chunks/{hnswlib-node-TSVRMXDH.js → hnswlib-node-LG6OS3B7.js} +2 -2
  416. package/dist/cli/chunks/{hooks-OHQPNK74.js → hooks-WVALP5GX.js} +10 -10
  417. package/dist/cli/chunks/{hypergraph-engine-LY7PJDSL.js → hypergraph-engine-GJEMW3EG.js} +2 -2
  418. package/dist/cli/chunks/{hypergraph-handler-YGDYZO6H.js → hypergraph-handler-BLF6LXEV.js} +3 -3
  419. package/dist/cli/chunks/impact-analyzer-HNIU45P5.js +2 -0
  420. package/dist/cli/chunks/{init-handler-MTK65LI3.js → init-handler-K25RWRYY.js} +6 -6
  421. package/dist/cli/chunks/init-wizard-JUIPBMHG.js +2 -0
  422. package/dist/cli/chunks/kernel-5BOZQ754.js +2 -0
  423. package/dist/cli/chunks/{kilocode-installer-3IICU4RS.js → kilocode-installer-BXN6WZ7G.js} +2 -2
  424. package/dist/cli/chunks/{kiro-installer-MXOVQYQA.js → kiro-installer-PM362DLN.js} +12 -12
  425. package/dist/cli/chunks/knowledge-graph-EWDAENWM.js +2 -0
  426. package/dist/cli/chunks/learning-CPERDDRG.js +122 -0
  427. package/dist/cli/chunks/llm-router-GOAV5FPI.js +37 -0
  428. package/dist/cli/chunks/llm-router-service-3YT7JGBS.js +2 -0
  429. package/dist/cli/chunks/{load-F4PVAMXQ.js → load-2BG6SHAK.js} +2 -2
  430. package/dist/cli/chunks/load-test-BP2CPLIV.js +2 -0
  431. package/dist/cli/chunks/{mcp-DUYJUEME.js → mcp-5TTB37DC.js} +2 -2
  432. package/dist/cli/chunks/{memory-XTTYORAS.js → memory-4NHBYT6S.js} +5 -5
  433. package/dist/cli/chunks/memory-backend-4PYQBPRM.js +2 -0
  434. package/dist/cli/chunks/memory-handlers-2B27NITS.js +2 -0
  435. package/dist/cli/chunks/multi-model-executor-KCWSGCDT.js +14 -0
  436. package/dist/cli/chunks/{opencode-installer-33ULBU2F.js → opencode-installer-ATZLLK74.js} +2 -2
  437. package/dist/cli/chunks/{orchestrator-34ZJEKTJ.js → orchestrator-RKB7XJRG.js} +19 -19
  438. package/dist/cli/chunks/pattern-null-store-OYOQOV2O.js +2 -0
  439. package/dist/cli/chunks/{pattern-usage-recorder-GZ2M3F2E.js → pattern-usage-recorder-7VE4XDAI.js} +2 -2
  440. package/dist/cli/chunks/pipeline-LQZSNDD2.js +19 -0
  441. package/dist/cli/chunks/{platform-VKJFJIAW.js → platform-OD5H5U6G.js} +2 -2
  442. package/dist/cli/chunks/{plugin-5C5UBQUQ.js → plugin-EJ6K2MGU.js} +2 -2
  443. package/dist/cli/chunks/{prime-radiant-advanced-wasm-KO2PQI3D.js → prime-radiant-advanced-wasm-OIHTKJMN.js} +2 -2
  444. package/dist/cli/chunks/protocol-executor-3ATJTXWG.js +2 -0
  445. package/dist/cli/chunks/{protocol-handler-ZF74NIKA.js → protocol-handler-NRBROAU7.js} +2 -2
  446. package/dist/cli/chunks/{prove-MO5TQQU4.js → prove-EJOGEGD3.js} +2 -2
  447. package/dist/cli/chunks/qe-reasoning-bank-LLMYZT4X.js +2 -0
  448. package/dist/cli/chunks/{quality-EYIN6AER.js → quality-E55UC73D.js} +2 -2
  449. package/dist/cli/chunks/{quality-gate-V6OQM57O.js → quality-gate-OIQATNT3.js} +3 -3
  450. package/dist/cli/chunks/queen-coordinator-RN7L6KG5.js +2 -0
  451. package/dist/cli/chunks/{real-embeddings-AR7TZX7U.js → real-embeddings-FPFFNOSZ.js} +2 -2
  452. package/dist/cli/chunks/ref-validation-OPO6J7OL.js +2 -0
  453. package/dist/cli/chunks/{roocode-installer-46E626VZ.js → roocode-installer-ODY5KRWU.js} +2 -2
  454. package/dist/cli/chunks/router-MDHITQ2V.js +2 -0
  455. package/dist/cli/chunks/routing-feedback-5XLNJ3Y3.js +2 -0
  456. package/dist/cli/chunks/{routing-handler-ZNRVW6QW.js → routing-handler-KQM6VWLC.js} +4 -4
  457. package/dist/cli/chunks/{ruvector-commands-4L2CQMWS.js → ruvector-commands-U2GVV6PF.js} +2 -2
  458. package/dist/cli/chunks/rvf-dual-writer-JBW4O3II.js +2 -0
  459. package/dist/cli/chunks/rvf-migration-adapter-BPPQL4XJ.js +2 -0
  460. package/dist/cli/chunks/{rvf-migration-coordinator-H4RVGBIA.js → rvf-migration-coordinator-V2GHCJKN.js} +2 -2
  461. package/dist/cli/chunks/rvf-native-adapter-S4562CG5.js +2 -0
  462. package/dist/cli/chunks/rvf-store-integrity-KMIHD3LP.js +2 -0
  463. package/dist/cli/chunks/safe-db-FIRHSXVF.js +2 -0
  464. package/dist/cli/chunks/schedule-RVXFB4HK.js +2 -0
  465. package/dist/cli/chunks/scheduler-IKKAMAOO.js +2 -0
  466. package/dist/cli/chunks/security-P5NM353C.js +13 -0
  467. package/dist/cli/chunks/{shared-rvf-adapter-M6NNIZ5W.js → shared-rvf-adapter-LVIUOO4S.js} +2 -2
  468. package/dist/cli/chunks/{shared-rvf-dual-writer-LHMFCYVE.js → shared-rvf-dual-writer-2CSG7C4W.js} +2 -2
  469. package/dist/cli/chunks/sqlite-persistence-SQ3HCUQ7.js +2 -0
  470. package/dist/cli/chunks/{status-handler-GMIOXQIE.js → status-handler-6TU6O37R.js} +2 -2
  471. package/dist/cli/chunks/{structural-health-YZXHVHM6.js → structural-health-KBIJSTXJ.js} +2 -2
  472. package/dist/cli/chunks/{sync-GMPCPV5L.js → sync-LNHI5SB7.js} +2 -2
  473. package/dist/cli/chunks/{sync-N56UQGCS.js → sync-UHOX6RJW.js} +2 -2
  474. package/dist/cli/chunks/task-handler-AVDHMLGI.js +49 -0
  475. package/dist/cli/chunks/task-handlers-KYK4VTRA.js +9 -0
  476. package/dist/cli/chunks/{test-GQNCKRSP.js → test-DHAAI3DU.js} +11 -11
  477. package/dist/cli/chunks/test-scheduling-XDBZ3QC2.js +15 -0
  478. package/dist/cli/chunks/{token-bootstrap-76SRNXGG.js → token-bootstrap-GUTTLPZX.js} +2 -2
  479. package/dist/cli/chunks/{token-usage-O7CZDP5Q.js → token-usage-Q2YG5YQN.js} +2 -2
  480. package/dist/cli/chunks/{transformers-LTU4LSSC.js → transformers-F5UQTQCY.js} +2 -2
  481. package/dist/cli/chunks/{tree-sitter-wasm-parser-NQSQCMBM.js → tree-sitter-wasm-parser-DEGOHS6F.js} +2 -2
  482. package/dist/cli/chunks/types-JQ7EQO5Q.js +2 -0
  483. package/dist/cli/chunks/unified-memory-CXHLHB5I.js +2 -0
  484. package/dist/cli/chunks/unified-memory-hnsw-I7WAE54M.js +2 -0
  485. package/dist/cli/chunks/unified-persistence-6CPF65WI.js +2 -0
  486. package/dist/cli/chunks/{upgrade-OQWRBZ3R.js → upgrade-TJRVGHGD.js} +2 -2
  487. package/dist/cli/chunks/{validate-TH5SRP3E.js → validate-BWPCVHBN.js} +2 -2
  488. package/dist/cli/chunks/{validate-swarm-UITL2JUS.js → validate-swarm-QVVKCQLP.js} +2 -2
  489. package/dist/cli/chunks/{vibium-O6PRAG4J.js → vibium-ZFATIWHO.js} +2 -2
  490. package/dist/cli/chunks/visual-security-GNPHME5H.js +2 -0
  491. package/dist/cli/chunks/{web-tree-sitter-XBFBY4OF.js → web-tree-sitter-KPLY7ONR.js} +2 -2
  492. package/dist/cli/chunks/{windsurf-installer-DVT5NRNY.js → windsurf-installer-H7XM7ISA.js} +2 -2
  493. package/dist/cli/chunks/{witness-chain-VRSH2F36.js → witness-chain-RRN6NDCH.js} +2 -2
  494. package/dist/cli/chunks/witness-chain-VT4UHHBR.js +2 -0
  495. package/dist/cli/chunks/{witness-key-manager-GFHRDKQ4.js → witness-key-manager-DFRL42GE.js} +2 -2
  496. package/dist/cli/chunks/workflow-2ZQO6WYI.js +51 -0
  497. package/dist/cli/chunks/workflow-orchestrator-DB3HIECD.js +2 -0
  498. package/dist/cli/chunks/{wrappers-5LLLT7GM.js → wrappers-SUS6XEJD.js} +2 -2
  499. package/dist/cli/commands/ci.js +54 -28
  500. package/dist/cli/commands/code.js +6 -0
  501. package/dist/cli/commands/eval.js +3 -2
  502. package/dist/cli/commands/fleet.js +35 -16
  503. package/dist/cli/commands/learning-snapshot.d.ts +38 -0
  504. package/dist/cli/commands/learning-snapshot.js +171 -0
  505. package/dist/cli/commands/learning.js +16 -64
  506. package/dist/cli/commands/llm-router.js +13 -12
  507. package/dist/cli/commands/pipeline.js +9 -0
  508. package/dist/cli/commands/security.js +167 -100
  509. package/dist/cli/commands/test.js +1 -0
  510. package/dist/cli/commands/workflow.js +9 -1
  511. package/dist/cli/handlers/task-handler.js +19 -9
  512. package/dist/cli/helpers/domain-plugins.d.ts +5 -0
  513. package/dist/cli/helpers/domain-plugins.js +11 -0
  514. package/dist/cli/index.js +17 -8
  515. package/dist/cli/utils/ci-config.d.ts +3 -0
  516. package/dist/cli/utils/ci-output.d.ts +17 -0
  517. package/dist/cli/utils/ci-output.js +34 -2
  518. package/dist/context/sources/git-source.d.ts +2 -0
  519. package/dist/context/sources/git-source.js +9 -2
  520. package/dist/coordination/cancelled-task-settlement.d.ts +11 -0
  521. package/dist/coordination/cancelled-task-settlement.js +15 -0
  522. package/dist/coordination/consensus/providers/claude-provider.d.ts +2 -2
  523. package/dist/coordination/consensus/providers/claude-provider.js +18 -25
  524. package/dist/coordination/consensus/providers/gemini-provider.d.ts +14 -4
  525. package/dist/coordination/consensus/providers/gemini-provider.js +39 -36
  526. package/dist/coordination/consensus/providers/ollama-provider.d.ts +8 -7
  527. package/dist/coordination/consensus/providers/ollama-provider.js +16 -18
  528. package/dist/coordination/consensus/providers/openai-provider.d.ts +14 -4
  529. package/dist/coordination/consensus/providers/openai-provider.js +36 -34
  530. package/dist/coordination/consensus/providers/openrouter-provider.d.ts +5 -5
  531. package/dist/coordination/consensus/providers/openrouter-provider.js +64 -37
  532. package/dist/coordination/handlers/handler-types.d.ts +3 -0
  533. package/dist/coordination/handlers/quality-handlers.js +10 -0
  534. package/dist/coordination/handlers/security-handlers.js +168 -72
  535. package/dist/coordination/handlers/test-execution-handlers.js +39 -43
  536. package/dist/coordination/interfaces.d.ts +2 -2
  537. package/dist/coordination/protocol-executor.js +68 -9
  538. package/dist/coordination/protocols/security-audit.d.ts +3 -0
  539. package/dist/coordination/protocols/security-audit.js +61 -39
  540. package/dist/coordination/queen-coordinator.js +10 -4
  541. package/dist/coordination/queen-event-handlers.js +17 -0
  542. package/dist/coordination/queen-task-management.js +25 -0
  543. package/dist/coordination/queen-types.d.ts +2 -0
  544. package/dist/coordination/result-saver.js +36 -5
  545. package/dist/coordination/task-executor.d.ts +3 -1
  546. package/dist/coordination/task-executor.js +8 -8
  547. package/dist/coordination/workflow-composition.d.ts +19 -0
  548. package/dist/coordination/workflow-composition.js +114 -0
  549. package/dist/coordination/workflow-orchestrator.d.ts +3 -2
  550. package/dist/coordination/workflow-orchestrator.js +219 -85
  551. package/dist/coordination/workflow-types.d.ts +30 -1
  552. package/dist/coordination/yaml-pipeline-loader.js +9 -5
  553. package/dist/domains/chaos-resilience/services/chaos-engineer.js +2 -7
  554. package/dist/domains/code-intelligence/services/knowledge-graph.js +2 -7
  555. package/dist/domains/code-intelligence/services/metric-collector/test-counter.js +9 -40
  556. package/dist/domains/constants.d.ts +1 -6
  557. package/dist/domains/constants.js +2 -6
  558. package/dist/domains/contract-testing/services/contract-validator.js +2 -7
  559. package/dist/domains/coverage-analysis/services/coverage-analyzer.js +2 -12
  560. package/dist/domains/coverage-analysis/services/gap-detector.js +2 -7
  561. package/dist/domains/defect-intelligence/services/defect-predictor.js +2 -12
  562. package/dist/domains/defect-intelligence/services/root-cause-analyzer.js +2 -7
  563. package/dist/domains/learning-optimization/services/learning-coordinator.js +2 -7
  564. package/dist/domains/quality-assessment/services/deployment-advisor.js +2 -7
  565. package/dist/domains/quality-assessment/services/quality-analyzer.js +2 -7
  566. package/dist/domains/requirements-validation/services/requirements-validator.js +2 -7
  567. package/dist/domains/security-compliance/interfaces.d.ts +5 -0
  568. package/dist/domains/security-compliance/interfaces.js +0 -6
  569. package/dist/domains/security-compliance/scan-discovery.d.ts +12 -0
  570. package/dist/domains/security-compliance/scan-discovery.js +105 -0
  571. package/dist/domains/security-compliance/scan-evidence.d.ts +57 -0
  572. package/dist/domains/security-compliance/scan-evidence.js +2 -0
  573. package/dist/domains/security-compliance/services/scanners/sast-scanner.d.ts +3 -2
  574. package/dist/domains/security-compliance/services/scanners/sast-scanner.js +112 -72
  575. package/dist/domains/security-compliance/services/semgrep-integration.d.ts +9 -2
  576. package/dist/domains/security-compliance/services/semgrep-integration.js +68 -20
  577. package/dist/domains/test-execution/services/flaky-detector.js +46 -5
  578. package/dist/domains/test-execution/services/retry-handler.js +38 -20
  579. package/dist/domains/test-execution/services/test-executor.js +84 -29
  580. package/dist/domains/test-generation/services/test-generator.js +2 -7
  581. package/dist/domains/visual-accessibility/services/visual-tester.js +2 -7
  582. package/dist/init/init-wizard-hooks.js +2 -2
  583. package/dist/init/init-wizard-steps.js +1 -1
  584. package/dist/init/kiro-installer.js +9 -8
  585. package/dist/init/opencode-installer.js +1 -1
  586. package/dist/init/phases/07-hooks.js +4 -2
  587. package/dist/init/phases/12-verification.js +1 -1
  588. package/dist/init/settings-merge.d.ts +10 -3
  589. package/dist/init/settings-merge.js +40 -9
  590. package/dist/integrations/agentic-flow/model-router/types.js +6 -8
  591. package/dist/integrations/agentic-flow/reasoning-bank/index.js +3 -20
  592. package/dist/integrations/coherence/engines/cohomology-adapter.js +100 -30
  593. package/dist/integrations/ruvector/brain-exporter.js +9 -15
  594. package/dist/integrations/ruvector/brain-rvf-exporter.js +17 -30
  595. package/dist/integrations/ruvector/brain-shared.d.ts +5 -1
  596. package/dist/integrations/ruvector/brain-shared.js +70 -4
  597. package/dist/integrations/ruvector/rvf-dual-writer.js +36 -15
  598. package/dist/integrations/ruvector/rvf-store-integrity.d.ts +14 -9
  599. package/dist/integrations/ruvector/rvf-store-integrity.js +39 -9
  600. package/dist/integrations/ruvector/shared-rvf-adapter.js +20 -23
  601. package/dist/kernel/memory-factory.js +14 -4
  602. package/dist/kernel/project-root.js +10 -8
  603. package/dist/kernel/unified-memory.js +1 -1
  604. package/dist/learning/local-judge-client.d.ts +6 -5
  605. package/dist/learning/local-judge-client.js +7 -6
  606. package/dist/learning/pattern-store.js +29 -11
  607. package/dist/mcp/bundle.js +548 -527
  608. package/dist/mcp/handlers/domain-handler-configs.d.ts +22 -1
  609. package/dist/mcp/handlers/domain-handler-configs.js +50 -19
  610. package/dist/mcp/handlers/domain-handlers.d.ts +7 -5
  611. package/dist/mcp/handlers/domain-handlers.js +7 -5
  612. package/dist/mcp/handlers/index.d.ts +1 -1
  613. package/dist/mcp/handlers/index.js +1 -1
  614. package/dist/mcp/handlers/pipeline-handlers.d.ts +31 -1
  615. package/dist/mcp/handlers/pipeline-handlers.js +63 -0
  616. package/dist/mcp/handlers/task-handlers.d.ts +1 -0
  617. package/dist/mcp/handlers/task-handlers.js +12 -4
  618. package/dist/mcp/protocol-server.d.ts +2 -0
  619. package/dist/mcp/protocol-server.js +112 -53
  620. package/dist/mcp/security/sampling-server.js +2 -1
  621. package/dist/mcp/tool-annotations.js +1 -1
  622. package/dist/mcp/tools/test-execution/schedule.js +7 -0
  623. package/dist/mcp/types.d.ts +10 -1
  624. package/dist/optimization/session-cache.d.ts +5 -0
  625. package/dist/optimization/session-cache.js +23 -0
  626. package/dist/routing/advisor/multi-model-executor.d.ts +4 -1
  627. package/dist/routing/advisor/multi-model-executor.js +8 -1
  628. package/dist/routing/free-tier/ladder.d.ts +2 -1
  629. package/dist/routing/free-tier/ladder.js +3 -2
  630. package/dist/routing/security/cyber-pin.d.ts +35 -11
  631. package/dist/routing/security/cyber-pin.js +76 -14
  632. package/dist/routing/value-score.js +1 -1
  633. package/dist/shared/git/index.d.ts +1 -0
  634. package/dist/shared/git/index.js +1 -0
  635. package/dist/shared/git/ref-validation.d.ts +20 -0
  636. package/dist/shared/git/ref-validation.js +43 -0
  637. package/dist/shared/llm/anthropic-params.d.ts +40 -0
  638. package/dist/shared/llm/anthropic-params.js +51 -0
  639. package/dist/shared/llm/cost-tracker.d.ts +15 -2
  640. package/dist/shared/llm/cost-tracker.js +62 -10
  641. package/dist/shared/llm/index.d.ts +2 -2
  642. package/dist/shared/llm/index.js +2 -2
  643. package/dist/shared/llm/interfaces.d.ts +1 -1
  644. package/dist/shared/llm/metrics/cost-metrics.js +5 -4
  645. package/dist/shared/llm/model-mapping.js +131 -0
  646. package/dist/shared/llm/model-registry.d.ts +37 -11
  647. package/dist/shared/llm/model-registry.js +393 -18
  648. package/dist/shared/llm/openai-params.d.ts +35 -0
  649. package/dist/shared/llm/openai-params.js +54 -0
  650. package/dist/shared/llm/provider-manager.js +4 -3
  651. package/dist/shared/llm/providers/azure-openai.d.ts +11 -0
  652. package/dist/shared/llm/providers/azure-openai.js +26 -15
  653. package/dist/shared/llm/providers/bedrock.js +11 -19
  654. package/dist/shared/llm/providers/claude.js +6 -29
  655. package/dist/shared/llm/providers/codex.js +4 -3
  656. package/dist/shared/llm/providers/gemini.d.ts +3 -2
  657. package/dist/shared/llm/providers/gemini.js +19 -10
  658. package/dist/shared/llm/providers/ollama.d.ts +2 -0
  659. package/dist/shared/llm/providers/ollama.js +30 -20
  660. package/dist/shared/llm/providers/openai.js +10 -17
  661. package/dist/shared/llm/providers/openrouter.d.ts +1 -1
  662. package/dist/shared/llm/providers/openrouter.js +57 -21
  663. package/dist/shared/llm/router/agent-router-config.js +33 -32
  664. package/dist/shared/llm/router/hybrid-router.d.ts +4 -0
  665. package/dist/shared/llm/router/hybrid-router.js +95 -35
  666. package/dist/shared/llm/router/routing-rules.js +9 -8
  667. package/dist/shared/llm/router/types.d.ts +9 -2
  668. package/dist/shared/llm/router/types.js +81 -13
  669. package/dist/shared/llm/translation/message-formatter.js +4 -23
  670. package/dist/shared/test-runner-verdict.d.ts +29 -0
  671. package/dist/shared/test-runner-verdict.js +43 -0
  672. package/dist/shared/vitest-json-report.d.ts +45 -0
  673. package/dist/shared/vitest-json-report.js +80 -0
  674. package/dist/test-scheduling/executors/vitest-executor.d.ts +7 -2
  675. package/dist/test-scheduling/executors/vitest-executor.js +174 -52
  676. package/dist/test-scheduling/git-aware/test-selector.js +3 -0
  677. package/dist/test-scheduling/phase-scheduler.d.ts +1 -0
  678. package/dist/test-scheduling/phase-scheduler.js +23 -1
  679. package/dist/validation/frontier-judge.d.ts +7 -4
  680. package/dist/validation/frontier-judge.js +11 -6
  681. package/package.json +6 -6
  682. package/dist/cli/chunks/adapter-OJF6LAJV.js +0 -2
  683. package/dist/cli/chunks/aqe-learning-engine-FGT474XB.js +0 -2
  684. package/dist/cli/chunks/base-HH765JFV.js +0 -2
  685. package/dist/cli/chunks/brain-handler-5FSA46R5.js +0 -90
  686. package/dist/cli/chunks/browser-workflow-NPM4FUPI.js +0 -2
  687. package/dist/cli/chunks/chunk-2LKAMMMI.js +0 -2
  688. package/dist/cli/chunks/chunk-4AKGBUYD.js +0 -4
  689. package/dist/cli/chunks/chunk-4MH22236.js +0 -2
  690. package/dist/cli/chunks/chunk-4PH7O5ZH.js +0 -2
  691. package/dist/cli/chunks/chunk-4UCMTYFQ.js +0 -65
  692. package/dist/cli/chunks/chunk-DRO5NJZA.js +0 -11
  693. package/dist/cli/chunks/chunk-FPHPP5TQ.js +0 -2
  694. package/dist/cli/chunks/chunk-FREF6Y4L.js +0 -14
  695. package/dist/cli/chunks/chunk-G6AV2HGY.js +0 -54
  696. package/dist/cli/chunks/chunk-GJAWEUIN.js +0 -16
  697. package/dist/cli/chunks/chunk-IUNMW454.js +0 -2
  698. package/dist/cli/chunks/chunk-JDXLCNKV.js +0 -2
  699. package/dist/cli/chunks/chunk-OC2CKU7I.js +0 -2
  700. package/dist/cli/chunks/chunk-OX6T26CD.js +0 -180
  701. package/dist/cli/chunks/chunk-PHHXHG2W.js +0 -2
  702. package/dist/cli/chunks/chunk-SEHCX4NH.js +0 -2
  703. package/dist/cli/chunks/chunk-TENYL5TI.js +0 -14
  704. package/dist/cli/chunks/chunk-U2AY57XZ.js +0 -5
  705. package/dist/cli/chunks/chunk-UYTWDS2R.js +0 -2
  706. package/dist/cli/chunks/chunk-VSYBMNIR.js +0 -2
  707. package/dist/cli/chunks/chunk-WBMRADQP.js +0 -81
  708. package/dist/cli/chunks/chunk-ZWRQ5VAU.js +0 -2
  709. package/dist/cli/chunks/chunk-ZYLSOBOR.js +0 -2
  710. package/dist/cli/chunks/ci-NTRH7PAW.js +0 -81
  711. package/dist/cli/chunks/ci-output-F57RSD35.js +0 -2
  712. package/dist/cli/chunks/client-GPZEC54E.js +0 -2
  713. package/dist/cli/chunks/complexity-analyzer-3FNFLACD.js +0 -2
  714. package/dist/cli/chunks/core-handlers-YMGHYIBR.js +0 -2
  715. package/dist/cli/chunks/cost-tracker-LTZAQBX7.js +0 -2
  716. package/dist/cli/chunks/cross-domain-router-ECBNTGYJ.js +0 -2
  717. package/dist/cli/chunks/dream-EHGKCFWH.js +0 -2
  718. package/dist/cli/chunks/eval-GL544IPO.js +0 -17
  719. package/dist/cli/chunks/fleet-DQVQQONW.js +0 -43
  720. package/dist/cli/chunks/heartbeat-scheduler-UFEL2CBW.js +0 -2
  721. package/dist/cli/chunks/hnsw-adapter-BLSD45CX.js +0 -2
  722. package/dist/cli/chunks/hnsw-index-A3RZODEN.js +0 -2
  723. package/dist/cli/chunks/impact-analyzer-OXHD3FOH.js +0 -2
  724. package/dist/cli/chunks/init-wizard-PKZL7QBU.js +0 -2
  725. package/dist/cli/chunks/kernel-XWPM72UJ.js +0 -2
  726. package/dist/cli/chunks/knowledge-graph-FRKR5XWI.js +0 -2
  727. package/dist/cli/chunks/learning-EV5LSOOM.js +0 -122
  728. package/dist/cli/chunks/llm-router-7LYDJUOT.js +0 -37
  729. package/dist/cli/chunks/llm-router-service-R7A5HHDM.js +0 -2
  730. package/dist/cli/chunks/load-test-5IKDWSYL.js +0 -2
  731. package/dist/cli/chunks/memory-backend-7VW5QCMO.js +0 -2
  732. package/dist/cli/chunks/memory-handlers-VZH3R2TQ.js +0 -2
  733. package/dist/cli/chunks/multi-model-executor-R6XCTMCF.js +0 -14
  734. package/dist/cli/chunks/pattern-null-store-BU6LCB2W.js +0 -2
  735. package/dist/cli/chunks/pipeline-SR5OTY45.js +0 -19
  736. package/dist/cli/chunks/protocol-executor-BSP5LWJN.js +0 -2
  737. package/dist/cli/chunks/qe-reasoning-bank-J2RC7P25.js +0 -2
  738. package/dist/cli/chunks/queen-coordinator-XI5AJV2V.js +0 -2
  739. package/dist/cli/chunks/router-VXQYYA3D.js +0 -2
  740. package/dist/cli/chunks/routing-feedback-HZQTASFF.js +0 -2
  741. package/dist/cli/chunks/rvf-dual-writer-BDTLLJER.js +0 -2
  742. package/dist/cli/chunks/rvf-migration-adapter-IB343MDN.js +0 -2
  743. package/dist/cli/chunks/rvf-native-adapter-Y7SN7LHU.js +0 -2
  744. package/dist/cli/chunks/rvf-store-integrity-OJGWWPLL.js +0 -2
  745. package/dist/cli/chunks/safe-db-2VTKKBJU.js +0 -2
  746. package/dist/cli/chunks/schedule-QJ4CFGJY.js +0 -2
  747. package/dist/cli/chunks/scheduler-2NHDQPC3.js +0 -2
  748. package/dist/cli/chunks/security-JF3BVNRO.js +0 -14
  749. package/dist/cli/chunks/sqlite-persistence-NVVAPZN3.js +0 -2
  750. package/dist/cli/chunks/task-handler-VTNRGAXP.js +0 -49
  751. package/dist/cli/chunks/task-handlers-FYSDH55N.js +0 -9
  752. package/dist/cli/chunks/test-scheduling-GPRXSIRP.js +0 -15
  753. package/dist/cli/chunks/types-OP6IWE6N.js +0 -2
  754. package/dist/cli/chunks/unified-memory-DSTIEDSH.js +0 -2
  755. package/dist/cli/chunks/unified-memory-hnsw-KBV3P4OS.js +0 -2
  756. package/dist/cli/chunks/unified-persistence-XKCOUBKY.js +0 -2
  757. package/dist/cli/chunks/visual-security-TTWSPZTZ.js +0 -2
  758. package/dist/cli/chunks/witness-chain-2KY73HPN.js +0 -2
  759. package/dist/cli/chunks/workflow-HAZ6YKOG.js +0 -51
  760. package/dist/cli/chunks/workflow-orchestrator-UK56AVOT.js +0 -2
@@ -104,19 +104,44 @@ export function mergeHooksSmart(existingHooks, newAqeHooks) {
104
104
  * `AQE_LEARNING_ENABLED=false` keeps their choice. Non-AQE env vars are always
105
105
  * preserved. Returns a new object; inputs are not mutated.
106
106
  */
107
- export function mergeAqeEnv(existingEnv, aqeEnv) {
107
+ export function mergeAqeEnv(existingEnv, aqeEnv, options = {}) {
108
108
  // AQE defaults first, then existing values win on any key collision.
109
- return { ...aqeEnv, ...(existingEnv || {}) };
109
+ const merged = { ...aqeEnv, ...(existingEnv || {}) };
110
+ if (options.memoryBackend === 'memory') {
111
+ // An explicit --no-database re-init must replace stale AQE persistence
112
+ // settings, even if the previous init wrote them into this env block.
113
+ // Custom paths remain inert under the memory backend and are needed when
114
+ // switching back. Only discard AQE's generated database locations.
115
+ for (const key of ['AQE_MEMORY_PATH', 'AQE_V3_REASONING_BANK']) {
116
+ if (merged[key] === '.agentic-qe/memory.db')
117
+ delete merged[key];
118
+ }
119
+ merged.AQE_MEMORY_BACKEND = 'memory';
120
+ merged.AQE_LEARNING_ENABLED = 'false';
121
+ merged.AQE_WORKERS_ENABLED = 'false';
122
+ }
123
+ else if (existingEnv?.AQE_MEMORY_BACKEND === 'memory') {
124
+ // Undo the overrides written by memory-mode init. Ordinary user overrides
125
+ // still win when there is no memory-mode marker.
126
+ for (const key of ['AQE_MEMORY_BACKEND', 'AQE_LEARNING_ENABLED', 'AQE_WORKERS_ENABLED']) {
127
+ if (Object.prototype.hasOwnProperty.call(aqeEnv, key))
128
+ merged[key] = aqeEnv[key];
129
+ else
130
+ delete merged[key];
131
+ }
132
+ }
133
+ return merged;
110
134
  }
111
135
  /**
112
136
  * Generate the full set of AQE environment variables for settings.json.
113
137
  */
114
- export function generateAqeEnvVars(config) {
138
+ export function generateAqeEnvVars(config, options = {}) {
115
139
  const domains = config.domains?.enabled || [];
140
+ const dbFree = options.memoryBackend === 'memory';
116
141
  return {
117
- AQE_MEMORY_PATH: '.agentic-qe/memory.db',
142
+ ...(dbFree ? { AQE_MEMORY_BACKEND: 'memory', AQE_WORKERS_ENABLED: 'false' } : { AQE_MEMORY_PATH: '.agentic-qe/memory.db' }),
118
143
  AQE_MEMORY_ENABLED: 'true',
119
- AQE_LEARNING_ENABLED: config.learning?.enabled ? 'true' : 'false',
144
+ AQE_LEARNING_ENABLED: dbFree ? 'false' : config.learning?.enabled ? 'true' : 'false',
120
145
  AQE_V3_MODE: 'true',
121
146
  AQE_V3_DDD_ENABLED: 'true',
122
147
  AQE_V3_DOMAINS: domains.join(','),
@@ -126,7 +151,7 @@ export function generateAqeEnvVars(config) {
126
151
  AQE_V3_HNSW_ENABLED: config.learning?.hnswConfig ? 'true' : 'false',
127
152
  AQE_V3_HOOKS_ENABLED: 'true',
128
153
  AQE_V3_AISP_ENABLED: 'true',
129
- AQE_V3_REASONING_BANK: '.agentic-qe/memory.db',
154
+ ...(!dbFree ? { AQE_V3_REASONING_BANK: '.agentic-qe/memory.db' } : {}),
130
155
  AQE_V3_PATTERN_PROMOTION_THRESHOLD: String(config.learning?.promotionThreshold ?? 3),
131
156
  AQE_V3_SUCCESS_RATE_THRESHOLD: String(config.learning?.qualityThreshold ?? 0.7),
132
157
  };
@@ -206,14 +231,20 @@ export function applyV3Sections(settings, sections, options = {}) {
206
231
  settings[key] = deepMergeOwned(settings[key], value);
207
232
  }
208
233
  }
234
+ if (options.memoryBackend === 'memory') {
235
+ const learning = settings.v3Learning;
236
+ if (learning?.reasoningBank)
237
+ delete learning.reasoningBank.dbPath;
238
+ }
209
239
  return settings;
210
240
  }
211
241
  /**
212
242
  * Generate v3-specific settings sections for settings.json.
213
243
  * These sections enable the self-learning system, status line, and permissions.
214
244
  */
215
- export function generateV3SettingsSections(config, projectRoot) {
245
+ export function generateV3SettingsSections(config, projectRoot, options = {}) {
216
246
  const domains = config.domains?.enabled || [];
247
+ const dbFree = options.memoryBackend === 'memory';
217
248
  return {
218
249
  aqe: {
219
250
  version: config.version ?? '3.0.0',
@@ -243,9 +274,9 @@ export function generateV3SettingsSections(config, projectRoot) {
243
274
  },
244
275
  },
245
276
  v3Learning: {
246
- enabled: config.learning?.enabled ?? true,
277
+ enabled: dbFree ? false : config.learning?.enabled ?? true,
247
278
  reasoningBank: {
248
- dbPath: '.agentic-qe/memory.db',
279
+ ...(!dbFree ? { dbPath: '.agentic-qe/memory.db' } : {}),
249
280
  enableHNSW: !!config.learning?.hnswConfig,
250
281
  },
251
282
  patternPromotion: {
@@ -11,6 +11,7 @@
11
11
  *
12
12
  * @module integrations/agentic-flow/model-router/types
13
13
  */
14
+ import { CLAUDE_TIER_MODELS, DEFAULT_OPUS_MODEL, DEFAULT_SONNET_MODEL, } from '../../../shared/llm/model-registry.js';
14
15
  /**
15
16
  * Metadata for all model tiers
16
17
  */
@@ -46,7 +47,7 @@ export const TIER_METADATA = {
46
47
  ],
47
48
  typicalLatencyMs: 500,
48
49
  relativeCost: 1,
49
- exampleModels: ['claude-haiku-4-5-20251001', 'gpt-4o-mini', 'gemini-flash'],
50
+ exampleModels: [CLAUDE_TIER_MODELS[1], 'gpt-4o-mini', 'gemini-flash'],
50
51
  requiresNetwork: true,
51
52
  complexityRange: [10, 35],
52
53
  },
@@ -63,7 +64,7 @@ export const TIER_METADATA = {
63
64
  ],
64
65
  typicalLatencyMs: 3000,
65
66
  relativeCost: 2,
66
- exampleModels: ['claude-sonnet-4-6', 'gpt-4o', 'gemini-pro'],
67
+ exampleModels: [DEFAULT_SONNET_MODEL, 'gpt-4o', 'gemini-pro'],
67
68
  requiresNetwork: true,
68
69
  complexityRange: [35, 70],
69
70
  },
@@ -79,7 +80,7 @@ export const TIER_METADATA = {
79
80
  ],
80
81
  typicalLatencyMs: 7000,
81
82
  relativeCost: 3,
82
- exampleModels: ['claude-sonnet-4-6'],
83
+ exampleModels: [DEFAULT_SONNET_MODEL],
83
84
  requiresNetwork: true,
84
85
  complexityRange: [60, 85],
85
86
  },
@@ -96,7 +97,7 @@ export const TIER_METADATA = {
96
97
  ],
97
98
  typicalLatencyMs: 5000,
98
99
  relativeCost: 4,
99
- exampleModels: ['claude-opus-4-7', 'gpt-4-turbo'],
100
+ exampleModels: [DEFAULT_OPUS_MODEL, 'gpt-4-turbo'],
100
101
  requiresNetwork: true,
101
102
  complexityRange: [75, 100],
102
103
  },
@@ -177,10 +178,7 @@ export const DEFAULT_ROUTER_CONFIG = {
177
178
  fallbackTier: 2, // Sonnet as fallback
178
179
  tierModels: {
179
180
  0: 'agent-booster',
180
- 1: 'claude-haiku-4-5-20251001',
181
- 2: 'claude-sonnet-4-6',
182
- 3: 'claude-sonnet-4-6',
183
- 4: 'claude-opus-4-7',
181
+ ...CLAUDE_TIER_MODELS,
184
182
  },
185
183
  };
186
184
  // ============================================================================
@@ -155,15 +155,6 @@ export class EnhancedReasoningBankAdapter {
155
155
  ...guidance.suggestedActions.map(a => `Action: ${a}`),
156
156
  ...result.guidance,
157
157
  ];
158
- this.stats.tokensSavedEstimate += guidance.estimatedTokenSavings;
159
- this.stats.experiencesApplied++;
160
- // Record application of each source experience for reuse tracking
161
- for (const src of guidance.sourceExperiences) {
162
- this.experienceReplay.recordApplication(src.id, request.task, true, // success=true at routing time; updated later via recordOutcome
163
- Math.round(guidance.estimatedTokenSavings)).catch(err => {
164
- console.warn(`[EnhancedAdapter] Failed to record experience application: ${err}`);
165
- });
166
- }
167
158
  }
168
159
  }
169
160
  // Find similar past trajectories
@@ -265,17 +256,8 @@ export class EnhancedReasoningBankAdapter {
265
256
  if (!this.experienceReplay) {
266
257
  return null;
267
258
  }
268
- const guidance = await this.experienceReplay.getGuidance(task, domain);
269
- if (guidance) {
270
- this.stats.experiencesApplied++;
271
- // Record application for reuse tracking (experience_applications table)
272
- for (const src of guidance.sourceExperiences) {
273
- this.experienceReplay.recordApplication(src.id, task, true, Math.round(guidance.estimatedTokenSavings)).catch(err => {
274
- console.warn(`[EnhancedAdapter] Failed to record experience application: ${err}`);
275
- });
276
- }
277
- }
278
- return guidance;
259
+ // Retrieving guidance does not establish that it was applied successfully.
260
+ return this.experienceReplay.getGuidance(task, domain);
279
261
  }
280
262
  /**
281
263
  * Record that an experience was applied
@@ -290,6 +272,7 @@ export class EnhancedReasoningBankAdapter {
290
272
  if (!this.experienceReplay)
291
273
  return;
292
274
  await this.experienceReplay.recordApplication(experienceId, task, success, tokensSaved);
275
+ this.stats.experiencesApplied++;
293
276
  this.stats.tokensSavedEstimate += tokensSaved;
294
277
  }
295
278
  // ============================================================================
@@ -19,6 +19,10 @@ import { WasmNotLoadedError, DEFAULT_COHERENCE_LOGGER } from '../types.js';
19
19
  // ============================================================================
20
20
  // WASM Engine Wrapper
21
21
  // ============================================================================
22
+ // Dense restriction maps are copied into WASM. Bound each native call to
23
+ // 32 MiB of matrix cells and 256 MiB of cumulative cells per operation.
24
+ const MAX_NATIVE_BATCH_CELLS = 4 * 1024 * 1024;
25
+ const MAX_NATIVE_TOTAL_CELLS = 32 * 1024 * 1024;
22
26
  /**
23
27
  * Creates an ICohomologyEngine wrapper around the raw WASM engine
24
28
  * Translates from snake_case adapter interface to camelCase WASM API
@@ -53,19 +57,78 @@ function createCohomologyEngineWrapper(rawEngine) {
53
57
  // WASM sheaf cohomology expects:
54
58
  // { nodes: [{id: number, label: string, section: number[], weight: number}], edges: [...] }
55
59
  // "section" is the sheaf theory term for local data at each stalk
56
- const buildGraph = () => ({
57
- nodes: Array.from(nodes.entries()).map(([id, data]) => ({
58
- id: getOrCreateIndex(id), // Convert string ID to numeric index
59
- label: id, // Original string ID as label
60
- section: Array.from(data.embedding), // Sheaf section = the embedding data
61
- weight: 1.0, // Node weight (importance) - default to 1.0
62
- })),
63
- edges: edges.map(e => ({
64
- source: getOrCreateIndex(e.source), // Convert to numeric
65
- target: getOrCreateIndex(e.target), // Convert to numeric
66
- weight: e.weight,
67
- })),
68
- });
60
+ function* buildGraphs() {
61
+ // Native edge endpoints address the current nodes array by position, not
62
+ // node.id. Rebuild indices after removals or edges added before nodes.
63
+ stringToIndex.clear();
64
+ indexToString.clear();
65
+ nextIndex = 0;
66
+ const dimension = nodes.values().next().value?.embedding.length;
67
+ const graphNodes = Array.from(nodes.entries()).map(([id, data]) => {
68
+ if (data.embedding.length !== dimension) {
69
+ throw new RangeError('Cohomology graphs require matching embedding dimensions');
70
+ }
71
+ return {
72
+ id: getOrCreateIndex(id),
73
+ label: id,
74
+ section: Array.from(data.embedding),
75
+ weight: 1.0,
76
+ };
77
+ });
78
+ // Validate the complete operation before allocating any dense matrices or
79
+ // calling WASM. A rejected graph must never yield partial energy/results.
80
+ let totalCells = 0;
81
+ const preparedEdges = edges.map(edge => {
82
+ const source = nodes.get(edge.source);
83
+ const target = nodes.get(edge.target);
84
+ if (!source || !target) {
85
+ throw new Error(`Cohomology edge references an unknown node: ${edge.source} -> ${edge.target}`);
86
+ }
87
+ const dimension = source.embedding.length;
88
+ const cells = dimension * dimension;
89
+ if (cells > MAX_NATIVE_BATCH_CELLS) {
90
+ throw new RangeError(`Cohomology restriction map exceeds ${MAX_NATIVE_BATCH_CELLS} cells`);
91
+ }
92
+ totalCells += cells;
93
+ if (totalCells > MAX_NATIVE_TOTAL_CELLS) {
94
+ throw new RangeError(`Cohomology graph exceeds ${MAX_NATIVE_TOTAL_CELLS} restriction-map cells`);
95
+ }
96
+ return { ...edge, dimension, cells };
97
+ });
98
+ let batch = [];
99
+ let batchCells = 0;
100
+ const restrictionMaps = new Map();
101
+ for (const edge of preparedEdges) {
102
+ if (batchCells + edge.cells > MAX_NATIVE_BATCH_CELLS) {
103
+ yield { nodes: graphNodes, edges: batch };
104
+ batch = [];
105
+ batchCells = 0;
106
+ restrictionMaps.clear();
107
+ }
108
+ let restrictionMap = restrictionMaps.get(edge.dimension);
109
+ if (!restrictionMap) {
110
+ // Sections share embedding coordinates; use a row-major identity map.
111
+ // Sharing the read-only JS matrix avoids per-edge JS allocations.
112
+ restrictionMap = Array(edge.cells).fill(0);
113
+ for (let i = 0; i < edge.dimension; i++) {
114
+ restrictionMap[i * edge.dimension + i] = 1;
115
+ }
116
+ restrictionMaps.set(edge.dimension, restrictionMap);
117
+ }
118
+ batch.push({
119
+ source: stringToIndex.get(edge.source),
120
+ target: stringToIndex.get(edge.target),
121
+ weight: edge.weight,
122
+ restriction_map: restrictionMap,
123
+ source_dim: edge.dimension,
124
+ target_dim: edge.dimension,
125
+ });
126
+ batchCells += edge.cells;
127
+ }
128
+ if (batch.length > 0 || preparedEdges.length === 0) {
129
+ yield { nodes: graphNodes, edges: batch };
130
+ }
131
+ }
69
132
  return {
70
133
  add_node(id, embedding) {
71
134
  nodes.set(id, { embedding });
@@ -79,8 +142,7 @@ function createCohomologyEngineWrapper(rawEngine) {
79
142
  },
80
143
  remove_node(id) {
81
144
  nodes.delete(id);
82
- // Note: We don't remove from index mappings to maintain consistency
83
- // (indices are reused to avoid graph corruption)
145
+ // Native indices are rebuilt from current node order on serialization.
84
146
  // Remove associated edges
85
147
  for (let i = edges.length - 1; i >= 0; i--) {
86
148
  if (edges[i].source === id || edges[i].target === id) {
@@ -94,22 +156,30 @@ function createCohomologyEngineWrapper(rawEngine) {
94
156
  edges.splice(idx, 1);
95
157
  },
96
158
  sheaf_laplacian_energy() {
97
- const graph = buildGraph();
98
- return rawEngine.consistencyEnergy(graph);
159
+ // Native consistency energy is the sum of independent edge energies.
160
+ let energy = 0;
161
+ for (const graph of buildGraphs()) {
162
+ energy += rawEngine.consistencyEnergy(graph);
163
+ }
164
+ return energy;
99
165
  },
100
166
  detect_contradictions(threshold) {
101
- const graph = buildGraph();
102
- const obstructions = rawEngine.detectObstructions(graph);
103
- if (!obstructions)
104
- return [];
105
- return obstructions
106
- .filter(o => o.energy > threshold)
107
- .map(o => ({
108
- node1: getStringId(o.node1), // Convert back to string ID
109
- node2: getStringId(o.node2), // Convert back to string ID
110
- severity: o.energy,
111
- distance: o.energy,
112
- }));
167
+ const contradictions = [];
168
+ for (const graph of buildGraphs()) {
169
+ const obstructions = rawEngine.detectObstructions(graph);
170
+ for (const obstruction of obstructions ?? []) {
171
+ if (obstruction.magnitude > threshold) {
172
+ contradictions.push({
173
+ node1: getStringId(obstruction.source_node),
174
+ node2: getStringId(obstruction.target_node),
175
+ severity: obstruction.magnitude,
176
+ distance: obstruction.magnitude,
177
+ });
178
+ }
179
+ }
180
+ }
181
+ // Preserve the native global descending-magnitude order across batches.
182
+ return contradictions.sort((a, b) => b.distance - a.distance);
113
183
  },
114
184
  clear() {
115
185
  nodes.clear();
@@ -297,7 +367,7 @@ export class CohomologyAdapter {
297
367
  nodeIds: [raw.node1, raw.node2],
298
368
  severity: this.severityFromDistance(raw.severity),
299
369
  description: this.generateContradictionDescription(raw),
300
- confidence: 1 - raw.distance, // Higher distance = lower confidence it's a true contradiction
370
+ confidence: Math.max(0, 1 - raw.distance), // Native magnitudes can exceed one
301
371
  resolution: this.suggestResolution(raw),
302
372
  };
303
373
  }
@@ -20,7 +20,7 @@
20
20
  import { existsSync, mkdirSync, writeFileSync, readFileSync } from 'fs';
21
21
  import { join, resolve } from 'path';
22
22
  import { safeJsonParse } from '../../shared/safe-json.js';
23
- import { sha256, queryAll, queryIterator, countRows, domainFilterForColumn, writeJsonl, writeJsonlStreaming, readJsonl, ensureTargetTables, serializeRowBlobs, deserializeRowBlobs, mergeGenericRow, mergeAppendOnlyRow, TABLE_CONFIGS, PK_COLUMNS, CONFIDENCE_COLUMNS, TIMESTAMP_COLUMNS, } from './brain-shared.js';
23
+ import { sha256, queryAll, queryIterator, countRows, domainFilterForColumn, writeJsonl, writeJsonlStreaming, readJsonl, runImportTransaction, serializeRowBlobs, deserializeRowBlobs, mergeGenericRow, remapPatternReferences, mergeAppendOnlyRow, TABLE_CONFIGS, PK_COLUMNS, CONFIDENCE_COLUMNS, TIMESTAMP_COLUMNS, } from './brain-shared.js';
24
24
  // ============================================================================
25
25
  // Internal helpers
26
26
  // ============================================================================
@@ -219,20 +219,13 @@ export function importBrain(db, containerPath, options) {
219
219
  'The export may have been tampered with or corrupted.');
220
220
  }
221
221
  const configs = tablesToImport(manifest.version);
222
- if (options.dryRun) {
223
- let total = 0;
224
- for (const config of configs) {
225
- const rows = readJsonl(join(dir, config.fileName), safeJsonParse);
226
- total += rows.length;
227
- }
228
- return { imported: total, skipped: 0, conflicts: 0 };
229
- }
230
- ensureTargetTables(db);
231
222
  let imported = 0;
232
223
  let skipped = 0;
233
224
  let conflicts = 0;
234
225
  // Wrap entire import in a transaction for atomicity (Risk #3 from plan)
235
- const importAll = db.transaction(() => {
226
+ const importAll = () => {
227
+ const patternIds = new Map();
228
+ const patternWinners = new Map();
236
229
  for (const config of configs) {
237
230
  const filePath = join(dir, config.fileName);
238
231
  let rows = readJsonl(filePath, safeJsonParse);
@@ -240,7 +233,8 @@ export function importBrain(db, containerPath, options) {
240
233
  if (config.blobColumns && config.blobColumns.length > 0) {
241
234
  rows = rows.map(r => deserializeRowBlobs(r, config.blobColumns));
242
235
  }
243
- for (const row of rows) {
236
+ for (const originalRow of rows) {
237
+ const row = remapPatternReferences(originalRow, patternIds);
244
238
  let result;
245
239
  if (config.dedupColumns && config.dedupColumns.length > 0) {
246
240
  // Append-only tables (witness_chain, qe_pattern_usage)
@@ -251,15 +245,15 @@ export function importBrain(db, containerPath, options) {
251
245
  const idCol = PK_COLUMNS[config.tableName] || 'id';
252
246
  const tsCol = TIMESTAMP_COLUMNS[config.tableName];
253
247
  const confCol = CONFIDENCE_COLUMNS[config.tableName];
254
- result = mergeGenericRow(db, config.tableName, row, idCol, options.mergeStrategy, tsCol, confCol);
248
+ result = mergeGenericRow(db, config.tableName, row, idCol, options.mergeStrategy, tsCol, confCol, patternIds, patternWinners, originalRow.pattern_id);
255
249
  }
256
250
  imported += result.imported;
257
251
  skipped += result.skipped;
258
252
  conflicts += result.conflicts;
259
253
  }
260
254
  }
261
- });
262
- importAll();
255
+ };
256
+ runImportTransaction(db, options.dryRun ?? false, importAll);
263
257
  return { imported, skipped, conflicts };
264
258
  }
265
259
  // ============================================================================
@@ -6,7 +6,7 @@
6
6
  import { existsSync, readdirSync, renameSync, statSync, unlinkSync, writeFileSync } from 'fs';
7
7
  import { basename, dirname, join, resolve } from 'path';
8
8
  import { createRvfStore, openRvfStore, openRvfStoreReadonly, isRvfNativeAvailable, } from './rvf-native-adapter.js';
9
- import { sha256, tableExists, queryAll, domainFilterForColumn, ensureTargetTables, mergeGenericRow, mergeAppendOnlyRow, TABLE_CONFIGS, TABLE_BLOB_COLUMNS, PK_COLUMNS, CONFIDENCE_COLUMNS, TIMESTAMP_COLUMNS, serializeRowBlobs, deserializeRowBlobs, } from './brain-shared.js';
9
+ import { sha256, tableExists, queryAll, domainFilterForColumn, runImportTransaction, mergeGenericRow, remapPatternReferences, mergeAppendOnlyRow, TABLE_CONFIGS, TABLE_BLOB_COLUMNS, PK_COLUMNS, CONFIDENCE_COLUMNS, TIMESTAMP_COLUMNS, serializeRowBlobs, deserializeRowBlobs, } from './brain-shared.js';
10
10
  // --- Export ---
11
11
  /**
12
12
  * Sidecar suffixes that make up a complete store on disk. `''` is the store
@@ -355,7 +355,7 @@ export function importBrainFromRvf(db, rvfPath, options) {
355
355
  throw new Error(`RVF file not found: ${filePath}`);
356
356
  }
357
357
  // Open read-write so compact() can reclaim space after conflict resolution (4.5)
358
- const rvf = openRvfStore(filePath);
358
+ const rvf = options.dryRun ? openRvfStoreReadonly(filePath) : openRvfStore(filePath);
359
359
  try {
360
360
  // --- Verify HNSW index integrity before importing (4.1) ---
361
361
  // Fresh RVF files report valid=false with totalEntries=0 and no errors —
@@ -379,22 +379,6 @@ export function importBrainFromRvf(db, rvfPath, options) {
379
379
  catch (parseErr) {
380
380
  throw new Error(`Failed to parse brain kernel data as JSON: ${parseErr instanceof Error ? parseErr.message : parseErr}`);
381
381
  }
382
- if (options.dryRun) {
383
- let total = 0;
384
- if (brainData.tables) {
385
- for (const rows of Object.values(brainData.tables)) {
386
- total += (rows?.length ?? 0);
387
- }
388
- }
389
- else {
390
- total = (brainData.patterns?.length ?? 0) +
391
- (brainData.qValues?.length ?? 0) +
392
- (brainData.dreamInsights?.length ?? 0) +
393
- (brainData.witnessChain?.length ?? 0);
394
- }
395
- return { imported: total, skipped: 0, conflicts: 0, embeddingsRestored: 0 };
396
- }
397
- ensureTargetTables(db);
398
382
  let imported = 0;
399
383
  let skipped = 0;
400
384
  let conflicts = 0;
@@ -414,7 +398,9 @@ export function importBrainFromRvf(db, rvfPath, options) {
414
398
  }
415
399
  }
416
400
  // Wrap entire import in a transaction for atomicity (Risk #3 from plan)
417
- const importAll = db.transaction(() => {
401
+ const importAll = () => {
402
+ const patternIds = new Map();
403
+ const patternWinners = new Map();
418
404
  // Import in TABLE_CONFIGS order (FK-aware)
419
405
  for (const config of TABLE_CONFIGS) {
420
406
  let rows = tablesMap[config.tableName];
@@ -424,14 +410,9 @@ export function importBrainFromRvf(db, rvfPath, options) {
424
410
  const blobCols = TABLE_BLOB_COLUMNS[config.tableName];
425
411
  if (blobCols && blobCols.length > 0) {
426
412
  rows = rows.map(r => deserializeRowBlobs(r, blobCols));
427
- for (const row of rows) {
428
- for (const col of blobCols) {
429
- if (row[col] instanceof Buffer)
430
- embeddingsRestored++;
431
- }
432
- }
433
413
  }
434
- for (const row of rows) {
414
+ for (const originalRow of rows) {
415
+ const row = remapPatternReferences(originalRow, patternIds);
435
416
  let result;
436
417
  if (config.dedupColumns && config.dedupColumns.length > 0) {
437
418
  result = mergeAppendOnlyRow(db, config.tableName, row, config.dedupColumns, config.preserveId);
@@ -440,17 +421,23 @@ export function importBrainFromRvf(db, rvfPath, options) {
440
421
  const idCol = PK_COLUMNS[config.tableName] || 'id';
441
422
  const tsCol = TIMESTAMP_COLUMNS[config.tableName];
442
423
  const confCol = CONFIDENCE_COLUMNS[config.tableName];
443
- result = mergeGenericRow(db, config.tableName, row, idCol, options.mergeStrategy, tsCol, confCol);
424
+ result = mergeGenericRow(db, config.tableName, row, idCol, options.mergeStrategy, tsCol, confCol, patternIds, patternWinners, originalRow.pattern_id);
425
+ }
426
+ if (result.imported) {
427
+ for (const col of blobCols ?? []) {
428
+ if (row[col] instanceof Buffer)
429
+ embeddingsRestored++;
430
+ }
444
431
  }
445
432
  imported += result.imported;
446
433
  skipped += result.skipped;
447
434
  conflicts += result.conflicts;
448
435
  }
449
436
  }
450
- });
451
- importAll();
437
+ };
438
+ runImportTransaction(db, options.dryRun ?? false, importAll);
452
439
  // Compact after conflict resolution (best-effort)
453
- if (conflicts > 0) {
440
+ if (!options.dryRun && conflicts > 0) {
454
441
  try {
455
442
  rvf.compact();
456
443
  }
@@ -131,11 +131,13 @@ export declare function writeJsonl(filePath: string, rows: unknown[]): void;
131
131
  */
132
132
  export declare function writeJsonlStreaming(filePath: string, rows: Iterable<unknown>, transform?: (row: unknown) => unknown): number;
133
133
  export declare function readJsonl<T = unknown>(filePath: string, parser?: (line: string) => T): T[];
134
+ /** Remap relational pattern references without rewriting signed witness payloads. */
135
+ export declare function remapPatternReferences(row: Record<string, unknown>, patternIds: ReadonlyMap<string, string>): Record<string, unknown>;
134
136
  /**
135
137
  * Generic merge for tables with a TEXT PRIMARY KEY.
136
138
  * Uses strategy-based conflict resolution identical to the pattern-specific merges.
137
139
  */
138
- export declare function mergeGenericRow(db: Database.Database, tableName: string, row: Record<string, unknown>, idColumn: string, strategy: MergeStrategy, timestampColumn?: string, confidenceColumn?: string): MergeResult;
140
+ export declare function mergeGenericRow(db: Database.Database, tableName: string, row: Record<string, unknown>, idColumn: string, strategy: MergeStrategy, timestampColumn?: string, confidenceColumn?: string, patternIds?: Map<string, string>, patternWinners?: Map<string, string | null>, originalPatternId?: unknown): MergeResult;
139
141
  /**
140
142
  * Merge for append-only tables (AUTOINCREMENT PK).
141
143
  * Deduplicates by checking composite columns; inserts if no match found.
@@ -154,4 +156,6 @@ export declare function updateDreamInsight(db: Database.Database, ins: DreamInsi
154
156
  export declare function insertWitnessEntry(db: Database.Database, entry: WitnessRow): void;
155
157
  /** Ensure all brain-related tables exist in the target database. */
156
158
  export declare function ensureTargetTables(db: Database.Database): void;
159
+ /** Execute the real importer; dry runs roll back rows and schema, including nested calls. */
160
+ export declare function runImportTransaction(db: Database.Database, dryRun: boolean, importer: () => void): void;
157
161
  //# sourceMappingURL=brain-shared.d.ts.map
@@ -190,6 +190,16 @@ export function readJsonl(filePath, parser = (line) => JSON.parse(line)) {
190
190
  return [];
191
191
  return content.split('\n').map(parser);
192
192
  }
193
+ /** Remap relational pattern references without rewriting signed witness payloads. */
194
+ export function remapPatternReferences(row, patternIds) {
195
+ const mapped = { ...row };
196
+ for (const column of ['pattern_id', 'source_pattern_id', 'target_pattern_id']) {
197
+ const id = mapped[column];
198
+ if (typeof id === 'string' && patternIds.has(id))
199
+ mapped[column] = patternIds.get(id);
200
+ }
201
+ return mapped;
202
+ }
193
203
  // --- Generic merge for TEXT PK tables ---
194
204
  /** Dynamically insert a row into any table using its column keys. */
195
205
  function dynamicInsert(db, tableName, row) {
@@ -212,18 +222,57 @@ function dynamicUpdate(db, tableName, row, idColumn) {
212
222
  * Generic merge for tables with a TEXT PRIMARY KEY.
213
223
  * Uses strategy-based conflict resolution identical to the pattern-specific merges.
214
224
  */
215
- export function mergeGenericRow(db, tableName, row, idColumn, strategy, timestampColumn, confidenceColumn) {
225
+ export function mergeGenericRow(db, tableName, row, idColumn, strategy, timestampColumn, confidenceColumn, patternIds, patternWinners, originalPatternId) {
216
226
  const validated = validateTableName(tableName);
227
+ const incomingId = String(row.id);
217
228
  if (!tableExists(db, validated)) {
218
229
  dynamicInsert(db, validated, row);
219
230
  return { imported: 1, skipped: 0, conflicts: 0 };
220
231
  }
221
- const existing = db.prepare(`SELECT * FROM ${validated} WHERE ${idColumn} = ?`)
232
+ let existing = db.prepare(`SELECT * FROM ${validated} WHERE ${idColumn} = ?`)
222
233
  .get(row[idColumn]);
234
+ if (!existing && tableName === 'qe_patterns') {
235
+ existing = db.prepare('SELECT * FROM qe_patterns WHERE name = ? AND qe_domain = ? AND pattern_type = ?').get(row.name, row.qe_domain, row.pattern_type);
236
+ }
237
+ if (existing && tableName === 'qe_patterns') {
238
+ // Keep the destination identity: existing children must remain attached,
239
+ // and incoming children are remapped after all patterns have merged.
240
+ if (typeof row.id === 'string' && typeof existing.id === 'string') {
241
+ patternIds?.set(row.id, existing.id);
242
+ }
243
+ row = { ...row, id: existing.id };
244
+ if (!patternWinners?.has(String(existing.id)))
245
+ patternWinners?.set(String(existing.id), null);
246
+ }
247
+ if (tableName === 'qe_pattern_embeddings' && patternWinners?.has(String(row.pattern_id))) {
248
+ if (patternWinners.get(String(row.pattern_id)) !== originalPatternId) {
249
+ return { imported: 0, skipped: 1, conflicts: existing ? 1 : 0 };
250
+ }
251
+ if (existing)
252
+ dynamicUpdate(db, validated, row, idColumn);
253
+ else
254
+ dynamicInsert(db, validated, row);
255
+ return { imported: 1, skipped: 0, conflicts: existing ? 1 : 0 };
256
+ }
223
257
  if (!existing) {
258
+ if (tableName === 'qe_patterns')
259
+ patternWinners?.set(String(row.id), incomingId);
224
260
  dynamicInsert(db, validated, row);
225
261
  return { imported: 1, skipped: 0, conflicts: 0 };
226
262
  }
263
+ const replaceExisting = () => {
264
+ if (tableName === 'qe_patterns' && patternWinners) {
265
+ patternWinners.set(String(row.id), incomingId);
266
+ // An embedding describes pattern content, not its confidence or usage.
267
+ // Keep a valid vector for metadata-only updates when no vector is supplied.
268
+ const contentColumns = ['name', 'description', 'pattern_type', 'qe_domain', 'domain', 'template_json', 'context_json'];
269
+ if (contentColumns.some(column => Object.hasOwn(row, column) && (row[column] ?? null) !== (existing[column] ?? null)) &&
270
+ tableExists(db, 'qe_pattern_embeddings')) {
271
+ db.prepare('DELETE FROM qe_pattern_embeddings WHERE pattern_id = ?').run(row.id);
272
+ }
273
+ }
274
+ dynamicUpdate(db, validated, row, idColumn);
275
+ };
227
276
  switch (strategy) {
228
277
  case 'skip-conflicts':
229
278
  return { imported: 0, skipped: 1, conflicts: 1 };
@@ -232,7 +281,7 @@ export function mergeGenericRow(db, tableName, row, idColumn, strategy, timestam
232
281
  const existingTime = existing[ts] || '';
233
282
  const incomingTime = row[ts] || '';
234
283
  if (incomingTime > existingTime) {
235
- dynamicUpdate(db, validated, row, idColumn);
284
+ replaceExisting();
236
285
  return { imported: 1, skipped: 0, conflicts: 1 };
237
286
  }
238
287
  return { imported: 0, skipped: 1, conflicts: 1 };
@@ -241,7 +290,7 @@ export function mergeGenericRow(db, tableName, row, idColumn, strategy, timestam
241
290
  const cc = confidenceColumn || 'confidence';
242
291
  if (typeof row[cc] === 'number' && typeof existing[cc] === 'number') {
243
292
  if (row[cc] > existing[cc]) {
244
- dynamicUpdate(db, validated, row, idColumn);
293
+ replaceExisting();
245
294
  return { imported: 1, skipped: 0, conflicts: 1 };
246
295
  }
247
296
  }
@@ -349,4 +398,21 @@ export function insertWitnessEntry(db, entry) {
349
398
  export function ensureTargetTables(db) {
350
399
  ensureAllBrainTables(db);
351
400
  }
401
+ /** Execute the real importer; dry runs roll back rows and schema, including nested calls. */
402
+ export function runImportTransaction(db, dryRun, importer) {
403
+ const rollback = Symbol('brain import dry run');
404
+ const transaction = db.transaction(() => {
405
+ ensureTargetTables(db);
406
+ importer();
407
+ if (dryRun)
408
+ throw rollback;
409
+ });
410
+ try {
411
+ transaction();
412
+ }
413
+ catch (error) {
414
+ if (error !== rollback)
415
+ throw error;
416
+ }
417
+ }
352
418
  //# sourceMappingURL=brain-shared.js.map