@remnic/core 9.3.700 → 9.3.702

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 (323) hide show
  1. package/dist/access-boundary.d.ts +7 -7
  2. package/dist/access-boundary.js +17 -14
  3. package/dist/access-cli.js +40 -37
  4. package/dist/access-cli.js.map +1 -1
  5. package/dist/access-http.d.ts +7 -7
  6. package/dist/access-http.js +20 -17
  7. package/dist/access-mcp.d.ts +7 -7
  8. package/dist/access-mcp.js +19 -16
  9. package/dist/access-operations.d.ts +7 -7
  10. package/dist/access-operations.js +18 -15
  11. package/dist/{access-service-Cte3ol0W.d.ts → access-service-COCzhgEL.d.ts} +397 -19
  12. package/dist/access-service.d.ts +6 -6
  13. package/dist/access-service.js +16 -13
  14. package/dist/access-surface-catalog.d.ts +7 -7
  15. package/dist/action-confidence.d.ts +1 -1
  16. package/dist/active-memory-bridge.d.ts +1 -1
  17. package/dist/active-memory-bridge.js +2 -2
  18. package/dist/active-recall.d.ts +1 -1
  19. package/dist/active-recall.js +7 -6
  20. package/dist/active-recall.js.map +1 -1
  21. package/dist/behavior-learner.d.ts +1 -1
  22. package/dist/behavior-signals.d.ts +1 -1
  23. package/dist/bootstrap.d.ts +5 -5
  24. package/dist/briefing.d.ts +1 -1
  25. package/dist/briefing.js +8 -7
  26. package/dist/buffer-surprise-report.d.ts +1 -1
  27. package/dist/buffer.d.ts +1 -1
  28. package/dist/calibration.d.ts +1 -1
  29. package/dist/capabilities.d.ts +1 -1
  30. package/dist/{catalog-DN1PzThs.d.ts → catalog-DxCzhjE6.d.ts} +28 -54
  31. package/dist/causal-behavior.d.ts +1 -1
  32. package/dist/causal-consolidation.d.ts +1 -1
  33. package/dist/causal-consolidation.js +9 -8
  34. package/dist/causal-consolidation.js.map +1 -1
  35. package/dist/{chunk-XJNBEDFE.js → chunk-3FAMU5TX.js} +31 -74
  36. package/dist/chunk-3FAMU5TX.js.map +1 -0
  37. package/dist/{chunk-PCZR32VL.js → chunk-3JJWNZTT.js} +2 -2
  38. package/dist/{chunk-YXLT4EMM.js → chunk-4463LUIE.js} +12 -2
  39. package/dist/chunk-4463LUIE.js.map +1 -0
  40. package/dist/{chunk-R5DB26G6.js → chunk-4SBW47WK.js} +9 -23
  41. package/dist/chunk-4SBW47WK.js.map +1 -0
  42. package/dist/{chunk-CCOXIDRM.js → chunk-5VXVXJH6.js} +149 -6
  43. package/dist/{chunk-CCOXIDRM.js.map → chunk-5VXVXJH6.js.map} +1 -1
  44. package/dist/{chunk-PQG4T5V3.js → chunk-64XXOQRW.js} +49 -45
  45. package/dist/chunk-64XXOQRW.js.map +1 -0
  46. package/dist/{chunk-YXIFA36P.js → chunk-6TAETM63.js} +2 -2
  47. package/dist/{chunk-6JDGADXK.js → chunk-6VVP6NK7.js} +2 -2
  48. package/dist/{chunk-FN2SM5SN.js → chunk-ABCGDW3A.js} +75 -12
  49. package/dist/chunk-ABCGDW3A.js.map +1 -0
  50. package/dist/{chunk-CHM274U6.js → chunk-AMNLZ6SF.js} +2 -2
  51. package/dist/{chunk-JX3YZVII.js → chunk-CZJ6QSKG.js} +3 -3
  52. package/dist/{chunk-GYVVQYA3.js → chunk-EOOVJK2U.js} +3 -3
  53. package/dist/{chunk-JKW5XSWC.js → chunk-EYJD6KIO.js} +2 -2
  54. package/dist/{chunk-XY4WJTEX.js → chunk-EZR35XHX.js} +2 -2
  55. package/dist/{chunk-UU6MVCJ6.js → chunk-FIOYURII.js} +32 -25
  56. package/dist/chunk-FIOYURII.js.map +1 -0
  57. package/dist/{chunk-2NWHLAXX.js → chunk-FVI5B7DE.js} +2 -2
  58. package/dist/{chunk-X74FJSW7.js → chunk-GFIARMA7.js} +16 -8
  59. package/dist/chunk-GFIARMA7.js.map +1 -0
  60. package/dist/{chunk-PONNZ54D.js → chunk-GY3SKOS4.js} +4 -4
  61. package/dist/{chunk-U33LWTQQ.js → chunk-HV57RHMD.js} +4 -4
  62. package/dist/{chunk-RC3CNIPK.js → chunk-IO5NQEGZ.js} +2 -2
  63. package/dist/{chunk-IKNQAGBV.js → chunk-IX3UQT4H.js} +1 -1
  64. package/dist/{chunk-IKNQAGBV.js.map → chunk-IX3UQT4H.js.map} +1 -1
  65. package/dist/{chunk-HDLC75NX.js → chunk-IX72AAMZ.js} +2 -2
  66. package/dist/{chunk-DR2JTSLZ.js → chunk-JMA4RYRN.js} +62 -163
  67. package/dist/chunk-JMA4RYRN.js.map +1 -0
  68. package/dist/{chunk-G5PKTQ5J.js → chunk-JTKFZMZ7.js} +2 -2
  69. package/dist/{chunk-YMTGXDN6.js → chunk-KC6TCAWV.js} +5 -5
  70. package/dist/{chunk-ROZJACKP.js → chunk-KKK7YTYN.js} +4 -1
  71. package/dist/chunk-KKK7YTYN.js.map +1 -0
  72. package/dist/{chunk-EC2AYKRX.js → chunk-L6W77GWW.js} +10 -24
  73. package/dist/chunk-L6W77GWW.js.map +1 -0
  74. package/dist/{chunk-ED35D32I.js → chunk-LQ4J7ELC.js} +2 -2
  75. package/dist/{chunk-YPR7DOPD.js → chunk-LTJAMRGI.js} +4 -4
  76. package/dist/{chunk-YPR7DOPD.js.map → chunk-LTJAMRGI.js.map} +1 -1
  77. package/dist/chunk-LUPVCGYK.js +63 -0
  78. package/dist/chunk-LUPVCGYK.js.map +1 -0
  79. package/dist/{chunk-RJ2THZ4H.js → chunk-MBUM2Y3L.js} +2 -2
  80. package/dist/{chunk-T5QAZIBO.js → chunk-MOXFPLD6.js} +3 -3
  81. package/dist/{chunk-O54DY26V.js → chunk-MXEWQKM7.js} +2 -2
  82. package/dist/{chunk-33L6XHU2.js → chunk-NUIJEGVD.js} +6 -6
  83. package/dist/{chunk-3E5WRQNQ.js → chunk-OXEAMU42.js} +529 -9
  84. package/dist/chunk-OXEAMU42.js.map +1 -0
  85. package/dist/{chunk-EOBJRBLC.js → chunk-QGJAGC2J.js} +2 -2
  86. package/dist/{chunk-SMIVW7XC.js → chunk-QIMFOCSH.js} +2 -2
  87. package/dist/{chunk-IJEZMWKA.js → chunk-SFOAQQDJ.js} +3 -3
  88. package/dist/{chunk-HRUULBBV.js → chunk-SHRRWOVY.js} +81 -4
  89. package/dist/chunk-SHRRWOVY.js.map +1 -0
  90. package/dist/{chunk-NINRTFSV.js → chunk-SINGJCUR.js} +5 -5
  91. package/dist/{chunk-ZPQVJEVQ.js → chunk-SK2CR6MW.js} +146 -2
  92. package/dist/chunk-SK2CR6MW.js.map +1 -0
  93. package/dist/{chunk-SEWF2O74.js → chunk-TGAHHCB6.js} +2 -2
  94. package/dist/{chunk-D75JXBV4.js → chunk-WN4GHSDH.js} +2 -2
  95. package/dist/{chunk-K4DWSPMW.js → chunk-WRGPE6AW.js} +2 -2
  96. package/dist/{chunk-GA5A6MJH.js → chunk-XGMCUY5P.js} +62 -116
  97. package/dist/chunk-XGMCUY5P.js.map +1 -0
  98. package/dist/{chunk-SDPDU2PM.js → chunk-YTMDF6S7.js} +2 -2
  99. package/dist/{chunk-ZDK2IW5F.js → chunk-Z7XEIAV4.js} +2 -2
  100. package/dist/{chunk-NHBEO3F3.js → chunk-ZCEI242W.js} +24 -24
  101. package/dist/{cli--yVN9yEV.d.ts → cli-BM4xQPp4.d.ts} +3 -3
  102. package/dist/cli.d.ts +7 -7
  103. package/dist/cli.js +35 -34
  104. package/dist/compounding/engine.d.ts +1 -1
  105. package/dist/compounding/engine.js +8 -7
  106. package/dist/compounding/preference-consolidator.d.ts +1 -1
  107. package/dist/compression-optimizer.d.ts +1 -1
  108. package/dist/config.d.ts +1 -1
  109. package/dist/config.js +4 -2
  110. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  111. package/dist/connectors/codex-materialize-runner.js +8 -7
  112. package/dist/connectors/codex-materialize.d.ts +1 -1
  113. package/dist/connectors/index.d.ts +1 -1
  114. package/dist/connectors/index.js +9 -8
  115. package/dist/consolidation-provenance-check.d.ts +1 -1
  116. package/dist/consolidation-undo.d.ts +1 -1
  117. package/dist/contradiction/index.d.ts +2 -2
  118. package/dist/conversation-index/backend.d.ts +1 -1
  119. package/dist/conversation-index/chunker.d.ts +1 -1
  120. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  121. package/dist/conversation-index/indexer.d.ts +1 -1
  122. package/dist/conversation-index/search.d.ts +1 -1
  123. package/dist/day-summary.d.ts +1 -1
  124. package/dist/delinearize.d.ts +1 -1
  125. package/dist/direct-answer-wiring.d.ts +1 -1
  126. package/dist/direct-answer.d.ts +1 -1
  127. package/dist/embedding-fallback.d.ts +1 -1
  128. package/dist/enrichment/index.d.ts +1 -1
  129. package/dist/entity-retrieval.d.ts +1 -1
  130. package/dist/entity-retrieval.js +8 -7
  131. package/dist/entity-schema.d.ts +1 -1
  132. package/dist/event-order-recall.js +2 -1
  133. package/dist/explicit-capture.d.ts +5 -5
  134. package/dist/explicit-capture.js +2 -2
  135. package/dist/explicit-cue-recall.js +2 -1
  136. package/dist/extraction-faithfulness.d.ts +1 -1
  137. package/dist/extraction-judge-telemetry.d.ts +1 -1
  138. package/dist/extraction-judge-training.d.ts +1 -1
  139. package/dist/extraction-judge.d.ts +1 -1
  140. package/dist/extraction.d.ts +14 -1
  141. package/dist/extraction.js +5 -3
  142. package/dist/fallback-llm.d.ts +1 -1
  143. package/dist/{forget-BEXG5PQC.js → forget-6SOIPUMQ.js} +3 -3
  144. package/dist/identity-continuity.d.ts +1 -1
  145. package/dist/importance.d.ts +1 -1
  146. package/dist/index.d.ts +123 -123
  147. package/dist/index.js +57 -56
  148. package/dist/index.js.map +1 -1
  149. package/dist/intent.d.ts +1 -1
  150. package/dist/lcm/engine.d.ts +1 -1
  151. package/dist/lcm/index.d.ts +1 -1
  152. package/dist/lcm/tools.d.ts +1 -1
  153. package/dist/lifecycle.d.ts +1 -1
  154. package/dist/live-connectors-runner.d.ts +1 -1
  155. package/dist/local-llm.d.ts +1 -1
  156. package/dist/maintenance/memory-governance.d.ts +1 -1
  157. package/dist/maintenance/memory-governance.js +8 -7
  158. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +8 -7
  159. package/dist/maintenance/rebuild-memory-projection.js +9 -8
  160. package/dist/mcp-memory-inspector-app.d.ts +7 -7
  161. package/dist/memory-action-policy.d.ts +1 -1
  162. package/dist/memory-cache.d.ts +1 -1
  163. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  164. package/dist/memory-projection-store.d.ts +1 -1
  165. package/dist/memory-provenance.d.ts +1 -1
  166. package/dist/memory-worth-outcomes.d.ts +1 -1
  167. package/dist/models-json.d.ts +1 -1
  168. package/dist/namespaces/migrate.d.ts +2 -2
  169. package/dist/namespaces/migrate.js +9 -8
  170. package/dist/namespaces/principal.d.ts +1 -1
  171. package/dist/namespaces/search.d.ts +1 -1
  172. package/dist/namespaces/storage.d.ts +14 -3
  173. package/dist/namespaces/storage.js +8 -7
  174. package/dist/native-knowledge.d.ts +1 -1
  175. package/dist/operator-toolkit.d.ts +1 -1
  176. package/dist/operator-toolkit.js +14 -13
  177. package/dist/orchestration/maintenance.d.ts +2 -2
  178. package/dist/orchestration/maintenance.js +10 -9
  179. package/dist/{orchestrator-CJI4xdqV.d.ts → orchestrator-C9CDWAm6.d.ts} +4 -4
  180. package/dist/orchestrator.d.ts +5 -5
  181. package/dist/orchestrator.js +33 -31
  182. package/dist/patterns-cli.d.ts +1 -1
  183. package/dist/policy-runtime.d.ts +1 -1
  184. package/dist/provenance.d.ts +36 -2
  185. package/dist/provenance.js +5 -1
  186. package/dist/qmd-recall-cache.d.ts +1 -1
  187. package/dist/qmd.d.ts +1 -1
  188. package/dist/recall-disclosure-escalation.d.ts +1 -1
  189. package/dist/recall-explain-renderer.d.ts +1 -1
  190. package/dist/recall-explain-renderer.js +3 -3
  191. package/dist/recall-pipeline-stages.d.ts +15 -0
  192. package/dist/recall-pipeline-stages.js +3 -56
  193. package/dist/recall-pipeline-stages.js.map +1 -1
  194. package/dist/recall-planner-llm.d.ts +1 -1
  195. package/dist/recall-state.d.ts +1 -1
  196. package/dist/recall-tag-filter.d.ts +1 -1
  197. package/dist/recall-xray-cli.d.ts +1 -1
  198. package/dist/recall-xray-cli.js +4 -4
  199. package/dist/recall-xray-renderer.d.ts +1 -1
  200. package/dist/recall-xray-renderer.js +3 -3
  201. package/dist/recall-xray.d.ts +1 -1
  202. package/dist/recall-xray.js +2 -2
  203. package/dist/resolve-auth-token.d.ts +1 -1
  204. package/dist/response-guidance-recall.js +2 -1
  205. package/dist/resume-bundles.js +7 -5
  206. package/dist/retrieval-agents.d.ts +1 -1
  207. package/dist/retrieval-tiers.d.ts +1 -1
  208. package/dist/routing/engine.d.ts +1 -1
  209. package/dist/routing/store.d.ts +1 -1
  210. package/dist/schemas.d.ts +19 -0
  211. package/dist/schemas.js +1 -1
  212. package/dist/search/embed-helper.d.ts +1 -1
  213. package/dist/search/factory.d.ts +1 -1
  214. package/dist/search/index.d.ts +1 -1
  215. package/dist/search/lancedb-backend.d.ts +1 -1
  216. package/dist/search/meilisearch-backend.d.ts +1 -1
  217. package/dist/search/noop-backend.d.ts +1 -1
  218. package/dist/search/orama-backend.d.ts +1 -1
  219. package/dist/search/port.d.ts +1 -1
  220. package/dist/search/remote-backend.d.ts +1 -1
  221. package/dist/{semantic-DJR8_DMQ.d.ts → semantic-SLAa_prH.d.ts} +1 -1
  222. package/dist/{semantic-consolidation-BtUfv-AL.d.ts → semantic-consolidation-DgFXyALl.d.ts} +1 -1
  223. package/dist/semantic-consolidation.d.ts +2 -2
  224. package/dist/semantic-consolidation.js +9 -8
  225. package/dist/semantic-rule-promotion.js +8 -7
  226. package/dist/semantic-rule-verifier.d.ts +1 -1
  227. package/dist/semantic-rule-verifier.js +8 -7
  228. package/dist/session-observer-bands.d.ts +1 -1
  229. package/dist/session-observer-state.d.ts +1 -1
  230. package/dist/shared-context/manager.d.ts +1 -1
  231. package/dist/signal.d.ts +1 -1
  232. package/dist/storage.d.ts +13 -1
  233. package/dist/storage.js +7 -6
  234. package/dist/summarizer.d.ts +1 -1
  235. package/dist/summarizer.js +3 -2
  236. package/dist/summary-snapshot.d.ts +1 -1
  237. package/dist/summary-snapshot.js +2 -1
  238. package/dist/targeted-fact-recall.js +2 -1
  239. package/dist/temporal-supersession.d.ts +1 -1
  240. package/dist/temporal-validity.d.ts +1 -1
  241. package/dist/threading.d.ts +1 -1
  242. package/dist/tier-migration.d.ts +1 -1
  243. package/dist/tier-routing.d.ts +1 -1
  244. package/dist/topics.d.ts +1 -1
  245. package/dist/transcript.d.ts +1 -1
  246. package/dist/transcript.js +2 -2
  247. package/dist/{types-PuiPZ9iE.d.ts → types-MWKPZnM0.d.ts} +25 -1
  248. package/dist/types.d.ts +1 -1
  249. package/dist/types.js +1 -1
  250. package/dist/utility-runtime.d.ts +1 -1
  251. package/dist/utils/serialize-mutations.js +1 -1
  252. package/dist/verified-recall.js +8 -7
  253. package/package.json +2 -2
  254. package/src/access-http.ts +162 -0
  255. package/src/access-service.ts +215 -0
  256. package/src/admin/admin-surfaces.test.ts +458 -0
  257. package/src/admin/admin-surfaces.ts +819 -0
  258. package/src/event-order-recall.test.ts +53 -0
  259. package/src/event-order-recall.ts +61 -37
  260. package/src/explicit-cue-recall.ts +21 -1
  261. package/src/extraction.ts +91 -6
  262. package/src/namespaces/catalog.test.ts +222 -14
  263. package/src/namespaces/catalog.ts +54 -187
  264. package/src/namespaces/storage.ts +87 -80
  265. package/src/orchestrator.ts +46 -5
  266. package/src/provenance-extraction.test.ts +838 -0
  267. package/src/provenance.ts +413 -0
  268. package/src/recall-pipeline-parity.test.ts +288 -0
  269. package/src/recall-pipeline-stages.test.ts +43 -0
  270. package/src/recall-pipeline-stages.ts +22 -0
  271. package/src/response-guidance-recall.ts +32 -36
  272. package/src/schemas.ts +7 -0
  273. package/src/storage.ts +23 -0
  274. package/src/summary-snapshot.test.ts +63 -1
  275. package/src/summary-snapshot.ts +61 -80
  276. package/src/targeted-fact-recall.ts +25 -32
  277. package/src/types.ts +24 -0
  278. package/src/utils/serialize-mutations.ts +10 -6
  279. package/dist/chunk-3E5WRQNQ.js.map +0 -1
  280. package/dist/chunk-DR2JTSLZ.js.map +0 -1
  281. package/dist/chunk-EC2AYKRX.js.map +0 -1
  282. package/dist/chunk-FN2SM5SN.js.map +0 -1
  283. package/dist/chunk-GA5A6MJH.js.map +0 -1
  284. package/dist/chunk-HRUULBBV.js.map +0 -1
  285. package/dist/chunk-PQG4T5V3.js.map +0 -1
  286. package/dist/chunk-R5DB26G6.js.map +0 -1
  287. package/dist/chunk-ROZJACKP.js.map +0 -1
  288. package/dist/chunk-UU6MVCJ6.js.map +0 -1
  289. package/dist/chunk-X74FJSW7.js.map +0 -1
  290. package/dist/chunk-XJNBEDFE.js.map +0 -1
  291. package/dist/chunk-YXLT4EMM.js.map +0 -1
  292. package/dist/chunk-ZPQVJEVQ.js.map +0 -1
  293. /package/dist/{chunk-PCZR32VL.js.map → chunk-3JJWNZTT.js.map} +0 -0
  294. /package/dist/{chunk-YXIFA36P.js.map → chunk-6TAETM63.js.map} +0 -0
  295. /package/dist/{chunk-6JDGADXK.js.map → chunk-6VVP6NK7.js.map} +0 -0
  296. /package/dist/{chunk-CHM274U6.js.map → chunk-AMNLZ6SF.js.map} +0 -0
  297. /package/dist/{chunk-JX3YZVII.js.map → chunk-CZJ6QSKG.js.map} +0 -0
  298. /package/dist/{chunk-GYVVQYA3.js.map → chunk-EOOVJK2U.js.map} +0 -0
  299. /package/dist/{chunk-JKW5XSWC.js.map → chunk-EYJD6KIO.js.map} +0 -0
  300. /package/dist/{chunk-XY4WJTEX.js.map → chunk-EZR35XHX.js.map} +0 -0
  301. /package/dist/{chunk-2NWHLAXX.js.map → chunk-FVI5B7DE.js.map} +0 -0
  302. /package/dist/{chunk-PONNZ54D.js.map → chunk-GY3SKOS4.js.map} +0 -0
  303. /package/dist/{chunk-U33LWTQQ.js.map → chunk-HV57RHMD.js.map} +0 -0
  304. /package/dist/{chunk-RC3CNIPK.js.map → chunk-IO5NQEGZ.js.map} +0 -0
  305. /package/dist/{chunk-HDLC75NX.js.map → chunk-IX72AAMZ.js.map} +0 -0
  306. /package/dist/{chunk-G5PKTQ5J.js.map → chunk-JTKFZMZ7.js.map} +0 -0
  307. /package/dist/{chunk-YMTGXDN6.js.map → chunk-KC6TCAWV.js.map} +0 -0
  308. /package/dist/{chunk-ED35D32I.js.map → chunk-LQ4J7ELC.js.map} +0 -0
  309. /package/dist/{chunk-RJ2THZ4H.js.map → chunk-MBUM2Y3L.js.map} +0 -0
  310. /package/dist/{chunk-T5QAZIBO.js.map → chunk-MOXFPLD6.js.map} +0 -0
  311. /package/dist/{chunk-O54DY26V.js.map → chunk-MXEWQKM7.js.map} +0 -0
  312. /package/dist/{chunk-33L6XHU2.js.map → chunk-NUIJEGVD.js.map} +0 -0
  313. /package/dist/{chunk-EOBJRBLC.js.map → chunk-QGJAGC2J.js.map} +0 -0
  314. /package/dist/{chunk-SMIVW7XC.js.map → chunk-QIMFOCSH.js.map} +0 -0
  315. /package/dist/{chunk-IJEZMWKA.js.map → chunk-SFOAQQDJ.js.map} +0 -0
  316. /package/dist/{chunk-NINRTFSV.js.map → chunk-SINGJCUR.js.map} +0 -0
  317. /package/dist/{chunk-SEWF2O74.js.map → chunk-TGAHHCB6.js.map} +0 -0
  318. /package/dist/{chunk-D75JXBV4.js.map → chunk-WN4GHSDH.js.map} +0 -0
  319. /package/dist/{chunk-K4DWSPMW.js.map → chunk-WRGPE6AW.js.map} +0 -0
  320. /package/dist/{chunk-SDPDU2PM.js.map → chunk-YTMDF6S7.js.map} +0 -0
  321. /package/dist/{chunk-ZDK2IW5F.js.map → chunk-Z7XEIAV4.js.map} +0 -0
  322. /package/dist/{chunk-NHBEO3F3.js.map → chunk-ZCEI242W.js.map} +0 -0
  323. /package/dist/{forget-BEXG5PQC.js.map → forget-6SOIPUMQ.js.map} +0 -0
@@ -16,16 +16,16 @@ import { LastRecallStore, TierMigrationStatusStore, GraphRecallExpandedEntry, Ti
16
16
  import { RecallXraySnapshot } from './recall-xray.js';
17
17
  import { SessionObserverState } from './session-observer-state.js';
18
18
  import { EmbeddingFallback } from './embedding-fallback.js';
19
- import { a as SemanticDedupHit } from './semantic-DJR8_DMQ.js';
19
+ import { S as SemanticDedupHit } from './semantic-SLAa_prH.js';
20
20
  import { CapabilitySet } from './capabilities.js';
21
21
  import { ReplayTurn } from './replay/types.js';
22
22
  import { I as ImportTurn } from './types-ByK7T3L6.js';
23
23
  import { JudgeCandidate, JudgeBatchResult } from './extraction-judge.js';
24
- import { u as BufferTurn, a0 as ExtractionResult, M as MemoryCategory, a9 as ImportanceScore, h as MemoryStatus, aB as WearableConversation, aC as WearableSourceSettings, aD as WearableNativeMemory, aE as WearableMemoryMode, aF as WearableSourceConnector, aG as WearablesConfig, aH as WearableSyncSummary, aI as WearableSourceStatus, aJ as WearableDayTranscript, aK as WearableCorrectionRule, P as PluginConfig, aL as CodingContext, Q as QmdSearchResult, e as BehaviorLoopPolicyState, aM as BootstrapOptions, aN as BootstrapResult, aO as ConsolidationObservation, g as MemoryFile, a2 as DaySummaryResult, W as MemoryActionEvent, i as RecallPlanMode, aa as MemoryIntent, aP as EntityTimelineEntry, k as MemoryFrontmatter, I as IdentityInjectionMode } from './types-PuiPZ9iE.js';
24
+ import { u as BufferTurn, a0 as ExtractionResult, M as MemoryCategory, a9 as ImportanceScore, h as MemoryStatus, aw as WearableConversation, ax as WearableSourceSettings, ay as WearableNativeMemory, az as WearableMemoryMode, aA as WearableSourceConnector, aB as WearablesConfig, aC as WearableSyncSummary, aD as WearableSourceStatus, aE as WearableDayTranscript, aF as WearableCorrectionRule, P as PluginConfig, aG as CodingContext, Q as QmdSearchResult, e as BehaviorLoopPolicyState, aH as BootstrapOptions, aI as BootstrapResult, aJ as ConsolidationObservation, g as MemoryFile, a2 as DaySummaryResult, W as MemoryActionEvent, i as RecallPlanMode, aa as MemoryIntent, aK as EntityTimelineEntry, k as MemoryFrontmatter, I as IdentityInjectionMode } from './types-MWKPZnM0.js';
25
25
  import { LcmEngine } from './lcm/engine.js';
26
- import { S as SemanticConsolidationResult } from './semantic-consolidation-BtUfv-AL.js';
26
+ import { S as SemanticConsolidationResult } from './semantic-consolidation-DgFXyALl.js';
27
27
  import { ConversationIndexBackendInspection } from './conversation-index/backend.js';
28
- import { a as NamespaceKind, N as NamespaceCatalog } from './catalog-DN1PzThs.js';
28
+ import { a as NamespaceKind, N as NamespaceCatalog } from './catalog-DxCzhjE6.js';
29
29
  import { NamespaceSearchHealth } from './namespaces/search.js';
30
30
  import { SharedContextManager } from './shared-context/manager.js';
31
31
  import { CompoundingEngine } from './compounding/engine.js';
@@ -9,7 +9,7 @@ import './local-llm.js';
9
9
  import './fallback-llm.js';
10
10
  import './orchestration/maintenance.js';
11
11
  import './live-connectors-runner.js';
12
- export { L as BulkImportBatchIngestResult, M as BulkImportBatchPartialFailureError, N as GraphRecallRankedResult, Q as GraphRecallShadowComparison, G as GraphRecallSnapshot, I as IntentDebugSnapshot, O as Orchestrator, T as QmdRecallSnapshot, U as RecallInvocationOptions, V as RecallModeDecision, X as appendMemoryToGraphContext, Y as blendGraphExpandedRecallScore, Z as buildCompressionGuidelinesMarkdown, _ as buildMemoryPathById, $ as computeArtifactCandidateFetchLimit, a0 as computeArtifactRecallLimit, a1 as computeQmdHybridFetchLimit, a2 as dedupeEntitySynthesisEvidenceEntries, q as defaultWorkspaceDir, a3 as deriveTopicsFromExtraction, a4 as filterRecallCandidates, a5 as formatCompressionGuidelinesForRecall, a6 as graphPathRelativeToStorage, a7 as hasIdentityRecoveryIntent, a8 as isArtifactMemoryPath, a9 as lifecycleRecallScoreAdjustment, aa as mergeArtifactRecallCandidates, ab as mergeGraphExpandedResults, ac as resolveEffectiveIdentityInjectionMode, ad as resolveEffectiveRecallMode, ae as resolvePersistedMemoryRelativePath, af as resolveRecallModeDecision, ag as resolveRecallModeDecisionAsync, ah as resolveRecentThreadMemoryPaths, A as sanitizeSessionKeyForFilename, ai as shouldFilterLifecycleRecallCandidate, aj as summarizeGraphShadowComparison } from './orchestrator-CJI4xdqV.js';
12
+ export { L as BulkImportBatchIngestResult, M as BulkImportBatchPartialFailureError, N as GraphRecallRankedResult, Q as GraphRecallShadowComparison, G as GraphRecallSnapshot, I as IntentDebugSnapshot, O as Orchestrator, T as QmdRecallSnapshot, U as RecallInvocationOptions, V as RecallModeDecision, X as appendMemoryToGraphContext, Y as blendGraphExpandedRecallScore, Z as buildCompressionGuidelinesMarkdown, _ as buildMemoryPathById, $ as computeArtifactCandidateFetchLimit, a0 as computeArtifactRecallLimit, a1 as computeQmdHybridFetchLimit, a2 as dedupeEntitySynthesisEvidenceEntries, q as defaultWorkspaceDir, a3 as deriveTopicsFromExtraction, a4 as filterRecallCandidates, a5 as formatCompressionGuidelinesForRecall, a6 as graphPathRelativeToStorage, a7 as hasIdentityRecoveryIntent, a8 as isArtifactMemoryPath, a9 as lifecycleRecallScoreAdjustment, aa as mergeArtifactRecallCandidates, ab as mergeGraphExpandedResults, ac as resolveEffectiveIdentityInjectionMode, ad as resolveEffectiveRecallMode, ae as resolvePersistedMemoryRelativePath, af as resolveRecallModeDecision, ag as resolveRecallModeDecisionAsync, ah as resolveRecentThreadMemoryPaths, A as sanitizeSessionKeyForFilename, ai as shouldFilterLifecycleRecallCandidate, aj as summarizeGraphShadowComparison } from './orchestrator-C9CDWAm6.js';
13
13
  import './model-registry.js';
14
14
  import './relevance.js';
15
15
  import './negative.js';
@@ -17,15 +17,15 @@ import './recall-state.js';
17
17
  import './recall-xray.js';
18
18
  import './session-observer-state.js';
19
19
  import './embedding-fallback.js';
20
- import './semantic-DJR8_DMQ.js';
20
+ import './semantic-SLAa_prH.js';
21
21
  import './capabilities.js';
22
22
  import './replay/types.js';
23
23
  import './types-ByK7T3L6.js';
24
- import './types-PuiPZ9iE.js';
24
+ import './types-MWKPZnM0.js';
25
25
  import './lcm/engine.js';
26
- import './semantic-consolidation-BtUfv-AL.js';
26
+ import './semantic-consolidation-DgFXyALl.js';
27
27
  import './conversation-index/backend.js';
28
- import './catalog-DN1PzThs.js';
28
+ import './catalog-DxCzhjE6.js';
29
29
  import './namespaces/search.js';
30
30
  import './shared-context/manager.js';
31
31
  import './compounding/engine.js';
@@ -28,10 +28,10 @@ import {
28
28
  sanitizeSessionKeyForFilename,
29
29
  shouldFilterLifecycleRecallCandidate,
30
30
  summarizeGraphShadowComparison
31
- } from "./chunk-GA5A6MJH.js";
31
+ } from "./chunk-XGMCUY5P.js";
32
32
  import "./chunk-VKJHM6PL.js";
33
33
  import "./chunk-7HYPN2GC.js";
34
- import "./chunk-YXIFA36P.js";
34
+ import "./chunk-6TAETM63.js";
35
35
  import "./chunk-666A3MOW.js";
36
36
  import "./chunk-HHLLAQGZ.js";
37
37
  import "./chunk-X5J3JZR3.js";
@@ -43,7 +43,7 @@ import "./chunk-UWK5OXUJ.js";
43
43
  import "./chunk-O7GOFAM3.js";
44
44
  import "./chunk-MDJURR27.js";
45
45
  import "./chunk-7N4KAIGN.js";
46
- import "./chunk-ZDK2IW5F.js";
46
+ import "./chunk-Z7XEIAV4.js";
47
47
  import "./chunk-UFS7OXGL.js";
48
48
  import "./chunk-TECVW3JP.js";
49
49
  import "./chunk-UHGBNIOS.js";
@@ -52,11 +52,11 @@ import "./chunk-4EX5WZ4M.js";
52
52
  import "./chunk-VOUOLGIP.js";
53
53
  import "./chunk-S75M5ZRK.js";
54
54
  import "./chunk-ECZU5BJH.js";
55
- import "./chunk-RC3CNIPK.js";
56
- import "./chunk-XJNBEDFE.js";
57
- import "./chunk-R5DB26G6.js";
55
+ import "./chunk-IO5NQEGZ.js";
56
+ import "./chunk-3FAMU5TX.js";
57
+ import "./chunk-4SBW47WK.js";
58
58
  import "./chunk-DKTSR7EK.js";
59
- import "./chunk-EC2AYKRX.js";
59
+ import "./chunk-L6W77GWW.js";
60
60
  import "./chunk-L24JROPR.js";
61
61
  import "./chunk-MGN7VHWQ.js";
62
62
  import "./chunk-5IZL4DCV.js";
@@ -74,40 +74,40 @@ import "./chunk-VU3SVYMA.js";
74
74
  import "./chunk-H63EDPFJ.js";
75
75
  import "./chunk-PD6O7AXF.js";
76
76
  import "./chunk-YAZNBMNF.js";
77
- import "./chunk-FN2SM5SN.js";
77
+ import "./chunk-ABCGDW3A.js";
78
78
  import "./chunk-4RA3C3EV.js";
79
- import "./chunk-ROZJACKP.js";
79
+ import "./chunk-KKK7YTYN.js";
80
80
  import "./chunk-54V4BZWP.js";
81
81
  import "./chunk-PWFWCGOO.js";
82
82
  import "./chunk-24D66MMN.js";
83
83
  import "./chunk-LZTFCAKE.js";
84
- import "./chunk-YXLT4EMM.js";
84
+ import "./chunk-4463LUIE.js";
85
85
  import "./chunk-YVVQUAOO.js";
86
86
  import "./chunk-XHYGJVXL.js";
87
87
  import "./chunk-TH7WMHVK.js";
88
88
  import "./chunk-OQH5XUH3.js";
89
89
  import "./chunk-6HEM6HTQ.js";
90
90
  import "./chunk-ZA2S2VLL.js";
91
- import "./chunk-CHM274U6.js";
92
- import "./chunk-UU6MVCJ6.js";
91
+ import "./chunk-AMNLZ6SF.js";
92
+ import "./chunk-FIOYURII.js";
93
+ import "./chunk-LUPVCGYK.js";
93
94
  import "./chunk-PYPOFEMK.js";
94
95
  import "./chunk-EO5QWINU.js";
95
96
  import "./chunk-VEWZZM3H.js";
96
97
  import "./chunk-2PRQG7PV.js";
97
98
  import "./chunk-WIWPSQYU.js";
98
- import "./chunk-O54DY26V.js";
99
+ import "./chunk-MXEWQKM7.js";
99
100
  import "./chunk-2F6NP3NT.js";
100
101
  import "./chunk-TERNBNJB.js";
101
102
  import "./chunk-QRDOSYOR.js";
102
- import "./chunk-JKW5XSWC.js";
103
+ import "./chunk-EYJD6KIO.js";
103
104
  import "./chunk-ZRWB5D4H.js";
104
- import "./chunk-PONNZ54D.js";
105
- import "./chunk-S4DDLTPX.js";
105
+ import "./chunk-GY3SKOS4.js";
106
106
  import "./chunk-SFQ6QNL7.js";
107
107
  import "./chunk-33JBK2XP.js";
108
- import "./chunk-XY4WJTEX.js";
109
- import "./chunk-DR2JTSLZ.js";
110
- import "./chunk-PQG4T5V3.js";
108
+ import "./chunk-EZR35XHX.js";
109
+ import "./chunk-JMA4RYRN.js";
110
+ import "./chunk-64XXOQRW.js";
111
111
  import "./chunk-KFY3SGN7.js";
112
112
  import "./chunk-TQNRI55H.js";
113
113
  import "./chunk-6GUG4YNM.js";
@@ -121,8 +121,8 @@ import "./chunk-LMDRGRJ2.js";
121
121
  import "./chunk-OD4FM2U7.js";
122
122
  import "./chunk-OKTXM5H4.js";
123
123
  import "./chunk-PBH4JUAB.js";
124
- import "./chunk-2NWHLAXX.js";
125
- import "./chunk-SMIVW7XC.js";
124
+ import "./chunk-FVI5B7DE.js";
125
+ import "./chunk-QIMFOCSH.js";
126
126
  import "./chunk-UUH4YQOF.js";
127
127
  import "./chunk-JLNBQWZ2.js";
128
128
  import "./chunk-3UXOZBHV.js";
@@ -138,11 +138,12 @@ import "./chunk-Z5LAYHGJ.js";
138
138
  import "./chunk-LBJBNWS2.js";
139
139
  import "./chunk-OADWQ5CR.js";
140
140
  import "./chunk-7WV3F5DQ.js";
141
- import "./chunk-HRUULBBV.js";
141
+ import "./chunk-SHRRWOVY.js";
142
142
  import "./chunk-RS25QOKZ.js";
143
143
  import "./chunk-JGSKJHF7.js";
144
+ import "./chunk-S4DDLTPX.js";
144
145
  import "./chunk-FF4KLI5W.js";
145
- import "./chunk-SDPDU2PM.js";
146
+ import "./chunk-YTMDF6S7.js";
146
147
  import "./chunk-CI7RKSRE.js";
147
148
  import "./chunk-6HMYUWXR.js";
148
149
  import "./chunk-VPAFWWCL.js";
@@ -165,25 +166,25 @@ import "./chunk-YNQ6DFSV.js";
165
166
  import "./chunk-EI6V5UXY.js";
166
167
  import "./chunk-PNLCEFE4.js";
167
168
  import "./chunk-O75CRYGF.js";
168
- import "./chunk-U33LWTQQ.js";
169
+ import "./chunk-HV57RHMD.js";
169
170
  import "./chunk-QDW3E4RD.js";
170
171
  import "./chunk-3ONXXHQO.js";
171
172
  import "./chunk-KF74X62T.js";
172
173
  import "./chunk-2LSZVONP.js";
173
174
  import "./chunk-DEUNUKTD.js";
174
175
  import "./chunk-YN4ZT4CW.js";
175
- import "./chunk-6JDGADXK.js";
176
- import "./chunk-X74FJSW7.js";
177
- import "./chunk-PCZR32VL.js";
176
+ import "./chunk-6VVP6NK7.js";
177
+ import "./chunk-GFIARMA7.js";
178
+ import "./chunk-3JJWNZTT.js";
178
179
  import "./chunk-M7XQSUBB.js";
179
- import "./chunk-YPR7DOPD.js";
180
180
  import "./chunk-5UZXUTVO.js";
181
181
  import "./chunk-5GPPACXK.js";
182
182
  import "./chunk-OMNTQPZO.js";
183
183
  import "./chunk-IREVVFTM.js";
184
184
  import "./chunk-SVOZFLIQ.js";
185
+ import "./chunk-LTJAMRGI.js";
185
186
  import "./chunk-J6A3CX5N.js";
186
- import "./chunk-IKNQAGBV.js";
187
+ import "./chunk-IX3UQT4H.js";
187
188
  import "./chunk-SCU65EZI.js";
188
189
  import "./chunk-MB5RSUW6.js";
189
190
  import "./chunk-6KYMPV2O.js";
@@ -192,7 +193,6 @@ import "./chunk-42JKGUFJ.js";
192
193
  import "./chunk-RULE4VG5.js";
193
194
  import "./chunk-LDXUBPMO.js";
194
195
  import "./chunk-DM2T26WE.js";
195
- import "./chunk-FVQJYWH7.js";
196
196
  import "./chunk-FEB7W5JG.js";
197
197
  import "./chunk-G7D6GZ5J.js";
198
198
  import "./chunk-VF4XKTX3.js";
@@ -213,11 +213,13 @@ import "./chunk-I4WBNM3M.js";
213
213
  import "./chunk-SOAU2OE2.js";
214
214
  import "./chunk-UZYLX7M6.js";
215
215
  import "./chunk-U3PN77QT.js";
216
- import "./chunk-ZPQVJEVQ.js";
216
+ import "./chunk-SK2CR6MW.js";
217
+ import "./chunk-FVQJYWH7.js";
217
218
  import "./chunk-4DJQYKMN.js";
218
219
  import "./chunk-EYIEWJNI.js";
219
220
  import "./chunk-JUC24CTX.js";
220
221
  import "./chunk-NU3CSQ4H.js";
222
+ import "./chunk-6MKAMLQL.js";
221
223
  import "./chunk-TBBDFYXW.js";
222
224
  import "./chunk-ZBJMUXZH.js";
223
225
  import "./chunk-PVGDJXVK.js";
@@ -1,4 +1,4 @@
1
- import { M as MemoryCategory, g as MemoryFile } from './types-PuiPZ9iE.js';
1
+ import { M as MemoryCategory, g as MemoryFile } from './types-MWKPZnM0.js';
2
2
  import './types-ByK7T3L6.js';
3
3
  import './index-DJ9QWMw-.js';
4
4
 
@@ -1,4 +1,4 @@
1
- import { P as PluginConfig, e as BehaviorLoopPolicyState } from './types-PuiPZ9iE.js';
1
+ import { P as PluginConfig, e as BehaviorLoopPolicyState } from './types-MWKPZnM0.js';
2
2
  import './types-ByK7T3L6.js';
3
3
  import './index-DJ9QWMw-.js';
4
4
 
@@ -1,4 +1,4 @@
1
- import { ai as ProvenanceConfig, aj as ProvenanceSource, k as MemoryFrontmatter } from './types-PuiPZ9iE.js';
1
+ import { ai as ProvenanceSource, aj as ProvenanceConfig, k as MemoryFrontmatter } from './types-MWKPZnM0.js';
2
2
  import './types-ByK7T3L6.js';
3
3
  import './index-DJ9QWMw-.js';
4
4
 
@@ -90,5 +90,39 @@ declare function parseProvenanceSources(raw: string | undefined): ProvenanceSour
90
90
  * boolean, so this field uses the simpler omit-the-default approach.
91
91
  */
92
92
  declare function parseProvenanceConfig(raw: unknown): ProvenanceConfig;
93
+ /**
94
+ * A turn in the buffered conversation, reduced to the fields the provenance
95
+ * validator needs. `ExtractionEngine.extract` maps its `BufferTurn[]` to this
96
+ * shape so the validator is pure and testable without the full BufferTurn type.
97
+ */
98
+ interface ProvenanceTurnInput {
99
+ content: string;
100
+ sessionKey?: string;
101
+ logicalSessionKey?: string;
102
+ timestamp: string;
103
+ turnId?: string;
104
+ }
105
+ /**
106
+ * Result of building provenance for a single extracted fact.
107
+ */
108
+ interface ProvenanceBuildResult {
109
+ /** Verified sources (one per matching turn). Absent when no quote survives. */
110
+ sources?: ProvenanceSource[];
111
+ /** Coarse strength tag persisted to frontmatter. */
112
+ provenance: "verified" | "unverified" | "none";
113
+ /**
114
+ * Transient signal (never persisted): `true` when `config.requireSpans`
115
+ * is enabled and the LLM-provided quote could not be located in ANY source
116
+ * turn (the strict case `ProvenanceConfig.requireSpans` documents: "facts
117
+ * whose quote cannot be located are routed to `pending_review`"). The
118
+ * extraction consumer carries this onto the in-memory `ExtractedFact` so
119
+ * the persist path can route the fact to the review queue. A quote that
120
+ * WAS located but whose source was dropped (e.g. un-coercible timestamp)
121
+ * does NOT set this flag — the span was found, so requireSpans is
122
+ * satisfied (chatgpt-codex-connector thread 4xB).
123
+ */
124
+ requireSpansPending?: boolean;
125
+ }
126
+ declare function buildFactProvenance(factQuote: string | null | undefined, turns: ReadonlyArray<ProvenanceTurnInput>, config: ProvenanceConfig): ProvenanceBuildResult;
93
127
 
94
- export { parseProvenanceConfig, parseProvenanceSources, parseProvenanceTag, reconcileProvenanceRead, serializeProvenanceFields };
128
+ export { type ProvenanceBuildResult, type ProvenanceTurnInput, buildFactProvenance, parseProvenanceConfig, parseProvenanceSources, parseProvenanceTag, reconcileProvenanceRead, serializeProvenanceFields };
@@ -1,13 +1,17 @@
1
1
  import {
2
+ buildFactProvenance,
2
3
  parseProvenanceConfig,
3
4
  parseProvenanceSources,
4
5
  parseProvenanceTag,
5
6
  reconcileProvenanceRead,
6
7
  serializeProvenanceFields
7
- } from "./chunk-ZPQVJEVQ.js";
8
+ } from "./chunk-SK2CR6MW.js";
9
+ import "./chunk-FVQJYWH7.js";
8
10
  import "./chunk-JUC24CTX.js";
11
+ import "./chunk-6MKAMLQL.js";
9
12
  import "./chunk-PZ5AY32C.js";
10
13
  export {
14
+ buildFactProvenance,
11
15
  parseProvenanceConfig,
12
16
  parseProvenanceSources,
13
17
  parseProvenanceTag,
@@ -1,4 +1,4 @@
1
- import { i as RecallPlanMode } from './types-PuiPZ9iE.js';
1
+ import { i as RecallPlanMode } from './types-MWKPZnM0.js';
2
2
  import { SearchQueryOptions } from './search/port.js';
3
3
  import './types-ByK7T3L6.js';
4
4
  import './index-DJ9QWMw-.js';
package/dist/qmd.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Q as QmdSearchResult, ab as QmdSearchExplain } from './types-PuiPZ9iE.js';
1
+ import { Q as QmdSearchResult, ab as QmdSearchExplain } from './types-MWKPZnM0.js';
2
2
  import { SearchBackend, SearchExecutionOptions, SearchQueryOptions } from './search/port.js';
3
3
  import './types-ByK7T3L6.js';
4
4
  import './index-DJ9QWMw-.js';
@@ -1,4 +1,4 @@
1
- import { j as RecallDisclosure } from './types-PuiPZ9iE.js';
1
+ import { j as RecallDisclosure } from './types-MWKPZnM0.js';
2
2
  import './types-ByK7T3L6.js';
3
3
  import './index-DJ9QWMw-.js';
4
4
 
@@ -1,5 +1,5 @@
1
1
  import { LastRecallSnapshot } from './recall-state.js';
2
- import { R as RecallTierExplain } from './types-PuiPZ9iE.js';
2
+ import { R as RecallTierExplain } from './types-MWKPZnM0.js';
3
3
  import { RecallXraySnapshot } from './recall-xray.js';
4
4
  import './search/port.js';
5
5
  import './types-ByK7T3L6.js';
@@ -5,10 +5,10 @@ import {
5
5
  toRecallExplainJson,
6
6
  toRecallExplainText,
7
7
  toRecallXraySnapshotFromLegacy
8
- } from "./chunk-D75JXBV4.js";
8
+ } from "./chunk-WN4GHSDH.js";
9
9
  import "./chunk-SOBJ6NEY.js";
10
- import "./chunk-SDPDU2PM.js";
11
- import "./chunk-IKNQAGBV.js";
10
+ import "./chunk-YTMDF6S7.js";
11
+ import "./chunk-IX3UQT4H.js";
12
12
  import "./chunk-I4WBNM3M.js";
13
13
  import "./chunk-SOAU2OE2.js";
14
14
  import "./chunk-PZ5AY32C.js";
@@ -119,6 +119,21 @@ interface UnifiedRankConfig<TIntent> {
119
119
  * The rank primary key is ALWAYS DESC regardless of this setting.
120
120
  */
121
121
  turnIndexSortDirection?: TurnIndexSortDirection;
122
+ /**
123
+ * When `true`, skip the sort stage entirely and return items in their
124
+ * post-dedup insertion order (first-seen first). Used by explicit-cue,
125
+ * whose deliberate value ordering — turn references → content cues →
126
+ * lexical cues, gathered by evidence TYPE then read-key priority — is the
127
+ * pipeline's highest-value design choice. A rank-based sort would invert
128
+ * it (turn references are deliberately UNSCORED while lexical hits carry
129
+ * numeric scores; sorting by score would demote turn references below
130
+ * weak lexical hits — cursor[bot] / codex P2 on #1505).
131
+ *
132
+ * Score and threshold-filter still apply when declared; only the sort is
133
+ * skipped. The constant scorer (`scoreEvidence: () => 0`) makes the
134
+ * no-scoring policy explicit alongside this flag.
135
+ */
136
+ preserveInsertionOrder?: boolean;
122
137
  }
123
138
  /**
124
139
  * Deduplicate, score, threshold-filter, and sort evidence items under one
@@ -1,60 +1,7 @@
1
+ import {
2
+ unifiedDedupeAndRank
3
+ } from "./chunk-LUPVCGYK.js";
1
4
  import "./chunk-PZ5AY32C.js";
2
-
3
- // src/recall-pipeline-stages.ts
4
- var UNDEFINED_TURN_INDEX_DESC_SENTINEL = -1;
5
- var UNDEFINED_TURN_INDEX_ASC_SENTINEL = Number.MAX_SAFE_INTEGER;
6
- function unifiedDedupeAndRank(items, config) {
7
- const transformContent = config.transformContent ?? ((content) => content);
8
- const direction = config.turnIndexSortDirection ?? "desc";
9
- const dedupByContent = config.dedupByContent !== false;
10
- const seenIds = /* @__PURE__ */ new Set();
11
- const seenContent = /* @__PURE__ */ new Set();
12
- const survivors = [];
13
- for (const item of items) {
14
- const id = resolveItemId(item);
15
- if (id && seenIds.has(id)) continue;
16
- const transformedContent = transformContent(item.content, config.intents);
17
- if (dedupByContent) {
18
- const contentKey = transformedContent.toLowerCase().replace(/\s+/g, " ").trim();
19
- if (seenContent.has(contentKey)) continue;
20
- seenContent.add(contentKey);
21
- }
22
- if (id) seenIds.add(id);
23
- survivors.push({ original: item, transformedContent });
24
- }
25
- const scored = survivors.map(({ original, transformedContent }) => ({
26
- ...original,
27
- content: transformedContent,
28
- rank: config.scoreEvidence(original, config.query, config.intents)
29
- }));
30
- const filtered = typeof config.rankThreshold === "number" ? scored.filter((item) => item.rank >= config.rankThreshold) : scored;
31
- return filtered.sort(makeComparator(direction));
32
- }
33
- function makeComparator(direction) {
34
- if (direction === "asc") {
35
- return (left, right) => {
36
- if (right.rank !== left.rank) return right.rank - left.rank;
37
- const leftTurn = typeof left.turnIndex === "number" ? left.turnIndex : UNDEFINED_TURN_INDEX_ASC_SENTINEL;
38
- const rightTurn = typeof right.turnIndex === "number" ? right.turnIndex : UNDEFINED_TURN_INDEX_ASC_SENTINEL;
39
- if (leftTurn !== rightTurn) return leftTurn - rightTurn;
40
- return left.content.localeCompare(right.content);
41
- };
42
- }
43
- return (left, right) => {
44
- if (right.rank !== left.rank) return right.rank - left.rank;
45
- const leftTurn = typeof left.turnIndex === "number" ? left.turnIndex : UNDEFINED_TURN_INDEX_DESC_SENTINEL;
46
- const rightTurn = typeof right.turnIndex === "number" ? right.turnIndex : UNDEFINED_TURN_INDEX_DESC_SENTINEL;
47
- if (rightTurn !== leftTurn) return rightTurn - leftTurn;
48
- return (right.score ?? 0) - (left.score ?? 0);
49
- };
50
- }
51
- function resolveItemId(item) {
52
- if (item.id) return item.id;
53
- if (item.sessionId && typeof item.turnIndex === "number") {
54
- return `${item.sessionId}:${item.turnIndex}`;
55
- }
56
- return void 0;
57
- }
58
5
  export {
59
6
  unifiedDedupeAndRank
60
7
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/recall-pipeline-stages.ts"],"sourcesContent":["/**\n * Issue #1539 PR2 — the staged recall pipeline spine.\n *\n * The four recall pipelines (`targeted-fact-recall.ts`, `response-guidance-\n * recall.ts`, `explicit-cue-recall.ts`, `event-order-recall.ts`) implement\n * the same stage sequence — intent → candidate collection → dedup → rank →\n * filter → slice → metadata insertion → token budgeting — with ~70%\n * near-duplicate code. The most dangerous divergence is the sort\n * comparator: guidance/targeted-fact sort `turnIndex` DESC (recency) while\n * event-order sorts `turnIndex` ASC (chronological). The comparators are\n * byte-identical except for this direction — copy-pasting into a new\n * chronological pipeline silently inverts the ordering.\n *\n * This module centralizes the **dedup + score + threshold-filter + sort**\n * stages behind one declared config object. Per-tier divergence (threshold\n * value, sort direction, content transformation) becomes a declared config\n * field instead of embedded code.\n *\n * **PR 2 scope:** extract the module with NO pipeline changes. PRs 3–6\n * migrate each pipeline to call `unifiedDedupeAndRank` one at a time,\n * re-running the characterization snapshots\n * (`tests/recall-pipeline-unified.test.ts`) to verify byte-for-byte parity.\n *\n * Future PRs will add the remaining stages from the issue's Solution\n * (`mergeAcrossLcmKeys`, `insertMetadata`) once the per-tier hooks are\n * factored out of each pipeline.\n *\n * @see https://github.com/joshuaswarren/remnic/issues/1539\n */\n\nimport type { EvidencePackItem } from \"./evidence-pack.js\";\n\n/** A ranked evidence item: an `EvidencePackItem` with a computed `rank`. */\nexport interface RankedEvidenceItem extends EvidencePackItem {\n rank: number;\n}\n\n/**\n * Sort direction for the turn-index secondary key. This is the divergence\n * issue #1539 identifies: relevance-ranked pipelines (targeted-fact,\n * response-guidance) sort `turnIndex` DESC (recency — latest first); the\n * chronological pipeline (event-order) sorts `turnIndex` ASC (earliest\n * first). The rank primary key is ALWAYS DESC (higher rank first); only\n * the `turnIndex` tiebreaker flips direction.\n */\nexport type TurnIndexSortDirection = \"desc\" | \"asc\";\n\n/**\n * Configuration for the unified dedup + score + threshold-filter + sort\n * pass. Each pipeline declares its divergences as fields here instead of\n * embedding them in pipeline-specific code.\n *\n * The issue's Solution defines the intended full config object\n * (`RecallPipelineConfig`); this interface is extracted incrementally:\n * - PR 2 (this PR): dedup/score/threshold/sort only\n * - PRs 3–6: migrate each pipeline to consume the spine\n * - future: add `mergeAcrossLcmKeys`, `insertMetadata` once the per-tier\n * hooks are factored out of each pipeline\n */\nexport interface UnifiedRankConfig<TIntent> {\n /** The user query — passed to the scorer. */\n query: string;\n /**\n * Per-tier intent classification result (already computed by the caller;\n * intent classification stays per-tier because it is genuinely\n * per-tier per issue #1539 Pitfall 1).\n */\n intents: TIntent[];\n /**\n * Score an item using its ORIGINAL (pre-transform) content. Higher = more\n * relevant. The return value becomes the item's `rank`. For pipelines\n * that don't score (explicit-cue), pass a constant scorer — the config\n * makes the no-scoring policy explicit.\n */\n scoreEvidence: (\n item: EvidencePackItem,\n query: string,\n intents: TIntent[],\n ) => number;\n /**\n * Optional content transformation applied to each surviving item's\n * OUTPUT content (NOT to the content the scorer sees). Per-tier\n * cue-appenders go here:\n * - targeted-fact: `appendNormalizedNumericCues`\n * - response-guidance: `appendGuidanceCues`\n * - event-order: `appendChronologicalCues`\n *\n * The dedup key uses the TRANSFORMED content. This is equivalent to\n * deduping on original content for all existing pipelines because every\n * transform is a deterministic append (same original → same transformed →\n * same key; different originals → different transformed → different key).\n */\n transformContent?: (content: string, intents: TIntent[]) => string;\n /**\n * Whether to deduplicate by normalized (transformed) content in addition to\n * id. Default `true` — matches targeted-fact, response-guidance, and\n * explicit-cue, which all collapse later items sharing a normalized content\n * key. Event-order sets this to `false`: its rank pass\n * (`rankAndSelectEventOrderItems`) deduplicates by turn id only and keeps\n * distinct turns even when two turns share the same cue-appended body\n * (legitimate repeated turns in a chronological transcript). Making this a\n * declared field prevents PR 6's migration from silently dropping valid\n * turns (cursor bugbot a4299851).\n */\n dedupByContent?: boolean;\n /**\n * Items with `rank` below this threshold are dropped. `undefined` = no\n * filter. Event-order declares `rankThreshold: 6` here instead of\n * inlining an undocumented `.filter((item) => item.rank >= 6)` (the\n * \"hardcoded rank threshold that exists in no config and no other\n * pipeline\" from issue #1539's audit).\n */\n rankThreshold?: number;\n /**\n * Sort direction for the `turnIndex` secondary key.\n *\n * - `\"desc\"` (default): relevance-ranked pipelines (targeted-fact,\n * response-guidance) sort `turnIndex` DESC. Undefined `turnIndex`\n * falls to `-1` (bottom of a DESC list). Tertiary tiebreaker:\n * `score DESC`.\n * - `\"asc\"`: the chronological pipeline (event-order) sorts `turnIndex`\n * ASC. Undefined `turnIndex` falls to `Number.MAX_SAFE_INTEGER`\n * (bottom of an ASC list). Tertiary tiebreaker: `content.localeCompare`.\n *\n * The rank primary key is ALWAYS DESC regardless of this setting.\n */\n turnIndexSortDirection?: TurnIndexSortDirection;\n}\n\n/**\n * Sentinel for undefined `turnIndex` when sorting DESC. `-1` sorts below\n * every real turn index (which are `>= 0`), so missing `turn_index` always\n * lands at the bottom of a DESC-ordered list — never wins ordering over a\n * real turn.\n */\nconst UNDEFINED_TURN_INDEX_DESC_SENTINEL = -1;\n\n/**\n * Sentinel for undefined `turnIndex` when sorting ASC.\n * `Number.MAX_SAFE_INTEGER` sorts above every real turn index, so missing\n * `turn_index` always lands at the bottom of an ASC-ordered list.\n */\nconst UNDEFINED_TURN_INDEX_ASC_SENTINEL = Number.MAX_SAFE_INTEGER;\n\n/**\n * Deduplicate, score, threshold-filter, and sort evidence items under one\n * unified policy.\n *\n * **Stage order** (matches every existing pipeline's rank/dedupe function):\n * 1. **dedup** by `id` + normalized content (first-seen wins). The dedup\n * key uses transformed content if `transformContent` is declared.\n * 2. **score** each surviving item on its ORIGINAL content (the transform\n * does not influence the score).\n * 3. **threshold-filter**: drop items with `rank < rankThreshold` (if\n * declared).\n * 4. **sort**: `rank DESC` → `turnIndex` (direction-configurable) →\n * tertiary tiebreaker (`score DESC` for relevance pipelines,\n * `content.localeCompare` for chronological pipelines).\n *\n * This function does NOT slice (`maxResults`), budget, or format — those\n * stages remain per-tier because they interact with per-tier metadata\n * insertion. The issue's Solution describes a future `insertMetadata` hook\n * that will make budget-adjustment uniform; that lands in the per-tier\n * migration PRs.\n *\n * @example\n * // Relevance-ranked pipeline (targeted-fact shape):\n * unifiedDedupeAndRank(items, {\n * query,\n * intents: [],\n * scoreEvidence: (item, q) => scoreTargetedFact(item, q),\n * transformContent: (content) => appendNormalizedNumericCues(content),\n * // turnIndexSortDirection defaults to \"desc\"\n * });\n *\n * @example\n * // Chronological pipeline (event-order shape):\n * unifiedDedupeAndRank(items, {\n * query,\n * intents: [],\n * scoreEvidence: (item, q) => scoreEventOrder(item, q),\n * transformContent: (content) => appendChronologicalCues(content, query),\n * rankThreshold: 6, // declared, not inlined\n * turnIndexSortDirection: \"asc\",\n * });\n */\nexport function unifiedDedupeAndRank<TIntent>(\n items: readonly EvidencePackItem[],\n config: UnifiedRankConfig<TIntent>,\n): RankedEvidenceItem[] {\n const transformContent = config.transformContent ?? ((content: string) => content);\n const direction: TurnIndexSortDirection = config.turnIndexSortDirection ?? \"desc\";\n const dedupByContent = config.dedupByContent !== false;\n\n // Stage 1: dedup by id (+ normalized transformed content when enabled).\n // First-seen wins, matching every existing pipeline. Event-order opts out\n // of content dedup (dedupByContent: false) because it keeps distinct turns\n // even when two turns share the same cue-appended body.\n const seenIds = new Set<string>();\n const seenContent = new Set<string>();\n const survivors: Array<{ original: EvidencePackItem; transformedContent: string }> = [];\n\n for (const item of items) {\n const id = resolveItemId(item);\n if (id && seenIds.has(id)) continue;\n\n const transformedContent = transformContent(item.content, config.intents);\n if (dedupByContent) {\n const contentKey = transformedContent.toLowerCase().replace(/\\s+/g, \" \").trim();\n if (seenContent.has(contentKey)) continue;\n seenContent.add(contentKey);\n }\n if (id) seenIds.add(id);\n survivors.push({ original: item, transformedContent });\n }\n\n // Stage 2: score on ORIGINAL content (transforms don't influence the score).\n const scored: RankedEvidenceItem[] = survivors.map(({ original, transformedContent }) => ({\n ...original,\n content: transformedContent,\n rank: config.scoreEvidence(original, config.query, config.intents),\n }));\n\n // Stage 3: threshold-filter (declared, not inlined).\n const filtered =\n typeof config.rankThreshold === \"number\"\n ? scored.filter((item) => item.rank >= (config.rankThreshold as number))\n : scored;\n\n // Stage 4: sort.\n // rank is ALWAYS DESC (higher rank first).\n // turnIndex direction is configurable: DESC (relevance) or ASC (chronology).\n // The tertiary tiebreaker follows the direction:\n // DESC → score DESC; ASC → content.localeCompare.\n return filtered.sort(makeComparator(direction));\n}\n\n/**\n * Build the sort comparator for the configured direction. Extracted so the\n * comparator's two shapes (DESC / ASC) can be tested independently and so\n * the direction divergence is visible in ONE place.\n */\nfunction makeComparator(\n direction: TurnIndexSortDirection,\n): (left: RankedEvidenceItem, right: RankedEvidenceItem) => number {\n if (direction === \"asc\") {\n // Chronological (event-order): rank DESC → turnIndex ASC → content localeCompare.\n // Matches event-order-recall.ts:159-164 (rankedByScore sort) byte-for-byte.\n return (left, right) => {\n if (right.rank !== left.rank) return right.rank - left.rank;\n const leftTurn =\n typeof left.turnIndex === \"number\"\n ? left.turnIndex\n : UNDEFINED_TURN_INDEX_ASC_SENTINEL;\n const rightTurn =\n typeof right.turnIndex === \"number\"\n ? right.turnIndex\n : UNDEFINED_TURN_INDEX_ASC_SENTINEL;\n if (leftTurn !== rightTurn) return leftTurn - rightTurn;\n return left.content.localeCompare(right.content);\n };\n }\n // Relevance-ranked (targeted-fact, response-guidance):\n // rank DESC → turnIndex DESC → score DESC.\n // Matches targeted-fact-recall.ts:239-245 and response-guidance-recall.ts:374-380\n // byte-for-byte.\n return (left, right) => {\n if (right.rank !== left.rank) return right.rank - left.rank;\n const leftTurn =\n typeof left.turnIndex === \"number\"\n ? left.turnIndex\n : UNDEFINED_TURN_INDEX_DESC_SENTINEL;\n const rightTurn =\n typeof right.turnIndex === \"number\"\n ? right.turnIndex\n : UNDEFINED_TURN_INDEX_DESC_SENTINEL;\n if (rightTurn !== leftTurn) return rightTurn - leftTurn;\n return (right.score ?? 0) - (left.score ?? 0);\n };\n}\n\n\n/**\n * Resolve an evidence item's id. Falls back to `sessionId:turnIndex` when\n * `id` is absent — mirrors every existing pipeline's fallback and\n * `evidence-pack.ts`'s `evidenceItemFallbackId`.\n */\nfunction resolveItemId(item: EvidencePackItem): string | undefined {\n if (item.id) return item.id;\n if (item.sessionId && typeof item.turnIndex === \"number\") {\n return `${item.sessionId}:${item.turnIndex}`;\n }\n return undefined;\n}\n"],"mappings":";;;AAuIA,IAAM,qCAAqC;AAO3C,IAAM,oCAAoC,OAAO;AA4C1C,SAAS,qBACd,OACA,QACsB;AACtB,QAAM,mBAAmB,OAAO,qBAAqB,CAAC,YAAoB;AAC1E,QAAM,YAAoC,OAAO,0BAA0B;AAC3E,QAAM,iBAAiB,OAAO,mBAAmB;AAMjD,QAAM,UAAU,oBAAI,IAAY;AAChC,QAAM,cAAc,oBAAI,IAAY;AACpC,QAAM,YAA+E,CAAC;AAEtF,aAAW,QAAQ,OAAO;AACxB,UAAM,KAAK,cAAc,IAAI;AAC7B,QAAI,MAAM,QAAQ,IAAI,EAAE,EAAG;AAE3B,UAAM,qBAAqB,iBAAiB,KAAK,SAAS,OAAO,OAAO;AACxE,QAAI,gBAAgB;AAClB,YAAM,aAAa,mBAAmB,YAAY,EAAE,QAAQ,QAAQ,GAAG,EAAE,KAAK;AAC9E,UAAI,YAAY,IAAI,UAAU,EAAG;AACjC,kBAAY,IAAI,UAAU;AAAA,IAC5B;AACA,QAAI,GAAI,SAAQ,IAAI,EAAE;AACtB,cAAU,KAAK,EAAE,UAAU,MAAM,mBAAmB,CAAC;AAAA,EACvD;AAGA,QAAM,SAA+B,UAAU,IAAI,CAAC,EAAE,UAAU,mBAAmB,OAAO;AAAA,IACxF,GAAG;AAAA,IACH,SAAS;AAAA,IACT,MAAM,OAAO,cAAc,UAAU,OAAO,OAAO,OAAO,OAAO;AAAA,EACnE,EAAE;AAGF,QAAM,WACJ,OAAO,OAAO,kBAAkB,WAC5B,OAAO,OAAO,CAAC,SAAS,KAAK,QAAS,OAAO,aAAwB,IACrE;AAON,SAAO,SAAS,KAAK,eAAe,SAAS,CAAC;AAChD;AAOA,SAAS,eACP,WACiE;AACjE,MAAI,cAAc,OAAO;AAGvB,WAAO,CAAC,MAAM,UAAU;AACtB,UAAI,MAAM,SAAS,KAAK,KAAM,QAAO,MAAM,OAAO,KAAK;AACvD,YAAM,WACJ,OAAO,KAAK,cAAc,WACtB,KAAK,YACL;AACN,YAAM,YACJ,OAAO,MAAM,cAAc,WACvB,MAAM,YACN;AACN,UAAI,aAAa,UAAW,QAAO,WAAW;AAC9C,aAAO,KAAK,QAAQ,cAAc,MAAM,OAAO;AAAA,IACjD;AAAA,EACF;AAKA,SAAO,CAAC,MAAM,UAAU;AACtB,QAAI,MAAM,SAAS,KAAK,KAAM,QAAO,MAAM,OAAO,KAAK;AACvD,UAAM,WACJ,OAAO,KAAK,cAAc,WACtB,KAAK,YACL;AACN,UAAM,YACJ,OAAO,MAAM,cAAc,WACvB,MAAM,YACN;AACN,QAAI,cAAc,SAAU,QAAO,YAAY;AAC/C,YAAQ,MAAM,SAAS,MAAM,KAAK,SAAS;AAAA,EAC7C;AACF;AAQA,SAAS,cAAc,MAA4C;AACjE,MAAI,KAAK,GAAI,QAAO,KAAK;AACzB,MAAI,KAAK,aAAa,OAAO,KAAK,cAAc,UAAU;AACxD,WAAO,GAAG,KAAK,SAAS,IAAI,KAAK,SAAS;AAAA,EAC5C;AACA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,4 +1,4 @@
1
- import { i as RecallPlanMode, P as PluginConfig } from './types-PuiPZ9iE.js';
1
+ import { i as RecallPlanMode, P as PluginConfig } from './types-MWKPZnM0.js';
2
2
  import { CapabilitySet } from './capabilities.js';
3
3
  import { FallbackLlmClient, FallbackLlmOptions } from './fallback-llm.js';
4
4
  import './types-ByK7T3L6.js';
@@ -1,5 +1,5 @@
1
1
  import { SearchDegradation } from './search/port.js';
2
- import { i as RecallPlanMode, I as IdentityInjectionMode, R as RecallTierExplain } from './types-PuiPZ9iE.js';
2
+ import { i as RecallPlanMode, I as IdentityInjectionMode, R as RecallTierExplain } from './types-MWKPZnM0.js';
3
3
  import './types-ByK7T3L6.js';
4
4
  import './index-DJ9QWMw-.js';
5
5
 
@@ -1,6 +1,6 @@
1
1
  import { RecallFilterTrace } from './recall-xray.js';
2
2
  import './memory-provenance.js';
3
- import './types-PuiPZ9iE.js';
3
+ import './types-MWKPZnM0.js';
4
4
  import './types-ByK7T3L6.js';
5
5
  import './index-DJ9QWMw-.js';
6
6
  import './user-model.js';
@@ -1,5 +1,5 @@
1
1
  import { RecallXrayFormat } from './recall-xray-renderer.js';
2
- import { j as RecallDisclosure } from './types-PuiPZ9iE.js';
2
+ import { j as RecallDisclosure } from './types-MWKPZnM0.js';
3
3
  import './recall-xray.js';
4
4
  import './memory-provenance.js';
5
5
  import './user-model.js';
@@ -2,11 +2,11 @@ import {
2
2
  parseXrayBudgetFlag,
3
3
  parseXrayCliOptions,
4
4
  parseXrayDisclosureFlag
5
- } from "./chunk-IJEZMWKA.js";
6
- import "./chunk-D75JXBV4.js";
5
+ } from "./chunk-SFOAQQDJ.js";
6
+ import "./chunk-WN4GHSDH.js";
7
7
  import "./chunk-SOBJ6NEY.js";
8
- import "./chunk-SDPDU2PM.js";
9
- import "./chunk-IKNQAGBV.js";
8
+ import "./chunk-YTMDF6S7.js";
9
+ import "./chunk-IX3UQT4H.js";
10
10
  import "./chunk-I4WBNM3M.js";
11
11
  import "./chunk-SOAU2OE2.js";
12
12
  import "./chunk-PZ5AY32C.js";
@@ -1,6 +1,6 @@
1
1
  import { RecallXraySnapshot } from './recall-xray.js';
2
2
  import './memory-provenance.js';
3
- import './types-PuiPZ9iE.js';
3
+ import './types-MWKPZnM0.js';
4
4
  import './types-ByK7T3L6.js';
5
5
  import './index-DJ9QWMw-.js';
6
6
  import './user-model.js';
@@ -5,10 +5,10 @@ import {
5
5
  renderXrayJson,
6
6
  renderXrayMarkdown,
7
7
  renderXrayText
8
- } from "./chunk-D75JXBV4.js";
8
+ } from "./chunk-WN4GHSDH.js";
9
9
  import "./chunk-SOBJ6NEY.js";
10
- import "./chunk-SDPDU2PM.js";
11
- import "./chunk-IKNQAGBV.js";
10
+ import "./chunk-YTMDF6S7.js";
11
+ import "./chunk-IX3UQT4H.js";
12
12
  import "./chunk-I4WBNM3M.js";
13
13
  import "./chunk-SOAU2OE2.js";
14
14
  import "./chunk-PZ5AY32C.js";
@@ -1,5 +1,5 @@
1
1
  import { RetrievedMemoryProvenance } from './memory-provenance.js';
2
- import { R as RecallTierExplain, j as RecallDisclosure } from './types-PuiPZ9iE.js';
2
+ import { R as RecallTierExplain, j as RecallDisclosure } from './types-MWKPZnM0.js';
3
3
  import './user-model.js';
4
4
  import './types-ByK7T3L6.js';
5
5
  import './index-DJ9QWMw-.js';
@@ -5,8 +5,8 @@ import {
5
5
  estimateRecallTokens,
6
6
  isRecallXrayServedBy,
7
7
  summarizeDisclosureTokens
8
- } from "./chunk-SDPDU2PM.js";
9
- import "./chunk-IKNQAGBV.js";
8
+ } from "./chunk-YTMDF6S7.js";
9
+ import "./chunk-IX3UQT4H.js";
10
10
  import "./chunk-I4WBNM3M.js";
11
11
  import "./chunk-SOAU2OE2.js";
12
12
  import "./chunk-PZ5AY32C.js";
@@ -1,4 +1,4 @@
1
- import { D as SecretRef, J as AgentAccessAuthToken } from './types-PuiPZ9iE.js';
1
+ import { D as SecretRef, J as AgentAccessAuthToken } from './types-MWKPZnM0.js';
2
2
  import './types-ByK7T3L6.js';
3
3
  import './index-DJ9QWMw-.js';
4
4
 
@@ -1,8 +1,9 @@
1
1
  import {
2
2
  buildResponseGuidanceRecallSection,
3
3
  shouldRecallResponseGuidance
4
- } from "./chunk-EC2AYKRX.js";
4
+ } from "./chunk-L6W77GWW.js";
5
5
  import "./chunk-YVVQUAOO.js";
6
+ import "./chunk-LUPVCGYK.js";
6
7
  import "./chunk-PYPOFEMK.js";
7
8
  import "./chunk-PZ5AY32C.js";
8
9
  export {
@@ -4,24 +4,26 @@ import {
4
4
  recordResumeBundle,
5
5
  resolveResumeBundleDir,
6
6
  validateResumeBundle
7
- } from "./chunk-T5QAZIBO.js";
7
+ } from "./chunk-MOXFPLD6.js";
8
8
  import "./chunk-ZRWB5D4H.js";
9
- import "./chunk-PONNZ54D.js";
10
- import "./chunk-S4DDLTPX.js";
9
+ import "./chunk-GY3SKOS4.js";
11
10
  import "./chunk-KFY3SGN7.js";
12
11
  import "./chunk-LMDRGRJ2.js";
13
- import "./chunk-K4DWSPMW.js";
12
+ import "./chunk-WRGPE6AW.js";
14
13
  import "./chunk-NDAH7BJ5.js";
15
14
  import "./chunk-Z5LAYHGJ.js";
16
15
  import "./chunk-OO42R444.js";
17
16
  import "./chunk-K6MV3TRQ.js";
17
+ import "./chunk-S4DDLTPX.js";
18
18
  import "./chunk-FF4KLI5W.js";
19
19
  import "./chunk-6HMYUWXR.js";
20
- import "./chunk-ZPQVJEVQ.js";
20
+ import "./chunk-SK2CR6MW.js";
21
+ import "./chunk-FVQJYWH7.js";
21
22
  import "./chunk-4DJQYKMN.js";
22
23
  import "./chunk-EYIEWJNI.js";
23
24
  import "./chunk-JUC24CTX.js";
24
25
  import "./chunk-NU3CSQ4H.js";
26
+ import "./chunk-6MKAMLQL.js";
25
27
  import "./chunk-ZBJMUXZH.js";
26
28
  import "./chunk-A2IYSXDQ.js";
27
29
  import "./chunk-LPSF4OQH.js";
@@ -1,4 +1,4 @@
1
- import { Q as QmdSearchResult } from './types-PuiPZ9iE.js';
1
+ import { Q as QmdSearchResult } from './types-MWKPZnM0.js';
2
2
  import { QmdClient } from './qmd.js';
3
3
  import './types-ByK7T3L6.js';
4
4
  import './index-DJ9QWMw-.js';