@remnic/core 10.0.14 → 10.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) hide show
  1. package/dist/abstraction-nodes.js +3 -2
  2. package/dist/access-admin-ops-surface.js +34 -32
  3. package/dist/access-authorization-probe.js +35 -33
  4. package/dist/access-boundary.js +34 -32
  5. package/dist/access-cli.js +90 -88
  6. package/dist/access-cli.js.map +1 -1
  7. package/dist/access-extraction-force-flush.js +34 -32
  8. package/dist/access-http-briefing.js +35 -33
  9. package/dist/access-http-query.js +36 -34
  10. package/dist/access-http.js +53 -51
  11. package/dist/access-identity-continuity-surface.js +34 -32
  12. package/dist/access-lcm-surface.js +34 -32
  13. package/dist/access-mcp.js +45 -43
  14. package/dist/access-namespace-preflight.js +34 -32
  15. package/dist/access-observe-write-category.js +4 -3
  16. package/dist/access-observe-write-surface.js +34 -32
  17. package/dist/access-offline-manifest.js +3 -2
  18. package/dist/access-operations-batch.js +37 -35
  19. package/dist/access-operations.js +44 -42
  20. package/dist/access-recall-concurrency.js +34 -32
  21. package/dist/access-recall-response.js +34 -32
  22. package/dist/access-recall-surface.js +34 -32
  23. package/dist/access-schema.js +3 -2
  24. package/dist/access-service.js +34 -32
  25. package/dist/access-surface-catalog.js +36 -34
  26. package/dist/access-surface-catalog.js.map +1 -1
  27. package/dist/active-recall.js +14 -12
  28. package/dist/active-recall.js.map +1 -1
  29. package/dist/briefing.js +10 -8
  30. package/dist/buffer.js +2 -2
  31. package/dist/calibration.d.ts.map +1 -1
  32. package/dist/calibration.js +6 -3
  33. package/dist/calibration.js.map +1 -1
  34. package/dist/causal-behavior.js +4 -3
  35. package/dist/causal-behavior.js.map +1 -1
  36. package/dist/causal-chain.js +4 -3
  37. package/dist/causal-consolidation.js +14 -12
  38. package/dist/causal-consolidation.js.map +1 -1
  39. package/dist/causal-retrieval.js +4 -3
  40. package/dist/causal-retrieval.js.map +1 -1
  41. package/dist/causal-trajectory.js +3 -2
  42. package/dist/{chunk-63B2IZYE.js → chunk-23ZQPP2G.js} +6 -1
  43. package/dist/chunk-23ZQPP2G.js.map +1 -0
  44. package/dist/{chunk-YFMBHQRG.js → chunk-2PTH4PRL.js} +2 -2
  45. package/dist/{chunk-TITG2NBS.js → chunk-2PYHLSXK.js} +2 -2
  46. package/dist/{chunk-B6O2YLUR.js → chunk-2Z5DIDQD.js} +6 -1
  47. package/dist/chunk-2Z5DIDQD.js.map +1 -0
  48. package/dist/{chunk-KH2LKDX7.js → chunk-33G67YZF.js} +2 -2
  49. package/dist/{chunk-SWIKABKI.js → chunk-3Q3XD3NO.js} +2 -2
  50. package/dist/{chunk-4KY5GSMB.js → chunk-4PDTVVSW.js} +2 -2
  51. package/dist/{chunk-HM7RHKS4.js → chunk-4RNBLLZR.js} +2 -2
  52. package/dist/{chunk-PAZ35RJ4.js → chunk-4SCZZ3U7.js} +240 -55
  53. package/dist/chunk-4SCZZ3U7.js.map +1 -0
  54. package/dist/{chunk-Y4NKEXQT.js → chunk-5ATSXCAG.js} +3 -3
  55. package/dist/{chunk-JDZFIR2S.js → chunk-5KGYTX5O.js} +2 -2
  56. package/dist/{chunk-J7JWFZHI.js → chunk-5MLGY6IY.js} +39 -39
  57. package/dist/{chunk-NW2E4CI2.js → chunk-5SMR542T.js} +2 -2
  58. package/dist/{chunk-S7LWX2PQ.js → chunk-655FVTCD.js} +2 -2
  59. package/dist/{chunk-4OSG5Y6M.js → chunk-6YEPGWUP.js} +2 -2
  60. package/dist/{chunk-W47S5TIH.js → chunk-7VQ6AI7H.js} +2 -2
  61. package/dist/{chunk-WLMZ2L5P.js → chunk-AZDTDWS2.js} +2 -2
  62. package/dist/{chunk-G7NYVKD6.js → chunk-B2NXOVZN.js} +2 -2
  63. package/dist/{chunk-N7KYEVLK.js → chunk-BK2BVLZW.js} +2 -2
  64. package/dist/{chunk-QJ622LTI.js → chunk-BQOGQULP.js} +30 -8
  65. package/dist/chunk-BQOGQULP.js.map +1 -0
  66. package/dist/{chunk-S2I7DL5Q.js → chunk-C2RW36YR.js} +2 -2
  67. package/dist/{chunk-P5NQN4JE.js → chunk-C6JMGAMO.js} +6 -2
  68. package/dist/chunk-C6JMGAMO.js.map +1 -0
  69. package/dist/{chunk-6LG7BWKW.js → chunk-CFZ4SXXH.js} +2 -2
  70. package/dist/{chunk-JQ7XU625.js → chunk-CQOIWJ5E.js} +6 -6
  71. package/dist/{chunk-FSIMZNBC.js → chunk-CXOYUANR.js} +2 -2
  72. package/dist/{chunk-BLVHDY2U.js → chunk-DOWACHYO.js} +5 -2
  73. package/dist/chunk-DOWACHYO.js.map +1 -0
  74. package/dist/{chunk-QOZJCSFO.js → chunk-DQR2LD3V.js} +2 -2
  75. package/dist/{chunk-MATDGSJ7.js → chunk-DUPHIZBY.js} +2 -2
  76. package/dist/{chunk-EBA5DA77.js → chunk-EOU6V4IN.js} +2 -2
  77. package/dist/{chunk-5WCJLQTM.js → chunk-F2772ATT.js} +2 -2
  78. package/dist/{chunk-46EST7JO.js → chunk-F2XNSIPP.js} +2 -2
  79. package/dist/{chunk-PZHQWFR3.js → chunk-G3UUAQOD.js} +2 -2
  80. package/dist/{chunk-YE36AJL7.js → chunk-GCVDFX66.js} +2 -2
  81. package/dist/{chunk-ZV65I6ME.js → chunk-GFWRXPF6.js} +29 -26
  82. package/dist/chunk-GFWRXPF6.js.map +1 -0
  83. package/dist/{chunk-T2YX56QI.js → chunk-GQJKVQJR.js} +2 -2
  84. package/dist/{chunk-I7S55EOB.js → chunk-GUY6L6LL.js} +2 -2
  85. package/dist/{chunk-L5DAHSEZ.js → chunk-GWVNGDJW.js} +2 -2
  86. package/dist/{chunk-N45NEBOD.js → chunk-GZXXPCWJ.js} +3 -3
  87. package/dist/{chunk-EPJDSQHF.js → chunk-H5IUN433.js} +2 -2
  88. package/dist/{chunk-EUAIYYYR.js → chunk-H6FREOYX.js} +7 -7
  89. package/dist/{chunk-Q4E24IRR.js → chunk-HDN7IVIO.js} +14 -11
  90. package/dist/chunk-HDN7IVIO.js.map +1 -0
  91. package/dist/{chunk-T3FMRLWQ.js → chunk-HFSPY26A.js} +2 -2
  92. package/dist/{chunk-GH7AOMJD.js → chunk-IJMDBYCO.js} +2 -2
  93. package/dist/{chunk-4IHBN6WU.js → chunk-JKMIGCK6.js} +2 -2
  94. package/dist/{chunk-ROBHL3GL.js → chunk-JWX2Q6HS.js} +2 -2
  95. package/dist/{chunk-DPR2WTN3.js → chunk-JZTEOBOR.js} +16 -16
  96. package/dist/{chunk-4O6WRBGE.js → chunk-KJXP6RUG.js} +5 -1
  97. package/dist/chunk-KJXP6RUG.js.map +1 -0
  98. package/dist/{chunk-JIHMUOOS.js → chunk-KLJVTZ3R.js} +3 -3
  99. package/dist/{chunk-FP4JYE66.js → chunk-KW4AJ7T3.js} +2 -2
  100. package/dist/{chunk-NIRQGDYC.js → chunk-L5VCT7LU.js} +5 -1
  101. package/dist/chunk-L5VCT7LU.js.map +1 -0
  102. package/dist/{chunk-QODKDRSP.js → chunk-L6AZOEXV.js} +4 -4
  103. package/dist/{chunk-CLWBFR7Q.js → chunk-LO76EF3Y.js} +1 -1
  104. package/dist/chunk-LO76EF3Y.js.map +1 -0
  105. package/dist/{chunk-LS2FHUML.js → chunk-LQ5SS4OP.js} +3 -3
  106. package/dist/{chunk-SIIRTDJ4.js → chunk-LWFWZTWX.js} +2 -2
  107. package/dist/{chunk-BMWN7B3Y.js → chunk-LXATZLSC.js} +3 -3
  108. package/dist/{chunk-O4SGYW7H.js → chunk-MAVYEZKM.js} +2 -2
  109. package/dist/{chunk-B665A6BO.js → chunk-MJIOGYKX.js} +2 -2
  110. package/dist/{chunk-RTKV5XHL.js → chunk-MO6N4QYY.js} +2 -2
  111. package/dist/{chunk-N4C7QKOG.js → chunk-MWWAQXZ6.js} +2 -2
  112. package/dist/{chunk-LCKVXX5F.js → chunk-MXV2MY6C.js} +2 -2
  113. package/dist/{chunk-FFOVKNQV.js → chunk-NAGMQXWV.js} +2 -2
  114. package/dist/{chunk-ZJVMUBYF.js → chunk-NHUX6GXA.js} +6 -6
  115. package/dist/{chunk-CB6ANA2I.js → chunk-NZCKG25S.js} +2 -2
  116. package/dist/{chunk-UMTCNEVQ.js → chunk-O2YPCFJT.js} +11 -11
  117. package/dist/{chunk-WSGPFRBH.js → chunk-OMERTLB7.js} +3 -3
  118. package/dist/{chunk-QX6JN3O4.js → chunk-PEF5LHQU.js} +6 -6
  119. package/dist/{chunk-JYZSRNR7.js → chunk-PIITB2YZ.js} +2 -2
  120. package/dist/chunk-PPUNC7UX.js +73 -0
  121. package/dist/chunk-PPUNC7UX.js.map +1 -0
  122. package/dist/{chunk-EQWEIIKQ.js → chunk-PQM3B54K.js} +6 -1
  123. package/dist/chunk-PQM3B54K.js.map +1 -0
  124. package/dist/{chunk-UQDG3YLN.js → chunk-PRU7OF3Y.js} +3 -3
  125. package/dist/{chunk-EU534WGS.js → chunk-PVHQSLNN.js} +7 -7
  126. package/dist/{chunk-TZNDKTX5.js → chunk-Q7DWEXG2.js} +37 -33
  127. package/dist/chunk-Q7DWEXG2.js.map +1 -0
  128. package/dist/{chunk-5VC7J76U.js → chunk-QPH52AZB.js} +2 -2
  129. package/dist/{chunk-XISROV24.js → chunk-QSEUUQUF.js} +2 -2
  130. package/dist/chunk-QUIRIG2P.js +31 -0
  131. package/dist/chunk-QUIRIG2P.js.map +1 -0
  132. package/dist/{chunk-FUFAXVBA.js → chunk-RI2KCQHP.js} +6 -2
  133. package/dist/chunk-RI2KCQHP.js.map +1 -0
  134. package/dist/{chunk-O2IPAX26.js → chunk-RTTPBBAN.js} +4 -4
  135. package/dist/{chunk-W5MCEVUS.js → chunk-RYYVMZBR.js} +2 -2
  136. package/dist/{chunk-ZSH2NRDV.js → chunk-TN4EA4X4.js} +2 -2
  137. package/dist/{chunk-SS3IS2JR.js → chunk-UGYUBENJ.js} +2 -2
  138. package/dist/{chunk-GELS5Z5Z.js → chunk-V3TXIXXY.js} +3 -3
  139. package/dist/{chunk-WVADKFWV.js → chunk-VNZMZPAC.js} +2 -2
  140. package/dist/{chunk-JPTPS4OB.js → chunk-VPXIKBPX.js} +2 -2
  141. package/dist/{chunk-OP6N4H6A.js → chunk-W3FVQBGF.js} +2 -2
  142. package/dist/{chunk-W3K3HITK.js → chunk-WLT6LTQP.js} +2 -2
  143. package/dist/{chunk-GMXWTJNU.js → chunk-XKRXN63M.js} +2 -2
  144. package/dist/{chunk-KR6ZKECI.js → chunk-XYGQSDTH.js} +3 -3
  145. package/dist/{chunk-22W2XWGH.js → chunk-YBO2WGCV.js} +2 -2
  146. package/dist/{chunk-P7TOIOT7.js → chunk-YR4COAEC.js} +2 -2
  147. package/dist/{chunk-6WHJ2EAB.js → chunk-Z64TS5V4.js} +2 -2
  148. package/dist/{chunk-NHLLKEKK.js → chunk-ZAJLJ35W.js} +2 -2
  149. package/dist/cli.d.ts.map +1 -1
  150. package/dist/cli.js +73 -71
  151. package/dist/coding/export-okf-codegraph.js +9 -7
  152. package/dist/coding/export-okf-codegraph.js.map +1 -1
  153. package/dist/coding/pre-action-gate.js +4 -3
  154. package/dist/commitment-ledger.js +3 -2
  155. package/dist/compounding/engine.js +11 -9
  156. package/dist/config.js +14 -12
  157. package/dist/connectors/codex-materialize-runner.js +10 -8
  158. package/dist/connectors/index.js +10 -8
  159. package/dist/consolidation-provenance-check.d.ts.map +1 -1
  160. package/dist/consolidation-provenance-check.js +2 -1
  161. package/dist/contradiction/index.js +3 -2
  162. package/dist/convergence-refresh.js +12 -10
  163. package/dist/corpus-watermark.js +12 -10
  164. package/dist/correction/correction-planner.d.ts.map +1 -1
  165. package/dist/cue-anchors.js +4 -3
  166. package/dist/deep-recall-http-glue.js +4 -3
  167. package/dist/{dreams-ledger-567VKVOU.js → dreams-ledger-UCHHRQ4R.js} +3 -2
  168. package/dist/entity-retrieval.js +10 -8
  169. package/dist/eval-trajectory-store.js +4 -3
  170. package/dist/eval-trajectory.js +4 -3
  171. package/dist/evals.js +3 -2
  172. package/dist/external-wiki-access.js +35 -33
  173. package/dist/extraction.js +14 -12
  174. package/dist/{first-start-migration-6A5BJPDW.js → first-start-migration-QVD22WWS.js} +6 -5
  175. package/dist/{first-start-migration-6A5BJPDW.js.map → first-start-migration-QVD22WWS.js.map} +1 -1
  176. package/dist/harmonic-construction.js +5 -4
  177. package/dist/harmonic-retrieval.js +14 -12
  178. package/dist/harmonic-source-lookup.js +3 -2
  179. package/dist/index.js +90 -88
  180. package/dist/json-store.d.ts.map +1 -1
  181. package/dist/json-store.js +2 -1
  182. package/dist/location/index.js +12 -10
  183. package/dist/maintenance/dreams-ledger.d.ts.map +1 -1
  184. package/dist/maintenance/memory-governance.d.ts.map +1 -1
  185. package/dist/maintenance/memory-governance.js +10 -8
  186. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +10 -8
  187. package/dist/maintenance/rebuild-memory-projection-runner.js +12 -10
  188. package/dist/maintenance/rebuild-memory-projection.js +11 -9
  189. package/dist/memory-browse-operations.js +35 -33
  190. package/dist/namespaces/migrate.js +11 -9
  191. package/dist/namespaces/search.js +7 -6
  192. package/dist/namespaces/storage.d.ts.map +1 -1
  193. package/dist/namespaces/storage.js +10 -8
  194. package/dist/objective-state-writers.js +4 -3
  195. package/dist/objective-state.js +3 -2
  196. package/dist/offline-sync-snapshot-stream.js +3 -2
  197. package/dist/offline-sync.d.ts.map +1 -1
  198. package/dist/offline-sync.js +2 -1
  199. package/dist/operator-doctor-corpus.js +13 -11
  200. package/dist/operator-toolkit.js +25 -23
  201. package/dist/orchestration/extraction-run.d.ts +6 -20
  202. package/dist/orchestration/extraction-run.d.ts.map +1 -1
  203. package/dist/orchestration/maintenance.js +20 -18
  204. package/dist/orchestrator.js +90 -88
  205. package/dist/profiling.d.ts.map +1 -1
  206. package/dist/profiling.js +2 -1
  207. package/dist/recall-navigation-operations.js +35 -33
  208. package/dist/recall-navigation.js +34 -32
  209. package/dist/{resolution-7AY36LGJ.js → resolution-ZU5BIAJA.js} +4 -3
  210. package/dist/resume-bundles.js +19 -17
  211. package/dist/retrieval-agents.d.ts +1 -1
  212. package/dist/retrieval-agents.d.ts.map +1 -1
  213. package/dist/retrieval-agents.js +7 -1
  214. package/dist/search/document-scanner.d.ts.map +1 -1
  215. package/dist/search/document-scanner.js +2 -1
  216. package/dist/search/factory.js +6 -5
  217. package/dist/search/index.js +6 -5
  218. package/dist/search/lancedb-backend.js +3 -2
  219. package/dist/search/meilisearch-backend.js +3 -2
  220. package/dist/search/orama-backend.js +3 -2
  221. package/dist/semantic-consolidation.js +11 -9
  222. package/dist/semantic-rule-promotion.js +10 -8
  223. package/dist/semantic-rule-verifier.js +10 -8
  224. package/dist/source-agent-qualifier.js +12 -10
  225. package/dist/standup/build.js +10 -8
  226. package/dist/storage/entity-canonical-id-migration.d.ts.map +1 -1
  227. package/dist/storage/entity-store.d.ts +32 -1
  228. package/dist/storage/entity-store.d.ts.map +1 -1
  229. package/dist/storage/memory-read-store.d.ts.map +1 -1
  230. package/dist/storage/supersession-audit.d.ts.map +1 -1
  231. package/dist/storage.d.ts.map +1 -1
  232. package/dist/storage.js +9 -7
  233. package/dist/support-passport/index.js +37 -35
  234. package/dist/{tier-stats-RQM76XYY.js → tier-stats-C3IAMS4X.js} +6 -5
  235. package/dist/{tier-stats-RQM76XYY.js.map → tier-stats-C3IAMS4X.js.map} +1 -1
  236. package/dist/transcript.d.ts.map +1 -1
  237. package/dist/transcript.js +2 -1
  238. package/dist/transfer/export-okf.js +10 -8
  239. package/dist/trust-zones.js +3 -2
  240. package/dist/utility-learner.js +4 -3
  241. package/dist/utility-runtime.js +5 -4
  242. package/dist/utility-telemetry.js +3 -2
  243. package/dist/utils/macos-replication-junk.d.ts +32 -0
  244. package/dist/utils/macos-replication-junk.d.ts.map +1 -0
  245. package/dist/utils/malformed-entity-record.d.ts +24 -0
  246. package/dist/utils/malformed-entity-record.d.ts.map +1 -0
  247. package/dist/verified-recall.js +10 -8
  248. package/dist/who-knows-cli.js +11 -9
  249. package/dist/who-knows.js +10 -8
  250. package/dist/work-product-ledger.js +3 -2
  251. package/package.json +2 -2
  252. package/src/calibration.ts +3 -2
  253. package/src/cli.ts +2 -2
  254. package/src/consolidation-provenance-check.ts +2 -0
  255. package/src/correction/correction-planner.ts +3 -2
  256. package/src/json-store.ts +3 -0
  257. package/src/macos-replication-junk-scanners.test.ts +275 -0
  258. package/src/maintenance/dreams-ledger.ts +2 -0
  259. package/src/maintenance/memory-governance.ts +2 -0
  260. package/src/namespaces/storage.ts +2 -0
  261. package/src/offline-sync-macos-junk.test.ts +169 -0
  262. package/src/offline-sync.ts +7 -0
  263. package/src/orchestration/extraction-run.ts +6 -20
  264. package/src/profiling.ts +2 -1
  265. package/src/retrieval-agents.ts +29 -12
  266. package/src/search/document-scanner.ts +4 -0
  267. package/src/storage/entity-canonical-id-migration.ts +56 -13
  268. package/src/storage/entity-store.ts +173 -15
  269. package/src/storage/memory-read-store.ts +30 -5
  270. package/src/storage/supersession-audit.ts +2 -0
  271. package/src/storage.ts +3 -2
  272. package/src/transcript.ts +11 -10
  273. package/src/utils/macos-replication-junk.test.ts +46 -0
  274. package/src/utils/macos-replication-junk.ts +65 -0
  275. package/src/utils/malformed-entity-record.ts +101 -0
  276. package/dist/chunk-4O6WRBGE.js.map +0 -1
  277. package/dist/chunk-63B2IZYE.js.map +0 -1
  278. package/dist/chunk-B6O2YLUR.js.map +0 -1
  279. package/dist/chunk-BLVHDY2U.js.map +0 -1
  280. package/dist/chunk-CLWBFR7Q.js.map +0 -1
  281. package/dist/chunk-EQWEIIKQ.js.map +0 -1
  282. package/dist/chunk-FUFAXVBA.js.map +0 -1
  283. package/dist/chunk-NIRQGDYC.js.map +0 -1
  284. package/dist/chunk-P5NQN4JE.js.map +0 -1
  285. package/dist/chunk-PAZ35RJ4.js.map +0 -1
  286. package/dist/chunk-Q4E24IRR.js.map +0 -1
  287. package/dist/chunk-QJ622LTI.js.map +0 -1
  288. package/dist/chunk-TZNDKTX5.js.map +0 -1
  289. package/dist/chunk-ZV65I6ME.js.map +0 -1
  290. /package/dist/{chunk-YFMBHQRG.js.map → chunk-2PTH4PRL.js.map} +0 -0
  291. /package/dist/{chunk-TITG2NBS.js.map → chunk-2PYHLSXK.js.map} +0 -0
  292. /package/dist/{chunk-KH2LKDX7.js.map → chunk-33G67YZF.js.map} +0 -0
  293. /package/dist/{chunk-SWIKABKI.js.map → chunk-3Q3XD3NO.js.map} +0 -0
  294. /package/dist/{chunk-4KY5GSMB.js.map → chunk-4PDTVVSW.js.map} +0 -0
  295. /package/dist/{chunk-HM7RHKS4.js.map → chunk-4RNBLLZR.js.map} +0 -0
  296. /package/dist/{chunk-Y4NKEXQT.js.map → chunk-5ATSXCAG.js.map} +0 -0
  297. /package/dist/{chunk-JDZFIR2S.js.map → chunk-5KGYTX5O.js.map} +0 -0
  298. /package/dist/{chunk-J7JWFZHI.js.map → chunk-5MLGY6IY.js.map} +0 -0
  299. /package/dist/{chunk-NW2E4CI2.js.map → chunk-5SMR542T.js.map} +0 -0
  300. /package/dist/{chunk-S7LWX2PQ.js.map → chunk-655FVTCD.js.map} +0 -0
  301. /package/dist/{chunk-4OSG5Y6M.js.map → chunk-6YEPGWUP.js.map} +0 -0
  302. /package/dist/{chunk-W47S5TIH.js.map → chunk-7VQ6AI7H.js.map} +0 -0
  303. /package/dist/{chunk-WLMZ2L5P.js.map → chunk-AZDTDWS2.js.map} +0 -0
  304. /package/dist/{chunk-G7NYVKD6.js.map → chunk-B2NXOVZN.js.map} +0 -0
  305. /package/dist/{chunk-N7KYEVLK.js.map → chunk-BK2BVLZW.js.map} +0 -0
  306. /package/dist/{chunk-S2I7DL5Q.js.map → chunk-C2RW36YR.js.map} +0 -0
  307. /package/dist/{chunk-6LG7BWKW.js.map → chunk-CFZ4SXXH.js.map} +0 -0
  308. /package/dist/{chunk-JQ7XU625.js.map → chunk-CQOIWJ5E.js.map} +0 -0
  309. /package/dist/{chunk-FSIMZNBC.js.map → chunk-CXOYUANR.js.map} +0 -0
  310. /package/dist/{chunk-QOZJCSFO.js.map → chunk-DQR2LD3V.js.map} +0 -0
  311. /package/dist/{chunk-MATDGSJ7.js.map → chunk-DUPHIZBY.js.map} +0 -0
  312. /package/dist/{chunk-EBA5DA77.js.map → chunk-EOU6V4IN.js.map} +0 -0
  313. /package/dist/{chunk-5WCJLQTM.js.map → chunk-F2772ATT.js.map} +0 -0
  314. /package/dist/{chunk-46EST7JO.js.map → chunk-F2XNSIPP.js.map} +0 -0
  315. /package/dist/{chunk-PZHQWFR3.js.map → chunk-G3UUAQOD.js.map} +0 -0
  316. /package/dist/{chunk-YE36AJL7.js.map → chunk-GCVDFX66.js.map} +0 -0
  317. /package/dist/{chunk-T2YX56QI.js.map → chunk-GQJKVQJR.js.map} +0 -0
  318. /package/dist/{chunk-I7S55EOB.js.map → chunk-GUY6L6LL.js.map} +0 -0
  319. /package/dist/{chunk-L5DAHSEZ.js.map → chunk-GWVNGDJW.js.map} +0 -0
  320. /package/dist/{chunk-N45NEBOD.js.map → chunk-GZXXPCWJ.js.map} +0 -0
  321. /package/dist/{chunk-EPJDSQHF.js.map → chunk-H5IUN433.js.map} +0 -0
  322. /package/dist/{chunk-EUAIYYYR.js.map → chunk-H6FREOYX.js.map} +0 -0
  323. /package/dist/{chunk-T3FMRLWQ.js.map → chunk-HFSPY26A.js.map} +0 -0
  324. /package/dist/{chunk-GH7AOMJD.js.map → chunk-IJMDBYCO.js.map} +0 -0
  325. /package/dist/{chunk-4IHBN6WU.js.map → chunk-JKMIGCK6.js.map} +0 -0
  326. /package/dist/{chunk-ROBHL3GL.js.map → chunk-JWX2Q6HS.js.map} +0 -0
  327. /package/dist/{chunk-DPR2WTN3.js.map → chunk-JZTEOBOR.js.map} +0 -0
  328. /package/dist/{chunk-JIHMUOOS.js.map → chunk-KLJVTZ3R.js.map} +0 -0
  329. /package/dist/{chunk-FP4JYE66.js.map → chunk-KW4AJ7T3.js.map} +0 -0
  330. /package/dist/{chunk-QODKDRSP.js.map → chunk-L6AZOEXV.js.map} +0 -0
  331. /package/dist/{chunk-LS2FHUML.js.map → chunk-LQ5SS4OP.js.map} +0 -0
  332. /package/dist/{chunk-SIIRTDJ4.js.map → chunk-LWFWZTWX.js.map} +0 -0
  333. /package/dist/{chunk-BMWN7B3Y.js.map → chunk-LXATZLSC.js.map} +0 -0
  334. /package/dist/{chunk-O4SGYW7H.js.map → chunk-MAVYEZKM.js.map} +0 -0
  335. /package/dist/{chunk-B665A6BO.js.map → chunk-MJIOGYKX.js.map} +0 -0
  336. /package/dist/{chunk-RTKV5XHL.js.map → chunk-MO6N4QYY.js.map} +0 -0
  337. /package/dist/{chunk-N4C7QKOG.js.map → chunk-MWWAQXZ6.js.map} +0 -0
  338. /package/dist/{chunk-LCKVXX5F.js.map → chunk-MXV2MY6C.js.map} +0 -0
  339. /package/dist/{chunk-FFOVKNQV.js.map → chunk-NAGMQXWV.js.map} +0 -0
  340. /package/dist/{chunk-ZJVMUBYF.js.map → chunk-NHUX6GXA.js.map} +0 -0
  341. /package/dist/{chunk-CB6ANA2I.js.map → chunk-NZCKG25S.js.map} +0 -0
  342. /package/dist/{chunk-UMTCNEVQ.js.map → chunk-O2YPCFJT.js.map} +0 -0
  343. /package/dist/{chunk-WSGPFRBH.js.map → chunk-OMERTLB7.js.map} +0 -0
  344. /package/dist/{chunk-QX6JN3O4.js.map → chunk-PEF5LHQU.js.map} +0 -0
  345. /package/dist/{chunk-JYZSRNR7.js.map → chunk-PIITB2YZ.js.map} +0 -0
  346. /package/dist/{chunk-UQDG3YLN.js.map → chunk-PRU7OF3Y.js.map} +0 -0
  347. /package/dist/{chunk-EU534WGS.js.map → chunk-PVHQSLNN.js.map} +0 -0
  348. /package/dist/{chunk-5VC7J76U.js.map → chunk-QPH52AZB.js.map} +0 -0
  349. /package/dist/{chunk-XISROV24.js.map → chunk-QSEUUQUF.js.map} +0 -0
  350. /package/dist/{chunk-O2IPAX26.js.map → chunk-RTTPBBAN.js.map} +0 -0
  351. /package/dist/{chunk-W5MCEVUS.js.map → chunk-RYYVMZBR.js.map} +0 -0
  352. /package/dist/{chunk-ZSH2NRDV.js.map → chunk-TN4EA4X4.js.map} +0 -0
  353. /package/dist/{chunk-SS3IS2JR.js.map → chunk-UGYUBENJ.js.map} +0 -0
  354. /package/dist/{chunk-GELS5Z5Z.js.map → chunk-V3TXIXXY.js.map} +0 -0
  355. /package/dist/{chunk-WVADKFWV.js.map → chunk-VNZMZPAC.js.map} +0 -0
  356. /package/dist/{chunk-JPTPS4OB.js.map → chunk-VPXIKBPX.js.map} +0 -0
  357. /package/dist/{chunk-OP6N4H6A.js.map → chunk-W3FVQBGF.js.map} +0 -0
  358. /package/dist/{chunk-W3K3HITK.js.map → chunk-WLT6LTQP.js.map} +0 -0
  359. /package/dist/{chunk-GMXWTJNU.js.map → chunk-XKRXN63M.js.map} +0 -0
  360. /package/dist/{chunk-KR6ZKECI.js.map → chunk-XYGQSDTH.js.map} +0 -0
  361. /package/dist/{chunk-22W2XWGH.js.map → chunk-YBO2WGCV.js.map} +0 -0
  362. /package/dist/{chunk-P7TOIOT7.js.map → chunk-YR4COAEC.js.map} +0 -0
  363. /package/dist/{chunk-6WHJ2EAB.js.map → chunk-Z64TS5V4.js.map} +0 -0
  364. /package/dist/{chunk-NHLLKEKK.js.map → chunk-ZAJLJ35W.js.map} +0 -0
  365. /package/dist/{dreams-ledger-567VKVOU.js.map → dreams-ledger-UCHHRQ4R.js.map} +0 -0
  366. /package/dist/{resolution-7AY36LGJ.js.map → resolution-ZU5BIAJA.js.map} +0 -0
@@ -7,10 +7,10 @@ import {
7
7
  import {
8
8
  listMemoryGovernanceRuns,
9
9
  readMemoryGovernanceRunArtifact
10
- } from "./chunk-P5NQN4JE.js";
10
+ } from "./chunk-C6JMGAMO.js";
11
11
  import {
12
12
  StorageManager
13
- } from "./chunk-PAZ35RJ4.js";
13
+ } from "./chunk-4SCZZ3U7.js";
14
14
  import {
15
15
  normalizeProjectionPreview,
16
16
  normalizeProjectionTags
@@ -1156,4 +1156,4 @@ export {
1156
1156
  verifyMemoryProjection,
1157
1157
  repairMemoryProjection
1158
1158
  };
1159
- //# sourceMappingURL=chunk-Y4NKEXQT.js.map
1159
+ //# sourceMappingURL=chunk-5ATSXCAG.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseFrontmatter
3
- } from "./chunk-PAZ35RJ4.js";
3
+ } from "./chunk-4SCZZ3U7.js";
4
4
  import {
5
5
  activityDigestPath,
6
6
  isValidActivityDate
@@ -199,4 +199,4 @@ export {
199
199
  buildStandup,
200
200
  standupHelp
201
201
  };
202
- //# sourceMappingURL=chunk-JDZFIR2S.js.map
202
+ //# sourceMappingURL=chunk-5KGYTX5O.js.map
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  ActivityStore,
12
12
  MaintenanceScheduler
13
- } from "./chunk-EUAIYYYR.js";
13
+ } from "./chunk-H6FREOYX.js";
14
14
  import {
15
15
  runPeerProfileReasoner
16
16
  } from "./chunk-I74SUMNI.js";
@@ -32,7 +32,7 @@ import {
32
32
  import {
33
33
  CompoundingEngine,
34
34
  defaultTierMigrationCycleBudget
35
- } from "./chunk-UQDG3YLN.js";
35
+ } from "./chunk-PRU7OF3Y.js";
36
36
  import {
37
37
  SharedContextManager
38
38
  } from "./chunk-LZACDIM2.js";
@@ -43,7 +43,7 @@ import {
43
43
  applyUtilityPromotionRuntimePolicy,
44
44
  applyUtilityRankingRuntimeDelta,
45
45
  loadUtilityRuntimeValues
46
- } from "./chunk-SWIKABKI.js";
46
+ } from "./chunk-3Q3XD3NO.js";
47
47
  import {
48
48
  decideTierTransition
49
49
  } from "./chunk-GCBIXUPT.js";
@@ -83,7 +83,7 @@ import {
83
83
  runDirectAgent,
84
84
  runTemporalAgent,
85
85
  shouldRunAgent
86
- } from "./chunk-QJ622LTI.js";
86
+ } from "./chunk-BQOGQULP.js";
87
87
  import {
88
88
  clearIndexesAsync,
89
89
  deindexMemoriesBatchAsync,
@@ -160,7 +160,7 @@ import {
160
160
  harmonicEntitySegment,
161
161
  normalizedHarmonicEntityIdentity,
162
162
  persistHarmonicRecords
163
- } from "./chunk-LS2FHUML.js";
163
+ } from "./chunk-LQ5SS4OP.js";
164
164
  import {
165
165
  classifyMemoryKind
166
166
  } from "./chunk-YAZNBMNF.js";
@@ -169,7 +169,7 @@ import {
169
169
  } from "./chunk-XXSOVESA.js";
170
170
  import {
171
171
  ExtractionEngine
172
- } from "./chunk-WSGPFRBH.js";
172
+ } from "./chunk-OMERTLB7.js";
173
173
  import {
174
174
  buildFocusedListRecallSection,
175
175
  shouldRecallFocusedListEvidence
@@ -201,7 +201,7 @@ import {
201
201
  buildEntityRecallSection,
202
202
  entityRecentTranscriptLookbackHours,
203
203
  readRecentEntityTranscriptEntries
204
- } from "./chunk-W47S5TIH.js";
204
+ } from "./chunk-7VQ6AI7H.js";
205
205
  import {
206
206
  planEpisodeWindowsWithFallback
207
207
  } from "./chunk-T3GIETKV.js";
@@ -219,7 +219,7 @@ import {
219
219
  } from "./chunk-7G5NTS7F.js";
220
220
  import {
221
221
  refreshConvergedNamespaces
222
- } from "./chunk-GMXWTJNU.js";
222
+ } from "./chunk-XKRXN63M.js";
223
223
  import {
224
224
  builtInConnectorPackageSpecifier,
225
225
  ensureBuiltInWearableConnectors,
@@ -228,7 +228,7 @@ import {
228
228
  runTimelinePublishCli,
229
229
  screenCandidateFact,
230
230
  summarizeVaultPublish
231
- } from "./chunk-TZNDKTX5.js";
231
+ } from "./chunk-Q7DWEXG2.js";
232
232
  import {
233
233
  RoutingRulesStore
234
234
  } from "./chunk-TBUEE7XF.js";
@@ -238,30 +238,30 @@ import {
238
238
  import {
239
239
  compareVerifiedEpisodeResults,
240
240
  searchVerifiedEpisodes
241
- } from "./chunk-EPJDSQHF.js";
241
+ } from "./chunk-H5IUN433.js";
242
242
  import {
243
243
  ThreadingManager
244
244
  } from "./chunk-R7WYAXPO.js";
245
245
  import {
246
246
  compareVerifiedSemanticRuleResults,
247
247
  searchVerifiedSemanticRules
248
- } from "./chunk-YFMBHQRG.js";
248
+ } from "./chunk-2PTH4PRL.js";
249
249
  import {
250
250
  searchWorkProductLedgerEntries
251
- } from "./chunk-G7NYVKD6.js";
251
+ } from "./chunk-B2NXOVZN.js";
252
252
  import {
253
253
  TranscriptManager
254
- } from "./chunk-Q4E24IRR.js";
254
+ } from "./chunk-HDN7IVIO.js";
255
255
  import {
256
256
  PolicyRuntimeManager
257
257
  } from "./chunk-2LA3H54D.js";
258
258
  import {
259
259
  runNamespaceMaintenanceFanout,
260
260
  summarizeNamespaceMaintenanceHealth
261
- } from "./chunk-UMTCNEVQ.js";
261
+ } from "./chunk-O2YPCFJT.js";
262
262
  import {
263
263
  planNamespaceMaintenance
264
- } from "./chunk-JIHMUOOS.js";
264
+ } from "./chunk-KLJVTZ3R.js";
265
265
  import {
266
266
  isAboveImportanceThreshold,
267
267
  scoreImportance
@@ -272,7 +272,7 @@ import {
272
272
  } from "./chunk-OZKOPQCM.js";
273
273
  import {
274
274
  recordEvalShadowRecall
275
- } from "./chunk-4IHBN6WU.js";
275
+ } from "./chunk-JKMIGCK6.js";
276
276
  import {
277
277
  collectNativeKnowledgeChunks,
278
278
  formatNativeKnowledgeSection,
@@ -280,7 +280,7 @@ import {
280
280
  } from "./chunk-2DQ2XREU.js";
281
281
  import {
282
282
  applyCommitmentLedgerLifecycle
283
- } from "./chunk-NHLLKEKK.js";
283
+ } from "./chunk-ZAJLJ35W.js";
284
284
  import {
285
285
  buildConsolidationPrompt,
286
286
  buildExtensionsBlockForConsolidation,
@@ -290,7 +290,7 @@ import {
290
290
  materializeAfterSemanticConsolidation,
291
291
  parseConsolidationResponse,
292
292
  parseOperatorAwareConsolidationResponse
293
- } from "./chunk-PZHQWFR3.js";
293
+ } from "./chunk-G3UUAQOD.js";
294
294
  import {
295
295
  semanticChunkContent
296
296
  } from "./chunk-2GBFKHBZ.js";
@@ -299,7 +299,7 @@ import {
299
299
  } from "./chunk-6TBIWIAG.js";
300
300
  import {
301
301
  SmartBuffer
302
- } from "./chunk-MATDGSJ7.js";
302
+ } from "./chunk-DUPHIZBY.js";
303
303
  import {
304
304
  buildRecallQueryPolicy
305
305
  } from "./chunk-C6WMSXCJ.js";
@@ -329,7 +329,7 @@ import {
329
329
  embeddingsFromCosineHits,
330
330
  normalizeConnectorScope,
331
331
  runSeedGraduationPass
332
- } from "./chunk-JPTPS4OB.js";
332
+ } from "./chunk-VPXIKBPX.js";
333
333
  import {
334
334
  compileCorrectionRule,
335
335
  correctionsFilePath,
@@ -367,14 +367,14 @@ import {
367
367
  } from "./chunk-QW27DOHG.js";
368
368
  import {
369
369
  MeetingsInputError
370
- } from "./chunk-DPR2WTN3.js";
370
+ } from "./chunk-JZTEOBOR.js";
371
371
  import {
372
372
  WearablesInputError,
373
373
  describeErrorForOperator
374
374
  } from "./chunk-V7IZKJI3.js";
375
375
  import {
376
376
  recordDreamsPhaseRun
377
- } from "./chunk-EQWEIIKQ.js";
377
+ } from "./chunk-PQM3B54K.js";
378
378
  import {
379
379
  foldQueueWaitTiming,
380
380
  recordRecallTiming
@@ -385,7 +385,7 @@ import {
385
385
  } from "./chunk-YYEOR4XN.js";
386
386
  import {
387
387
  NamespaceCatalog
388
- } from "./chunk-L5DAHSEZ.js";
388
+ } from "./chunk-GWVNGDJW.js";
389
389
  import {
390
390
  RecallResultFormatter,
391
391
  SessionContextCoordinator,
@@ -394,7 +394,7 @@ import {
394
394
  detectPassiveCorrections,
395
395
  renderSessionExperiencePreview,
396
396
  scoreSessionExperienceForPrompt
397
- } from "./chunk-ZV65I6ME.js";
397
+ } from "./chunk-GFWRXPF6.js";
398
398
  import {
399
399
  importCapsule
400
400
  } from "./chunk-V4MB5ONM.js";
@@ -404,7 +404,7 @@ import {
404
404
  import {
405
405
  listTrustZoneRecords,
406
406
  searchTrustZoneRecords
407
- } from "./chunk-ROBHL3GL.js";
407
+ } from "./chunk-JWX2Q6HS.js";
408
408
  import {
409
409
  applyTrustScoreStage,
410
410
  buildTrustSignalsForRerank,
@@ -427,7 +427,7 @@ import {
427
427
  import {
428
428
  objectiveStateStoreOverrideForNamespace,
429
429
  searchObjectiveStateSnapshots
430
- } from "./chunk-HM7RHKS4.js";
430
+ } from "./chunk-4RNBLLZR.js";
431
431
  import {
432
432
  filterRecallCandidates,
433
433
  isGenericRecallExcludedPath,
@@ -437,10 +437,10 @@ import {
437
437
  } from "./chunk-FT4UQYOV.js";
438
438
  import {
439
439
  searchHarmonicRetrieval
440
- } from "./chunk-ZJVMUBYF.js";
440
+ } from "./chunk-NHUX6GXA.js";
441
441
  import {
442
442
  ProfilingCollector
443
- } from "./chunk-BLVHDY2U.js";
443
+ } from "./chunk-DOWACHYO.js";
444
444
  import {
445
445
  ModelRegistry
446
446
  } from "./chunk-5MA7ZLPD.js";
@@ -460,10 +460,10 @@ import {
460
460
  } from "./chunk-NVKO5YKP.js";
461
461
  import {
462
462
  NamespaceStorageRouter
463
- } from "./chunk-FUFAXVBA.js";
463
+ } from "./chunk-RI2KCQHP.js";
464
464
  import {
465
465
  pruneOrphanCueAnchors
466
- } from "./chunk-BMWN7B3Y.js";
466
+ } from "./chunk-LXATZLSC.js";
467
467
  import {
468
468
  GraphIndex
469
469
  } from "./chunk-4IYIGN53.js";
@@ -472,12 +472,12 @@ import {
472
472
  } from "./chunk-GKCXTSFF.js";
473
473
  import {
474
474
  buildChainFollowupGenerator
475
- } from "./chunk-WVADKFWV.js";
475
+ } from "./chunk-VNZMZPAC.js";
476
476
  import {
477
477
  ExtractionDeadlineError,
478
478
  ExtractionRunCoordinator,
479
479
  classifyExtractionOrigin
480
- } from "./chunk-CLWBFR7Q.js";
480
+ } from "./chunk-LO76EF3Y.js";
481
481
  import {
482
482
  ARTIFACT_STATUS_CACHE_TTL_MS,
483
483
  BulkImportBatchPartialFailureError,
@@ -551,7 +551,7 @@ import {
551
551
  } from "./chunk-QDW3E4RD.js";
552
552
  import {
553
553
  searchCausalTrajectories
554
- } from "./chunk-S2I7DL5Q.js";
554
+ } from "./chunk-C2RW36YR.js";
555
555
  import {
556
556
  QmdResultResolver,
557
557
  StorageManager,
@@ -570,7 +570,7 @@ import {
570
570
  reconstructFusionInputs,
571
571
  selfDeps,
572
572
  serializeFusionDay
573
- } from "./chunk-PAZ35RJ4.js";
573
+ } from "./chunk-4SCZZ3U7.js";
574
574
  import {
575
575
  bodyIsEscaped,
576
576
  decodeTranscriptBody,
@@ -587,12 +587,12 @@ import {
587
587
  import {
588
588
  NamespaceSearchRouter,
589
589
  namespaceCollectionName
590
- } from "./chunk-N4C7QKOG.js";
590
+ } from "./chunk-MWWAQXZ6.js";
591
591
  import {
592
592
  createConversationIndexRuntime,
593
593
  createSearchBackend,
594
594
  isSearchBackendEnabled
595
- } from "./chunk-O2IPAX26.js";
595
+ } from "./chunk-RTTPBBAN.js";
596
596
  import {
597
597
  NoopSearchBackend
598
598
  } from "./chunk-CYEPCZN5.js";
@@ -848,7 +848,7 @@ import {
848
848
  listJsonFilesStrict,
849
849
  withJsonStoreMutationLock,
850
850
  writeJsonFileAtomic
851
- } from "./chunk-B6O2YLUR.js";
851
+ } from "./chunk-2Z5DIDQD.js";
852
852
  import {
853
853
  isPathInsideStorageRoot,
854
854
  resolveSafeStoragePath
@@ -17380,7 +17380,7 @@ var OrchestratorInitCoordinator = class {
17380
17380
  if (signal.aborted || !this.isCurrentStartupEpoch(epoch)) return;
17381
17381
  if (lifecycleCaps.lifecyclePolicy && resolveQmdCapabilities(this.deps.config).qmdTierMigration) {
17382
17382
  try {
17383
- const { runFirstStartMigration } = await import("./first-start-migration-6A5BJPDW.js");
17383
+ const { runFirstStartMigration } = await import("./first-start-migration-QVD22WWS.js");
17384
17384
  if (signal.aborted || !this.isCurrentStartupEpoch(epoch)) return;
17385
17385
  const result = await runFirstStartMigration({
17386
17386
  storage: this.deps.storage,
@@ -31096,4 +31096,4 @@ export {
31096
31096
  qmdStartupCollectionChecksWithTimeout,
31097
31097
  Orchestrator
31098
31098
  };
31099
- //# sourceMappingURL=chunk-J7JWFZHI.js.map
31099
+ //# sourceMappingURL=chunk-5MLGY6IY.js.map
@@ -2,7 +2,7 @@ import {
2
2
  OFFLINE_SYNC_SNAPSHOT_FORMAT,
3
3
  filterOfflineSyncDeletionRevisions,
4
4
  iterateOfflineSyncSnapshotFileRecords
5
- } from "./chunk-63B2IZYE.js";
5
+ } from "./chunk-23ZQPP2G.js";
6
6
  import {
7
7
  computeOmittedEmbeddingGenerationPaths,
8
8
  embeddingGenerationMembership
@@ -61,4 +61,4 @@ async function buildEmbeddingAwareSnapshotStream(options) {
61
61
  export {
62
62
  buildEmbeddingAwareSnapshotStream
63
63
  };
64
- //# sourceMappingURL=chunk-NW2E4CI2.js.map
64
+ //# sourceMappingURL=chunk-5SMR542T.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  scanMemoryDir
3
- } from "./chunk-4O6WRBGE.js";
3
+ } from "./chunk-KJXP6RUG.js";
4
4
  import {
5
5
  isSearchAborted,
6
6
  throwIfSearchAborted
@@ -508,4 +508,4 @@ function isMissingVectorProviderColumnError(err) {
508
508
  export {
509
509
  LanceDbBackend
510
510
  };
511
- //# sourceMappingURL=chunk-S7LWX2PQ.js.map
511
+ //# sourceMappingURL=chunk-655FVTCD.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-7T4TOGMS.js";
4
4
  import {
5
5
  defineOperation
6
- } from "./chunk-ZV65I6ME.js";
6
+ } from "./chunk-GFWRXPF6.js";
7
7
 
8
8
  // src/external-wiki-access.ts
9
9
  import { z } from "zod";
@@ -26,4 +26,4 @@ var externalWikiSearchOperation = defineOperation({
26
26
  export {
27
27
  externalWikiSearchOperation
28
28
  };
29
- //# sourceMappingURL=chunk-4OSG5Y6M.js.map
29
+ //# sourceMappingURL=chunk-6YEPGWUP.js.map
@@ -34,7 +34,7 @@ import {
34
34
  } from "./chunk-NVKO5YKP.js";
35
35
  import {
36
36
  compareEntityTimestamps
37
- } from "./chunk-PAZ35RJ4.js";
37
+ } from "./chunk-4SCZZ3U7.js";
38
38
  import {
39
39
  normalizeEntityName
40
40
  } from "./chunk-YXZG5TVN.js";
@@ -927,4 +927,4 @@ export {
927
927
  entityIndexVersion,
928
928
  entityRecentTranscriptLookbackHours
929
929
  };
930
- //# sourceMappingURL=chunk-W47S5TIH.js.map
930
+ //# sourceMappingURL=chunk-7VQ6AI7H.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  defineOperation
3
- } from "./chunk-ZV65I6ME.js";
3
+ } from "./chunk-GFWRXPF6.js";
4
4
  import {
5
5
  EngramAccessInputError
6
6
  } from "./chunk-3MUKQQ7A.js";
@@ -71,4 +71,4 @@ defineOperation({
71
71
  })
72
72
  })
73
73
  });
74
- //# sourceMappingURL=chunk-WLMZ2L5P.js.map
74
+ //# sourceMappingURL=chunk-AZDTDWS2.js.map
@@ -15,7 +15,7 @@ import {
15
15
  import {
16
16
  listJsonFiles,
17
17
  readJsonFile
18
- } from "./chunk-B6O2YLUR.js";
18
+ } from "./chunk-2Z5DIDQD.js";
19
19
 
20
20
  // src/work-product-ledger.ts
21
21
  import path from "path";
@@ -182,4 +182,4 @@ export {
182
182
  searchWorkProductLedgerEntries,
183
183
  getWorkProductLedgerStatus
184
184
  };
185
- //# sourceMappingURL=chunk-G7NYVKD6.js.map
185
+ //# sourceMappingURL=chunk-B2NXOVZN.js.map
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-3UXOZBHV.js";
15
15
  import {
16
16
  StorageManager
17
- } from "./chunk-PAZ35RJ4.js";
17
+ } from "./chunk-4SCZZ3U7.js";
18
18
  import {
19
19
  OKF_PROFILE_TYPE,
20
20
  okfTypeForMemory
@@ -272,4 +272,4 @@ export {
272
272
  exportOkfBundle,
273
273
  firstHeading
274
274
  };
275
- //# sourceMappingURL=chunk-N7KYEVLK.js.map
275
+ //# sourceMappingURL=chunk-BK2BVLZW.js.map
@@ -2,19 +2,28 @@ import {
2
2
  isTemporalQuery,
3
3
  recencyWindowBoundsFromPrompt
4
4
  } from "./chunk-ZOKZIR5K.js";
5
+ import {
6
+ isShapedUnnamedEntityRecord
7
+ } from "./chunk-PPUNC7UX.js";
5
8
  import {
6
9
  normalizeRecallTokens
7
10
  } from "./chunk-YCVB7X56.js";
8
11
  import {
9
12
  isAbortError
10
13
  } from "./chunk-BTTPKDIL.js";
14
+ import {
15
+ isMacOsReplicationJunkBasename
16
+ } from "./chunk-QUIRIG2P.js";
17
+ import {
18
+ isEncryptedFile
19
+ } from "./chunk-MAAL6OZV.js";
11
20
  import {
12
21
  log
13
22
  } from "./chunk-3WCASNQZ.js";
14
23
 
15
24
  // src/retrieval-agents.ts
25
+ import { lstat, readFile, readdir, realpath, stat } from "fs/promises";
16
26
  import path from "path";
17
- import { lstat, readdir, readFile, realpath, stat } from "fs/promises";
18
27
  var PARALLEL_AGENT_WEIGHTS = {
19
28
  direct: 1,
20
29
  // entity-first: high precision
@@ -75,9 +84,9 @@ async function runDirectAgent(query, memoryDir, maxResults = 10, namespaceFromPa
75
84
  }
76
85
  const queryTokens = tokenize(query);
77
86
  if (queryTokens.length === 0) return [];
78
- const results = [];
87
+ const scored = [];
79
88
  for (const entry of entries) {
80
- if (!entry.endsWith(".md")) continue;
89
+ if (isMacOsReplicationJunkBasename(entry) || !entry.endsWith(".md")) continue;
81
90
  const nameWithoutExt = entry.slice(0, -3);
82
91
  const entityTokens = nameWithoutExt.split("-").filter((t) => t.length >= 2).map((t) => t.toLowerCase());
83
92
  const score = overlapScore(queryTokens, entityTokens);
@@ -85,14 +94,27 @@ async function runDirectAgent(query, memoryDir, maxResults = 10, namespaceFromPa
85
94
  const fullPath = path.join(entitiesDir, entry);
86
95
  const safePath = await resolveContainedRegularFile(memoryDir, fullPath, canonicalRoot);
87
96
  if (!safePath) continue;
97
+ scored.push({ nameWithoutExt, safePath, score });
98
+ }
99
+ scored.sort((a, b) => b.score - a.score);
100
+ const results = [];
101
+ for (const hit of scored) {
102
+ if (results.length >= maxResults) break;
103
+ let bytes;
104
+ try {
105
+ bytes = await readFile(hit.safePath);
106
+ } catch {
107
+ continue;
108
+ }
109
+ if (!isEncryptedFile(bytes) && isShapedUnnamedEntityRecord(bytes.toString("utf8"))) continue;
88
110
  results.push(
89
111
  namespaceRelativeResult(
90
112
  {
91
- docid: nameWithoutExt,
92
- path: safePath,
113
+ docid: hit.nameWithoutExt,
114
+ path: hit.safePath,
93
115
  snippet: "",
94
116
  // populated by augmentWithDirectAndTemporal after merge
95
- score,
117
+ score: hit.score,
96
118
  transport: "scoped_prefilter",
97
119
  agentSource: "direct"
98
120
  },
@@ -101,7 +123,7 @@ async function runDirectAgent(query, memoryDir, maxResults = 10, namespaceFromPa
101
123
  )
102
124
  );
103
125
  }
104
- return results.sort((a, b) => b.score - a.score).slice(0, maxResults);
126
+ return results;
105
127
  } catch (err) {
106
128
  log.debug(`DirectFactAgent error: ${err}`);
107
129
  return [];
@@ -430,4 +452,4 @@ export {
430
452
  augmentWithDirectAndTemporal,
431
453
  parallelRetrieval
432
454
  };
433
- //# sourceMappingURL=chunk-QJ622LTI.js.map
455
+ //# sourceMappingURL=chunk-BQOGQULP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/retrieval-agents.ts"],"sourcesContent":["/**\n * Parallel Specialized Retrieval (v9.1 — ASMR-inspired)\n *\n * Replaces single-pass hybrid search with three parallel specialized agents:\n *\n * 1. DirectFactAgent — entity-first lookup via entity filename index (<5ms)\n * 2. ContextualAgent — existing hybridSearch (same cost as current single-pass)\n * 3. TemporalAgent — temporal index prefilter + recency scoring (<10ms)\n *\n * All agents run via Promise.all(), so total latency = max(agents), not sum.\n * No new LLM inference is introduced — agents reuse existing search primitives.\n *\n * Graceful degradation: any agent error/timeout does not block the others.\n *\n * References:\n * - Supermemory ASMR: https://blog.supermemory.ai/...\n * - Spec: docs/ideas/parallel-specialized-retrieval.md\n */\n\nimport { lstat, readFile, readdir, realpath, stat } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { isAbortError } from \"./abort-error.js\";\nimport { log } from \"./logger.js\";\nimport type { QmdClient } from \"./qmd.js\";\nimport { normalizeRecallTokens } from \"./recall-tokenization.js\";\nimport { isEncryptedFile } from \"./secure-store/secure-fs.js\";\nimport { isTemporalQuery, recencyWindowBoundsFromPrompt } from \"./temporal-index.js\";\nimport type { QmdSearchResult } from \"./types.js\";\nimport { isMacOsReplicationJunkBasename } from \"./utils/macos-replication-junk.js\";\nimport { isShapedUnnamedEntityRecord } from \"./utils/malformed-entity-record.js\";\n\n\n// ─── Types ───────────────────────────────────────────────────────────────────\n\nexport type SearchAgentSource = \"direct\" | \"contextual\" | \"temporal\";\n\nexport interface ParallelSearchResult extends QmdSearchResult {\n /** Which retrieval agent produced this result. */\n agentSource: SearchAgentSource;\n}\n\n/** Source-based weights applied during merge. Higher = higher confidence/precision. */\nexport const PARALLEL_AGENT_WEIGHTS: Record<SearchAgentSource, number> = {\n direct: 1.0, // entity-first: high precision\n temporal: 0.85, // recency-boosted: relevant but broader\n contextual: 0.7, // semantic: broadest, lower precision\n};\n\n// ─── Query classification ────────────────────────────────────────────────────\n\n/**\n * Decide whether a given agent should run for this query.\n * Agent 1 (direct) is the only one that may be skipped — when the query\n * contains no proper-noun-like tokens, entity lookups will return nothing.\n * Agents 2 (contextual) and 3 (temporal) always run.\n */\nexport function shouldRunAgent(\n agent: SearchAgentSource,\n query: string,\n knownEntityCount: number,\n): boolean {\n switch (agent) {\n case \"direct\":\n // Skip only if the query has no letter/number tokens. `\\w` and `\\b` are\n // ASCII-only, so CJK entity names would never start the direct agent.\n return knownEntityCount > 0 || /[\\p{L}\\p{N}]{2,}/u.test(query);\n case \"temporal\":\n // Only run temporal agent when the query actually asks about a time window.\n // Running it for every query injects recency bias into semantic searches.\n return isTemporalQuery(query);\n case \"contextual\":\n return true;\n default:\n return true;\n }\n}\n\n// ─── Helpers ─────────────────────────────────────────────────────────────────\n\nfunction tokenize(value: string): string[] {\n return normalizeRecallTokens(value).filter((t) => t.length >= 2);\n}\n\nfunction overlapScore(queryTokens: string[], candidateTokens: string[]): number {\n if (queryTokens.length === 0 || candidateTokens.length === 0) return 0;\n const candidateSet = new Set(candidateTokens);\n const hits = queryTokens.filter((t) => candidateSet.has(t)).length;\n return hits / Math.max(queryTokens.length, candidateTokens.length);\n}\n\nasync function resolveContainedRegularFile(\n memoryDir: string,\n candidatePath: string,\n canonicalRoot?: string,\n): Promise<string | null> {\n try {\n const root = canonicalRoot ?? await realpath(memoryDir);\n const absolute = path.isAbsolute(candidatePath)\n ? path.resolve(candidatePath)\n : path.resolve(memoryDir, candidatePath);\n const entryStat = await lstat(absolute);\n if (entryStat.isSymbolicLink()) return null;\n const fileStat = await stat(absolute);\n if (!fileStat.isFile()) return null;\n const canonical = await realpath(absolute);\n if (canonical !== root && !canonical.startsWith(root + path.sep)) return null;\n return absolute;\n } catch {\n return null;\n }\n}\n\n// ─── Agent 1: Direct Facts ───────────────────────────────────────────────────\n\n/**\n * Direct Facts Agent — entity-first retrieval.\n *\n * Reads entity filenames from the entities directory and scores them by\n * keyword overlap with the query. Returns matching entity file paths as\n * QmdSearchResult[]. Zero LLM inference; pure file I/O.\n *\n * Cost: readdir on entities/ + filename scoring. Typically <5ms.\n * Scored hits are read, up to the result cap, so a malformed record is not returned.\n *\n */\n// Agents scan one namespace storage dir and return absolute paths. Contextual\n// fanout hits are also absolute (globally-unique identity), so we keep the\n// agent path absolute and only stamp the owning namespace here — that carries\n// the namespace through merge/tracking without re-deriving it (#2020). No-op\n// without a resolver.\nfunction namespaceRelativeResult(\n result: ParallelSearchResult,\n _memoryDir: string,\n namespaceFromPath?: (p: string) => string,\n): ParallelSearchResult {\n if (!namespaceFromPath || !result.path || result.namespace) return result;\n return { ...result, namespace: namespaceFromPath(result.path) };\n}\n\nexport async function runDirectAgent(\n query: string,\n memoryDir: string,\n maxResults = 10,\n namespaceFromPath?: (p: string) => string,\n): Promise<ParallelSearchResult[]> {\n try {\n const canonicalRoot = await realpath(memoryDir);\n const entitiesDir = path.join(memoryDir, \"entities\");\n let entries: string[];\n try {\n entries = await readdir(entitiesDir);\n } catch {\n return []; // entities dir missing or unreadable — not an error\n }\n\n const queryTokens = tokenize(query);\n if (queryTokens.length === 0) return [];\n\n const scored: Array<{ nameWithoutExt: string; safePath: string; score: number }> = [];\n for (const entry of entries) {\n if (isMacOsReplicationJunkBasename(entry) || !entry.endsWith(\".md\")) continue;\n\n // Filename tokens: split on hyphens (normalizeEntityName uses hyphens)\n const nameWithoutExt = entry.slice(0, -3);\n const entityTokens = nameWithoutExt.split(\"-\").filter((t) => t.length >= 2).map((t) => t.toLowerCase());\n\n const score = overlapScore(queryTokens, entityTokens);\n if (score <= 0) continue;\n\n const fullPath = path.join(entitiesDir, entry);\n const safePath = await resolveContainedRegularFile(memoryDir, fullPath, canonicalRoot);\n if (!safePath) continue;\n scored.push({ nameWithoutExt, safePath, score });\n }\n\n scored.sort((a, b) => b.score - a.score);\n const results: ParallelSearchResult[] = [];\n for (const hit of scored) {\n if (results.length >= maxResults) break;\n let bytes: Buffer;\n try {\n bytes = await readFile(hit.safePath);\n } catch {\n continue;\n }\n // Ciphertext has no heading. The secure resolver decrypts after this\n // candidate is kept; this scan does not look up a key.\n if (!isEncryptedFile(bytes) && isShapedUnnamedEntityRecord(bytes.toString(\"utf8\"))) continue;\n results.push(\n namespaceRelativeResult(\n {\n docid: hit.nameWithoutExt,\n path: hit.safePath,\n snippet: \"\", // populated by augmentWithDirectAndTemporal after merge\n score: hit.score,\n transport: \"scoped_prefilter\",\n agentSource: \"direct\",\n },\n memoryDir,\n namespaceFromPath,\n ),\n );\n }\n\n return results;\n } catch (err) {\n log.debug(`DirectFactAgent error: ${err}`);\n return [];\n }\n}\n\n// ─── Agent 3: Temporal ───────────────────────────────────────────────────────\n\n/**\n * Temporal Agent — recency-focused retrieval.\n *\n * Uses the temporal index (index_time.json) to find memories from the\n * recent time window derived from the query (default: last 7 days).\n * Combines recency decay with query-filename token overlap so results stay\n * relevant to the query content, not just recency. Zero LLM inference; File I/O + math.\n *\n * Cost: read index_time.json + date range scan. Typically <10ms.\n */\nexport async function runTemporalAgent(\n query: string,\n memoryDir: string,\n maxResults = 20,\n /** Optional candidate set from query-aware prefilter. Applied BEFORE the top-K cap so\n * in-scope entries are not displaced by newer out-of-scope entries. */\n candidatePaths?: Set<string> | null,\n namespaceFromPath?: (p: string) => string,\n): Promise<ParallelSearchResult[]> {\n try {\n const canonicalRoot = await realpath(memoryDir);\n // Read index_time.json once — used for both date-range filtering and recency scoring.\n let dateIndex: Record<string, string[]> = {};\n try {\n const indexPath = path.join(memoryDir, \"state\", \"index_time.json\");\n const raw = await readFile(indexPath, \"utf-8\");\n const parsed = JSON.parse(raw) as { dates?: Record<string, string[]> };\n dateIndex = parsed.dates ?? {};\n } catch {\n return []; // Index missing or unreadable — nothing to return\n }\n\n // Derive both window edges from the same function so fromDate/toDate always use\n // consistent pattern-matching and priority ordering.\n const { fromDate, toDate } = recencyWindowBoundsFromPrompt(query);\n\n // Build path → date map, filtering to the recency window in one pass.\n // Apply candidatePaths here (before scoring + top-K) so in-scope entries are\n // not displaced by newer out-of-scope entries at the slice boundary.\n const pathToDate = new Map<string, string>();\n for (const [date, datePaths] of Object.entries(dateIndex)) {\n // toDate is an exclusive upper bound (the first day NOT included in the window).\n // e.g. \"3 days ago\" → fromDate=\"2026-03-12\", toDate=\"2026-03-13\" → only includes 2026-03-12.\n if (date >= fromDate && date < toDate) {\n for (const p of datePaths) {\n // Skip paths excluded by the query-aware prefilter scope\n if (candidatePaths && !candidatePaths.has(p)) continue;\n if (!pathToDate.has(p)) pathToDate.set(p, date);\n }\n }\n }\n\n if (pathToDate.size === 0) return [];\n\n const todayMs = Date.now();\n\n // Extract non-temporal topic tokens for tag-based relevance boost.\n // Purely temporal words (dates, relative time) and common stopwords are stripped\n // so the signal reflects the subject the user is asking about (e.g. \"auth\" in\n // \"what changed in auth last week\"), not the time window itself.\n const TEMPORAL_STOPWORDS = new Set([\n \"today\", \"yesterday\", \"this\", \"last\", \"week\", \"month\", \"year\",\n \"morning\", \"night\", \"now\", \"earlier\", \"since\", \"after\", \"before\",\n \"ago\", \"hours\", \"days\", \"weeks\", \"months\",\n \"january\", \"february\", \"march\", \"april\", \"may\", \"june\",\n \"july\", \"august\", \"september\", \"october\", \"november\", \"december\",\n \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\",\n \"what\", \"when\", \"where\", \"who\", \"why\", \"how\", \"the\", \"a\", \"an\",\n \"and\", \"or\", \"in\", \"on\", \"at\", \"to\", \"of\", \"for\", \"with\", \"by\",\n \"from\", \"changed\", \"happened\", \"was\", \"were\", \"is\", \"are\", \"did\",\n \"about\", \"that\", \"have\", \"had\", \"has\", \"been\", \"any\", \"all\",\n ]);\n const topicTokens = tokenize(query).filter((t) => !TEMPORAL_STOPWORDS.has(t));\n\n // Load tag index for topical scoring, in parallel with existence checks.\n // Fail-open: if the tag index is unavailable, topicBoost = 0 and scores\n // degrade gracefully to recency-only ordering (existing behaviour).\n const entries = [...pathToDate.entries()];\n const tagIndexPromise: Promise<Map<string, string[]>> = topicTokens.length > 0\n ? readFile(path.join(memoryDir, \"state\", \"index_tags.json\"), \"utf-8\")\n .then((raw) => {\n const parsed = JSON.parse(raw) as { tags?: Record<string, { paths?: string[] } | string[]> };\n const result = new Map<string, string[]>();\n for (const [tag, node] of Object.entries(parsed.tags ?? {})) {\n const tagPaths = Array.isArray(node) ? node : (node.paths ?? []);\n for (const tp of tagPaths) {\n const existing = result.get(tp);\n if (existing) existing.push(tag);\n else result.set(tp, [tag]);\n }\n }\n return result;\n })\n .catch(() => new Map<string, string[]>())\n : Promise.resolve(new Map<string, string[]>());\n\n // Parallel: existence checks + tag index read.\n const [safePathResults, pathToTags] = await Promise.all([\n Promise.all(entries.map(([p]) => resolveContainedRegularFile(memoryDir, p, canonicalRoot))),\n tagIndexPromise,\n ]);\n\n const results: ParallelSearchResult[] = [];\n\n for (let i = 0; i < entries.length; i++) {\n const [p, dateStr] = entries[i];\n const safePath = safePathResults[i];\n if (!safePath) continue; // skip stale or out-of-root index entry\n const ageMs = todayMs - new Date(dateStr).getTime();\n const ageDays = ageMs / 86_400_000;\n // Exponential recency decay with half-life of ~30 days.\n // score ≈ 1.0 at day 0, ≈ 0.79 at 7 days, ≈ 0.36 at 30 days, ≈ 0.13 at 60 days.\n const recencyScore = Math.exp(-ageDays / 30);\n\n // Topical boost: fraction of non-temporal query tokens matched by this file's tags.\n // Adds up to +30% on recency score for a perfect tag match; zero when query is\n // purely temporal (no topic tokens) or the tag index doesn't cover the file.\n let topicBoost = 0;\n if (topicTokens.length > 0) {\n const tags = pathToTags.get(p) ?? pathToTags.get(safePath);\n if (tags && tags.length > 0) {\n const tagSet = new Set(tags.flatMap((t) => tokenize(t)));\n const hits = topicTokens.filter((t) => tagSet.has(t)).length;\n topicBoost = hits / topicTokens.length;\n }\n }\n const score = recencyScore * (1 + topicBoost * 0.3);\n\n const baseName = path.basename(safePath, \".md\");\n\n results.push(\n namespaceRelativeResult(\n {\n docid: baseName,\n path: safePath,\n snippet: \"\", // populated by augmentWithDirectAndTemporal after merge\n score,\n transport: \"scoped_prefilter\",\n agentSource: \"temporal\",\n },\n memoryDir,\n namespaceFromPath,\n ),\n );\n }\n\n return results\n .sort((a, b) => b.score - a.score)\n .slice(0, maxResults);\n } catch (err) {\n log.debug(`TemporalAgent error: ${err}`);\n return [];\n }\n}\n\n// ─── Agent 2: Contextual ─────────────────────────────────────────────────────\n\n/**\n * Contextual Agent — broad semantic/hybrid search.\n *\n * Delegates to the existing hybridSearch (BM25 + vector). Same cost as the\n * current single-pass retrieval — this agent introduces no additional LLM calls.\n */\nexport async function runContextualAgent(\n query: string,\n qmd: QmdClient,\n collection: string | undefined,\n maxResults: number,\n signal?: AbortSignal,\n): Promise<ParallelSearchResult[]> {\n try {\n const results = await qmd.hybridSearch(\n query,\n collection,\n maxResults,\n signal ? { signal } : undefined,\n );\n return results.map((r: QmdSearchResult) => ({ ...r, agentSource: \"contextual\" as const }));\n } catch (err) {\n if (isAbortError(err)) throw err;\n log.debug(`ContextualAgent error: ${err}`);\n return [];\n }\n}\n\n// ─── Merge helper ─────────────────────────────────────────────────────────────\n\n/**\n * Merge results from multiple agents into a single deduplicated, weighted list.\n * Deduplicates by (namespace, path). Contextual results carry a `namespace`\n * (from the namespace-fanout search); direct/temporal results do not. When a\n * `resolveNamespace` resolver is supplied, the missing namespace is derived from\n * the result path the same canonical way the contextual side derives it\n * (`result.namespace ?? resolveNamespace(result.path)`), so a direct/temporal hit\n * and a contextual hit for the same (namespace, path) collapse to ONE merge key\n * instead of being injected and access-counted twice. Preserves snippets: if a\n * higher-scoring result lacks a snippet, the existing snippet from a lower-scoring\n * source is retained.\n */\nfunction mergeAgentResults(\n allResults: ParallelSearchResult[],\n weights: Record<SearchAgentSource, number>,\n maxResults: number,\n resolveNamespace?: (path: string) => string,\n): QmdSearchResult[] {\n const merged = new Map<string, QmdSearchResult>();\n for (const result of allResults) {\n const namespace =\n result.namespace ?? (resolveNamespace && result.path ? resolveNamespace(result.path) : undefined);\n const key = `${namespace ?? \"\"}\\0${result.path || result.docid}`;\n const weightedScore = result.score * weights[result.agentSource];\n const existing = merged.get(key);\n if (!existing || weightedScore > existing.score) {\n merged.set(key, {\n docid: result.docid,\n path: result.path,\n namespace,\n // Preserve any snippet from the existing entry when the new one has none\n snippet: result.snippet || existing?.snippet || \"\",\n score: weightedScore,\n transport: \"hybrid\",\n });\n }\n }\n return [...merged.values()]\n .sort((a, b) => b.score - a.score)\n .slice(0, maxResults);\n}\n\n/**\n * For merged results that have an empty snippet, attempt to read the first\n * 200 characters of the file as a fallback preview. Bounded to MAX_SNIPPET_READS\n * to cap I/O when many specialized-agent results are present.\n */\nconst SNIPPET_PREVIEW_CHARS = 200;\nconst MAX_SNIPPET_READS = 8;\n\n/** Strip YAML frontmatter (---...---) and return the document body. */\nfunction stripFrontmatter(raw: string): string {\n if (!raw.startsWith(\"---\")) return raw;\n const end = raw.indexOf(\"\\n---\", 3);\n if (end === -1) return raw;\n // Skip the closing \"---\" line and any leading blank lines\n return raw.slice(end + 4).replace(/^\\n+/, \"\");\n}\n\nasync function populateEmptySnippets(results: QmdSearchResult[], memoryDir?: string): Promise<QmdSearchResult[]> {\n const needsSnippet = results.filter((r) => !r.snippet && r.path);\n if (needsSnippet.length === 0) return results;\n const canonicalRoot = memoryDir ? await realpath(memoryDir).catch(() => null) : null;\n\n const toRead = needsSnippet.slice(0, MAX_SNIPPET_READS);\n const snippetMap = new Map<string, string>();\n\n await Promise.all(\n toRead.map(async (r) => {\n try {\n const safePath = canonicalRoot && r.path\n ? await resolveContainedRegularFile(memoryDir!, r.path, canonicalRoot)\n : null;\n if (!safePath) return;\n const raw = await readFile(safePath, \"utf-8\");\n // Memory files start with YAML frontmatter — skip it so the snippet\n // contains actual memory content, not metadata fields.\n const body = stripFrontmatter(raw);\n const preview = body.slice(0, SNIPPET_PREVIEW_CHARS).replace(/\\s+/g, \" \").trim();\n if (preview) snippetMap.set(r.path, preview);\n } catch {\n // File unreadable — leave snippet empty\n }\n }),\n );\n\n if (snippetMap.size === 0) return results;\n return results.map((r) => (r.path && snippetMap.has(r.path) ? { ...r, snippet: snippetMap.get(r.path)! } : r));\n}\n\n/**\n * Merge pre-computed direct and temporal agent results with contextual results.\n *\n * This is the merge half of augmentWithDirectAndTemporal. Expose it separately so\n * callers that started agents concurrently with the contextual search (for true\n * parallel latency) can merge after all three complete, without re-running agents.\n *\n * Handles the same cases as augmentWithDirectAndTemporal:\n * - Returns contextual unchanged (no reweighting) when both agents return nothing\n * - Applies maxResults cap in all paths\n * - Populates snippets for results discovered only by specialized agents\n */\nexport async function mergeWithAgentResults(\n contextualResults: QmdSearchResult[],\n directResults: ParallelSearchResult[],\n temporalResults: ParallelSearchResult[],\n weights: Record<SearchAgentSource, number>,\n maxResults: number,\n memoryDir?: string,\n /** Optional namespace resolver. Direct/temporal results lack a namespace under\n * namespace fanout; deriving it from the path lets them collapse onto the same\n * merge key as the contextual result for the same (namespace, path). */\n resolveNamespace?: (path: string) => string,\n): Promise<QmdSearchResult[]> {\n if (directResults.length === 0 && temporalResults.length === 0) {\n return contextualResults.slice(0, maxResults);\n }\n\n const contextualTagged: ParallelSearchResult[] = contextualResults.map((r) => ({\n ...r,\n agentSource: \"contextual\" as const,\n }));\n\n const merged = mergeAgentResults(\n [...contextualTagged, ...directResults, ...temporalResults],\n weights,\n maxResults,\n resolveNamespace,\n );\n return populateEmptySnippets(merged, memoryDir);\n}\n\n// ─── Augmentation helper (used by tests; orchestrator uses inline logic) ─────\n//\n// NOTE: This function passes the same `memoryDir` to both direct and temporal\n// agents. The orchestrator's inline implementation differs: it passes a\n// namespace-specific storage dir to runDirectAgent and the shared root to\n// runTemporalAgent. augmentWithDirectAndTemporal is intentionally simpler\n// (single-dir assumption) and is exercised by unit tests where both agents\n// operate on the same temporary directory.\n\n/**\n * Augment a set of contextual (hybridSearch) results with direct and temporal\n * agent results, returning a merged, deduplicated list.\n *\n * **Test helper** — production recall uses the inline orchestrator path which\n * passes namespace-specific directories to each agent. This function uses a\n * simplified single-directory contract suitable for unit tests.\n *\n * Direct and temporal agents run in parallel, then all three are merged with\n * configurable weights.\n *\n * Contextual weight is always applied to `contextualResults` so scoring is\n * consistent regardless of whether direct/temporal agents return anything.\n *\n * Snippets: snippets from contextual results are preserved during merge. For\n * results discovered only by direct/temporal agents (no contextual match),\n * the first ~200 chars of the file are read as a fallback preview so downstream\n * formatters and rerankers have content to work with, not just a path.\n */\nexport async function augmentWithDirectAndTemporal(\n query: string,\n memoryDir: string,\n contextualResults: QmdSearchResult[],\n weights: Record<SearchAgentSource, number>,\n maxPerAgent: number,\n maxResults: number,\n /** Optional candidate set from query-aware prefilter (time/tag scoped). Agents' results are\n * filtered to this set when provided so recall stays within the operator-specified scope. */\n candidatePaths?: Set<string> | null,\n /** Optional namespace resolver so direct/temporal results collapse onto the same\n * (namespace, path) merge key as their contextual counterpart. */\n resolveNamespace?: (path: string) => string,\n): Promise<QmdSearchResult[]> {\n // maxPerAgent=0 is a hard disable: skip agents entirely and return contextual unchanged\n if (maxPerAgent === 0) return contextualResults;\n\n const knownEntityCount = (query.match(/\\b[A-Z][a-z]{1,}/g) ?? []).length;\n const runDirect = shouldRunAgent(\"direct\", query, knownEntityCount);\n const runTemporal = shouldRunAgent(\"temporal\", query, knownEntityCount);\n\n const startMs = Date.now();\n const [directResults, temporalResults] = await Promise.all([\n runDirect\n ? runDirectAgent(query, memoryDir, maxPerAgent).catch((err) => {\n log.debug(`augmentWithDirectAndTemporal: DirectAgent failed — ${err}`);\n return [] as ParallelSearchResult[];\n })\n : Promise.resolve([] as ParallelSearchResult[]),\n runTemporal\n // Pass candidatePaths so scope-filtering happens before the top-K cap inside runTemporalAgent,\n // preventing out-of-scope newer entries from displacing in-scope ones at the slice boundary.\n ? runTemporalAgent(query, memoryDir, maxPerAgent, candidatePaths).catch((err) => {\n log.debug(`augmentWithDirectAndTemporal: TemporalAgent failed — ${err}`);\n return [] as ParallelSearchResult[];\n })\n : Promise.resolve([] as ParallelSearchResult[]),\n ]);\n const durationMs = Date.now() - startMs;\n\n // Direct agent results (entities/) intentionally bypass candidatePaths.\n //\n // Why: candidatePaths is built from temporal + tag indexes, which never include\n // entity files (entities/*.md). Applying the filter here would silently drop ALL\n // direct-agent results for any scoped query, making the direct agent a no-op.\n // Entity files are identified by filename matching (query tokens vs. entity name),\n // so they are already query-scoped independently of the time/tag prefilter.\n // Temporal results are scoped inside runTemporalAgent() before the top-K cap.\n const scopedDirect = directResults;\n\n // Tag contextual results with their source so they can participate in weighted merge.\n // We do NOT cap contextual here: contextualResults comes from fetchQmdMemoryResultsWithArtifactTopUp\n // which intentionally over-fetches so downstream phases (graph expansion, lifecycle filtering,\n // reranking) can drop candidates. Capping before the merge would remove that headroom.\n const contextualTagged: ParallelSearchResult[] = contextualResults.map((r) => ({\n ...r,\n agentSource: \"contextual\" as const,\n }));\n\n log.debug(\n `augmentWithDirectAndTemporal: direct=${scopedDirect.length} temporal=${temporalResults.length} contextual=${contextualTagged.length} agentMs=${durationMs}ms`,\n );\n\n // If no specialized agents contributed anything (e.g. fresh setup without entities/ or temporal\n // index), skip reweighting entirely — applying the contextual weight penalty with zero benefit\n // would silently reduce every result score by ~30% compared to the non-augmented path.\n if (scopedDirect.length === 0 && temporalResults.length === 0) {\n return (contextualResults as QmdSearchResult[]).slice(0, maxResults);\n }\n\n // Merge all three; contextual first so its snippets are preserved when a higher-scoring\n // direct/temporal result overrides the same path (see mergeAgentResults snippet logic).\n // Note: maxPerAgent=0 is handled by the early-return guard above; we never reach here with 0.\n const merged = mergeAgentResults(\n [...contextualTagged, ...scopedDirect, ...temporalResults],\n weights,\n maxResults,\n resolveNamespace,\n );\n\n // Populate snippets for results discovered only by direct/temporal (no contextual preview)\n return populateEmptySnippets(merged, memoryDir);\n}\n\n// ─── Orchestrator ─────────────────────────────────────────────────────────────\n\nexport interface ParallelRetrievalOptions {\n collection?: string;\n maxResults?: number;\n signal?: AbortSignal;\n /** If true, skip the contextual agent (hybridSearch is already running externally). */\n skipContextual?: boolean;\n /** Max results per agent (capped before merge). */\n maxResultsPerAgent?: number;\n /** Override default agent weights. Falls back to PARALLEL_AGENT_WEIGHTS when absent. */\n agentWeights?: Record<SearchAgentSource, number>;\n /** Optional namespace resolver so direct/temporal results collapse onto the same\n * (namespace, path) merge key as the contextual result for the same path. */\n resolveNamespace?: (path: string) => string;\n}\n\n/**\n * Run parallel specialized retrieval agents and merge results.\n *\n * When `skipContextual` is true, only the direct and temporal agents run.\n * This is the intended usage inside the orchestrator, where hybridSearch\n * already runs as the primary search — we augment with the cheap extra agents.\n *\n * Total latency = max(agent_latencies), not sum.\n * Agent errors are isolated — others still return results.\n */\nexport async function parallelRetrieval(\n query: string,\n qmd: QmdClient,\n memoryDir: string,\n options: ParallelRetrievalOptions = {},\n): Promise<QmdSearchResult[]> {\n const maxResults = options.maxResults ?? 20;\n const maxPerAgent = options.maxResultsPerAgent ?? maxResults;\n const startMs = Date.now();\n\n // Rough entity detection: count proper-noun-like tokens in query\n const knownEntityCount = (query.match(/\\b[A-Z][a-z]{1,}/g) ?? []).length;\n\n const runDirect = shouldRunAgent(\"direct\", query, knownEntityCount);\n const runTemporal = shouldRunAgent(\"temporal\", query, knownEntityCount);\n const runContextual = !options.skipContextual && shouldRunAgent(\"contextual\", query, knownEntityCount);\n\n const [directResults, temporalResults, contextualResults] = await Promise.all([\n runDirect\n ? runDirectAgent(query, memoryDir, maxPerAgent).catch((err) => {\n log.debug(`parallelRetrieval: DirectAgent failed — ${err}`);\n return [] as ParallelSearchResult[];\n })\n : Promise.resolve([] as ParallelSearchResult[]),\n runTemporal\n ? runTemporalAgent(query, memoryDir, maxPerAgent).catch((err) => {\n log.debug(`parallelRetrieval: TemporalAgent failed — ${err}`);\n return [] as ParallelSearchResult[];\n })\n : Promise.resolve([] as ParallelSearchResult[]),\n runContextual\n ? runContextualAgent(query, qmd, options.collection, maxPerAgent, options.signal).catch((err) => {\n if (isAbortError(err)) throw err;\n log.debug(`parallelRetrieval: ContextualAgent failed — ${err}`);\n return [] as ParallelSearchResult[];\n })\n : Promise.resolve([] as ParallelSearchResult[]),\n ]);\n\n const durationMs = Date.now() - startMs;\n log.debug(\n `parallelRetrieval: direct=${directResults.length} temporal=${temporalResults.length} contextual=${contextualResults.length} durationMs=${durationMs}ms`,\n );\n\n // Contextual results go first so their snippets are preserved when a higher-scoring\n // direct/temporal result overrides the same path in mergeAgentResults.\n const merged = mergeAgentResults(\n [...contextualResults, ...directResults, ...temporalResults],\n options.agentWeights ?? PARALLEL_AGENT_WEIGHTS,\n maxResults,\n options.resolveNamespace,\n );\n return populateEmptySnippets(merged, memoryDir);\n}\n"],"mappings":"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","names":[]}
@@ -15,7 +15,7 @@ import {
15
15
  import {
16
16
  listJsonFiles,
17
17
  readJsonFile
18
- } from "./chunk-B6O2YLUR.js";
18
+ } from "./chunk-2Z5DIDQD.js";
19
19
 
20
20
  // src/causal-trajectory.ts
21
21
  import path from "path";
@@ -400,4 +400,4 @@ export {
400
400
  getCausalTrajectoryStoreStatus,
401
401
  searchCausalTrajectories
402
402
  };
403
- //# sourceMappingURL=chunk-S2I7DL5Q.js.map
403
+ //# sourceMappingURL=chunk-C2RW36YR.js.map