@remnic/core 10.0.0 → 10.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/dist/access-admin-ops-surface.js +46 -43
  2. package/dist/access-authorization-probe.js +47 -44
  3. package/dist/access-boundary.js +46 -43
  4. package/dist/access-cli.js +111 -108
  5. package/dist/access-cli.js.map +1 -1
  6. package/dist/access-extraction-force-flush.js +46 -43
  7. package/dist/access-http-briefing.js +47 -44
  8. package/dist/access-http-query.js +48 -45
  9. package/dist/access-http.js +66 -63
  10. package/dist/access-identity-continuity-surface.js +46 -43
  11. package/dist/access-lcm-surface.js +46 -43
  12. package/dist/access-mcp.js +55 -52
  13. package/dist/access-namespace-preflight.js +46 -43
  14. package/dist/access-observe-write-category.js +9 -9
  15. package/dist/access-observe-write-surface.js +46 -43
  16. package/dist/access-offline-manifest.js +6 -6
  17. package/dist/access-operations-batch.js +47 -44
  18. package/dist/access-operations.js +54 -51
  19. package/dist/access-recall-concurrency.js +46 -43
  20. package/dist/access-recall-response.js +46 -43
  21. package/dist/access-recall-surface.js +46 -43
  22. package/dist/access-schema.js +8 -8
  23. package/dist/access-service.js +46 -43
  24. package/dist/access-surface-catalog.js +48 -45
  25. package/dist/access-surface-catalog.js.map +1 -1
  26. package/dist/active-recall.js +18 -16
  27. package/dist/active-recall.js.map +1 -1
  28. package/dist/adapters/index.js +4 -4
  29. package/dist/adapters/registry.js +2 -2
  30. package/dist/briefing.js +12 -10
  31. package/dist/buffer.js +7 -5
  32. package/dist/{capsule-crypto-YO5QJ6L3.js → capsule-crypto-7FJQINUR.js} +2 -2
  33. package/dist/causal-consolidation.js +13 -11
  34. package/dist/causal-consolidation.js.map +1 -1
  35. package/dist/{chunk-JWFTPRYD.js → chunk-2EZB2DL5.js} +2 -2
  36. package/dist/{chunk-J3ZJBX7I.js → chunk-2J3M2KV4.js} +2 -2
  37. package/dist/{chunk-BXLOS5AJ.js → chunk-2NLLXCJG.js} +2 -2
  38. package/dist/{chunk-SWXPR5SE.js → chunk-2SYRHFUG.js} +2 -2
  39. package/dist/{chunk-QKCGOECM.js → chunk-34G4U6HS.js} +2 -2
  40. package/dist/{chunk-QX3K3INR.js → chunk-36BUOTVN.js} +2 -2
  41. package/dist/{chunk-CNBGAFDY.js → chunk-3J54RR3A.js} +2 -2
  42. package/dist/{chunk-XLWMNDQR.js → chunk-4A2UMSNB.js} +7 -5
  43. package/dist/chunk-4A2UMSNB.js.map +1 -0
  44. package/dist/{chunk-OWV6LKNZ.js → chunk-4G2COUSD.js} +2 -2
  45. package/dist/{chunk-HWGFTTPS.js → chunk-5FLFPTDK.js} +2 -2
  46. package/dist/{chunk-WR66CTVU.js → chunk-7IGNDEUJ.js} +4 -4
  47. package/dist/chunk-7PZHH4KC.js +63 -0
  48. package/dist/chunk-7PZHH4KC.js.map +1 -0
  49. package/dist/{chunk-VO2BNAA2.js → chunk-A5N6ZEUW.js} +2 -2
  50. package/dist/{chunk-XQWKB6PY.js → chunk-AALVXJJ7.js} +2 -2
  51. package/dist/{chunk-KFHEZJQZ.js → chunk-BAREPCLY.js} +2 -2
  52. package/dist/{chunk-QAIVTLL2.js → chunk-BLHPADUX.js} +2 -2
  53. package/dist/{chunk-2TCNEJ36.js → chunk-BNMI3JBV.js} +3 -3
  54. package/dist/{chunk-QUNCLKHM.js → chunk-CAXMG4JI.js} +2 -2
  55. package/dist/{chunk-KV7LFOPF.js → chunk-CQBFEGLF.js} +2 -2
  56. package/dist/{chunk-KMN2JE4D.js → chunk-CVQWNACA.js} +2 -2
  57. package/dist/{chunk-VV2MVHCJ.js → chunk-DAVONFNK.js} +2 -2
  58. package/dist/{chunk-KYUVFCT2.js → chunk-DQQ4IM5L.js} +2 -2
  59. package/dist/{chunk-B454SHPU.js → chunk-E7FN5N5E.js} +2 -2
  60. package/dist/{chunk-CGBE3N7T.js → chunk-EB3RXN2L.js} +2 -2
  61. package/dist/{chunk-AWSP3WNM.js → chunk-EJJMDLVB.js} +2 -2
  62. package/dist/{chunk-A6WNTVA7.js → chunk-FNVSBUC3.js} +2 -2
  63. package/dist/{chunk-XTN54NML.js → chunk-G3T6YMBO.js} +4 -4
  64. package/dist/{chunk-BKVCTTEN.js → chunk-GUD6FYQG.js} +2 -2
  65. package/dist/{chunk-2MMBJE53.js → chunk-H5YACCE3.js} +7 -7
  66. package/dist/{chunk-JC7QQ2DJ.js → chunk-HRZZJ4XB.js} +2 -2
  67. package/dist/{chunk-LHDSCWDK.js → chunk-I2VQ7WBJ.js} +16 -16
  68. package/dist/{chunk-B3OFQP5Y.js → chunk-IB63OVUB.js} +24 -249
  69. package/dist/chunk-IB63OVUB.js.map +1 -0
  70. package/dist/chunk-IM2GO42H.js +312 -0
  71. package/dist/chunk-IM2GO42H.js.map +1 -0
  72. package/dist/{chunk-PRNR47DI.js → chunk-IR5LZCE6.js} +2 -2
  73. package/dist/{chunk-YI6XIFQV.js → chunk-J5CUQRST.js} +2 -2
  74. package/dist/{chunk-6WRHNA4I.js → chunk-JFDKPW54.js} +35 -35
  75. package/dist/{chunk-VYIBRCVW.js → chunk-JOBE47EJ.js} +2 -2
  76. package/dist/{chunk-SFDBLCZV.js → chunk-K4TWTUEY.js} +41 -41
  77. package/dist/{chunk-UHESJ6TQ.js → chunk-KEGUXZNY.js} +3 -3
  78. package/dist/{chunk-UHESJ6TQ.js.map → chunk-KEGUXZNY.js.map} +1 -1
  79. package/dist/{chunk-T6RQNV7E.js → chunk-KHOINMCN.js} +2 -2
  80. package/dist/{chunk-VDX2J7OX.js → chunk-KQAFEZQX.js} +2 -2
  81. package/dist/{chunk-E4XLFYHV.js → chunk-LHOIYLKH.js} +2 -2
  82. package/dist/chunk-LHOIYLKH.js.map +1 -0
  83. package/dist/{chunk-PQKZLBCJ.js → chunk-LMZV3H4W.js} +127 -6
  84. package/dist/chunk-LMZV3H4W.js.map +1 -0
  85. package/dist/{chunk-MZOQ26LH.js → chunk-LQGX5TCI.js} +2 -2
  86. package/dist/{chunk-TRN56SPQ.js → chunk-M2OPC4BD.js} +2 -2
  87. package/dist/{chunk-LXJZUNLX.js → chunk-NBK24POV.js} +2 -2
  88. package/dist/{chunk-7X7A7KVN.js → chunk-NLYOOGZ7.js} +2 -2
  89. package/dist/{chunk-G5I5ZT6O.js → chunk-OSDAF7HH.js} +2 -2
  90. package/dist/{chunk-EZ3F4YIN.js → chunk-OV7EYM6M.js} +6 -6
  91. package/dist/{chunk-AU43D3IT.js → chunk-P57VR7AI.js} +4 -4
  92. package/dist/{chunk-NT2Q6AHC.js → chunk-PCO3P7WJ.js} +2 -2
  93. package/dist/{chunk-73R4HOOK.js → chunk-PT6DQK5T.js} +3 -3
  94. package/dist/{chunk-O43AAJFQ.js → chunk-PTGPU4DC.js} +2 -2
  95. package/dist/{chunk-STQC2FYQ.js → chunk-PWVBVIOP.js} +6 -6
  96. package/dist/{chunk-TFA6HPOA.js → chunk-QCP75JGO.js} +5 -5
  97. package/dist/{chunk-SIGDETMB.js → chunk-R4NGLTUS.js} +2 -2
  98. package/dist/{chunk-S2GR3T7W.js → chunk-RNYVAQX2.js} +2 -2
  99. package/dist/{chunk-PZ2QQULY.js → chunk-RU744TNX.js} +8 -8
  100. package/dist/{chunk-2OFDC3AK.js → chunk-RVQVWDSN.js} +2 -2
  101. package/dist/{chunk-ZLQ37WJX.js → chunk-SIGAGKNE.js} +8 -2
  102. package/dist/{chunk-ZLQ37WJX.js.map → chunk-SIGAGKNE.js.map} +1 -1
  103. package/dist/{chunk-OFGTRDWX.js → chunk-SIYZDT2V.js} +3 -3
  104. package/dist/{chunk-PQ7EB5AD.js → chunk-SQPC6MUM.js} +3 -3
  105. package/dist/{chunk-5R4YPRAR.js → chunk-TGF43K66.js} +18 -18
  106. package/dist/chunk-TPSLVZHS.js +102 -0
  107. package/dist/chunk-TPSLVZHS.js.map +1 -0
  108. package/dist/{chunk-ZRUC7FD3.js → chunk-U4SG4HKQ.js} +2 -2
  109. package/dist/{chunk-ATFFWIKL.js → chunk-U6HWKOGD.js} +2 -2
  110. package/dist/{chunk-IOMLGJHG.js → chunk-UK5EH7AI.js} +2 -2
  111. package/dist/{chunk-DB6XFMOF.js → chunk-VC4J4UTI.js} +5 -5
  112. package/dist/{chunk-T32YYUT2.js → chunk-VQTPEL7O.js} +2 -2
  113. package/dist/{chunk-7YQR6XHY.js → chunk-W6K6BC3H.js} +57 -57
  114. package/dist/{chunk-FYX2LXIX.js → chunk-WI37MWRZ.js} +2 -2
  115. package/dist/{chunk-7NBUE5VY.js → chunk-WPMDNCGB.js} +2 -2
  116. package/dist/{chunk-GZ2KV2RO.js → chunk-WWLAKRMX.js} +4 -4
  117. package/dist/{chunk-EWWK65CI.js → chunk-WY4IV62O.js} +2 -2
  118. package/dist/{chunk-DQEMWVMT.js → chunk-X7Y7WX73.js} +1 -1
  119. package/dist/{chunk-GQ6ZF4LD.js → chunk-XG4XXI66.js} +2 -2
  120. package/dist/{chunk-Z6EZCN6Z.js → chunk-Y7427SL7.js} +10 -10
  121. package/dist/{chunk-TXTRHF3B.js → chunk-YAPTJQI7.js} +2 -2
  122. package/dist/{chunk-JRDL3FGM.js → chunk-YFET6A4I.js} +3 -3
  123. package/dist/{chunk-ISX7GVZE.js → chunk-YRULQW5J.js} +4 -4
  124. package/dist/{chunk-VDVHIRCK.js → chunk-YVHNBOK2.js} +2 -2
  125. package/dist/cli.js +85 -82
  126. package/dist/coding/export-okf-codegraph.js +11 -9
  127. package/dist/coding/export-okf-codegraph.js.map +1 -1
  128. package/dist/compounding/engine.js +12 -10
  129. package/dist/config-qmd.js +1 -1
  130. package/dist/config.js +18 -16
  131. package/dist/connectors/codex-materialize-runner.js +12 -10
  132. package/dist/connectors/index.js +12 -10
  133. package/dist/convergence-refresh.js +14 -12
  134. package/dist/conversation-index/backend.js +2 -2
  135. package/dist/corpus-watermark.js +14 -12
  136. package/dist/deep-recall-http-glue.js +9 -9
  137. package/dist/deep-recall.js +2 -2
  138. package/dist/entity-retrieval.js +12 -10
  139. package/dist/external-wiki-access.js +47 -44
  140. package/dist/extraction.js +16 -14
  141. package/dist/harmonic-retrieval.d.ts.map +1 -1
  142. package/dist/harmonic-retrieval.js +91 -1
  143. package/dist/index.js +136 -133
  144. package/dist/lcm/engine.js +4 -4
  145. package/dist/lcm/index.js +10 -10
  146. package/dist/location/index.js +14 -12
  147. package/dist/maintenance/memory-governance.js +12 -10
  148. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +12 -10
  149. package/dist/maintenance/rebuild-memory-projection.d.ts.map +1 -1
  150. package/dist/maintenance/rebuild-memory-projection.js +13 -11
  151. package/dist/memory-browse-operations.js +47 -44
  152. package/dist/memory-browse.js +7 -5
  153. package/dist/memory-projection-batch.d.ts +20 -0
  154. package/dist/memory-projection-batch.d.ts.map +1 -0
  155. package/dist/memory-projection-batch.js +11 -0
  156. package/dist/memory-projection-batch.js.map +1 -0
  157. package/dist/namespaces/migrate.js +13 -11
  158. package/dist/namespaces/search.js +10 -8
  159. package/dist/namespaces/storage.js +12 -10
  160. package/dist/offline-sync-changeset-generations.js +3 -3
  161. package/dist/offline-sync-embedding-generation.js +2 -2
  162. package/dist/offline-sync-snapshot-stream.js +6 -6
  163. package/dist/offline-sync.js +5 -5
  164. package/dist/operator-doctor-corpus.js +15 -13
  165. package/dist/operator-toolkit.js +27 -25
  166. package/dist/orchestration/maintenance.js +20 -18
  167. package/dist/orchestrator.js +111 -108
  168. package/dist/qmd-daemon-session.d.ts +45 -0
  169. package/dist/qmd-daemon-session.d.ts.map +1 -0
  170. package/dist/qmd-daemon-session.js +12 -0
  171. package/dist/qmd-daemon-session.js.map +1 -0
  172. package/dist/qmd-mcp-cancel.d.ts +21 -0
  173. package/dist/qmd-mcp-cancel.d.ts.map +1 -0
  174. package/dist/qmd-mcp-cancel.js +11 -0
  175. package/dist/qmd-mcp-cancel.js.map +1 -0
  176. package/dist/qmd-preflight.d.ts +3 -1
  177. package/dist/qmd-preflight.d.ts.map +1 -1
  178. package/dist/qmd-preflight.js +3 -1
  179. package/dist/qmd.d.ts +5 -29
  180. package/dist/qmd.d.ts.map +1 -1
  181. package/dist/qmd.js +6 -2
  182. package/dist/recall-navigation-operations.js +47 -44
  183. package/dist/recall-navigation.js +46 -43
  184. package/dist/recall-state-view-admission.js +7 -5
  185. package/dist/recall-why-service.js +7 -5
  186. package/dist/resume-bundles.js +19 -17
  187. package/dist/search/factory.js +9 -7
  188. package/dist/search/index.js +13 -11
  189. package/dist/semantic-consolidation.js +13 -11
  190. package/dist/semantic-rule-promotion.js +12 -10
  191. package/dist/semantic-rule-verifier.js +12 -10
  192. package/dist/source-agent-qualifier.js +15 -13
  193. package/dist/standup/build.js +12 -10
  194. package/dist/storage.d.ts +1 -1
  195. package/dist/storage.d.ts.map +1 -1
  196. package/dist/storage.js +11 -9
  197. package/dist/support-passport/index.js +49 -46
  198. package/dist/transfer/backup.js +2 -2
  199. package/dist/transfer/capsule-export.js +2 -2
  200. package/dist/transfer/capsule-import.js +2 -2
  201. package/dist/transfer/export-okf.js +12 -10
  202. package/dist/verified-recall.js +12 -10
  203. package/dist/who-knows-cli.js +13 -11
  204. package/dist/who-knows.js +12 -10
  205. package/package.json +2 -2
  206. package/src/config-qmd.ts +2 -2
  207. package/src/harmonic-retrieval-index.test.ts +387 -0
  208. package/src/harmonic-retrieval.ts +181 -15
  209. package/src/maintenance/rebuild-memory-projection.ts +3 -0
  210. package/src/memory-projection-batch.ts +82 -0
  211. package/src/qmd-daemon-session.ts +369 -0
  212. package/src/qmd-mcp-cancel.test.ts +408 -0
  213. package/src/qmd-mcp-cancel.ts +130 -0
  214. package/src/qmd-preflight.ts +10 -1
  215. package/src/qmd-rank-compare.test.ts +100 -0
  216. package/src/qmd.test.ts +16 -1
  217. package/src/qmd.ts +18 -297
  218. package/src/storage.ts +1 -1
  219. package/dist/chunk-B3OFQP5Y.js.map +0 -1
  220. package/dist/chunk-E4XLFYHV.js.map +0 -1
  221. package/dist/chunk-PQKZLBCJ.js.map +0 -1
  222. package/dist/chunk-XLWMNDQR.js.map +0 -1
  223. /package/dist/{capsule-crypto-YO5QJ6L3.js.map → capsule-crypto-7FJQINUR.js.map} +0 -0
  224. /package/dist/{chunk-JWFTPRYD.js.map → chunk-2EZB2DL5.js.map} +0 -0
  225. /package/dist/{chunk-J3ZJBX7I.js.map → chunk-2J3M2KV4.js.map} +0 -0
  226. /package/dist/{chunk-BXLOS5AJ.js.map → chunk-2NLLXCJG.js.map} +0 -0
  227. /package/dist/{chunk-SWXPR5SE.js.map → chunk-2SYRHFUG.js.map} +0 -0
  228. /package/dist/{chunk-QKCGOECM.js.map → chunk-34G4U6HS.js.map} +0 -0
  229. /package/dist/{chunk-QX3K3INR.js.map → chunk-36BUOTVN.js.map} +0 -0
  230. /package/dist/{chunk-CNBGAFDY.js.map → chunk-3J54RR3A.js.map} +0 -0
  231. /package/dist/{chunk-OWV6LKNZ.js.map → chunk-4G2COUSD.js.map} +0 -0
  232. /package/dist/{chunk-HWGFTTPS.js.map → chunk-5FLFPTDK.js.map} +0 -0
  233. /package/dist/{chunk-WR66CTVU.js.map → chunk-7IGNDEUJ.js.map} +0 -0
  234. /package/dist/{chunk-VO2BNAA2.js.map → chunk-A5N6ZEUW.js.map} +0 -0
  235. /package/dist/{chunk-XQWKB6PY.js.map → chunk-AALVXJJ7.js.map} +0 -0
  236. /package/dist/{chunk-KFHEZJQZ.js.map → chunk-BAREPCLY.js.map} +0 -0
  237. /package/dist/{chunk-QAIVTLL2.js.map → chunk-BLHPADUX.js.map} +0 -0
  238. /package/dist/{chunk-2TCNEJ36.js.map → chunk-BNMI3JBV.js.map} +0 -0
  239. /package/dist/{chunk-QUNCLKHM.js.map → chunk-CAXMG4JI.js.map} +0 -0
  240. /package/dist/{chunk-KV7LFOPF.js.map → chunk-CQBFEGLF.js.map} +0 -0
  241. /package/dist/{chunk-KMN2JE4D.js.map → chunk-CVQWNACA.js.map} +0 -0
  242. /package/dist/{chunk-VV2MVHCJ.js.map → chunk-DAVONFNK.js.map} +0 -0
  243. /package/dist/{chunk-KYUVFCT2.js.map → chunk-DQQ4IM5L.js.map} +0 -0
  244. /package/dist/{chunk-B454SHPU.js.map → chunk-E7FN5N5E.js.map} +0 -0
  245. /package/dist/{chunk-CGBE3N7T.js.map → chunk-EB3RXN2L.js.map} +0 -0
  246. /package/dist/{chunk-AWSP3WNM.js.map → chunk-EJJMDLVB.js.map} +0 -0
  247. /package/dist/{chunk-A6WNTVA7.js.map → chunk-FNVSBUC3.js.map} +0 -0
  248. /package/dist/{chunk-XTN54NML.js.map → chunk-G3T6YMBO.js.map} +0 -0
  249. /package/dist/{chunk-BKVCTTEN.js.map → chunk-GUD6FYQG.js.map} +0 -0
  250. /package/dist/{chunk-2MMBJE53.js.map → chunk-H5YACCE3.js.map} +0 -0
  251. /package/dist/{chunk-JC7QQ2DJ.js.map → chunk-HRZZJ4XB.js.map} +0 -0
  252. /package/dist/{chunk-LHDSCWDK.js.map → chunk-I2VQ7WBJ.js.map} +0 -0
  253. /package/dist/{chunk-PRNR47DI.js.map → chunk-IR5LZCE6.js.map} +0 -0
  254. /package/dist/{chunk-YI6XIFQV.js.map → chunk-J5CUQRST.js.map} +0 -0
  255. /package/dist/{chunk-6WRHNA4I.js.map → chunk-JFDKPW54.js.map} +0 -0
  256. /package/dist/{chunk-VYIBRCVW.js.map → chunk-JOBE47EJ.js.map} +0 -0
  257. /package/dist/{chunk-SFDBLCZV.js.map → chunk-K4TWTUEY.js.map} +0 -0
  258. /package/dist/{chunk-T6RQNV7E.js.map → chunk-KHOINMCN.js.map} +0 -0
  259. /package/dist/{chunk-VDX2J7OX.js.map → chunk-KQAFEZQX.js.map} +0 -0
  260. /package/dist/{chunk-MZOQ26LH.js.map → chunk-LQGX5TCI.js.map} +0 -0
  261. /package/dist/{chunk-TRN56SPQ.js.map → chunk-M2OPC4BD.js.map} +0 -0
  262. /package/dist/{chunk-LXJZUNLX.js.map → chunk-NBK24POV.js.map} +0 -0
  263. /package/dist/{chunk-7X7A7KVN.js.map → chunk-NLYOOGZ7.js.map} +0 -0
  264. /package/dist/{chunk-G5I5ZT6O.js.map → chunk-OSDAF7HH.js.map} +0 -0
  265. /package/dist/{chunk-EZ3F4YIN.js.map → chunk-OV7EYM6M.js.map} +0 -0
  266. /package/dist/{chunk-AU43D3IT.js.map → chunk-P57VR7AI.js.map} +0 -0
  267. /package/dist/{chunk-NT2Q6AHC.js.map → chunk-PCO3P7WJ.js.map} +0 -0
  268. /package/dist/{chunk-73R4HOOK.js.map → chunk-PT6DQK5T.js.map} +0 -0
  269. /package/dist/{chunk-O43AAJFQ.js.map → chunk-PTGPU4DC.js.map} +0 -0
  270. /package/dist/{chunk-STQC2FYQ.js.map → chunk-PWVBVIOP.js.map} +0 -0
  271. /package/dist/{chunk-TFA6HPOA.js.map → chunk-QCP75JGO.js.map} +0 -0
  272. /package/dist/{chunk-SIGDETMB.js.map → chunk-R4NGLTUS.js.map} +0 -0
  273. /package/dist/{chunk-S2GR3T7W.js.map → chunk-RNYVAQX2.js.map} +0 -0
  274. /package/dist/{chunk-PZ2QQULY.js.map → chunk-RU744TNX.js.map} +0 -0
  275. /package/dist/{chunk-2OFDC3AK.js.map → chunk-RVQVWDSN.js.map} +0 -0
  276. /package/dist/{chunk-OFGTRDWX.js.map → chunk-SIYZDT2V.js.map} +0 -0
  277. /package/dist/{chunk-PQ7EB5AD.js.map → chunk-SQPC6MUM.js.map} +0 -0
  278. /package/dist/{chunk-5R4YPRAR.js.map → chunk-TGF43K66.js.map} +0 -0
  279. /package/dist/{chunk-ZRUC7FD3.js.map → chunk-U4SG4HKQ.js.map} +0 -0
  280. /package/dist/{chunk-ATFFWIKL.js.map → chunk-U6HWKOGD.js.map} +0 -0
  281. /package/dist/{chunk-IOMLGJHG.js.map → chunk-UK5EH7AI.js.map} +0 -0
  282. /package/dist/{chunk-DB6XFMOF.js.map → chunk-VC4J4UTI.js.map} +0 -0
  283. /package/dist/{chunk-T32YYUT2.js.map → chunk-VQTPEL7O.js.map} +0 -0
  284. /package/dist/{chunk-7YQR6XHY.js.map → chunk-W6K6BC3H.js.map} +0 -0
  285. /package/dist/{chunk-FYX2LXIX.js.map → chunk-WI37MWRZ.js.map} +0 -0
  286. /package/dist/{chunk-7NBUE5VY.js.map → chunk-WPMDNCGB.js.map} +0 -0
  287. /package/dist/{chunk-GZ2KV2RO.js.map → chunk-WWLAKRMX.js.map} +0 -0
  288. /package/dist/{chunk-EWWK65CI.js.map → chunk-WY4IV62O.js.map} +0 -0
  289. /package/dist/{chunk-DQEMWVMT.js.map → chunk-X7Y7WX73.js.map} +0 -0
  290. /package/dist/{chunk-GQ6ZF4LD.js.map → chunk-XG4XXI66.js.map} +0 -0
  291. /package/dist/{chunk-Z6EZCN6Z.js.map → chunk-Y7427SL7.js.map} +0 -0
  292. /package/dist/{chunk-TXTRHF3B.js.map → chunk-YAPTJQI7.js.map} +0 -0
  293. /package/dist/{chunk-JRDL3FGM.js.map → chunk-YFET6A4I.js.map} +0 -0
  294. /package/dist/{chunk-ISX7GVZE.js.map → chunk-YRULQW5J.js.map} +0 -0
  295. /package/dist/{chunk-VDVHIRCK.js.map → chunk-YVHNBOK2.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/qmd-preflight.ts"],"sourcesContent":["/**\n * QMD version-check PREFLIGHT / probe-classification helpers.\n *\n * Pure, self-contained functions extracted from qmd.ts (issue #1841) so the\n * QmdClient class file stays under the structural-ratchet LOC ceiling. These\n * cover two related concerns of the startup preflight:\n *\n * 1. VERSION parsing/comparison — turning `qmd --version` output into a tuple,\n * comparing against the supported target, and resolving feature capability\n * flags from the parsed version.\n * 2. PROBE failure classification — distinguishing a slow/overloaded binary\n * (transient → retry) from a genuine misconfiguration (ENOENT/EACCES → fail\n * fast) using STRUCTURED signals, never the error message.\n *\n * No behavioral change from qmd.ts round 1 (issue #1841): structured-signal\n * classification (code=ENOENT/EACCES=>missing, timedOut flag=>transient,\n * caller-cancel silenced, non-zero-exit=>other); backoff [300,800].\n */\nimport { isAbortError } from \"./abort-error.js\";\nimport type { QmdCapabilities, QmdVersionTuple } from \"./qmd.js\";\n\n// Deadline (ms) for a single `qmd --version` probe.\nexport const QMD_PROBE_TIMEOUT_MS = 8_000;\n\n// Backoff schedule (ms) for retrying a TRANSIENT (timeout/abort) version-check\n// probe of a CONFIGURED qmdPath before declaring it failed. A binary that\n// resolved and ran before is more likely slow under load than gone, so we retry\n// transient failures but NOT ENOENT/EACCES (hard misconfiguration, fail fast).\n// Length == number of retries after the initial attempt. Issue #1841.\nexport const QMD_PROBE_RETRY_BACKOFF_MS = [300, 800];\n\nexport const QMD_SUPPORTED_VERSION = \"2.5.3\";\n\n/**\n * Classify a `qmd --version` probe failure so the preflight can distinguish a\n * slow/overloaded binary (a genuine deadline timeout) from a real\n * misconfiguration (ENOENT/EACCES — the configured path is missing or not\n * executable). Only transient failures are retried; missing binaries fail fast.\n *\n * Classification keys on STRUCTURED signals, never the error *message*: a\n * non-zero-exit failure embeds the child's stderr in its message, so scanning\n * that text for \"abort\"/\"timed out\"/\"not found\" would misclassify a healthy\n * binary. The structured signals are: `code` (ENOENT/EACCES) for missing; the\n * `timedOut` flag set by `runCommandWithTimeout` for a genuine timeout; an\n * AbortError name for a deadline/abort under load. Issue #1841.\n */\nexport type QmdProbeFailureKind = \"transient\" | \"missing\" | \"other\";\nexport function classifyProbeFailure(err: unknown): QmdProbeFailureKind {\n if (err && typeof err === \"object\") {\n // Node spawn failures carry a structured `code`: ENOENT (not found) /\n // EACCES (not executable).\n if (\"code\" in err) {\n const code = err.code;\n if (code === \"ENOENT\" || code === \"EACCES\") return \"missing\";\n }\n // runCommandWithTimeout flags a genuine deadline breach with `timedOut`.\n if (\"timedOut\" in err && err.timedOut === true) return \"transient\";\n }\n // An AbortError reaching here is a deadline/abort under load → transient.\n // (Caller cancellation is intercepted by the retry loop before this runs.)\n if (isAbortError(err)) return \"transient\";\n // Anything else — including a non-zero exit whose message embeds stderr — is\n // a generic failure: never scan the message to upgrade/downgrade it.\n return \"other\";\n}\n\nexport function parseQmdVersion(version: string | null): QmdVersionTuple | null {\n if (!version) return null;\n const match = version.match(/v?(\\d{1,10})\\.(\\d{1,10})\\.(\\d{1,10})/i);\n if (!match) return null;\n return [\n Number.parseInt(match[1] ?? \"0\", 10),\n Number.parseInt(match[2] ?? \"0\", 10),\n Number.parseInt(match[3] ?? \"0\", 10),\n ];\n}\n\nexport function parseQmdVersionOutput(stdout: string, stderr: string): string | null {\n const lines = `${stdout}\\n${stderr}`\n .split(\"\\n\")\n .map((s) => s.trim())\n .filter((s) => s.length > 0);\n if (lines.length === 0) return null;\n const semanticLines = lines.filter((line) => parseQmdVersion(line) !== null);\n if (semanticLines.length === 0) return lines[0] ?? null;\n return semanticLines.find((line) => /\\bqmd\\b/i.test(line)) ?? semanticLines[0] ?? null;\n}\n\nexport function compareQmdVersions(left: QmdVersionTuple | null, right: QmdVersionTuple | null): number {\n if (!left && !right) return 0;\n if (!left) return -1;\n if (!right) return 1;\n for (let i = 0; i < 3; i += 1) {\n if ((left[i] ?? 0) > (right[i] ?? 0)) return 1;\n if ((left[i] ?? 0) < (right[i] ?? 0)) return -1;\n }\n return 0;\n}\n\nexport function versionAtLeast(current: QmdVersionTuple | null, target: QmdVersionTuple): boolean {\n return compareQmdVersions(current, target) >= 0;\n}\n\nexport function resolveQmdCapabilities(version: string | null): QmdCapabilities {\n const parsedVersion = parseQmdVersion(version);\n const atLeast = (target: QmdVersionTuple): boolean => versionAtLeast(parsedVersion, target);\n return {\n version,\n parsedVersion,\n stableSdk: atLeast([2, 0, 0]),\n unifiedSearch: atLeast([2, 0, 0]),\n getDocumentBody: atLeast([2, 0, 0]),\n maintenanceApi: atLeast([2, 0, 0]),\n legacySkillInstall: atLeast([2, 0, 1]),\n intentHints: atLeast([1, 1, 5]),\n explainTraces: atLeast([1, 1, 2]),\n candidateLimit: atLeast([1, 1, 2]),\n v2McpQueryTool: atLeast([2, 0, 0]),\n structuredSearches: atLeast([2, 0, 0]),\n queryRerankToggle: atLeast([2, 1, 0]),\n chunkStrategy: atLeast([2, 1, 0]),\n qmdBench: atLeast([2, 1, 0]),\n perCollectionModels: atLeast([2, 1, 0]),\n jsonLineNumbers: atLeast([2, 1, 0]),\n editorLinks: atLeast([2, 1, 0]),\n doctor: atLeast([2, 5, 0]),\n versionedSkills: atLeast([2, 5, 0]),\n absoluteSnippetLines: atLeast([2, 5, 0]),\n fullQueryOutput: atLeast([2, 5, 0]),\n forceCpu: atLeast([2, 5, 0]),\n gpuBackendOverride: atLeast([2, 5, 0]),\n embedParallelism: atLeast([2, 5, 0]),\n modelEnvConsistency: atLeast([2, 5, 0]),\n scopedEmbed: atLeast([2, 5, 0]),\n safeStatusDeviceProbe: atLeast([2, 5, 0]),\n mcpIndexSelection: atLeast([2, 5, 0]),\n outputFormatFlag: atLeast([2, 5, 3]),\n };\n}\n\nexport function shouldAutoUpgradeQmd(\n installedVersion: string | null,\n supportedVersion: string = QMD_SUPPORTED_VERSION\n): boolean {\n const installed = parseQmdVersion(installedVersion);\n const supported = parseQmdVersion(supportedVersion);\n if (!installed || !supported) return false;\n return compareQmdVersions(installed, supported) < 0;\n}\n\nexport function getQmdPostInstallProbeTargets(\n qmdPath: string,\n qmdPathSource: \"configured\" | \"auto-path\" | \"auto-fallback\"\n): Array<{ qmdPath: string; source: \"auto-path\" | \"auto-fallback\" }> {\n const targets: Array<{ qmdPath: string; source: \"auto-path\" | \"auto-fallback\" }> = [\n { qmdPath: \"qmd\", source: \"auto-path\" },\n ];\n const normalizedPath = qmdPath.trim();\n if (qmdPathSource === \"auto-fallback\" && normalizedPath.length > 0 && normalizedPath !== \"qmd\") {\n targets.push({ qmdPath: normalizedPath, source: \"auto-fallback\" });\n }\n return targets;\n}\n\nexport function qmdVersionToString(version: QmdVersionTuple): string {\n return `${version[0]}.${version[1]}.${version[2]}`;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/qmd-preflight.ts"],"sourcesContent":["/**\n * QMD version-check PREFLIGHT / probe-classification helpers.\n *\n * Pure, self-contained functions extracted from qmd.ts (issue #1841) so the\n * QmdClient class file stays under the structural-ratchet LOC ceiling. These\n * cover two related concerns of the startup preflight:\n *\n * 1. VERSION parsing/comparison — turning `qmd --version` output into a tuple,\n * comparing against the supported target, and resolving feature capability\n * flags from the parsed version.\n * 2. PROBE failure classification — distinguishing a slow/overloaded binary\n * (transient → retry) from a genuine misconfiguration (ENOENT/EACCES → fail\n * fast) using STRUCTURED signals, never the error message.\n *\n * No behavioral change from qmd.ts round 1 (issue #1841): structured-signal\n * classification (code=ENOENT/EACCES=>missing, timedOut flag=>transient,\n * caller-cancel silenced, non-zero-exit=>other); backoff [300,800].\n */\nimport { isAbortError } from \"./abort-error.js\";\nimport type { QmdCapabilities, QmdVersionTuple } from \"./qmd.js\";\n\n// Deadline (ms) for a single `qmd --version` probe.\nexport const QMD_PROBE_TIMEOUT_MS = 8_000;\n\n// Backoff schedule (ms) for retrying a TRANSIENT (timeout/abort) version-check\n// probe of a CONFIGURED qmdPath before declaring it failed. A binary that\n// resolved and ran before is more likely slow under load than gone, so we retry\n// transient failures but NOT ENOENT/EACCES (hard misconfiguration, fail fast).\n// Length == number of retries after the initial attempt. Issue #1841.\nexport const QMD_PROBE_RETRY_BACKOFF_MS = [300, 800];\n\nexport const QMD_SUPPORTED_VERSION = \"2.8.3\";\n\n/**\n * Classify a `qmd --version` probe failure so the preflight can distinguish a\n * slow/overloaded binary (a genuine deadline timeout) from a real\n * misconfiguration (ENOENT/EACCES — the configured path is missing or not\n * executable). Only transient failures are retried; missing binaries fail fast.\n *\n * Classification keys on STRUCTURED signals, never the error *message*: a\n * non-zero-exit failure embeds the child's stderr in its message, so scanning\n * that text for \"abort\"/\"timed out\"/\"not found\" would misclassify a healthy\n * binary. The structured signals are: `code` (ENOENT/EACCES) for missing; the\n * `timedOut` flag set by `runCommandWithTimeout` for a genuine timeout; an\n * AbortError name for a deadline/abort under load. Issue #1841.\n */\nexport type QmdProbeFailureKind = \"transient\" | \"missing\" | \"other\";\nexport function classifyProbeFailure(err: unknown): QmdProbeFailureKind {\n if (err && typeof err === \"object\") {\n // Node spawn failures carry a structured `code`: ENOENT (not found) /\n // EACCES (not executable).\n if (\"code\" in err) {\n const code = err.code;\n if (code === \"ENOENT\" || code === \"EACCES\") return \"missing\";\n }\n // runCommandWithTimeout flags a genuine deadline breach with `timedOut`.\n if (\"timedOut\" in err && err.timedOut === true) return \"transient\";\n }\n // An AbortError reaching here is a deadline/abort under load → transient.\n // (Caller cancellation is intercepted by the retry loop before this runs.)\n if (isAbortError(err)) return \"transient\";\n // Anything else — including a non-zero exit whose message embeds stderr — is\n // a generic failure: never scan the message to upgrade/downgrade it.\n return \"other\";\n}\n\nexport function parseQmdVersion(version: string | null): QmdVersionTuple | null {\n if (!version) return null;\n const match = version.match(/v?(\\d{1,10})\\.(\\d{1,10})\\.(\\d{1,10})/i);\n if (!match) return null;\n return [\n Number.parseInt(match[1] ?? \"0\", 10),\n Number.parseInt(match[2] ?? \"0\", 10),\n Number.parseInt(match[3] ?? \"0\", 10),\n ];\n}\n\nexport function parseQmdVersionOutput(stdout: string, stderr: string): string | null {\n const lines = `${stdout}\\n${stderr}`\n .split(\"\\n\")\n .map((s) => s.trim())\n .filter((s) => s.length > 0);\n if (lines.length === 0) return null;\n const semanticLines = lines.filter((line) => parseQmdVersion(line) !== null);\n if (semanticLines.length === 0) return lines[0] ?? null;\n return semanticLines.find((line) => /\\bqmd\\b/i.test(line)) ?? semanticLines[0] ?? null;\n}\n\nexport function compareQmdVersions(left: QmdVersionTuple | null, right: QmdVersionTuple | null): number {\n if (!left && !right) return 0;\n if (!left) return -1;\n if (!right) return 1;\n for (let i = 0; i < 3; i += 1) {\n if ((left[i] ?? 0) > (right[i] ?? 0)) return 1;\n if ((left[i] ?? 0) < (right[i] ?? 0)) return -1;\n }\n return 0;\n}\n\nexport function versionAtLeast(current: QmdVersionTuple | null, target: QmdVersionTuple): boolean {\n return compareQmdVersions(current, target) >= 0;\n}\n\nexport function resolveQmdCapabilities(version: string | null): QmdCapabilities {\n const parsedVersion = parseQmdVersion(version);\n const atLeast = (target: QmdVersionTuple): boolean => versionAtLeast(parsedVersion, target);\n return {\n version,\n parsedVersion,\n stableSdk: atLeast([2, 0, 0]),\n unifiedSearch: atLeast([2, 0, 0]),\n getDocumentBody: atLeast([2, 0, 0]),\n maintenanceApi: atLeast([2, 0, 0]),\n legacySkillInstall: atLeast([2, 0, 1]),\n intentHints: atLeast([1, 1, 5]),\n explainTraces: atLeast([1, 1, 2]),\n candidateLimit: atLeast([1, 1, 2]),\n v2McpQueryTool: atLeast([2, 0, 0]),\n structuredSearches: atLeast([2, 0, 0]),\n queryRerankToggle: atLeast([2, 1, 0]),\n chunkStrategy: atLeast([2, 1, 0]),\n qmdBench: atLeast([2, 1, 0]),\n perCollectionModels: atLeast([2, 1, 0]),\n jsonLineNumbers: atLeast([2, 1, 0]),\n editorLinks: atLeast([2, 1, 0]),\n doctor: atLeast([2, 5, 0]),\n versionedSkills: atLeast([2, 5, 0]),\n absoluteSnippetLines: atLeast([2, 5, 0]),\n fullQueryOutput: atLeast([2, 5, 0]),\n forceCpu: atLeast([2, 5, 0]),\n gpuBackendOverride: atLeast([2, 5, 0]),\n embedParallelism: atLeast([2, 5, 0]),\n modelEnvConsistency: atLeast([2, 5, 0]),\n scopedEmbed: atLeast([2, 5, 0]),\n safeStatusDeviceProbe: atLeast([2, 5, 0]),\n mcpIndexSelection: atLeast([2, 5, 0]),\n outputFormatFlag: atLeast([2, 5, 3]),\n };\n}\n\nexport function shouldAutoUpgradeQmd(\n installedVersion: string | null,\n supportedVersion: string = QMD_SUPPORTED_VERSION\n): boolean {\n const installed = parseQmdVersion(installedVersion);\n const supported = parseQmdVersion(supportedVersion);\n if (!installed || !supported) return false;\n return compareQmdVersions(installed, supported) < 0;\n}\n\n/** First QMD release that needs the pinned, patched build (docs/qmd-2.8.3.md); stock npm lacks the patches. */\nconst QMD_PATCHED_BUILD_MIN: QmdVersionTuple = [2, 8, 3];\n\n/** False when `npm install -g @tobilu/qmd@<supported>` would install stock QMD instead of the patched build. */\nexport function autoUpgradeInstallsStockPackage(supportedVersion: string): boolean {\n const supported = parseQmdVersion(supportedVersion);\n return supported !== null && compareQmdVersions(supported, QMD_PATCHED_BUILD_MIN) < 0;\n}\n\nexport function getQmdPostInstallProbeTargets(\n qmdPath: string,\n qmdPathSource: \"configured\" | \"auto-path\" | \"auto-fallback\"\n): Array<{ qmdPath: string; source: \"auto-path\" | \"auto-fallback\" }> {\n const targets: Array<{ qmdPath: string; source: \"auto-path\" | \"auto-fallback\" }> = [\n { qmdPath: \"qmd\", source: \"auto-path\" },\n ];\n const normalizedPath = qmdPath.trim();\n if (qmdPathSource === \"auto-fallback\" && normalizedPath.length > 0 && normalizedPath !== \"qmd\") {\n targets.push({ qmdPath: normalizedPath, source: \"auto-fallback\" });\n }\n return targets;\n}\n\nexport function qmdVersionToString(version: QmdVersionTuple): string {\n return `${version[0]}.${version[1]}.${version[2]}`;\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isValidCapsuleSince
3
- } from "./chunk-VDX2J7OX.js";
3
+ } from "./chunk-KQAFEZQX.js";
4
4
  import {
5
5
  CAPSULE_ID_PATTERN
6
6
  } from "./chunk-WEHSQBFR.js";
@@ -12,7 +12,7 @@ import {
12
12
  import {
13
13
  OFFLINE_SYNC_FILE_CONTENT_MAX_CHUNK_BYTES,
14
14
  OFFLINE_SYNC_MAX_MTIME_MS
15
- } from "./chunk-5R4YPRAR.js";
15
+ } from "./chunk-TGF43K66.js";
16
16
  import {
17
17
  validateArchiveRelativePath
18
18
  } from "./chunk-GCGJW34D.js";
@@ -563,4 +563,4 @@ export {
563
563
  actionConfidenceRequestSchema,
564
564
  validateRequest
565
565
  };
566
- //# sourceMappingURL=chunk-OFGTRDWX.js.map
566
+ //# sourceMappingURL=chunk-SIYZDT2V.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  resolveDefaultNamespaceRoot
3
- } from "./chunk-KMN2JE4D.js";
3
+ } from "./chunk-CVQWNACA.js";
4
4
  import {
5
5
  StorageManager
6
- } from "./chunk-E4XLFYHV.js";
6
+ } from "./chunk-LHOIYLKH.js";
7
7
  import {
8
8
  composeLocationDayBody,
9
9
  composeLocationDayMeta,
@@ -728,4 +728,4 @@ export {
728
728
  runLocationBackfill,
729
729
  runLocationCliCommand
730
730
  };
731
- //# sourceMappingURL=chunk-PQ7EB5AD.js.map
731
+ //# sourceMappingURL=chunk-SQPC6MUM.js.map
@@ -9,21 +9,10 @@ import {
9
9
  writeOfflineUploadChunk,
10
10
  writeSafeFileFromUpload
11
11
  } from "./chunk-3E6DGSGZ.js";
12
- import {
13
- OFFLINE_SYNC_FAST_BASE_MTIME_TOLERANCE_MS,
14
- SYNC_INTERNAL_DIR,
15
- assertOfflineSyncMtimeMs,
16
- isEncryptedOfflineSyncFile,
17
- plainFileDigest,
18
- readPlainOfflineSyncFileChunk,
19
- setSafeFileMtime,
20
- sha256OfflineSyncFile,
21
- shouldExcludeOfflineSyncFile
22
- } from "./chunk-EFHNFTWB.js";
23
12
  import {
24
13
  applyChangesetEmbeddingGenerations,
25
14
  normalizeChangesetGenerations
26
- } from "./chunk-DB6XFMOF.js";
15
+ } from "./chunk-VC4J4UTI.js";
27
16
  import {
28
17
  applyIncomingEmbeddingGenerations,
29
18
  assertEmbeddingGenerationStillIncluded,
@@ -32,22 +21,33 @@ import {
32
21
  embeddingGenerationMembership,
33
22
  isEmbeddingGenerationDirPath,
34
23
  isPathInOmittedEmbeddingGeneration
35
- } from "./chunk-GZ2KV2RO.js";
24
+ } from "./chunk-WWLAKRMX.js";
36
25
  import {
37
26
  isEmbeddingGenerationMarkerPath,
38
27
  matchesOfflineSyncDefaultExclude
39
28
  } from "./chunk-63LFM77Z.js";
40
29
  import {
41
- isCanonicalRuntimeStatePath,
42
- shouldDeleteAbsentIncomingOfflineRuntimeFile,
43
- shouldPreferIncomingOfflineRuntimeFile
44
- } from "./chunk-TYT4TEQV.js";
30
+ OFFLINE_SYNC_FAST_BASE_MTIME_TOLERANCE_MS,
31
+ SYNC_INTERNAL_DIR,
32
+ assertOfflineSyncMtimeMs,
33
+ isEncryptedOfflineSyncFile,
34
+ plainFileDigest,
35
+ readPlainOfflineSyncFileChunk,
36
+ setSafeFileMtime,
37
+ sha256OfflineSyncFile,
38
+ shouldExcludeOfflineSyncFile
39
+ } from "./chunk-EFHNFTWB.js";
45
40
  import {
46
41
  prepareSafeArchiveRoot,
47
42
  resolveSafeArchiveTarget,
48
43
  sha256Bytes,
49
44
  validateArchiveRelativePath
50
45
  } from "./chunk-GCGJW34D.js";
46
+ import {
47
+ isCanonicalRuntimeStatePath,
48
+ shouldDeleteAbsentIncomingOfflineRuntimeFile,
49
+ shouldPreferIncomingOfflineRuntimeFile
50
+ } from "./chunk-TYT4TEQV.js";
51
51
  import {
52
52
  withEmbeddingGenerationLock,
53
53
  withEmbeddingGenerationLockIter
@@ -1787,4 +1787,4 @@ export {
1787
1787
  normalizeOfflineSyncState,
1788
1788
  fileStatesFromSnapshot
1789
1789
  };
1790
- //# sourceMappingURL=chunk-5R4YPRAR.js.map
1790
+ //# sourceMappingURL=chunk-TGF43K66.js.map
@@ -0,0 +1,102 @@
1
+ import {
2
+ abortError
3
+ } from "./chunk-BTTPKDIL.js";
4
+
5
+ // src/qmd-mcp-cancel.ts
6
+ function createInflightJoiner() {
7
+ const slots = /* @__PURE__ */ new Map();
8
+ return {
9
+ join(key, signal, run) {
10
+ if (signal?.aborted) {
11
+ return Promise.reject(abortError("QMD inflight search aborted"));
12
+ }
13
+ let slot = slots.get(key);
14
+ if (slot?.controller.signal.aborted) slot = void 0;
15
+ if (!slot) {
16
+ const controller = new AbortController();
17
+ const created = {
18
+ controller,
19
+ refs: 0,
20
+ promise: Promise.resolve()
21
+ };
22
+ slots.set(key, created);
23
+ created.promise = new Promise((resolve, reject) => {
24
+ try {
25
+ resolve(run(controller.signal));
26
+ } catch (err) {
27
+ reject(err);
28
+ }
29
+ }).finally(() => {
30
+ if (slots.get(key) === created) slots.delete(key);
31
+ });
32
+ created.promise.catch(() => {
33
+ });
34
+ slot = created;
35
+ }
36
+ return attachWaiter(slot, signal);
37
+ }
38
+ };
39
+ }
40
+ function attachWaiter(slot, signal) {
41
+ if (signal?.aborted) {
42
+ return Promise.reject(abortError("QMD inflight search aborted"));
43
+ }
44
+ slot.refs += 1;
45
+ let settled = false;
46
+ return new Promise((resolve, reject) => {
47
+ const finish = (abortShared, settle) => {
48
+ if (settled) return;
49
+ settled = true;
50
+ if (onAbort) signal?.removeEventListener("abort", onAbort);
51
+ slot.refs -= 1;
52
+ if (slot.refs < 0) slot.refs = 0;
53
+ if (abortShared && slot.refs === 0) {
54
+ slot.controller.abort();
55
+ }
56
+ settle();
57
+ };
58
+ const onAbort = () => {
59
+ finish(true, () => reject(abortError("QMD inflight search aborted")));
60
+ };
61
+ if (signal) {
62
+ signal.addEventListener("abort", onAbort, { once: true });
63
+ if (signal.aborted) {
64
+ onAbort();
65
+ return;
66
+ }
67
+ }
68
+ slot.promise.then(
69
+ (value) => finish(false, () => resolve(value)),
70
+ (err) => finish(false, () => reject(err))
71
+ );
72
+ });
73
+ }
74
+ async function rankDocumentsUntilAbortParallel(count, parallelism, signal, rankIndex) {
75
+ if (signal?.aborted) {
76
+ throw abortError("qmd rerank aborted");
77
+ }
78
+ if (count <= 0) return [];
79
+ const scores = new Array(count);
80
+ let cursor = 0;
81
+ const workers = Math.max(1, Math.min(Math.floor(parallelism) || 1, count));
82
+ await Promise.all(
83
+ Array.from({ length: workers }, async () => {
84
+ while (true) {
85
+ if (signal?.aborted) return;
86
+ const index = cursor++;
87
+ if (index >= count) return;
88
+ scores[index] = await rankIndex(index);
89
+ }
90
+ })
91
+ );
92
+ if (signal?.aborted) {
93
+ throw abortError("qmd rerank aborted");
94
+ }
95
+ return scores;
96
+ }
97
+
98
+ export {
99
+ createInflightJoiner,
100
+ rankDocumentsUntilAbortParallel
101
+ };
102
+ //# sourceMappingURL=chunk-TPSLVZHS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/qmd-mcp-cancel.ts"],"sourcesContent":["import { abortError } from \"./abort-error.js\";\n\n/**\n * One in-flight daemon search shared by identical callers.\n * The shared signal aborts only when every waiter has aborted, which is\n * what tells the QMD process to stop. One caller giving up must not cancel\n * a sibling that still wants the result.\n */\nexport type InflightJoiner<T> = {\n join(key: string, signal: AbortSignal | undefined, run: (signal: AbortSignal) => Promise<T>): Promise<T>;\n};\n\ntype InflightSlot<T> = {\n controller: AbortController;\n refs: number;\n promise: Promise<T>;\n};\n\nexport function createInflightJoiner<T>(): InflightJoiner<T> {\n const slots = new Map<string, InflightSlot<T>>();\n\n return {\n join(key, signal, run) {\n if (signal?.aborted) {\n return Promise.reject(abortError(\"QMD inflight search aborted\"));\n }\n let slot = slots.get(key);\n // A slot whose last waiter already aborted is doomed; its promise settles\n // late. Never hand it to a new caller.\n if (slot?.controller.signal.aborted) slot = undefined;\n if (!slot) {\n const controller = new AbortController();\n const created: InflightSlot<T> = {\n controller,\n refs: 0,\n promise: Promise.resolve() as Promise<T>,\n };\n slots.set(key, created);\n created.promise = new Promise<T>((resolve, reject) => {\n try {\n resolve(run(controller.signal));\n } catch (err) {\n reject(err);\n }\n }).finally(() => {\n if (slots.get(key) === created) slots.delete(key);\n });\n // A cancel with no remaining waiter rejects this promise after the\n // waiter has already settled. Swallow that so it is not unhandled.\n created.promise.catch(() => {});\n slot = created;\n }\n return attachWaiter(slot, signal);\n },\n };\n}\n\nfunction attachWaiter<T>(slot: InflightSlot<T>, signal?: AbortSignal): Promise<T> {\n if (signal?.aborted) {\n return Promise.reject(abortError(\"QMD inflight search aborted\"));\n }\n slot.refs += 1;\n let settled = false;\n\n return new Promise<T>((resolve, reject) => {\n const finish = (abortShared: boolean, settle: () => void) => {\n if (settled) return;\n settled = true;\n if (onAbort) signal?.removeEventListener(\"abort\", onAbort);\n slot.refs -= 1;\n if (slot.refs < 0) slot.refs = 0;\n if (abortShared && slot.refs === 0) {\n slot.controller.abort();\n }\n settle();\n };\n const onAbort = () => {\n finish(true, () => reject(abortError(\"QMD inflight search aborted\")));\n };\n if (signal) {\n signal.addEventListener(\"abort\", onAbort, { once: true });\n if (signal.aborted) {\n onAbort();\n return;\n }\n }\n slot.promise.then(\n (value) => finish(false, () => resolve(value)),\n (err) => finish(false, () => reject(err))\n );\n });\n}\n\n/**\n * Score documents on a shared cursor and stop between documents when\n * `signal` aborts. In-flight `rankIndex` calls finish; later indexes\n * are not started. A cancelled batch throws and does not return scores.\n *\n * `docs/patches/qmd-2.8.3-mcp-cancel.patch` uses the same loop inside\n * QMD's reranker. `rank()` and `rankAll()` share one evaluate path, so\n * a document that finishes has the same score either way.\n */\nexport async function rankDocumentsUntilAbortParallel<T>(\n count: number,\n parallelism: number,\n signal: AbortSignal | undefined,\n rankIndex: (index: number) => Promise<T>\n): Promise<T[]> {\n if (signal?.aborted) {\n throw abortError(\"qmd rerank aborted\");\n }\n if (count <= 0) return [];\n const scores = new Array<T>(count);\n let cursor = 0;\n const workers = Math.max(1, Math.min(Math.floor(parallelism) || 1, count));\n await Promise.all(\n Array.from({ length: workers }, async () => {\n while (true) {\n if (signal?.aborted) return;\n const index = cursor++;\n if (index >= count) return;\n scores[index] = await rankIndex(index);\n }\n })\n );\n if (signal?.aborted) {\n throw abortError(\"qmd rerank aborted\");\n }\n return scores;\n}\n"],"mappings":";;;;;AAkBO,SAAS,uBAA6C;AAC3D,QAAM,QAAQ,oBAAI,IAA6B;AAE/C,SAAO;AAAA,IACL,KAAK,KAAK,QAAQ,KAAK;AACrB,UAAI,QAAQ,SAAS;AACnB,eAAO,QAAQ,OAAO,WAAW,6BAA6B,CAAC;AAAA,MACjE;AACA,UAAI,OAAO,MAAM,IAAI,GAAG;AAGxB,UAAI,MAAM,WAAW,OAAO,QAAS,QAAO;AAC5C,UAAI,CAAC,MAAM;AACT,cAAM,aAAa,IAAI,gBAAgB;AACvC,cAAM,UAA2B;AAAA,UAC/B;AAAA,UACA,MAAM;AAAA,UACN,SAAS,QAAQ,QAAQ;AAAA,QAC3B;AACA,cAAM,IAAI,KAAK,OAAO;AACtB,gBAAQ,UAAU,IAAI,QAAW,CAAC,SAAS,WAAW;AACpD,cAAI;AACF,oBAAQ,IAAI,WAAW,MAAM,CAAC;AAAA,UAChC,SAAS,KAAK;AACZ,mBAAO,GAAG;AAAA,UACZ;AAAA,QACF,CAAC,EAAE,QAAQ,MAAM;AACf,cAAI,MAAM,IAAI,GAAG,MAAM,QAAS,OAAM,OAAO,GAAG;AAAA,QAClD,CAAC;AAGD,gBAAQ,QAAQ,MAAM,MAAM;AAAA,QAAC,CAAC;AAC9B,eAAO;AAAA,MACT;AACA,aAAO,aAAa,MAAM,MAAM;AAAA,IAClC;AAAA,EACF;AACF;AAEA,SAAS,aAAgB,MAAuB,QAAkC;AAChF,MAAI,QAAQ,SAAS;AACnB,WAAO,QAAQ,OAAO,WAAW,6BAA6B,CAAC;AAAA,EACjE;AACA,OAAK,QAAQ;AACb,MAAI,UAAU;AAEd,SAAO,IAAI,QAAW,CAAC,SAAS,WAAW;AACzC,UAAM,SAAS,CAAC,aAAsB,WAAuB;AAC3D,UAAI,QAAS;AACb,gBAAU;AACV,UAAI,QAAS,SAAQ,oBAAoB,SAAS,OAAO;AACzD,WAAK,QAAQ;AACb,UAAI,KAAK,OAAO,EAAG,MAAK,OAAO;AAC/B,UAAI,eAAe,KAAK,SAAS,GAAG;AAClC,aAAK,WAAW,MAAM;AAAA,MACxB;AACA,aAAO;AAAA,IACT;AACA,UAAM,UAAU,MAAM;AACpB,aAAO,MAAM,MAAM,OAAO,WAAW,6BAA6B,CAAC,CAAC;AAAA,IACtE;AACA,QAAI,QAAQ;AACV,aAAO,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AACxD,UAAI,OAAO,SAAS;AAClB,gBAAQ;AACR;AAAA,MACF;AAAA,IACF;AACA,SAAK,QAAQ;AAAA,MACX,CAAC,UAAU,OAAO,OAAO,MAAM,QAAQ,KAAK,CAAC;AAAA,MAC7C,CAAC,QAAQ,OAAO,OAAO,MAAM,OAAO,GAAG,CAAC;AAAA,IAC1C;AAAA,EACF,CAAC;AACH;AAWA,eAAsB,gCACpB,OACA,aACA,QACA,WACc;AACd,MAAI,QAAQ,SAAS;AACnB,UAAM,WAAW,oBAAoB;AAAA,EACvC;AACA,MAAI,SAAS,EAAG,QAAO,CAAC;AACxB,QAAM,SAAS,IAAI,MAAS,KAAK;AACjC,MAAI,SAAS;AACb,QAAM,UAAU,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,MAAM,WAAW,KAAK,GAAG,KAAK,CAAC;AACzE,QAAM,QAAQ;AAAA,IACZ,MAAM,KAAK,EAAE,QAAQ,QAAQ,GAAG,YAAY;AAC1C,aAAO,MAAM;AACX,YAAI,QAAQ,QAAS;AACrB,cAAM,QAAQ;AACd,YAAI,SAAS,MAAO;AACpB,eAAO,KAAK,IAAI,MAAM,UAAU,KAAK;AAAA,MACvC;AAAA,IACF,CAAC;AAAA,EACH;AACA,MAAI,QAAQ,SAAS;AACnB,UAAM,WAAW,oBAAoB;AAAA,EACvC;AACA,SAAO;AACT;","names":[]}
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-GZFKCLRC.js";
7
7
  import {
8
8
  StorageManager
9
- } from "./chunk-E4XLFYHV.js";
9
+ } from "./chunk-LHOIYLKH.js";
10
10
  import {
11
11
  normalizeEntityName
12
12
  } from "./chunk-YXZG5TVN.js";
@@ -962,4 +962,4 @@ export {
962
962
  resolveBriefingSaveDir,
963
963
  briefingFilename
964
964
  };
965
- //# sourceMappingURL=chunk-ZRUC7FD3.js.map
965
+ //# sourceMappingURL=chunk-U4SG4HKQ.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-A7AISUJI.js";
4
4
  import {
5
5
  deepRecallRequestSchema
6
- } from "./chunk-OFGTRDWX.js";
6
+ } from "./chunk-SIYZDT2V.js";
7
7
  import {
8
8
  EngramAccessInputError
9
9
  } from "./chunk-3MUKQQ7A.js";
@@ -40,4 +40,4 @@ async function respondDeepRecall(req, res, respondJson, readJsonBody, service, s
40
40
  export {
41
41
  respondDeepRecall
42
42
  };
43
- //# sourceMappingURL=chunk-ATFFWIKL.js.map
43
+ //# sourceMappingURL=chunk-U6HWKOGD.js.map
@@ -19,7 +19,7 @@ import {
19
19
  import {
20
20
  decryptCapsuleFileInMemory,
21
21
  isEncryptedCapsuleFile
22
- } from "./chunk-DQEMWVMT.js";
22
+ } from "./chunk-X7Y7WX73.js";
23
23
  import {
24
24
  assertIsDirectoryNotSymlink,
25
25
  assertRealpathInsideRoot,
@@ -294,4 +294,4 @@ function mintForkId(capsuleId, originalId, now) {
294
294
  export {
295
295
  importCapsule
296
296
  };
297
- //# sourceMappingURL=chunk-IOMLGJHG.js.map
297
+ //# sourceMappingURL=chunk-UK5EH7AI.js.map
@@ -5,13 +5,13 @@ import {
5
5
  embeddingGenerationMembership,
6
6
  embeddingShardDirOf,
7
7
  isEmbeddingGenerationDirPath
8
- } from "./chunk-GZ2KV2RO.js";
9
- import {
10
- EMBEDDING_SHARD_FILE_PATTERN
11
- } from "./chunk-TYT4TEQV.js";
8
+ } from "./chunk-WWLAKRMX.js";
12
9
  import {
13
10
  resolveSafeArchiveTarget
14
11
  } from "./chunk-GCGJW34D.js";
12
+ import {
13
+ EMBEDDING_SHARD_FILE_PATTERN
14
+ } from "./chunk-TYT4TEQV.js";
15
15
  import {
16
16
  EmbeddingIndexStorageError
17
17
  } from "./chunk-Y57GJDG5.js";
@@ -369,4 +369,4 @@ export {
369
369
  applyChangesetEmbeddingGenerations,
370
370
  buildChangesetGenerationManifest
371
371
  };
372
- //# sourceMappingURL=chunk-DB6XFMOF.js.map
372
+ //# sourceMappingURL=chunk-VC4J4UTI.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-KJTKLXTH.js";
4
4
  import {
5
5
  StorageManager
6
- } from "./chunk-E4XLFYHV.js";
6
+ } from "./chunk-LHOIYLKH.js";
7
7
  import {
8
8
  assertInjectedStorageRooted
9
9
  } from "./chunk-22DYJLFN.js";
@@ -260,4 +260,4 @@ export {
260
260
  backupExistingLedger,
261
261
  rebuildMemoryLifecycleLedger
262
262
  };
263
- //# sourceMappingURL=chunk-T32YYUT2.js.map
263
+ //# sourceMappingURL=chunk-VQTPEL7O.js.map