@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,218 @@
1
+ import {
2
+ coerceBooleanLike,
3
+ coerceNumber
4
+ } from "./chunk-PQVCH2AE.js";
5
+
6
+ // src/standing-memory-block.ts
7
+ var DEFAULT_RECALL_STANDING_BLOCK = false;
8
+ var DEFAULT_STANDING_BLOCK_FRESH_DAYS = 14;
9
+ var DEFAULT_STANDING_BLOCK_MAX_CHARS = 2048;
10
+ var DEFAULT_STANDING_BLOCK_HOOK_CHARS = 96;
11
+ var STANDING_BLOCK_HEADER = "## Standing Memory (Remnic)";
12
+ var STANDING_BLOCK_INSTRUCTION = "Use this standing index for orientation. It changes only when the memory store changes.";
13
+ var STANDING_BLOCK_TRIMMED_MARKER = "- ...(older lines trimmed)";
14
+ function standingHookLedgerKey(description, hookMaxChars) {
15
+ return `${description}\0${hookMaxChars}`;
16
+ }
17
+ var ISO_DATE_RE = /\b\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2})?/;
18
+ var CLOCK_TIME_RE = /\b\d{1,2}:\d{2}(?::\d{2})?\b/;
19
+ var RELATIVE_DATE_RE = /\b(?:today|tonight|tomorrow|yesterday|this\s+(?:morning|afternoon|evening|week|month|year))\b/i;
20
+ var COUNTER_RE = /\b(?:count|total|entries|memories|items)\s*[:=]\s*\d+\b/i;
21
+ function lintStandingBlockVolatility(text) {
22
+ const matches = [];
23
+ for (const [kind, re] of [
24
+ ["iso-date", ISO_DATE_RE],
25
+ ["clock-time", CLOCK_TIME_RE],
26
+ ["relative-date", RELATIVE_DATE_RE],
27
+ ["counter", COUNTER_RE]
28
+ ]) {
29
+ const hit = text.match(re);
30
+ if (hit) matches.push({ kind, token: hit[0] });
31
+ }
32
+ return matches;
33
+ }
34
+ var StandingBlockError = class extends Error {
35
+ constructor(message) {
36
+ super(message);
37
+ this.name = "StandingBlockError";
38
+ }
39
+ };
40
+ var StandingBlockVolatilityError = class extends StandingBlockError {
41
+ matches;
42
+ constructor(matches) {
43
+ super(
44
+ `standing memory block refused: volatile content busts the prefix cache (${matches.map((m) => `${m.kind}:${JSON.stringify(m.token)}`).join(", ")})`
45
+ );
46
+ this.name = "StandingBlockVolatilityError";
47
+ this.matches = matches;
48
+ }
49
+ };
50
+ var StandingBlockBudgetError = class extends StandingBlockError {
51
+ constructor(maxChars) {
52
+ super(
53
+ `standing memory block does not fit: pinned lines alone exceed maxChars=${maxChars}; raise standingBlockMaxChars or unpin entries`
54
+ );
55
+ this.name = "StandingBlockBudgetError";
56
+ }
57
+ };
58
+ function parseRecallStandingBlock(raw) {
59
+ return coerceBooleanLike(raw, "recallStandingBlock") === true;
60
+ }
61
+ function parseStandingBlockFreshDays(raw) {
62
+ if (raw === void 0 || raw === null) return DEFAULT_STANDING_BLOCK_FRESH_DAYS;
63
+ const n = coerceNumber(raw, "standingBlockFreshDays");
64
+ if (n === void 0 || !Number.isFinite(n) || n < 0) {
65
+ throw new Error(`Invalid standingBlockFreshDays: expected a number >= 0, got ${JSON.stringify(raw)}`);
66
+ }
67
+ return n;
68
+ }
69
+ function parseStandingBlockMaxChars(raw) {
70
+ if (raw === void 0 || raw === null) return DEFAULT_STANDING_BLOCK_MAX_CHARS;
71
+ const n = coerceNumber(raw, "standingBlockMaxChars");
72
+ if (n === void 0 || !Number.isFinite(n) || n < 1) {
73
+ throw new Error(`Invalid standingBlockMaxChars: expected an integer >= 1, got ${JSON.stringify(raw)}`);
74
+ }
75
+ return Math.floor(n);
76
+ }
77
+ function mechanicalHook(description, budget) {
78
+ if (description.length <= budget) return description;
79
+ const cut = description.slice(0, budget);
80
+ const lastSpace = cut.lastIndexOf(" ");
81
+ const base = lastSpace > Math.floor(budget * 0.6) ? cut.slice(0, lastSpace) : cut;
82
+ return `${base.replace(/[\s,;:]+$/, "")}...`;
83
+ }
84
+ var BAND_RANK = { pinned: 0, fresh: 1, compressed: 2 };
85
+ function validateEntries(entries) {
86
+ if (!Array.isArray(entries)) {
87
+ throw new StandingBlockError("standing memory block entries must be an array");
88
+ }
89
+ const seen = /* @__PURE__ */ new Set();
90
+ const validated = /* @__PURE__ */ new Map();
91
+ for (const entry of entries) {
92
+ if (typeof entry !== "object" || entry === null) {
93
+ throw new StandingBlockError(`standing memory block entry must be an object, got ${JSON.stringify(entry)}`);
94
+ }
95
+ const id = typeof entry.id === "string" ? entry.id.trim() : "";
96
+ const description = typeof entry.description === "string" ? entry.description.trim() : "";
97
+ if (id.length === 0) {
98
+ throw new StandingBlockError("standing memory block entry requires a non-empty id");
99
+ }
100
+ if (description.length === 0) {
101
+ throw new StandingBlockError(`standing memory block entry ${id} requires a non-empty description`);
102
+ }
103
+ if (seen.has(id)) {
104
+ throw new StandingBlockError(`standing memory block entry ids must be unique; duplicate: ${id}`);
105
+ }
106
+ if (entry.lastChangedAt !== void 0 && Number.isNaN(Date.parse(entry.lastChangedAt))) {
107
+ throw new StandingBlockError(
108
+ `standing memory block entry ${id} has an unparseable lastChangedAt: ${JSON.stringify(entry.lastChangedAt)}`
109
+ );
110
+ }
111
+ seen.add(id);
112
+ validated.set(id, { ...entry, id, description });
113
+ }
114
+ return validated;
115
+ }
116
+ function buildStandingMemoryBlock(input) {
117
+ const freshDays = input.freshDays ?? DEFAULT_STANDING_BLOCK_FRESH_DAYS;
118
+ const maxChars = input.maxChars ?? DEFAULT_STANDING_BLOCK_MAX_CHARS;
119
+ const hookMaxChars = input.hookMaxChars ?? DEFAULT_STANDING_BLOCK_HOOK_CHARS;
120
+ if (!Number.isFinite(input.nowMs)) {
121
+ throw new StandingBlockError("standing memory block requires a finite nowMs");
122
+ }
123
+ if (!(freshDays >= 0) || !Number.isFinite(freshDays)) {
124
+ throw new StandingBlockError("standing memory block requires freshDays >= 0");
125
+ }
126
+ if (!(maxChars >= 1) || !Number.isFinite(maxChars)) {
127
+ throw new StandingBlockError("standing memory block requires maxChars >= 1");
128
+ }
129
+ if (!(hookMaxChars >= 1) || !Number.isFinite(hookMaxChars)) {
130
+ throw new StandingBlockError("standing memory block requires hookMaxChars >= 1");
131
+ }
132
+ const entries = validateEntries(input.entries);
133
+ const ledger = new Map(input.ledger ?? []);
134
+ if (entries.size === 0) {
135
+ return {
136
+ text: "",
137
+ lines: [],
138
+ ledger,
139
+ bandCounts: { pinned: 0, fresh: 0, compressed: 0, dropped: 0 }
140
+ };
141
+ }
142
+ const freshCutoff = input.nowMs - freshDays * 864e5;
143
+ const layered = [];
144
+ for (const entry of entries.values()) {
145
+ let band;
146
+ if (entry.pinned === true) {
147
+ band = "pinned";
148
+ } else if (typeof entry.lastChangedAt === "string" && Date.parse(entry.lastChangedAt) >= freshCutoff && Date.parse(entry.lastChangedAt) <= input.nowMs) {
149
+ band = "fresh";
150
+ } else {
151
+ band = "compressed";
152
+ }
153
+ if (band !== "compressed") {
154
+ layered.push({ id: entry.id, band, line: `- ${entry.description}` });
155
+ continue;
156
+ }
157
+ const key = standingHookLedgerKey(entry.description, hookMaxChars);
158
+ const cached = ledger.get(key);
159
+ const hook = cached ?? mechanicalHook(entry.description, hookMaxChars);
160
+ if (cached === void 0) ledger.set(key, hook);
161
+ layered.push({ id: entry.id, band, line: `- ${hook}` });
162
+ }
163
+ layered.sort(
164
+ (a, b) => BAND_RANK[a.band] - BAND_RANK[b.band] || (a.id < b.id ? -1 : a.id > b.id ? 1 : 0)
165
+ );
166
+ const render = (keep2, withMarker) => {
167
+ const body = layered.slice(0, keep2).map((item) => item.line);
168
+ if (withMarker) body.push(STANDING_BLOCK_TRIMMED_MARKER);
169
+ const lines = [STANDING_BLOCK_HEADER, "", ...body, "", STANDING_BLOCK_INSTRUCTION];
170
+ return { text: lines.join("\n"), lines };
171
+ };
172
+ const pinnedCount = layered.filter((item) => item.band === "pinned").length;
173
+ let keep = layered.length;
174
+ let rendered = render(keep, false);
175
+ while (rendered.text.length > maxChars && keep > pinnedCount) {
176
+ keep -= 1;
177
+ rendered = render(keep, true);
178
+ }
179
+ if (rendered.text.length > maxChars) {
180
+ throw new StandingBlockBudgetError(maxChars);
181
+ }
182
+ const volatility = lintStandingBlockVolatility(rendered.text);
183
+ if (volatility.length > 0) {
184
+ throw new StandingBlockVolatilityError(volatility);
185
+ }
186
+ const kept = layered.slice(0, keep);
187
+ return {
188
+ text: rendered.text,
189
+ lines: rendered.lines,
190
+ ledger,
191
+ bandCounts: {
192
+ pinned: kept.filter((item) => item.band === "pinned").length,
193
+ fresh: kept.filter((item) => item.band === "fresh").length,
194
+ compressed: kept.filter((item) => item.band === "compressed").length,
195
+ dropped: layered.length - keep
196
+ }
197
+ };
198
+ }
199
+
200
+ export {
201
+ DEFAULT_RECALL_STANDING_BLOCK,
202
+ DEFAULT_STANDING_BLOCK_FRESH_DAYS,
203
+ DEFAULT_STANDING_BLOCK_MAX_CHARS,
204
+ DEFAULT_STANDING_BLOCK_HOOK_CHARS,
205
+ STANDING_BLOCK_HEADER,
206
+ STANDING_BLOCK_INSTRUCTION,
207
+ STANDING_BLOCK_TRIMMED_MARKER,
208
+ standingHookLedgerKey,
209
+ lintStandingBlockVolatility,
210
+ StandingBlockError,
211
+ StandingBlockVolatilityError,
212
+ StandingBlockBudgetError,
213
+ parseRecallStandingBlock,
214
+ parseStandingBlockFreshDays,
215
+ parseStandingBlockMaxChars,
216
+ buildStandingMemoryBlock
217
+ };
218
+ //# sourceMappingURL=chunk-LI4APB6M.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/standing-memory-block.ts"],"sourcesContent":["/**\n * Prefix-cache-stable standing memory block (issue #2971, foundation slice).\n *\n * A standing block is a compact, byte-stable index over pinned/high-value\n * memories that a host injects as the FIRST part of the system prompt, so\n * the LLM prefix cache survives across turns. Measured motivation\n * (distill-kura, local OpenAI-compatible server): an identical 4k-token\n * prefix reprices at 0.14 s vs 0.68 s cold, and one changed word at the\n * front costs the whole cache. So the block contains no clock, no date,\n * and no counter — and the builder REFUSES, at build time, any block that\n * carries one instead of discovering slow turns weeks later.\n *\n * Determinism rules (byte-identical between rebuilds):\n * - line order is band rank, then id codepoint order — never wall clock,\n * never insertion order, never locale collation;\n * - `nowMs` classifies bands but never renders into the text;\n * - the trimmed-tail marker is a constant string (no count of dropped\n * lines, which would itself be a counter).\n *\n * Host contract for the full feature (later wiring slices):\n * - rebuild only when the underlying store changes (store version), not\n * per turn and not on a timer — band edges must not drift mid-session;\n * - inject the standing block BEFORE per-turn dynamic recall and any\n * ticking content (persona with a clock), see docs/config-reference.md;\n * - selection of which memories qualify (pinned/high-value) happens\n * before this builder — it only layers and renders what it is given;\n * - on build failure (volatility, budget) skip injection and log — the\n * dynamic recall surface must not go blank.\n *\n * Pure: no I/O, inputs never mutated, the returned ledger is a fresh Map.\n */\nimport { coerceBooleanLike, coerceNumber } from \"./connectors/coerce.js\";\n\nexport const DEFAULT_RECALL_STANDING_BLOCK = false;\nexport const DEFAULT_STANDING_BLOCK_FRESH_DAYS = 14;\nexport const DEFAULT_STANDING_BLOCK_MAX_CHARS = 2048;\n/** ~24-token recognition hook at the repo's 4-chars-per-token Latin headroom. */\nexport const DEFAULT_STANDING_BLOCK_HOOK_CHARS = 96;\n\nexport const STANDING_BLOCK_HEADER = \"## Standing Memory (Remnic)\";\nexport const STANDING_BLOCK_INSTRUCTION =\n \"Use this standing index for orientation. It changes only when the memory store changes.\";\nexport const STANDING_BLOCK_TRIMMED_MARKER = \"- ...(older lines trimmed)\";\n\nexport type StandingBand = \"pinned\" | \"fresh\" | \"compressed\";\n\nexport interface StandingMemoryEntry {\n /** Stable document id. Total order within a band is id codepoint order. */\n id: string;\n /** The one-line description to stand in the index. */\n description: string;\n /** Pinned entries render in full, first band, never trimmed away. */\n pinned?: boolean;\n /** ISO timestamp of the last content change; drives the fresh band. */\n lastChangedAt?: string;\n}\n\n/** Cache of compressed hooks keyed on `${description}\\u0000${hookMaxChars}`. */\nexport type StandingHookLedger = ReadonlyMap<string, string>;\n\nexport function standingHookLedgerKey(description: string, hookMaxChars: number): string {\n return `${description}\\u0000${hookMaxChars}`;\n}\n\nexport interface StandingBlockBandCounts {\n pinned: number;\n fresh: number;\n compressed: number;\n dropped: number;\n}\n\nexport interface StandingMemoryBlock {\n /** Full block text (header + lines + instruction). Empty string for no entries. */\n text: string;\n /** Lines without a trailing newline; empty for no entries. */\n lines: string[];\n /** Ledger including hooks generated this build. Fresh Map; input never mutated. */\n ledger: StandingHookLedger;\n bandCounts: StandingBlockBandCounts;\n}\n\nexport type StandingVolatilityKind = \"iso-date\" | \"clock-time\" | \"relative-date\" | \"counter\";\n\nexport interface StandingVolatilityMatch {\n kind: StandingVolatilityKind;\n token: string;\n}\n\nconst ISO_DATE_RE = /\\b\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2})?/;\nconst CLOCK_TIME_RE = /\\b\\d{1,2}:\\d{2}(?::\\d{2})?\\b/;\nconst RELATIVE_DATE_RE =\n /\\b(?:today|tonight|tomorrow|yesterday|this\\s+(?:morning|afternoon|evening|week|month|year))\\b/i;\nconst COUNTER_RE = /\\b(?:count|total|entries|memories|items)\\s*[:=]\\s*\\d+\\b/i;\n\n/**\n * Build-time volatility lint. Returns every cache-busting token class found:\n * ISO dates/datetimes, clock times, relative date words, and index counters.\n * Refusal is the designed behavior (a memory surface skips the block and\n * logs) — a silently repricing prefix is the failure this catches.\n */\nexport function lintStandingBlockVolatility(text: string): StandingVolatilityMatch[] {\n const matches: StandingVolatilityMatch[] = [];\n for (const [kind, re] of [\n [\"iso-date\", ISO_DATE_RE],\n [\"clock-time\", CLOCK_TIME_RE],\n [\"relative-date\", RELATIVE_DATE_RE],\n [\"counter\", COUNTER_RE],\n ] as const) {\n const hit = text.match(re);\n if (hit) matches.push({ kind, token: hit[0] });\n }\n return matches;\n}\n\nexport class StandingBlockError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"StandingBlockError\";\n }\n}\n\nexport class StandingBlockVolatilityError extends StandingBlockError {\n readonly matches: readonly StandingVolatilityMatch[];\n constructor(matches: readonly StandingVolatilityMatch[]) {\n super(\n `standing memory block refused: volatile content busts the prefix cache (${matches\n .map((m) => `${m.kind}:${JSON.stringify(m.token)}`)\n .join(\", \")})`,\n );\n this.name = \"StandingBlockVolatilityError\";\n this.matches = matches;\n }\n}\n\nexport class StandingBlockBudgetError extends StandingBlockError {\n constructor(maxChars: number) {\n super(\n `standing memory block does not fit: pinned lines alone exceed maxChars=${maxChars}; raise standingBlockMaxChars or unpin entries`,\n );\n this.name = \"StandingBlockBudgetError\";\n }\n}\n\nexport function parseRecallStandingBlock(raw: unknown): boolean {\n return coerceBooleanLike(raw, \"recallStandingBlock\") === true;\n}\n\nexport function parseStandingBlockFreshDays(raw: unknown): number {\n if (raw === undefined || raw === null) return DEFAULT_STANDING_BLOCK_FRESH_DAYS;\n const n = coerceNumber(raw, \"standingBlockFreshDays\");\n if (n === undefined || !Number.isFinite(n) || n < 0) {\n throw new Error(`Invalid standingBlockFreshDays: expected a number >= 0, got ${JSON.stringify(raw)}`);\n }\n return n;\n}\n\nexport function parseStandingBlockMaxChars(raw: unknown): number {\n if (raw === undefined || raw === null) return DEFAULT_STANDING_BLOCK_MAX_CHARS;\n const n = coerceNumber(raw, \"standingBlockMaxChars\");\n if (n === undefined || !Number.isFinite(n) || n < 1) {\n throw new Error(`Invalid standingBlockMaxChars: expected an integer >= 1, got ${JSON.stringify(raw)}`);\n }\n return Math.floor(n);\n}\n\n/**\n * Mechanical hook: deterministic first-cut of the description to the char\n * budget at a word boundary. This is also the fallback when no model is\n * reachable for compression — the standing surface never goes blank because\n * a model is down. Model-generated hooks arrive pre-seeded in the ledger.\n */\nfunction mechanicalHook(description: string, budget: number): string {\n if (description.length <= budget) return description;\n const cut = description.slice(0, budget);\n const lastSpace = cut.lastIndexOf(\" \");\n const base = lastSpace > Math.floor(budget * 0.6) ? cut.slice(0, lastSpace) : cut;\n return `${base.replace(/[\\s,;:]+$/, \"\")}...`;\n}\n\ninterface LayeredEntry {\n id: string;\n band: StandingBand;\n line: string;\n}\n\nconst BAND_RANK: Record<StandingBand, number> = { pinned: 0, fresh: 1, compressed: 2 };\n\nfunction validateEntries(entries: readonly StandingMemoryEntry[]): Map<string, StandingMemoryEntry> {\n if (!Array.isArray(entries)) {\n throw new StandingBlockError(\"standing memory block entries must be an array\");\n }\n const seen = new Set<string>();\n const validated = new Map<string, StandingMemoryEntry>();\n for (const entry of entries) {\n if (typeof entry !== \"object\" || entry === null) {\n throw new StandingBlockError(`standing memory block entry must be an object, got ${JSON.stringify(entry)}`);\n }\n const id = typeof entry.id === \"string\" ? entry.id.trim() : \"\";\n const description = typeof entry.description === \"string\" ? entry.description.trim() : \"\";\n if (id.length === 0) {\n throw new StandingBlockError(\"standing memory block entry requires a non-empty id\");\n }\n if (description.length === 0) {\n throw new StandingBlockError(`standing memory block entry ${id} requires a non-empty description`);\n }\n if (seen.has(id)) {\n throw new StandingBlockError(`standing memory block entry ids must be unique; duplicate: ${id}`);\n }\n if (entry.lastChangedAt !== undefined && Number.isNaN(Date.parse(entry.lastChangedAt))) {\n throw new StandingBlockError(\n `standing memory block entry ${id} has an unparseable lastChangedAt: ${JSON.stringify(entry.lastChangedAt)}`,\n );\n }\n seen.add(id);\n validated.set(id, { ...entry, id, description });\n }\n return validated;\n}\n\nexport interface StandingMemoryBlockInput {\n entries: readonly StandingMemoryEntry[];\n /**\n * Evaluation instant for the fresh band. Hosts must key rebuilds on the\n * store version, not on this clock, or band edges drift per turn.\n */\n nowMs: number;\n freshDays?: number;\n maxChars?: number;\n hookMaxChars?: number;\n ledger?: StandingHookLedger;\n}\n\nexport function buildStandingMemoryBlock(input: StandingMemoryBlockInput): StandingMemoryBlock {\n const freshDays = input.freshDays ?? DEFAULT_STANDING_BLOCK_FRESH_DAYS;\n const maxChars = input.maxChars ?? DEFAULT_STANDING_BLOCK_MAX_CHARS;\n const hookMaxChars = input.hookMaxChars ?? DEFAULT_STANDING_BLOCK_HOOK_CHARS;\n if (!Number.isFinite(input.nowMs)) {\n throw new StandingBlockError(\"standing memory block requires a finite nowMs\");\n }\n if (!(freshDays >= 0) || !Number.isFinite(freshDays)) {\n throw new StandingBlockError(\"standing memory block requires freshDays >= 0\");\n }\n if (!(maxChars >= 1) || !Number.isFinite(maxChars)) {\n throw new StandingBlockError(\"standing memory block requires maxChars >= 1\");\n }\n if (!(hookMaxChars >= 1) || !Number.isFinite(hookMaxChars)) {\n throw new StandingBlockError(\"standing memory block requires hookMaxChars >= 1\");\n }\n\n const entries = validateEntries(input.entries);\n const ledger = new Map(input.ledger ?? []);\n if (entries.size === 0) {\n return {\n text: \"\",\n lines: [],\n ledger,\n bandCounts: { pinned: 0, fresh: 0, compressed: 0, dropped: 0 },\n };\n }\n\n const freshCutoff = input.nowMs - freshDays * 86_400_000;\n const layered: LayeredEntry[] = [];\n for (const entry of entries.values()) {\n let band: StandingBand;\n if (entry.pinned === true) {\n band = \"pinned\";\n } else if (\n typeof entry.lastChangedAt === \"string\" &&\n Date.parse(entry.lastChangedAt) >= freshCutoff &&\n Date.parse(entry.lastChangedAt) <= input.nowMs\n ) {\n band = \"fresh\";\n } else {\n band = \"compressed\";\n }\n if (band !== \"compressed\") {\n layered.push({ id: entry.id, band, line: `- ${entry.description}` });\n continue;\n }\n const key = standingHookLedgerKey(entry.description, hookMaxChars);\n const cached = ledger.get(key);\n const hook = cached ?? mechanicalHook(entry.description, hookMaxChars);\n if (cached === undefined) ledger.set(key, hook);\n layered.push({ id: entry.id, band, line: `- ${hook}` });\n }\n\n // Band rank, then id codepoint order. Never localeCompare: collation is\n // ICU-dependent and this text must be byte-identical across rebuilds.\n layered.sort(\n (a, b) =>\n BAND_RANK[a.band] - BAND_RANK[b.band] || (a.id < b.id ? -1 : a.id > b.id ? 1 : 0),\n );\n\n const render = (keep: number, withMarker: boolean): { text: string; lines: string[] } => {\n const body = layered.slice(0, keep).map((item) => item.line);\n if (withMarker) body.push(STANDING_BLOCK_TRIMMED_MARKER);\n const lines = [STANDING_BLOCK_HEADER, \"\", ...body, \"\", STANDING_BLOCK_INSTRUCTION];\n return { text: lines.join(\"\\n\"), lines };\n };\n\n const pinnedCount = layered.filter((item) => item.band === \"pinned\").length;\n let keep = layered.length;\n let rendered = render(keep, false);\n // Mechanical trim: drop from the tail. The sort puts compressed lines\n // last, so oldest-band hooks go first and pinned lines are never reached.\n while (rendered.text.length > maxChars && keep > pinnedCount) {\n keep -= 1;\n rendered = render(keep, true);\n }\n if (rendered.text.length > maxChars) {\n throw new StandingBlockBudgetError(maxChars);\n }\n\n const volatility = lintStandingBlockVolatility(rendered.text);\n if (volatility.length > 0) {\n throw new StandingBlockVolatilityError(volatility);\n }\n\n const kept = layered.slice(0, keep);\n return {\n text: rendered.text,\n lines: rendered.lines,\n ledger,\n bandCounts: {\n pinned: kept.filter((item) => item.band === \"pinned\").length,\n fresh: kept.filter((item) => item.band === \"fresh\").length,\n compressed: kept.filter((item) => item.band === \"compressed\").length,\n dropped: layered.length - keep,\n },\n };\n}\n"],"mappings":"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","names":["keep"]}
@@ -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
  getCachedRuleMemories,
6
6
  setCachedRuleMemories
@@ -119,4 +119,4 @@ export {
119
119
  compareVerifiedSemanticRuleResults,
120
120
  searchVerifiedSemanticRules
121
121
  };
122
- //# sourceMappingURL=chunk-VGRVJ6Z6.js.map
122
+ //# sourceMappingURL=chunk-LIAM7U2J.js.map
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  computeCorpusWatermarks,
6
6
  resolveCorpusNamespaceRoots
7
- } from "./chunk-SW42MMAH.js";
7
+ } from "./chunk-MQT3WP3F.js";
8
8
 
9
9
  // src/operator-doctor-corpus.ts
10
10
  var DIGEST_PREFIX_LENGTH = 12;
@@ -78,4 +78,4 @@ export {
78
78
  corpusWatermarksFromCheck,
79
79
  summarizeCorpusAndReplica
80
80
  };
81
- //# sourceMappingURL=chunk-S3SND7SO.js.map
81
+ //# sourceMappingURL=chunk-LIDJWAQV.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  rebuildMemoryProjection
3
- } from "./chunk-CWMMKFO7.js";
3
+ } from "./chunk-XEHLYA5Z.js";
4
4
 
5
5
  // src/convergence-refresh.ts
6
6
  async function refreshConvergedNamespaces(namespaces, namespaceSearchRouter, getStorage, searchEnabled) {
@@ -32,4 +32,4 @@ async function refreshConvergedNamespaces(namespaces, namespaceSearchRouter, get
32
32
  export {
33
33
  refreshConvergedNamespaces
34
34
  };
35
- //# sourceMappingURL=chunk-T5NI5K46.js.map
35
+ //# sourceMappingURL=chunk-LYMJ36UI.js.map
@@ -3,25 +3,28 @@ import {
3
3
  } from "./chunk-V7IZKJI3.js";
4
4
  import {
5
5
  AdapterRegistry
6
- } from "./chunk-Q4AUIFUA.js";
6
+ } from "./chunk-QMWKENNK.js";
7
7
  import {
8
8
  WriteRateLimiter
9
9
  } from "./chunk-TB6CBZ5V.js";
10
10
  import {
11
11
  maybeRespondRecallNavigation
12
12
  } from "./chunk-QZ4U67KO.js";
13
+ import {
14
+ maybeRespondMemoryBrowse
15
+ } from "./chunk-HMDYSGY6.js";
13
16
  import {
14
17
  serializeInlineScriptValue
15
18
  } from "./chunk-3HSRWJTC.js";
16
19
  import {
17
20
  respondDeepRecall
18
- } from "./chunk-3UQIS2GC.js";
21
+ } from "./chunk-WNMVUWI7.js";
19
22
  import {
20
23
  handleSupportPassportOwnerHttp
21
- } from "./chunk-UEJY6ZTQ.js";
24
+ } from "./chunk-NE45P3OF.js";
22
25
  import {
23
26
  buildSupportPassportPublicRequestHandler
24
- } from "./chunk-OV7GJ4KW.js";
27
+ } from "./chunk-V2XNMIAM.js";
25
28
  import {
26
29
  handleMcpGetSse
27
30
  } from "./chunk-SRT6SHVZ.js";
@@ -34,10 +37,10 @@ import {
34
37
  processChatMessage,
35
38
  sessionBelongsToPrincipal,
36
39
  subscribeChatTranscript
37
- } from "./chunk-GYYLZOSO.js";
40
+ } from "./chunk-R4JTUTU6.js";
38
41
  import {
39
42
  RelayMissionStoreError
40
- } from "./chunk-D5DTZBTV.js";
43
+ } from "./chunk-2JFSQWFH.js";
41
44
  import {
42
45
  executeResolution,
43
46
  isValidResolutionVerb
@@ -59,10 +62,10 @@ import {
59
62
  optionalNamespaceKindQueryParam,
60
63
  optionalQueryString,
61
64
  positiveIntQueryParam
62
- } from "./chunk-YFVIA5A6.js";
65
+ } from "./chunk-DRLZB3CN.js";
63
66
  import {
64
67
  respondBriefingHttp
65
- } from "./chunk-5EHPB6RL.js";
68
+ } from "./chunk-2QX65IEC.js";
66
69
  import {
67
70
  maybeHandleLifecycleFlush
68
71
  } from "./chunk-TIDEL77O.js";
@@ -73,14 +76,14 @@ import {
73
76
  authorizationProbeNamespaces,
74
77
  authorizationProbeRequiresPrincipalNamespace,
75
78
  probeOperationAuthorization
76
- } from "./chunk-AYZHHMTK.js";
79
+ } from "./chunk-QKFYJVDG.js";
77
80
  import {
78
81
  getOperation,
79
82
  resolveQueryNamespaceWritablePreflight
80
- } from "./chunk-HXDXR2FH.js";
83
+ } from "./chunk-AS4YKT75.js";
81
84
  import {
82
85
  handleWhoKnowsHttpQuery
83
- } from "./chunk-FSH6KRKO.js";
86
+ } from "./chunk-PPJLJD2D.js";
84
87
  import {
85
88
  isTrustZoneName
86
89
  } from "./chunk-ROBHL3GL.js";
@@ -89,16 +92,16 @@ import {
89
92
  } from "./chunk-DEUNUKTD.js";
90
93
  import {
91
94
  isRecallDisclosure
92
- } from "./chunk-66YUOI53.js";
95
+ } from "./chunk-WQW6KPVC.js";
93
96
  import {
94
97
  CorrectionContractError
95
98
  } from "./chunk-QLK3SL7Q.js";
96
99
  import {
97
100
  validateRequest
98
- } from "./chunk-AYP2FZFA.js";
101
+ } from "./chunk-JUOJGZPV.js";
99
102
  import {
100
103
  peerManifestRevision
101
- } from "./chunk-TNQR7N52.js";
104
+ } from "./chunk-S3YM4SZQ.js";
102
105
  import {
103
106
  assertOperationAllowed,
104
107
  capabilityAllowsOp,
@@ -1826,6 +1829,7 @@ var EngramAccessHttpServer = class extends ReviewDeckAccessHttpBase {
1826
1829
  return;
1827
1830
  }
1828
1831
  if (await maybeRespondRecallNavigation(req, res, pathname, req.method, (op) => this.enforceTokenOp(op), this.respondJson.bind(this), this.readJsonBody.bind(this), this.service, (ns, sk) => this.wearablesScope(req, ns ?? parsed.searchParams.get("namespace") ?? void 0, sk ?? parsed.searchParams.get("sessionKey") ?? void 0))) return;
1832
+ if (await maybeRespondMemoryBrowse(req, res, pathname, req.method, (op) => this.enforceTokenOp(op), this.respondJson.bind(this), this.readJsonBody.bind(this), this.service, (ns) => this.wearablesScope(req, ns ?? parsed.searchParams.get("namespace") ?? void 0))) return;
1829
1833
  if (req.method === "GET" && (pathname === "/engram/v1/location/status" || pathname === "/remnic/v1/location/status")) {
1830
1834
  this.enforceTokenOp("location_status");
1831
1835
  await respondLocationStatus(res, this.respondJson.bind(this), this.service);
@@ -3595,4 +3599,4 @@ export {
3595
3599
  resolveDefaultAdminConsolePublicDir,
3596
3600
  EngramAccessHttpServer
3597
3601
  };
3598
- //# sourceMappingURL=chunk-KF57IQFX.js.map
3602
+ //# sourceMappingURL=chunk-MMQVWKFY.js.map