agentic-qe 3.15.14 → 3.15.16

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 (513) hide show
  1. package/.claude/agents/v3/templates/qx-report-template.html +1 -1
  2. package/.claude/skills/skills-manifest.json +1 -1
  3. package/CHANGELOG.md +136 -0
  4. package/assets/agents/v3/templates/qx-report-template.html +1 -1
  5. package/assets/skills/skills-manifest.json +1 -1
  6. package/dist/audit/witness-chain.d.ts +7 -0
  7. package/dist/audit/witness-chain.js +10 -0
  8. package/dist/cli/bundle.js +6 -6
  9. package/dist/cli/chunks/adapter-6CQ2PIP5.js +2 -0
  10. package/dist/cli/chunks/agent-booster-wasm-45NWEKVS.js +2 -0
  11. package/dist/cli/chunks/{agent-handler-P3IY7XEE.js → agent-handler-LVHMYFEF.js} +2 -2
  12. package/dist/cli/chunks/{agent-memory-branch-WWKC2H3G.js → agent-memory-branch-YDWOJFEQ.js} +2 -2
  13. package/dist/cli/chunks/aqe-learning-engine-73RR52VS.js +2 -0
  14. package/dist/cli/chunks/{arena-EIV5OALF.js → arena-CZKHXDDS.js} +2 -2
  15. package/dist/cli/chunks/{arena-4BMFF6BS.js → arena-ELDZH3CZ.js} +4 -4
  16. package/dist/cli/chunks/{audit-DNTI453H.js → audit-5MT4T47Z.js} +3 -3
  17. package/dist/cli/chunks/base-SMCMMVGP.js +2 -0
  18. package/dist/cli/chunks/{better-sqlite3-TQBQGNC6.js → better-sqlite3-6TGYPC2B.js} +2 -2
  19. package/dist/cli/chunks/{brain-handler-HY57CNAO.js → brain-handler-HQWZFO52.js} +3 -3
  20. package/dist/cli/chunks/{branch-enumerator-THPMZPHQ.js → branch-enumerator-WVILM4SO.js} +2 -2
  21. package/dist/cli/chunks/{browser-O6JJOZCK.js → browser-RX5ALU3H.js} +2 -2
  22. package/dist/cli/chunks/browser-workflow-A2MEZ66K.js +2 -0
  23. package/dist/cli/chunks/{chunk-CIINJHOX.js → chunk-24OX5TQJ.js} +1 -1
  24. package/dist/cli/chunks/{chunk-6P4Q4RTC.js → chunk-24QHCVX6.js} +1 -1
  25. package/dist/cli/chunks/{chunk-U6IOQKCT.js → chunk-2H4XH6FT.js} +2 -2
  26. package/dist/cli/chunks/{chunk-OGEIHS76.js → chunk-2YZ4G6NW.js} +1 -1
  27. package/dist/cli/chunks/chunk-32BPDLRZ.js +27 -0
  28. package/dist/cli/chunks/{chunk-5PLBQZ5J.js → chunk-32GN3JKR.js} +1 -1
  29. package/dist/cli/chunks/{chunk-AJVLVF7V.js → chunk-3HD7E6HN.js} +2 -2
  30. package/dist/cli/chunks/{chunk-X7CUI7KH.js → chunk-4D4DENG6.js} +2 -2
  31. package/dist/cli/chunks/{chunk-E2JLAW3U.js → chunk-4LQFBY5L.js} +6 -6
  32. package/dist/cli/chunks/{chunk-E3QIQMMN.js → chunk-4NFQLP6R.js} +1 -1
  33. package/dist/cli/chunks/{chunk-7Y3LXH57.js → chunk-525CFDUE.js} +2 -2
  34. package/dist/cli/chunks/chunk-5B5QPCNU.js +65 -0
  35. package/dist/cli/chunks/{chunk-X6Q2N5S5.js → chunk-5JZRZI4S.js} +2 -2
  36. package/dist/cli/chunks/{chunk-MB4UKUBV.js → chunk-5LAVKGLH.js} +2 -2
  37. package/dist/cli/chunks/chunk-5NNNEWLS.js +755 -0
  38. package/dist/cli/chunks/{chunk-NKOLILT7.js → chunk-5PBLPQ5T.js} +2 -2
  39. package/dist/cli/chunks/chunk-5QO3R3TU.js +6 -0
  40. package/dist/cli/chunks/{chunk-7T6L3LFN.js → chunk-5SPCGMBB.js} +2 -2
  41. package/dist/cli/chunks/{chunk-2QLE6NDW.js → chunk-5V3TI2LG.js} +1 -1
  42. package/dist/cli/chunks/{chunk-A2T56XVL.js → chunk-5VZL4UVN.js} +2 -2
  43. package/dist/cli/chunks/{chunk-TWOV3I3A.js → chunk-63GMRQ25.js} +1 -1
  44. package/dist/cli/chunks/{chunk-YGOSSVY5.js → chunk-63ZKI4PX.js} +6 -6
  45. package/dist/cli/chunks/{chunk-FHPNWHY7.js → chunk-67Z5R7RJ.js} +2 -2
  46. package/dist/cli/chunks/{chunk-PCQZIAXB.js → chunk-6DPYNAOK.js} +2 -2
  47. package/dist/cli/chunks/{chunk-WCM6WE7G.js → chunk-6ICX3FEG.js} +3 -3
  48. package/dist/cli/chunks/{chunk-JB7R77SH.js → chunk-6XXZDV2C.js} +2 -2
  49. package/dist/cli/chunks/{chunk-FJOIBZUB.js → chunk-6ZBXSOX6.js} +2 -2
  50. package/dist/cli/chunks/{chunk-WZQADC5R.js → chunk-72XSEQMW.js} +2 -2
  51. package/dist/cli/chunks/{chunk-AYLEH2UF.js → chunk-7TE5ONQQ.js} +1 -1
  52. package/dist/cli/chunks/{chunk-7QUSNBAA.js → chunk-A5GBXCP5.js} +2 -2
  53. package/dist/cli/chunks/{chunk-7724KXM2.js → chunk-AAMLQ2LF.js} +3 -3
  54. package/dist/cli/chunks/chunk-AG2EWGXS.js +21 -0
  55. package/dist/cli/chunks/{chunk-2UZBLC5H.js → chunk-AGRV5B3T.js} +2 -2
  56. package/dist/cli/chunks/{chunk-V6SE2ZU2.js → chunk-AJMJNQMP.js} +1 -1
  57. package/dist/cli/chunks/{chunk-2HPNGK7A.js → chunk-AR67RJPY.js} +2 -2
  58. package/dist/cli/chunks/{chunk-G7HGUQAE.js → chunk-ASEOFRIG.js} +2 -2
  59. package/dist/cli/chunks/{chunk-7TH4PJSU.js → chunk-BEKDKVQT.js} +2 -2
  60. package/dist/cli/chunks/{chunk-M5JEA6ZY.js → chunk-BY5OF7OH.js} +2 -2
  61. package/dist/cli/chunks/{chunk-OLUOVNUF.js → chunk-C5FP5GW3.js} +2 -2
  62. package/dist/cli/chunks/{chunk-R5RRWLRI.js → chunk-C6D5AHBO.js} +2 -2
  63. package/dist/cli/chunks/{chunk-K7GFYFBO.js → chunk-CAKMOVZ6.js} +2 -2
  64. package/dist/cli/chunks/{chunk-6NIGSY5L.js → chunk-CEYSYSK5.js} +2 -2
  65. package/dist/cli/chunks/{chunk-U4TML2VD.js → chunk-CGGUM2YJ.js} +2 -2
  66. package/dist/cli/chunks/{chunk-YE54T2NQ.js → chunk-CJSHWQXP.js} +2 -2
  67. package/dist/cli/chunks/{chunk-7SQTLUEN.js → chunk-CRPIYUTJ.js} +2 -2
  68. package/dist/cli/chunks/{chunk-65EE2EST.js → chunk-D6COXLYE.js} +2 -2
  69. package/dist/cli/chunks/{chunk-4WLIOPHX.js → chunk-DTMAS2GB.js} +2 -2
  70. package/dist/cli/chunks/{chunk-E7QTWGPI.js → chunk-DVYHMDFR.js} +470 -411
  71. package/dist/cli/chunks/chunk-DXD6K2ZP.js +3 -0
  72. package/dist/cli/chunks/{chunk-HSDWPQQY.js → chunk-E3D4GPLP.js} +3 -3
  73. package/dist/cli/chunks/{chunk-JJHLGGPP.js → chunk-EA4YQVKS.js} +1 -1
  74. package/dist/cli/chunks/{chunk-EIEEST4T.js → chunk-EGYE5UPQ.js} +2 -2
  75. package/dist/cli/chunks/{chunk-O756AOUX.js → chunk-EK7OLYOZ.js} +2 -2
  76. package/dist/cli/chunks/{chunk-57DRT6UA.js → chunk-F742SZAX.js} +2 -2
  77. package/dist/cli/chunks/{chunk-6OI5SK7M.js → chunk-FBDVGRSC.js} +1 -1
  78. package/dist/cli/chunks/{chunk-H3C5FJRH.js → chunk-FDDC72IA.js} +2 -2
  79. package/dist/cli/chunks/{chunk-IQRPR4KB.js → chunk-FL64OUBA.js} +2 -2
  80. package/dist/cli/chunks/{chunk-BNG4J3CE.js → chunk-FLNAW7C4.js} +2 -2
  81. package/dist/cli/chunks/{chunk-C3OIBFAA.js → chunk-G5RHFBAY.js} +2 -2
  82. package/dist/cli/chunks/{chunk-NPCXGX7N.js → chunk-GAHNO6JJ.js} +2 -2
  83. package/dist/cli/chunks/{chunk-PNRPVQGI.js → chunk-GFWHUQSF.js} +2 -2
  84. package/dist/cli/chunks/{chunk-OCN53CCK.js → chunk-GJYHWYXR.js} +2 -2
  85. package/dist/cli/chunks/{chunk-5Z4MO2F3.js → chunk-GQ6TUIKY.js} +1 -1
  86. package/dist/cli/chunks/{chunk-N736GLWZ.js → chunk-GSKMOPL7.js} +2 -2
  87. package/dist/cli/chunks/{chunk-43XHGWYH.js → chunk-HCH4Y6XX.js} +2 -2
  88. package/dist/cli/chunks/{chunk-QP6GL3O5.js → chunk-HGWXF45W.js} +1 -1
  89. package/dist/cli/chunks/{chunk-PGN4TARY.js → chunk-HJ6ZGVTB.js} +2 -2
  90. package/dist/cli/chunks/{chunk-M2TG7VDK.js → chunk-HLUXXCHF.js} +1 -1
  91. package/dist/cli/chunks/{chunk-UMHFTQTR.js → chunk-HVRRLYX6.js} +4 -4
  92. package/dist/cli/chunks/{chunk-L7PC675Y.js → chunk-I7MQIM2U.js} +1 -1
  93. package/dist/cli/chunks/{chunk-JSSU4RIK.js → chunk-IESR7TNB.js} +2 -2
  94. package/dist/cli/chunks/{chunk-H4LYXLAT.js → chunk-IHRXZZQM.js} +1 -1
  95. package/dist/cli/chunks/{chunk-HV43NX4A.js → chunk-IOKYCMTJ.js} +6 -6
  96. package/dist/cli/chunks/{chunk-NZQYJCO6.js → chunk-IOQ6ZQ5W.js} +1 -1
  97. package/dist/cli/chunks/{chunk-JO26SG47.js → chunk-IOYG4VFL.js} +2 -2
  98. package/dist/cli/chunks/{chunk-6O63ZTVX.js → chunk-IUBJVHNB.js} +2 -2
  99. package/dist/cli/chunks/{chunk-XSPMLJCQ.js → chunk-J442IZLE.js} +1 -1
  100. package/dist/cli/chunks/{chunk-LTGQJYYO.js → chunk-J4ELZNLY.js} +2 -2
  101. package/dist/cli/chunks/chunk-J7I6PABJ.js +153 -0
  102. package/dist/cli/chunks/chunk-JDIYMZCQ.js +2 -0
  103. package/dist/cli/chunks/{chunk-TOJF3ZG4.js → chunk-JHQCRRJI.js} +2 -2
  104. package/dist/cli/chunks/{chunk-QUZ745UQ.js → chunk-JQ3DYUMS.js} +2 -2
  105. package/dist/cli/chunks/{chunk-P2TPH3TC.js → chunk-KITOPKRG.js} +2 -2
  106. package/dist/cli/chunks/{chunk-QNQE3EOH.js → chunk-KKU2QGSJ.js} +2 -2
  107. package/dist/cli/chunks/chunk-KL7OKSU2.js +4 -0
  108. package/dist/cli/chunks/{chunk-L5VSLPMW.js → chunk-KNSRL6NO.js} +2 -2
  109. package/dist/cli/chunks/{chunk-INGXD5IX.js → chunk-KPRCB5LT.js} +2 -2
  110. package/dist/cli/chunks/{chunk-GY4P7KAI.js → chunk-KQYJ4VQ5.js} +1 -1
  111. package/dist/cli/chunks/{chunk-Z2S7DNFP.js → chunk-KU2AUFGX.js} +2 -2
  112. package/dist/cli/chunks/{chunk-O5CEL447.js → chunk-KVF4NXGQ.js} +2 -2
  113. package/dist/cli/chunks/{chunk-2IJO3657.js → chunk-KXCLACFG.js} +2 -2
  114. package/dist/cli/chunks/{chunk-ZJGFQK27.js → chunk-L2DWPVNJ.js} +1 -1
  115. package/dist/cli/chunks/{chunk-E7OR6V3V.js → chunk-L6QSTQME.js} +2 -2
  116. package/dist/cli/chunks/{chunk-RE6JTSDM.js → chunk-LE4QJREF.js} +1 -1
  117. package/dist/cli/chunks/{chunk-DSQESXL4.js → chunk-LKTTUHLF.js} +2 -2
  118. package/dist/cli/chunks/{chunk-YGC5QKQ4.js → chunk-LQLPB2T6.js} +2 -2
  119. package/dist/cli/chunks/{chunk-VGZOPQQY.js → chunk-LRSX2FJM.js} +1 -1
  120. package/dist/cli/chunks/chunk-M4FRQ4TE.js +12 -0
  121. package/dist/cli/chunks/chunk-M7WJCTG3.js +2 -0
  122. package/dist/cli/chunks/{chunk-56NSE3LJ.js → chunk-MAFQV4U4.js} +2 -2
  123. package/dist/cli/chunks/{chunk-MKYOE7NE.js → chunk-MD43XRX5.js} +1 -1
  124. package/dist/cli/chunks/{chunk-3TF27MG5.js → chunk-MI5MFHRA.js} +2 -2
  125. package/dist/cli/chunks/{chunk-JK6PMLQQ.js → chunk-MO55CVMT.js} +32 -32
  126. package/dist/cli/chunks/{chunk-X6NJOT3V.js → chunk-N7HL5PHH.js} +1 -1
  127. package/dist/cli/chunks/chunk-NAEWCFQT.js +14 -0
  128. package/dist/cli/chunks/{chunk-WUGXXNK4.js → chunk-NDJ7P2EP.js} +1 -1
  129. package/dist/cli/chunks/{chunk-D5GB5PUU.js → chunk-NO3IV5Q5.js} +1 -1
  130. package/dist/cli/chunks/{chunk-3XACRXBY.js → chunk-NQXXI77K.js} +2 -2
  131. package/dist/cli/chunks/{chunk-EC65UZ77.js → chunk-NVEWF4JV.js} +1 -1
  132. package/dist/cli/chunks/{chunk-JI67T6Q2.js → chunk-NZU4ACBZ.js} +2 -2
  133. package/dist/cli/chunks/chunk-O5W3FIO6.js +63 -0
  134. package/dist/cli/chunks/{chunk-YEFTK4HD.js → chunk-OAEE6JWQ.js} +2 -2
  135. package/dist/cli/chunks/{chunk-JAOCHPYX.js → chunk-OCV2XEWQ.js} +2 -2
  136. package/dist/cli/chunks/{chunk-IDBA5GK2.js → chunk-P3EYRILV.js} +2 -2
  137. package/dist/cli/chunks/{chunk-4RPBODN5.js → chunk-PEQDY4BO.js} +2 -2
  138. package/dist/cli/chunks/{chunk-CPPYZYXC.js → chunk-PF7RBAYL.js} +2 -2
  139. package/dist/cli/chunks/{chunk-WCPSR4MJ.js → chunk-PHT5N7SC.js} +2 -2
  140. package/dist/cli/chunks/{chunk-O2AAYJUV.js → chunk-PINSJCM3.js} +1 -1
  141. package/dist/cli/chunks/{chunk-HEDGFKC5.js → chunk-PPUZWYUG.js} +2 -2
  142. package/dist/cli/chunks/{chunk-XMCSKYDE.js → chunk-QPEOLAAS.js} +1 -1
  143. package/dist/cli/chunks/{chunk-7MUO4DEH.js → chunk-QQWBWEJS.js} +18 -18
  144. package/dist/cli/chunks/{chunk-UFP7SN5V.js → chunk-QVDCVD5D.js} +2 -2
  145. package/dist/cli/chunks/{chunk-NHEG2DLN.js → chunk-RJIEG3NA.js} +2 -2
  146. package/dist/cli/chunks/{chunk-KJ5A54ZH.js → chunk-RV74I3YO.js} +2 -2
  147. package/dist/cli/chunks/{chunk-UDSB3XCG.js → chunk-S75SOOZL.js} +2 -2
  148. package/dist/cli/chunks/{chunk-BPDAQB3F.js → chunk-SASBO5Y5.js} +2 -2
  149. package/dist/cli/chunks/{chunk-VJBJRFUO.js → chunk-SDLWKRVL.js} +9 -9
  150. package/dist/cli/chunks/{chunk-J6ASX536.js → chunk-SHKOCGNK.js} +2 -2
  151. package/dist/cli/chunks/{chunk-J35JWDJE.js → chunk-SI6DPU5D.js} +1 -1
  152. package/dist/cli/chunks/{chunk-V3MGY76S.js → chunk-SJ6Y4725.js} +2 -2
  153. package/dist/cli/chunks/{chunk-FTYRPEJS.js → chunk-SR52XP5F.js} +1 -1
  154. package/dist/cli/chunks/{chunk-ZUE524JL.js → chunk-SSUAAX3F.js} +2 -2
  155. package/dist/cli/chunks/{chunk-VG32EEUG.js → chunk-SSYAQZXA.js} +2 -2
  156. package/dist/cli/chunks/{chunk-HTVGHHX2.js → chunk-SUDMM5SO.js} +2 -2
  157. package/dist/cli/chunks/{chunk-K2SMP4OD.js → chunk-TIUKLYAI.js} +1 -1
  158. package/dist/cli/chunks/{chunk-VCVRZD4Y.js → chunk-TVGI32MB.js} +33 -33
  159. package/dist/cli/chunks/{chunk-CAZM63TP.js → chunk-U2A7NHZA.js} +2 -2
  160. package/dist/cli/chunks/{chunk-WBC6WB32.js → chunk-UE5ZOZR2.js} +2 -2
  161. package/dist/cli/chunks/{chunk-BQJ7CV53.js → chunk-UHEOGZLX.js} +12 -12
  162. package/dist/cli/chunks/chunk-UNGBRZDK.js +12 -0
  163. package/dist/cli/chunks/{chunk-XN3KCKAM.js → chunk-V5NHZV7S.js} +2 -2
  164. package/dist/cli/chunks/{chunk-UNYTHZDZ.js → chunk-VJCIEHEF.js} +1 -1
  165. package/dist/cli/chunks/{chunk-5Y7UFHJD.js → chunk-VMDFFTCK.js} +1 -1
  166. package/dist/cli/chunks/chunk-VSIKHWZ4.js +29 -0
  167. package/dist/cli/chunks/{chunk-UPWLMIDY.js → chunk-VWPM27GU.js} +2 -2
  168. package/dist/cli/chunks/{chunk-USAKCGHC.js → chunk-VXFLJNCA.js} +2 -2
  169. package/dist/cli/chunks/{chunk-WKI46WWN.js → chunk-W5HQUIML.js} +2 -2
  170. package/dist/cli/chunks/{chunk-Z54G2YOL.js → chunk-WP4RETKG.js} +2 -2
  171. package/dist/cli/chunks/{chunk-IRPNEXOU.js → chunk-XIIQ5QTT.js} +2 -2
  172. package/dist/cli/chunks/{chunk-O32BFQV4.js → chunk-XIQW7EFL.js} +2 -2
  173. package/dist/cli/chunks/{chunk-TW6Z6W4X.js → chunk-XWUWX7BV.js} +13 -13
  174. package/dist/cli/chunks/{chunk-57FX3GP6.js → chunk-Y4PFUMOU.js} +1 -1
  175. package/dist/cli/chunks/chunk-YAPLJR7K.js +2 -0
  176. package/dist/cli/chunks/{chunk-4T7XV5KQ.js → chunk-YLMNVLDK.js} +1 -1
  177. package/dist/cli/chunks/{chunk-TSP6SU5V.js → chunk-YNMJEDN5.js} +2 -2
  178. package/dist/cli/chunks/{chunk-PWQWKYBG.js → chunk-YPBSUGMI.js} +1 -1
  179. package/dist/cli/chunks/{chunk-QP2HLKTS.js → chunk-YRAX7SFJ.js} +2 -2
  180. package/dist/cli/chunks/{chunk-O3ERGUXH.js → chunk-YTHTQPWR.js} +1 -1
  181. package/dist/cli/chunks/{chunk-MR2OPUSA.js → chunk-YU2BDRSD.js} +1 -1
  182. package/dist/cli/chunks/chunk-ZB3LEFYG.js +2 -0
  183. package/dist/cli/chunks/{chunk-2W5MQDHM.js → chunk-ZFL436FN.js} +2 -2
  184. package/dist/cli/chunks/{chunk-7MISCSL5.js → chunk-ZJH5MU2I.js} +2 -2
  185. package/dist/cli/chunks/{chunk-52KOPIMI.js → chunk-ZQ2XW3IP.js} +2 -2
  186. package/dist/cli/chunks/chunk-ZR2TKVXQ.js +14 -0
  187. package/dist/cli/chunks/{ci-UMA2SMNW.js → ci-MFUR4CWV.js} +2 -2
  188. package/dist/cli/chunks/{ci-config-UQSILJFQ.js → ci-config-PNDLQ6XV.js} +2 -2
  189. package/dist/cli/chunks/{ci-output-U6YZLLKH.js → ci-output-PFZ4M7NC.js} +2 -2
  190. package/dist/cli/chunks/{circuit-breaker-ATYQP6X2.js → circuit-breaker-5HH6NLZN.js} +2 -2
  191. package/dist/cli/chunks/{claude-flow-setup-6YHFD7AN.js → claude-flow-setup-QCKYLGLC.js} +2 -2
  192. package/dist/cli/chunks/client-MHQRTZM4.js +2 -0
  193. package/dist/cli/chunks/{cline-installer-EPE7IOZE.js → cline-installer-EASVPFXR.js} +2 -2
  194. package/dist/cli/chunks/{code-NUEJ4XYO.js → code-UJXDVYRK.js} +4 -3
  195. package/dist/cli/chunks/{code-index-extractor-D4DBT6OL.js → code-index-extractor-BZJ3UDP4.js} +2 -2
  196. package/dist/cli/chunks/{codex-installer-633SM4LR.js → codex-installer-XSQZUVOZ.js} +4 -4
  197. package/dist/cli/chunks/{completions-WUKVIW3L.js → completions-OWOOJFI2.js} +2 -2
  198. package/dist/cli/chunks/{complexity-analyzer-F73ACR5H.js → complexity-analyzer-KP5TOHDT.js} +2 -2
  199. package/dist/cli/chunks/{continuedev-installer-QH42TKMS.js → continuedev-installer-IFKQXLHM.js} +2 -2
  200. package/dist/cli/chunks/{copilot-installer-Y3XC7BTT.js → copilot-installer-IGJ6KGQY.js} +2 -2
  201. package/dist/cli/chunks/core-handlers-UAK3LLJE.js +2 -0
  202. package/dist/cli/chunks/{cost-tracker-57QPV7E3.js → cost-tracker-MMDDNKZB.js} +2 -2
  203. package/dist/cli/chunks/{coverage-IBCHMBCR.js → coverage-LUH2B7NT.js} +3 -3
  204. package/dist/cli/chunks/cross-domain-router-WTRZQPNQ.js +2 -0
  205. package/dist/cli/chunks/{cursor-installer-F4UYQHIN.js → cursor-installer-4YLM5GWM.js} +2 -2
  206. package/dist/cli/chunks/daemon-CAVZ7OFV.js +18 -0
  207. package/dist/cli/chunks/{daemon-XR4Q6YZF.js → daemon-MZKVM4CJ.js} +3 -3
  208. package/dist/cli/chunks/{dag-attention-scheduler-ZR5ZD3TW.js → dag-attention-scheduler-X4CYW665.js} +2 -2
  209. package/dist/cli/chunks/{detect-GEGYURLL.js → detect-7BM2XINO.js} +2 -2
  210. package/dist/cli/chunks/{dist-node-JU3KT2JO.js → dist-node-Y5APLEYB.js} +2 -2
  211. package/dist/cli/chunks/{domain-handler-7QI3FJGE.js → domain-handler-X3ZRJNAH.js} +2 -2
  212. package/dist/cli/chunks/{domain-plugins-O2YRM2PD.js → domain-plugins-2UW5KQJB.js} +2 -2
  213. package/dist/cli/chunks/{domain-transfer-7J3S2OS6.js → domain-transfer-35W4CIBV.js} +2 -2
  214. package/dist/cli/chunks/dream-EJY24JN6.js +2 -0
  215. package/dist/cli/chunks/embed-and-insert-pattern-COG4C7ZI.js +3 -0
  216. package/dist/cli/chunks/embedding-space-SBM2MZD2.js +2 -0
  217. package/dist/cli/chunks/{eval-RVMCIUOR.js → eval-4QA2SROK.js} +2 -2
  218. package/dist/cli/chunks/experience-capture-middleware-Z6BF6KYM.js +40 -0
  219. package/dist/cli/chunks/{fast-paths-QUKPKWKZ.js → fast-paths-FIORX6GN.js} +2 -2
  220. package/dist/cli/chunks/{feature-flags-K7JXNKJI.js → feature-flags-6LYI2T4G.js} +2 -2
  221. package/dist/cli/chunks/{feature-flags-5JCSKL2P.js → feature-flags-ZOO7LMIC.js} +2 -2
  222. package/dist/cli/chunks/file-discovery-UZSFSS4V.js +2 -0
  223. package/dist/cli/chunks/{fleet-II4Q6HXK.js → fleet-7WF53H4F.js} +3 -3
  224. package/dist/cli/chunks/{gnn-wrapper-M7VO2EMS.js → gnn-wrapper-KJ6B7BRM.js} +2 -2
  225. package/dist/cli/chunks/{heartbeat-handler-ND5CY26N.js → heartbeat-handler-DEKKMOVW.js} +4 -4
  226. package/dist/cli/chunks/heartbeat-scheduler-NVR356I7.js +2 -0
  227. package/dist/cli/chunks/hnsw-adapter-LFMPLUJU.js +2 -0
  228. package/dist/cli/chunks/hnsw-index-POCPMVJH.js +2 -0
  229. package/dist/cli/chunks/{hnsw-legacy-bridge-N3AUUUU7.js → hnsw-legacy-bridge-L27WS27N.js} +2 -2
  230. package/dist/cli/chunks/{hnswlib-node-NZY3E5EN.js → hnswlib-node-4YOQC6L4.js} +2 -2
  231. package/dist/cli/chunks/{hooks-QVJDTII5.js → hooks-TAOKV4EJ.js} +23 -22
  232. package/dist/cli/chunks/hybrid-backend-4STAO7CV.js +2 -0
  233. package/dist/cli/chunks/{hypergraph-engine-ZRY6MTDV.js → hypergraph-engine-BODRJLHL.js} +2 -2
  234. package/dist/cli/chunks/{hypergraph-handler-56DO4XZQ.js → hypergraph-handler-RKMYJNTU.js} +3 -3
  235. package/dist/cli/chunks/impact-analyzer-3VIIISBQ.js +2 -0
  236. package/dist/cli/chunks/{init-guard-DTF4EVUY.js → init-guard-MXHSLSB2.js} +2 -2
  237. package/dist/cli/chunks/{init-handler-M6CNQHMX.js → init-handler-HUE57IFW.js} +6 -6
  238. package/dist/cli/chunks/init-wizard-PL6QN6RQ.js +2 -0
  239. package/dist/cli/chunks/kernel-CCDWT7KS.js +2 -0
  240. package/dist/cli/chunks/{kilocode-installer-IJN7XKBH.js → kilocode-installer-S333IKYQ.js} +2 -2
  241. package/dist/cli/chunks/{kiro-installer-UKKPGPDC.js → kiro-installer-WM5DLQWC.js} +2 -2
  242. package/dist/cli/chunks/knowledge-graph-KFOMEN3H.js +2 -0
  243. package/dist/cli/chunks/{learning-W2HETWQ4.js → learning-LNHMQLH5.js} +3 -3
  244. package/dist/cli/chunks/{llm-router-Y546K4VX.js → llm-router-EWFXYZZR.js} +4 -4
  245. package/dist/cli/chunks/llm-router-service-7NBE2EX6.js +2 -0
  246. package/dist/cli/chunks/{load-MKAB2AXE.js → load-FGYGWVDK.js} +2 -2
  247. package/dist/cli/chunks/load-test-UNZUWY3F.js +2 -0
  248. package/dist/cli/chunks/{mcp-AZKUS6K3.js → mcp-2FHNAAOM.js} +2 -2
  249. package/dist/cli/chunks/{memory-ZDOQN2KU.js → memory-DZMQ73AB.js} +5 -5
  250. package/dist/cli/chunks/memory-backend-DFGKWA2Q.js +2 -0
  251. package/dist/cli/chunks/memory-handlers-MP426XRJ.js +2 -0
  252. package/dist/cli/chunks/{multi-model-executor-WWVXDHG4.js → multi-model-executor-6F2UAEUW.js} +2 -2
  253. package/dist/cli/chunks/{opencode-installer-YUJNXXWS.js → opencode-installer-XY3BGOTZ.js} +2 -2
  254. package/dist/cli/chunks/{orchestrator-Z6PWPLRE.js → orchestrator-B4CNKUOS.js} +17 -17
  255. package/dist/cli/chunks/pattern-null-store-SSVF5TE5.js +2 -0
  256. package/dist/cli/chunks/{pattern-usage-recorder-TPWPX32U.js → pattern-usage-recorder-R4GUFNMD.js} +2 -2
  257. package/dist/cli/chunks/{pipeline-4BBGTE4M.js → pipeline-FG5RKVRO.js} +2 -2
  258. package/dist/cli/chunks/{platform-5GSHXCV5.js → platform-3BT4KEVJ.js} +2 -2
  259. package/dist/cli/chunks/{plugin-OFDVF5HS.js → plugin-WI4RIN7O.js} +2 -2
  260. package/dist/cli/chunks/{prime-radiant-advanced-wasm-NC6MUYGJ.js → prime-radiant-advanced-wasm-7ECDNQFS.js} +2 -2
  261. package/dist/cli/chunks/project-root-BEANNYWU.js +2 -0
  262. package/dist/cli/chunks/protocol-executor-FQVIHXZ7.js +2 -0
  263. package/dist/cli/chunks/{protocol-handler-MPOAAEPA.js → protocol-handler-WNODKPGW.js} +2 -2
  264. package/dist/cli/chunks/{prove-CDKMAIVM.js → prove-5RHAEPYZ.js} +2 -2
  265. package/dist/cli/chunks/qe-reasoning-bank-5TFYSE24.js +2 -0
  266. package/dist/cli/chunks/{quality-ZH4F7R7R.js → quality-WPHR7BGQ.js} +2 -2
  267. package/dist/cli/chunks/{quality-gate-IDRMW6OE.js → quality-gate-4RKTEZMX.js} +3 -3
  268. package/dist/cli/chunks/queen-coordinator-Y2OUL7IN.js +2 -0
  269. package/dist/cli/chunks/real-embeddings-OXLYU7JW.js +2 -0
  270. package/dist/cli/chunks/{ref-validation-Z5GCGVXK.js → ref-validation-TPAWHOHH.js} +2 -2
  271. package/dist/cli/chunks/{roocode-installer-IZ2S7PH2.js → roocode-installer-7AVHFNDI.js} +2 -2
  272. package/dist/cli/chunks/router-EP34O3KB.js +2 -0
  273. package/dist/cli/chunks/routing-feedback-FJCRKXNG.js +2 -0
  274. package/dist/cli/chunks/{routing-handler-NAX35VUW.js → routing-handler-YKEDVJSH.js} +2 -2
  275. package/dist/cli/chunks/{ruvector-commands-5YW2SOFF.js → ruvector-commands-JUAMM354.js} +2 -2
  276. package/dist/cli/chunks/rvf-dual-writer-ILITJSFG.js +2 -0
  277. package/dist/cli/chunks/rvf-migration-adapter-XF6W4C2N.js +2 -0
  278. package/dist/cli/chunks/rvf-migration-coordinator-CMKG56AR.js +2 -0
  279. package/dist/cli/chunks/rvf-native-adapter-7YFW6S4Y.js +2 -0
  280. package/dist/cli/chunks/{rvf-store-integrity-IPGCAT6C.js → rvf-store-integrity-VJDUIRTX.js} +2 -2
  281. package/dist/cli/chunks/safe-db-TCAU4FUT.js +2 -0
  282. package/dist/cli/chunks/schedule-NB5KV435.js +2 -0
  283. package/dist/cli/chunks/scheduler-JKXGKVK6.js +2 -0
  284. package/dist/cli/chunks/{security-3IH4BO5Z.js → security-ORDN3RD2.js} +3 -3
  285. package/dist/cli/chunks/{shared-rvf-adapter-ABY7PAY2.js → shared-rvf-adapter-CF4BCIO7.js} +2 -2
  286. package/dist/cli/chunks/{shared-rvf-dual-writer-6KENLN2W.js → shared-rvf-dual-writer-C32UBR6D.js} +2 -2
  287. package/dist/cli/chunks/sqlite-persistence-IXCNZRTW.js +2 -0
  288. package/dist/cli/chunks/{standalone-memory-RLFAUGOW.js → standalone-memory-OXRJYZXN.js} +2 -2
  289. package/dist/cli/chunks/{status-handler-FCOZBPE5.js → status-handler-BCX5D4HY.js} +2 -2
  290. package/dist/cli/chunks/{structural-health-4RDA5UUM.js → structural-health-LFG7RUU6.js} +2 -2
  291. package/dist/cli/chunks/sync-OSF7C2NL.js +2 -0
  292. package/dist/cli/chunks/{sync-KGEEXXCC.js → sync-YJEE2K2L.js} +2 -2
  293. package/dist/cli/chunks/task-handler-6LXKPTXJ.js +64 -0
  294. package/dist/cli/chunks/{task-handlers-6H7L2UT4.js → task-handlers-CILP36I7.js} +4 -4
  295. package/dist/cli/chunks/{test-S7IG6EIX.js → test-SD457QJ6.js} +4 -4
  296. package/dist/cli/chunks/test-runner-process-VKD65QQU.js +2 -0
  297. package/dist/cli/chunks/{test-scheduling-7XYXI4L2.js → test-scheduling-ISI2O4Q5.js} +3 -3
  298. package/dist/cli/chunks/token-bootstrap-VUELSBOS.js +2 -0
  299. package/dist/cli/chunks/{token-usage-Y2YTPOFE.js → token-usage-XOC5KG7S.js} +2 -2
  300. package/dist/cli/chunks/{transformers-UCJ3HHHC.js → transformers-LSLQAARK.js} +2 -2
  301. package/dist/cli/chunks/tree-sitter-wasm-parser-YAIPHRIL.js +2 -0
  302. package/dist/cli/chunks/{types-6CMFPETH.js → types-5BLCGLCR.js} +2 -2
  303. package/dist/cli/chunks/unified-memory-GI76TXFV.js +2 -0
  304. package/dist/cli/chunks/unified-memory-hnsw-GXJ5BTZO.js +2 -0
  305. package/dist/cli/chunks/unified-persistence-OP7FDQPD.js +2 -0
  306. package/dist/cli/chunks/{upgrade-K25DN6WU.js → upgrade-RQJYLK3J.js} +2 -2
  307. package/dist/cli/chunks/{validate-T4V3TBY3.js → validate-QBHWXXCK.js} +2 -2
  308. package/dist/cli/chunks/{validate-swarm-XSRC576T.js → validate-swarm-IKXBKFB5.js} +2 -2
  309. package/dist/cli/chunks/visual-security-GZ2MOKWB.js +2 -0
  310. package/dist/cli/chunks/{web-tree-sitter-YOZXHRTN.js → web-tree-sitter-ZF6FIE5R.js} +2 -2
  311. package/dist/cli/chunks/{windsurf-installer-ITPU2IYL.js → windsurf-installer-HQGDZT5D.js} +2 -2
  312. package/dist/cli/chunks/witness-chain-DCHCAMSQ.js +2 -0
  313. package/dist/cli/chunks/witness-chain-P3XXXA62.js +2 -0
  314. package/dist/cli/chunks/witness-chain-repair-PUX2NFDL.js +2 -0
  315. package/dist/cli/chunks/{witness-chain-verifier-DTDSVKOG.js → witness-chain-verifier-PX2OQ6XT.js} +2 -2
  316. package/dist/cli/chunks/{witness-key-manager-EWACWGAW.js → witness-key-manager-RXYQNFJB.js} +2 -2
  317. package/dist/cli/chunks/{workflow-ZIQ4FV42.js → workflow-FBKCA4H6.js} +4 -4
  318. package/dist/cli/chunks/workflow-orchestrator-P2APAJAA.js +2 -0
  319. package/dist/cli/chunks/wrappers-TWSKBTWD.js +2 -0
  320. package/dist/cli/commands/code.js +4 -0
  321. package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +10 -2
  322. package/dist/cli/handlers/task-handler.d.ts +5 -0
  323. package/dist/cli/handlers/task-handler.js +21 -1
  324. package/dist/cli/utils/task-result.d.ts +11 -0
  325. package/dist/cli/utils/task-result.js +39 -0
  326. package/dist/coordination/handlers/test-execution-handlers.js +92 -58
  327. package/dist/coordination/mincut/mincut-persistence.js +29 -25
  328. package/dist/domains/code-intelligence/coordinator.d.ts +4 -0
  329. package/dist/domains/code-intelligence/coordinator.js +46 -13
  330. package/dist/domains/code-intelligence/interfaces.d.ts +10 -1
  331. package/dist/domains/code-intelligence/services/semantic-analyzer.d.ts +32 -7
  332. package/dist/domains/code-intelligence/services/semantic-analyzer.js +112 -53
  333. package/dist/domains/learning-optimization/services/learning-coordinator.js +1 -1
  334. package/dist/domains/quality-assessment/coordinator.js +2 -1
  335. package/dist/domains/test-execution/coordinator.js +10 -5
  336. package/dist/domains/test-execution/interfaces.d.ts +12 -0
  337. package/dist/domains/test-execution/plugin.js +6 -2
  338. package/dist/domains/test-execution/services/retry-handler.d.ts +2 -0
  339. package/dist/domains/test-execution/services/retry-handler.js +14 -9
  340. package/dist/domains/test-execution/services/test-executor.d.ts +1 -0
  341. package/dist/domains/test-execution/services/test-executor.js +28 -9
  342. package/dist/domains/visual-accessibility/coordinator.d.ts +15 -7
  343. package/dist/domains/visual-accessibility/coordinator.js +15 -7
  344. package/dist/domains/visual-accessibility/interfaces.d.ts +27 -3
  345. package/dist/domains/visual-accessibility/services/accessibility-contrast.d.ts +39 -0
  346. package/dist/domains/visual-accessibility/services/accessibility-contrast.js +93 -0
  347. package/dist/domains/visual-accessibility/services/accessibility-tester-browser.d.ts +18 -3
  348. package/dist/domains/visual-accessibility/services/accessibility-tester-browser.js +50 -40
  349. package/dist/domains/visual-accessibility/services/accessibility-tester-checks.d.ts +27 -0
  350. package/dist/domains/visual-accessibility/services/accessibility-tester-checks.js +137 -0
  351. package/dist/domains/visual-accessibility/services/accessibility-tester.d.ts +5 -0
  352. package/dist/domains/visual-accessibility/services/accessibility-tester.js +43 -24
  353. package/dist/domains/visual-accessibility/services/browser-swarm-coordinator.d.ts +2 -3
  354. package/dist/domains/visual-accessibility/services/browser-swarm-coordinator.js +8 -14
  355. package/dist/feedback/coverage-learner.js +13 -9
  356. package/dist/feedback/test-outcome-tracker.js +13 -9
  357. package/dist/governance/witness-chain.d.ts +5 -0
  358. package/dist/governance/witness-chain.js +22 -6
  359. package/dist/init/init-wizard-hooks.d.ts +1 -1
  360. package/dist/init/init-wizard-hooks.js +7 -8
  361. package/dist/init/phases/08-mcp.js +9 -0
  362. package/dist/init/settings-merge.d.ts +13 -0
  363. package/dist/init/settings-merge.js +49 -2
  364. package/dist/integrations/agent-booster-wasm/agent_booster_wasm.js +849 -0
  365. package/dist/integrations/agent-booster-wasm/agent_booster_wasm_bg.wasm +0 -0
  366. package/dist/integrations/agent-booster-wasm/index.d.ts +8 -0
  367. package/dist/integrations/agent-booster-wasm/index.js +25 -2
  368. package/dist/integrations/agent-booster-wasm/package.json +16 -0
  369. package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.d.ts +22 -0
  370. package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.js +115 -45
  371. package/dist/integrations/agentic-flow/reasoning-bank/pattern-evolution.d.ts +6 -0
  372. package/dist/integrations/agentic-flow/reasoning-bank/pattern-evolution.js +51 -33
  373. package/dist/integrations/agentic-flow/reasoning-bank/trajectory-tracker.js +17 -9
  374. package/dist/integrations/embeddings/cache/EmbeddingCache.d.ts +8 -0
  375. package/dist/integrations/embeddings/cache/EmbeddingCache.js +24 -10
  376. package/dist/integrations/ruvector/delta-tracker.d.ts +11 -0
  377. package/dist/integrations/ruvector/delta-tracker.js +16 -0
  378. package/dist/integrations/ruvector/sona-persistence.d.ts +10 -0
  379. package/dist/integrations/ruvector/sona-persistence.js +49 -24
  380. package/dist/kernel/unified-memory.d.ts +24 -0
  381. package/dist/kernel/unified-memory.js +63 -8
  382. package/dist/learning/aqe-learning-engine.js +1 -1
  383. package/dist/learning/dream/dream-engine.d.ts +3 -2
  384. package/dist/learning/dream/dream-engine.js +42 -24
  385. package/dist/learning/dream/dream-lock-retry.d.ts +38 -0
  386. package/dist/learning/dream/dream-lock-retry.js +66 -0
  387. package/dist/learning/dream/speculative-dreamer.js +1 -1
  388. package/dist/learning/embed-and-insert-pattern.js +4 -2
  389. package/dist/learning/embedder-endpoint-client.d.ts +31 -0
  390. package/dist/learning/embedder-endpoint-client.js +103 -10
  391. package/dist/learning/embedding-space.d.ts +12 -0
  392. package/dist/learning/embedding-space.js +17 -0
  393. package/dist/learning/experience-capture-middleware.js +25 -13
  394. package/dist/learning/experience-capture.js +1 -1
  395. package/dist/learning/experience-consolidation.d.ts +18 -0
  396. package/dist/learning/experience-consolidation.js +55 -8
  397. package/dist/learning/experience-space-verification.d.ts +71 -0
  398. package/dist/learning/experience-space-verification.js +147 -0
  399. package/dist/learning/pattern-lifecycle.d.ts +40 -4
  400. package/dist/learning/pattern-lifecycle.js +153 -76
  401. package/dist/learning/pattern-null-store.d.ts +5 -0
  402. package/dist/learning/pattern-null-store.js +8 -0
  403. package/dist/learning/pattern-promotion.js +6 -3
  404. package/dist/learning/pattern-store.d.ts +6 -0
  405. package/dist/learning/pattern-store.js +19 -6
  406. package/dist/learning/qe-reasoning-bank.js +2 -2
  407. package/dist/learning/real-embeddings.js +3 -1
  408. package/dist/learning/real-qe-reasoning-bank.d.ts +5 -0
  409. package/dist/learning/real-qe-reasoning-bank.js +77 -47
  410. package/dist/learning/rvf-pattern-store.js +6 -2
  411. package/dist/learning/sqlite-persistence.d.ts +6 -0
  412. package/dist/learning/sqlite-persistence.js +10 -0
  413. package/dist/mcp/bundle.js +642 -571
  414. package/dist/mcp/entry.js +4 -0
  415. package/dist/mcp/handlers/domain-handler-configs.js +2 -0
  416. package/dist/mcp/handlers/trajectory-judge.js +1 -1
  417. package/dist/mcp/protocol-server.js +1 -0
  418. package/dist/mcp/tools/visual-accessibility/index.js +8 -2
  419. package/dist/mcp/types.d.ts +6 -0
  420. package/dist/optimization/session-cache.d.ts +17 -1
  421. package/dist/optimization/session-cache.js +40 -36
  422. package/dist/planning/goap-planner.d.ts +6 -0
  423. package/dist/planning/goap-planner.js +35 -19
  424. package/dist/planning/plan-executor.js +24 -15
  425. package/dist/routing/co-execution-repository.js +12 -9
  426. package/dist/routing/routing-feedback.d.ts +8 -0
  427. package/dist/routing/routing-feedback.js +46 -24
  428. package/dist/routing/routing-outcomes-migration.js +7 -2
  429. package/dist/shared/llm/spend-ledger.d.ts +9 -0
  430. package/dist/shared/llm/spend-ledger.js +64 -39
  431. package/dist/shared/sqlite-lock-wait.d.ts +27 -0
  432. package/dist/shared/sqlite-lock-wait.js +37 -0
  433. package/dist/shared/sqlite-write-queue.d.ts +28 -0
  434. package/dist/shared/sqlite-write-queue.js +38 -0
  435. package/dist/shared/test-runner-project.d.ts +69 -0
  436. package/dist/shared/test-runner-project.js +186 -0
  437. package/dist/skills/security-visual-testing/index.d.ts +3 -1
  438. package/dist/skills/security-visual-testing/index.js +49 -35
  439. package/dist/skills/security-visual-testing/types.d.ts +19 -3
  440. package/dist/workers/workers/heartbeat-scheduler.js +5 -5
  441. package/dist/workers/workers/learning-consolidation.js +8 -7
  442. package/package.json +4 -2
  443. package/dist/cli/chunks/adapter-23KA2YW7.js +0 -2
  444. package/dist/cli/chunks/agent-booster-wasm-2DLAEZK6.js +0 -2
  445. package/dist/cli/chunks/aqe-learning-engine-MUICAXW5.js +0 -2
  446. package/dist/cli/chunks/base-XPWGYDKD.js +0 -2
  447. package/dist/cli/chunks/browser-workflow-UMQVBVGK.js +0 -2
  448. package/dist/cli/chunks/chunk-3FITMWWJ.js +0 -21
  449. package/dist/cli/chunks/chunk-ARRBXCII.js +0 -4
  450. package/dist/cli/chunks/chunk-BBYJBZHG.js +0 -14
  451. package/dist/cli/chunks/chunk-BM3EJLMV.js +0 -153
  452. package/dist/cli/chunks/chunk-D3ZZ2NLL.js +0 -62
  453. package/dist/cli/chunks/chunk-DLTB5KCR.js +0 -2
  454. package/dist/cli/chunks/chunk-DRLSJJIC.js +0 -6
  455. package/dist/cli/chunks/chunk-HAYKLXCT.js +0 -744
  456. package/dist/cli/chunks/chunk-HHBF2BZC.js +0 -65
  457. package/dist/cli/chunks/chunk-K7RT6ITZ.js +0 -2
  458. package/dist/cli/chunks/chunk-L752CNG3.js +0 -13
  459. package/dist/cli/chunks/chunk-MQXWG55U.js +0 -12
  460. package/dist/cli/chunks/chunk-WM2QRIRD.js +0 -14
  461. package/dist/cli/chunks/chunk-WRC3HLUY.js +0 -29
  462. package/dist/cli/chunks/chunk-XTZGAG6P.js +0 -27
  463. package/dist/cli/chunks/chunk-YKQWIXUY.js +0 -2
  464. package/dist/cli/chunks/client-E43GWLQH.js +0 -2
  465. package/dist/cli/chunks/core-handlers-R5A3SQDY.js +0 -2
  466. package/dist/cli/chunks/cross-domain-router-LLYVPZF6.js +0 -2
  467. package/dist/cli/chunks/daemon-BYYPIJ7G.js +0 -18
  468. package/dist/cli/chunks/dream-6C4NURSE.js +0 -2
  469. package/dist/cli/chunks/embed-and-insert-pattern-URES5Q6J.js +0 -3
  470. package/dist/cli/chunks/experience-capture-middleware-SYJQSBKE.js +0 -40
  471. package/dist/cli/chunks/file-discovery-J5IE5KP7.js +0 -2
  472. package/dist/cli/chunks/heartbeat-scheduler-FC5PBTMN.js +0 -2
  473. package/dist/cli/chunks/hnsw-adapter-47UIVOBG.js +0 -2
  474. package/dist/cli/chunks/hnsw-index-3AKVLOZQ.js +0 -2
  475. package/dist/cli/chunks/hybrid-backend-YAOSNX47.js +0 -2
  476. package/dist/cli/chunks/impact-analyzer-4FMJXM4M.js +0 -2
  477. package/dist/cli/chunks/init-wizard-RTLCRWDT.js +0 -2
  478. package/dist/cli/chunks/kernel-2OWIGGGT.js +0 -2
  479. package/dist/cli/chunks/knowledge-graph-25XXKDJN.js +0 -2
  480. package/dist/cli/chunks/llm-router-service-G3EIN4UB.js +0 -2
  481. package/dist/cli/chunks/load-test-D6QYNIVT.js +0 -2
  482. package/dist/cli/chunks/memory-backend-LDFFZMEQ.js +0 -2
  483. package/dist/cli/chunks/memory-handlers-3SQVY7FE.js +0 -2
  484. package/dist/cli/chunks/pattern-null-store-KDVRM7PW.js +0 -2
  485. package/dist/cli/chunks/project-root-DDGBWDP6.js +0 -2
  486. package/dist/cli/chunks/protocol-executor-KBOLLCWA.js +0 -2
  487. package/dist/cli/chunks/qe-reasoning-bank-GRXBT7FC.js +0 -2
  488. package/dist/cli/chunks/queen-coordinator-L2QWMJ5Q.js +0 -2
  489. package/dist/cli/chunks/real-embeddings-I2UVNNB3.js +0 -2
  490. package/dist/cli/chunks/router-FT5WJPUH.js +0 -2
  491. package/dist/cli/chunks/routing-feedback-EO2MKOUX.js +0 -2
  492. package/dist/cli/chunks/rvf-dual-writer-WHBFQJVU.js +0 -2
  493. package/dist/cli/chunks/rvf-migration-adapter-YT3APF2I.js +0 -2
  494. package/dist/cli/chunks/rvf-migration-coordinator-VUIZHTVG.js +0 -2
  495. package/dist/cli/chunks/rvf-native-adapter-37PUFKQD.js +0 -2
  496. package/dist/cli/chunks/safe-db-TDZKUOZJ.js +0 -2
  497. package/dist/cli/chunks/schedule-CRKTRY2A.js +0 -2
  498. package/dist/cli/chunks/scheduler-6ZBDVQWN.js +0 -2
  499. package/dist/cli/chunks/sqlite-persistence-FFJQAIKW.js +0 -2
  500. package/dist/cli/chunks/sync-54LUAUTK.js +0 -2
  501. package/dist/cli/chunks/task-handler-K3OXHYKU.js +0 -62
  502. package/dist/cli/chunks/test-runner-process-OTQDAJLN.js +0 -2
  503. package/dist/cli/chunks/token-bootstrap-3QMABE45.js +0 -2
  504. package/dist/cli/chunks/tree-sitter-wasm-parser-D6JTTHTP.js +0 -2
  505. package/dist/cli/chunks/unified-memory-QARWQKJ2.js +0 -2
  506. package/dist/cli/chunks/unified-memory-hnsw-LHY3DXCP.js +0 -2
  507. package/dist/cli/chunks/unified-persistence-WEYYGLHM.js +0 -2
  508. package/dist/cli/chunks/visual-security-O4ALMCXQ.js +0 -2
  509. package/dist/cli/chunks/witness-chain-B3YW5NMS.js +0 -2
  510. package/dist/cli/chunks/witness-chain-PIYR72HJ.js +0 -2
  511. package/dist/cli/chunks/witness-chain-repair-YUG7E3UX.js +0 -2
  512. package/dist/cli/chunks/workflow-orchestrator-3ZN2BCGY.js +0 -2
  513. package/dist/cli/chunks/wrappers-PW2O27LL.js +0 -2
@@ -15,6 +15,7 @@ import { tierAllowsPromotion, DEFAULT_PROVENANCE_TIER } from './provenance-tier.
15
15
  import { reExecutePathGate, pathGateFingerprint, pathSealedHash, verifyPathPromotion, } from '../validation/gate-reexecute.js';
16
16
  import { LoggerFactory } from '../logging/index.js';
17
17
  import { isTemporalCompressionEnabled } from '../integrations/ruvector/feature-flags.js';
18
+ import { writeWhenUnlockedOn } from '../shared/sqlite-write-queue.js';
18
19
  const logger = LoggerFactory.create('pattern-lifecycle');
19
20
  /**
20
21
  * Default lifecycle configuration
@@ -100,69 +101,7 @@ export class PatternLifecycleManager {
100
101
  this.db = db;
101
102
  this.config = { ...DEFAULT_LIFECYCLE_CONFIG, ...config };
102
103
  this.asymmetricEngine = new AsymmetricLearningEngine(this.config.asymmetricLearning);
103
- this.ensureSchema();
104
- }
105
- /**
106
- * Ensure required schema extensions exist
107
- */
108
- ensureSchema() {
109
- // Add deprecated_at column if not exists
110
- try {
111
- this.db.prepare(`
112
- SELECT deprecated_at FROM qe_patterns LIMIT 1
113
- `).get();
114
- }
115
- catch (e) {
116
- // Column doesn't exist, add it
117
- logger.debug('Adding missing deprecated_at column', { error: e instanceof Error ? e.message : String(e) });
118
- this.db.exec(`
119
- ALTER TABLE qe_patterns ADD COLUMN deprecated_at TEXT DEFAULT NULL
120
- `);
121
- console.log('[PatternLifecycle] Added deprecated_at column to qe_patterns');
122
- }
123
- // Add consecutive_failures column if not exists
124
- try {
125
- this.db.prepare(`
126
- SELECT consecutive_failures FROM qe_patterns LIMIT 1
127
- `).get();
128
- }
129
- catch (e) {
130
- logger.debug('Adding missing consecutive_failures column', { error: e instanceof Error ? e.message : String(e) });
131
- this.db.exec(`
132
- ALTER TABLE qe_patterns ADD COLUMN consecutive_failures INTEGER DEFAULT 0
133
- `);
134
- console.log('[PatternLifecycle] Added consecutive_failures column to qe_patterns');
135
- }
136
- // Add promotion_date column if not exists
137
- try {
138
- this.db.prepare(`
139
- SELECT promotion_date FROM qe_patterns LIMIT 1
140
- `).get();
141
- }
142
- catch (e) {
143
- logger.debug('Adding missing promotion_date column', { error: e instanceof Error ? e.message : String(e) });
144
- this.db.exec(`
145
- ALTER TABLE qe_patterns ADD COLUMN promotion_date TEXT DEFAULT NULL
146
- `);
147
- console.log('[PatternLifecycle] Added promotion_date column to qe_patterns');
148
- }
149
- // ADR-121: provenance_tier — additive, conservative-default migration.
150
- // The DEFAULT backfills every existing row as 'proxy:structural', which can
151
- // never over-credit legacy history. Rows re-derived from execution evidence
152
- // are re-tiered upward through the normal write path (never up-tiered here).
153
- // Distinct from the lifecycle `tier` (short-term/long-term) column.
154
- try {
155
- this.db.prepare(`
156
- SELECT provenance_tier FROM qe_patterns LIMIT 1
157
- `).get();
158
- }
159
- catch (e) {
160
- logger.debug('Adding missing provenance_tier column', { error: e instanceof Error ? e.message : String(e) });
161
- this.db.exec(`
162
- ALTER TABLE qe_patterns ADD COLUMN provenance_tier TEXT DEFAULT '${DEFAULT_PROVENANCE_TIER}'
163
- `);
164
- console.log(`[PatternLifecycle] Added provenance_tier column to qe_patterns (backfilled '${DEFAULT_PROVENANCE_TIER}')`);
165
- }
104
+ ensurePatternLifecycleSchema(this.db);
166
105
  }
167
106
  // ============================================================================
168
107
  // Experience Extraction
@@ -431,6 +370,14 @@ Pattern extracted from ${exp.count} successful experiences.`;
431
370
  * Promote pattern to long-term tier
432
371
  */
433
372
  promotePattern(patternId) {
373
+ if (!this.promotionVerified(patternId))
374
+ return false;
375
+ this.writePromotion(patternId);
376
+ console.log(`[PatternLifecycle] Promoted pattern ${patternId} to long-term`);
377
+ return true;
378
+ }
379
+ /** Whether `patternId` passes the advisory check and the frozen promote rule. */
380
+ promotionVerified(patternId) {
434
381
  const check = this.checkPromotion(patternId);
435
382
  if (!check.shouldPromote) {
436
383
  return false;
@@ -465,6 +412,9 @@ Pattern extracted from ${exp.count} successful experiences.`;
465
412
  console.warn(`[PatternLifecycle] Refusing to promote ${patternId}: ${rerun.reason} (${verdict.reason})`);
466
413
  return false;
467
414
  }
415
+ return true;
416
+ }
417
+ writePromotion(patternId) {
468
418
  this.db.prepare(`
469
419
  UPDATE qe_patterns
470
420
  SET tier = 'long-term',
@@ -473,17 +423,12 @@ Pattern extracted from ${exp.count} successful experiences.`;
473
423
  updated_at = datetime('now')
474
424
  WHERE id = ?
475
425
  `).run(patternId);
476
- console.log(`[PatternLifecycle] Promoted pattern ${patternId} to long-term`);
477
- return true;
478
426
  }
479
427
  /**
480
428
  * Promote all eligible patterns
481
429
  */
482
430
  promoteEligiblePatterns() {
483
- const shortTermPatterns = this.db.prepare(`
484
- SELECT id FROM qe_patterns
485
- WHERE tier = 'short-term' AND deprecated_at IS NULL
486
- `).all();
431
+ const shortTermPatterns = this.selectShortTermPatternIds();
487
432
  let promoted = 0;
488
433
  for (const { id } of shortTermPatterns) {
489
434
  if (this.promotePattern(id)) {
@@ -492,6 +437,29 @@ Pattern extracted from ${exp.count} successful experiences.`;
492
437
  }
493
438
  return { promoted, checked: shortTermPatterns.length };
494
439
  }
440
+ /**
441
+ * promoteEligiblePatterns for the MCP server's background workers (#1283):
442
+ * each promotion is queued on the shared connection, so a locked memory.db
443
+ * does not freeze the event loop. Same selection, rule and result.
444
+ */
445
+ async promoteEligiblePatternsWhenUnlocked() {
446
+ const shortTermPatterns = this.selectShortTermPatternIds();
447
+ let promoted = 0;
448
+ for (const { id } of shortTermPatterns) {
449
+ if (!this.promotionVerified(id))
450
+ continue;
451
+ await writeWhenUnlockedOn(this.db, () => this.writePromotion(id));
452
+ console.log(`[PatternLifecycle] Promoted pattern ${id} to long-term`);
453
+ promoted++;
454
+ }
455
+ return { promoted, checked: shortTermPatterns.length };
456
+ }
457
+ selectShortTermPatternIds() {
458
+ return this.db.prepare(`
459
+ SELECT id FROM qe_patterns
460
+ WHERE tier = 'short-term' AND deprecated_at IS NULL
461
+ `).all();
462
+ }
495
463
  /**
496
464
  * Run a promotion sweep — convenience alias for pre-compaction hook.
497
465
  * Iterates short-term patterns, checks promotion criteria, promotes eligible ones.
@@ -570,6 +538,12 @@ Pattern extracted from ${exp.count} successful experiences.`;
570
538
  return false;
571
539
  }
572
540
  const actualReason = reason || check.reason || 'manual';
541
+ this.writeDeprecation(patternId, actualReason);
542
+ console.log(`[PatternLifecycle] Deprecated pattern ${patternId}: ${actualReason}`);
543
+ return true;
544
+ }
545
+ /** Soft-delete a pattern and record why, in one unit so a queued retry repeats both. */
546
+ writeDeprecation(patternId, actualReason) {
573
547
  // Move to deprecated state (soft delete)
574
548
  this.db.prepare(`
575
549
  UPDATE qe_patterns
@@ -593,17 +567,12 @@ Pattern extracted from ${exp.count} successful experiences.`;
593
567
  WHERE id = ?
594
568
  `).run(JSON.stringify({ deprecation_metadata: metadata }), patternId);
595
569
  }
596
- console.log(`[PatternLifecycle] Deprecated pattern ${patternId}: ${actualReason}`);
597
- return true;
598
570
  }
599
571
  /**
600
572
  * Deprecate all patterns that meet deprecation criteria
601
573
  */
602
574
  deprecateStalePatterns() {
603
- const activePatterns = this.db.prepare(`
604
- SELECT id FROM qe_patterns
605
- WHERE deprecated_at IS NULL
606
- `).all();
575
+ const activePatterns = this.selectActivePatternIds();
607
576
  let deprecated = 0;
608
577
  for (const { id } of activePatterns) {
609
578
  const check = this.checkDeprecation(id);
@@ -614,6 +583,30 @@ Pattern extracted from ${exp.count} successful experiences.`;
614
583
  }
615
584
  return { deprecated, checked: activePatterns.length };
616
585
  }
586
+ /**
587
+ * deprecateStalePatterns for the MCP server's background workers (#1283):
588
+ * each deprecation is queued on the shared connection. Same criteria and result.
589
+ */
590
+ async deprecateStalePatternsWhenUnlocked() {
591
+ const activePatterns = this.selectActivePatternIds();
592
+ let deprecated = 0;
593
+ for (const { id } of activePatterns) {
594
+ const check = this.checkDeprecation(id);
595
+ if (check.shouldDeprecate) {
596
+ const actualReason = check.reason || 'manual';
597
+ await writeWhenUnlockedOn(this.db, () => this.writeDeprecation(id, actualReason));
598
+ console.log(`[PatternLifecycle] Deprecated pattern ${id}: ${actualReason}`);
599
+ deprecated++;
600
+ }
601
+ }
602
+ return { deprecated, checked: activePatterns.length };
603
+ }
604
+ selectActivePatternIds() {
605
+ return this.db.prepare(`
606
+ SELECT id FROM qe_patterns
607
+ WHERE deprecated_at IS NULL
608
+ `).all();
609
+ }
617
610
  // ============================================================================
618
611
  // Confidence Decay
619
612
  // ============================================================================
@@ -621,6 +614,17 @@ Pattern extracted from ${exp.count} successful experiences.`;
621
614
  * Apply confidence decay to patterns that haven't been used recently
622
615
  */
623
616
  applyConfidenceDecay(daysSinceLastRun = 1) {
617
+ return this.writeConfidenceDecay(daysSinceLastRun, Date.now());
618
+ }
619
+ /**
620
+ * applyConfidenceDecay for the MCP server's background workers (#1283): the
621
+ * decay UPDATE is queued on the shared connection. Same cutoff and result.
622
+ */
623
+ async applyConfidenceDecayWhenUnlocked(daysSinceLastRun = 1) {
624
+ const now = Date.now();
625
+ return writeWhenUnlockedOn(this.db, () => this.writeConfidenceDecay(daysSinceLastRun, now));
626
+ }
627
+ writeConfidenceDecay(daysSinceLastRun, now) {
624
628
  // EWC++ (#510 item 6): per-row importance-weighted decay. The base decay
625
629
  // amount is shielded by `EWC_DECAY_PROTECTION * importance`, where
626
630
  // importance = success_rate (clamped) once usage_count >= the trust
@@ -629,7 +633,7 @@ Pattern extracted from ${exp.count} successful experiences.`;
629
633
  // so it isn't forgotten as fast as new low-value patterns.
630
634
  const baseDecayAmount = this.config.confidenceDecayRate * daysSinceLastRun;
631
635
  // Get patterns that haven't been used in the decay period
632
- const cutoffTime = Date.now() - (daysSinceLastRun * 24 * 60 * 60 * 1000);
636
+ const cutoffTime = now - (daysSinceLastRun * 24 * 60 * 60 * 1000);
633
637
  const result = this.db.prepare(`
634
638
  UPDATE qe_patterns
635
639
  SET confidence = MAX(?, confidence * (1 - ? * (1 - ? *
@@ -931,6 +935,79 @@ Pattern extracted from ${exp.count} successful experiences.`;
931
935
  // ============================================================================
932
936
  // Factory
933
937
  // ============================================================================
938
+ /**
939
+ * Add the lifecycle columns to qe_patterns if they are missing. Only writes
940
+ * (ALTER TABLE) on a database that predates them.
941
+ */
942
+ function ensurePatternLifecycleSchema(db) {
943
+ // Add deprecated_at column if not exists
944
+ try {
945
+ db.prepare(`
946
+ SELECT deprecated_at FROM qe_patterns LIMIT 1
947
+ `).get();
948
+ }
949
+ catch (e) {
950
+ // Column doesn't exist, add it
951
+ logger.debug('Adding missing deprecated_at column', { error: e instanceof Error ? e.message : String(e) });
952
+ db.exec(`
953
+ ALTER TABLE qe_patterns ADD COLUMN deprecated_at TEXT DEFAULT NULL
954
+ `);
955
+ console.log('[PatternLifecycle] Added deprecated_at column to qe_patterns');
956
+ }
957
+ // Add consecutive_failures column if not exists
958
+ try {
959
+ db.prepare(`
960
+ SELECT consecutive_failures FROM qe_patterns LIMIT 1
961
+ `).get();
962
+ }
963
+ catch (e) {
964
+ logger.debug('Adding missing consecutive_failures column', { error: e instanceof Error ? e.message : String(e) });
965
+ db.exec(`
966
+ ALTER TABLE qe_patterns ADD COLUMN consecutive_failures INTEGER DEFAULT 0
967
+ `);
968
+ console.log('[PatternLifecycle] Added consecutive_failures column to qe_patterns');
969
+ }
970
+ // Add promotion_date column if not exists
971
+ try {
972
+ db.prepare(`
973
+ SELECT promotion_date FROM qe_patterns LIMIT 1
974
+ `).get();
975
+ }
976
+ catch (e) {
977
+ logger.debug('Adding missing promotion_date column', { error: e instanceof Error ? e.message : String(e) });
978
+ db.exec(`
979
+ ALTER TABLE qe_patterns ADD COLUMN promotion_date TEXT DEFAULT NULL
980
+ `);
981
+ console.log('[PatternLifecycle] Added promotion_date column to qe_patterns');
982
+ }
983
+ // ADR-121: provenance_tier — additive, conservative-default migration.
984
+ // The DEFAULT backfills every existing row as 'proxy:structural', which can
985
+ // never over-credit legacy history. Rows re-derived from execution evidence
986
+ // are re-tiered upward through the normal write path (never up-tiered here).
987
+ // Distinct from the lifecycle `tier` (short-term/long-term) column.
988
+ try {
989
+ db.prepare(`
990
+ SELECT provenance_tier FROM qe_patterns LIMIT 1
991
+ `).get();
992
+ }
993
+ catch (e) {
994
+ logger.debug('Adding missing provenance_tier column', { error: e instanceof Error ? e.message : String(e) });
995
+ db.exec(`
996
+ ALTER TABLE qe_patterns ADD COLUMN provenance_tier TEXT DEFAULT '${DEFAULT_PROVENANCE_TIER}'
997
+ `);
998
+ console.log(`[PatternLifecycle] Added provenance_tier column to qe_patterns (backfilled '${DEFAULT_PROVENANCE_TIER}')`);
999
+ }
1000
+ }
1001
+ /**
1002
+ * Create a pattern lifecycle manager for the MCP server's background workers
1003
+ * (#1283). A database that predates the lifecycle columns gets its ALTER
1004
+ * TABLEs through the shared connection's write queue first, so a locked
1005
+ * memory.db does not freeze the event loop on the worker's first tick.
1006
+ */
1007
+ export async function createPatternLifecycleManagerWhenUnlocked(db, config) {
1008
+ await writeWhenUnlockedOn(db, () => ensurePatternLifecycleSchema(db));
1009
+ return new PatternLifecycleManager(db, config);
1010
+ }
934
1011
  /**
935
1012
  * Create a pattern lifecycle manager
936
1013
  */
@@ -20,6 +20,11 @@ export declare class PatternNullStore {
20
20
  constructor(db: DatabaseType);
21
21
  /** Record a failure; consolidates on repeat (pattern, context) pairs. */
22
22
  recordNull(record: PatternNullRecord): void;
23
+ /**
24
+ * recordNull() through the shared connection's write queue (#1283), so a
25
+ * locked memory.db does not freeze the MCP server's event loop.
26
+ */
27
+ recordNullWhenUnlocked(record: PatternNullRecord): Promise<void>;
23
28
  /** Batch summaries for retrieval-time surfacing. Missing patterns simply have no entry. */
24
29
  getNullSummaries(patternIds: string[]): Map<string, NullSummary>;
25
30
  /**
@@ -14,6 +14,7 @@
14
14
  */
15
15
  import { v4 as uuidv4 } from 'uuid';
16
16
  import { applyMigration } from '../migrations/20260611_add_pattern_nulls_table.js';
17
+ import { writeWhenUnlockedOn } from '../shared/sqlite-write-queue.js';
17
18
  /** Weight of a context-matched null vs a null from elsewhere (ADR-110: local nulls outweigh remote successes). */
18
19
  const CONTEXT_MATCHED_WEIGHT = 0.15;
19
20
  const UNMATCHED_WEIGHT = 0.03;
@@ -38,6 +39,13 @@ export class PatternNullStore {
38
39
  updated_at = datetime('now')
39
40
  `).run(uuidv4(), record.patternId, record.contextFingerprint, record.failureMode, record.trajectoryRef ?? null, record.evidenceClass ?? 'EXECUTED');
40
41
  }
42
+ /**
43
+ * recordNull() through the shared connection's write queue (#1283), so a
44
+ * locked memory.db does not freeze the MCP server's event loop.
45
+ */
46
+ recordNullWhenUnlocked(record) {
47
+ return writeWhenUnlockedOn(this.db, () => this.recordNull(record));
48
+ }
41
49
  /** Batch summaries for retrieval-time surfacing. Missing patterns simply have no entry. */
42
50
  getNullSummaries(patternIds) {
43
51
  const out = new Map();
@@ -7,6 +7,7 @@
7
7
  */
8
8
  import { LoggerFactory } from '../logging/index.js';
9
9
  import { toErrorMessage } from '../shared/error-utils.js';
10
+ import { writeWhenUnlockedOn } from '../shared/sqlite-write-queue.js';
10
11
  import { shouldPromotePattern, calculateQualityScore } from './qe-patterns.js';
11
12
  import { getWitnessChain } from '../audit/witness-chain.js';
12
13
  import { RELATED_DOMAINS } from './agent-routing.js';
@@ -76,7 +77,9 @@ export async function promotePattern(patternId, deps) {
76
77
  const result = await deps.patternStore.promote(patternId);
77
78
  if (result.success) {
78
79
  try {
79
- deps.getSqliteStore().promotePattern(patternId);
80
+ const store = deps.getSqliteStore();
81
+ // #1283: queued on the shared connection, so a locked memory.db does not freeze the MCP server.
82
+ await writeWhenUnlockedOn(store.getDatabase(), () => store.promotePattern(patternId));
80
83
  }
81
84
  catch (e) {
82
85
  logger.warn('SQLite pattern promotion persist failed', {
@@ -98,7 +101,7 @@ export async function promotePattern(patternId, deps) {
98
101
  if (peers.success) {
99
102
  for (const { pattern: peer } of peers.value) {
100
103
  if (peer.id !== patternId) {
101
- citationGraph.recordCoOccurrence(patternId, peer.id);
104
+ await writeWhenUnlockedOn(db, () => citationGraph.recordCoOccurrence(patternId, peer.id));
102
105
  }
103
106
  }
104
107
  }
@@ -126,7 +129,7 @@ export async function promotePattern(patternId, deps) {
126
129
  }
127
130
  }
128
131
  getWitnessChain()
129
- .then((wc) => wc.append('PATTERN_PROMOTE', { patternId }, 'reasoning-bank'))
132
+ .then((wc) => wc.appendWhenUnlocked('PATTERN_PROMOTE', { patternId }, 'reasoning-bank'))
130
133
  .catch((e) => {
131
134
  logger.warn('Witness chain PATTERN_PROMOTE failed', {
132
135
  error: toErrorMessage(e),
@@ -326,6 +326,12 @@ export declare class PatternStore implements IPatternStore {
326
326
  * Record pattern usage and update stats
327
327
  */
328
328
  recordUsage(id: string, success: boolean, metrics?: Record<string, unknown>, feedback?: string): Promise<Result<void>>;
329
+ /**
330
+ * Run a SQLite write through the store's writeWhenUnlocked queue (#1274):
331
+ * the hourly cleanup timer and fire-and-forget usage recording write here,
332
+ * and must not freeze the MCP server's event loop on a locked memory.db.
333
+ */
334
+ private persistToSqlite;
329
335
  /**
330
336
  * Promote pattern from short-term to long-term storage
331
337
  */
@@ -477,7 +477,8 @@ export class PatternStore {
477
477
  // Persist to SQLite (pattern + embedding atomically)
478
478
  if (this.sqliteStore) {
479
479
  try {
480
- const actualId = this.sqliteStore.storePattern(pattern, pattern.embedding, activeSpaceId);
480
+ // #1283: queued, so a locked memory.db does not freeze the MCP server.
481
+ const actualId = await this.persistToSqlite((store) => store.storePattern(pattern, pattern.embedding, activeSpaceId));
481
482
  // #447: ON CONFLICT(name, qe_domain, pattern_type) may preserve an
482
483
  // existing row's id instead of the one we generated — realign the
483
484
  // in-memory indices (and pattern.id itself) or every later
@@ -591,7 +592,7 @@ export class PatternStore {
591
592
  successRate: pattern.successRate,
592
593
  tier: pattern.tier,
593
594
  };
594
- this.deltaTracker.createGenesis(pattern.id, snapshot);
595
+ await this.deltaTracker.createGenesisWhenUnlocked(pattern.id, snapshot);
595
596
  }
596
597
  catch (error) {
597
598
  // Genesis may already exist if pattern was re-stored; log at debug level
@@ -1088,7 +1089,7 @@ export class PatternStore {
1088
1089
  // Persist usage to SQLite
1089
1090
  if (this.sqliteStore) {
1090
1091
  try {
1091
- this.sqliteStore.recordUsage(id, success, metrics, feedback);
1092
+ await this.persistToSqlite((store) => store.recordUsage(id, success, metrics, feedback));
1092
1093
  }
1093
1094
  catch (error) {
1094
1095
  console.warn(`[PatternStore] SQLite recordUsage failed for ${id}:`, toErrorMessage(error));
@@ -1115,7 +1116,7 @@ export class PatternStore {
1115
1116
  successRate: updated.successRate,
1116
1117
  tier: updated.tier,
1117
1118
  };
1118
- this.deltaTracker.recordDelta(id, before, after, { success });
1119
+ await this.deltaTracker.recordDeltaWhenUnlocked(id, before, after, { success });
1119
1120
  }
1120
1121
  catch (error) {
1121
1122
  console.debug(`[PatternStore] Delta recordDelta for ${id}:`, toErrorMessage(error));
@@ -1135,6 +1136,18 @@ export class PatternStore {
1135
1136
  }
1136
1137
  return ok(undefined);
1137
1138
  }
1139
+ /**
1140
+ * Run a SQLite write through the store's writeWhenUnlocked queue (#1274):
1141
+ * the hourly cleanup timer and fire-and-forget usage recording write here,
1142
+ * and must not freeze the MCP server's event loop on a locked memory.db.
1143
+ */
1144
+ persistToSqlite(write) {
1145
+ const store = this.sqliteStore;
1146
+ const run = () => write(store);
1147
+ return typeof store.writeWhenUnlocked === 'function'
1148
+ ? store.writeWhenUnlocked(run)
1149
+ : new Promise((resolve) => resolve(run()));
1150
+ }
1138
1151
  /**
1139
1152
  * Promote pattern from short-term to long-term storage
1140
1153
  */
@@ -1159,7 +1172,7 @@ export class PatternStore {
1159
1172
  // Persist promotion to SQLite
1160
1173
  if (this.sqliteStore) {
1161
1174
  try {
1162
- this.sqliteStore.promotePattern(id);
1175
+ await this.persistToSqlite((store) => store.promotePattern(id));
1163
1176
  }
1164
1177
  catch (e) {
1165
1178
  console.debug('[PatternStore] SQLite promotion error:', e instanceof Error ? e.message : e);
@@ -1181,7 +1194,7 @@ export class PatternStore {
1181
1194
  // Persist deletion to SQLite
1182
1195
  if (this.sqliteStore) {
1183
1196
  try {
1184
- this.sqliteStore.deletePattern(id);
1197
+ await this.persistToSqlite((store) => store.deletePattern(id));
1185
1198
  }
1186
1199
  catch (e) {
1187
1200
  console.debug('[PatternStore] SQLite deletion error:', e instanceof Error ? e.message : e);
@@ -365,7 +365,7 @@ export class QEReasoningBank {
365
365
  // ADR-070: Record pattern creation in witness chain
366
366
  if (committedPattern) {
367
367
  const sideEffectPattern = committedPattern;
368
- getWitnessChain().then(wc => wc.append('PATTERN_CREATE', { patternId: sideEffectPattern.id, domain: sideEffectPattern.qeDomain, confidence: sideEffectPattern.confidence, name: sideEffectPattern.name }, 'reasoning-bank')).catch((e) => { logger.warn('Witness chain PATTERN_CREATE failed', { error: toErrorMessage(e) }); });
368
+ getWitnessChain().then(wc => wc.appendWhenUnlocked('PATTERN_CREATE', { patternId: sideEffectPattern.id, domain: sideEffectPattern.qeDomain, confidence: sideEffectPattern.confidence, name: sideEffectPattern.name }, 'reasoning-bank')).catch((e) => { logger.warn('Witness chain PATTERN_CREATE failed', { error: toErrorMessage(e) }); });
369
369
  // Phase 3: Best-effort RVF dual-write for vector replication
370
370
  if (this.rvfDualWriter && sideEffectPattern.embedding && sideEffectPattern.embedding.length > 0) {
371
371
  try {
@@ -452,7 +452,7 @@ export class QEReasoningBank {
452
452
  this.stats.successfulOutcomes++;
453
453
  }
454
454
  // ADR-070: Record pattern update in witness chain
455
- getWitnessChain().then(wc => wc.append('PATTERN_UPDATE', { patternId: outcome.patternId, success: outcome.success }, 'reasoning-bank')).catch((e) => { logger.warn('Witness chain PATTERN_UPDATE failed', { error: toErrorMessage(e) }); });
455
+ getWitnessChain().then(wc => wc.appendWhenUnlocked('PATTERN_UPDATE', { patternId: outcome.patternId, success: outcome.success }, 'reasoning-bank')).catch((e) => { logger.warn('Witness chain PATTERN_UPDATE failed', { error: toErrorMessage(e) }); });
456
456
  // Check if pattern should be promoted (with coherence gate)
457
457
  const pattern = await this.getPattern(outcome.patternId);
458
458
  const deps = this.getPromotionDeps();
@@ -442,7 +442,9 @@ export async function recheckEmbedder(config = {}) {
442
442
  return initRetryPromise;
443
443
  }
444
444
  const client = endpointClient;
445
- if (!client || !client.getBreakerState().open)
445
+ // #1216: also when the breaker window elapsed but no trial probe has
446
+ // succeeded yet; embed() would only start that trial and fail fast.
447
+ if (!client || !client.needsTrial())
446
448
  return;
447
449
  const identity = await client.probeThroughOpenBreaker();
448
450
  if (endpointIdentity && identity.fingerprint !== endpointIdentity.fingerprint) {
@@ -349,6 +349,11 @@ export declare class RealQEReasoningBank {
349
349
  * @param trajectoryId - Trajectory ID
350
350
  */
351
351
  linkPatternToTrajectory(patternId: string, trajectoryId: string): Promise<void>;
352
+ /**
353
+ * Run a SQLite write through the shared connection's write queue (#1283),
354
+ * so a locked memory.db does not freeze the MCP server's event loop.
355
+ */
356
+ private persist;
352
357
  /**
353
358
  * Get the enhanced ReasoningBank adapter for full agentic-flow integration
354
359
  *