agentic-qe 3.15.11 → 3.15.13

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 (522) hide show
  1. package/.claude/hooks/aqe-hook.cjs +38 -2
  2. package/.claude/skills/skills-manifest.json +1 -1
  3. package/CHANGELOG.md +267 -0
  4. package/assets/skills/skills-manifest.json +1 -1
  5. package/dist/cli/bundle.js +6 -6
  6. package/dist/cli/chunks/adapter-KCQDVYY2.js +2 -0
  7. package/dist/cli/chunks/{agent-booster-wasm-TIDSQ3ZK.js → agent-booster-wasm-6RRQWMNE.js} +2 -2
  8. package/dist/cli/chunks/{agent-handler-G3EPBVA7.js → agent-handler-AOH6TV7W.js} +2 -2
  9. package/dist/cli/chunks/{agent-memory-branch-ARC5C7GW.js → agent-memory-branch-2P54SF5N.js} +2 -2
  10. package/dist/cli/chunks/aqe-learning-engine-SAQOHSGN.js +2 -0
  11. package/dist/cli/chunks/{arena-K4I4QDXB.js → arena-NSVFCAF5.js} +2 -2
  12. package/dist/cli/chunks/{arena-36DTATJV.js → arena-X6MOGQHA.js} +4 -4
  13. package/dist/cli/chunks/{audit-WQSJSJZF.js → audit-27DJLQNM.js} +3 -3
  14. package/dist/cli/chunks/base-WCACU3FN.js +2 -0
  15. package/dist/cli/chunks/{better-sqlite3-BB4K67MT.js → better-sqlite3-BU5GXILS.js} +2 -2
  16. package/dist/cli/chunks/{brain-handler-CU3GOIU3.js → brain-handler-GTQNHHZS.js} +3 -3
  17. package/dist/cli/chunks/{branch-enumerator-NJQX7ZNB.js → branch-enumerator-5CLULOCU.js} +2 -2
  18. package/dist/cli/chunks/{browser-6YJF4FQW.js → browser-R4DMU3LN.js} +2 -2
  19. package/dist/cli/chunks/browser-workflow-G6IASEAP.js +2 -0
  20. package/dist/cli/chunks/{chunk-G4FAPO57.js → chunk-2G7TVT6W.js} +2 -2
  21. package/dist/cli/chunks/{chunk-HDNWSKHA.js → chunk-32ZMWEP3.js} +2 -2
  22. package/dist/cli/chunks/{chunk-FWSGPE3V.js → chunk-3AN5TNGD.js} +3 -3
  23. package/dist/cli/chunks/{chunk-X4J73KP3.js → chunk-3LJ7LQMV.js} +1 -1
  24. package/dist/cli/chunks/{chunk-3RHOPP7A.js → chunk-3QZEGE67.js} +1 -1
  25. package/dist/cli/chunks/{chunk-RBZCA7SD.js → chunk-3RZV5DGO.js} +2 -2
  26. package/dist/cli/chunks/{chunk-DDEOZPWJ.js → chunk-3Y2ROSCL.js} +2 -2
  27. package/dist/cli/chunks/{chunk-LD5CFK53.js → chunk-3Y7TJFHU.js} +2 -2
  28. package/dist/cli/chunks/{chunk-I36CRDHF.js → chunk-3YNLWPBF.js} +2 -2
  29. package/dist/cli/chunks/{chunk-ZMC543GI.js → chunk-42J34YG4.js} +2 -2
  30. package/dist/cli/chunks/{chunk-YNOCQ2SL.js → chunk-4OVC4RIL.js} +1 -1
  31. package/dist/cli/chunks/{chunk-2KFFEKSI.js → chunk-526QYFJU.js} +2 -2
  32. package/dist/cli/chunks/{chunk-LBX7M4LW.js → chunk-5FKWCZNF.js} +2 -2
  33. package/dist/cli/chunks/{chunk-OH5V5EJW.js → chunk-5K26BEYB.js} +2 -2
  34. package/dist/cli/chunks/{chunk-TCYSBC7Y.js → chunk-5MDERQH3.js} +1 -1
  35. package/dist/cli/chunks/{chunk-V5AADCBC.js → chunk-5VMAV6T6.js} +1 -1
  36. package/dist/cli/chunks/{chunk-YBBT3YYG.js → chunk-5ZGM3RMH.js} +1 -1
  37. package/dist/cli/chunks/{chunk-RTY7VSZB.js → chunk-6KATY3KS.js} +2 -2
  38. package/dist/cli/chunks/{chunk-LPU6PAJE.js → chunk-6Z7PRBSG.js} +2 -2
  39. package/dist/cli/chunks/{chunk-6NA3KZZT.js → chunk-72ASBE35.js} +7 -7
  40. package/dist/cli/chunks/{chunk-GBFUANTC.js → chunk-756CGMEH.js} +1 -1
  41. package/dist/cli/chunks/{chunk-UTTSH4NH.js → chunk-75RDHBAX.js} +3 -3
  42. package/dist/cli/chunks/{chunk-XGPTZUKQ.js → chunk-7CMTY45A.js} +2 -2
  43. package/dist/cli/chunks/{chunk-NC6K7SCQ.js → chunk-7JUC2MVZ.js} +2 -2
  44. package/dist/cli/chunks/{chunk-RTFKTKSO.js → chunk-7NA7JXNB.js} +2 -2
  45. package/dist/cli/chunks/{chunk-GWJWSLDA.js → chunk-7PLIEBY7.js} +2 -2
  46. package/dist/cli/chunks/{chunk-OURITHFV.js → chunk-7YTGHGK4.js} +2 -2
  47. package/dist/cli/chunks/{chunk-ITL3IN2E.js → chunk-A64JFBWI.js} +2 -2
  48. package/dist/cli/chunks/{chunk-OHR7C777.js → chunk-AL6FBH3E.js} +2 -2
  49. package/dist/cli/chunks/{chunk-5N25I53C.js → chunk-AQSVJNEH.js} +2 -2
  50. package/dist/cli/chunks/{chunk-FL32MTKT.js → chunk-ARJW4I2O.js} +2 -2
  51. package/dist/cli/chunks/{chunk-ZQHDA4O7.js → chunk-ASQYASNV.js} +1 -1
  52. package/dist/cli/chunks/{chunk-4HJKQIX5.js → chunk-BEGR4D6N.js} +2 -2
  53. package/dist/cli/chunks/{chunk-G77MLBDF.js → chunk-BK577VL7.js} +2 -2
  54. package/dist/cli/chunks/{chunk-NPZOBSAN.js → chunk-BLSLEVDI.js} +2 -2
  55. package/dist/cli/chunks/{chunk-R5LGV6GZ.js → chunk-BTVEYBW2.js} +2 -2
  56. package/dist/cli/chunks/{chunk-2CW7VRPH.js → chunk-C6JTLKG7.js} +5 -5
  57. package/dist/cli/chunks/{chunk-EWPUQCN4.js → chunk-C7JM7CD3.js} +2 -2
  58. package/dist/cli/chunks/{chunk-325QCVDI.js → chunk-CCMKSHAT.js} +2 -2
  59. package/dist/cli/chunks/{chunk-V7DA4HAK.js → chunk-CE7B5LU7.js} +1 -1
  60. package/dist/cli/chunks/{chunk-4RAQ7PJA.js → chunk-CM4LSLKR.js} +2 -2
  61. package/dist/cli/chunks/chunk-CRWPZT74.js +62 -0
  62. package/dist/cli/chunks/{chunk-U3LJNNVJ.js → chunk-CT6SAVXQ.js} +2 -2
  63. package/dist/cli/chunks/chunk-CV77DMDQ.js +2 -0
  64. package/dist/cli/chunks/{chunk-UMVSWQNB.js → chunk-DFUASIKA.js} +2 -2
  65. package/dist/cli/chunks/{chunk-KSE5TDM5.js → chunk-DLD7RUZ4.js} +2 -2
  66. package/dist/cli/chunks/{chunk-4MUBW4RT.js → chunk-DNDL7SOS.js} +2 -2
  67. package/dist/cli/chunks/{chunk-EJPK7OTR.js → chunk-DVGRPK7A.js} +2 -2
  68. package/dist/cli/chunks/{chunk-WCVCOT4E.js → chunk-E56B6IDX.js} +2 -2
  69. package/dist/cli/chunks/{chunk-7HEMJHPP.js → chunk-E7CLYGS7.js} +1 -1
  70. package/dist/cli/chunks/{chunk-R5GRABPQ.js → chunk-EXGMJFAT.js} +1 -1
  71. package/dist/cli/chunks/chunk-F3YS57NF.js +21 -0
  72. package/dist/cli/chunks/{chunk-I4K2HTQU.js → chunk-FZ76G4QJ.js} +1 -1
  73. package/dist/cli/chunks/{chunk-4UX35V7P.js → chunk-G2Q66Z23.js} +2 -2
  74. package/dist/cli/chunks/{chunk-KJCIMNHS.js → chunk-G6WDYBLQ.js} +1 -1
  75. package/dist/cli/chunks/{chunk-VWUZSNVC.js → chunk-G77ERMUD.js} +1 -1
  76. package/dist/cli/chunks/{chunk-FZHSG75I.js → chunk-GB6HBNH2.js} +2 -2
  77. package/dist/cli/chunks/{chunk-KDI5JOYZ.js → chunk-GHM6MQNK.js} +2 -2
  78. package/dist/cli/chunks/{chunk-H7BLYMNU.js → chunk-GHY6Z6KO.js} +5 -5
  79. package/dist/cli/chunks/{chunk-TFW7CCKS.js → chunk-GII6UM3F.js} +1 -1
  80. package/dist/cli/chunks/{chunk-DOBZPSKE.js → chunk-GU5HNCWI.js} +1 -1
  81. package/dist/cli/chunks/{chunk-AFFN6E6Q.js → chunk-H4GG2NLO.js} +2 -2
  82. package/dist/cli/chunks/{chunk-7R5HC56U.js → chunk-H4H2YSFH.js} +1 -1
  83. package/dist/cli/chunks/{chunk-J4JMCZVA.js → chunk-HD7YIFOI.js} +2 -2
  84. package/dist/cli/chunks/{chunk-5MTWCCZJ.js → chunk-HOAJUIBQ.js} +2 -2
  85. package/dist/cli/chunks/{chunk-T5KHJ3J7.js → chunk-HQZGPJYG.js} +2 -2
  86. package/dist/cli/chunks/{chunk-VEEYL2CZ.js → chunk-HZ5NXFXH.js} +2 -2
  87. package/dist/cli/chunks/{chunk-LQ4NUC6Q.js → chunk-I3C7JOXC.js} +2 -2
  88. package/dist/cli/chunks/{chunk-Z2EA7A4Z.js → chunk-IC3TQEOA.js} +1 -1
  89. package/dist/cli/chunks/{chunk-E44NNCEU.js → chunk-IJUHSJ2U.js} +2 -2
  90. package/dist/cli/chunks/{chunk-EH2S6AOR.js → chunk-J2ZIFFM6.js} +2 -2
  91. package/dist/cli/chunks/{chunk-GVKVJJQX.js → chunk-JGZ722G3.js} +2 -2
  92. package/dist/cli/chunks/{chunk-EK5GMOSO.js → chunk-JQGMW45H.js} +1 -1
  93. package/dist/cli/chunks/{chunk-XGBU3KEM.js → chunk-JRRXCODW.js} +2 -2
  94. package/dist/cli/chunks/{chunk-5WYZHDIZ.js → chunk-K3TLLJMX.js} +1 -1
  95. package/dist/cli/chunks/{chunk-LXQ3B4RY.js → chunk-K4CZA77U.js} +2 -2
  96. package/dist/cli/chunks/chunk-K65CGKLD.js +8 -0
  97. package/dist/cli/chunks/{chunk-HFFPYC4G.js → chunk-KADFXPPN.js} +2 -2
  98. package/dist/cli/chunks/{chunk-APPZATXA.js → chunk-KB56CPU4.js} +2 -2
  99. package/dist/cli/chunks/{chunk-25P77WA5.js → chunk-KCW47QR5.js} +1 -1
  100. package/dist/cli/chunks/{chunk-WM3SRRA6.js → chunk-KDNJ4F3P.js} +2 -2
  101. package/dist/cli/chunks/{chunk-5ERFHEEE.js → chunk-KDVZND5Q.js} +1 -1
  102. package/dist/cli/chunks/{chunk-YOCULVHR.js → chunk-KUAKV3IW.js} +1 -1
  103. package/dist/cli/chunks/{chunk-M5XYIQYZ.js → chunk-KV4T4MXK.js} +2 -2
  104. package/dist/cli/chunks/{chunk-MIK4RBEH.js → chunk-KWYH3FI4.js} +1 -1
  105. package/dist/cli/chunks/{chunk-UKKYMW3S.js → chunk-LFJALJOA.js} +2 -2
  106. package/dist/cli/chunks/{chunk-K7V2WZNF.js → chunk-LL7LDPXS.js} +1 -1
  107. package/dist/cli/chunks/{chunk-55CH76ZO.js → chunk-LUZNKJE6.js} +3 -3
  108. package/dist/cli/chunks/{chunk-OV5RPLKV.js → chunk-LWR3FV3Y.js} +2 -2
  109. package/dist/cli/chunks/{chunk-SMVVAVN2.js → chunk-LZYQHVD4.js} +2 -2
  110. package/dist/cli/chunks/{chunk-672XOJDG.js → chunk-M6AAGIG7.js} +1 -1
  111. package/dist/cli/chunks/{chunk-WCAVIJ64.js → chunk-MAMQA43L.js} +1 -1
  112. package/dist/cli/chunks/chunk-MB46UBGY.js +3 -0
  113. package/dist/cli/chunks/{chunk-AP3ADWDK.js → chunk-MFW5HSG4.js} +2 -2
  114. package/dist/cli/chunks/{chunk-NKTWKYHB.js → chunk-MGZ5FJUW.js} +2 -2
  115. package/dist/cli/chunks/{chunk-ERN43HOX.js → chunk-MVVB7C2E.js} +410 -410
  116. package/dist/cli/chunks/{chunk-57LNKSW7.js → chunk-N4CYAKOX.js} +2 -2
  117. package/dist/cli/chunks/chunk-NT4DBXSX.js +2 -0
  118. package/dist/cli/chunks/{chunk-BZPE3LDO.js → chunk-NU3W5WFT.js} +2 -2
  119. package/dist/cli/chunks/chunk-NURIILUB.js +2 -0
  120. package/dist/cli/chunks/{chunk-ITPGWGQS.js → chunk-NW7IBHJA.js} +4 -4
  121. package/dist/cli/chunks/{chunk-OD5D4LSZ.js → chunk-NZ3GUMB2.js} +2 -2
  122. package/dist/cli/chunks/{chunk-35M2X3C5.js → chunk-NZD4DPSU.js} +2 -2
  123. package/dist/cli/chunks/{chunk-EIDJNT5C.js → chunk-O6FGXMHD.js} +1 -1
  124. package/dist/cli/chunks/{chunk-OYJC3YON.js → chunk-OCAEXYFA.js} +2 -2
  125. package/dist/cli/chunks/{chunk-Y7B5EUIJ.js → chunk-OFACHK5O.js} +2 -2
  126. package/dist/cli/chunks/{chunk-5MNASJOH.js → chunk-P7A4NKTZ.js} +2 -2
  127. package/dist/cli/chunks/{chunk-M7XFBSIK.js → chunk-PB6J6HAA.js} +2 -2
  128. package/dist/cli/chunks/{chunk-5HQP4SLM.js → chunk-PHP5UBT4.js} +2 -2
  129. package/dist/cli/chunks/{chunk-KXS3Y2AX.js → chunk-PIDQVU3L.js} +2 -2
  130. package/dist/cli/chunks/{chunk-4UBVAJFO.js → chunk-PSFSPGUD.js} +2 -2
  131. package/dist/cli/chunks/chunk-PT4FMJPQ.js +3 -0
  132. package/dist/cli/chunks/{chunk-HDJUYAZG.js → chunk-Q3UDLV5Z.js} +1 -1
  133. package/dist/cli/chunks/{chunk-CIAL4YRY.js → chunk-QDEJ4CI2.js} +2 -2
  134. package/dist/cli/chunks/{chunk-S6IYEBAI.js → chunk-QPNG5ZN2.js} +2 -2
  135. package/dist/cli/chunks/{chunk-YPX2TV3M.js → chunk-R7SYRCRP.js} +1 -1
  136. package/dist/cli/chunks/{chunk-XNLIWQYE.js → chunk-RF7HWBHN.js} +2 -2
  137. package/dist/cli/chunks/{chunk-5YLOLACR.js → chunk-RFNW2LGD.js} +2 -2
  138. package/dist/cli/chunks/{chunk-2VLYUF7U.js → chunk-S5AZCIZS.js} +2 -2
  139. package/dist/cli/chunks/{chunk-ETVAYGCB.js → chunk-SE4VNN4I.js} +3 -3
  140. package/dist/cli/chunks/{chunk-E6PF35JZ.js → chunk-SG3NX7QE.js} +2 -2
  141. package/dist/cli/chunks/{chunk-VYTILW4R.js → chunk-SSU73QAX.js} +2 -2
  142. package/dist/cli/chunks/{chunk-ZP75ASUU.js → chunk-SVLQRAMF.js} +1 -1
  143. package/dist/cli/chunks/{chunk-JGJXXAS6.js → chunk-SYV2V3PL.js} +4 -4
  144. package/dist/cli/chunks/{chunk-4RH5I24Q.js → chunk-T3PGQFDI.js} +2 -2
  145. package/dist/cli/chunks/{chunk-O4JAKWWM.js → chunk-TCBBNUBP.js} +17 -17
  146. package/dist/cli/chunks/{chunk-QDESWOZP.js → chunk-TOQWL2ZF.js} +2 -2
  147. package/dist/cli/chunks/{chunk-NTB342NJ.js → chunk-TSQC2KKZ.js} +4 -4
  148. package/dist/cli/chunks/{chunk-NQZNMCZU.js → chunk-TWDW32W2.js} +2 -2
  149. package/dist/cli/chunks/{chunk-CO3DX2AX.js → chunk-TWJTK4CC.js} +2 -2
  150. package/dist/cli/chunks/{chunk-FUYOOKTH.js → chunk-U2FUXDDJ.js} +3 -3
  151. package/dist/cli/chunks/{chunk-XDI5X3FR.js → chunk-UDQSYWVF.js} +1 -1
  152. package/dist/cli/chunks/chunk-UOC3O6RP.js +5 -0
  153. package/dist/cli/chunks/chunk-UT2VZ33P.js +2 -0
  154. package/dist/cli/chunks/{chunk-IOZRKXR5.js → chunk-UTRV7T2N.js} +2 -2
  155. package/dist/cli/chunks/{chunk-ZMHCMJ4J.js → chunk-UXZSUMEA.js} +2 -2
  156. package/dist/cli/chunks/{chunk-G4CKPWF6.js → chunk-VRHRBAEM.js} +1 -1
  157. package/dist/cli/chunks/{chunk-AUUJBXWX.js → chunk-VRVMIPTM.js} +2 -2
  158. package/dist/cli/chunks/{chunk-IENZSO3K.js → chunk-VTDFVFST.js} +2 -2
  159. package/dist/cli/chunks/{chunk-JFLU7L3W.js → chunk-VTOBUZL6.js} +2 -2
  160. package/dist/cli/chunks/{chunk-KKYO2NKV.js → chunk-VU5TBX2V.js} +2 -2
  161. package/dist/cli/chunks/{chunk-XS2XF3YG.js → chunk-W26B7ERY.js} +1 -1
  162. package/dist/cli/chunks/{chunk-DOFREOPQ.js → chunk-W2QWSQVE.js} +2 -2
  163. package/dist/cli/chunks/{chunk-KSLLHFVY.js → chunk-W3INMZZ6.js} +1 -1
  164. package/dist/cli/chunks/{chunk-FLU5FDSC.js → chunk-W3PPFHI5.js} +59 -59
  165. package/dist/cli/chunks/chunk-WKGTGOYS.js +13 -0
  166. package/dist/cli/chunks/{chunk-4X4MWMHB.js → chunk-WNQS4WTS.js} +2 -2
  167. package/dist/cli/chunks/{chunk-XJKZ7FTR.js → chunk-WO274FRI.js} +2 -2
  168. package/dist/cli/chunks/{chunk-76SNL7GU.js → chunk-WOCGL4QP.js} +2 -2
  169. package/dist/cli/chunks/{chunk-HYXUN7BW.js → chunk-WQL7WCIZ.js} +1 -1
  170. package/dist/cli/chunks/{chunk-BTVWA35P.js → chunk-X2Z7F4EU.js} +2 -2
  171. package/dist/cli/chunks/{chunk-VBK2YAYY.js → chunk-X7N2JF2X.js} +2 -2
  172. package/dist/cli/chunks/{chunk-NT7JRHMH.js → chunk-XEAEYC6Y.js} +1 -1
  173. package/dist/cli/chunks/{chunk-G2IJFNZS.js → chunk-XNBOGCF3.js} +2 -2
  174. package/dist/cli/chunks/{chunk-LCVEEII4.js → chunk-XPRVF4YE.js} +2 -2
  175. package/dist/cli/chunks/{chunk-AMZKAJLJ.js → chunk-YBQH2VOP.js} +2 -2
  176. package/dist/cli/chunks/{chunk-JUMICXM6.js → chunk-YQFLQE53.js} +2 -2
  177. package/dist/cli/chunks/{chunk-M5RQ6U3G.js → chunk-YSZ5OE3Z.js} +2 -2
  178. package/dist/cli/chunks/{chunk-RQMCZQN2.js → chunk-YXRASAPI.js} +2 -2
  179. package/dist/cli/chunks/{chunk-X3PZCXWG.js → chunk-YZEXYO4W.js} +1 -1
  180. package/dist/cli/chunks/{chunk-TL6OFMXF.js → chunk-YZWBNBTW.js} +2 -2
  181. package/dist/cli/chunks/{chunk-CFWGGRE7.js → chunk-ZAKQLAHT.js} +1 -1
  182. package/dist/cli/chunks/ci-ENOASTYB.js +81 -0
  183. package/dist/cli/chunks/{ci-config-J665XNOX.js → ci-config-B26OXHQM.js} +2 -2
  184. package/dist/cli/chunks/{ci-output-PEQQQWVD.js → ci-output-JTCLLNOQ.js} +2 -2
  185. package/dist/cli/chunks/{circuit-breaker-HHB2JSKH.js → circuit-breaker-23JMFNM5.js} +2 -2
  186. package/dist/cli/chunks/{claude-flow-setup-JKUJRWPN.js → claude-flow-setup-ON6L462G.js} +2 -2
  187. package/dist/cli/chunks/client-TV3V2YZ5.js +2 -0
  188. package/dist/cli/chunks/{cline-installer-Y77BWTAN.js → cline-installer-OWQ4D2FQ.js} +2 -2
  189. package/dist/cli/chunks/{code-LV2HAGJY.js → code-2ZRL7SEU.js} +19 -18
  190. package/dist/cli/chunks/{code-index-extractor-4GKKSETB.js → code-index-extractor-JXSQVM67.js} +2 -2
  191. package/dist/cli/chunks/{codex-installer-WMKBYE5Y.js → codex-installer-7LXZYBSQ.js} +2 -2
  192. package/dist/cli/chunks/{completions-SBGFAOIJ.js → completions-C2LR623C.js} +2 -2
  193. package/dist/cli/chunks/{complexity-analyzer-AQHFIJXC.js → complexity-analyzer-TGQLHCYJ.js} +2 -2
  194. package/dist/cli/chunks/{continuedev-installer-26AYFS2E.js → continuedev-installer-RUGD24D2.js} +2 -2
  195. package/dist/cli/chunks/{copilot-installer-4UD3DK55.js → copilot-installer-ZLFVLEJP.js} +2 -2
  196. package/dist/cli/chunks/core-handlers-PZT4OLWR.js +2 -0
  197. package/dist/cli/chunks/{cost-tracker-TP4NZCG4.js → cost-tracker-RT4QL745.js} +2 -2
  198. package/dist/cli/chunks/{coverage-B2KIXHAI.js → coverage-NV3C4IMM.js} +11 -10
  199. package/dist/cli/chunks/cross-domain-router-QOFCZ7G4.js +2 -0
  200. package/dist/cli/chunks/{cursor-installer-AVZEQZ4W.js → cursor-installer-LJKLNFF6.js} +2 -2
  201. package/dist/cli/chunks/{daemon-XM2A7LQU.js → daemon-BMDXCQT5.js} +3 -3
  202. package/dist/cli/chunks/{daemon-P574WWBW.js → daemon-FBH3IRYN.js} +4 -4
  203. package/dist/cli/chunks/{dag-attention-scheduler-MIWOZ6ET.js → dag-attention-scheduler-JGDED55I.js} +2 -2
  204. package/dist/cli/chunks/{detect-TYR7HT23.js → detect-SZIHIVCJ.js} +2 -2
  205. package/dist/cli/chunks/{dist-node-2DGVQGLS.js → dist-node-FV3KWXQ6.js} +2 -2
  206. package/dist/cli/chunks/{domain-handler-RRA4ZOMF.js → domain-handler-GI5JWQOV.js} +2 -2
  207. package/dist/cli/chunks/{domain-plugins-IVZEZ5RB.js → domain-plugins-BUWY36TL.js} +2 -2
  208. package/dist/cli/chunks/domain-transfer-GCY7W5DA.js +2 -0
  209. package/dist/cli/chunks/dream-TRFBGDSQ.js +2 -0
  210. package/dist/cli/chunks/{embed-and-insert-pattern-VNIEOVPO.js → embed-and-insert-pattern-GPRR3ZGD.js} +2 -2
  211. package/dist/cli/chunks/{eval-QV4LVPUF.js → eval-XPB3IGAP.js} +2 -2
  212. package/dist/cli/chunks/{experience-capture-middleware-DAPKT763.js → experience-capture-middleware-2E554UB3.js} +3 -3
  213. package/dist/cli/chunks/{fast-paths-WVRFPHX7.js → fast-paths-ZSMWZPUC.js} +2 -2
  214. package/dist/cli/chunks/{feature-flags-DEFTUIYT.js → feature-flags-GIWVDVVC.js} +2 -2
  215. package/dist/cli/chunks/{feature-flags-O7ZXDDCD.js → feature-flags-N7EOGE5P.js} +2 -2
  216. package/dist/cli/chunks/file-discovery-WCKGMSPZ.js +2 -0
  217. package/dist/cli/chunks/fleet-HCHDOUCX.js +44 -0
  218. package/dist/cli/chunks/{gnn-wrapper-LS4LZJDR.js → gnn-wrapper-CZNCNXXZ.js} +2 -2
  219. package/dist/cli/chunks/{heartbeat-handler-RFTERD4K.js → heartbeat-handler-6YUIF2YQ.js} +4 -4
  220. package/dist/cli/chunks/heartbeat-scheduler-P44A2OX3.js +2 -0
  221. package/dist/cli/chunks/hnsw-adapter-ZJQIQJKC.js +2 -0
  222. package/dist/cli/chunks/hnsw-index-HMG2GH3Z.js +2 -0
  223. package/dist/cli/chunks/{hnsw-legacy-bridge-GPKGFFHY.js → hnsw-legacy-bridge-J3M3IK24.js} +2 -2
  224. package/dist/cli/chunks/{hnswlib-node-PHL3F2PR.js → hnswlib-node-ULGTGDZW.js} +2 -2
  225. package/dist/cli/chunks/{hooks-GYJ6D4QM.js → hooks-C4BUGYUQ.js} +28 -28
  226. package/dist/cli/chunks/hybrid-backend-B7M74PZG.js +2 -0
  227. package/dist/cli/chunks/{hypergraph-engine-YGEQPCKJ.js → hypergraph-engine-WINGVMPG.js} +2 -2
  228. package/dist/cli/chunks/{hypergraph-handler-ZIMM647V.js → hypergraph-handler-GADMWKAU.js} +3 -3
  229. package/dist/cli/chunks/impact-analyzer-PZYOVKQO.js +2 -0
  230. package/dist/cli/chunks/{init-guard-VOMBXJXG.js → init-guard-K2T4QWAO.js} +2 -2
  231. package/dist/cli/chunks/{init-handler-PSMUBWK5.js → init-handler-PCZTDZYI.js} +6 -6
  232. package/dist/cli/chunks/init-wizard-TZDJQK3U.js +2 -0
  233. package/dist/cli/chunks/kernel-Y6RRIOKW.js +2 -0
  234. package/dist/cli/chunks/{kilocode-installer-2YNTFBWJ.js → kilocode-installer-XENXNEIU.js} +2 -2
  235. package/dist/cli/chunks/{kiro-installer-XHJDPVAZ.js → kiro-installer-3PG2TJ67.js} +2 -2
  236. package/dist/cli/chunks/knowledge-graph-BVD5Z66M.js +2 -0
  237. package/dist/cli/chunks/{learning-GNSIDRNG.js → learning-6KDH7FK4.js} +3 -3
  238. package/dist/cli/chunks/{llm-router-LQDM7IU2.js → llm-router-RKVDEWU2.js} +4 -4
  239. package/dist/cli/chunks/llm-router-service-KHCAMSUU.js +2 -0
  240. package/dist/cli/chunks/{load-YATHI72E.js → load-ITHC564X.js} +2 -2
  241. package/dist/cli/chunks/load-test-RUF7DZA5.js +2 -0
  242. package/dist/cli/chunks/{mcp-4Y6GDLYK.js → mcp-TCL5UW3N.js} +2 -2
  243. package/dist/cli/chunks/{memory-OUW3L7H2.js → memory-BKDAY2N2.js} +5 -5
  244. package/dist/cli/chunks/memory-backend-7ZLFOVGG.js +2 -0
  245. package/dist/cli/chunks/{memory-handlers-G3LFF53U.js → memory-handlers-WN4FXFOA.js} +2 -2
  246. package/dist/cli/chunks/{multi-model-executor-UBZJXAD2.js → multi-model-executor-VHAT7ZPF.js} +2 -2
  247. package/dist/cli/chunks/{opencode-installer-AMMNWVH5.js → opencode-installer-E3VM3EEY.js} +2 -2
  248. package/dist/cli/chunks/{orchestrator-Y44WDOER.js → orchestrator-BMQ6X762.js} +58 -20
  249. package/dist/cli/chunks/pattern-null-store-RY6CVYHP.js +2 -0
  250. package/dist/cli/chunks/{pattern-usage-recorder-ESR42RME.js → pattern-usage-recorder-GOOR2BV5.js} +2 -2
  251. package/dist/cli/chunks/{pipeline-EDTS6OSC.js → pipeline-5NSFQQIX.js} +2 -2
  252. package/dist/cli/chunks/{platform-5WONJSUX.js → platform-SQM34J5G.js} +2 -2
  253. package/dist/cli/chunks/{plugin-IJXPCLD4.js → plugin-UQJZRMZG.js} +2 -2
  254. package/dist/cli/chunks/{prime-radiant-advanced-wasm-5ECKGZK6.js → prime-radiant-advanced-wasm-WMDJOL4S.js} +2 -2
  255. package/dist/cli/chunks/project-root-IO5KRNGL.js +2 -0
  256. package/dist/cli/chunks/protocol-executor-U2CUDWDE.js +2 -0
  257. package/dist/cli/chunks/{protocol-handler-DRD3GVNW.js → protocol-handler-OBDCVY6X.js} +2 -2
  258. package/dist/cli/chunks/{prove-KTGW2HMJ.js → prove-XDC7I4XT.js} +2 -2
  259. package/dist/cli/chunks/qe-reasoning-bank-DQSSX2IP.js +2 -0
  260. package/dist/cli/chunks/{quality-DV2WPRRS.js → quality-L4GQ6WX4.js} +2 -2
  261. package/dist/cli/chunks/{quality-gate-HFUAFVZC.js → quality-gate-MJG66LKN.js} +3 -3
  262. package/dist/cli/chunks/queen-coordinator-6FN4BZIX.js +2 -0
  263. package/dist/cli/chunks/real-embeddings-HW4G2LWL.js +2 -0
  264. package/dist/cli/chunks/{ref-validation-QWSKS5OY.js → ref-validation-FC7JOJ2C.js} +2 -2
  265. package/dist/cli/chunks/{roocode-installer-RBAYRCHX.js → roocode-installer-KWS4CEIC.js} +2 -2
  266. package/dist/cli/chunks/router-YUO3I7RU.js +2 -0
  267. package/dist/cli/chunks/routing-feedback-36SLQGJE.js +2 -0
  268. package/dist/cli/chunks/{routing-handler-FMPP3XKO.js → routing-handler-QF4WVB2S.js} +2 -2
  269. package/dist/cli/chunks/{ruvector-commands-KZZT4HWF.js → ruvector-commands-2MTCOUK6.js} +2 -2
  270. package/dist/cli/chunks/rvf-dual-writer-FRYZH3WZ.js +2 -0
  271. package/dist/cli/chunks/rvf-migration-adapter-XXNITL5I.js +2 -0
  272. package/dist/cli/chunks/{rvf-migration-coordinator-7CHEV35N.js → rvf-migration-coordinator-BREJCXWN.js} +2 -2
  273. package/dist/cli/chunks/rvf-native-adapter-D2WWKJIV.js +2 -0
  274. package/dist/cli/chunks/{rvf-store-integrity-Q2TH52SN.js → rvf-store-integrity-KKC6HOJD.js} +2 -2
  275. package/dist/cli/chunks/safe-db-4RRIGRXD.js +2 -0
  276. package/dist/cli/chunks/schedule-25RTO4DQ.js +2 -0
  277. package/dist/cli/chunks/scheduler-BPIOJZ5P.js +2 -0
  278. package/dist/cli/chunks/{security-CUEA3UIM.js → security-OSAE7VAP.js} +3 -3
  279. package/dist/cli/chunks/{shared-rvf-adapter-DROMBRV2.js → shared-rvf-adapter-COUOS665.js} +2 -2
  280. package/dist/cli/chunks/{shared-rvf-dual-writer-DBNABOP7.js → shared-rvf-dual-writer-YXMPZKQE.js} +2 -2
  281. package/dist/cli/chunks/sqlite-persistence-EDF47DDX.js +2 -0
  282. package/dist/cli/chunks/{standalone-memory-IAHA3M6B.js → standalone-memory-E6JBMOIL.js} +2 -2
  283. package/dist/cli/chunks/{status-handler-AFUCASTX.js → status-handler-AFTCIYIX.js} +2 -2
  284. package/dist/cli/chunks/{structural-health-AQRV6JJ6.js → structural-health-2FROCEI4.js} +2 -2
  285. package/dist/cli/chunks/{sync-XW5TLZ7M.js → sync-VAYTOWDC.js} +2 -2
  286. package/dist/cli/chunks/{sync-GX7FMJHL.js → sync-YIQYOFGW.js} +2 -2
  287. package/dist/cli/chunks/task-handler-KVQHDEX3.js +62 -0
  288. package/dist/cli/chunks/task-handlers-MVVECQA6.js +9 -0
  289. package/dist/cli/chunks/{test-D2XDJNDX.js → test-5JSVTOMY.js} +4 -4
  290. package/dist/cli/chunks/test-runner-process-LEPF2OSS.js +2 -0
  291. package/dist/cli/chunks/{test-scheduling-TS6I2PR7.js → test-scheduling-HBOHVLI3.js} +3 -3
  292. package/dist/cli/chunks/{token-bootstrap-HBBLPCZ3.js → token-bootstrap-5VEPTPFA.js} +2 -2
  293. package/dist/cli/chunks/{token-usage-3MBUX4PR.js → token-usage-TBJHDLY6.js} +2 -2
  294. package/dist/cli/chunks/{transformers-ZWMQO3L2.js → transformers-VAWYMHMZ.js} +2 -2
  295. package/dist/cli/chunks/tree-sitter-wasm-parser-TSZTCMFV.js +2 -0
  296. package/dist/cli/chunks/{types-5YEMGPSQ.js → types-R5SDZU2E.js} +2 -2
  297. package/dist/cli/chunks/unified-memory-TLGSSLMI.js +2 -0
  298. package/dist/cli/chunks/unified-memory-hnsw-MSUR7ZOO.js +2 -0
  299. package/dist/cli/chunks/unified-persistence-VFFOTWK7.js +2 -0
  300. package/dist/cli/chunks/{upgrade-2TPBKIHI.js → upgrade-K5PIHXRB.js} +2 -2
  301. package/dist/cli/chunks/{validate-XRAXXFW6.js → validate-RPTS7RYJ.js} +2 -2
  302. package/dist/cli/chunks/{validate-swarm-IYSCS3BZ.js → validate-swarm-B2ZL556X.js} +2 -2
  303. package/dist/cli/chunks/visual-security-6Q44XNLB.js +2 -0
  304. package/dist/cli/chunks/{web-tree-sitter-PZQ3ZG2P.js → web-tree-sitter-K4DUJC32.js} +2 -2
  305. package/dist/cli/chunks/{windsurf-installer-U6XWFRVT.js → windsurf-installer-OK2AJN35.js} +2 -2
  306. package/dist/cli/chunks/witness-chain-KDOMXDQX.js +2 -0
  307. package/dist/cli/chunks/witness-chain-N3OY2RMH.js +2 -0
  308. package/dist/cli/chunks/{witness-chain-repair-K7YX2AO6.js → witness-chain-repair-L6Y5RFXR.js} +2 -2
  309. package/dist/cli/chunks/{witness-chain-verifier-GUTC3W7N.js → witness-chain-verifier-N4CW7FZX.js} +2 -2
  310. package/dist/cli/chunks/{witness-key-manager-YBNKMOP6.js → witness-key-manager-TDNPS3WD.js} +2 -2
  311. package/dist/cli/chunks/{workflow-UAJUILFQ.js → workflow-XRZA3YCY.js} +4 -4
  312. package/dist/cli/chunks/workflow-orchestrator-CVNNT2RJ.js +2 -0
  313. package/dist/cli/chunks/{wrappers-AVZ3GPAL.js → wrappers-5JIFWKN6.js} +2 -2
  314. package/dist/cli/commands/ci.js +7 -0
  315. package/dist/cli/commands/code.js +6 -0
  316. package/dist/cli/commands/coverage.js +7 -1
  317. package/dist/cli/commands/fleet-run.d.ts +12 -0
  318. package/dist/cli/commands/fleet-run.js +175 -0
  319. package/dist/cli/commands/fleet.js +2 -117
  320. package/dist/cli/commands/hooks-handlers/stats-hooks.d.ts +4 -3
  321. package/dist/cli/commands/hooks-handlers/stats-hooks.js +22 -4
  322. package/dist/cli/handlers/task-handler.d.ts +5 -0
  323. package/dist/cli/handlers/task-handler.js +26 -0
  324. package/dist/cli/utils/coverage-verdict.d.ts +11 -2
  325. package/dist/cli/utils/coverage-verdict.js +26 -6
  326. package/dist/cli/utils/fleet-operation.d.ts +10 -2
  327. package/dist/cli/utils/fleet-operation.js +20 -3
  328. package/dist/cli/utils/fleet-result.d.ts +20 -4
  329. package/dist/cli/utils/fleet-result.js +32 -21
  330. package/dist/cli/utils/fleet-shard.d.ts +36 -0
  331. package/dist/cli/utils/fleet-shard.js +110 -0
  332. package/dist/coordination/handlers/code-intelligence-handlers.js +21 -1
  333. package/dist/coordination/handlers/coverage-collection.d.ts +2 -0
  334. package/dist/coordination/handlers/coverage-collection.js +2 -1
  335. package/dist/coordination/handlers/coverage-evidence.d.ts +75 -0
  336. package/dist/coordination/handlers/coverage-evidence.js +159 -0
  337. package/dist/coordination/handlers/coverage-handlers.js +16 -3
  338. package/dist/coordination/handlers/coverage-scope.d.ts +40 -0
  339. package/dist/coordination/handlers/coverage-scope.js +321 -0
  340. package/dist/coordination/handlers/coverage-target.d.ts +9 -0
  341. package/dist/coordination/handlers/coverage-target.js +15 -5
  342. package/dist/coordination/handlers/handler-types.d.ts +2 -2
  343. package/dist/coordination/handlers/handler-utils.d.ts +11 -0
  344. package/dist/coordination/handlers/handler-utils.js +22 -8
  345. package/dist/coordination/handlers/misc-handlers.js +5 -2
  346. package/dist/coordination/handlers/quality-handlers.js +2 -2
  347. package/dist/coordination/handlers/security-handlers.js +12 -2
  348. package/dist/coordination/protocols/security-audit.js +11 -1
  349. package/dist/coordination/task-executor.js +7 -2
  350. package/dist/domains/code-intelligence/coordinator-gnn.d.ts +2 -16
  351. package/dist/domains/code-intelligence/coordinator-gnn.js +1 -62
  352. package/dist/domains/code-intelligence/coordinator.d.ts +12 -6
  353. package/dist/domains/code-intelligence/coordinator.js +24 -27
  354. package/dist/domains/code-intelligence/interfaces.d.ts +9 -0
  355. package/dist/domains/code-intelligence/services/metric-collector/listing-process-owner.js +4 -1
  356. package/dist/domains/code-intelligence/services/semantic-analyzer.d.ts +51 -5
  357. package/dist/domains/code-intelligence/services/semantic-analyzer.js +144 -78
  358. package/dist/domains/coverage-analysis/collected-metrics.d.ts +10 -0
  359. package/dist/domains/coverage-analysis/collected-metrics.js +29 -0
  360. package/dist/domains/coverage-analysis/services/coverage-analyzer.js +11 -3
  361. package/dist/domains/coverage-analysis/services/coverage-parser.d.ts +2 -0
  362. package/dist/domains/coverage-analysis/services/coverage-parser.js +18 -2
  363. package/dist/domains/quality-assessment/coherence/gate-controller.js +16 -4
  364. package/dist/domains/quality-assessment/coherence/lambda-calculator.d.ts +8 -0
  365. package/dist/domains/quality-assessment/coherence/lambda-calculator.js +57 -14
  366. package/dist/domains/quality-assessment/coherence/types.d.ts +12 -7
  367. package/dist/domains/quality-assessment/coordinator-gate-evaluation.js +3 -1
  368. package/dist/domains/quality-assessment/coordinator-reports.d.ts +30 -10
  369. package/dist/domains/quality-assessment/coordinator-reports.js +93 -57
  370. package/dist/domains/quality-assessment/coordinator.d.ts +14 -40
  371. package/dist/domains/quality-assessment/coordinator.js +10 -4
  372. package/dist/domains/quality-assessment/interfaces.d.ts +2 -0
  373. package/dist/domains/quality-assessment/services/coherence-gate.js +15 -2
  374. package/dist/domains/quality-assessment/services/quality-gate.js +6 -4
  375. package/dist/domains/security-compliance/index.d.ts +1 -1
  376. package/dist/domains/security-compliance/interfaces.d.ts +46 -5
  377. package/dist/domains/security-compliance/services/scanners/dast-auth-testing.d.ts +3 -3
  378. package/dist/domains/security-compliance/services/scanners/dast-auth-testing.js +15 -14
  379. package/dist/domains/security-compliance/services/scanners/dast-helpers.d.ts +8 -9
  380. package/dist/domains/security-compliance/services/scanners/dast-helpers.js +19 -44
  381. package/dist/domains/security-compliance/services/scanners/dast-injection-testing.d.ts +3 -3
  382. package/dist/domains/security-compliance/services/scanners/dast-injection-testing.js +13 -9
  383. package/dist/domains/security-compliance/services/scanners/dast-requests.d.ts +54 -0
  384. package/dist/domains/security-compliance/services/scanners/dast-requests.js +125 -0
  385. package/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts +5 -1
  386. package/dist/domains/security-compliance/services/scanners/dast-scanner.js +125 -155
  387. package/dist/domains/security-compliance/services/scanners/index.d.ts +1 -1
  388. package/dist/domains/security-compliance/services/scanners/index.js +1 -1
  389. package/dist/domains/security-compliance/services/scanners/scanner-types.d.ts +2 -2
  390. package/dist/domains/security-compliance/services/security-auditor-dast.js +183 -212
  391. package/dist/domains/security-compliance/services/security-auditor-reports.js +5 -1
  392. package/dist/domains/security-compliance/services/security-auditor.d.ts +11 -3
  393. package/dist/domains/security-compliance/services/security-auditor.js +106 -65
  394. package/dist/domains/test-execution/coordinator.d.ts +2 -1
  395. package/dist/domains/test-execution/coordinator.js +33 -27
  396. package/dist/domains/test-execution/interfaces.d.ts +5 -0
  397. package/dist/domains/test-execution/services/test-executor.d.ts +6 -0
  398. package/dist/domains/test-execution/services/test-executor.js +16 -4
  399. package/dist/domains/visual-accessibility/coordinator.js +34 -9
  400. package/dist/domains/visual-accessibility/interfaces.d.ts +27 -0
  401. package/dist/domains/visual-accessibility/plugin.js +5 -0
  402. package/dist/domains/visual-accessibility/services/accessibility-tester-heuristics.d.ts +13 -21
  403. package/dist/domains/visual-accessibility/services/accessibility-tester-heuristics.js +13 -297
  404. package/dist/domains/visual-accessibility/services/accessibility-tester.d.ts +13 -5
  405. package/dist/domains/visual-accessibility/services/accessibility-tester.js +96 -73
  406. package/dist/init/phases/10-workers.js +42 -4
  407. package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.d.ts +23 -1
  408. package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.js +50 -15
  409. package/dist/integrations/agentic-flow/reasoning-bank/index.d.ts +7 -2
  410. package/dist/integrations/agentic-flow/reasoning-bank/index.js +8 -0
  411. package/dist/integrations/embeddings/index/HNSWIndex.js +8 -4
  412. package/dist/integrations/ruvector/transfer-coherence-stub.js +5 -10
  413. package/dist/learning/embedder-endpoint-client.d.ts +8 -0
  414. package/dist/learning/embedder-endpoint-client.js +20 -0
  415. package/dist/learning/embedder-recovery.d.ts +63 -0
  416. package/dist/learning/embedder-recovery.js +94 -0
  417. package/dist/learning/qe-reasoning-bank-types.d.ts +5 -0
  418. package/dist/learning/qe-reasoning-bank.d.ts +21 -0
  419. package/dist/learning/qe-reasoning-bank.js +54 -8
  420. package/dist/learning/real-embeddings.d.ts +23 -0
  421. package/dist/learning/real-embeddings.js +69 -2
  422. package/dist/learning/real-qe-reasoning-bank.d.ts +24 -4
  423. package/dist/learning/real-qe-reasoning-bank.js +58 -20
  424. package/dist/logging/redaction.js +142 -12
  425. package/dist/mcp/bundle.js +509 -497
  426. package/dist/mcp/daemon-mode.d.ts +126 -0
  427. package/dist/mcp/daemon-mode.js +257 -0
  428. package/dist/mcp/entry.d.ts +4 -0
  429. package/dist/mcp/entry.js +50 -2
  430. package/dist/mcp/handlers/domain-handler-configs.d.ts +8 -0
  431. package/dist/mcp/handlers/domain-handler-configs.js +14 -2
  432. package/dist/mcp/handlers/handler-factory.js +3 -0
  433. package/dist/mcp/handlers/model-route-handlers.d.ts +107 -0
  434. package/dist/mcp/handlers/model-route-handlers.js +139 -0
  435. package/dist/mcp/handlers/orchestrate-routes.d.ts +6 -1
  436. package/dist/mcp/handlers/orchestrate-routes.js +94 -3
  437. package/dist/mcp/handlers/task-handlers.d.ts +3 -242
  438. package/dist/mcp/handlers/task-handlers.js +11 -788
  439. package/dist/mcp/handlers/task-inference.d.ts +26 -0
  440. package/dist/mcp/handlers/task-inference.js +156 -0
  441. package/dist/mcp/handlers/task-learning-handlers.d.ts +92 -0
  442. package/dist/mcp/handlers/task-learning-handlers.js +230 -0
  443. package/dist/mcp/handlers/task-orchestrate-handler.d.ts +73 -0
  444. package/dist/mcp/handlers/task-orchestrate-handler.js +361 -0
  445. package/dist/mcp/protocol-server.js +15 -2
  446. package/dist/mcp/services/reasoning-bank-service.d.ts +6 -1
  447. package/dist/mcp/services/reasoning-bank-service.js +9 -0
  448. package/dist/mcp/tools/code-intelligence/analyze.js +3 -6
  449. package/dist/mcp/tools/coverage-analysis/index.d.ts +4 -0
  450. package/dist/mcp/tools/coverage-analysis/index.js +8 -2
  451. package/dist/mcp/tools/visual-accessibility/index.d.ts +7 -0
  452. package/dist/mcp/tools/visual-accessibility/index.js +29 -13
  453. package/dist/mcp/types.d.ts +14 -0
  454. package/dist/routing/advisor/redaction.js +22 -2
  455. package/dist/shared/events/domain-events.d.ts +2 -0
  456. package/dist/shared/llm/providers/response-deadline.js +16 -2
  457. package/dist/shared/metrics/code-metrics.js +21 -3
  458. package/dist/shared/parsers/typescript-parser.d.ts +6 -0
  459. package/dist/shared/parsers/typescript-parser.js +13 -1
  460. package/dist/shared/types/index.js +3 -1
  461. package/dist/strange-loop/infra-healing/infra-aware-agent-provider.js +8 -1
  462. package/package.json +3 -3
  463. package/dist/cli/chunks/adapter-V4GSGOOK.js +0 -2
  464. package/dist/cli/chunks/aqe-learning-engine-6WQTM5YR.js +0 -2
  465. package/dist/cli/chunks/base-AK7BXBX2.js +0 -2
  466. package/dist/cli/chunks/browser-workflow-VTDFBW7T.js +0 -2
  467. package/dist/cli/chunks/chunk-2DTX7YAZ.js +0 -6
  468. package/dist/cli/chunks/chunk-72ZBJD2E.js +0 -3
  469. package/dist/cli/chunks/chunk-EBPJY4DI.js +0 -3
  470. package/dist/cli/chunks/chunk-H43AFUKL.js +0 -2
  471. package/dist/cli/chunks/chunk-HJ3XNTTJ.js +0 -2
  472. package/dist/cli/chunks/chunk-IO5537OM.js +0 -2
  473. package/dist/cli/chunks/chunk-IW6WDGHM.js +0 -2
  474. package/dist/cli/chunks/chunk-K2HBNYAZ.js +0 -62
  475. package/dist/cli/chunks/chunk-LRL56ZYL.js +0 -21
  476. package/dist/cli/chunks/chunk-VLD7Z2ED.js +0 -13
  477. package/dist/cli/chunks/chunk-VO3DRK4P.js +0 -3
  478. package/dist/cli/chunks/ci-6GUFAZMJ.js +0 -81
  479. package/dist/cli/chunks/client-HL2COSFM.js +0 -2
  480. package/dist/cli/chunks/core-handlers-IX7ATLM6.js +0 -2
  481. package/dist/cli/chunks/cross-domain-router-YYKLAPJO.js +0 -2
  482. package/dist/cli/chunks/domain-transfer-DOBI67K6.js +0 -2
  483. package/dist/cli/chunks/dream-T6EP7B3F.js +0 -2
  484. package/dist/cli/chunks/file-discovery-JYMVTDMU.js +0 -2
  485. package/dist/cli/chunks/fleet-FVAUMKUT.js +0 -46
  486. package/dist/cli/chunks/heartbeat-scheduler-4N5MUJ7S.js +0 -2
  487. package/dist/cli/chunks/hnsw-adapter-ZPAJDSLR.js +0 -2
  488. package/dist/cli/chunks/hnsw-index-4CTH6RHB.js +0 -2
  489. package/dist/cli/chunks/hybrid-backend-AW6UTXQS.js +0 -2
  490. package/dist/cli/chunks/impact-analyzer-MZK3JMSV.js +0 -2
  491. package/dist/cli/chunks/init-wizard-FUC7KDVX.js +0 -2
  492. package/dist/cli/chunks/kernel-ZCPMCVMW.js +0 -2
  493. package/dist/cli/chunks/knowledge-graph-NUJKEDNF.js +0 -2
  494. package/dist/cli/chunks/llm-router-service-B2BFBQ76.js +0 -2
  495. package/dist/cli/chunks/load-test-ZHQ2MUGO.js +0 -2
  496. package/dist/cli/chunks/memory-backend-AAMQG6WH.js +0 -2
  497. package/dist/cli/chunks/pattern-null-store-RFNVA46O.js +0 -2
  498. package/dist/cli/chunks/project-root-7QL4KP5C.js +0 -2
  499. package/dist/cli/chunks/protocol-executor-2NW5BD4R.js +0 -2
  500. package/dist/cli/chunks/qe-reasoning-bank-G2JZOGKD.js +0 -2
  501. package/dist/cli/chunks/queen-coordinator-GRG5FT2A.js +0 -2
  502. package/dist/cli/chunks/real-embeddings-RQRVOKVM.js +0 -2
  503. package/dist/cli/chunks/router-LQB5SWAF.js +0 -2
  504. package/dist/cli/chunks/routing-feedback-OEEXA55N.js +0 -2
  505. package/dist/cli/chunks/rvf-dual-writer-BZK4M7BO.js +0 -2
  506. package/dist/cli/chunks/rvf-migration-adapter-EZZUJL2E.js +0 -2
  507. package/dist/cli/chunks/rvf-native-adapter-6COXTQZ3.js +0 -2
  508. package/dist/cli/chunks/safe-db-PE6G3L55.js +0 -2
  509. package/dist/cli/chunks/schedule-OLKQ6QYW.js +0 -2
  510. package/dist/cli/chunks/scheduler-LSGBDFAT.js +0 -2
  511. package/dist/cli/chunks/sqlite-persistence-HH4DNTYH.js +0 -2
  512. package/dist/cli/chunks/task-handler-TFKVUTNF.js +0 -60
  513. package/dist/cli/chunks/task-handlers-SS4ZDXNF.js +0 -9
  514. package/dist/cli/chunks/test-runner-process-PSSBNNGR.js +0 -2
  515. package/dist/cli/chunks/tree-sitter-wasm-parser-TYRQRJ2W.js +0 -2
  516. package/dist/cli/chunks/unified-memory-AGDZQ5XD.js +0 -2
  517. package/dist/cli/chunks/unified-memory-hnsw-X5TJ3JDE.js +0 -2
  518. package/dist/cli/chunks/unified-persistence-UCV7YETW.js +0 -2
  519. package/dist/cli/chunks/visual-security-ZLXRIQZV.js +0 -2
  520. package/dist/cli/chunks/witness-chain-CVIWYTD2.js +0 -2
  521. package/dist/cli/chunks/witness-chain-VBKORKOX.js +0 -2
  522. package/dist/cli/chunks/workflow-orchestrator-3ZN7MVCE.js +0 -2
@@ -13,8 +13,8 @@ import type { TestGeneratorService } from '../../domains/test-generation';
13
13
  import type { KnowledgeGraphService } from '../../domains/code-intelligence';
14
14
  import type { ICodeIntelligenceCoordinator } from '../../domains/code-intelligence/coordinator';
15
15
  import type { QualityAnalyzerService } from '../../domains/quality-assessment';
16
- /** The coordinator surface the MCP index-code handler needs (#999). */
17
- export type ProjectMetricsCollector = Pick<ICodeIntelligenceCoordinator, 'collectProjectMetrics'>;
16
+ /** The coordinator surface the MCP index-code handler needs (#999, #1224). */
17
+ export type ProjectMetricsCollector = Pick<ICodeIntelligenceCoordinator, 'collectProjectMetrics' | 'indexForSearch'>;
18
18
  /** Signature of a single task handler */
19
19
  export type InstanceTaskHandler = (task: QueenTask) => Promise<Result<unknown, Error>>;
20
20
  /**
@@ -74,6 +74,11 @@ export interface IstanbulFileCoverage {
74
74
  * Load coverage data from common coverage file formats
75
75
  */
76
76
  export declare function loadCoverageData(targetPath: string): Promise<CoverageData | null>;
77
+ /** `loadCoverageData` plus the path of the report it read (#1154: staleness needs it). */
78
+ export declare function loadCoverageReport(targetPath: string): Promise<{
79
+ data: CoverageData;
80
+ path: string;
81
+ } | null>;
77
82
  /**
78
83
  * Per-line hit counts of one istanbul file entry, computed the way istanbul's
79
84
  * own `FileCoverage#getLineCoverage` (and therefore coverage-summary.json
@@ -118,6 +123,12 @@ export declare function discoverSourceFiles(targetPath: string, options?: {
118
123
  includeTests?: boolean;
119
124
  languages?: string[];
120
125
  maxFiles?: number;
126
+ /**
127
+ * #1020: also include component files (.vue, .svelte) and symlinked files.
128
+ * For callers that judge the whole source scope (quality assessment) and
129
+ * read through a reader that contains symlinks to the project root.
130
+ */
131
+ completeScope?: boolean;
121
132
  }): Promise<string[]>;
122
133
  /**
123
134
  * Generate security recommendations based on findings
@@ -16,6 +16,10 @@ import { safeJsonParse } from '../../shared/safe-json.js';
16
16
  * Load coverage data from common coverage file formats
17
17
  */
18
18
  export async function loadCoverageData(targetPath) {
19
+ return (await loadCoverageReport(targetPath))?.data ?? null;
20
+ }
21
+ /** `loadCoverageData` plus the path of the report it read (#1154: staleness needs it). */
22
+ export async function loadCoverageReport(targetPath) {
19
23
  // Try various coverage file locations (JS, Python, Java, etc.)
20
24
  const coverageLocations = [
21
25
  // JavaScript/TypeScript (Istanbul/nyc/vitest)
@@ -36,16 +40,16 @@ export async function loadCoverageData(targetPath) {
36
40
  // #1161: a report linked out of the project, or to a device, is not read.
37
41
  const content = await readConfinedText(coveragePath, { outsideRoot: 'allow' });
38
42
  if (coveragePath.endsWith('coverage-summary.json')) {
39
- return parseCoverageSummaryJson(content);
43
+ return { data: parseCoverageSummaryJson(content), path: coveragePath };
40
44
  }
41
45
  else if (coveragePath.endsWith('.json')) {
42
- return parseCoverageJson(content);
46
+ return { data: parseCoverageJson(content), path: coveragePath };
43
47
  }
44
48
  else if (coveragePath.endsWith('.info')) {
45
- return parseLcovInfo(content);
49
+ return { data: parseLcovInfo(content), path: coveragePath };
46
50
  }
47
51
  else if (coveragePath.endsWith('.xml')) {
48
- return parseCoberturaXml(content);
52
+ return { data: parseCoberturaXml(content), path: coveragePath };
49
53
  }
50
54
  }
51
55
  catch {
@@ -413,11 +417,11 @@ export function parseCoberturaXml(content) {
413
417
  */
414
418
  export async function discoverSourceFiles(targetPath, options = {}) {
415
419
  const files = [];
416
- const { includeTests = true, languages, maxFiles = 5000 } = options;
420
+ const { includeTests = true, languages, maxFiles = 5000, completeScope = false } = options;
417
421
  // Determine file extensions to include
418
422
  // Default: scan ALL common source languages unless explicitly filtered
419
423
  let extensions = [
420
- '.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs', // JavaScript/TypeScript
424
+ '.ts', '.tsx', '.mts', '.cts', '.js', '.jsx', '.mjs', '.cjs', // JavaScript/TypeScript
421
425
  '.py', '.pyw', // Python
422
426
  '.go', // Go
423
427
  '.rs', // Rust
@@ -433,7 +437,7 @@ export async function discoverSourceFiles(targetPath, options = {}) {
433
437
  extensions = [];
434
438
  for (const lang of languages) {
435
439
  if (lang === 'typescript')
436
- extensions.push('.ts', '.tsx');
440
+ extensions.push('.ts', '.tsx', '.mts', '.cts');
437
441
  if (lang === 'javascript')
438
442
  extensions.push('.js', '.jsx', '.mjs', '.cjs');
439
443
  if (lang === 'python')
@@ -460,6 +464,8 @@ export async function discoverSourceFiles(targetPath, options = {}) {
460
464
  extensions.push('.scala');
461
465
  }
462
466
  }
467
+ if (completeScope && (!languages || languages.length === 0))
468
+ extensions.push('.vue', '.svelte');
463
469
  async function walkDir(dir) {
464
470
  try {
465
471
  const entries = await fs.readdir(dir, { withFileTypes: true });
@@ -484,7 +490,7 @@ export async function discoverSourceFiles(targetPath, options = {}) {
484
490
  return; // Cap reached
485
491
  await walkDir(fullPath);
486
492
  }
487
- else if (entry.isFile()) {
493
+ else if (entry.isFile() || (completeScope && entry.isSymbolicLink() && await isFileTarget(fullPath))) {
488
494
  const ext = path.extname(entry.name);
489
495
  // Check extension
490
496
  if (!extensions.includes(ext))
@@ -511,6 +517,14 @@ export async function discoverSourceFiles(targetPath, options = {}) {
511
517
  // Directory not accessible
512
518
  }
513
519
  }
520
+ async function isFileTarget(linkPath) {
521
+ try {
522
+ return (await fs.stat(linkPath)).isFile();
523
+ }
524
+ catch {
525
+ return false; // dangling link
526
+ }
527
+ }
514
528
  // Check if targetPath is a file or directory
515
529
  try {
516
530
  const stat = await fs.stat(targetPath);
@@ -16,8 +16,11 @@ export function registerMiscHandlers(ctx) {
16
16
  passed: false,
17
17
  violations: [],
18
18
  warnings: [],
19
- score: 0,
20
- note: 'Accessibility testing requires a browser environment (Puppeteer/Playwright). ' +
19
+ // #1145: nothing was audited, so `passed: false` is not a verdict and the score is -1
20
+ score: -1,
21
+ measured: false,
22
+ note: 'Accessibility NOT MEASURED: this is not a failing result. ' +
23
+ 'Accessibility testing requires a browser environment (Puppeteer/Playwright). ' +
21
24
  'Use tools like axe-core, pa11y, or Lighthouse CLI for WCAG compliance testing. ' +
22
25
  'Example: npx pa11y ' + (payload.url || '<url>'),
23
26
  });
@@ -89,13 +89,13 @@ async function resolveAnalysisScope(payload) {
89
89
  throw new CallerInputError(`target ${JSON.stringify(payload.target)} does not exist.`);
90
90
  if (stat.isFile())
91
91
  return { sourceFiles: [target], explicitFiles: [target], scope: target };
92
- return { sourceFiles: await discoverSourceFiles(target, { includeTests: false }), explicitFiles: [], scope: target };
92
+ return { sourceFiles: await discoverSourceFiles(target, { includeTests: false, completeScope: true }), explicitFiles: [], scope: target };
93
93
  }
94
94
  // Default to src/ — scanning the entire project root is too slow
95
95
  // (node_modules, dist, .git, etc. make it hang on large projects)
96
96
  const srcDir = nodePath.join(root, 'src');
97
97
  const targetDir = existsSync(srcDir) ? srcDir : root;
98
- return { sourceFiles: await discoverSourceFiles(targetDir, { includeTests: false }), explicitFiles: [], scope: targetDir };
98
+ return { sourceFiles: await discoverSourceFiles(targetDir, { includeTests: false, completeScope: true }), explicitFiles: [], scope: targetDir };
99
99
  }
100
100
  /** #1021: one line per partially measured metric, naming the gap. */
101
101
  function describePartialMetrics(partial) {
@@ -263,8 +263,12 @@ export function registerSecurityHandlers(ctx) {
263
263
  });
264
264
  if (result.success) {
265
265
  dastResult = result.value;
266
- // Legacy DAST results contain findings, but no execution coverage receipt.
267
- engines.push({ ...unverifiedEngine('dast', 'url'), target: payload.targetUrl });
266
+ // #1135: probes the target did not answer make DAST partial; the
267
+ // findings it did collect are kept. A complete run still has no
268
+ // execution coverage receipt, so it stays unverified.
269
+ engines.push(dastResult.status === 'incomplete'
270
+ ? { ...partialDastEngine(dastResult.failedRequests), target: payload.targetUrl }
271
+ : { ...unverifiedEngine('dast', 'url'), target: payload.targetUrl });
268
272
  }
269
273
  else {
270
274
  engines.push({ ...failedEngine('dast', 'url', result.error), target: payload.targetUrl });
@@ -399,6 +403,12 @@ function safeErrorCode(error) {
399
403
  const code = error?.code;
400
404
  return typeof code === 'string' && /^[A-Z0-9_]{1,32}$/.test(code) ? code : 'UNKNOWN';
401
405
  }
406
+ function partialDastEngine(failedRequests) {
407
+ const codes = [...new Set(failedRequests.map(failure => failure.code))].join(', ');
408
+ return { id: 'dast', requested: true, required: true, status: 'partial', scope: 'url',
409
+ ruleCoverage: 'unknown', errors: [`dast incomplete: ${failedRequests.length} request(s) not answered (${codes}).`],
410
+ limitations: failedRequests.slice(0, 20).map(failure => `dast not answered: ${failure.url} (${failure.code}: ${failure.reason})`) };
411
+ }
402
412
  function unverifiedEngine(id, scope) {
403
413
  return { id, requested: true, required: true, status: 'unverified', scope,
404
414
  ruleCoverage: 'unknown', errors: [], limitations: [`${id} returned no execution receipt; coverage is unverified.`] };
@@ -164,11 +164,16 @@ export class SecurityAuditProtocol {
164
164
  const dastResult = await this.runDASTScan(this.config.targetUrl);
165
165
  if (dastResult.success) {
166
166
  this.currentAudit = { ...this.currentAudit, dastResult: dastResult.value };
167
+ if (dastResult.value.status !== 'complete') {
168
+ this.recordIncompleteCheck(`DAST scan is incomplete: ${dastResult.value.error ?? 'some requests were not answered'}`);
169
+ }
167
170
  this.recordIncompleteCheck('DAST coverage is unverified: the scanner returned no execution receipt');
168
171
  await this.publishVulnerabilities(dastResult.value.vulnerabilities);
169
172
  }
170
173
  else {
171
- this.recordIncompleteCheck('DAST scan did not complete');
174
+ // #1135: keep the scanner's reason (DAST_AUTHENTICATION_FAILED, DAST_TARGET_UNAVAILABLE, ...).
175
+ const code = dastResult.error.code;
176
+ this.recordIncompleteCheck(`DAST scan did not complete${typeof code === 'string' ? ` (${code})` : ''}: ${dastResult.error.message}`);
172
177
  }
173
178
  }
174
179
  else if (auditOptions.includeDAST) {
@@ -284,7 +289,10 @@ export class SecurityAuditProtocol {
284
289
  // Convert scanner result to protocol result format
285
290
  return ok({
286
291
  vulnerabilities: scanResult.value.vulnerabilities,
292
+ // #1221: this scanner does not look up latest versions; empty is not "up to date".
287
293
  outdatedPackages: [],
294
+ outdatedStatus: 'not-run',
295
+ outdatedUnchecked: [],
288
296
  summary: scanResult.value.summary,
289
297
  status: scanResult.value.status,
290
298
  measured: scanResult.value.measured,
@@ -360,6 +368,8 @@ export class SecurityAuditProtocol {
360
368
  if (scanResult.success) {
361
369
  return ok(scanResult.value);
362
370
  }
371
+ // #1135: the scanner's own failure, with its code, not a generic "unavailable".
372
+ return err(scanResult.error);
363
373
  }
364
374
  catch (scannerError) {
365
375
  // Scanner unavailable - log error
@@ -15,6 +15,7 @@
15
15
  import { v4 as uuidv4 } from 'uuid';
16
16
  import { isCallerInputError, toErrorMessage } from '../shared/error-utils.js';
17
17
  import { InsufficientQualityEvidenceError } from '../domains/quality-assessment/quality-evidence.js';
18
+ import { isLearnableResult } from '../learning/learnable-result.js';
18
19
  import { createResultSaver } from './result-saver.js';
19
20
  import { getProjectStorePath } from '../kernel/project-root.js';
20
21
  import { createLogger } from '../logging/logger-factory.js';
@@ -487,8 +488,12 @@ export class DomainTaskExecutor {
487
488
  };
488
489
  }
489
490
  await this.publishTaskCompleted(task.id, result.value, domain);
490
- // ADR-051: Record successful outcome
491
- this.recordOutcome(task, routingTier, true, Date.now() - startTime).catch((e) => { logger.warn('recordOutcome failed', { error: e instanceof Error ? e.message : String(e), taskId: task.id }); });
491
+ // ADR-051: Record successful outcome. #1020: a run without evidence (a
492
+ // coverage estimate, an insufficient-evidence quality run) completed as a
493
+ // task but is not a success to learn routing from.
494
+ if (isLearnableResult(domain, result.value)) {
495
+ this.recordOutcome(task, routingTier, true, Date.now() - startTime).catch((e) => { logger.warn('recordOutcome failed', { error: e instanceof Error ? e.message : String(e), taskId: task.id }); });
496
+ }
492
497
  // Save results to files if enabled. A task can opt out per call with
493
498
  // payload.saveResults === false (#925); the executor-wide config still
494
499
  // acts as the global switch.
@@ -2,10 +2,10 @@
2
2
  * Code Intelligence - GNN Integration
3
3
  * Extracted from coordinator.ts for CQ-004 (file size reduction)
4
4
  *
5
- * Contains: GNN embedding indexing, code embedding generation, GNN search
5
+ * Contains: GNN embedding indexing, code embedding generation
6
6
  */
7
7
  import { QEGNNEmbeddingIndex } from '../../integrations/ruvector/wrappers';
8
- import type { ImpactRequest, SearchResult } from './interfaces';
8
+ import type { ImpactRequest } from './interfaces';
9
9
  import { FileReader } from '../../shared/io';
10
10
  export declare function initializeGNNIndex(domainKey: string): QEGNNEmbeddingIndex;
11
11
  /**
@@ -23,24 +23,10 @@ export declare function generateGraphMAEEmbeddings(fileReader: FileReader, paths
23
23
  * Generate code embedding using semantic features
24
24
  */
25
25
  export declare function generateCodeEmbedding(path: string, content: string): Promise<number[]>;
26
- /**
27
- * Search code with GNN for enhanced similarity
28
- */
29
- export declare function searchCodeWithGNN(gnnIndex: QEGNNEmbeddingIndex, query: string): Promise<Array<{
30
- file: string;
31
- similarity: number;
32
- }>>;
33
26
  /**
34
27
  * Enhance impact analysis with GNN semantic similarity
35
28
  */
36
29
  export declare function enhanceImpactAnalysisWithGNN(gnnIndex: QEGNNEmbeddingIndex, fileReader: FileReader, request: ImpactRequest): Promise<void>;
37
- /**
38
- * Merge search results from semantic search and GNN
39
- */
40
- export declare function mergeSearchResults(semanticResults: SearchResult[], gnnResults: Array<{
41
- file: string;
42
- similarity: number;
43
- }>): SearchResult[];
44
30
  /**
45
31
  * R6: Train GNN embeddings with memory-bounded cold-tier training.
46
32
  * Uses LRU hotset caching when the graph exceeds hotsetSize, falling
@@ -2,7 +2,7 @@
2
2
  * Code Intelligence - GNN Integration
3
3
  * Extracted from coordinator.ts for CQ-004 (file size reduction)
4
4
  *
5
- * Contains: GNN embedding indexing, code embedding generation, GNN search
5
+ * Contains: GNN embedding indexing, code embedding generation
6
6
  */
7
7
  import { LoggerFactory } from '../../logging/index.js';
8
8
  import { QEGNNIndexFactory, initGNN, } from '../../integrations/ruvector/wrappers.js';
@@ -148,34 +148,6 @@ export async function generateCodeEmbedding(path, content) {
148
148
  }
149
149
  return features.slice(0, 384);
150
150
  }
151
- /**
152
- * Search code with GNN for enhanced similarity
153
- */
154
- export async function searchCodeWithGNN(gnnIndex, query) {
155
- try {
156
- const queryEmbedding = await generateCodeEmbedding('query', query);
157
- const queryIEmbedding = {
158
- vector: queryEmbedding,
159
- dimension: 384,
160
- namespace: 'code',
161
- text: query,
162
- timestamp: Date.now(),
163
- quantization: 'none',
164
- };
165
- const results = gnnIndex.search(queryIEmbedding, {
166
- limit: 10,
167
- namespace: 'code',
168
- });
169
- return results.map((r) => ({
170
- file: r.metadata?.path ?? `file-${r.id}`,
171
- similarity: 1 - r.distance,
172
- }));
173
- }
174
- catch (error) {
175
- logger.error('Failed to search with GNN:', error instanceof Error ? error : undefined);
176
- return [];
177
- }
178
- }
179
151
  /**
180
152
  * Enhance impact analysis with GNN semantic similarity
181
153
  */
@@ -206,39 +178,6 @@ export async function enhanceImpactAnalysisWithGNN(gnnIndex, fileReader, request
206
178
  logger.error('Failed to enhance impact analysis:', error instanceof Error ? error : undefined);
207
179
  }
208
180
  }
209
- /**
210
- * Merge search results from semantic search and GNN
211
- */
212
- export function mergeSearchResults(semanticResults, gnnResults) {
213
- const scoreMap = new Map();
214
- const resultMap = new Map();
215
- for (const result of semanticResults) {
216
- scoreMap.set(result.file, result.score);
217
- resultMap.set(result.file, result);
218
- }
219
- for (const gnnResult of gnnResults) {
220
- const existingScore = scoreMap.get(gnnResult.file);
221
- if (existingScore !== undefined) {
222
- scoreMap.set(gnnResult.file, (existingScore + gnnResult.similarity) / 2);
223
- }
224
- else {
225
- scoreMap.set(gnnResult.file, gnnResult.similarity * 0.8);
226
- resultMap.set(gnnResult.file, {
227
- file: gnnResult.file,
228
- snippet: '',
229
- score: gnnResult.similarity * 0.8,
230
- highlights: [],
231
- });
232
- }
233
- }
234
- return Array.from(resultMap.values())
235
- .map(result => ({
236
- ...result,
237
- score: scoreMap.get(result.file) ?? result.score,
238
- }))
239
- .sort((a, b) => b.score - a.score)
240
- .slice(0, 20);
241
- }
242
181
  // R6: ColdTier trainer singleton (lazy-initialized)
243
182
  let coldTierTrainer = null;
244
183
  /**
@@ -43,6 +43,12 @@ export interface ICodeIntelligenceCoordinator extends CodeIntelligenceAPI {
43
43
  * @param projectPath - Path to the project root
44
44
  */
45
45
  collectProjectMetrics(projectPath: string): Promise<Result<ProjectMetrics, Error>>;
46
+ /**
47
+ * #1224: make indexed files searchable by `search()`. Indexing paths that
48
+ * only fill the knowledge graph (MCP code_index) call this so a later search
49
+ * reads the same project.
50
+ */
51
+ indexForSearch(paths: string[]): Promise<SearchIndexSummary>;
46
52
  /**
47
53
  * V3: Find untested functions using hypergraph analysis (GOAP Action 7)
48
54
  * Returns functions that have no test coverage based on the code knowledge graph.
@@ -126,6 +132,11 @@ export interface CoordinatorConfig extends BaseDomainCoordinatorConfig {
126
132
  * Orchestrates code intelligence workflows and coordinates with agents
127
133
  */
128
134
  type CodeIntelligenceWorkflowType = 'index' | 'search' | 'impact' | 'dependency' | 'query';
135
+ /** #1224: what an index run made searchable. */
136
+ export interface SearchIndexSummary {
137
+ searchable: number;
138
+ warnings: string[];
139
+ }
129
140
  export declare class CodeIntelligenceCoordinator extends BaseDomainCoordinator<CoordinatorConfig, CodeIntelligenceWorkflowType> implements ICodeIntelligenceCoordinator {
130
141
  private readonly memory;
131
142
  private readonly agentCoordinator;
@@ -187,7 +198,6 @@ export declare class CodeIntelligenceCoordinator extends BaseDomainCoordinator<C
187
198
  * Index code embeddings in GNN for fast similarity search
188
199
  */
189
200
  private indexCodeEmbeddings;
190
- private searchCodeWithGNN;
191
201
  private enhanceImpactAnalysisWithGNN;
192
202
  /**
193
203
  * Adapt search pattern using SONA
@@ -197,10 +207,6 @@ export declare class CodeIntelligenceCoordinator extends BaseDomainCoordinator<C
197
207
  * Store impact analysis pattern in SONA
198
208
  */
199
209
  private storeImpactPattern;
200
- /**
201
- * Merge search results from semantic search and GNN
202
- */
203
- private mergeSearchResults;
204
210
  private hashCode;
205
211
  private spawnIndexerAgent;
206
212
  private spawnSearchAgent;
@@ -211,7 +217,7 @@ export declare class CodeIntelligenceCoordinator extends BaseDomainCoordinator<C
211
217
  protected subscribeToEvents(): void;
212
218
  private handleTestRunCompleted;
213
219
  private handleFilesChanged;
214
- private indexForSemanticSearch;
220
+ indexForSearch(paths: string[]): Promise<SearchIndexSummary>;
215
221
  private loadWorkflowState;
216
222
  private saveWorkflowState;
217
223
  /**
@@ -59,6 +59,8 @@ const DEFAULT_CONFIG = {
59
59
  * CQ-002: Extends BaseDomainCoordinator
60
60
  */
61
61
  const logger = LoggerFactory.create('code-intelligence');
62
+ /** Files made searchable per index run (content, plus vectors with an embedding model). */
63
+ const SEARCH_INDEX_FILE_LIMIT = 100;
62
64
  export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
63
65
  memory;
64
66
  agentCoordinator;
@@ -336,9 +338,12 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
336
338
  }
337
339
  }
338
340
  this.updateWorkflowProgress(workflowId, 70);
339
- // Index content for semantic search
341
+ // Index content for search
340
342
  if (indexedPaths.length > 0) {
341
- await this.indexForSemanticSearch(indexedPaths);
343
+ const searchIndex = await this.indexForSearch(indexedPaths);
344
+ if (searchIndex.warnings.length > 0) {
345
+ result.value.warnings = [...(result.value.warnings ?? []), ...searchIndex.warnings];
346
+ }
342
347
  }
343
348
  this.updateWorkflowProgress(workflowId, 85);
344
349
  // V3: Rebuild hypergraph from indexed files (keeps hypergraph in sync with KG)
@@ -414,18 +419,10 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
414
419
  logger.info(`Adapted search pattern with ${pattern.similarity.toFixed(3)} similarity`);
415
420
  }
416
421
  }
417
- // V3: Use GNN for enhanced code similarity search
418
- let gnnResults = [];
419
- if (this.config.enableGNN && this.gnnIndex) {
420
- gnnResults = await this.searchCodeWithGNN(request);
421
- }
422
- // Perform search
422
+ // Perform search. #1224: GNN feature-hash neighbours are not merged in;
423
+ // they do not depend on the query and carried no file name or snippet.
423
424
  const result = await this.semanticAnalyzer.search(request);
424
425
  if (result.success) {
425
- // Merge GNN results with semantic search results
426
- if (gnnResults.length > 0) {
427
- result.value.results = this.mergeSearchResults(result.value.results, gnnResults);
428
- }
429
426
  this.completeWorkflow(workflowId);
430
427
  // Publish events
431
428
  if (this.config.publishEvents) {
@@ -566,11 +563,6 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
566
563
  return;
567
564
  await GNNHelpers.indexCodeEmbeddings(this.gnnIndex, this.fileReader, paths);
568
565
  }
569
- async searchCodeWithGNN(request) {
570
- if (!this.gnnIndex || !this.rlInitialized)
571
- return [];
572
- return GNNHelpers.searchCodeWithGNN(this.gnnIndex, request.query);
573
- }
574
566
  async enhanceImpactAnalysisWithGNN(request) {
575
567
  if (!this.gnnIndex || !this.rlInitialized)
576
568
  return;
@@ -655,12 +647,6 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
655
647
  // ============================================================================
656
648
  // Helper Methods
657
649
  // ============================================================================
658
- /**
659
- * Merge search results from semantic search and GNN
660
- */
661
- mergeSearchResults(semanticResults, gnnResults) {
662
- return GNNHelpers.mergeSearchResults(semanticResults, gnnResults);
663
- }
664
650
  hashCode(str) {
665
651
  return GNNHelpers.hashCode(str);
666
652
  }
@@ -775,22 +761,33 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
775
761
  // ============================================================================
776
762
  // Helper Methods
777
763
  // ============================================================================
778
- async indexForSemanticSearch(paths) {
779
- // Index a subset of files for semantic search
764
+ async indexForSearch(paths) {
765
+ // Index a subset of files for search
780
766
  // Limit to 100 files for performance in a single batch
781
- const filesToIndex = paths.slice(0, 100);
767
+ const filesToIndex = paths.slice(0, SEARCH_INDEX_FILE_LIMIT);
768
+ let searchable = 0;
782
769
  for (const path of filesToIndex) {
783
770
  try {
784
771
  // Read actual file content
785
772
  const result = await this.fileReader.readFile(path);
786
773
  if (result.success && result.value) {
787
- await this.semanticAnalyzer.indexCode(path, result.value);
774
+ const indexed = await this.semanticAnalyzer.indexCode(path, result.value);
775
+ if (indexed.success)
776
+ searchable++;
788
777
  }
789
778
  }
790
779
  catch {
791
780
  // Continue on error - file may not exist or be unreadable
792
781
  }
793
782
  }
783
+ // #1224: say when search will not see every indexed file.
784
+ const warnings = [];
785
+ if (searchable < paths.length) {
786
+ warnings.push(`Search covers ${searchable} of ${paths.length} indexed files` +
787
+ (paths.length > SEARCH_INDEX_FILE_LIMIT ? ` (at most ${SEARCH_INDEX_FILE_LIMIT} per index run)` : '') +
788
+ '; code in the other files is not found by search.');
789
+ }
790
+ return { searchable, warnings };
794
791
  }
795
792
  // ============================================================================
796
793
  // State Persistence
@@ -71,6 +71,13 @@ export interface SearchResults {
71
71
  results: SearchResult[];
72
72
  total: number;
73
73
  searchTime: number;
74
+ /**
75
+ * #1224, semantic searches only: 'vector' when an embedding model ranked the
76
+ * results, 'lexical-only' when none was available and query words were
77
+ * matched against the indexed text instead (`reason` says why).
78
+ */
79
+ mode?: 'vector' | 'lexical-only';
80
+ reason?: string;
74
81
  }
75
82
  export interface SearchResult {
76
83
  file: string;
@@ -79,6 +86,8 @@ export interface SearchResult {
79
86
  score: number;
80
87
  highlights: string[];
81
88
  metadata?: Record<string, unknown>;
89
+ /** #1224: how a semantic hit was found; its score is a text-match score when 'lexical'. */
90
+ matchType?: 'vector' | 'lexical';
82
91
  }
83
92
  export interface ImpactRequest {
84
93
  changedFiles: string[];
@@ -32,7 +32,10 @@ function interrupted(signal) {
32
32
  removeHandlers();
33
33
  // Restore signal termination (including its exit status) instead of swallowing
34
34
  // Ctrl-C or converting a requested shutdown into a successful metrics result.
35
- process.kill(process.pid, signal);
35
+ // An embedding host with its own listener already received this signal, so
36
+ // re-raising would deliver it twice; the host decides how to shut down (#992).
37
+ if (process.listenerCount(signal) === 0)
38
+ process.kill(process.pid, signal);
36
39
  }
37
40
  const signalHandlers = {
38
41
  SIGINT: () => interrupted('SIGINT'),