@remnic/core 9.69.42 → 9.69.44

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 (566) hide show
  1. package/dist/access-admin-ops-surface.d.ts +16 -14
  2. package/dist/access-admin-ops-surface.js +33 -25
  3. package/dist/access-authorization-probe.d.ts +16 -14
  4. package/dist/access-authorization-probe.js +34 -26
  5. package/dist/access-boundary.d.ts +16 -14
  6. package/dist/access-boundary.js +33 -25
  7. package/dist/access-cli.js +93 -83
  8. package/dist/access-cli.js.map +1 -1
  9. package/dist/access-coding-context-resolution.d.ts +2 -1
  10. package/dist/access-extraction-force-flush.d.ts +16 -14
  11. package/dist/access-extraction-force-flush.js +33 -25
  12. package/dist/access-health-types.d.ts +2 -1
  13. package/dist/access-http-briefing.d.ts +16 -14
  14. package/dist/access-http-briefing.js +34 -26
  15. package/dist/access-http-lcm-compaction.d.ts +16 -14
  16. package/dist/access-http-lifecycle-flush.d.ts +16 -14
  17. package/dist/access-http-offline-stream.d.ts +16 -14
  18. package/dist/access-http-query.d.ts +3 -2
  19. package/dist/access-http-query.js +35 -27
  20. package/dist/access-http.d.ts +17 -15
  21. package/dist/access-http.js +55 -45
  22. package/dist/access-identity-continuity-surface.d.ts +12 -11
  23. package/dist/access-identity-continuity-surface.js +33 -25
  24. package/dist/access-lcm-surface.d.ts +16 -14
  25. package/dist/access-lcm-surface.js +33 -25
  26. package/dist/access-mcp-output-schemas.js +1 -1
  27. package/dist/access-mcp-shared-context-tools.d.ts +16 -14
  28. package/dist/access-mcp.d.ts +16 -14
  29. package/dist/access-mcp.js +45 -36
  30. package/dist/access-memory-search-fanout.d.ts +3 -2
  31. package/dist/{access-namespace-preflight-ShnAJ9uL.d.ts → access-namespace-preflight-CE-RrXKu.d.ts} +1 -1
  32. package/dist/access-namespace-preflight.d.ts +4 -3
  33. package/dist/access-namespace-preflight.js +33 -25
  34. package/dist/access-observe-transcript.d.ts +12 -11
  35. package/dist/access-observe-write-category.d.ts +5 -3
  36. package/dist/access-observe-write-category.js +4 -4
  37. package/dist/access-observe-write-surface.d.ts +16 -14
  38. package/dist/access-observe-write-surface.js +33 -25
  39. package/dist/access-offline-manifest.d.ts +12 -11
  40. package/dist/access-operations-batch.js +35 -28
  41. package/dist/access-operations.d.ts +17 -15
  42. package/dist/access-operations.js +41 -33
  43. package/dist/access-recall-concurrency.d.ts +16 -14
  44. package/dist/access-recall-concurrency.js +33 -25
  45. package/dist/access-recall-response.d.ts +16 -14
  46. package/dist/access-recall-response.js +33 -25
  47. package/dist/access-recall-surface.d.ts +16 -14
  48. package/dist/access-recall-surface.js +33 -25
  49. package/dist/access-schema.d.ts +10 -2
  50. package/dist/access-schema.js +5 -3
  51. package/dist/{access-service-DjG_e2cM.d.ts → access-service-Cww3xAAy.d.ts} +13 -10
  52. package/dist/access-service-helpers.d.ts +16 -14
  53. package/dist/access-service.d.ts +16 -14
  54. package/dist/access-service.js +33 -25
  55. package/dist/access-surface-catalog.d.ts +16 -14
  56. package/dist/access-surface-catalog.js +39 -27
  57. package/dist/access-surface-catalog.js.map +1 -1
  58. package/dist/access-wearables-meetings-surface.d.ts +5 -4
  59. package/dist/action-confidence.d.ts +2 -1
  60. package/dist/active-memory-bridge.d.ts +2 -1
  61. package/dist/active-recall.d.ts +2 -1
  62. package/dist/active-recall.js +5 -3
  63. package/dist/active-recall.js.map +1 -1
  64. package/dist/activity/digest.d.ts +2 -1
  65. package/dist/ambient-provenance.d.ts +2 -1
  66. package/dist/artifact-search.d.ts +2 -1
  67. package/dist/background-generation.d.ts +2 -1
  68. package/dist/behavior-learner.d.ts +2 -1
  69. package/dist/behavior-signals.d.ts +2 -1
  70. package/dist/bootstrap.d.ts +12 -11
  71. package/dist/briefing-window.d.ts +3 -2
  72. package/dist/briefing.d.ts +3 -2
  73. package/dist/briefing.js +8 -8
  74. package/dist/buffer-surprise-report.d.ts +2 -1
  75. package/dist/buffer-turn-helpers.d.ts +2 -1
  76. package/dist/buffer.d.ts +3 -2
  77. package/dist/bulk-import/index.d.ts +4 -3
  78. package/dist/calibration.d.ts +2 -1
  79. package/dist/capabilities.d.ts +2 -1
  80. package/dist/{capsule-crypto-YO5QJ6L3.js → capsule-crypto-7FJQINUR.js} +2 -2
  81. package/dist/{catalog-BhuXaQHx.d.ts → catalog-Ya3DDn_T.d.ts} +1 -1
  82. package/dist/causal-behavior.d.ts +2 -1
  83. package/dist/causal-consolidation.d.ts +2 -1
  84. package/dist/causal-consolidation.js +9 -9
  85. package/dist/causal-trajectory-graph.d.ts +2 -1
  86. package/dist/{chunk-QVSRE355.js → chunk-2AV75BJW.js} +29 -1
  87. package/dist/chunk-2AV75BJW.js.map +1 -0
  88. package/dist/{chunk-WNPRRBOE.js → chunk-2HDLDBJW.js} +2 -2
  89. package/dist/{chunk-BXLOS5AJ.js → chunk-2NLLXCJG.js} +2 -2
  90. package/dist/chunk-2WMXZYMS.js +25 -0
  91. package/dist/chunk-2WMXZYMS.js.map +1 -0
  92. package/dist/{chunk-FSUFKIFS.js → chunk-2YIUUXNK.js} +2 -2
  93. package/dist/{chunk-OP722LOG.js → chunk-3254BYQV.js} +1 -1
  94. package/dist/{chunk-IUTYNDFS.js → chunk-3K64PLY3.js} +293 -43
  95. package/dist/chunk-3K64PLY3.js.map +1 -0
  96. package/dist/{chunk-CQ4BTPX6.js → chunk-3YQ7VLP3.js} +2 -2
  97. package/dist/{chunk-ZFU6QNRN.js → chunk-4WMGRLTV.js} +2 -2
  98. package/dist/{chunk-U26LB4WA.js → chunk-5AJZ7EUW.js} +2 -2
  99. package/dist/chunk-5KVT6G5U.js +31 -0
  100. package/dist/chunk-5KVT6G5U.js.map +1 -0
  101. package/dist/{chunk-WN2OXGGH.js → chunk-66YUOI53.js} +1 -1
  102. package/dist/chunk-66YUOI53.js.map +1 -0
  103. package/dist/{chunk-R45VFSEV.js → chunk-7F47R4H4.js} +2 -2
  104. package/dist/{chunk-2EYZ32LH.js → chunk-7RGX7BMF.js} +24 -2
  105. package/dist/{chunk-2EYZ32LH.js.map → chunk-7RGX7BMF.js.map} +1 -1
  106. package/dist/{chunk-LVFI5LG7.js → chunk-A7GQBJP5.js} +7 -7
  107. package/dist/chunk-AS2NOPDM.js +30 -0
  108. package/dist/chunk-AS2NOPDM.js.map +1 -0
  109. package/dist/{chunk-CTETTVDN.js → chunk-BZDK5EOD.js} +2 -2
  110. package/dist/{chunk-PLJ2MQFT.js → chunk-C3YEB7CR.js} +7 -7
  111. package/dist/{chunk-XJLTQTAO.js → chunk-D7UUB33A.js} +2 -2
  112. package/dist/{chunk-DMTSKY4W.js → chunk-DABSYX7V.js} +3 -3
  113. package/dist/{chunk-3RLWUW7G.js → chunk-DDGQDNQW.js} +2 -2
  114. package/dist/{chunk-ZGXHTV5Y.js → chunk-EOXCOZ6L.js} +2 -2
  115. package/dist/{chunk-EAARGPWI.js → chunk-F3TURDFG.js} +3 -1
  116. package/dist/chunk-F3TURDFG.js.map +1 -0
  117. package/dist/{chunk-DLPMOSNH.js → chunk-GKKLI23D.js} +2 -2
  118. package/dist/{chunk-I65KB36L.js → chunk-GMU7MAHS.js} +9 -9
  119. package/dist/{chunk-JC2OBYYD.js → chunk-HKQAI6XI.js} +2 -2
  120. package/dist/{chunk-ETE3SGAH.js → chunk-IAGEEVQL.js} +2 -2
  121. package/dist/{chunk-HO2P3FAX.js → chunk-IOTYIECA.js} +19 -15
  122. package/dist/chunk-IOTYIECA.js.map +1 -0
  123. package/dist/{chunk-GIM2AGFL.js → chunk-IWHNT35B.js} +3 -3
  124. package/dist/{chunk-AHHFBJX7.js → chunk-JDL5BYYF.js} +3 -3
  125. package/dist/{chunk-K27INAPR.js → chunk-JMBTNVMW.js} +2 -2
  126. package/dist/{chunk-ZOGKZ2XT.js → chunk-JUOJGZPV.js} +6 -2
  127. package/dist/chunk-JUOJGZPV.js.map +1 -0
  128. package/dist/{chunk-L732NBPR.js → chunk-K3IVJ5ML.js} +96 -42
  129. package/dist/chunk-K3IVJ5ML.js.map +1 -0
  130. package/dist/{chunk-JMAP6L6Q.js → chunk-KDLOKVX7.js} +2 -2
  131. package/dist/chunk-KIW3OOZE.js +39 -0
  132. package/dist/chunk-KIW3OOZE.js.map +1 -0
  133. package/dist/{chunk-HK44SV6K.js → chunk-KORQWGUA.js} +2 -2
  134. package/dist/{chunk-VDX2J7OX.js → chunk-KQAFEZQX.js} +2 -2
  135. package/dist/{chunk-4IGOLIWM.js → chunk-L63M2PE4.js} +2 -2
  136. package/dist/{chunk-BIANISES.js → chunk-LD22AAJI.js} +2 -2
  137. package/dist/chunk-LVTT5AUG.js +79 -0
  138. package/dist/chunk-LVTT5AUG.js.map +1 -0
  139. package/dist/{chunk-RXYO6NA6.js → chunk-M6FKXOYV.js} +2 -2
  140. package/dist/{chunk-LCVYO3ON.js → chunk-MOL7JK4F.js} +2 -2
  141. package/dist/{chunk-VNQRRUNS.js → chunk-O6ZSWHVR.js} +2 -3
  142. package/dist/chunk-O6ZSWHVR.js.map +1 -0
  143. package/dist/chunk-OCX7OWOC.js +95 -0
  144. package/dist/chunk-OCX7OWOC.js.map +1 -0
  145. package/dist/{chunk-HPMCKAET.js → chunk-OGAKUA7I.js} +2 -2
  146. package/dist/{chunk-AOGICQMH.js → chunk-PF7LQ22G.js} +3 -3
  147. package/dist/{chunk-AUSRUOMQ.js → chunk-PW4HTWXL.js} +2 -2
  148. package/dist/{chunk-ZYRAY5FL.js → chunk-QCTXQ2HW.js} +2 -2
  149. package/dist/chunk-QZ4U67KO.js +98 -0
  150. package/dist/chunk-QZ4U67KO.js.map +1 -0
  151. package/dist/{chunk-G3NTZZWT.js → chunk-R3H2AXO2.js} +2 -2
  152. package/dist/{chunk-HSJU6JFT.js → chunk-ROXDOKLM.js} +12 -6
  153. package/dist/chunk-ROXDOKLM.js.map +1 -0
  154. package/dist/{chunk-OCWFKD5Q.js → chunk-SUS64JER.js} +2 -2
  155. package/dist/{chunk-RTXHUVOD.js → chunk-SZV2L2IG.js} +10 -10
  156. package/dist/{chunk-AIVRD66I.js → chunk-T3F2HWIG.js} +2 -2
  157. package/dist/chunk-TE6S7KDF.js +47 -0
  158. package/dist/chunk-TE6S7KDF.js.map +1 -0
  159. package/dist/{chunk-KJQ4Y2PY.js → chunk-VDLNQVYW.js} +8 -8
  160. package/dist/{chunk-N7B6V7SG.js → chunk-VHANUT45.js} +5 -5
  161. package/dist/{chunk-E4FRR4MA.js → chunk-VJXMFBVR.js} +2 -2
  162. package/dist/{chunk-Q62GA5U2.js → chunk-VW5TGNJN.js} +2 -2
  163. package/dist/{chunk-Q62GA5U2.js.map → chunk-VW5TGNJN.js.map} +1 -1
  164. package/dist/chunk-VYDGHJIN.js +17 -0
  165. package/dist/chunk-VYDGHJIN.js.map +1 -0
  166. package/dist/{chunk-GWNSKQDA.js → chunk-W44T2KHG.js} +3 -3
  167. package/dist/{chunk-2UINSKQC.js → chunk-W6YDAIVB.js} +12 -6
  168. package/dist/chunk-W6YDAIVB.js.map +1 -0
  169. package/dist/{chunk-GWEZNCGA.js → chunk-WJPR2XUN.js} +2 -2
  170. package/dist/{chunk-2PDMIPMP.js → chunk-WLHPCAVD.js} +6 -6
  171. package/dist/chunk-WLHPCAVD.js.map +1 -0
  172. package/dist/{chunk-KCKXOS4Y.js → chunk-WNMVUWI7.js} +3 -3
  173. package/dist/{chunk-DQEMWVMT.js → chunk-X7Y7WX73.js} +1 -1
  174. package/dist/{chunk-LWF6GOII.js → chunk-XK76RJBN.js} +2 -2
  175. package/dist/{chunk-AAX22E4K.js → chunk-XLPZN3A5.js} +2 -2
  176. package/dist/{chunk-VBK6SRNE.js → chunk-XOCGC3FJ.js} +2 -2
  177. package/dist/{chunk-ADARR5KF.js → chunk-Y77UTH7F.js} +42 -39
  178. package/dist/chunk-Y77UTH7F.js.map +1 -0
  179. package/dist/chunk-YE4JBZO5.js +44 -0
  180. package/dist/chunk-YE4JBZO5.js.map +1 -0
  181. package/dist/{chunk-AAAFZW3U.js → chunk-ZBSP4BSN.js} +2 -2
  182. package/dist/{chunk-VVX5PZFS.js → chunk-ZHXSOMYH.js} +2 -2
  183. package/dist/{chunk-7PSRCGWT.js → chunk-ZVQ5HF77.js} +2 -2
  184. package/dist/{cli-Cx9s_VRn.d.ts → cli-Cl7bKIWJ.d.ts} +5 -5
  185. package/dist/cli.d.ts +18 -16
  186. package/dist/cli.js +77 -67
  187. package/dist/coding/export-okf-codegraph.d.ts +2 -1
  188. package/dist/coding/export-okf-codegraph.js +7 -7
  189. package/dist/coding/pre-action-gate.d.ts +2 -1
  190. package/dist/compounding/engine.d.ts +3 -2
  191. package/dist/compounding/engine.js +8 -8
  192. package/dist/compounding/preference-consolidator.d.ts +2 -1
  193. package/dist/compression-optimizer.d.ts +2 -1
  194. package/dist/config.d.ts +2 -1
  195. package/dist/config.js +5 -3
  196. package/dist/connectors/codex-materialize-runner.d.ts +2 -1
  197. package/dist/connectors/codex-materialize-runner.js +8 -8
  198. package/dist/connectors/codex-materialize.d.ts +2 -1
  199. package/dist/connectors/index.d.ts +2 -1
  200. package/dist/connectors/index.js +8 -8
  201. package/dist/consolidation-provenance-check.d.ts +3 -2
  202. package/dist/consolidation-undo.d.ts +3 -2
  203. package/dist/contradiction/index.d.ts +5 -4
  204. package/dist/converge-config.d.ts +2 -1
  205. package/dist/convergence-refresh.d.ts +3 -2
  206. package/dist/convergence-refresh.js +10 -10
  207. package/dist/conversation-index/backend.d.ts +2 -1
  208. package/dist/conversation-index/chunker.d.ts +2 -1
  209. package/dist/conversation-index/faiss-adapter.d.ts +2 -1
  210. package/dist/conversation-index/indexer.d.ts +2 -1
  211. package/dist/conversation-index/search.d.ts +2 -1
  212. package/dist/corpus-watermark.d.ts +2 -1
  213. package/dist/corpus-watermark.js +10 -10
  214. package/dist/cross-lingual-recall.d.ts +2 -1
  215. package/dist/day-summary.d.ts +2 -1
  216. package/dist/deep-recall-config.d.ts +11 -1
  217. package/dist/deep-recall-config.js +6 -3
  218. package/dist/deep-recall-http-glue.d.ts +16 -14
  219. package/dist/deep-recall-http-glue.js +5 -5
  220. package/dist/deep-recall-mcp-tools.d.ts +16 -14
  221. package/dist/deep-recall-policy-llm.d.ts +3 -2
  222. package/dist/deep-recall-seeds.d.ts +2 -1
  223. package/dist/delinearize.d.ts +2 -1
  224. package/dist/dependency-propagation-config.d.ts +2 -1
  225. package/dist/{dependency-propagation-delivery-C2QFQ97b.d.ts → dependency-propagation-delivery-CggS9BFT.d.ts} +1 -1
  226. package/dist/direct-answer-wiring.d.ts +2 -1
  227. package/dist/direct-answer.d.ts +2 -1
  228. package/dist/embedding-fallback.d.ts +2 -1
  229. package/dist/enrichment/index.d.ts +2 -1
  230. package/dist/entity-origin-fields.d.ts +2 -1
  231. package/dist/entity-retrieval.d.ts +3 -2
  232. package/dist/entity-retrieval.js +8 -8
  233. package/dist/entity-schema.d.ts +2 -1
  234. package/dist/episodic-context.d.ts +2 -1
  235. package/dist/eval-trajectory-contracts.d.ts +2 -1
  236. package/dist/eval-trajectory-store.d.ts +2 -1
  237. package/dist/eval-trajectory.d.ts +2 -1
  238. package/dist/explicit-capture.d.ts +12 -11
  239. package/dist/external-wiki-access.d.ts +16 -14
  240. package/dist/external-wiki-access.js +34 -26
  241. package/dist/external-wiki-collection-registration.d.ts +2 -1
  242. package/dist/external-wiki-collection.d.ts +2 -1
  243. package/dist/external-wiki-mcp-tools.d.ts +16 -14
  244. package/dist/extraction-error-classification.d.ts +2 -1
  245. package/dist/extraction-faithfulness.d.ts +3 -2
  246. package/dist/extraction-judge-telemetry.d.ts +3 -2
  247. package/dist/extraction-judge-training.d.ts +3 -2
  248. package/dist/extraction-judge.d.ts +3 -2
  249. package/dist/extraction-liveness.d.ts +2 -1
  250. package/dist/extraction-normalization.d.ts +2 -1
  251. package/dist/extraction-prompt.d.ts +2 -1
  252. package/dist/extraction-source-grounding-rules.d.ts +2 -1
  253. package/dist/extraction-source-grounding.d.ts +2 -1
  254. package/dist/extraction-span-config.d.ts +2 -1
  255. package/dist/extraction-span-materialize.d.ts +2 -1
  256. package/dist/extraction.d.ts +3 -2
  257. package/dist/extraction.js +8 -8
  258. package/dist/fallback-llm-codex-subscription.d.ts +2 -1
  259. package/dist/fallback-llm.d.ts +2 -1
  260. package/dist/{generic-recall-paths-CeKQsQEn.d.ts → generic-recall-paths-CoXPSnCw.d.ts} +1 -1
  261. package/dist/graph-append-error.d.ts +2 -1
  262. package/dist/graph-dashboard-diff.d.ts +2 -1
  263. package/dist/graph-dashboard-key.d.ts +2 -1
  264. package/dist/graph-dashboard-parser.d.ts +2 -1
  265. package/dist/graph-edge-reinforcement.d.ts +2 -1
  266. package/dist/graph-jsonl.d.ts +2 -1
  267. package/dist/graph-path-reconstruction.d.ts +2 -1
  268. package/dist/graph-path-scoring.d.ts +2 -1
  269. package/dist/graph-snapshot.d.ts +2 -1
  270. package/dist/graph.d.ts +2 -1
  271. package/dist/harmonic-retrieval.js +1 -1
  272. package/dist/importance.d.ts +2 -1
  273. package/dist/importers/index.d.ts +2 -1
  274. package/dist/importers/test-utils.d.ts +2 -1
  275. package/dist/in-flight-reads.d.ts +2 -1
  276. package/dist/{index-Bau-Wl0H.d.ts → index-fdw_oK5a.d.ts} +3 -3
  277. package/dist/index.d.ts +29 -27
  278. package/dist/index.js +109 -86
  279. package/dist/intent.d.ts +2 -1
  280. package/dist/lcm/engine.d.ts +2 -1
  281. package/dist/lcm/engine.js +3 -3
  282. package/dist/lcm/index.d.ts +2 -1
  283. package/dist/lcm/index.js +11 -11
  284. package/dist/lcm/tools.d.ts +2 -1
  285. package/dist/lifecycle.d.ts +2 -1
  286. package/dist/live-connectors-runner.d.ts +2 -1
  287. package/dist/{local-llm-Bj-m01Ro.d.ts → local-llm-3-jtw52a.d.ts} +1 -1
  288. package/dist/local-llm-config.js +1 -1
  289. package/dist/local-llm-helpers.d.ts +3 -2
  290. package/dist/local-llm.d.ts +3 -2
  291. package/dist/local-model-endpoint.d.ts +2 -1
  292. package/dist/location/index.d.ts +6 -5
  293. package/dist/location/index.js +10 -10
  294. package/dist/maintenance/memory-governance.d.ts +2 -1
  295. package/dist/maintenance/memory-governance.js +8 -8
  296. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +3 -2
  297. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +8 -8
  298. package/dist/maintenance/rebuild-memory-projection.d.ts +3 -2
  299. package/dist/maintenance/rebuild-memory-projection.js +9 -9
  300. package/dist/{maintenance-Ye-y-c7f.d.ts → maintenance-DgeeH0a1.d.ts} +3 -3
  301. package/dist/mcp-memory-inspector-app.d.ts +18 -16
  302. package/dist/mcp-read-only-tools.js +1 -1
  303. package/dist/memory-action-policy.d.ts +2 -1
  304. package/dist/memory-cache.d.ts +2 -1
  305. package/dist/memory-controller.d.ts +2 -1
  306. package/dist/memory-lifecycle-ledger-utils.d.ts +2 -1
  307. package/dist/memory-projection-store.d.ts +2 -1
  308. package/dist/memory-provenance.d.ts +2 -1
  309. package/dist/memory-snapshot.d.ts +2 -1
  310. package/dist/memory-subject-cli.d.ts +16 -14
  311. package/dist/memory-subject.d.ts +16 -14
  312. package/dist/memory-worth-outcomes.d.ts +3 -2
  313. package/dist/models-json.d.ts +2 -1
  314. package/dist/namespaces/migrate.d.ts +4 -3
  315. package/dist/namespaces/migrate.js +9 -9
  316. package/dist/namespaces/principal.d.ts +2 -1
  317. package/dist/namespaces/search.d.ts +2 -1
  318. package/dist/namespaces/search.js +4 -4
  319. package/dist/namespaces/storage.d.ts +4 -3
  320. package/dist/namespaces/storage.js +8 -8
  321. package/dist/native-knowledge.d.ts +2 -1
  322. package/dist/offline-sync-impression-drain.d.ts +2 -1
  323. package/dist/operator-doctor-corpus.d.ts +2 -1
  324. package/dist/operator-doctor-corpus.js +11 -11
  325. package/dist/operator-doctor-replica.d.ts +2 -1
  326. package/dist/operator-toolkit.d.ts +4 -3
  327. package/dist/operator-toolkit.js +20 -19
  328. package/dist/orchestration/compression-guideline-coordinator.d.ts +3 -2
  329. package/dist/orchestration/maintenance.d.ts +5 -4
  330. package/dist/orchestration/maintenance.js +16 -16
  331. package/dist/{orchestrator-fFDDYUUV.d.ts → orchestrator-VXWKdatm.d.ts} +10 -10
  332. package/dist/orchestrator.d.ts +12 -11
  333. package/dist/orchestrator.js +93 -83
  334. package/dist/patterns-cli.d.ts +2 -1
  335. package/dist/{pipeline-D_j5n_Ih.d.ts → pipeline-CwXZBKR5.d.ts} +1 -1
  336. package/dist/policy-runtime.d.ts +2 -1
  337. package/dist/proactive-contention.d.ts +3 -2
  338. package/dist/provenance.d.ts +2 -1
  339. package/dist/{public-http-CjiSqxUx.d.ts → public-http-DdmM4scJ.d.ts} +1 -1
  340. package/dist/{qmd-CnxVjKrv.d.ts → qmd-DOLTPIQg.d.ts} +1 -1
  341. package/dist/qmd-preflight.d.ts +3 -2
  342. package/dist/qmd-recall-cache.d.ts +2 -1
  343. package/dist/qmd.d.ts +3 -2
  344. package/dist/recall-concurrency-config.d.ts +2 -1
  345. package/dist/recall-disclosure-escalation.d.ts +2 -1
  346. package/dist/recall-explain-renderer.d.ts +2 -1
  347. package/dist/recall-explain-renderer.js +3 -3
  348. package/dist/recall-memory-map.d.ts +2 -1
  349. package/dist/recall-navigate-access.d.ts +2 -1
  350. package/dist/recall-navigate-access.js +2 -2
  351. package/dist/recall-navigate-budget.js +3 -13
  352. package/dist/recall-navigate-budget.js.map +1 -1
  353. package/dist/recall-navigate-disclosure.d.ts +2 -1
  354. package/dist/recall-navigate-disclosure.js +4 -23
  355. package/dist/recall-navigate-disclosure.js.map +1 -1
  356. package/dist/recall-navigate-traverse.js +4 -37
  357. package/dist/recall-navigate-traverse.js.map +1 -1
  358. package/dist/recall-navigate-window.js +4 -26
  359. package/dist/recall-navigate-window.js.map +1 -1
  360. package/dist/recall-navigate.d.ts +2 -1
  361. package/dist/recall-navigate.js +2 -2
  362. package/dist/recall-navigation-config.d.ts +34 -0
  363. package/dist/recall-navigation-config.js +16 -0
  364. package/dist/recall-navigation-config.js.map +1 -0
  365. package/dist/recall-navigation-http-glue.d.ts +171 -0
  366. package/dist/recall-navigation-http-glue.js +9 -0
  367. package/dist/recall-navigation-http-glue.js.map +1 -0
  368. package/dist/recall-navigation-mcp-tools.d.ts +162 -0
  369. package/dist/recall-navigation-mcp-tools.js +8 -0
  370. package/dist/recall-navigation-mcp-tools.js.map +1 -0
  371. package/dist/recall-navigation-operations.d.ts +2 -0
  372. package/dist/recall-navigation-operations.js +245 -0
  373. package/dist/recall-navigation-operations.js.map +1 -0
  374. package/dist/recall-navigation-renderer.d.ts +36 -0
  375. package/dist/recall-navigation-renderer.js +8 -0
  376. package/dist/recall-navigation-renderer.js.map +1 -0
  377. package/dist/recall-navigation.d.ts +121 -0
  378. package/dist/recall-navigation.js +249 -0
  379. package/dist/recall-navigation.js.map +1 -0
  380. package/dist/recall-planner-llm.d.ts +2 -1
  381. package/dist/recall-state-view-admission.d.ts +3 -2
  382. package/dist/recall-state-view-anchors.d.ts +2 -1
  383. package/dist/recall-state.d.ts +2 -1
  384. package/dist/recall-tag-filter.d.ts +2 -1
  385. package/dist/recall-timings.d.ts +2 -1
  386. package/dist/recall-xray-cli.d.ts +2 -1
  387. package/dist/recall-xray-cli.js +4 -4
  388. package/dist/recall-xray-renderer.d.ts +2 -1
  389. package/dist/recall-xray-renderer.js +3 -3
  390. package/dist/recall-xray.d.ts +3 -2
  391. package/dist/recall-xray.js +2 -2
  392. package/dist/reconcile/cursor.d.ts +2 -1
  393. package/dist/reconcile/manifest.d.ts +2 -1
  394. package/dist/reconcile/plan.d.ts +2 -1
  395. package/dist/replay/normalizers/chatgpt.d.ts +2 -1
  396. package/dist/replay/normalizers/claude.d.ts +2 -1
  397. package/dist/replay/normalizers/openclaw.d.ts +2 -1
  398. package/dist/replay/normalizers/shared.d.ts +2 -1
  399. package/dist/replay/runner.d.ts +2 -1
  400. package/dist/replay/types.d.ts +2 -1
  401. package/dist/replica-divergence.d.ts +2 -1
  402. package/dist/replica-peers-config.d.ts +2 -1
  403. package/dist/resolve-auth-token.d.ts +2 -1
  404. package/dist/resume-bundles.js +6 -4
  405. package/dist/retrieval-agents.d.ts +3 -2
  406. package/dist/retrieval-tiers.d.ts +2 -1
  407. package/dist/routing/engine.d.ts +2 -1
  408. package/dist/routing/store.d.ts +2 -1
  409. package/dist/salvage-envelope.d.ts +2 -1
  410. package/dist/{scope-profiles-BajH5zAT.d.ts → scope-profiles-C564-hrv.d.ts} +1 -1
  411. package/dist/search/embed-helper.d.ts +2 -1
  412. package/dist/search/factory.d.ts +2 -1
  413. package/dist/search/factory.js +3 -3
  414. package/dist/search/index.d.ts +2 -1
  415. package/dist/search/index.js +7 -7
  416. package/dist/search/lancedb-backend.d.ts +2 -1
  417. package/dist/search/meilisearch-backend.d.ts +2 -1
  418. package/dist/search/noop-backend.d.ts +2 -1
  419. package/dist/search/orama-backend.d.ts +2 -1
  420. package/dist/search/port.d.ts +2 -1
  421. package/dist/search/remote-backend.d.ts +2 -1
  422. package/dist/{semantic-consolidation-Bu6d3O7R.d.ts → semantic-consolidation-g6x-ShY8.d.ts} +1 -1
  423. package/dist/semantic-consolidation.d.ts +3 -2
  424. package/dist/semantic-consolidation.js +9 -9
  425. package/dist/semantic-rule-promotion.js +8 -8
  426. package/dist/semantic-rule-verifier.d.ts +2 -1
  427. package/dist/semantic-rule-verifier.js +8 -8
  428. package/dist/{service-ChFwWtLS.d.ts → service-CaCOk0rd.d.ts} +2 -2
  429. package/dist/session-observer-bands.d.ts +2 -1
  430. package/dist/session-observer-state.d.ts +2 -1
  431. package/dist/shared-context/manager.d.ts +2 -1
  432. package/dist/signal.d.ts +2 -1
  433. package/dist/source-agent-qualifier.d.ts +2 -1
  434. package/dist/source-agent-qualifier.js +8 -8
  435. package/dist/standup/build.js +8 -8
  436. package/dist/{storage-BDKQdsmB.d.ts → storage-C9nsZX5Q.d.ts} +1 -1
  437. package/dist/storage.d.ts +3 -2
  438. package/dist/storage.js +7 -7
  439. package/dist/subject-config.d.ts +2 -1
  440. package/dist/summarizer.d.ts +2 -1
  441. package/dist/summary-snapshot.d.ts +2 -1
  442. package/dist/support-passport/index.d.ts +19 -17
  443. package/dist/support-passport/index.js +36 -28
  444. package/dist/{tagging-CwK6um2q.d.ts → tagging-BA4RFdH3.d.ts} +2 -2
  445. package/dist/temporal-supersession.d.ts +3 -2
  446. package/dist/temporal-timeline-recall.d.ts +2 -1
  447. package/dist/temporal-validity.d.ts +2 -1
  448. package/dist/threading.d.ts +2 -1
  449. package/dist/tier-migration.d.ts +3 -2
  450. package/dist/tier-routing.d.ts +2 -1
  451. package/dist/topics.d.ts +2 -1
  452. package/dist/transcript.d.ts +2 -1
  453. package/dist/transfer/backup.js +2 -2
  454. package/dist/transfer/capsule-export.js +2 -2
  455. package/dist/transfer/capsule-import.js +2 -2
  456. package/dist/transfer/export-okf.d.ts +2 -1
  457. package/dist/transfer/export-okf.js +8 -8
  458. package/dist/trust-score-stage.d.ts +2 -1
  459. package/dist/trust-score.d.ts +2 -1
  460. package/dist/{types-B65IoepH.d.ts → types-Sps-lg5I.d.ts} +2 -1
  461. package/dist/types.d.ts +2 -1
  462. package/dist/types.js +1 -1
  463. package/dist/utility-runtime.d.ts +2 -1
  464. package/dist/verified-recall.js +8 -8
  465. package/dist/who-knows-cli.d.ts +16 -14
  466. package/dist/who-knows-cli.js +9 -9
  467. package/dist/who-knows.d.ts +16 -14
  468. package/dist/who-knows.js +8 -8
  469. package/dist/write-envelope.d.ts +2 -1
  470. package/package.json +2 -2
  471. package/src/access-boundary.ts +2 -0
  472. package/src/access-category-alias.test.ts +57 -0
  473. package/src/access-http.ts +3 -3
  474. package/src/access-mcp-output-schemas.ts +30 -0
  475. package/src/access-mcp.ts +3 -3
  476. package/src/access-observe-write-category.ts +20 -1
  477. package/src/access-operations.ts +2 -0
  478. package/src/access-schema.ts +10 -0
  479. package/src/access-service.ts +13 -23
  480. package/src/access-surface-catalog.test.ts +30 -2
  481. package/src/access-surface-catalog.ts +4 -0
  482. package/src/cli/recall-navigation-commands.ts +85 -0
  483. package/src/cli.ts +2 -2
  484. package/src/config.ts +4 -0
  485. package/src/deep-recall-config.ts +32 -0
  486. package/src/index.ts +1 -2
  487. package/src/local-llm-config.test.ts +21 -0
  488. package/src/local-llm-config.ts +1 -2
  489. package/src/mcp-read-only-tools.ts +2 -0
  490. package/src/orchestration/recall-internal.ts +4 -4
  491. package/src/recall-navigation-config.test.ts +56 -0
  492. package/src/recall-navigation-config.ts +107 -0
  493. package/src/recall-navigation-http-glue.ts +141 -0
  494. package/src/recall-navigation-mcp-tools.ts +60 -0
  495. package/src/recall-navigation-operations.ts +111 -0
  496. package/src/recall-navigation-renderer.ts +49 -0
  497. package/src/recall-navigation-surface.test.ts +474 -0
  498. package/src/recall-navigation.test.ts +405 -0
  499. package/src/recall-navigation.ts +429 -0
  500. package/src/recall-xray.ts +1 -1
  501. package/src/types.ts +2 -0
  502. package/dist/chunk-2PDMIPMP.js.map +0 -1
  503. package/dist/chunk-2UINSKQC.js.map +0 -1
  504. package/dist/chunk-ADARR5KF.js.map +0 -1
  505. package/dist/chunk-EAARGPWI.js.map +0 -1
  506. package/dist/chunk-HO2P3FAX.js.map +0 -1
  507. package/dist/chunk-HSJU6JFT.js.map +0 -1
  508. package/dist/chunk-IUTYNDFS.js.map +0 -1
  509. package/dist/chunk-L732NBPR.js.map +0 -1
  510. package/dist/chunk-QVSRE355.js.map +0 -1
  511. package/dist/chunk-RSSLDMFX.js +0 -14
  512. package/dist/chunk-RSSLDMFX.js.map +0 -1
  513. package/dist/chunk-VNQRRUNS.js.map +0 -1
  514. package/dist/chunk-WN2OXGGH.js.map +0 -1
  515. package/dist/chunk-ZOGKZ2XT.js.map +0 -1
  516. /package/dist/{capsule-crypto-YO5QJ6L3.js.map → capsule-crypto-7FJQINUR.js.map} +0 -0
  517. /package/dist/{chunk-WNPRRBOE.js.map → chunk-2HDLDBJW.js.map} +0 -0
  518. /package/dist/{chunk-BXLOS5AJ.js.map → chunk-2NLLXCJG.js.map} +0 -0
  519. /package/dist/{chunk-FSUFKIFS.js.map → chunk-2YIUUXNK.js.map} +0 -0
  520. /package/dist/{chunk-OP722LOG.js.map → chunk-3254BYQV.js.map} +0 -0
  521. /package/dist/{chunk-CQ4BTPX6.js.map → chunk-3YQ7VLP3.js.map} +0 -0
  522. /package/dist/{chunk-ZFU6QNRN.js.map → chunk-4WMGRLTV.js.map} +0 -0
  523. /package/dist/{chunk-U26LB4WA.js.map → chunk-5AJZ7EUW.js.map} +0 -0
  524. /package/dist/{chunk-R45VFSEV.js.map → chunk-7F47R4H4.js.map} +0 -0
  525. /package/dist/{chunk-LVFI5LG7.js.map → chunk-A7GQBJP5.js.map} +0 -0
  526. /package/dist/{chunk-CTETTVDN.js.map → chunk-BZDK5EOD.js.map} +0 -0
  527. /package/dist/{chunk-PLJ2MQFT.js.map → chunk-C3YEB7CR.js.map} +0 -0
  528. /package/dist/{chunk-XJLTQTAO.js.map → chunk-D7UUB33A.js.map} +0 -0
  529. /package/dist/{chunk-DMTSKY4W.js.map → chunk-DABSYX7V.js.map} +0 -0
  530. /package/dist/{chunk-3RLWUW7G.js.map → chunk-DDGQDNQW.js.map} +0 -0
  531. /package/dist/{chunk-ZGXHTV5Y.js.map → chunk-EOXCOZ6L.js.map} +0 -0
  532. /package/dist/{chunk-DLPMOSNH.js.map → chunk-GKKLI23D.js.map} +0 -0
  533. /package/dist/{chunk-I65KB36L.js.map → chunk-GMU7MAHS.js.map} +0 -0
  534. /package/dist/{chunk-JC2OBYYD.js.map → chunk-HKQAI6XI.js.map} +0 -0
  535. /package/dist/{chunk-ETE3SGAH.js.map → chunk-IAGEEVQL.js.map} +0 -0
  536. /package/dist/{chunk-GIM2AGFL.js.map → chunk-IWHNT35B.js.map} +0 -0
  537. /package/dist/{chunk-AHHFBJX7.js.map → chunk-JDL5BYYF.js.map} +0 -0
  538. /package/dist/{chunk-K27INAPR.js.map → chunk-JMBTNVMW.js.map} +0 -0
  539. /package/dist/{chunk-JMAP6L6Q.js.map → chunk-KDLOKVX7.js.map} +0 -0
  540. /package/dist/{chunk-HK44SV6K.js.map → chunk-KORQWGUA.js.map} +0 -0
  541. /package/dist/{chunk-VDX2J7OX.js.map → chunk-KQAFEZQX.js.map} +0 -0
  542. /package/dist/{chunk-4IGOLIWM.js.map → chunk-L63M2PE4.js.map} +0 -0
  543. /package/dist/{chunk-BIANISES.js.map → chunk-LD22AAJI.js.map} +0 -0
  544. /package/dist/{chunk-RXYO6NA6.js.map → chunk-M6FKXOYV.js.map} +0 -0
  545. /package/dist/{chunk-LCVYO3ON.js.map → chunk-MOL7JK4F.js.map} +0 -0
  546. /package/dist/{chunk-HPMCKAET.js.map → chunk-OGAKUA7I.js.map} +0 -0
  547. /package/dist/{chunk-AOGICQMH.js.map → chunk-PF7LQ22G.js.map} +0 -0
  548. /package/dist/{chunk-AUSRUOMQ.js.map → chunk-PW4HTWXL.js.map} +0 -0
  549. /package/dist/{chunk-ZYRAY5FL.js.map → chunk-QCTXQ2HW.js.map} +0 -0
  550. /package/dist/{chunk-G3NTZZWT.js.map → chunk-R3H2AXO2.js.map} +0 -0
  551. /package/dist/{chunk-OCWFKD5Q.js.map → chunk-SUS64JER.js.map} +0 -0
  552. /package/dist/{chunk-RTXHUVOD.js.map → chunk-SZV2L2IG.js.map} +0 -0
  553. /package/dist/{chunk-AIVRD66I.js.map → chunk-T3F2HWIG.js.map} +0 -0
  554. /package/dist/{chunk-KJQ4Y2PY.js.map → chunk-VDLNQVYW.js.map} +0 -0
  555. /package/dist/{chunk-N7B6V7SG.js.map → chunk-VHANUT45.js.map} +0 -0
  556. /package/dist/{chunk-E4FRR4MA.js.map → chunk-VJXMFBVR.js.map} +0 -0
  557. /package/dist/{chunk-GWNSKQDA.js.map → chunk-W44T2KHG.js.map} +0 -0
  558. /package/dist/{chunk-GWEZNCGA.js.map → chunk-WJPR2XUN.js.map} +0 -0
  559. /package/dist/{chunk-KCKXOS4Y.js.map → chunk-WNMVUWI7.js.map} +0 -0
  560. /package/dist/{chunk-DQEMWVMT.js.map → chunk-X7Y7WX73.js.map} +0 -0
  561. /package/dist/{chunk-LWF6GOII.js.map → chunk-XK76RJBN.js.map} +0 -0
  562. /package/dist/{chunk-AAX22E4K.js.map → chunk-XLPZN3A5.js.map} +0 -0
  563. /package/dist/{chunk-VBK6SRNE.js.map → chunk-XOCGC3FJ.js.map} +0 -0
  564. /package/dist/{chunk-AAAFZW3U.js.map → chunk-ZBSP4BSN.js.map} +0 -0
  565. /package/dist/{chunk-VVX5PZFS.js.map → chunk-ZHXSOMYH.js.map} +0 -0
  566. /package/dist/{chunk-7PSRCGWT.js.map → chunk-ZVQ5HF77.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  listNamespaces
3
- } from "./chunk-AHHFBJX7.js";
3
+ } from "./chunk-JDL5BYYF.js";
4
4
  import {
5
5
  capabilityAllowsNamespace
6
6
  } from "./chunk-MZWSOLMT.js";
@@ -282,4 +282,4 @@ export {
282
282
  computeServiceCorpusWatermarks,
283
283
  computeServiceCorpusCensus
284
284
  };
285
- //# sourceMappingURL=chunk-JMAP6L6Q.js.map
285
+ //# sourceMappingURL=chunk-KDLOKVX7.js.map
@@ -0,0 +1,39 @@
1
+ // src/recall-navigation-renderer.ts
2
+ function renderNavigationResult(result) {
3
+ if (!result.ok) {
4
+ return ["# Memory navigation", "", `- error: ${result.error}`, `- ${result.message}`, ""].join("\n");
5
+ }
6
+ const lines = ["# Memory navigation", ""];
7
+ lines.push(`- action: ${result.action}`);
8
+ lines.push(`- memory: ${result.memoryId}`);
9
+ lines.push(`- namespace: ${result.namespace}`);
10
+ if (result.items.length === 0) {
11
+ lines.push("- neighbors: (none)");
12
+ } else {
13
+ lines.push("");
14
+ for (const [index, item] of result.items.entries()) {
15
+ const via = item.linkType !== void 0 ? ` via ${item.linkType}` : "";
16
+ lines.push(`${index + 1}. **${item.memoryId}** (${item.disclosure}${via})`);
17
+ if (item.content !== void 0) {
18
+ lines.push(item.content);
19
+ } else {
20
+ lines.push(` ${item.preview.replace(/\s+/g, " ").trim()}`);
21
+ }
22
+ }
23
+ }
24
+ lines.push("");
25
+ lines.push(
26
+ `- budget: ${result.budget.used}/${result.budget.chars} chars${result.truncated ? " (truncated)" : ""}`
27
+ );
28
+ const spend = result.disclosureSpend;
29
+ lines.push(
30
+ `- disclosure spend: chunk=${spend.chunk.estimatedTokens}t, section=${spend.section.estimatedTokens}t, raw=${spend.raw.estimatedTokens}t`
31
+ );
32
+ lines.push("");
33
+ return lines.join("\n");
34
+ }
35
+
36
+ export {
37
+ renderNavigationResult
38
+ };
39
+ //# sourceMappingURL=chunk-KIW3OOZE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/recall-navigation-renderer.ts"],"sourcesContent":["/**\n * Shared markdown renderer for recall navigation (issue #1956).\n *\n * Rule 22: CLI text output, MCP `rendered`, and HTTP human output all\n * render through this one module — never forked per surface.\n * Deterministic: items in result order, budget and disclosure spend last.\n */\n\nimport type { RecallNavigationResult } from \"./recall-navigation.js\";\n\ntype NavigationRenderInput = RecallNavigationResult extends infer Result\n ? Result extends { rendered: string }\n ? Omit<Result, \"rendered\">\n : never\n : never;\n\nexport function renderNavigationResult(result: NavigationRenderInput): string {\n if (!result.ok) {\n return [\"# Memory navigation\", \"\", `- error: ${result.error}`, `- ${result.message}`, \"\"].join(\"\\n\");\n }\n const lines = [\"# Memory navigation\", \"\"];\n lines.push(`- action: ${result.action}`);\n lines.push(`- memory: ${result.memoryId}`);\n lines.push(`- namespace: ${result.namespace}`);\n if (result.items.length === 0) {\n lines.push(\"- neighbors: (none)\");\n } else {\n lines.push(\"\");\n for (const [index, item] of result.items.entries()) {\n const via = item.linkType !== undefined ? ` via ${item.linkType}` : \"\";\n lines.push(`${index + 1}. **${item.memoryId}** (${item.disclosure}${via})`);\n if (item.content !== undefined) {\n lines.push(item.content);\n } else {\n lines.push(` ${item.preview.replace(/\\s+/g, \" \").trim()}`);\n }\n }\n }\n lines.push(\"\");\n lines.push(\n `- budget: ${result.budget.used}/${result.budget.chars} chars${result.truncated ? \" (truncated)\" : \"\"}`,\n );\n const spend = result.disclosureSpend;\n lines.push(\n `- disclosure spend: chunk=${spend.chunk.estimatedTokens}t, section=${spend.section.estimatedTokens}t, raw=${spend.raw.estimatedTokens}t`,\n );\n lines.push(\"\");\n return lines.join(\"\\n\");\n}\n"],"mappings":";AAgBO,SAAS,uBAAuB,QAAuC;AAC5E,MAAI,CAAC,OAAO,IAAI;AACd,WAAO,CAAC,uBAAuB,IAAI,YAAY,OAAO,KAAK,IAAI,KAAK,OAAO,OAAO,IAAI,EAAE,EAAE,KAAK,IAAI;AAAA,EACrG;AACA,QAAM,QAAQ,CAAC,uBAAuB,EAAE;AACxC,QAAM,KAAK,aAAa,OAAO,MAAM,EAAE;AACvC,QAAM,KAAK,aAAa,OAAO,QAAQ,EAAE;AACzC,QAAM,KAAK,gBAAgB,OAAO,SAAS,EAAE;AAC7C,MAAI,OAAO,MAAM,WAAW,GAAG;AAC7B,UAAM,KAAK,qBAAqB;AAAA,EAClC,OAAO;AACL,UAAM,KAAK,EAAE;AACb,eAAW,CAAC,OAAO,IAAI,KAAK,OAAO,MAAM,QAAQ,GAAG;AAClD,YAAM,MAAM,KAAK,aAAa,SAAY,QAAQ,KAAK,QAAQ,KAAK;AACpE,YAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,KAAK,QAAQ,OAAO,KAAK,UAAU,GAAG,GAAG,GAAG;AAC1E,UAAI,KAAK,YAAY,QAAW;AAC9B,cAAM,KAAK,KAAK,OAAO;AAAA,MACzB,OAAO;AACL,cAAM,KAAK,MAAM,KAAK,QAAQ,QAAQ,QAAQ,GAAG,EAAE,KAAK,CAAC,EAAE;AAAA,MAC7D;AAAA,IACF;AAAA,EACF;AACA,QAAM,KAAK,EAAE;AACb,QAAM;AAAA,IACJ,aAAa,OAAO,OAAO,IAAI,IAAI,OAAO,OAAO,KAAK,SAAS,OAAO,YAAY,iBAAiB,EAAE;AAAA,EACvG;AACA,QAAM,QAAQ,OAAO;AACrB,QAAM;AAAA,IACJ,6BAA6B,MAAM,MAAM,eAAe,cAAc,MAAM,QAAQ,eAAe,UAAU,MAAM,IAAI,eAAe;AAAA,EACxI;AACA,QAAM,KAAK,EAAE;AACb,SAAO,MAAM,KAAK,IAAI;AACxB;","names":[]}
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-PIWFNPQT.js";
8
8
  import {
9
9
  StorageManager
10
- } from "./chunk-I65KB36L.js";
10
+ } from "./chunk-GMU7MAHS.js";
11
11
  import {
12
12
  projectProceduresToSkills
13
13
  } from "./chunk-236PXYG7.js";
@@ -134,4 +134,4 @@ export {
134
134
  runCodexMaterialize,
135
135
  runPostConsolidationMaterialize
136
136
  };
137
- //# sourceMappingURL=chunk-HK44SV6K.js.map
137
+ //# sourceMappingURL=chunk-KORQWGUA.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-WEHSQBFR.js";
7
7
  import {
8
8
  encryptCapsuleFile
9
- } from "./chunk-DQEMWVMT.js";
9
+ } from "./chunk-X7Y7WX73.js";
10
10
  import {
11
11
  CAPSULE_SCHEMA_VERSION,
12
12
  EXPORT_FORMAT
@@ -261,4 +261,4 @@ export {
261
261
  exportCapsule,
262
262
  isValidCapsuleSince
263
263
  };
264
- //# sourceMappingURL=chunk-VDX2J7OX.js.map
264
+ //# sourceMappingURL=chunk-KQAFEZQX.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  RECALL_DISCLOSURE_LEVELS
3
- } from "./chunk-WN2OXGGH.js";
3
+ } from "./chunk-66YUOI53.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-4IGOLIWM.js.map
51
+ //# sourceMappingURL=chunk-L63M2PE4.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runLocationSync
3
- } from "./chunk-AOGICQMH.js";
3
+ } from "./chunk-PF7LQ22G.js";
4
4
  import {
5
5
  log
6
6
  } from "./chunk-3WCASNQZ.js";
@@ -58,4 +58,4 @@ export {
58
58
  LOCATION_SYNC_DEFAULT_INTERVAL_MS,
59
59
  startLocationAutoSync
60
60
  };
61
- //# sourceMappingURL=chunk-BIANISES.js.map
61
+ //# sourceMappingURL=chunk-LD22AAJI.js.map
@@ -0,0 +1,79 @@
1
+ import {
2
+ coerceBool,
3
+ coerceNumber
4
+ } from "./chunk-PQVCH2AE.js";
5
+
6
+ // src/recall-navigation-config.ts
7
+ var DEFAULT_NAVIGATION_WINDOW_SNAPSHOTS = 3;
8
+ var RECALL_NAVIGATION_CONFIG_DEFAULTS = {
9
+ enabled: true,
10
+ windowSnapshots: DEFAULT_NAVIGATION_WINDOW_SNAPSHOTS,
11
+ maxNeighbors: 10
12
+ };
13
+ function shouldRecordRecallAuthorityHistory(config) {
14
+ return config.recallMemoryHandles === true || config.recallNavigation?.enabled === true;
15
+ }
16
+ function parseFlag(src, key, fallback) {
17
+ const value = src[key];
18
+ if (value === void 0 || value === null) return fallback;
19
+ const coerced = coerceBool(value);
20
+ if (coerced === void 0) {
21
+ throw new Error(
22
+ `recallNavigation.${key} must be a boolean (or "true"/"false"/"1"/"0"); got ${JSON.stringify(value)}`
23
+ );
24
+ }
25
+ return coerced;
26
+ }
27
+ function parseBoundedInt(src, key, fallback, min, max) {
28
+ const value = src[key];
29
+ if (value === void 0 || value === null) return fallback;
30
+ const coerced = coerceNumber(value);
31
+ if (coerced === void 0 || !Number.isFinite(coerced) || !Number.isInteger(coerced)) {
32
+ throw new Error(
33
+ `recallNavigation.${key} must be an integer between ${min} and ${max}; got ${JSON.stringify(value)}`
34
+ );
35
+ }
36
+ if (coerced < min || coerced > max) {
37
+ throw new Error(
38
+ `recallNavigation.${key} must be an integer between ${min} and ${max}; got ${JSON.stringify(value)}`
39
+ );
40
+ }
41
+ return coerced;
42
+ }
43
+ function parseRecallNavigationConfig(raw) {
44
+ if (raw === void 0 || raw === null) return { ...RECALL_NAVIGATION_CONFIG_DEFAULTS };
45
+ if (typeof raw !== "object" || Array.isArray(raw)) {
46
+ throw new Error(`recallNavigation must be an object; got ${JSON.stringify(raw)}`);
47
+ }
48
+ const src = raw;
49
+ const { enabled: _enabled, windowSnapshots: _windowSnapshots, maxNeighbors: _maxNeighbors, ...unknown } = src;
50
+ const unknownKey = Object.keys(unknown)[0];
51
+ if (unknownKey !== void 0) {
52
+ throw new Error(`recallNavigation contains unknown key ${JSON.stringify(unknownKey)}`);
53
+ }
54
+ return {
55
+ enabled: parseFlag(src, "enabled", RECALL_NAVIGATION_CONFIG_DEFAULTS.enabled),
56
+ windowSnapshots: parseBoundedInt(
57
+ src,
58
+ "windowSnapshots",
59
+ RECALL_NAVIGATION_CONFIG_DEFAULTS.windowSnapshots,
60
+ 1,
61
+ 50
62
+ ),
63
+ maxNeighbors: parseBoundedInt(
64
+ src,
65
+ "maxNeighbors",
66
+ RECALL_NAVIGATION_CONFIG_DEFAULTS.maxNeighbors,
67
+ 1,
68
+ 50
69
+ )
70
+ };
71
+ }
72
+
73
+ export {
74
+ DEFAULT_NAVIGATION_WINDOW_SNAPSHOTS,
75
+ RECALL_NAVIGATION_CONFIG_DEFAULTS,
76
+ shouldRecordRecallAuthorityHistory,
77
+ parseRecallNavigationConfig
78
+ };
79
+ //# sourceMappingURL=chunk-LVTT5AUG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/recall-navigation-config.ts"],"sourcesContent":["/**\n * Recall-navigation config (issue #1956) — the `recallNavigation` block.\n *\n * Parsed the same way `deepRecall` is: shape-validated, string-coercion\n * safe (§24), no silent clamping of documented values (§33). Navigation is\n * a read-only surface over already-served recall results, so it defaults\n * ON; the `conservative` preset pins `enabled: false`.\n */\n\nimport { coerceBool, coerceNumber } from \"./connectors/coerce.js\";\n\nexport interface RecallNavigationConfig {\n /** Master switch. Default true (read-only, additive surface). */\n enabled: boolean;\n /**\n * How many of the session's most recent recall snapshots an expandable\n * or traversable id may come from. Default 3.\n */\n windowSnapshots: number;\n /** Ceiling for a traverse/entity-neighbor limit override. Default 10. */\n maxNeighbors: number;\n}\n\nexport interface RecallNavigationSettings {\n recallNavigation: RecallNavigationConfig;\n}\n\nexport const DEFAULT_NAVIGATION_WINDOW_SNAPSHOTS = 3;\n\nexport const RECALL_NAVIGATION_CONFIG_DEFAULTS: RecallNavigationConfig = {\n enabled: true,\n windowSnapshots: DEFAULT_NAVIGATION_WINDOW_SNAPSHOTS,\n maxNeighbors: 10,\n};\n\n/** Record served ids when display handles or navigation authority needs them. */\nexport function shouldRecordRecallAuthorityHistory(config: {\n recallMemoryHandles?: boolean;\n recallNavigation?: { enabled?: boolean };\n}): boolean {\n return config.recallMemoryHandles === true || config.recallNavigation?.enabled === true;\n}\n\nfunction parseFlag(src: Record<string, unknown>, key: string, fallback: boolean): boolean {\n const value = src[key];\n if (value === undefined || value === null) return fallback;\n const coerced = coerceBool(value);\n if (coerced === undefined) {\n throw new Error(\n `recallNavigation.${key} must be a boolean (or \"true\"/\"false\"/\"1\"/\"0\"); got ${JSON.stringify(value)}`,\n );\n }\n return coerced;\n}\n\nfunction parseBoundedInt(\n src: Record<string, unknown>,\n key: string,\n fallback: number,\n min: number,\n max: number,\n): number {\n const value = src[key];\n if (value === undefined || value === null) return fallback;\n const coerced = coerceNumber(value);\n if (coerced === undefined || !Number.isFinite(coerced) || !Number.isInteger(coerced)) {\n throw new Error(\n `recallNavigation.${key} must be an integer between ${min} and ${max}; got ${JSON.stringify(value)}`,\n );\n }\n if (coerced < min || coerced > max) {\n throw new Error(\n `recallNavigation.${key} must be an integer between ${min} and ${max}; got ${JSON.stringify(value)}`,\n );\n }\n return coerced;\n}\n\nexport function parseRecallNavigationConfig(raw: unknown): RecallNavigationConfig {\n if (raw === undefined || raw === null) return { ...RECALL_NAVIGATION_CONFIG_DEFAULTS };\n if (typeof raw !== \"object\" || Array.isArray(raw)) {\n throw new Error(`recallNavigation must be an object; got ${JSON.stringify(raw)}`);\n }\n const src = raw as Record<string, unknown>;\n const { enabled: _enabled, windowSnapshots: _windowSnapshots, maxNeighbors: _maxNeighbors, ...unknown } = src;\n const unknownKey = Object.keys(unknown)[0];\n if (unknownKey !== undefined) {\n throw new Error(`recallNavigation contains unknown key ${JSON.stringify(unknownKey)}`);\n }\n return {\n enabled: parseFlag(src, \"enabled\", RECALL_NAVIGATION_CONFIG_DEFAULTS.enabled),\n windowSnapshots: parseBoundedInt(\n src,\n \"windowSnapshots\",\n RECALL_NAVIGATION_CONFIG_DEFAULTS.windowSnapshots,\n 1,\n 50,\n ),\n maxNeighbors: parseBoundedInt(\n src,\n \"maxNeighbors\",\n RECALL_NAVIGATION_CONFIG_DEFAULTS.maxNeighbors,\n 1,\n 50,\n ),\n };\n}\n"],"mappings":";;;;;;AA2BO,IAAM,sCAAsC;AAE5C,IAAM,oCAA4D;AAAA,EACvE,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,cAAc;AAChB;AAGO,SAAS,mCAAmC,QAGvC;AACV,SAAO,OAAO,wBAAwB,QAAQ,OAAO,kBAAkB,YAAY;AACrF;AAEA,SAAS,UAAU,KAA8B,KAAa,UAA4B;AACxF,QAAM,QAAQ,IAAI,GAAG;AACrB,MAAI,UAAU,UAAa,UAAU,KAAM,QAAO;AAClD,QAAM,UAAU,WAAW,KAAK;AAChC,MAAI,YAAY,QAAW;AACzB,UAAM,IAAI;AAAA,MACR,oBAAoB,GAAG,uDAAuD,KAAK,UAAU,KAAK,CAAC;AAAA,IACrG;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,gBACP,KACA,KACA,UACA,KACA,KACQ;AACR,QAAM,QAAQ,IAAI,GAAG;AACrB,MAAI,UAAU,UAAa,UAAU,KAAM,QAAO;AAClD,QAAM,UAAU,aAAa,KAAK;AAClC,MAAI,YAAY,UAAa,CAAC,OAAO,SAAS,OAAO,KAAK,CAAC,OAAO,UAAU,OAAO,GAAG;AACpF,UAAM,IAAI;AAAA,MACR,oBAAoB,GAAG,+BAA+B,GAAG,QAAQ,GAAG,SAAS,KAAK,UAAU,KAAK,CAAC;AAAA,IACpG;AAAA,EACF;AACA,MAAI,UAAU,OAAO,UAAU,KAAK;AAClC,UAAM,IAAI;AAAA,MACR,oBAAoB,GAAG,+BAA+B,GAAG,QAAQ,GAAG,SAAS,KAAK,UAAU,KAAK,CAAC;AAAA,IACpG;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,4BAA4B,KAAsC;AAChF,MAAI,QAAQ,UAAa,QAAQ,KAAM,QAAO,EAAE,GAAG,kCAAkC;AACrF,MAAI,OAAO,QAAQ,YAAY,MAAM,QAAQ,GAAG,GAAG;AACjD,UAAM,IAAI,MAAM,2CAA2C,KAAK,UAAU,GAAG,CAAC,EAAE;AAAA,EAClF;AACA,QAAM,MAAM;AACZ,QAAM,EAAE,SAAS,UAAU,iBAAiB,kBAAkB,cAAc,eAAe,GAAG,QAAQ,IAAI;AAC1G,QAAM,aAAa,OAAO,KAAK,OAAO,EAAE,CAAC;AACzC,MAAI,eAAe,QAAW;AAC5B,UAAM,IAAI,MAAM,yCAAyC,KAAK,UAAU,UAAU,CAAC,EAAE;AAAA,EACvF;AACA,SAAO;AAAA,IACL,SAAS,UAAU,KAAK,WAAW,kCAAkC,OAAO;AAAA,IAC5E,iBAAiB;AAAA,MACf;AAAA,MACA;AAAA,MACA,kCAAkC;AAAA,MAClC;AAAA,MACA;AAAA,IACF;AAAA,IACA,cAAc;AAAA,MACZ;AAAA,MACA;AAAA,MACA,kCAAkC;AAAA,MAClC;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseFrontmatter
3
- } from "./chunk-I65KB36L.js";
3
+ } from "./chunk-GMU7MAHS.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-RXYO6NA6.js.map
202
+ //# sourceMappingURL=chunk-M6FKXOYV.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-I65KB36L.js";
3
+ } from "./chunk-GMU7MAHS.js";
4
4
  import {
5
5
  composeMemoryEnvelope
6
6
  } from "./chunk-GDYU6VF4.js";
@@ -546,4 +546,4 @@ export {
546
546
  setSemanticRulePromotionTestHooks,
547
547
  promoteSemanticRuleFromMemory
548
548
  };
549
- //# sourceMappingURL=chunk-LCVYO3ON.js.map
549
+ //# sourceMappingURL=chunk-MOL7JK4F.js.map
@@ -25,8 +25,7 @@ function parseLocalLlmMaxContext(value) {
25
25
  function copyStringRecord(value) {
26
26
  if (!value || typeof value !== "object" || Array.isArray(value)) return void 0;
27
27
  const headers = {};
28
- for (const key of Object.getOwnPropertyNames(value)) {
29
- const headerValue = Reflect.get(value, key);
28
+ for (const [key, headerValue] of Object.entries(value)) {
30
29
  if (typeof headerValue === "string") headers[key] = headerValue;
31
30
  }
32
31
  return headers;
@@ -56,4 +55,4 @@ function parseLocalLlmConfig(cfg, localLlmApiKeyEnv, resolveEnvVars) {
56
55
  export {
57
56
  parseLocalLlmConfig
58
57
  };
59
- //# sourceMappingURL=chunk-VNQRRUNS.js.map
58
+ //# sourceMappingURL=chunk-O6ZSWHVR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/local-llm-config.ts"],"sourcesContent":["import { coerceNumber } from \"./connectors/coerce.js\";\nimport { parseBackgroundGeneration } from \"./background-generation-config.js\";\nimport type { BackgroundGenerationConfig } from \"./background-generation-config.js\";\nimport { readEnvVar } from \"./runtime/env.js\";\nimport { parseTaskLlmConfig } from \"./task-llm-config.js\";\nexport interface LocalLlmConfig {\n // Local LLM Provider (v2.1)\n localLlmEnabled: boolean;\n localLlmUrl: string;\n localLlmModel: string;\n /** Optional API key for authenticated OpenAI-compatible endpoints. */\n localLlmApiKey?: string;\n /** Optional environment-variable name that supplies localLlmApiKey at runtime. */\n localLlmApiKeyEnv?: string;\n /** Additional headers for local/compatible endpoint requests. */\n localLlmHeaders?: Record<string, string>;\n /** If false, do not send Authorization header even when localLlmApiKey is set. */\n localLlmAuthHeader: boolean;\n localLlmFallback: boolean;\n taskLlmFallback?: boolean;\n /** Optional home directory override for local LLM helpers (LM Studio settings, CLI PATH). */\n localLlmHomeDir?: string;\n /** Optional absolute path to LMS CLI binary (preferred over auto-detection). */\n localLmsCliPath?: string;\n /** Optional bin directory prepended to PATH for LMS CLI execution. */\n localLmsBinDir?: string;\n /** Hard timeout for local LLM requests (ms). Legacy alias for the task-chain timeout when `taskLlmTimeoutMs` is absent. */\n localLlmTimeoutMs: number;\n /** Timeout for the gateway/task LLM chain (ms). */\n taskLlmTimeoutMs?: number;\n /** Max context window for local LLM (override auto-detection). Set lower if your LLM server defaults to smaller contexts. */\n localLlmMaxContext?: number;\n}\n\nexport type LocalLlmParseResult = LocalLlmConfig & {\n backgroundGeneration?: BackgroundGenerationConfig;\n};\n\n\nfunction parseLocalLlmMaxContext(value: unknown): number | undefined {\n if (value === undefined || value === null) return undefined;\n const coerced = coerceNumber(value);\n if (\n coerced === undefined ||\n !Number.isFinite(coerced) ||\n !Number.isInteger(coerced) ||\n coerced < 1024\n ) {\n throw new Error(\n `localLlmMaxContext must be an integer greater than or equal to 1024; got ${JSON.stringify(value)}`,\n );\n }\n return coerced;\n}\n\nfunction copyStringRecord(value: unknown): Record<string, string> | undefined {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return undefined;\n const headers: Record<string, string> = {};\n for (const [key, headerValue] of Object.entries(value)) {\n if (typeof headerValue === \"string\") headers[key] = headerValue;\n }\n return headers;\n}\n\nexport function parseLocalLlmConfig(\n cfg: Record<string, unknown>,\n localLlmApiKeyEnv: string | undefined,\n resolveEnvVars: (value: string) => string,\n): LocalLlmParseResult {\n const taskLlm = parseTaskLlmConfig(cfg);\n return {\n backgroundGeneration: parseBackgroundGeneration(cfg, resolveEnvVars),\n localLlmEnabled: cfg.localLlmEnabled === true || cfg.localLlmEnabled === \"true\",\n localLlmUrl:\n typeof cfg.localLlmUrl === \"string\" && cfg.localLlmUrl.length > 0\n ? cfg.localLlmUrl\n : \"http://localhost:1234/v1\",\n localLlmModel:\n typeof cfg.localLlmModel === \"string\" && cfg.localLlmModel.length > 0\n ? cfg.localLlmModel\n : \"local-model\",\n localLlmApiKey:\n typeof cfg.localLlmApiKey === \"string\" && cfg.localLlmApiKey.length > 0\n ? resolveEnvVars(cfg.localLlmApiKey)\n : localLlmApiKeyEnv === undefined\n ? undefined\n : readEnvVar(localLlmApiKeyEnv),\n localLlmApiKeyEnv,\n localLlmHeaders: copyStringRecord(cfg.localLlmHeaders),\n localLlmAuthHeader: cfg.localLlmAuthHeader !== false,\n localLlmFallback: taskLlm.fallback,\n taskLlmFallback: taskLlm.fallback,\n localLlmHomeDir:\n typeof cfg.localLlmHomeDir === \"string\" && cfg.localLlmHomeDir.length > 0\n ? cfg.localLlmHomeDir\n : undefined,\n localLmsCliPath:\n typeof cfg.localLmsCliPath === \"string\" && cfg.localLmsCliPath.length > 0\n ? cfg.localLmsCliPath\n : undefined,\n localLmsBinDir:\n typeof cfg.localLmsBinDir === \"string\" && cfg.localLmsBinDir.length > 0\n ? cfg.localLmsBinDir\n : undefined,\n localLlmTimeoutMs: taskLlm.localTimeoutMs,\n taskLlmTimeoutMs: taskLlm.timeoutMs,\n localLlmMaxContext: parseLocalLlmMaxContext(cfg.localLlmMaxContext),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;AAuCA,SAAS,wBAAwB,OAAoC;AACnE,MAAI,UAAU,UAAa,UAAU,KAAM,QAAO;AAClD,QAAM,UAAU,aAAa,KAAK;AAClC,MACE,YAAY,UACZ,CAAC,OAAO,SAAS,OAAO,KACxB,CAAC,OAAO,UAAU,OAAO,KACzB,UAAU,MACV;AACA,UAAM,IAAI;AAAA,MACR,4EAA4E,KAAK,UAAU,KAAK,CAAC;AAAA,IACnG;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,iBAAiB,OAAoD;AAC5E,MAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,EAAG,QAAO;AACxE,QAAM,UAAkC,CAAC;AACzC,aAAW,CAAC,KAAK,WAAW,KAAK,OAAO,QAAQ,KAAK,GAAG;AACtD,QAAI,OAAO,gBAAgB,SAAU,SAAQ,GAAG,IAAI;AAAA,EACtD;AACA,SAAO;AACT;AAEO,SAAS,oBACd,KACA,mBACA,gBACqB;AACrB,QAAM,UAAU,mBAAmB,GAAG;AACtC,SAAO;AAAA,IACL,sBAAsB,0BAA0B,KAAK,cAAc;AAAA,IACnE,iBAAiB,IAAI,oBAAoB,QAAQ,IAAI,oBAAoB;AAAA,IACzE,aACE,OAAO,IAAI,gBAAgB,YAAY,IAAI,YAAY,SAAS,IAC5D,IAAI,cACJ;AAAA,IACN,eACE,OAAO,IAAI,kBAAkB,YAAY,IAAI,cAAc,SAAS,IAChE,IAAI,gBACJ;AAAA,IACN,gBACE,OAAO,IAAI,mBAAmB,YAAY,IAAI,eAAe,SAAS,IAClE,eAAe,IAAI,cAAc,IACjC,sBAAsB,SACpB,SACA,WAAW,iBAAiB;AAAA,IACpC;AAAA,IACA,iBAAiB,iBAAiB,IAAI,eAAe;AAAA,IACrD,oBAAoB,IAAI,uBAAuB;AAAA,IAC/C,kBAAkB,QAAQ;AAAA,IAC1B,iBAAiB,QAAQ;AAAA,IACzB,iBACE,OAAO,IAAI,oBAAoB,YAAY,IAAI,gBAAgB,SAAS,IACpE,IAAI,kBACJ;AAAA,IACN,iBACE,OAAO,IAAI,oBAAoB,YAAY,IAAI,gBAAgB,SAAS,IACpE,IAAI,kBACJ;AAAA,IACN,gBACE,OAAO,IAAI,mBAAmB,YAAY,IAAI,eAAe,SAAS,IAClE,IAAI,iBACJ;AAAA,IACN,mBAAmB,QAAQ;AAAA,IAC3B,kBAAkB,QAAQ;AAAA,IAC1B,oBAAoB,wBAAwB,IAAI,kBAAkB;AAAA,EACpE;AACF;","names":[]}
@@ -0,0 +1,95 @@
1
+ import {
2
+ defineOperation
3
+ } from "./chunk-3K64PLY3.js";
4
+ import {
5
+ EngramAccessInputError
6
+ } from "./chunk-2Z24E5W2.js";
7
+
8
+ // src/recall-navigation-operations.ts
9
+ import { z } from "zod";
10
+ function stripNulls(data) {
11
+ if (data !== null && typeof data === "object" && !Array.isArray(data)) {
12
+ const obj = data;
13
+ const cleaned = {};
14
+ for (const [key, value] of Object.entries(obj)) {
15
+ if (value !== null) cleaned[key] = value;
16
+ }
17
+ return cleaned;
18
+ }
19
+ return data;
20
+ }
21
+ function strictSchema(shape) {
22
+ return z.preprocess(stripNulls, z.object(shape).passthrough());
23
+ }
24
+ var str = z.string().optional();
25
+ function optStr(value) {
26
+ return typeof value === "string" ? value : void 0;
27
+ }
28
+ function optInt(value) {
29
+ if (typeof value === "number") return value;
30
+ if (typeof value === "string" && Number.isFinite(Number(value))) return Number(value);
31
+ return void 0;
32
+ }
33
+ function reqStr(value, field) {
34
+ if (typeof value !== "string" || value.trim().length === 0) {
35
+ throw new EngramAccessInputError(`${field} is required`);
36
+ }
37
+ return value;
38
+ }
39
+ var baseShape = {
40
+ memoryId: z.string(),
41
+ sessionKey: z.string(),
42
+ namespace: str
43
+ };
44
+ defineOperation({
45
+ name: "memory_expand",
46
+ description: "Re-render one already-served recall result at a deeper disclosure level (chunk \u2192 section \u2192 raw).",
47
+ schema: strictSchema({ ...baseShape, disclosure: z.enum(["chunk", "section", "raw"]).optional() }),
48
+ handler: async (input, ctx) => {
49
+ const disclosure = optStr(input.disclosure);
50
+ return {
51
+ result: await ctx.service.recallNavigate({
52
+ action: "expand",
53
+ memoryId: reqStr(input.memoryId, "memoryId"),
54
+ sessionKey: reqStr(input.sessionKey, "sessionKey"),
55
+ ...disclosure === "chunk" || disclosure === "section" || disclosure === "raw" ? { disclosure } : {},
56
+ namespace: optStr(input.namespace),
57
+ authenticatedPrincipal: ctx.authenticatedPrincipal
58
+ })
59
+ };
60
+ }
61
+ });
62
+ defineOperation({
63
+ name: "memory_traverse",
64
+ description: "Follow typed frontmatter links from an already-served recall result; neighbors return as chunk-level summaries.",
65
+ schema: strictSchema({
66
+ ...baseShape,
67
+ relation: z.enum([
68
+ "supports",
69
+ "contradicts",
70
+ "elaborates",
71
+ "causes",
72
+ "caused_by",
73
+ "supersedes",
74
+ "follows",
75
+ "references",
76
+ "related"
77
+ ]).optional(),
78
+ limit: z.union([z.number(), z.string()]).optional()
79
+ }),
80
+ handler: async (input, ctx) => {
81
+ const relation = optStr(input.relation);
82
+ return {
83
+ result: await ctx.service.recallNavigate({
84
+ action: "traverse",
85
+ memoryId: reqStr(input.memoryId, "memoryId"),
86
+ sessionKey: reqStr(input.sessionKey, "sessionKey"),
87
+ ...relation !== void 0 ? { relation } : {},
88
+ limit: optInt(input.limit),
89
+ namespace: optStr(input.namespace),
90
+ authenticatedPrincipal: ctx.authenticatedPrincipal
91
+ })
92
+ };
93
+ }
94
+ });
95
+ //# sourceMappingURL=chunk-OCX7OWOC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/recall-navigation-operations.ts"],"sourcesContent":["/**\n * Recall-navigation boundary operations (issue #1956).\n *\n * `memory_expand` / `memory_traverse` route MCP, HTTP, and CLI dispatch\n * through the shared validation + error-mapping layer (access-boundary.ts)\n * to the single `EngramAccessService.recallNavigate` implementation.\n * Sibling module so access-operations-batch.ts stays at its ceiling seam\n * (same layout as deep-recall's extraction).\n */\n\nimport { z } from \"zod\";\n\nimport { defineOperation } from \"./access-boundary.js\";\nimport { EngramAccessInputError } from \"./access-errors.js\";\n\nfunction stripNulls(data: unknown): unknown {\n if (data !== null && typeof data === \"object\" && !Array.isArray(data)) {\n const obj = data as Record<string, unknown>;\n const cleaned: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(obj)) {\n if (value !== null) cleaned[key] = value;\n }\n return cleaned;\n }\n return data;\n}\n\nfunction strictSchema<T extends z.ZodRawShape>(shape: T): z.ZodType<Record<string, unknown>> {\n return z.preprocess(stripNulls, z.object(shape).passthrough()) as unknown as z.ZodType<Record<string, unknown>>;\n}\n\nconst str = z.string().optional();\n\nfunction optStr(value: unknown): string | undefined {\n return typeof value === \"string\" ? value : undefined;\n}\n\nfunction optInt(value: unknown): number | undefined {\n if (typeof value === \"number\") return value;\n if (typeof value === \"string\" && Number.isFinite(Number(value))) return Number(value);\n return undefined;\n}\n\nfunction reqStr(value: unknown, field: string): string {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw new EngramAccessInputError(`${field} is required`);\n }\n return value;\n}\n\nconst baseShape = {\n memoryId: z.string(),\n sessionKey: z.string(),\n namespace: str,\n};\n\ndefineOperation({\n name: \"memory_expand\",\n description: \"Re-render one already-served recall result at a deeper disclosure level (chunk → section → raw).\",\n schema: strictSchema({ ...baseShape, disclosure: z.enum([\"chunk\", \"section\", \"raw\"]).optional() }),\n handler: async (input, ctx) => {\n const disclosure = optStr(input.disclosure);\n return {\n result: await ctx.service.recallNavigate({\n action: \"expand\",\n memoryId: reqStr(input.memoryId, \"memoryId\"),\n sessionKey: reqStr(input.sessionKey, \"sessionKey\"),\n ...(disclosure === \"chunk\" || disclosure === \"section\" || disclosure === \"raw\" ? { disclosure } : {}),\n namespace: optStr(input.namespace),\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n }),\n };\n },\n});\n\ndefineOperation({\n name: \"memory_traverse\",\n description:\n \"Follow typed frontmatter links from an already-served recall result; neighbors return as chunk-level summaries.\",\n schema: strictSchema({\n ...baseShape,\n relation: z\n .enum([\n \"supports\",\n \"contradicts\",\n \"elaborates\",\n \"causes\",\n \"caused_by\",\n \"supersedes\",\n \"follows\",\n \"references\",\n \"related\",\n ])\n .optional(),\n limit: z.union([z.number(), z.string()]).optional(),\n }),\n handler: async (input, ctx) => {\n const relation = optStr(input.relation);\n return {\n result: await ctx.service.recallNavigate({\n action: \"traverse\",\n memoryId: reqStr(input.memoryId, \"memoryId\"),\n sessionKey: reqStr(input.sessionKey, \"sessionKey\"),\n ...(relation !== undefined ? { relation } : {}),\n limit: optInt(input.limit),\n namespace: optStr(input.namespace),\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n }),\n };\n },\n});\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-I65KB36L.js";
3
+ } from "./chunk-GMU7MAHS.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-HPMCKAET.js.map
960
+ //# sourceMappingURL=chunk-OGAKUA7I.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  resolveDefaultNamespaceRoot
3
- } from "./chunk-CQ4BTPX6.js";
3
+ } from "./chunk-3YQ7VLP3.js";
4
4
  import {
5
5
  StorageManager
6
- } from "./chunk-I65KB36L.js";
6
+ } from "./chunk-GMU7MAHS.js";
7
7
  import {
8
8
  composeLocationDayBody,
9
9
  composeLocationDayMeta,
@@ -728,4 +728,4 @@ export {
728
728
  runLocationBackfill,
729
729
  runLocationCliCommand
730
730
  };
731
- //# sourceMappingURL=chunk-AOGICQMH.js.map
731
+ //# sourceMappingURL=chunk-PF7LQ22G.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-SOBJ6NEY.js";
4
4
  import {
5
5
  summarizeDisclosureTokens
6
- } from "./chunk-Q62GA5U2.js";
6
+ } from "./chunk-VW5TGNJN.js";
7
7
  import {
8
8
  summarizeRetrievedMemoryProvenance
9
9
  } from "./chunk-I4WBNM3M.js";
@@ -610,4 +610,4 @@ export {
610
610
  renderRecallExplain,
611
611
  parseRecallExplainFormat
612
612
  };
613
- //# sourceMappingURL=chunk-AUSRUOMQ.js.map
613
+ //# sourceMappingURL=chunk-PW4HTWXL.js.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-6ET2VII7.js";
8
8
  import {
9
9
  StorageManager
10
- } from "./chunk-I65KB36L.js";
10
+ } from "./chunk-GMU7MAHS.js";
11
11
  import {
12
12
  parseContinuityImprovementLoops
13
13
  } from "./chunk-LDXUBPMO.js";
@@ -1283,4 +1283,4 @@ export {
1283
1283
  defaultTierMigrationCycleBudget,
1284
1284
  CompoundingEngine
1285
1285
  };
1286
- //# sourceMappingURL=chunk-ZYRAY5FL.js.map
1286
+ //# sourceMappingURL=chunk-QCTXQ2HW.js.map
@@ -0,0 +1,98 @@
1
+ import {
2
+ EngramAccessInputError
3
+ } from "./chunk-2Z24E5W2.js";
4
+
5
+ // src/recall-navigation-http-glue.ts
6
+ var VALID_RELATIONS = [
7
+ "supports",
8
+ "contradicts",
9
+ "elaborates",
10
+ "causes",
11
+ "caused_by",
12
+ "supersedes",
13
+ "follows",
14
+ "references",
15
+ "related"
16
+ ];
17
+ function optStr(value) {
18
+ return typeof value === "string" ? value : void 0;
19
+ }
20
+ function optInt(value) {
21
+ if (value === void 0 || value === null || value === "") return void 0;
22
+ const parsed = typeof value === "string" ? Number(value) : value;
23
+ if (typeof parsed !== "number" || !Number.isInteger(parsed) || parsed < 1) {
24
+ throw new EngramAccessInputError("limit must be a positive integer");
25
+ }
26
+ return parsed;
27
+ }
28
+ async function respondNavigation(req, res, respondJson, readJsonBody, service, scopeFor, action) {
29
+ const body = await readJsonBody(req);
30
+ const memoryId = optStr(body.memoryId);
31
+ if (memoryId === void 0 || memoryId.trim().length === 0) {
32
+ respondJson(res, 400, { error: "invalid_request", detail: "memoryId is required" });
33
+ return;
34
+ }
35
+ const sessionKey = optStr(body.sessionKey);
36
+ if (sessionKey === void 0 || sessionKey.trim().length === 0) {
37
+ respondJson(res, 400, { error: "invalid_request", detail: "sessionKey is required" });
38
+ return;
39
+ }
40
+ let disclosure;
41
+ let relation;
42
+ if (action === "expand") {
43
+ const raw = optStr(body.disclosure);
44
+ if (raw !== void 0 && raw !== "chunk" && raw !== "section" && raw !== "raw") {
45
+ respondJson(res, 400, { error: "invalid_request", detail: "disclosure must be one of chunk, section, raw" });
46
+ return;
47
+ }
48
+ disclosure = raw;
49
+ } else {
50
+ relation = optStr(body.relation);
51
+ if (relation !== void 0 && !VALID_RELATIONS.includes(relation)) {
52
+ respondJson(
53
+ res,
54
+ 400,
55
+ { error: "invalid_request", detail: `relation must be one of ${VALID_RELATIONS.join(", ")}` }
56
+ );
57
+ return;
58
+ }
59
+ }
60
+ let limit;
61
+ try {
62
+ limit = optInt(body.limit);
63
+ } catch (err) {
64
+ respondJson(res, 400, { error: "invalid_request", detail: err instanceof Error ? err.message : String(err) });
65
+ return;
66
+ }
67
+ const scope = scopeFor(optStr(body.namespace), sessionKey);
68
+ const result = await service.recallNavigate({
69
+ action,
70
+ memoryId,
71
+ sessionKey: scope.sessionKey ?? sessionKey,
72
+ ...disclosure !== void 0 ? { disclosure } : {},
73
+ ...relation !== void 0 ? { relation } : {},
74
+ ...limit !== void 0 ? { limit } : {},
75
+ namespace: scope.namespace,
76
+ authenticatedPrincipal: scope.authenticatedPrincipal
77
+ });
78
+ const { rendered: _rendered, ...payload } = result;
79
+ respondJson(res, 200, payload);
80
+ }
81
+ async function maybeRespondRecallNavigation(req, res, pathname, method, enforceTokenOp, respondJson, readJsonBody, service, scopeFor) {
82
+ if (method === "POST" && (pathname === "/engram/v1/memory/expand" || pathname === "/remnic/v1/memory/expand")) {
83
+ enforceTokenOp("memory_expand");
84
+ await respondNavigation(req, res, respondJson, readJsonBody, service, scopeFor, "expand");
85
+ return true;
86
+ }
87
+ if (method === "POST" && (pathname === "/engram/v1/memory/traverse" || pathname === "/remnic/v1/memory/traverse")) {
88
+ enforceTokenOp("memory_traverse");
89
+ await respondNavigation(req, res, respondJson, readJsonBody, service, scopeFor, "traverse");
90
+ return true;
91
+ }
92
+ return false;
93
+ }
94
+
95
+ export {
96
+ maybeRespondRecallNavigation
97
+ };
98
+ //# sourceMappingURL=chunk-QZ4U67KO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/recall-navigation-http-glue.ts"],"sourcesContent":["/**\n * Recall-navigation HTTP glue (issue #1956) — route body lives here so\n * access-http.ts stays at its structural ceiling (same seam as\n * deep-recall-http-glue.ts).\n *\n * Input errors map to 400; everything else rethrows to the global 500\n * handler. Config gating (`recallNavigation.enabled`) lives in the service\n * and returns a typed `error: \"disabled\"` refusal — this module only\n * translates transport shape. Namespace/sessionKey resolution flows through\n * the caller-supplied `scopeFor` gate so a body-supplied namespace passes\n * the SAME effective-namespace allow-list as the query string (issue #1850\n * finding 2), and `authenticatedPrincipal` reaches the service so\n * authorization derives from the presenting principal, never the\n * client-supplied sessionKey.\n */\n\nimport type { IncomingMessage, ServerResponse } from \"node:http\";\n\nimport { EngramAccessInputError } from \"./access-errors.js\";\nimport type { EngramAccessService } from \"./access-service.js\";\nimport type { NavigationAction } from \"./recall-navigation.js\";\n\ntype RespondJson = (res: ServerResponse, status: number, payload: unknown) => void;\ntype ReadJsonBody = (req: IncomingMessage) => Promise<unknown>;\n\ntype ScopeFor = (\n bodyNamespace?: string,\n bodySessionKey?: string,\n) => { namespace?: string; sessionKey?: string; authenticatedPrincipal?: string };\n\nconst VALID_RELATIONS = [\n \"supports\",\n \"contradicts\",\n \"elaborates\",\n \"causes\",\n \"caused_by\",\n \"supersedes\",\n \"follows\",\n \"references\",\n \"related\",\n] as const;\n\nfunction optStr(value: unknown): string | undefined {\n return typeof value === \"string\" ? value : undefined;\n}\n\nfunction optInt(value: unknown): number | undefined {\n if (value === undefined || value === null || value === \"\") return undefined;\n const parsed = typeof value === \"string\" ? Number(value) : value;\n if (typeof parsed !== \"number\" || !Number.isInteger(parsed) || parsed < 1) {\n throw new EngramAccessInputError(\"limit must be a positive integer\");\n }\n return parsed;\n}\n\nasync function respondNavigation(\n req: IncomingMessage,\n res: ServerResponse,\n respondJson: RespondJson,\n readJsonBody: ReadJsonBody,\n service: EngramAccessService,\n scopeFor: ScopeFor,\n action: Extract<NavigationAction, \"expand\" | \"traverse\">,\n): Promise<void> {\n const body = (await readJsonBody(req)) as Record<string, unknown>;\n const memoryId = optStr(body.memoryId);\n if (memoryId === undefined || memoryId.trim().length === 0) {\n respondJson(res, 400, { error: \"invalid_request\", detail: \"memoryId is required\" });\n return;\n }\n const sessionKey = optStr(body.sessionKey);\n if (sessionKey === undefined || sessionKey.trim().length === 0) {\n respondJson(res, 400, { error: \"invalid_request\", detail: \"sessionKey is required\" });\n return;\n }\n let disclosure: \"chunk\" | \"section\" | \"raw\" | undefined;\n let relation: string | undefined;\n if (action === \"expand\") {\n const raw = optStr(body.disclosure);\n if (raw !== undefined && raw !== \"chunk\" && raw !== \"section\" && raw !== \"raw\") {\n respondJson(res, 400, { error: \"invalid_request\", detail: \"disclosure must be one of chunk, section, raw\" });\n return;\n }\n disclosure = raw;\n } else {\n relation = optStr(body.relation);\n if (relation !== undefined && !(VALID_RELATIONS as readonly string[]).includes(relation)) {\n respondJson(\n res,\n 400,\n { error: \"invalid_request\", detail: `relation must be one of ${VALID_RELATIONS.join(\", \")}` },\n );\n return;\n }\n }\n let limit: number | undefined;\n try {\n limit = optInt(body.limit);\n } catch (err) {\n respondJson(res, 400, { error: \"invalid_request\", detail: err instanceof Error ? err.message : String(err) });\n return;\n }\n const scope = scopeFor(optStr(body.namespace), sessionKey);\n const result = await service.recallNavigate({\n action,\n memoryId,\n sessionKey: scope.sessionKey ?? sessionKey,\n ...(disclosure !== undefined ? { disclosure } : {}),\n ...(relation !== undefined ? { relation } : {}),\n ...(limit !== undefined ? { limit } : {}),\n namespace: scope.namespace,\n authenticatedPrincipal: scope.authenticatedPrincipal,\n });\n const { rendered: _rendered, ...payload } = result;\n respondJson(res, 200, payload);\n}\n\nexport async function maybeRespondRecallNavigation(\n req: IncomingMessage,\n res: ServerResponse,\n pathname: string,\n method: string | undefined,\n enforceTokenOp: (op: \"memory_expand\" | \"memory_traverse\") => void,\n respondJson: RespondJson,\n readJsonBody: ReadJsonBody,\n service: EngramAccessService,\n scopeFor: ScopeFor,\n): Promise<boolean> {\n if (method === \"POST\" && (pathname === \"/engram/v1/memory/expand\" || pathname === \"/remnic/v1/memory/expand\")) {\n enforceTokenOp(\"memory_expand\");\n await respondNavigation(req, res, respondJson, readJsonBody, service, scopeFor, \"expand\");\n return true;\n }\n if (method === \"POST\" && (pathname === \"/engram/v1/memory/traverse\" || pathname === \"/remnic/v1/memory/traverse\")) {\n enforceTokenOp(\"memory_traverse\");\n await respondNavigation(req, res, respondJson, readJsonBody, service, scopeFor, \"traverse\");\n return true;\n }\n return false;\n}\n\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-I65KB36L.js";
3
+ } from "./chunk-GMU7MAHS.js";
4
4
  import {
5
5
  getCachedRuleMemories,
6
6
  setCachedRuleMemories
@@ -119,4 +119,4 @@ export {
119
119
  compareVerifiedSemanticRuleResults,
120
120
  searchVerifiedSemanticRules
121
121
  };
122
- //# sourceMappingURL=chunk-G3NTZZWT.js.map
122
+ //# sourceMappingURL=chunk-R3H2AXO2.js.map
@@ -1,6 +1,9 @@
1
+ import {
2
+ RECALL_NAVIGATION_MCP_TOOLS
3
+ } from "./chunk-TE6S7KDF.js";
1
4
  import {
2
5
  MCP_READ_ONLY_TOOL_SUFFIXES
3
- } from "./chunk-EAARGPWI.js";
6
+ } from "./chunk-F3TURDFG.js";
4
7
  import {
5
8
  EXTERNAL_WIKI_MCP_TOOLS
6
9
  } from "./chunk-A5KNZSNA.js";
@@ -34,19 +37,19 @@ import {
34
37
  } from "./chunk-AB3A7EFH.js";
35
38
  import {
36
39
  applyToolOutputSchemas
37
- } from "./chunk-QVSRE355.js";
40
+ } from "./chunk-2AV75BJW.js";
38
41
  import {
39
42
  getOperation
40
- } from "./chunk-IUTYNDFS.js";
43
+ } from "./chunk-3K64PLY3.js";
41
44
  import {
42
45
  WHO_KNOWS_MCP_TOOLS
43
- } from "./chunk-XJLTQTAO.js";
46
+ } from "./chunk-D7UUB33A.js";
44
47
  import {
45
48
  PROMOTION_CANDIDATES_MCP_TOOLS
46
49
  } from "./chunk-VYCOJKSX.js";
47
50
  import {
48
51
  validateRequest
49
- } from "./chunk-ZOGKZ2XT.js";
52
+ } from "./chunk-JUOJGZPV.js";
50
53
  import {
51
54
  SUPPORT_PASSPORT_SOURCE_MEMORY_ID_MAX_LENGTH
52
55
  } from "./chunk-PWPIERBM.js";
@@ -1764,6 +1767,8 @@ var MCP_MIGRATED_OPERATIONS = {
1764
1767
  ...SUPPORT_PASSPORT_MCP_MIGRATED_OPERATIONS,
1765
1768
  ...MCP_ADMIN_OPS_MIGRATED_OPERATIONS,
1766
1769
  "engram.deep_recall": "deep_recall",
1770
+ "engram.memory_expand": "memory_expand",
1771
+ "engram.memory_traverse": "memory_traverse",
1767
1772
  "engram.memory_chat": "chat_message"
1768
1773
  };
1769
1774
  var STRICT_MCP_SCHEMA_KEYS = {
@@ -2061,6 +2066,7 @@ var EngramMcpServer = class {
2061
2066
  ...LOCATION_MCP_TOOLS,
2062
2067
  ...STANDUP_MCP_TOOLS,
2063
2068
  ...DEEP_RECALL_MCP_TOOLS,
2069
+ ...service.recallNavigationEnabled !== false ? RECALL_NAVIGATION_MCP_TOOLS : [],
2064
2070
  ...service.supportPassportEnabled ? SUPPORT_PASSPORT_MCP_TOOLS : [],
2065
2071
  {
2066
2072
  name: "engram.action_confidence",
@@ -3981,4 +3987,4 @@ export {
3981
3987
  MCP_MIGRATED_OPERATIONS,
3982
3988
  EngramMcpServer
3983
3989
  };
3984
- //# sourceMappingURL=chunk-HSJU6JFT.js.map
3990
+ //# sourceMappingURL=chunk-ROXDOKLM.js.map