@remnic/core 9.69.16 → 9.69.18

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 (526) hide show
  1. package/dist/access-admin-ops-surface.d.ts +11 -11
  2. package/dist/access-admin-ops-surface.js +49 -45
  3. package/dist/access-authorization-probe.d.ts +11 -11
  4. package/dist/access-authorization-probe.js +50 -46
  5. package/dist/access-boundary.d.ts +11 -11
  6. package/dist/access-boundary.js +49 -45
  7. package/dist/access-cli.js +111 -110
  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 +11 -11
  11. package/dist/access-extraction-force-flush.js +49 -45
  12. package/dist/access-health-types.d.ts +1 -1
  13. package/dist/access-http-lcm-compaction.d.ts +11 -11
  14. package/dist/access-http-lifecycle-flush.d.ts +11 -11
  15. package/dist/access-http-offline-stream.d.ts +11 -11
  16. package/dist/access-http-query.d.ts +2 -2
  17. package/dist/access-http-query.js +51 -47
  18. package/dist/access-http.d.ts +12 -12
  19. package/dist/access-http.js +69 -65
  20. package/dist/access-identity-continuity-surface.d.ts +9 -9
  21. package/dist/access-identity-continuity-surface.js +49 -45
  22. package/dist/access-lcm-surface.d.ts +11 -11
  23. package/dist/access-lcm-surface.js +49 -45
  24. package/dist/access-mcp-output-schemas.js +1 -1
  25. package/dist/access-mcp.d.ts +11 -11
  26. package/dist/access-mcp.js +60 -56
  27. package/dist/access-memory-search-fanout.d.ts +2 -2
  28. package/dist/{access-namespace-preflight-Rzuo1nGR.d.ts → access-namespace-preflight-BMHhxoL9.d.ts} +1 -1
  29. package/dist/access-namespace-preflight.d.ts +3 -3
  30. package/dist/access-namespace-preflight.js +49 -45
  31. package/dist/access-observe-transcript.d.ts +147 -0
  32. package/dist/access-observe-transcript.js +16 -0
  33. package/dist/access-observe-write-surface.d.ts +12 -11
  34. package/dist/access-observe-write-surface.js +49 -45
  35. package/dist/access-offline-manifest.d.ts +9 -9
  36. package/dist/access-offline-manifest.js +6 -6
  37. package/dist/access-operations-batch.js +52 -48
  38. package/dist/access-operations.d.ts +13 -13
  39. package/dist/access-operations.js +57 -53
  40. package/dist/access-recall-concurrency.d.ts +11 -11
  41. package/dist/access-recall-concurrency.js +49 -45
  42. package/dist/access-recall-response.d.ts +11 -11
  43. package/dist/access-recall-response.js +49 -45
  44. package/dist/access-recall-surface.d.ts +11 -11
  45. package/dist/access-recall-surface.js +49 -45
  46. package/dist/access-schema.d.ts +4 -4
  47. package/dist/access-schema.js +5 -5
  48. package/dist/{access-service-tcC_jK6C.d.ts → access-service-CYdqPfpS.d.ts} +22 -13
  49. package/dist/access-service-helpers.d.ts +11 -11
  50. package/dist/access-service.d.ts +11 -11
  51. package/dist/access-service.js +49 -45
  52. package/dist/access-surface-catalog.d.ts +11 -11
  53. package/dist/access-surface-catalog.js +51 -47
  54. package/dist/access-surface-catalog.js.map +1 -1
  55. package/dist/access-wearables-meetings-surface.d.ts +3 -3
  56. package/dist/action-confidence.d.ts +1 -1
  57. package/dist/active-memory-bridge.d.ts +1 -1
  58. package/dist/active-recall.d.ts +1 -1
  59. package/dist/active-recall.js +7 -7
  60. package/dist/adapters/index.js +4 -4
  61. package/dist/adapters/registry.js +2 -2
  62. package/dist/ambient-provenance.d.ts +1 -1
  63. package/dist/artifact-search.d.ts +1 -1
  64. package/dist/{auto-sync-Q6Q2FVSC.js → auto-sync-GRUJFD2F.js} +3 -3
  65. package/dist/behavior-learner.d.ts +1 -1
  66. package/dist/behavior-signals.d.ts +1 -1
  67. package/dist/bootstrap.d.ts +9 -9
  68. package/dist/briefing-window.d.ts +2 -2
  69. package/dist/briefing.d.ts +2 -2
  70. package/dist/briefing.js +14 -14
  71. package/dist/buffer-surprise-report.d.ts +1 -1
  72. package/dist/buffer-turn-helpers.d.ts +1 -1
  73. package/dist/buffer.d.ts +2 -2
  74. package/dist/bulk-import/index.d.ts +3 -3
  75. package/dist/calibration.d.ts +1 -1
  76. package/dist/capabilities.d.ts +1 -1
  77. package/dist/{catalog-DjTLVOYp.d.ts → catalog-C1qHsGew.d.ts} +1 -1
  78. package/dist/causal-behavior.d.ts +1 -1
  79. package/dist/causal-behavior.js +2 -2
  80. package/dist/causal-chain.js +2 -2
  81. package/dist/causal-consolidation.d.ts +1 -1
  82. package/dist/causal-consolidation.js +16 -16
  83. package/dist/causal-retrieval.js +2 -2
  84. package/dist/causal-trajectory-graph.d.ts +1 -1
  85. package/dist/causal-trajectory-graph.js +2 -2
  86. package/dist/causal-trajectory.js +1 -1
  87. package/dist/{chunk-LEPOP46W.js → chunk-227UFSEQ.js} +4 -4
  88. package/dist/{chunk-RJ57OOCD.js → chunk-2J4TIFBK.js} +3 -3
  89. package/dist/{chunk-AU7Q3LSC.js → chunk-2QSZNTDO.js} +4 -4
  90. package/dist/{chunk-P6GKRT2H.js → chunk-2Z3DG5CQ.js} +1 -1
  91. package/dist/{chunk-BO4PWIJY.js → chunk-3LADWWMA.js} +3 -3
  92. package/dist/{chunk-P7LVYPIX.js → chunk-3LJPSRAN.js} +3 -3
  93. package/dist/{chunk-ZKZCJRRO.js → chunk-43HMVVOL.js} +2 -2
  94. package/dist/{chunk-3TSU662L.js → chunk-46QMN7I7.js} +5 -5
  95. package/dist/{chunk-HODFGQGT.js → chunk-4HYNMLT6.js} +2 -2
  96. package/dist/{chunk-HTOWFFAI.js → chunk-5CF2R4NS.js} +2 -2
  97. package/dist/{chunk-QVI63XSO.js → chunk-5MF4EGL5.js} +50 -50
  98. package/dist/{chunk-KLSPKMIO.js → chunk-5SGOARQJ.js} +2 -2
  99. package/dist/{chunk-JGXMA6HL.js → chunk-6FUMA6AA.js} +2 -2
  100. package/dist/chunk-6MINUTGJ.js +64 -0
  101. package/dist/chunk-6MINUTGJ.js.map +1 -0
  102. package/dist/{chunk-K2IJH4D3.js → chunk-7RRUHJPG.js} +7 -7
  103. package/dist/{chunk-I4QAH4SY.js → chunk-7TUB6JWA.js} +3 -3
  104. package/dist/{chunk-NNBZS3DY.js → chunk-AG46P24C.js} +4 -4
  105. package/dist/{chunk-B64IVEOH.js → chunk-AWF4CNYJ.js} +2 -2
  106. package/dist/{chunk-C25N5HWX.js → chunk-B2AGUKSS.js} +2 -2
  107. package/dist/{chunk-7ZMU4XQT.js → chunk-BR3OOQZQ.js} +2 -2
  108. package/dist/{chunk-TRLCMLX7.js → chunk-BZTJEILZ.js} +2 -2
  109. package/dist/{chunk-OLBZ2WGG.js → chunk-C2JCVZWX.js} +2 -2
  110. package/dist/{chunk-YWN3GYI2.js → chunk-CASWJ2HM.js} +2 -2
  111. package/dist/{chunk-S35IIP5P.js → chunk-CFKCFY4B.js} +2 -2
  112. package/dist/{chunk-S5G2LAL7.js → chunk-CHWUICVY.js} +4 -4
  113. package/dist/{chunk-7JV4JST3.js → chunk-CVJMGVEW.js} +47 -47
  114. package/dist/{chunk-BE4Y6GK6.js → chunk-D35XLYQ7.js} +11 -11
  115. package/dist/{chunk-DA4ZMCBU.js → chunk-D5ZNOKR7.js} +3 -3
  116. package/dist/{chunk-BEXFNGQ3.js → chunk-DK6GMO6D.js} +3 -3
  117. package/dist/{chunk-I6DUKBUI.js → chunk-DP4EBV7C.js} +2 -2
  118. package/dist/{chunk-W6GEMUZM.js → chunk-EFCBJDYE.js} +13 -13
  119. package/dist/{chunk-XMIAU4CO.js → chunk-EJ5RKUXW.js} +2 -2
  120. package/dist/{chunk-LF6SHWVV.js → chunk-F5UWQ4LX.js} +2 -2
  121. package/dist/{chunk-XQGFIAG7.js → chunk-FB7LAJQM.js} +2 -2
  122. package/dist/{chunk-OAKATRAN.js → chunk-G6N654ND.js} +10 -10
  123. package/dist/{chunk-2EHDPHMD.js → chunk-GGYDJJBO.js} +2 -2
  124. package/dist/{chunk-VAMZYOOV.js → chunk-HOUST5UX.js} +2 -2
  125. package/dist/{chunk-NHLEFBE2.js → chunk-I4Y6TBD7.js} +3 -3
  126. package/dist/{chunk-W272SWN7.js → chunk-I7FY43VC.js} +7 -7
  127. package/dist/{chunk-MSDIETFC.js → chunk-IZZ7Q2RJ.js} +56 -47
  128. package/dist/chunk-IZZ7Q2RJ.js.map +1 -0
  129. package/dist/{chunk-CTCGHNWN.js → chunk-J2R275FN.js} +4 -4
  130. package/dist/{chunk-XJJYSX6F.js → chunk-JCUG7AXZ.js} +4 -4
  131. package/dist/{chunk-ZRUEP4IK.js → chunk-JIM4BIOC.js} +30 -49
  132. package/dist/chunk-JIM4BIOC.js.map +1 -0
  133. package/dist/{chunk-BX6GW4KC.js → chunk-JMAG7WZ7.js} +2 -2
  134. package/dist/{chunk-NF3NMAG7.js → chunk-JOYC4RYC.js} +2 -2
  135. package/dist/{chunk-5JQV4T5Q.js → chunk-JZ6EYAVP.js} +2 -2
  136. package/dist/{chunk-QRDSXR3V.js → chunk-KA2HZCMG.js} +2 -2
  137. package/dist/{chunk-7LCGFUMB.js → chunk-KQAFEZQX.js} +4 -4
  138. package/dist/{chunk-ETZ7KKOS.js → chunk-KTVSPFCQ.js} +2 -2
  139. package/dist/{chunk-PAWIY5OQ.js → chunk-L74A6NTI.js} +6 -6
  140. package/dist/{chunk-2XJDAEAM.js → chunk-LFK623SF.js} +5 -5
  141. package/dist/chunk-LVE64P5Y.js +80 -0
  142. package/dist/chunk-LVE64P5Y.js.map +1 -0
  143. package/dist/{chunk-IEZ6CGTW.js → chunk-N3SS45OW.js} +115 -55
  144. package/dist/chunk-N3SS45OW.js.map +1 -0
  145. package/dist/{chunk-QUVWFZOU.js → chunk-N7JK2RKG.js} +2 -2
  146. package/dist/{chunk-BFDOBESV.js → chunk-NYRB7BKY.js} +2 -2
  147. package/dist/{chunk-LDOQE34V.js → chunk-NZGO2GKL.js} +2 -2
  148. package/dist/{chunk-VYD63IFH.js → chunk-OGTKQ5MJ.js} +3 -3
  149. package/dist/{chunk-BIJAWZYW.js → chunk-OLT3YTDH.js} +4 -4
  150. package/dist/{chunk-F2ERDKY2.js → chunk-PC7WNIRL.js} +17 -17
  151. package/dist/{chunk-3BS2OGDT.js → chunk-PPOT6SPR.js} +5 -5
  152. package/dist/{chunk-G7VEQEMG.js → chunk-QVSRE355.js} +65 -39
  153. package/dist/chunk-QVSRE355.js.map +1 -0
  154. package/dist/{chunk-LUDXSSTW.js → chunk-R7LY4YKF.js} +2 -2
  155. package/dist/{chunk-N37X5RU7.js → chunk-RACZB5HT.js} +4 -4
  156. package/dist/{chunk-LJAP4KSW.js → chunk-RO2X2EYM.js} +2 -2
  157. package/dist/{chunk-5YQ7RFSO.js → chunk-S37NN23M.js} +2 -2
  158. package/dist/{chunk-DDX6KIXF.js → chunk-SB4OBB7P.js} +2 -2
  159. package/dist/{chunk-JHTF22NQ.js → chunk-TA7UZZMW.js} +2 -2
  160. package/dist/{chunk-4UVDLNHQ.js → chunk-UMEOXLIZ.js} +2 -2
  161. package/dist/{chunk-63I7LMLG.js → chunk-WL5PR5YC.js} +2 -2
  162. package/dist/{chunk-H5IIBGDM.js → chunk-X33MJFD2.js} +2 -2
  163. package/dist/{chunk-SXHBZXHK.js → chunk-XJJLWTLW.js} +5 -5
  164. package/dist/{chunk-OYV6RKPM.js → chunk-XOQGUGJL.js} +2 -6
  165. package/dist/chunk-XOQGUGJL.js.map +1 -0
  166. package/dist/{chunk-GIC6BASP.js → chunk-XZBXINXZ.js} +4 -4
  167. package/dist/{chunk-APZXA4WI.js → chunk-YVLENSNS.js} +2 -2
  168. package/dist/{chunk-OUKBMQ2O.js → chunk-Z3SQEEB6.js} +2 -2
  169. package/dist/{chunk-NN5CQTAJ.js → chunk-ZEBRENA6.js} +2 -2
  170. package/dist/{chunk-5H2G5X4R.js → chunk-ZJWDWPX6.js} +3 -3
  171. package/dist/{chunk-M7DGN6JZ.js → chunk-ZL3XX5LW.js} +2 -2
  172. package/dist/{chunk-4WIKMOE3.js → chunk-ZZM476NV.js} +1 -1
  173. package/dist/{cli-BI9YYpKx.d.ts → cli-DN9LpWf0.d.ts} +5 -5
  174. package/dist/cli.d.ts +13 -13
  175. package/dist/cli.js +92 -88
  176. package/dist/coding/export-okf-codegraph.d.ts +1 -1
  177. package/dist/coding/export-okf-codegraph.js +13 -13
  178. package/dist/coding/pre-action-gate.d.ts +1 -1
  179. package/dist/coding/pre-action-gate.js +2 -2
  180. package/dist/compounding/engine.d.ts +2 -2
  181. package/dist/compounding/engine.js +13 -13
  182. package/dist/compounding/preference-consolidator.d.ts +1 -1
  183. package/dist/compression-optimizer.d.ts +1 -1
  184. package/dist/config.d.ts +1 -1
  185. package/dist/config.js +7 -7
  186. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  187. package/dist/connectors/codex-materialize-runner.js +13 -13
  188. package/dist/connectors/codex-materialize.d.ts +1 -1
  189. package/dist/connectors/index.d.ts +1 -1
  190. package/dist/connectors/index.js +13 -13
  191. package/dist/consolidation-provenance-check.d.ts +2 -2
  192. package/dist/consolidation-undo.d.ts +2 -2
  193. package/dist/contradiction/index.d.ts +3 -3
  194. package/dist/converge-config.d.ts +16 -2
  195. package/dist/converge-config.js +9 -1
  196. package/dist/convergence-refresh.d.ts +2 -2
  197. package/dist/convergence-refresh.js +15 -15
  198. package/dist/conversation-index/backend.d.ts +1 -1
  199. package/dist/conversation-index/backend.js +2 -2
  200. package/dist/conversation-index/chunker.d.ts +1 -1
  201. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  202. package/dist/conversation-index/indexer.d.ts +1 -1
  203. package/dist/conversation-index/search.d.ts +1 -1
  204. package/dist/corpus-watermark.d.ts +1 -1
  205. package/dist/corpus-watermark.js +15 -15
  206. package/dist/cross-lingual-recall.d.ts +1 -1
  207. package/dist/day-summary.d.ts +1 -1
  208. package/dist/deep-recall-http-glue.d.ts +11 -11
  209. package/dist/deep-recall-http-glue.js +6 -6
  210. package/dist/deep-recall-mcp-tools.d.ts +11 -11
  211. package/dist/deep-recall-policy-llm.d.ts +1 -1
  212. package/dist/deep-recall-seeds.d.ts +1 -1
  213. package/dist/deep-recall.js +2 -2
  214. package/dist/delinearize.d.ts +1 -1
  215. package/dist/dependency-propagation-config.d.ts +1 -1
  216. package/dist/{dependency-propagation-delivery-37JdQv_3.d.ts → dependency-propagation-delivery-DjpUlhLi.d.ts} +1 -1
  217. package/dist/direct-answer-wiring.d.ts +1 -1
  218. package/dist/direct-answer.d.ts +1 -1
  219. package/dist/embedding-fallback.d.ts +1 -1
  220. package/dist/enrichment/index.d.ts +1 -1
  221. package/dist/entity-origin-fields.d.ts +1 -1
  222. package/dist/entity-retrieval.d.ts +2 -2
  223. package/dist/entity-retrieval.js +13 -13
  224. package/dist/entity-schema.d.ts +1 -1
  225. package/dist/episodic-context.d.ts +1 -1
  226. package/dist/eval-trajectory-contracts.d.ts +1 -1
  227. package/dist/eval-trajectory-store.d.ts +1 -1
  228. package/dist/eval-trajectory.d.ts +1 -1
  229. package/dist/explicit-capture.d.ts +9 -9
  230. package/dist/external-wiki-access.d.ts +11 -11
  231. package/dist/external-wiki-access.js +50 -46
  232. package/dist/external-wiki-collection-registration.d.ts +1 -1
  233. package/dist/external-wiki-collection.d.ts +1 -1
  234. package/dist/external-wiki-mcp-tools.d.ts +11 -11
  235. package/dist/extraction-error-classification.d.ts +1 -1
  236. package/dist/extraction-faithfulness.d.ts +1 -1
  237. package/dist/extraction-judge-telemetry.d.ts +1 -1
  238. package/dist/extraction-judge-training.d.ts +1 -1
  239. package/dist/extraction-judge.d.ts +1 -1
  240. package/dist/extraction-liveness.d.ts +1 -1
  241. package/dist/extraction-normalization.d.ts +1 -1
  242. package/dist/extraction-prompt.d.ts +1 -1
  243. package/dist/extraction-source-grounding-rules.d.ts +1 -1
  244. package/dist/extraction-source-grounding.d.ts +1 -1
  245. package/dist/extraction.d.ts +1 -1
  246. package/dist/extraction.js +16 -16
  247. package/dist/fallback-llm.d.ts +1 -1
  248. package/dist/graph-dashboard-diff.d.ts +1 -1
  249. package/dist/graph-dashboard-key.d.ts +1 -1
  250. package/dist/graph-dashboard-parser.d.ts +1 -1
  251. package/dist/{graph-edge-decay-FXGELBFA.js → graph-edge-decay-DGTBFALQ.js} +4 -4
  252. package/dist/graph-edge-decay-DGTBFALQ.js.map +1 -0
  253. package/dist/graph-edge-reinforcement.d.ts +1 -1
  254. package/dist/graph-path-reconstruction.d.ts +1 -1
  255. package/dist/graph-path-scoring.d.ts +1 -1
  256. package/dist/graph-snapshot.d.ts +1 -1
  257. package/dist/graph-snapshot.js +3 -3
  258. package/dist/graph.d.ts +1 -1
  259. package/dist/graph.js +2 -2
  260. package/dist/harmonic-retrieval.js +1 -1
  261. package/dist/importance.d.ts +1 -1
  262. package/dist/importers/index.d.ts +1 -1
  263. package/dist/in-flight-reads.d.ts +1 -1
  264. package/dist/{index-DquhYqsc.d.ts → index-CsUrdMyL.d.ts} +2 -2
  265. package/dist/index.d.ts +26 -26
  266. package/dist/index.js +138 -127
  267. package/dist/intent.d.ts +1 -1
  268. package/dist/lcm/engine.d.ts +1 -1
  269. package/dist/lcm/index.d.ts +1 -1
  270. package/dist/lcm/tools.d.ts +1 -1
  271. package/dist/lifecycle.d.ts +1 -1
  272. package/dist/live-connectors-runner.d.ts +1 -1
  273. package/dist/local-llm.d.ts +1 -1
  274. package/dist/local-model-endpoint.d.ts +1 -1
  275. package/dist/location/index.d.ts +3 -3
  276. package/dist/location/index.js +15 -15
  277. package/dist/maintenance/memory-governance.d.ts +1 -1
  278. package/dist/maintenance/memory-governance.js +13 -13
  279. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -2
  280. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +13 -13
  281. package/dist/maintenance/rebuild-memory-projection.d.ts +2 -2
  282. package/dist/maintenance/rebuild-memory-projection.js +14 -14
  283. package/dist/{maintenance-CizZOycr.d.ts → maintenance-D1GRGLTE.d.ts} +3 -3
  284. package/dist/mcp-memory-inspector-app.d.ts +11 -11
  285. package/dist/memory-action-policy.d.ts +1 -1
  286. package/dist/memory-cache.d.ts +1 -1
  287. package/dist/memory-controller.d.ts +1 -1
  288. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  289. package/dist/memory-projection-store.d.ts +1 -1
  290. package/dist/memory-provenance.d.ts +1 -1
  291. package/dist/memory-snapshot.d.ts +1 -1
  292. package/dist/memory-subject-cli.d.ts +11 -11
  293. package/dist/memory-subject.d.ts +11 -11
  294. package/dist/memory-worth-outcomes.d.ts +2 -2
  295. package/dist/models-json.d.ts +1 -1
  296. package/dist/namespaces/migrate.d.ts +3 -3
  297. package/dist/namespaces/migrate.js +14 -14
  298. package/dist/namespaces/principal.d.ts +1 -1
  299. package/dist/namespaces/search.d.ts +1 -1
  300. package/dist/namespaces/search.js +9 -9
  301. package/dist/namespaces/storage.d.ts +3 -3
  302. package/dist/namespaces/storage.js +13 -13
  303. package/dist/native-knowledge.d.ts +1 -1
  304. package/dist/offline-sync-impression-drain.d.ts +1 -1
  305. package/dist/offline-sync.js +2 -2
  306. package/dist/operator-doctor-corpus.d.ts +1 -1
  307. package/dist/operator-doctor-corpus.js +16 -16
  308. package/dist/operator-doctor-replica.d.ts +1 -1
  309. package/dist/operator-toolkit.d.ts +3 -3
  310. package/dist/operator-toolkit.js +30 -30
  311. package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -2
  312. package/dist/orchestration/maintenance.d.ts +4 -4
  313. package/dist/orchestration/maintenance.js +21 -21
  314. package/dist/{orchestrator-DqLcuNMP.d.ts → orchestrator-DeqaPGT5.d.ts} +8 -8
  315. package/dist/orchestrator.d.ts +9 -9
  316. package/dist/orchestrator.js +111 -110
  317. package/dist/patterns-cli.d.ts +1 -1
  318. package/dist/{pipeline-DbJpmcRu.d.ts → pipeline-umUzU0D1.d.ts} +1 -1
  319. package/dist/policy-runtime.d.ts +1 -1
  320. package/dist/proactive-contention.d.ts +1 -1
  321. package/dist/provenance.d.ts +1 -1
  322. package/dist/{public-http-Bocro5ZU.d.ts → public-http-C1ht4oDJ.d.ts} +1 -1
  323. package/dist/{qmd-DA_7fbSz.d.ts → qmd-BasT78PP.d.ts} +1 -1
  324. package/dist/qmd-preflight.d.ts +2 -2
  325. package/dist/qmd-recall-cache.d.ts +1 -1
  326. package/dist/qmd.d.ts +2 -2
  327. package/dist/recall-concurrency-config.d.ts +1 -1
  328. package/dist/recall-disclosure-escalation.d.ts +1 -1
  329. package/dist/recall-explain-renderer.d.ts +1 -1
  330. package/dist/recall-explain-renderer.js +3 -3
  331. package/dist/recall-memory-map.d.ts +1 -1
  332. package/dist/recall-navigate-access.d.ts +1 -1
  333. package/dist/recall-navigate-access.js +2 -2
  334. package/dist/recall-navigate-disclosure.d.ts +1 -1
  335. package/dist/recall-navigate-disclosure.js +1 -1
  336. package/dist/recall-navigate.d.ts +1 -1
  337. package/dist/recall-navigate.js +2 -2
  338. package/dist/recall-planner-llm.d.ts +1 -1
  339. package/dist/recall-state.d.ts +1 -1
  340. package/dist/recall-tag-filter.d.ts +1 -1
  341. package/dist/recall-timings.d.ts +1 -1
  342. package/dist/recall-xray-cli.d.ts +1 -1
  343. package/dist/recall-xray-cli.js +4 -4
  344. package/dist/recall-xray-renderer.d.ts +1 -1
  345. package/dist/recall-xray-renderer.js +3 -3
  346. package/dist/recall-xray.d.ts +1 -1
  347. package/dist/recall-xray.js +2 -2
  348. package/dist/reconcile/cursor.d.ts +1 -1
  349. package/dist/reconcile/cursor.js +2 -2
  350. package/dist/reconcile/manifest.d.ts +1 -1
  351. package/dist/reconcile/manifest.js +3 -3
  352. package/dist/reconcile/plan.d.ts +16 -1
  353. package/dist/reconcile/plan.js +2 -2
  354. package/dist/replay/normalizers/chatgpt.d.ts +1 -1
  355. package/dist/replay/normalizers/claude.d.ts +1 -1
  356. package/dist/replay/normalizers/openclaw.d.ts +1 -1
  357. package/dist/replay/normalizers/shared.d.ts +1 -1
  358. package/dist/replay/runner.d.ts +1 -1
  359. package/dist/replay/types.d.ts +1 -1
  360. package/dist/replica-divergence.d.ts +1 -1
  361. package/dist/replica-peers-config.d.ts +1 -1
  362. package/dist/resolve-auth-token.d.ts +1 -1
  363. package/dist/resume-bundles.js +8 -8
  364. package/dist/retrieval-agents.d.ts +2 -2
  365. package/dist/retrieval-tiers.d.ts +1 -1
  366. package/dist/routing/engine.d.ts +1 -1
  367. package/dist/routing/store.d.ts +1 -1
  368. package/dist/salvage-envelope.d.ts +1 -1
  369. package/dist/schemas.d.ts +42 -42
  370. package/dist/{scope-profiles-BpiWKZzx.d.ts → scope-profiles-DXYzyOXW.d.ts} +1 -1
  371. package/dist/search/embed-helper.d.ts +1 -1
  372. package/dist/search/factory.d.ts +1 -1
  373. package/dist/search/factory.js +8 -8
  374. package/dist/search/index.d.ts +1 -1
  375. package/dist/search/index.js +13 -13
  376. package/dist/search/lancedb-backend.d.ts +1 -1
  377. package/dist/search/lancedb-backend.js +2 -2
  378. package/dist/search/meilisearch-backend.d.ts +1 -1
  379. package/dist/search/meilisearch-backend.js +2 -2
  380. package/dist/search/noop-backend.d.ts +1 -1
  381. package/dist/search/orama-backend.d.ts +1 -1
  382. package/dist/search/orama-backend.js +2 -2
  383. package/dist/search/port.d.ts +1 -1
  384. package/dist/search/remote-backend.d.ts +1 -1
  385. package/dist/{semantic-consolidation-NJpaZpkY.d.ts → semantic-consolidation-CqDeaY0U.d.ts} +1 -1
  386. package/dist/semantic-consolidation.d.ts +2 -2
  387. package/dist/semantic-consolidation.js +14 -14
  388. package/dist/semantic-rule-promotion.js +13 -13
  389. package/dist/semantic-rule-verifier.d.ts +1 -1
  390. package/dist/semantic-rule-verifier.js +13 -13
  391. package/dist/{service-DdlZjX1D.d.ts → service-BKD-DVYZ.d.ts} +2 -2
  392. package/dist/session-observer-bands.d.ts +1 -1
  393. package/dist/session-observer-state.d.ts +1 -1
  394. package/dist/shared-context/manager.d.ts +1 -1
  395. package/dist/signal.d.ts +1 -1
  396. package/dist/source-agent-qualifier.d.ts +1 -1
  397. package/dist/source-agent-qualifier.js +13 -13
  398. package/dist/standup/build.js +13 -13
  399. package/dist/{storage-C7BWrpU9.d.ts → storage-BcFd1lN_.d.ts} +1 -1
  400. package/dist/storage.d.ts +2 -2
  401. package/dist/storage.js +12 -12
  402. package/dist/subject-config.d.ts +1 -1
  403. package/dist/summarizer.d.ts +30 -4
  404. package/dist/summarizer.js +6 -4
  405. package/dist/summary-snapshot.d.ts +1 -1
  406. package/dist/support-passport/index.d.ts +14 -14
  407. package/dist/support-passport/index.js +52 -48
  408. package/dist/temporal-supersession.d.ts +2 -2
  409. package/dist/temporal-timeline-recall.d.ts +1 -1
  410. package/dist/temporal-validity.d.ts +1 -1
  411. package/dist/threading.d.ts +1 -1
  412. package/dist/tier-migration.d.ts +2 -2
  413. package/dist/tier-routing.d.ts +1 -1
  414. package/dist/topics.d.ts +1 -1
  415. package/dist/transcript.d.ts +1 -1
  416. package/dist/transfer/capsule-export.js +2 -2
  417. package/dist/transfer/capsule-import.js +2 -2
  418. package/dist/transfer/export-okf.d.ts +1 -1
  419. package/dist/transfer/export-okf.js +14 -14
  420. package/dist/transfer/types.d.ts +12 -12
  421. package/dist/trust-score-stage.d.ts +1 -1
  422. package/dist/trust-score.d.ts +1 -1
  423. package/dist/{types-Cy1l6fzp.d.ts → types-BRg3tMyp.d.ts} +2 -0
  424. package/dist/types.d.ts +1 -1
  425. package/dist/types.js +1 -1
  426. package/dist/utility-runtime.d.ts +1 -1
  427. package/dist/verified-recall.js +13 -13
  428. package/dist/who-knows-cli.d.ts +11 -11
  429. package/dist/who-knows-cli.js +14 -14
  430. package/dist/who-knows.d.ts +11 -11
  431. package/dist/who-knows.js +13 -13
  432. package/dist/write-envelope.d.ts +1 -1
  433. package/package.json +2 -2
  434. package/src/access-mcp-output-schemas.ts +60 -34
  435. package/src/access-observe-transcript-persistence.test.ts +252 -0
  436. package/src/access-observe-transcript.ts +153 -0
  437. package/src/access-observe-write-surface.ts +234 -224
  438. package/src/access-service.ts +33 -28
  439. package/src/converge-config.ts +40 -3
  440. package/src/index.ts +1 -1
  441. package/src/reconcile/plan.test.ts +118 -88
  442. package/src/reconcile/plan.ts +98 -84
  443. package/src/summarizer.ts +217 -111
  444. package/src/summary-snapshot.test.ts +8 -6
  445. package/src/types.ts +47 -44
  446. package/dist/chunk-G7VEQEMG.js.map +0 -1
  447. package/dist/chunk-HBVPYRDW.js +0 -39
  448. package/dist/chunk-HBVPYRDW.js.map +0 -1
  449. package/dist/chunk-IEZ6CGTW.js.map +0 -1
  450. package/dist/chunk-MSDIETFC.js.map +0 -1
  451. package/dist/chunk-OYV6RKPM.js.map +0 -1
  452. package/dist/chunk-ZRUEP4IK.js.map +0 -1
  453. /package/dist/{graph-edge-decay-FXGELBFA.js.map → access-observe-transcript.js.map} +0 -0
  454. /package/dist/{auto-sync-Q6Q2FVSC.js.map → auto-sync-GRUJFD2F.js.map} +0 -0
  455. /package/dist/{chunk-LEPOP46W.js.map → chunk-227UFSEQ.js.map} +0 -0
  456. /package/dist/{chunk-RJ57OOCD.js.map → chunk-2J4TIFBK.js.map} +0 -0
  457. /package/dist/{chunk-AU7Q3LSC.js.map → chunk-2QSZNTDO.js.map} +0 -0
  458. /package/dist/{chunk-P6GKRT2H.js.map → chunk-2Z3DG5CQ.js.map} +0 -0
  459. /package/dist/{chunk-BO4PWIJY.js.map → chunk-3LADWWMA.js.map} +0 -0
  460. /package/dist/{chunk-P7LVYPIX.js.map → chunk-3LJPSRAN.js.map} +0 -0
  461. /package/dist/{chunk-ZKZCJRRO.js.map → chunk-43HMVVOL.js.map} +0 -0
  462. /package/dist/{chunk-3TSU662L.js.map → chunk-46QMN7I7.js.map} +0 -0
  463. /package/dist/{chunk-HODFGQGT.js.map → chunk-4HYNMLT6.js.map} +0 -0
  464. /package/dist/{chunk-HTOWFFAI.js.map → chunk-5CF2R4NS.js.map} +0 -0
  465. /package/dist/{chunk-QVI63XSO.js.map → chunk-5MF4EGL5.js.map} +0 -0
  466. /package/dist/{chunk-KLSPKMIO.js.map → chunk-5SGOARQJ.js.map} +0 -0
  467. /package/dist/{chunk-JGXMA6HL.js.map → chunk-6FUMA6AA.js.map} +0 -0
  468. /package/dist/{chunk-K2IJH4D3.js.map → chunk-7RRUHJPG.js.map} +0 -0
  469. /package/dist/{chunk-I4QAH4SY.js.map → chunk-7TUB6JWA.js.map} +0 -0
  470. /package/dist/{chunk-NNBZS3DY.js.map → chunk-AG46P24C.js.map} +0 -0
  471. /package/dist/{chunk-B64IVEOH.js.map → chunk-AWF4CNYJ.js.map} +0 -0
  472. /package/dist/{chunk-C25N5HWX.js.map → chunk-B2AGUKSS.js.map} +0 -0
  473. /package/dist/{chunk-7ZMU4XQT.js.map → chunk-BR3OOQZQ.js.map} +0 -0
  474. /package/dist/{chunk-TRLCMLX7.js.map → chunk-BZTJEILZ.js.map} +0 -0
  475. /package/dist/{chunk-OLBZ2WGG.js.map → chunk-C2JCVZWX.js.map} +0 -0
  476. /package/dist/{chunk-YWN3GYI2.js.map → chunk-CASWJ2HM.js.map} +0 -0
  477. /package/dist/{chunk-S35IIP5P.js.map → chunk-CFKCFY4B.js.map} +0 -0
  478. /package/dist/{chunk-S5G2LAL7.js.map → chunk-CHWUICVY.js.map} +0 -0
  479. /package/dist/{chunk-7JV4JST3.js.map → chunk-CVJMGVEW.js.map} +0 -0
  480. /package/dist/{chunk-BE4Y6GK6.js.map → chunk-D35XLYQ7.js.map} +0 -0
  481. /package/dist/{chunk-DA4ZMCBU.js.map → chunk-D5ZNOKR7.js.map} +0 -0
  482. /package/dist/{chunk-BEXFNGQ3.js.map → chunk-DK6GMO6D.js.map} +0 -0
  483. /package/dist/{chunk-I6DUKBUI.js.map → chunk-DP4EBV7C.js.map} +0 -0
  484. /package/dist/{chunk-W6GEMUZM.js.map → chunk-EFCBJDYE.js.map} +0 -0
  485. /package/dist/{chunk-XMIAU4CO.js.map → chunk-EJ5RKUXW.js.map} +0 -0
  486. /package/dist/{chunk-LF6SHWVV.js.map → chunk-F5UWQ4LX.js.map} +0 -0
  487. /package/dist/{chunk-XQGFIAG7.js.map → chunk-FB7LAJQM.js.map} +0 -0
  488. /package/dist/{chunk-OAKATRAN.js.map → chunk-G6N654ND.js.map} +0 -0
  489. /package/dist/{chunk-2EHDPHMD.js.map → chunk-GGYDJJBO.js.map} +0 -0
  490. /package/dist/{chunk-VAMZYOOV.js.map → chunk-HOUST5UX.js.map} +0 -0
  491. /package/dist/{chunk-NHLEFBE2.js.map → chunk-I4Y6TBD7.js.map} +0 -0
  492. /package/dist/{chunk-W272SWN7.js.map → chunk-I7FY43VC.js.map} +0 -0
  493. /package/dist/{chunk-CTCGHNWN.js.map → chunk-J2R275FN.js.map} +0 -0
  494. /package/dist/{chunk-XJJYSX6F.js.map → chunk-JCUG7AXZ.js.map} +0 -0
  495. /package/dist/{chunk-BX6GW4KC.js.map → chunk-JMAG7WZ7.js.map} +0 -0
  496. /package/dist/{chunk-NF3NMAG7.js.map → chunk-JOYC4RYC.js.map} +0 -0
  497. /package/dist/{chunk-5JQV4T5Q.js.map → chunk-JZ6EYAVP.js.map} +0 -0
  498. /package/dist/{chunk-QRDSXR3V.js.map → chunk-KA2HZCMG.js.map} +0 -0
  499. /package/dist/{chunk-7LCGFUMB.js.map → chunk-KQAFEZQX.js.map} +0 -0
  500. /package/dist/{chunk-ETZ7KKOS.js.map → chunk-KTVSPFCQ.js.map} +0 -0
  501. /package/dist/{chunk-PAWIY5OQ.js.map → chunk-L74A6NTI.js.map} +0 -0
  502. /package/dist/{chunk-2XJDAEAM.js.map → chunk-LFK623SF.js.map} +0 -0
  503. /package/dist/{chunk-QUVWFZOU.js.map → chunk-N7JK2RKG.js.map} +0 -0
  504. /package/dist/{chunk-BFDOBESV.js.map → chunk-NYRB7BKY.js.map} +0 -0
  505. /package/dist/{chunk-LDOQE34V.js.map → chunk-NZGO2GKL.js.map} +0 -0
  506. /package/dist/{chunk-VYD63IFH.js.map → chunk-OGTKQ5MJ.js.map} +0 -0
  507. /package/dist/{chunk-BIJAWZYW.js.map → chunk-OLT3YTDH.js.map} +0 -0
  508. /package/dist/{chunk-F2ERDKY2.js.map → chunk-PC7WNIRL.js.map} +0 -0
  509. /package/dist/{chunk-3BS2OGDT.js.map → chunk-PPOT6SPR.js.map} +0 -0
  510. /package/dist/{chunk-LUDXSSTW.js.map → chunk-R7LY4YKF.js.map} +0 -0
  511. /package/dist/{chunk-N37X5RU7.js.map → chunk-RACZB5HT.js.map} +0 -0
  512. /package/dist/{chunk-LJAP4KSW.js.map → chunk-RO2X2EYM.js.map} +0 -0
  513. /package/dist/{chunk-5YQ7RFSO.js.map → chunk-S37NN23M.js.map} +0 -0
  514. /package/dist/{chunk-DDX6KIXF.js.map → chunk-SB4OBB7P.js.map} +0 -0
  515. /package/dist/{chunk-JHTF22NQ.js.map → chunk-TA7UZZMW.js.map} +0 -0
  516. /package/dist/{chunk-4UVDLNHQ.js.map → chunk-UMEOXLIZ.js.map} +0 -0
  517. /package/dist/{chunk-63I7LMLG.js.map → chunk-WL5PR5YC.js.map} +0 -0
  518. /package/dist/{chunk-H5IIBGDM.js.map → chunk-X33MJFD2.js.map} +0 -0
  519. /package/dist/{chunk-SXHBZXHK.js.map → chunk-XJJLWTLW.js.map} +0 -0
  520. /package/dist/{chunk-GIC6BASP.js.map → chunk-XZBXINXZ.js.map} +0 -0
  521. /package/dist/{chunk-APZXA4WI.js.map → chunk-YVLENSNS.js.map} +0 -0
  522. /package/dist/{chunk-OUKBMQ2O.js.map → chunk-Z3SQEEB6.js.map} +0 -0
  523. /package/dist/{chunk-NN5CQTAJ.js.map → chunk-ZEBRENA6.js.map} +0 -0
  524. /package/dist/{chunk-5H2G5X4R.js.map → chunk-ZJWDWPX6.js.map} +0 -0
  525. /package/dist/{chunk-M7DGN6JZ.js.map → chunk-ZL3XX5LW.js.map} +0 -0
  526. /package/dist/{chunk-4WIKMOE3.js.map → chunk-ZZM476NV.js.map} +0 -0
@@ -4,6 +4,7 @@ import { readdirSync, unlinkSync } from "node:fs";
4
4
  import { stat } from "node:fs/promises";
5
5
  import * as nodeFs from "node:fs/promises";
6
6
  import { ZodError } from "zod";
7
+ import { summarizeHourlyStatus } from "./summarizer.js";
7
8
  import { decodeCitationNamespace } from "./access-citation-namespace.js";
8
9
  import {
9
10
  type CitationUsageRequest,
@@ -169,10 +170,7 @@ import {
169
170
  redactSensitive,
170
171
  } from "./admin/admin-surfaces.js";
171
172
  import { FileCalendarSource, buildBriefing, parseBriefingFocus, parseBriefingWindow } from "./briefing.js";
172
- import {
173
- type DeepRecallResult,
174
- runBudgetedDeepRecall,
175
- } from "./deep-recall.js";
173
+ import { type DeepRecallResult, runBudgetedDeepRecall } from "./deep-recall.js";
176
174
  import { callDeepRecallPolicyLlm } from "./deep-recall-policy-llm.js";
177
175
  import { createDeepRecallSeedSearch } from "./deep-recall-seeds.js";
178
176
  import { renderDeepRecallResult } from "./deep-recall-renderer.js";
@@ -319,7 +317,13 @@ import { decideDisclosureEscalation } from "./recall-disclosure-escalation.js";
319
317
  import { toRecallExplainJson } from "./recall-explain-renderer.js";
320
318
  import { type TagMatchMode, applyTagFilter, normalizeTags, parseTagMatch } from "./recall-tag-filter.js";
321
319
  import { type RecallXraySnapshot, estimateRecallTokens } from "./recall-xray.js";
322
- import { computeWhoKnows, loadWhoKnowsEntities, validateWhoKnowsInput, WHO_KNOWS_DEFAULT_LIMIT, type WhoKnowsResult } from "./who-knows.js";
320
+ import {
321
+ computeWhoKnows,
322
+ loadWhoKnowsEntities,
323
+ validateWhoKnowsInput,
324
+ WHO_KNOWS_DEFAULT_LIMIT,
325
+ type WhoKnowsResult,
326
+ } from "./who-knows.js";
323
327
  import { computePromotionCandidates, type PromotionCandidatesResult } from "./memory-subject.js";
324
328
  import { SupportPassportAccessServiceBase } from "./support-passport/access-service-base.js";
325
329
  import {
@@ -992,9 +996,7 @@ export interface EngramAccessObserveMessage {
992
996
  * consumes the transport-cleaned message form (the wire schema tolerates
993
997
  * nullable `parts`/`sourceFormat`, the service maps them to `undefined`).
994
998
  */
995
- export interface EngramAccessObserveRequest
996
- extends Omit<ObserveRequest, "messages">,
997
- SourceConnectorProvenance {
999
+ export interface EngramAccessObserveRequest extends Omit<ObserveRequest, "messages">, SourceConnectorProvenance {
998
1000
  messages: EngramAccessObserveMessage[];
999
1001
  authenticatedPrincipal?: string;
1000
1002
  readonly suppressQuarantine?: boolean; // #1888: replay re-submit skips dead-lettering.
@@ -1045,6 +1047,8 @@ export interface EngramAccessObserveResponse {
1045
1047
  scopeDebug?: EngramAccessScopeDebug;
1046
1048
  lcmArchived: boolean;
1047
1049
  extractionQueued: boolean;
1050
+ /** True when at least one observe-derived turn was appended to the transcript store (issue #2783). False when the transcript capability is off, every message was filtered/deduped, or every append failed. */
1051
+ transcriptPersisted: boolean;
1048
1052
  /** True when replayed from the idempotency cache (issue #1649); lets the HTTP surface skip the write-quota slot, matching memory_store replay semantics. */
1049
1053
  idempotencyReplay?: boolean;
1050
1054
  }
@@ -2733,12 +2737,12 @@ export class EngramAccessService extends SupportPassportAccessServiceBase {
2733
2737
  if (cfg.maxSteps <= 0) {
2734
2738
  if (requestedSteps > 0) {
2735
2739
  throw new EngramAccessInputError(
2736
- "deepRecall: the policy loop is disabled (deepRecall.maxSteps=0); maxSteps must be 0",
2740
+ "deepRecall: the policy loop is disabled (deepRecall.maxSteps=0); maxSteps must be 0"
2737
2741
  );
2738
2742
  }
2739
2743
  } else if (requestedSteps > cfg.maxSteps) {
2740
2744
  throw new EngramAccessInputError(
2741
- `deepRecall: maxSteps ${requestedSteps} exceeds the configured ceiling ${cfg.maxSteps}`,
2745
+ `deepRecall: maxSteps ${requestedSteps} exceeds the configured ceiling ${cfg.maxSteps}`
2742
2746
  );
2743
2747
  }
2744
2748
  effective = { ...cfg, maxSteps: requestedSteps };
@@ -2757,8 +2761,7 @@ export class EngramAccessService extends SupportPassportAccessServiceBase {
2757
2761
  // goes to the base namespace only); passing it here made every non-default
2758
2762
  // namespace load the DEFAULT namespace's nodes and anchors, missing its own
2759
2763
  // anchor expansions and exposing foreign graph metadata on an id collision.
2760
- const graphStoreDir =
2761
- resolvedNamespace === config.defaultNamespace ? config.abstractionNodeStoreDir : undefined;
2764
+ const graphStoreDir = resolvedNamespace === config.defaultNamespace ? config.abstractionNodeStoreDir : undefined;
2762
2765
  // Seeds route through the namespace search router (never the base
2763
2766
  // `config.qmdCollection`, which is the DEFAULT namespace's collection):
2764
2767
  // a non-default caller must search its own suffixed collection or deep
@@ -2797,14 +2800,9 @@ export class EngramAccessService extends SupportPassportAccessServiceBase {
2797
2800
  if (!memory || isSupportPassportPrivateMemory(memory)) return null;
2798
2801
  return {
2799
2802
  memoryId,
2800
- content: memory.frontmatter.structuredAttributes
2801
- ? stripAttributesSuffix(memory.content)
2802
- : memory.content,
2803
+ content: memory.frontmatter.structuredAttributes ? stripAttributesSuffix(memory.content) : memory.content,
2803
2804
  // Enumerate the active set — never an exclusion list (§41).
2804
- active: inferMemoryStatus(
2805
- memory.frontmatter,
2806
- toMemoryPathRel(storage.dir, memory.path)
2807
- ) === "active",
2805
+ active: inferMemoryStatus(memory.frontmatter, toMemoryPathRel(storage.dir, memory.path)) === "active",
2808
2806
  };
2809
2807
  },
2810
2808
  callPolicy: (statePrompt, timeoutMs) =>
@@ -2816,7 +2814,7 @@ export class EngramAccessService extends SupportPassportAccessServiceBase {
2816
2814
  timeoutMs,
2817
2815
  }),
2818
2816
  },
2819
- query,
2817
+ query
2820
2818
  );
2821
2819
  return { ...result, rendered: renderDeepRecallResult(result) };
2822
2820
  }
@@ -2910,13 +2908,13 @@ export class EngramAccessService extends SupportPassportAccessServiceBase {
2910
2908
  const limit = request.limit ?? 20;
2911
2909
  if (!Number.isInteger(limit) || limit < 1 || limit > 100) {
2912
2910
  throw new EngramAccessInputError(
2913
- `promotion_candidates: limit expects an integer in [1, 100] (got ${String(request.limit)})`,
2911
+ `promotion_candidates: limit expects an integer in [1, 100] (got ${String(request.limit)})`
2914
2912
  );
2915
2913
  }
2916
2914
  const resolvedNamespace = this.resolveReadableNamespace(request.namespace, request.authenticatedPrincipal);
2917
2915
  const resolvedTarget = this.resolveReadableNamespace(
2918
2916
  request.targetNamespace ?? this.orchestrator.config.sharedNamespace,
2919
- request.authenticatedPrincipal,
2917
+ request.authenticatedPrincipal
2920
2918
  );
2921
2919
  const minAccessCount = this.orchestrator.config.promotionCandidates.minAccessCount;
2922
2920
  const [memories, targetMemories] = await Promise.all([
@@ -3464,7 +3462,8 @@ export class EngramAccessService extends SupportPassportAccessServiceBase {
3464
3462
  const resolvedNamespace = this.resolveReadableNamespace(namespace, principal);
3465
3463
  const storage = await this.orchestrator.getStorage(resolvedNamespace);
3466
3464
  const memory = await storage.getMemoryByIdIncludingArchived(memoryId);
3467
- if (!memory || isSupportPassportPrivateMemory(memory)) return { found: false, namespace: resolvedNamespace, count: 0, timeline: [] };
3465
+ if (!memory || isSupportPassportPrivateMemory(memory))
3466
+ return { found: false, namespace: resolvedNamespace, count: 0, timeline: [] };
3468
3467
  const timeline = await storage.getMemoryTimeline(memoryId, limit);
3469
3468
  return {
3470
3469
  found: timeline.length > 0,
@@ -3820,12 +3819,18 @@ export class EngramAccessService extends SupportPassportAccessServiceBase {
3820
3819
  async memorySummarizeHourly(): Promise<{
3821
3820
  ok: true;
3822
3821
  message: string;
3822
+ sessionsConsidered: number;
3823
+ sessionsWithEntries: number;
3824
+ summariesWritten: number;
3825
+ staleStore: boolean;
3826
+ newestEntryTimestamp: string | null;
3827
+ scanFailed: boolean;
3828
+ warning?: string;
3823
3829
  }> {
3824
- await this.orchestrator.summarizer.runHourly();
3825
- return {
3826
- ok: true,
3827
- message: "Hourly summarization completed. Check the summaries directory for results.",
3828
- };
3830
+ // Issue #2783: the summarizer must not report success on empty work.
3831
+ // Stats interpretation lives with the stats (summarizeHourlyStatus).
3832
+ const stats = await this.orchestrator.summarizer.runHourly();
3833
+ return { ok: true, ...stats, ...summarizeHourlyStatus(stats) };
3829
3834
  }
3830
3835
 
3831
3836
  async conversationIndexUpdate(
@@ -7,6 +7,37 @@ export const CONVERGE_CONFLICT_POLICIES = [
7
7
 
8
8
  export const DEFAULT_CONVERGE_CONFLICT_POLICY: ConvergeConflictPolicy = "newest-wins";
9
9
 
10
+ /** Default per-request peer HTTP timeout. Boot-scale corpora (100k+ files in one
11
+ * namespace) can take well over 30s to serve a manifest snapshot. */
12
+ export const DEFAULT_CONVERGE_PEER_REQUEST_TIMEOUT_MS = 30_000;
13
+ /** Ceiling for the configured timeout — a peer that has not answered in an hour
14
+ * is unreachable, not slow. */
15
+ export const MAX_CONVERGE_PEER_REQUEST_TIMEOUT_MS = 3_600_000;
16
+ /**
17
+ * ONE normalization policy for every override source (config JSON, env, CLI
18
+ * flag, programmatic options): malformed values are rejected, valid values
19
+ * clamped to the one-hour ceiling. Returns the clamped ms value.
20
+ */
21
+ export function normalizeConvergePeerRequestTimeoutMs(value: unknown, label: string): number {
22
+ if (typeof value !== "number" || !Number.isInteger(value) || value <= 0) {
23
+ throw new Error(`${label} must be a positive integer number of milliseconds; got ${JSON.stringify(value)}`);
24
+ }
25
+ return Math.min(value, MAX_CONVERGE_PEER_REQUEST_TIMEOUT_MS);
26
+ }
27
+
28
+ /** Env override, evaluated lazily so tests control time. Junk is rejected. */
29
+ export function envConvergePeerRequestTimeoutMs(): number {
30
+ const raw = process.env.REMNIC_CONVERGE_PEER_TIMEOUT_MS;
31
+ if (raw === undefined || raw.trim() === "") return DEFAULT_CONVERGE_PEER_REQUEST_TIMEOUT_MS;
32
+ return normalizeConvergePeerRequestTimeoutMs(Number(raw), "REMNIC_CONVERGE_PEER_TIMEOUT_MS");
33
+ }
34
+
35
+ /** Config-block value: absent -> default, present -> normalized. */
36
+ function parsePeerRequestTimeoutMs(value: unknown, label: string): number {
37
+ if (value === undefined) return DEFAULT_CONVERGE_PEER_REQUEST_TIMEOUT_MS;
38
+ return normalizeConvergePeerRequestTimeoutMs(value, label);
39
+ }
40
+
10
41
  export function parseConvergeConfig(block: unknown): ConvergeConfig {
11
42
  if (block === undefined) {
12
43
  return { conflictPolicy: DEFAULT_CONVERGE_CONFLICT_POLICY };
@@ -18,19 +49,25 @@ export function parseConvergeConfig(block: unknown): ConvergeConfig {
18
49
  if (prototype !== Object.prototype && prototype !== null) {
19
50
  throw new Error("converge must be a plain object");
20
51
  }
21
- const { conflictPolicy, ...unknown } = block as Record<string, unknown>;
52
+ const { conflictPolicy: rawConflictPolicy, peerRequestTimeoutMs, ...unknown } = block as Record<string, unknown>;
53
+ let conflictPolicy: unknown = rawConflictPolicy;
22
54
  const unknownKey = Object.keys(unknown)[0];
23
55
  if (unknownKey !== undefined) {
24
56
  throw new Error(`converge contains unknown key ${JSON.stringify(unknownKey)}`);
25
57
  }
26
58
  if (conflictPolicy === undefined) {
27
- return { conflictPolicy: DEFAULT_CONVERGE_CONFLICT_POLICY };
59
+ conflictPolicy = DEFAULT_CONVERGE_CONFLICT_POLICY;
28
60
  }
29
61
  if (
30
62
  typeof conflictPolicy === "string" &&
31
63
  CONVERGE_CONFLICT_POLICIES.includes(conflictPolicy as ConvergeConflictPolicy)
32
64
  ) {
33
- return { conflictPolicy: conflictPolicy as ConvergeConflictPolicy };
65
+ return {
66
+ conflictPolicy: conflictPolicy as ConvergeConflictPolicy,
67
+ ...(peerRequestTimeoutMs !== undefined
68
+ ? { peerRequestTimeoutMs: parsePeerRequestTimeoutMs(peerRequestTimeoutMs, "converge.peerRequestTimeoutMs") }
69
+ : {}),
70
+ };
34
71
  }
35
72
 
36
73
  throw new Error(
package/src/index.ts CHANGED
@@ -1393,7 +1393,7 @@ export type {
1393
1393
  CalendarSource,
1394
1394
  RecallDisclosure,
1395
1395
  } from "./types.js";
1396
- export { CONVERGE_CONFLICT_POLICIES, DEFAULT_CONVERGE_CONFLICT_POLICY } from "./converge-config.js";
1396
+ export { CONVERGE_CONFLICT_POLICIES, DEFAULT_CONVERGE_CONFLICT_POLICY, DEFAULT_CONVERGE_PEER_REQUEST_TIMEOUT_MS, MAX_CONVERGE_PEER_REQUEST_TIMEOUT_MS, envConvergePeerRequestTimeoutMs, normalizeConvergePeerRequestTimeoutMs, parseConvergeConfig } from "./converge-config.js";
1397
1397
  export {
1398
1398
  DEFAULT_RECALL_DISCLOSURE,
1399
1399
  RECALL_DISCLOSURE_LEVELS,