@remnic/core 9.69.46 → 9.69.47

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 (589) hide show
  1. package/dist/access-admin-ops-surface.d.ts +15 -14
  2. package/dist/access-admin-ops-surface.js +42 -41
  3. package/dist/access-authorization-probe.d.ts +15 -14
  4. package/dist/access-authorization-probe.js +43 -42
  5. package/dist/access-boundary.d.ts +15 -14
  6. package/dist/access-boundary.js +42 -41
  7. package/dist/access-cli.js +119 -114
  8. package/dist/access-cli.js.map +1 -1
  9. package/dist/access-coding-context-resolution.d.ts +1 -1
  10. package/dist/access-extraction-force-flush.d.ts +15 -14
  11. package/dist/access-extraction-force-flush.js +42 -41
  12. package/dist/access-health-types.d.ts +1 -1
  13. package/dist/access-http-briefing.d.ts +15 -14
  14. package/dist/access-http-briefing.js +43 -42
  15. package/dist/access-http-lcm-compaction.d.ts +15 -14
  16. package/dist/access-http-lifecycle-flush.d.ts +15 -14
  17. package/dist/access-http-offline-stream.d.ts +15 -14
  18. package/dist/access-http-query.d.ts +2 -2
  19. package/dist/access-http-query.js +44 -43
  20. package/dist/access-http.d.ts +16 -15
  21. package/dist/access-http.js +67 -63
  22. package/dist/access-identity-continuity-surface.d.ts +11 -11
  23. package/dist/access-identity-continuity-surface.js +42 -41
  24. package/dist/access-lcm-surface.d.ts +15 -14
  25. package/dist/access-lcm-surface.js +42 -41
  26. package/dist/access-mcp-output-schemas.js +1 -1
  27. package/dist/access-mcp-shared-context-tools.d.ts +15 -14
  28. package/dist/access-mcp.d.ts +15 -14
  29. package/dist/access-mcp.js +55 -52
  30. package/dist/access-memory-search-fanout.d.ts +2 -2
  31. package/dist/{access-namespace-preflight-DDnsN22V.d.ts → access-namespace-preflight-CetF9ziA.d.ts} +1 -1
  32. package/dist/access-namespace-preflight.d.ts +3 -3
  33. package/dist/access-namespace-preflight.js +42 -41
  34. package/dist/access-observe-transcript.d.ts +11 -11
  35. package/dist/access-observe-write-category.d.ts +3 -3
  36. package/dist/access-observe-write-category.js +4 -4
  37. package/dist/access-observe-write-surface.d.ts +15 -14
  38. package/dist/access-observe-write-surface.js +42 -41
  39. package/dist/access-offline-manifest.d.ts +11 -11
  40. package/dist/access-offline-manifest.js +2 -2
  41. package/dist/access-operations-batch.js +44 -43
  42. package/dist/access-operations.d.ts +16 -15
  43. package/dist/access-operations.js +51 -49
  44. package/dist/access-recall-concurrency.d.ts +15 -14
  45. package/dist/access-recall-concurrency.js +42 -41
  46. package/dist/access-recall-response.d.ts +15 -14
  47. package/dist/access-recall-response.js +42 -41
  48. package/dist/access-recall-surface.d.ts +15 -14
  49. package/dist/access-recall-surface.js +42 -41
  50. package/dist/access-schema.d.ts +1 -1
  51. package/dist/access-schema.js +3 -3
  52. package/dist/{access-service-DGynYlbE.d.ts → access-service-BXYrJ3pO.d.ts} +13 -10
  53. package/dist/access-service-helpers.d.ts +15 -14
  54. package/dist/access-service.d.ts +15 -14
  55. package/dist/access-service.js +42 -41
  56. package/dist/access-surface-catalog.d.ts +15 -14
  57. package/dist/access-surface-catalog.js +50 -43
  58. package/dist/access-surface-catalog.js.map +1 -1
  59. package/dist/access-wearables-meetings-surface.d.ts +4 -4
  60. package/dist/action-confidence.d.ts +1 -1
  61. package/dist/active-memory-bridge.d.ts +1 -1
  62. package/dist/active-recall.d.ts +1 -1
  63. package/dist/active-recall.js +3 -2
  64. package/dist/active-recall.js.map +1 -1
  65. package/dist/activity/digest.d.ts +1 -1
  66. package/dist/adapters/index.js +4 -4
  67. package/dist/adapters/registry.js +2 -2
  68. package/dist/ambient-provenance.d.ts +1 -1
  69. package/dist/artifact-search.d.ts +1 -1
  70. package/dist/background-generation.d.ts +1 -1
  71. package/dist/behavior-learner.d.ts +1 -1
  72. package/dist/behavior-signals.d.ts +1 -1
  73. package/dist/bootstrap.d.ts +11 -11
  74. package/dist/briefing-window.d.ts +2 -2
  75. package/dist/briefing.d.ts +2 -2
  76. package/dist/briefing.js +13 -13
  77. package/dist/buffer-surprise-report.d.ts +1 -1
  78. package/dist/buffer-turn-helpers.d.ts +1 -1
  79. package/dist/buffer.d.ts +2 -2
  80. package/dist/buffer.js +5 -5
  81. package/dist/bulk-import/index.d.ts +3 -3
  82. package/dist/calibration.d.ts +1 -1
  83. package/dist/capabilities.d.ts +1 -1
  84. package/dist/{catalog-Dl2hYqpS.d.ts → catalog-Bns9zpl3.d.ts} +1 -1
  85. package/dist/causal-behavior.d.ts +1 -1
  86. package/dist/causal-consolidation.d.ts +1 -1
  87. package/dist/causal-consolidation.js +14 -14
  88. package/dist/causal-trajectory-graph.d.ts +1 -1
  89. package/dist/{chunk-D5DTZBTV.js → chunk-2JFSQWFH.js} +6 -6
  90. package/dist/chunk-2JFSQWFH.js.map +1 -0
  91. package/dist/{chunk-5EHPB6RL.js → chunk-2QX65IEC.js} +2 -2
  92. package/dist/{chunk-F5V7KRQS.js → chunk-2WMXZYMS.js} +2 -2
  93. package/dist/{chunk-ORQ7AZMU.js → chunk-3RKVSECD.js} +8 -8
  94. package/dist/{chunk-UGGOQKO6.js → chunk-44BILQ7U.js} +93 -51
  95. package/dist/chunk-44BILQ7U.js.map +1 -0
  96. package/dist/{chunk-3NYM6JA4.js → chunk-4LPIVP77.js} +2 -2
  97. package/dist/{chunk-PW4HTWXL.js → chunk-55XWRL6F.js} +2 -2
  98. package/dist/{chunk-GGY7WKMB.js → chunk-5KBI2MOC.js} +1 -1
  99. package/dist/{chunk-IXMWTNNY.js → chunk-6A6HSXWV.js} +2 -2
  100. package/dist/{chunk-4HTQ76O4.js → chunk-7SJCSDQ3.js} +2 -2
  101. package/dist/{chunk-U4ESGVZ2.js → chunk-7YUX52XZ.js} +3 -3
  102. package/dist/{chunk-HXDXR2FH.js → chunk-AS4YKT75.js} +40 -30
  103. package/dist/chunk-AS4YKT75.js.map +1 -0
  104. package/dist/{chunk-EUP4AXIW.js → chunk-B6VDWDFN.js} +2 -2
  105. package/dist/{chunk-AN2O4KZY.js → chunk-BMENHAJL.js} +2 -2
  106. package/dist/{chunk-5ZXGH2ZL.js → chunk-BXOPUJ3W.js} +2 -2
  107. package/dist/{chunk-TE6B2UU6.js → chunk-CD7VTZIG.js} +2 -2
  108. package/dist/{chunk-EC5SVM6H.js → chunk-DE4ZGH2N.js} +2 -2
  109. package/dist/{chunk-YFVIA5A6.js → chunk-DRLZB3CN.js} +2 -2
  110. package/dist/{chunk-SRRZZHA5.js → chunk-EGOWY342.js} +2 -2
  111. package/dist/chunk-EIB4FJVR.js +46 -0
  112. package/dist/chunk-EIB4FJVR.js.map +1 -0
  113. package/dist/{chunk-W44T2KHG.js → chunk-EWBDJQ5Y.js} +3 -3
  114. package/dist/{chunk-JMBTNVMW.js → chunk-FGRJJBFO.js} +2 -2
  115. package/dist/{chunk-F3TURDFG.js → chunk-FPB5LQWW.js} +4 -1
  116. package/dist/{chunk-F3TURDFG.js.map → chunk-FPB5LQWW.js.map} +1 -1
  117. package/dist/{chunk-7BNB7KHB.js → chunk-G2SJRFGP.js} +7 -7
  118. package/dist/{chunk-WGZHSQDV.js → chunk-G2XZFGYN.js} +4 -4
  119. package/dist/{chunk-CFIHVWYZ.js → chunk-GGROFIYX.js} +2 -2
  120. package/dist/chunk-GXJSLNYO.js +74 -0
  121. package/dist/chunk-GXJSLNYO.js.map +1 -0
  122. package/dist/{chunk-XLZZLUWL.js → chunk-HG74GEVY.js} +2 -2
  123. package/dist/chunk-HMDYSGY6.js +54 -0
  124. package/dist/chunk-HMDYSGY6.js.map +1 -0
  125. package/dist/{chunk-WUUGE7QC.js → chunk-HS75MCQF.js} +4 -4
  126. package/dist/{chunk-DO6R3LIE.js → chunk-I6IJDTRP.js} +2 -2
  127. package/dist/{chunk-TZ44E732.js → chunk-IO7K7GES.js} +2 -2
  128. package/dist/{chunk-AYP2FZFA.js → chunk-JUOJGZPV.js} +2 -2
  129. package/dist/{chunk-P7S7BVBJ.js → chunk-JXLEQIJ7.js} +2 -2
  130. package/dist/{chunk-4XTSKGLX.js → chunk-JYXLW22X.js} +3 -3
  131. package/dist/{chunk-IPLYGWQF.js → chunk-KQAFEZQX.js} +5 -5
  132. package/dist/chunk-LI4APB6M.js +218 -0
  133. package/dist/chunk-LI4APB6M.js.map +1 -0
  134. package/dist/{chunk-VGRVJ6Z6.js → chunk-LIAM7U2J.js} +2 -2
  135. package/dist/{chunk-S3SND7SO.js → chunk-LIDJWAQV.js} +2 -2
  136. package/dist/{chunk-T5NI5K46.js → chunk-LYMJ36UI.js} +2 -2
  137. package/dist/{chunk-KF57IQFX.js → chunk-MMQVWKFY.js} +19 -15
  138. package/dist/chunk-MMQVWKFY.js.map +1 -0
  139. package/dist/{chunk-QUFJ3NJE.js → chunk-MNG536IS.js} +20 -20
  140. package/dist/{chunk-SW42MMAH.js → chunk-MQT3WP3F.js} +2 -2
  141. package/dist/{chunk-UEJY6ZTQ.js → chunk-NE45P3OF.js} +2 -2
  142. package/dist/{chunk-N46SNYMC.js → chunk-NMA7RQPR.js} +2 -2
  143. package/dist/{chunk-47C6DF43.js → chunk-OS4JVTHR.js} +3 -3
  144. package/dist/{chunk-W6YDAIVB.js → chunk-OSTXIFZW.js} +13 -2
  145. package/dist/chunk-OSTXIFZW.js.map +1 -0
  146. package/dist/chunk-P3YNEMYY.js +212 -0
  147. package/dist/chunk-P3YNEMYY.js.map +1 -0
  148. package/dist/{chunk-JOP7W24J.js → chunk-PA67GXYJ.js} +8 -8
  149. package/dist/{chunk-FSH6KRKO.js → chunk-PPJLJD2D.js} +2 -2
  150. package/dist/{chunk-AG6PANBG.js → chunk-PXJ6HE2W.js} +11 -11
  151. package/dist/{chunk-DDBLZJRV.js → chunk-QB4VXCFN.js} +2 -2
  152. package/dist/{chunk-L63M2PE4.js → chunk-QGAKUOKU.js} +2 -2
  153. package/dist/{chunk-AYZHHMTK.js → chunk-QKFYJVDG.js} +2 -2
  154. package/dist/{chunk-YUQPUK6H.js → chunk-QLCMOHRE.js} +2 -2
  155. package/dist/{chunk-Q4AUIFUA.js → chunk-QMWKENNK.js} +4 -4
  156. package/dist/{chunk-GYYLZOSO.js → chunk-R4JTUTU6.js} +13 -6
  157. package/dist/chunk-R4JTUTU6.js.map +1 -0
  158. package/dist/{chunk-66QOUYNS.js → chunk-ROBGBT3D.js} +173 -56
  159. package/dist/chunk-ROBGBT3D.js.map +1 -0
  160. package/dist/{chunk-TNQR7N52.js → chunk-S3YM4SZQ.js} +2 -1
  161. package/dist/chunk-S3YM4SZQ.js.map +1 -0
  162. package/dist/{chunk-RW4QNB4J.js → chunk-S45INSV3.js} +3 -1
  163. package/dist/{chunk-RW4QNB4J.js.map → chunk-S45INSV3.js.map} +1 -1
  164. package/dist/{chunk-FMEP2RB5.js → chunk-SJ7ZNUXB.js} +2 -2
  165. package/dist/{chunk-EEHQY7ER.js → chunk-SK6HEQTW.js} +2 -2
  166. package/dist/{chunk-PGAB2V53.js → chunk-SMBWBEE7.js} +2 -2
  167. package/dist/{chunk-62NYUFNH.js → chunk-SS33RR4F.js} +8 -8
  168. package/dist/{chunk-4ECS33D4.js → chunk-T3T5HTZZ.js} +2 -2
  169. package/dist/{chunk-KG2OOAFF.js → chunk-TQSCR5DU.js} +6 -6
  170. package/dist/{chunk-OV7GJ4KW.js → chunk-V2XNMIAM.js} +2 -2
  171. package/dist/{chunk-AS2NOPDM.js → chunk-V7IONNTJ.js} +2 -2
  172. package/dist/{chunk-HYWPUYLO.js → chunk-VV5GCNKG.js} +2 -2
  173. package/dist/{chunk-Y3XHIWVP.js → chunk-WL3PGPGU.js} +2 -2
  174. package/dist/{chunk-3UQIS2GC.js → chunk-WNMVUWI7.js} +2 -2
  175. package/dist/{chunk-66YUOI53.js → chunk-WQW6KPVC.js} +1 -1
  176. package/dist/chunk-WQW6KPVC.js.map +1 -0
  177. package/dist/{chunk-2AV75BJW.js → chunk-WVI43D54.js} +24 -1
  178. package/dist/chunk-WVI43D54.js.map +1 -0
  179. package/dist/{chunk-WOBMSMUK.js → chunk-WYU66IVZ.js} +3 -3
  180. package/dist/{chunk-A7GQBJP5.js → chunk-X2NFFBTO.js} +4 -4
  181. package/dist/{chunk-CWMMKFO7.js → chunk-XEHLYA5Z.js} +3 -3
  182. package/dist/{chunk-JIWZVOQM.js → chunk-XKHRNAK7.js} +2 -2
  183. package/dist/{chunk-VW5TGNJN.js → chunk-XXLH6KFO.js} +2 -2
  184. package/dist/{chunk-J5OXWG66.js → chunk-XZUHXKM3.js} +2 -2
  185. package/dist/{chunk-K4KE5MYE.js → chunk-Y5VT7BIT.js} +2 -2
  186. package/dist/{chunk-UOREPQ3C.js → chunk-YOSLKZLZ.js} +2 -2
  187. package/dist/{chunk-S7KDHFF2.js → chunk-YXWMZAAN.js} +2 -2
  188. package/dist/{chunk-EAZ3YZKN.js → chunk-ZEIJQ4I3.js} +2 -2
  189. package/dist/{cli-Cik3H7q1.d.ts → cli-B8YyIrPR.d.ts} +5 -5
  190. package/dist/cli.d.ts +17 -16
  191. package/dist/cli.js +89 -84
  192. package/dist/coding/export-okf-codegraph.d.ts +1 -1
  193. package/dist/coding/export-okf-codegraph.js +12 -12
  194. package/dist/coding/pre-action-gate.d.ts +1 -1
  195. package/dist/compounding/engine.d.ts +2 -2
  196. package/dist/compounding/engine.js +13 -13
  197. package/dist/compounding/preference-consolidator.d.ts +1 -1
  198. package/dist/compression-optimizer.d.ts +1 -1
  199. package/dist/config.d.ts +1 -1
  200. package/dist/config.js +3 -2
  201. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  202. package/dist/connectors/codex-materialize-runner.js +13 -13
  203. package/dist/connectors/codex-materialize.d.ts +1 -1
  204. package/dist/connectors/index.d.ts +1 -1
  205. package/dist/connectors/index.js +13 -13
  206. package/dist/consolidation-provenance-check.d.ts +2 -2
  207. package/dist/consolidation-undo.d.ts +2 -2
  208. package/dist/contradiction/index.d.ts +4 -4
  209. package/dist/converge-config.d.ts +1 -1
  210. package/dist/convergence-refresh.d.ts +2 -2
  211. package/dist/convergence-refresh.js +15 -15
  212. package/dist/conversation-index/backend.d.ts +1 -1
  213. package/dist/conversation-index/chunker.d.ts +1 -1
  214. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  215. package/dist/conversation-index/indexer.d.ts +1 -1
  216. package/dist/conversation-index/search.d.ts +1 -1
  217. package/dist/corpus-watermark.d.ts +1 -1
  218. package/dist/corpus-watermark.js +15 -15
  219. package/dist/cross-lingual-recall.d.ts +1 -1
  220. package/dist/day-summary.d.ts +1 -1
  221. package/dist/deep-recall-http-glue.d.ts +15 -14
  222. package/dist/deep-recall-http-glue.js +4 -4
  223. package/dist/deep-recall-mcp-tools.d.ts +15 -14
  224. package/dist/deep-recall-policy-llm.d.ts +2 -2
  225. package/dist/deep-recall-seeds.d.ts +1 -1
  226. package/dist/deep-recall.js +2 -2
  227. package/dist/delinearize.d.ts +1 -1
  228. package/dist/dependency-propagation-config.d.ts +1 -1
  229. package/dist/{dependency-propagation-delivery-BXaUoVUf.d.ts → dependency-propagation-delivery-B-LvcDaq.d.ts} +1 -1
  230. package/dist/direct-answer-wiring.d.ts +1 -1
  231. package/dist/direct-answer.d.ts +1 -1
  232. package/dist/embedding-fallback.d.ts +1 -1
  233. package/dist/enrichment/index.d.ts +1 -1
  234. package/dist/entity-origin-fields.d.ts +1 -1
  235. package/dist/entity-retrieval.d.ts +2 -2
  236. package/dist/entity-retrieval.js +13 -13
  237. package/dist/entity-schema.d.ts +1 -1
  238. package/dist/episodic-context.d.ts +1 -1
  239. package/dist/eval-trajectory-contracts.d.ts +1 -1
  240. package/dist/eval-trajectory-store.d.ts +1 -1
  241. package/dist/eval-trajectory.d.ts +1 -1
  242. package/dist/explicit-capture.d.ts +11 -11
  243. package/dist/external-wiki-access.d.ts +15 -14
  244. package/dist/external-wiki-access.js +43 -42
  245. package/dist/external-wiki-collection-registration.d.ts +1 -1
  246. package/dist/external-wiki-collection.d.ts +1 -1
  247. package/dist/external-wiki-mcp-tools.d.ts +15 -14
  248. package/dist/extraction-error-classification.d.ts +1 -1
  249. package/dist/extraction-evidence-class.d.ts +142 -0
  250. package/dist/extraction-evidence-class.js +113 -0
  251. package/dist/extraction-evidence-class.js.map +1 -0
  252. package/dist/extraction-faithfulness.d.ts +2 -2
  253. package/dist/extraction-judge-telemetry.d.ts +2 -2
  254. package/dist/extraction-judge-training.d.ts +2 -2
  255. package/dist/extraction-judge.d.ts +2 -2
  256. package/dist/extraction-liveness.d.ts +1 -1
  257. package/dist/extraction-normalization.d.ts +1 -1
  258. package/dist/extraction-prompt.d.ts +1 -1
  259. package/dist/extraction-source-grounding-rules.d.ts +1 -1
  260. package/dist/extraction-source-grounding.d.ts +1 -1
  261. package/dist/extraction-source-grounding.js +2 -2
  262. package/dist/extraction-span-config.d.ts +1 -1
  263. package/dist/extraction-span-materialize.d.ts +1 -1
  264. package/dist/extraction-span-wire.d.ts +1 -1
  265. package/dist/extraction.d.ts +2 -2
  266. package/dist/extraction.js +21 -21
  267. package/dist/fallback-llm-codex-subscription.d.ts +1 -1
  268. package/dist/fallback-llm.d.ts +1 -1
  269. package/dist/{generic-recall-paths-BkVVEoeO.d.ts → generic-recall-paths-Bfc7zigS.d.ts} +1 -1
  270. package/dist/graph-append-error.d.ts +1 -1
  271. package/dist/graph-dashboard-diff.d.ts +1 -1
  272. package/dist/graph-dashboard-key.d.ts +1 -1
  273. package/dist/graph-dashboard-parser.d.ts +1 -1
  274. package/dist/graph-edge-reinforcement.d.ts +1 -1
  275. package/dist/graph-jsonl.d.ts +1 -1
  276. package/dist/graph-path-reconstruction.d.ts +1 -1
  277. package/dist/graph-path-scoring.d.ts +1 -1
  278. package/dist/graph-snapshot.d.ts +1 -1
  279. package/dist/graph.d.ts +1 -1
  280. package/dist/harmonic-retrieval.js +1 -1
  281. package/dist/importance.d.ts +1 -1
  282. package/dist/importers/index.d.ts +1 -1
  283. package/dist/importers/test-utils.d.ts +1 -1
  284. package/dist/in-flight-reads.d.ts +1 -1
  285. package/dist/{index-Zb6SUV4R.d.ts → index-C7IA1DxB.d.ts} +3 -3
  286. package/dist/index.d.ts +121 -30
  287. package/dist/index.js +179 -133
  288. package/dist/intent.d.ts +1 -1
  289. package/dist/lcm/engine.d.ts +1 -1
  290. package/dist/lcm/engine.js +2 -2
  291. package/dist/lcm/index.d.ts +1 -1
  292. package/dist/lcm/index.js +7 -7
  293. package/dist/lcm/tools.d.ts +1 -1
  294. package/dist/lifecycle.d.ts +1 -1
  295. package/dist/live-connectors-runner.d.ts +1 -1
  296. package/dist/{local-llm-DdrhmecM.d.ts → local-llm-DH4tWtck.d.ts} +1 -1
  297. package/dist/local-llm-helpers.d.ts +2 -2
  298. package/dist/local-llm.d.ts +2 -2
  299. package/dist/local-llm.js +2 -2
  300. package/dist/local-model-endpoint.d.ts +1 -1
  301. package/dist/location/index.d.ts +5 -5
  302. package/dist/location/index.js +15 -15
  303. package/dist/maintenance/memory-governance.d.ts +1 -1
  304. package/dist/maintenance/memory-governance.js +13 -13
  305. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -2
  306. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +13 -13
  307. package/dist/maintenance/rebuild-memory-projection.d.ts +2 -2
  308. package/dist/maintenance/rebuild-memory-projection.js +14 -14
  309. package/dist/{maintenance-Du_VRvVg.d.ts → maintenance-n6yeTQhR.d.ts} +4 -4
  310. package/dist/mcp-memory-inspector-app.d.ts +15 -14
  311. package/dist/mcp-read-only-tools.js +1 -1
  312. package/dist/memory-action-policy.d.ts +1 -1
  313. package/dist/memory-browse-http-glue.d.ts +170 -0
  314. package/dist/memory-browse-http-glue.js +9 -0
  315. package/dist/memory-browse-http-glue.js.map +1 -0
  316. package/dist/memory-browse-mcp-tools.d.ts +160 -0
  317. package/dist/memory-browse-mcp-tools.js +8 -0
  318. package/dist/memory-browse-mcp-tools.js.map +1 -0
  319. package/dist/memory-browse-operations.d.ts +2 -0
  320. package/dist/memory-browse-operations.js +246 -0
  321. package/dist/memory-browse-operations.js.map +1 -0
  322. package/dist/memory-browse.d.ts +113 -0
  323. package/dist/memory-browse.js +49 -0
  324. package/dist/memory-browse.js.map +1 -0
  325. package/dist/memory-cache.d.ts +1 -1
  326. package/dist/memory-controller.d.ts +1 -1
  327. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  328. package/dist/memory-projection-store.d.ts +1 -1
  329. package/dist/memory-provenance.d.ts +1 -1
  330. package/dist/memory-snapshot.d.ts +1 -1
  331. package/dist/memory-subject-cli.d.ts +15 -14
  332. package/dist/memory-subject.d.ts +15 -14
  333. package/dist/memory-worth-outcomes.d.ts +2 -2
  334. package/dist/models-json.d.ts +1 -1
  335. package/dist/namespaces/migrate.d.ts +3 -3
  336. package/dist/namespaces/migrate.js +14 -14
  337. package/dist/namespaces/principal.d.ts +1 -1
  338. package/dist/namespaces/search.d.ts +1 -1
  339. package/dist/namespaces/search.js +6 -6
  340. package/dist/namespaces/storage.d.ts +3 -3
  341. package/dist/namespaces/storage.js +13 -13
  342. package/dist/native-knowledge.d.ts +1 -1
  343. package/dist/offline-sync-impression-drain.d.ts +1 -1
  344. package/dist/operator-doctor-corpus.d.ts +1 -1
  345. package/dist/operator-doctor-corpus.js +16 -16
  346. package/dist/operator-doctor-replica.d.ts +1 -1
  347. package/dist/operator-toolkit.d.ts +3 -3
  348. package/dist/operator-toolkit.js +23 -22
  349. package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -2
  350. package/dist/orchestration/maintenance.d.ts +4 -4
  351. package/dist/orchestration/maintenance.js +23 -23
  352. package/dist/{orchestrator-D9U3Zgjp.d.ts → orchestrator-Cirjo3ZB.d.ts} +10 -10
  353. package/dist/orchestrator.d.ts +11 -11
  354. package/dist/orchestrator.js +121 -116
  355. package/dist/patterns-cli.d.ts +1 -1
  356. package/dist/{pipeline-4lqKJZ_0.d.ts → pipeline-DK79FrgH.d.ts} +1 -1
  357. package/dist/policy-runtime.d.ts +1 -1
  358. package/dist/proactive-contention.d.ts +2 -2
  359. package/dist/provenance.d.ts +77 -2
  360. package/dist/provenance.js +7 -3
  361. package/dist/{public-http-AabioFLh.d.ts → public-http-VB85y0ZH.d.ts} +1 -1
  362. package/dist/{qmd-DnoWaXKb.d.ts → qmd-BT0ErlRS.d.ts} +1 -1
  363. package/dist/qmd-preflight.d.ts +2 -2
  364. package/dist/qmd-recall-cache.d.ts +1 -1
  365. package/dist/qmd.d.ts +2 -2
  366. package/dist/qmd.js +4 -4
  367. package/dist/recall-concurrency-config.d.ts +1 -1
  368. package/dist/recall-disclosure-escalation.d.ts +1 -1
  369. package/dist/recall-explain-renderer.d.ts +1 -1
  370. package/dist/recall-explain-renderer.js +3 -3
  371. package/dist/recall-memory-map.d.ts +1 -1
  372. package/dist/recall-navigate-access.d.ts +1 -1
  373. package/dist/recall-navigate-access.js +2 -2
  374. package/dist/recall-navigate-disclosure.d.ts +1 -1
  375. package/dist/recall-navigate-disclosure.js +2 -2
  376. package/dist/recall-navigate.d.ts +1 -1
  377. package/dist/recall-navigate.js +2 -2
  378. package/dist/recall-navigation-http-glue.d.ts +15 -14
  379. package/dist/recall-navigation-mcp-tools.d.ts +15 -14
  380. package/dist/recall-navigation-operations.js +43 -42
  381. package/dist/recall-navigation-renderer.d.ts +1 -1
  382. package/dist/recall-navigation.d.ts +1 -1
  383. package/dist/recall-navigation.js +42 -41
  384. package/dist/recall-planner-llm.d.ts +1 -1
  385. package/dist/recall-state-view-admission.d.ts +2 -2
  386. package/dist/recall-state-view-admission.js +5 -5
  387. package/dist/recall-state-view-anchors.d.ts +1 -1
  388. package/dist/recall-state.d.ts +1 -1
  389. package/dist/recall-tag-filter.d.ts +1 -1
  390. package/dist/recall-timings.d.ts +1 -1
  391. package/dist/recall-xray-cli.d.ts +1 -1
  392. package/dist/recall-xray-cli.js +4 -4
  393. package/dist/recall-xray-renderer.d.ts +1 -1
  394. package/dist/recall-xray-renderer.js +3 -3
  395. package/dist/recall-xray.d.ts +1 -1
  396. package/dist/recall-xray.js +2 -2
  397. package/dist/reconcile/cursor.d.ts +1 -1
  398. package/dist/reconcile/manifest.d.ts +4 -1
  399. package/dist/reconcile/manifest.js +1 -1
  400. package/dist/reconcile/plan.d.ts +1 -1
  401. package/dist/replay/normalizers/chatgpt.d.ts +1 -1
  402. package/dist/replay/normalizers/claude.d.ts +1 -1
  403. package/dist/replay/normalizers/openclaw.d.ts +1 -1
  404. package/dist/replay/normalizers/shared.d.ts +1 -1
  405. package/dist/replay/runner.d.ts +1 -1
  406. package/dist/replay/types.d.ts +1 -1
  407. package/dist/replica-divergence.d.ts +1 -1
  408. package/dist/replica-peers-config.d.ts +1 -1
  409. package/dist/resolve-auth-token.d.ts +1 -1
  410. package/dist/resume-bundles.js +4 -3
  411. package/dist/retrieval-agents.d.ts +2 -2
  412. package/dist/retrieval-tiers.d.ts +1 -1
  413. package/dist/routing/engine.d.ts +1 -1
  414. package/dist/routing/store.d.ts +1 -1
  415. package/dist/salvage-envelope.d.ts +1 -1
  416. package/dist/{scope-profiles-crazXegZ.d.ts → scope-profiles-BgPQx9iE.d.ts} +1 -1
  417. package/dist/search/embed-helper.d.ts +1 -1
  418. package/dist/search/factory.d.ts +1 -1
  419. package/dist/search/factory.js +5 -5
  420. package/dist/search/index.d.ts +1 -1
  421. package/dist/search/index.js +9 -9
  422. package/dist/search/lancedb-backend.d.ts +1 -1
  423. package/dist/search/meilisearch-backend.d.ts +1 -1
  424. package/dist/search/noop-backend.d.ts +1 -1
  425. package/dist/search/orama-backend.d.ts +1 -1
  426. package/dist/search/port.d.ts +1 -1
  427. package/dist/search/remote-backend.d.ts +1 -1
  428. package/dist/{semantic-consolidation-B09JI9WM.d.ts → semantic-consolidation-BrAWKVcm.d.ts} +1 -1
  429. package/dist/semantic-consolidation.d.ts +2 -2
  430. package/dist/semantic-consolidation.js +14 -14
  431. package/dist/semantic-rule-promotion.js +13 -13
  432. package/dist/semantic-rule-verifier.d.ts +1 -1
  433. package/dist/semantic-rule-verifier.js +13 -13
  434. package/dist/{service-ByjbCuj7.d.ts → service-CqHOTg87.d.ts} +2 -2
  435. package/dist/session-observer-bands.d.ts +1 -1
  436. package/dist/session-observer-state.d.ts +1 -1
  437. package/dist/shared-context/manager.d.ts +1 -1
  438. package/dist/signal.d.ts +1 -1
  439. package/dist/source-agent-qualifier.d.ts +1 -1
  440. package/dist/source-agent-qualifier.js +17 -17
  441. package/dist/standing-memory-block.d.ts +77 -0
  442. package/dist/standing-memory-block.js +40 -0
  443. package/dist/standing-memory-block.js.map +1 -0
  444. package/dist/standup/build.js +13 -13
  445. package/dist/{storage-CbdF077z.d.ts → storage-mD2YQ8_2.d.ts} +1 -1
  446. package/dist/storage.d.ts +2 -2
  447. package/dist/storage.js +12 -12
  448. package/dist/subject-config.d.ts +1 -1
  449. package/dist/summarizer.d.ts +1 -1
  450. package/dist/summarizer.js +3 -3
  451. package/dist/summary-snapshot.d.ts +1 -1
  452. package/dist/support-passport/index.d.ts +18 -17
  453. package/dist/support-passport/index.js +45 -44
  454. package/dist/{tagging-CF7DNV7_.d.ts → tagging-CiAVA-ID.d.ts} +2 -2
  455. package/dist/temporal-supersession.d.ts +2 -2
  456. package/dist/temporal-timeline-recall.d.ts +1 -1
  457. package/dist/temporal-validity.d.ts +1 -1
  458. package/dist/threading.d.ts +1 -1
  459. package/dist/tier-migration.d.ts +2 -2
  460. package/dist/tier-routing.d.ts +1 -1
  461. package/dist/topics.d.ts +1 -1
  462. package/dist/transcript.d.ts +1 -1
  463. package/dist/transfer/autodetect.js +1 -1
  464. package/dist/transfer/backup.js +1 -1
  465. package/dist/transfer/capsule-export.js +2 -2
  466. package/dist/transfer/export-okf.d.ts +1 -1
  467. package/dist/transfer/export-okf.js +13 -13
  468. package/dist/trust-score-stage.d.ts +1 -1
  469. package/dist/trust-score.d.ts +1 -1
  470. package/dist/{types-nmhnJpxx.d.ts → types-DgDaoY61.d.ts} +6 -0
  471. package/dist/types.d.ts +1 -1
  472. package/dist/types.js +1 -1
  473. package/dist/utility-runtime.d.ts +1 -1
  474. package/dist/verified-recall.js +13 -13
  475. package/dist/who-knows-cli.d.ts +15 -14
  476. package/dist/who-knows-cli.js +14 -14
  477. package/dist/who-knows.d.ts +15 -14
  478. package/dist/who-knows.js +13 -13
  479. package/dist/write-envelope.d.ts +1 -1
  480. package/package.json +2 -2
  481. package/src/access-boundary.ts +3 -0
  482. package/src/access-http.ts +2 -2
  483. package/src/access-mcp-output-schemas.ts +25 -0
  484. package/src/access-mcp.ts +3 -3
  485. package/src/access-operations.ts +2 -0
  486. package/src/access-service.ts +6 -1
  487. package/src/access-surface-catalog.test.ts +20 -0
  488. package/src/access-surface-catalog.ts +6 -0
  489. package/src/activity/timeline/index.ts +1 -0
  490. package/src/activity/timeline/journal-recap.test.ts +17 -0
  491. package/src/activity/timeline/journal-recap.ts +19 -6
  492. package/src/activity/timeline/recap-export-range.test.ts +289 -0
  493. package/src/activity/timeline/recap-export-range.ts +169 -0
  494. package/src/activity/timeline/recap-export.test.ts +73 -1
  495. package/src/activity/timeline/recap-export.ts +57 -4
  496. package/src/cli/memory-browse-commands.ts +77 -0
  497. package/src/cli.ts +2 -2
  498. package/src/config.ts +11 -0
  499. package/src/extraction-evidence-class.test.ts +355 -0
  500. package/src/extraction-evidence-class.ts +241 -0
  501. package/src/index.ts +1 -0
  502. package/src/mcp-read-only-tools.ts +3 -0
  503. package/src/memory-browse-http-glue.ts +93 -0
  504. package/src/memory-browse-mcp-tools.ts +57 -0
  505. package/src/memory-browse-operations.ts +88 -0
  506. package/src/memory-browse-surface.test.ts +500 -0
  507. package/src/memory-browse.ts +316 -0
  508. package/src/provenance.ts +3 -3
  509. package/src/reconcile/manifest.test.ts +27 -0
  510. package/src/reconcile/manifest.ts +7 -0
  511. package/src/standing-memory-block.test.ts +262 -0
  512. package/src/standing-memory-block.ts +331 -0
  513. package/src/types.ts +6 -0
  514. package/dist/chunk-2AV75BJW.js.map +0 -1
  515. package/dist/chunk-66QOUYNS.js.map +0 -1
  516. package/dist/chunk-66YUOI53.js.map +0 -1
  517. package/dist/chunk-D5DTZBTV.js.map +0 -1
  518. package/dist/chunk-GYYLZOSO.js.map +0 -1
  519. package/dist/chunk-HXDXR2FH.js.map +0 -1
  520. package/dist/chunk-KF57IQFX.js.map +0 -1
  521. package/dist/chunk-TNQR7N52.js.map +0 -1
  522. package/dist/chunk-UGGOQKO6.js.map +0 -1
  523. package/dist/chunk-W6YDAIVB.js.map +0 -1
  524. /package/dist/{chunk-5EHPB6RL.js.map → chunk-2QX65IEC.js.map} +0 -0
  525. /package/dist/{chunk-F5V7KRQS.js.map → chunk-2WMXZYMS.js.map} +0 -0
  526. /package/dist/{chunk-ORQ7AZMU.js.map → chunk-3RKVSECD.js.map} +0 -0
  527. /package/dist/{chunk-3NYM6JA4.js.map → chunk-4LPIVP77.js.map} +0 -0
  528. /package/dist/{chunk-PW4HTWXL.js.map → chunk-55XWRL6F.js.map} +0 -0
  529. /package/dist/{chunk-GGY7WKMB.js.map → chunk-5KBI2MOC.js.map} +0 -0
  530. /package/dist/{chunk-IXMWTNNY.js.map → chunk-6A6HSXWV.js.map} +0 -0
  531. /package/dist/{chunk-4HTQ76O4.js.map → chunk-7SJCSDQ3.js.map} +0 -0
  532. /package/dist/{chunk-U4ESGVZ2.js.map → chunk-7YUX52XZ.js.map} +0 -0
  533. /package/dist/{chunk-EUP4AXIW.js.map → chunk-B6VDWDFN.js.map} +0 -0
  534. /package/dist/{chunk-AN2O4KZY.js.map → chunk-BMENHAJL.js.map} +0 -0
  535. /package/dist/{chunk-5ZXGH2ZL.js.map → chunk-BXOPUJ3W.js.map} +0 -0
  536. /package/dist/{chunk-TE6B2UU6.js.map → chunk-CD7VTZIG.js.map} +0 -0
  537. /package/dist/{chunk-EC5SVM6H.js.map → chunk-DE4ZGH2N.js.map} +0 -0
  538. /package/dist/{chunk-YFVIA5A6.js.map → chunk-DRLZB3CN.js.map} +0 -0
  539. /package/dist/{chunk-SRRZZHA5.js.map → chunk-EGOWY342.js.map} +0 -0
  540. /package/dist/{chunk-W44T2KHG.js.map → chunk-EWBDJQ5Y.js.map} +0 -0
  541. /package/dist/{chunk-JMBTNVMW.js.map → chunk-FGRJJBFO.js.map} +0 -0
  542. /package/dist/{chunk-7BNB7KHB.js.map → chunk-G2SJRFGP.js.map} +0 -0
  543. /package/dist/{chunk-WGZHSQDV.js.map → chunk-G2XZFGYN.js.map} +0 -0
  544. /package/dist/{chunk-CFIHVWYZ.js.map → chunk-GGROFIYX.js.map} +0 -0
  545. /package/dist/{chunk-XLZZLUWL.js.map → chunk-HG74GEVY.js.map} +0 -0
  546. /package/dist/{chunk-WUUGE7QC.js.map → chunk-HS75MCQF.js.map} +0 -0
  547. /package/dist/{chunk-DO6R3LIE.js.map → chunk-I6IJDTRP.js.map} +0 -0
  548. /package/dist/{chunk-TZ44E732.js.map → chunk-IO7K7GES.js.map} +0 -0
  549. /package/dist/{chunk-AYP2FZFA.js.map → chunk-JUOJGZPV.js.map} +0 -0
  550. /package/dist/{chunk-P7S7BVBJ.js.map → chunk-JXLEQIJ7.js.map} +0 -0
  551. /package/dist/{chunk-4XTSKGLX.js.map → chunk-JYXLW22X.js.map} +0 -0
  552. /package/dist/{chunk-IPLYGWQF.js.map → chunk-KQAFEZQX.js.map} +0 -0
  553. /package/dist/{chunk-VGRVJ6Z6.js.map → chunk-LIAM7U2J.js.map} +0 -0
  554. /package/dist/{chunk-S3SND7SO.js.map → chunk-LIDJWAQV.js.map} +0 -0
  555. /package/dist/{chunk-T5NI5K46.js.map → chunk-LYMJ36UI.js.map} +0 -0
  556. /package/dist/{chunk-QUFJ3NJE.js.map → chunk-MNG536IS.js.map} +0 -0
  557. /package/dist/{chunk-SW42MMAH.js.map → chunk-MQT3WP3F.js.map} +0 -0
  558. /package/dist/{chunk-UEJY6ZTQ.js.map → chunk-NE45P3OF.js.map} +0 -0
  559. /package/dist/{chunk-N46SNYMC.js.map → chunk-NMA7RQPR.js.map} +0 -0
  560. /package/dist/{chunk-47C6DF43.js.map → chunk-OS4JVTHR.js.map} +0 -0
  561. /package/dist/{chunk-JOP7W24J.js.map → chunk-PA67GXYJ.js.map} +0 -0
  562. /package/dist/{chunk-FSH6KRKO.js.map → chunk-PPJLJD2D.js.map} +0 -0
  563. /package/dist/{chunk-AG6PANBG.js.map → chunk-PXJ6HE2W.js.map} +0 -0
  564. /package/dist/{chunk-DDBLZJRV.js.map → chunk-QB4VXCFN.js.map} +0 -0
  565. /package/dist/{chunk-L63M2PE4.js.map → chunk-QGAKUOKU.js.map} +0 -0
  566. /package/dist/{chunk-AYZHHMTK.js.map → chunk-QKFYJVDG.js.map} +0 -0
  567. /package/dist/{chunk-YUQPUK6H.js.map → chunk-QLCMOHRE.js.map} +0 -0
  568. /package/dist/{chunk-Q4AUIFUA.js.map → chunk-QMWKENNK.js.map} +0 -0
  569. /package/dist/{chunk-FMEP2RB5.js.map → chunk-SJ7ZNUXB.js.map} +0 -0
  570. /package/dist/{chunk-EEHQY7ER.js.map → chunk-SK6HEQTW.js.map} +0 -0
  571. /package/dist/{chunk-PGAB2V53.js.map → chunk-SMBWBEE7.js.map} +0 -0
  572. /package/dist/{chunk-62NYUFNH.js.map → chunk-SS33RR4F.js.map} +0 -0
  573. /package/dist/{chunk-4ECS33D4.js.map → chunk-T3T5HTZZ.js.map} +0 -0
  574. /package/dist/{chunk-KG2OOAFF.js.map → chunk-TQSCR5DU.js.map} +0 -0
  575. /package/dist/{chunk-OV7GJ4KW.js.map → chunk-V2XNMIAM.js.map} +0 -0
  576. /package/dist/{chunk-AS2NOPDM.js.map → chunk-V7IONNTJ.js.map} +0 -0
  577. /package/dist/{chunk-HYWPUYLO.js.map → chunk-VV5GCNKG.js.map} +0 -0
  578. /package/dist/{chunk-Y3XHIWVP.js.map → chunk-WL3PGPGU.js.map} +0 -0
  579. /package/dist/{chunk-3UQIS2GC.js.map → chunk-WNMVUWI7.js.map} +0 -0
  580. /package/dist/{chunk-WOBMSMUK.js.map → chunk-WYU66IVZ.js.map} +0 -0
  581. /package/dist/{chunk-A7GQBJP5.js.map → chunk-X2NFFBTO.js.map} +0 -0
  582. /package/dist/{chunk-CWMMKFO7.js.map → chunk-XEHLYA5Z.js.map} +0 -0
  583. /package/dist/{chunk-JIWZVOQM.js.map → chunk-XKHRNAK7.js.map} +0 -0
  584. /package/dist/{chunk-VW5TGNJN.js.map → chunk-XXLH6KFO.js.map} +0 -0
  585. /package/dist/{chunk-J5OXWG66.js.map → chunk-XZUHXKM3.js.map} +0 -0
  586. /package/dist/{chunk-K4KE5MYE.js.map → chunk-Y5VT7BIT.js.map} +0 -0
  587. /package/dist/{chunk-UOREPQ3C.js.map → chunk-YOSLKZLZ.js.map} +0 -0
  588. /package/dist/{chunk-S7KDHFF2.js.map → chunk-YXWMZAAN.js.map} +0 -0
  589. /package/dist/{chunk-EAZ3YZKN.js.map → chunk-ZEIJQ4I3.js.map} +0 -0
@@ -0,0 +1,212 @@
1
+ import {
2
+ isGenericRecallExcludedPath
3
+ } from "./chunk-DE4ZGH2N.js";
4
+ import {
5
+ normalizeProjectionPreview
6
+ } from "./chunk-SCU65EZI.js";
7
+ import {
8
+ isSupportPassportPrivateMemory
9
+ } from "./chunk-PWPIERBM.js";
10
+ import {
11
+ toMemoryPathRel
12
+ } from "./chunk-7RJUVTVF.js";
13
+ import {
14
+ RECALL_FALLBACK_DIRS
15
+ } from "./chunk-VS2IYZRU.js";
16
+
17
+ // src/memory-browse.ts
18
+ var MAX_LS_ENTRIES = 200;
19
+ var MAX_TREE_ENTRIES = 400;
20
+ var MAX_TREE_DEPTH = 4;
21
+ var MAX_FIND_ENTRIES = 200;
22
+ var MAX_PATH_CHARS = 512;
23
+ var MAX_PATTERN_CHARS = 256;
24
+ var BROWSABLE_ROOTS = Object.fromEntries(RECALL_FALLBACK_DIRS.map((dir) => [dir, true]));
25
+ function isBrowsableMemoryPath(relPath) {
26
+ if (!relPath.endsWith(".md")) return false;
27
+ const top = relPath.split("/")[0] ?? "";
28
+ return BROWSABLE_ROOTS[top] === true && !isGenericRecallExcludedPath(relPath);
29
+ }
30
+ function sanitizeBrowsePath(raw) {
31
+ const trimmed = (raw ?? "").trim();
32
+ if (trimmed === "" || trimmed === "/") return "";
33
+ if (trimmed.length > MAX_PATH_CHARS) throw new Error("path is too long");
34
+ if (trimmed.includes("\\")) throw new Error("path must use '/' separators");
35
+ const segments = trimmed.split("/");
36
+ for (const segment of segments) {
37
+ if (segment === "") throw new Error("path has an empty segment");
38
+ if (segment === "." || segment === "..") throw new Error("path must not contain '.' or '..' segments");
39
+ for (const ch of segment) {
40
+ const code = ch.charCodeAt(0);
41
+ if (code < 32 || code === 127) throw new Error("path has control characters");
42
+ }
43
+ }
44
+ return segments.join("/");
45
+ }
46
+ function segmentRegex(segment) {
47
+ const source = `^${segment.split("*").map((part) => part.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join(".*")}$`;
48
+ return new RegExp(source, "i");
49
+ }
50
+ function browsePatternMatches(pattern, relPath) {
51
+ const segments = relPath.split("/");
52
+ const name = segments[segments.length - 1] ?? "";
53
+ const patternSegments = pattern.split("/");
54
+ if (patternSegments.length === 1) {
55
+ const single = patternSegments[0];
56
+ if (single.includes("*")) return segmentRegex(single).test(name);
57
+ const needle = single.toLowerCase();
58
+ return relPath.toLowerCase().includes(needle) || name.toLowerCase().includes(needle);
59
+ }
60
+ if (patternSegments.length !== segments.length) return false;
61
+ return patternSegments.every((segment, index) => segmentRegex(segment).test(segments[index]));
62
+ }
63
+ function emptyNode() {
64
+ return { subdirs: /* @__PURE__ */ new Map(), files: /* @__PURE__ */ new Map(), count: 0 };
65
+ }
66
+ function buildIndex(memories, dir) {
67
+ const root = emptyNode();
68
+ for (const memory of memories) {
69
+ const rel = toMemoryPathRel(dir, memory.path);
70
+ if (!isBrowsableMemoryPath(rel)) continue;
71
+ const segments = rel.split("/");
72
+ let node = root;
73
+ node.count += 1;
74
+ for (let index = 0; index < segments.length - 1; index += 1) {
75
+ const name = segments[index];
76
+ let child = node.subdirs.get(name);
77
+ if (child === void 0) {
78
+ child = emptyNode();
79
+ node.subdirs.set(name, child);
80
+ }
81
+ node = child;
82
+ node.count += 1;
83
+ }
84
+ node.files.set(segments[segments.length - 1], memory);
85
+ }
86
+ return root;
87
+ }
88
+ function byPath(left, right) {
89
+ return left.path < right.path ? -1 : left.path > right.path ? 1 : 0;
90
+ }
91
+ function dirEntries(node, dirPath) {
92
+ const prefix = dirPath === "" ? "" : `${dirPath}/`;
93
+ const entries = [];
94
+ for (const [name, child] of node.subdirs) {
95
+ entries.push({ path: `${prefix}${name}`, kind: "dir", name, description: "", count: child.count, depth: 0 });
96
+ }
97
+ for (const [name, memory] of node.files) {
98
+ entries.push({
99
+ path: `${prefix}${name}`,
100
+ kind: "file",
101
+ name,
102
+ description: normalizeProjectionPreview(memory.content),
103
+ count: 1,
104
+ depth: 0
105
+ });
106
+ }
107
+ return entries.sort(byPath);
108
+ }
109
+ function renderEntries(verb, namespace, browsePath, entries) {
110
+ const lines = [`${verb} ${namespace}:${browsePath === "" ? "/" : browsePath}`];
111
+ for (const entry of entries) {
112
+ const indent = " ".repeat(entry.depth);
113
+ if (entry.kind === "dir") {
114
+ lines.push(`${indent}${entry.path}/ (${entry.count} memories)`);
115
+ } else {
116
+ const description = entry.description.length > 0 ? ` \u2014 ${entry.description}` : "";
117
+ lines.push(`${indent}${entry.path}${description}`);
118
+ }
119
+ }
120
+ return lines.join("\n");
121
+ }
122
+ function refusal(verb, browsePath, error, message) {
123
+ return { ok: false, verb, path: browsePath, error, message, rendered: `browse ${verb} failed: ${error} \u2014 ${message}` };
124
+ }
125
+ async function runMemoryBrowse(deps, request) {
126
+ const namespace = deps.resolveReadableNamespace(request.namespace, request.authenticatedPrincipal);
127
+ const storage = await deps.getStorage(namespace);
128
+ const memories = (await storage.readAllMemories()).filter((memory) => !isSupportPassportPrivateMemory(memory));
129
+ if (request.verb === "find") {
130
+ const pattern = (request.pattern ?? "").trim();
131
+ if (pattern.length === 0) return refusal(request.verb, "", "invalid_pattern", "pattern is required");
132
+ if (pattern.length > MAX_PATTERN_CHARS) {
133
+ return refusal(request.verb, "", "invalid_pattern", "pattern is too long");
134
+ }
135
+ const hits = [];
136
+ let truncated2 = false;
137
+ let total = 0;
138
+ for (const memory of memories) {
139
+ const rel = toMemoryPathRel(storage.dir, memory.path);
140
+ if (!isBrowsableMemoryPath(rel)) continue;
141
+ if (!browsePatternMatches(pattern, rel)) continue;
142
+ total += 1;
143
+ if (hits.length >= MAX_FIND_ENTRIES) {
144
+ truncated2 = true;
145
+ break;
146
+ }
147
+ hits.push({
148
+ path: rel,
149
+ kind: "file",
150
+ name: rel.split("/").pop() ?? rel,
151
+ description: normalizeProjectionPreview(memory.content),
152
+ count: 1,
153
+ depth: 0
154
+ });
155
+ }
156
+ hits.sort(byPath);
157
+ return { ok: true, verb: "find", namespace, path: "", total, entries: hits, truncated: truncated2, rendered: renderEntries("find", namespace, "", hits) };
158
+ }
159
+ let browsePath;
160
+ try {
161
+ browsePath = sanitizeBrowsePath(request.path);
162
+ } catch (err) {
163
+ return refusal(request.verb, request.path ?? "", "invalid_path", err instanceof Error ? err.message : String(err));
164
+ }
165
+ const root = buildIndex(memories, storage.dir);
166
+ let node = root;
167
+ for (const segment of browsePath === "" ? [] : browsePath.split("/")) {
168
+ node = node?.subdirs.get(segment);
169
+ if (node === void 0) break;
170
+ }
171
+ if (node === void 0) {
172
+ return refusal(request.verb, browsePath, "not_found", `no browsable store path: ${browsePath}`);
173
+ }
174
+ if (request.verb === "ls") {
175
+ const all = dirEntries(node, browsePath);
176
+ const truncated2 = all.length > MAX_LS_ENTRIES;
177
+ const entries2 = all.slice(0, MAX_LS_ENTRIES);
178
+ return { ok: true, verb: "ls", namespace, path: browsePath, total: all.length, entries: entries2, truncated: truncated2, rendered: renderEntries("ls", namespace, browsePath, entries2) };
179
+ }
180
+ if (request.depth !== void 0 && (!Number.isInteger(request.depth) || request.depth < 1 || request.depth > MAX_TREE_DEPTH)) {
181
+ return refusal(request.verb, browsePath, "invalid_depth", `depth must be an integer between 1 and ${MAX_TREE_DEPTH}`);
182
+ }
183
+ const depth = request.depth ?? 1;
184
+ const entries = [];
185
+ let truncated = false;
186
+ const walk = (current, currentPath, currentDepth) => {
187
+ for (const entry of dirEntries(current, currentPath)) {
188
+ if (entries.length >= MAX_TREE_ENTRIES) {
189
+ truncated = true;
190
+ return;
191
+ }
192
+ entries.push({ ...entry, depth: currentDepth });
193
+ if (entry.kind === "dir" && currentDepth < depth - 1) {
194
+ walk(current.subdirs.get(entry.name), entry.path, currentDepth + 1);
195
+ if (truncated) return;
196
+ }
197
+ }
198
+ };
199
+ walk(node, browsePath, 0);
200
+ return { ok: true, verb: "tree", namespace, path: browsePath, total: entries.length, entries, truncated, rendered: renderEntries("tree", namespace, browsePath, entries) };
201
+ }
202
+
203
+ export {
204
+ MAX_LS_ENTRIES,
205
+ MAX_TREE_ENTRIES,
206
+ MAX_TREE_DEPTH,
207
+ MAX_FIND_ENTRIES,
208
+ sanitizeBrowsePath,
209
+ browsePatternMatches,
210
+ runMemoryBrowse
211
+ };
212
+ //# sourceMappingURL=chunk-P3YNEMYY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/memory-browse.ts"],"sourcesContent":["/**\n * Memory-store browse verbs (issue #2978) — deterministic `ls` / `tree` /\n * `find` over ONE resolved namespace's memory store, so an agent can see\n * what exists instead of guessing ids at an opaque search box.\n *\n * Scope rules (all existing contracts, no new ones):\n * - Every call resolves through the caller's `resolveReadableNamespace`\n * (read/write path symmetry) and ONE storage instance — browse never\n * enumerates across namespaces.\n * - Only the recall corpus is browsable: a path's top segment must be a\n * `RECALL_FALLBACK_DIRS` category AND survive\n * `isGenericRecallExcludedPath`. Derived stores (`artifacts/`,\n * `meetings/` records, wearables day stores, `state/`, ...) are\n * indistinguishable from missing paths — `not_found`, never listed.\n * - Support-passport private memories are filtered exactly like\n * `memoryBrowse` (the paginated list): their names never appear.\n * - Output is deterministically sorted (plain code-point order, no\n * locale) and entry-capped so a huge store cannot blow the response.\n *\n * `ponytail:` the index is rebuilt from `readAllMemories()` per call —\n * O(corpus) per browse. Fine at agent cadence; swap for a cached directory\n * index if browsing ever sits on a hot path.\n */\n\nimport { toMemoryPathRel } from \"./memory-lifecycle-ledger-utils.js\";\nimport { normalizeProjectionPreview } from \"./memory-projection-format.js\";\nimport { isGenericRecallExcludedPath } from \"./orchestration/generic-recall-paths.js\";\nimport { isSupportPassportPrivateMemory } from \"./support-passport/card-projection.js\";\nimport { RECALL_FALLBACK_DIRS } from \"./utils/category-dir.js\";\nimport type { MemoryFile } from \"./types.js\";\n\n/** Browse reads touch only these storage members. */\nexport interface MemoryBrowseStorage {\n readonly dir: string;\n readAllMemories(): Promise<MemoryFile[]>;\n}\n\n/** Injected seams; the service supplies live wiring, tests supply doubles. */\nexport interface MemoryBrowseDeps {\n readonly resolveReadableNamespace: (namespace: string | undefined, principal?: string) => string;\n readonly getStorage: (namespace: string) => Promise<MemoryBrowseStorage>;\n}\n\nexport type BrowseVerb = \"ls\" | \"tree\" | \"find\";\n\nexport interface MemoryStoreBrowseRequest {\n readonly verb: BrowseVerb;\n /** ls/tree: directory relative to the store root (\"\" or \"/\" = root). */\n readonly path?: string;\n /** tree: expansion depth, 1..MAX_TREE_DEPTH (default 1). */\n readonly depth?: number;\n /** find: glob (`*` wildcard) or substring matched against path and name. */\n readonly pattern?: string;\n readonly namespace?: string;\n readonly authenticatedPrincipal?: string;\n}\n\nexport interface MemoryBrowseEntry {\n /** Store-relative path with forward slashes; dirs carry no trailing slash. */\n readonly path: string;\n readonly kind: \"dir\" | \"file\";\n readonly name: string;\n /** Files: first content line (180-char preview). Dirs: empty. */\n readonly description: string;\n /** Dirs: recursive memory count beneath. Files: 1. */\n readonly count: number;\n /** 0-based depth relative to the browse root (tree nests; ls/find are 0). */\n readonly depth: number;\n}\n\nexport type MemoryBrowseError = \"invalid_path\" | \"not_found\" | \"invalid_depth\" | \"invalid_pattern\";\n\nexport type MemoryStoreBrowseResult =\n | {\n ok: true;\n verb: BrowseVerb;\n namespace: string;\n path: string;\n total: number;\n entries: MemoryBrowseEntry[];\n truncated: boolean;\n rendered: string;\n }\n | {\n ok: false;\n verb: BrowseVerb;\n path: string;\n error: MemoryBrowseError;\n message: string;\n rendered: string;\n };\n\nexport const MAX_LS_ENTRIES = 200;\nexport const MAX_TREE_ENTRIES = 400;\nexport const MAX_TREE_DEPTH = 4;\nexport const MAX_FIND_ENTRIES = 200;\nconst MAX_PATH_CHARS = 512;\nconst MAX_PATTERN_CHARS = 256;\n\nconst BROWSABLE_ROOTS: Record<string, true> = Object.fromEntries(RECALL_FALLBACK_DIRS.map((dir) => [dir, true]));\n\n/** The recall-corpus visibility rule shared by every browse code path. */\nfunction isBrowsableMemoryPath(relPath: string): boolean {\n if (!relPath.endsWith(\".md\")) return false;\n const top = relPath.split(\"/\")[0] ?? \"\";\n return BROWSABLE_ROOTS[top] === true && !isGenericRecallExcludedPath(relPath);\n}\n\n/**\n * Normalize a caller-supplied store path. Returns \"\" for the root. Throws\n * `Error` on absolute paths, `..`/`.` segments, backslashes, control\n * characters, or oversize input — never reinterpreted (pattern 39).\n */\nexport function sanitizeBrowsePath(raw: string | undefined): string {\n const trimmed = (raw ?? \"\").trim();\n if (trimmed === \"\" || trimmed === \"/\") return \"\";\n if (trimmed.length > MAX_PATH_CHARS) throw new Error(\"path is too long\");\n if (trimmed.includes(\"\\\\\")) throw new Error(\"path must use '/' separators\");\n const segments = trimmed.split(\"/\");\n for (const segment of segments) {\n if (segment === \"\") throw new Error(\"path has an empty segment\");\n if (segment === \".\" || segment === \"..\") throw new Error(\"path must not contain '.' or '..' segments\");\n for (const ch of segment) {\n const code = ch.charCodeAt(0);\n if (code < 0x20 || code === 0x7f) throw new Error(\"path has control characters\");\n }\n }\n return segments.join(\"/\");\n}\n\n/** Escape every regex metacharacter in a glob segment. */\nfunction segmentRegex(segment: string): RegExp {\n const source = `^${segment.split(\"*\").map((part) => part.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")).join(\".*\")}$`;\n return new RegExp(source, \"i\");\n}\n\n/**\n * `*` glob (one segment per pattern segment, `find -name` semantics — `*`\n * never crosses `/`) or case-insensitive substring over path and name.\n */\nexport function browsePatternMatches(pattern: string, relPath: string): boolean {\n const segments = relPath.split(\"/\");\n const name = segments[segments.length - 1] ?? \"\";\n const patternSegments = pattern.split(\"/\");\n if (patternSegments.length === 1) {\n const single = patternSegments[0]!;\n if (single.includes(\"*\")) return segmentRegex(single).test(name);\n const needle = single.toLowerCase();\n return relPath.toLowerCase().includes(needle) || name.toLowerCase().includes(needle);\n }\n if (patternSegments.length !== segments.length) return false;\n return patternSegments.every((segment, index) => segmentRegex(segment).test(segments[index]!));\n}\n\ninterface DirNode {\n readonly subdirs: Map<string, DirNode>;\n readonly files: Map<string, MemoryFile>;\n count: number;\n}\n\nfunction emptyNode(): DirNode {\n return { subdirs: new Map(), files: new Map(), count: 0 };\n}\n\n/** Directory index over the browsable corpus: root \"\" holds category dirs. */\nfunction buildIndex(memories: readonly MemoryFile[], dir: string): DirNode {\n const root = emptyNode();\n for (const memory of memories) {\n const rel = toMemoryPathRel(dir, memory.path);\n if (!isBrowsableMemoryPath(rel)) continue;\n const segments = rel.split(\"/\");\n let node = root;\n node.count += 1;\n for (let index = 0; index < segments.length - 1; index += 1) {\n const name = segments[index]!;\n let child = node.subdirs.get(name);\n if (child === undefined) {\n child = emptyNode();\n node.subdirs.set(name, child);\n }\n node = child;\n node.count += 1;\n }\n node.files.set(segments[segments.length - 1]!, memory);\n }\n return root;\n}\n\nfunction byPath(left: { path: string }, right: { path: string }): number {\n return left.path < right.path ? -1 : left.path > right.path ? 1 : 0;\n}\n\nfunction dirEntries(node: DirNode, dirPath: string): MemoryBrowseEntry[] {\n const prefix = dirPath === \"\" ? \"\" : `${dirPath}/`;\n const entries: MemoryBrowseEntry[] = [];\n for (const [name, child] of node.subdirs) {\n entries.push({ path: `${prefix}${name}`, kind: \"dir\", name, description: \"\", count: child.count, depth: 0 });\n }\n for (const [name, memory] of node.files) {\n entries.push({\n path: `${prefix}${name}`,\n kind: \"file\",\n name,\n description: normalizeProjectionPreview(memory.content),\n count: 1,\n depth: 0,\n });\n }\n return entries.sort(byPath);\n}\n\nfunction renderEntries(verb: BrowseVerb, namespace: string, browsePath: string, entries: readonly MemoryBrowseEntry[]): string {\n const lines = [`${verb} ${namespace}:${browsePath === \"\" ? \"/\" : browsePath}`];\n for (const entry of entries) {\n const indent = \" \".repeat(entry.depth);\n if (entry.kind === \"dir\") {\n lines.push(`${indent}${entry.path}/ (${entry.count} memories)`);\n } else {\n const description = entry.description.length > 0 ? ` — ${entry.description}` : \"\";\n lines.push(`${indent}${entry.path}${description}`);\n }\n }\n return lines.join(\"\\n\");\n}\n\nfunction refusal(verb: BrowseVerb, browsePath: string, error: MemoryBrowseError, message: string): MemoryStoreBrowseResult {\n return { ok: false, verb, path: browsePath, error, message, rendered: `browse ${verb} failed: ${error} — ${message}` };\n}\n\n/** Run one browse verb. Malformed input throws `Error`; typed refusals return in-band. */\nexport async function runMemoryBrowse(\n deps: MemoryBrowseDeps,\n request: MemoryStoreBrowseRequest,\n): Promise<MemoryStoreBrowseResult> {\n const namespace = deps.resolveReadableNamespace(request.namespace, request.authenticatedPrincipal);\n const storage = await deps.getStorage(namespace);\n const memories = (await storage.readAllMemories()).filter((memory) => !isSupportPassportPrivateMemory(memory));\n\n if (request.verb === \"find\") {\n const pattern = (request.pattern ?? \"\").trim();\n if (pattern.length === 0) return refusal(request.verb, \"\", \"invalid_pattern\", \"pattern is required\");\n if (pattern.length > MAX_PATTERN_CHARS) {\n return refusal(request.verb, \"\", \"invalid_pattern\", \"pattern is too long\");\n }\n const hits: MemoryBrowseEntry[] = [];\n let truncated = false;\n let total = 0;\n for (const memory of memories) {\n const rel = toMemoryPathRel(storage.dir, memory.path);\n if (!isBrowsableMemoryPath(rel)) continue;\n if (!browsePatternMatches(pattern, rel)) continue;\n total += 1;\n if (hits.length >= MAX_FIND_ENTRIES) {\n truncated = true;\n break;\n }\n hits.push({\n path: rel,\n kind: \"file\",\n name: rel.split(\"/\").pop() ?? rel,\n description: normalizeProjectionPreview(memory.content),\n count: 1,\n depth: 0,\n });\n }\n hits.sort(byPath);\n return { ok: true, verb: \"find\", namespace, path: \"\", total, entries: hits, truncated, rendered: renderEntries(\"find\", namespace, \"\", hits) };\n }\n\n let browsePath: string;\n try {\n browsePath = sanitizeBrowsePath(request.path);\n } catch (err) {\n return refusal(request.verb, request.path ?? \"\", \"invalid_path\", err instanceof Error ? err.message : String(err));\n }\n const root = buildIndex(memories, storage.dir);\n let node: DirNode | undefined = root;\n for (const segment of browsePath === \"\" ? [] : browsePath.split(\"/\")) {\n node = node?.subdirs.get(segment);\n if (node === undefined) break;\n }\n // Invisible-by-design stores resolve as not_found, indistinguishable from\n // a missing path: the index only ever contains browsable corpus paths.\n if (node === undefined) {\n return refusal(request.verb, browsePath, \"not_found\", `no browsable store path: ${browsePath}`);\n }\n\n if (request.verb === \"ls\") {\n const all = dirEntries(node, browsePath);\n const truncated = all.length > MAX_LS_ENTRIES;\n const entries = all.slice(0, MAX_LS_ENTRIES);\n return { ok: true, verb: \"ls\", namespace, path: browsePath, total: all.length, entries, truncated, rendered: renderEntries(\"ls\", namespace, browsePath, entries) };\n }\n\n if (request.depth !== undefined && (!Number.isInteger(request.depth) || request.depth < 1 || request.depth > MAX_TREE_DEPTH)) {\n return refusal(request.verb, browsePath, \"invalid_depth\", `depth must be an integer between 1 and ${MAX_TREE_DEPTH}`);\n }\n const depth = request.depth ?? 1;\n const entries: MemoryBrowseEntry[] = [];\n let truncated = false;\n const walk = (current: DirNode, currentPath: string, currentDepth: number): void => {\n for (const entry of dirEntries(current, currentPath)) {\n if (entries.length >= MAX_TREE_ENTRIES) {\n truncated = true;\n return;\n }\n entries.push({ ...entry, depth: currentDepth });\n if (entry.kind === \"dir\" && currentDepth < depth - 1) {\n walk(current.subdirs.get(entry.name)!, entry.path, currentDepth + 1);\n if (truncated) return;\n }\n }\n };\n walk(node, browsePath, 0);\n return { ok: true, verb: \"tree\", namespace, path: browsePath, total: entries.length, entries, truncated, rendered: renderEntries(\"tree\", namespace, browsePath, entries) };\n}\n"],"mappings":"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","names":["truncated","entries"]}
@@ -1,9 +1,3 @@
1
- import {
2
- NoopSearchBackend
3
- } from "./chunk-CYEPCZN5.js";
4
- import {
5
- OramaBackend
6
- } from "./chunk-G6NQ3L4T.js";
7
1
  import {
8
2
  RemoteSearchBackend
9
3
  } from "./chunk-WPGR3RW4.js";
@@ -16,6 +10,12 @@ import {
16
10
  import {
17
11
  MeilisearchBackend
18
12
  } from "./chunk-KVO2BTA4.js";
13
+ import {
14
+ NoopSearchBackend
15
+ } from "./chunk-CYEPCZN5.js";
16
+ import {
17
+ OramaBackend
18
+ } from "./chunk-G6NQ3L4T.js";
19
19
  import {
20
20
  createConversationIndexBackend
21
21
  } from "./chunk-TFA6HPOA.js";
@@ -24,7 +24,7 @@ import {
24
24
  } from "./chunk-F4TWWUMP.js";
25
25
  import {
26
26
  QmdClient
27
- } from "./chunk-KG2OOAFF.js";
27
+ } from "./chunk-TQSCR5DU.js";
28
28
  import {
29
29
  resolveIndexingCapabilities,
30
30
  resolvePipelineProcessingCapabilities,
@@ -179,4 +179,4 @@ export {
179
179
  createConversationSearchBackend,
180
180
  createConversationIndexRuntime
181
181
  };
182
- //# sourceMappingURL=chunk-JOP7W24J.js.map
182
+ //# sourceMappingURL=chunk-PA67GXYJ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseEntityFile
3
- } from "./chunk-QUFJ3NJE.js";
3
+ } from "./chunk-MNG536IS.js";
4
4
  import {
5
5
  inferMemoryStatus
6
6
  } from "./chunk-7RJUVTVF.js";
@@ -253,4 +253,4 @@ export {
253
253
  WHO_KNOWS_MCP_TOOLS,
254
254
  handleWhoKnowsHttpQuery
255
255
  };
256
- //# sourceMappingURL=chunk-FSH6KRKO.js.map
256
+ //# sourceMappingURL=chunk-PPJLJD2D.js.map
@@ -3,7 +3,7 @@ import {
3
3
  headerConnector,
4
4
  renderExtractionConversation,
5
5
  resolveSourceConnector
6
- } from "./chunk-4XTSKGLX.js";
6
+ } from "./chunk-JYXLW22X.js";
7
7
  import {
8
8
  normalizeReasoningTrace
9
9
  } from "./chunk-54V4BZWP.js";
@@ -29,14 +29,6 @@ import {
29
29
  stripUntrustedFactSpans,
30
30
  truncateLocalExtractionConversation
31
31
  } from "./chunk-XVZA6VXC.js";
32
- import {
33
- attachExtractionProvenance
34
- } from "./chunk-PGAB2V53.js";
35
- import {
36
- classifyExtractionThrownError,
37
- classifyFallbackParseFailure,
38
- formatExtractionParseFailureLog
39
- } from "./chunk-PJRKLB4Z.js";
40
32
  import {
41
33
  containsExtractionPlaceholder,
42
34
  extractionAttributes,
@@ -44,6 +36,14 @@ import {
44
36
  extractionText,
45
37
  isPlainRecord
46
38
  } from "./chunk-FJMYMJLR.js";
39
+ import {
40
+ attachExtractionProvenance
41
+ } from "./chunk-SMBWBEE7.js";
42
+ import {
43
+ classifyExtractionThrownError,
44
+ classifyFallbackParseFailure,
45
+ formatExtractionParseFailureLog
46
+ } from "./chunk-PJRKLB4Z.js";
47
47
  import {
48
48
  delinearize
49
49
  } from "./chunk-VEWZZM3H.js";
@@ -82,7 +82,7 @@ import {
82
82
  } from "./chunk-WLZYGLJ4.js";
83
83
  import {
84
84
  LocalLlmClient
85
- } from "./chunk-WGZHSQDV.js";
85
+ } from "./chunk-G2XZFGYN.js";
86
86
  import {
87
87
  FallbackLlmClient,
88
88
  gatewayTaskChainOptions
@@ -2437,4 +2437,4 @@ export {
2437
2437
  shouldEnableLocalExtractionThinking,
2438
2438
  ExtractionEngine
2439
2439
  };
2440
- //# sourceMappingURL=chunk-AG6PANBG.js.map
2440
+ //# sourceMappingURL=chunk-PXJ6HE2W.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveCorpusNamespaceRoots
3
- } from "./chunk-SW42MMAH.js";
3
+ } from "./chunk-MQT3WP3F.js";
4
4
  import {
5
5
  capabilityAllowsNamespace
6
6
  } from "./chunk-MZWSOLMT.js";
@@ -200,4 +200,4 @@ async function readAggregateExtractionWatermark(options) {
200
200
  export {
201
201
  readAggregateExtractionWatermark
202
202
  };
203
- //# sourceMappingURL=chunk-DDBLZJRV.js.map
203
+ //# sourceMappingURL=chunk-QB4VXCFN.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  RECALL_DISCLOSURE_LEVELS
3
- } from "./chunk-66YUOI53.js";
3
+ } from "./chunk-WQW6KPVC.js";
4
4
 
5
5
  // src/recall-navigate.ts
6
6
  var RECALL_NAV_LINK_TYPES = [
@@ -48,4 +48,4 @@ export {
48
48
  expandRecallNode,
49
49
  traverseRecallLink
50
50
  };
51
- //# sourceMappingURL=chunk-L63M2PE4.js.map
51
+ //# sourceMappingURL=chunk-QGAKUOKU.js.map
@@ -3,7 +3,7 @@ import {
3
3
  getOperation,
4
4
  operationRequiresAuthorizedNamespace,
5
5
  operationUsesPrincipalNamespace
6
- } from "./chunk-HXDXR2FH.js";
6
+ } from "./chunk-AS4YKT75.js";
7
7
  import {
8
8
  assertOperationAuthorizationAllowed
9
9
  } from "./chunk-MZWSOLMT.js";
@@ -60,4 +60,4 @@ export {
60
60
  authorizationProbeNamespaces,
61
61
  authorizationProbeRequiresPrincipalNamespace
62
62
  };
63
- //# sourceMappingURL=chunk-AYZHHMTK.js.map
63
+ //# sourceMappingURL=chunk-QKFYJVDG.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-QUFJ3NJE.js";
3
+ } from "./chunk-MNG536IS.js";
4
4
  import {
5
5
  normalizeEntityName
6
6
  } from "./chunk-YXZG5TVN.js";
@@ -957,4 +957,4 @@ export {
957
957
  resolveBriefingSaveDir,
958
958
  briefingFilename
959
959
  };
960
- //# sourceMappingURL=chunk-YUQPUK6H.js.map
960
+ //# sourceMappingURL=chunk-QLCMOHRE.js.map
@@ -1,6 +1,3 @@
1
- import {
2
- ClaudeCodeAdapter
3
- } from "./chunk-J64TK33U.js";
4
1
  import {
5
2
  CodexAdapter
6
3
  } from "./chunk-RSUYKGGZ.js";
@@ -10,6 +7,9 @@ import {
10
7
  import {
11
8
  ReplitAdapter
12
9
  } from "./chunk-TMSXWOBZ.js";
10
+ import {
11
+ ClaudeCodeAdapter
12
+ } from "./chunk-J64TK33U.js";
13
13
  import {
14
14
  headerValue
15
15
  } from "./chunk-7RXCMVFQ.js";
@@ -108,4 +108,4 @@ export {
108
108
  OpenCodeAdapter,
109
109
  AdapterRegistry
110
110
  };
111
- //# sourceMappingURL=chunk-Q4AUIFUA.js.map
111
+ //# sourceMappingURL=chunk-QMWKENNK.js.map
@@ -1,9 +1,12 @@
1
1
  import {
2
2
  RECALL_NAVIGATION_MCP_TOOLS
3
3
  } from "./chunk-TE6S7KDF.js";
4
+ import {
5
+ MEMORY_BROWSE_MCP_TOOLS
6
+ } from "./chunk-EIB4FJVR.js";
4
7
  import {
5
8
  MCP_READ_ONLY_TOOL_SUFFIXES
6
- } from "./chunk-F3TURDFG.js";
9
+ } from "./chunk-FPB5LQWW.js";
7
10
  import {
8
11
  EXTERNAL_WIKI_MCP_TOOLS
9
12
  } from "./chunk-A5KNZSNA.js";
@@ -37,19 +40,19 @@ import {
37
40
  } from "./chunk-AB3A7EFH.js";
38
41
  import {
39
42
  applyToolOutputSchemas
40
- } from "./chunk-2AV75BJW.js";
43
+ } from "./chunk-WVI43D54.js";
41
44
  import {
42
45
  getOperation
43
- } from "./chunk-HXDXR2FH.js";
46
+ } from "./chunk-AS4YKT75.js";
44
47
  import {
45
48
  WHO_KNOWS_MCP_TOOLS
46
- } from "./chunk-FSH6KRKO.js";
49
+ } from "./chunk-PPJLJD2D.js";
47
50
  import {
48
51
  PROMOTION_CANDIDATES_MCP_TOOLS
49
52
  } from "./chunk-VYCOJKSX.js";
50
53
  import {
51
54
  validateRequest
52
- } from "./chunk-AYP2FZFA.js";
55
+ } from "./chunk-JUOJGZPV.js";
53
56
  import {
54
57
  SUPPORT_PASSPORT_SOURCE_MEMORY_ID_MAX_LENGTH
55
58
  } from "./chunk-PWPIERBM.js";
@@ -1769,6 +1772,9 @@ var MCP_MIGRATED_OPERATIONS = {
1769
1772
  "engram.deep_recall": "deep_recall",
1770
1773
  "engram.memory_expand": "memory_expand",
1771
1774
  "engram.memory_traverse": "memory_traverse",
1775
+ "engram.memory_ls": "memory_ls",
1776
+ "engram.memory_tree": "memory_tree",
1777
+ "engram.memory_find": "memory_find",
1772
1778
  "engram.memory_chat": "chat_message"
1773
1779
  };
1774
1780
  var STRICT_MCP_SCHEMA_KEYS = {
@@ -2067,6 +2073,7 @@ var EngramMcpServer = class {
2067
2073
  ...STANDUP_MCP_TOOLS,
2068
2074
  ...DEEP_RECALL_MCP_TOOLS,
2069
2075
  ...service.recallNavigationEnabled !== false ? RECALL_NAVIGATION_MCP_TOOLS : [],
2076
+ ...MEMORY_BROWSE_MCP_TOOLS,
2070
2077
  ...service.supportPassportEnabled ? SUPPORT_PASSPORT_MCP_TOOLS : [],
2071
2078
  {
2072
2079
  name: "engram.action_confidence",
@@ -3987,4 +3994,4 @@ export {
3987
3994
  MCP_MIGRATED_OPERATIONS,
3988
3995
  EngramMcpServer
3989
3996
  };
3990
- //# sourceMappingURL=chunk-GYYLZOSO.js.map
3997
+ //# sourceMappingURL=chunk-R4JTUTU6.js.map