@remnic/core 9.69.33 → 9.69.34

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 (759) hide show
  1. package/dist/access-admin-ops-surface.d.ts +13 -11
  2. package/dist/access-admin-ops-surface.js +61 -56
  3. package/dist/access-authorization-probe.d.ts +13 -11
  4. package/dist/access-authorization-probe.js +62 -57
  5. package/dist/access-boundary.d.ts +13 -11
  6. package/dist/access-boundary.js +61 -56
  7. package/dist/access-cli.js +129 -125
  8. package/dist/access-cli.js.map +1 -1
  9. package/dist/access-coding-context-resolution.d.ts +2 -1
  10. package/dist/access-coding-context-resolution.js +3 -3
  11. package/dist/access-extraction-force-flush.d.ts +13 -11
  12. package/dist/access-extraction-force-flush.js +61 -56
  13. package/dist/access-health-types.d.ts +2 -1
  14. package/dist/access-http-briefing.d.ts +13 -11
  15. package/dist/access-http-briefing.js +62 -57
  16. package/dist/access-http-lcm-compaction.d.ts +13 -11
  17. package/dist/access-http-lifecycle-flush.d.ts +13 -11
  18. package/dist/access-http-offline-stream.d.ts +13 -11
  19. package/dist/access-http-query.d.ts +3 -2
  20. package/dist/access-http-query.js +63 -58
  21. package/dist/access-http.d.ts +14 -12
  22. package/dist/access-http.js +82 -78
  23. package/dist/access-identity-continuity-surface.d.ts +11 -9
  24. package/dist/access-identity-continuity-surface.js +61 -56
  25. package/dist/access-lcm-surface.d.ts +13 -11
  26. package/dist/access-lcm-surface.js +61 -56
  27. package/dist/access-mcp.d.ts +13 -11
  28. package/dist/access-mcp.js +70 -66
  29. package/dist/access-memory-search-fanout.d.ts +3 -2
  30. package/dist/{access-namespace-preflight-DMR-jOMS.d.ts → access-namespace-preflight-kXG8MvYx.d.ts} +1 -1
  31. package/dist/access-namespace-preflight.d.ts +4 -3
  32. package/dist/access-namespace-preflight.js +61 -56
  33. package/dist/access-observe-transcript.d.ts +11 -9
  34. package/dist/access-observe-transcript.js +3 -3
  35. package/dist/access-observe-write-surface.d.ts +15 -13
  36. package/dist/access-observe-write-surface.js +61 -56
  37. package/dist/access-offline-manifest.d.ts +47 -11
  38. package/dist/access-offline-manifest.js +18 -16
  39. package/dist/access-operations-batch.js +64 -60
  40. package/dist/access-operations.d.ts +14 -12
  41. package/dist/access-operations.js +69 -65
  42. package/dist/access-recall-concurrency.d.ts +13 -11
  43. package/dist/access-recall-concurrency.js +61 -56
  44. package/dist/access-recall-response.d.ts +13 -11
  45. package/dist/access-recall-response.js +61 -56
  46. package/dist/access-recall-surface.d.ts +13 -11
  47. package/dist/access-recall-surface.js +61 -56
  48. package/dist/access-schema.d.ts +55 -13
  49. package/dist/access-schema.js +15 -1
  50. package/dist/{access-service-CJQoQvRa.d.ts → access-service-WUm2LnXZ.d.ts} +52 -50
  51. package/dist/access-service-helpers.d.ts +13 -11
  52. package/dist/access-service.d.ts +13 -11
  53. package/dist/access-service.js +61 -56
  54. package/dist/access-surface-catalog.d.ts +13 -11
  55. package/dist/access-surface-catalog.js +63 -58
  56. package/dist/access-surface-catalog.js.map +1 -1
  57. package/dist/access-wearables-meetings-surface.d.ts +4 -3
  58. package/dist/action-confidence.d.ts +2 -1
  59. package/dist/active-memory-bridge.d.ts +2 -1
  60. package/dist/active-memory-bridge.js +2 -2
  61. package/dist/active-recall.d.ts +2 -1
  62. package/dist/active-recall.js +12 -10
  63. package/dist/active-recall.js.map +1 -1
  64. package/dist/activity/digest.d.ts +2 -1
  65. package/dist/adapters/index.d.ts +46 -1
  66. package/dist/adapters/index.js +10 -6
  67. package/dist/adapters/registry.js +2 -2
  68. package/dist/ambient-provenance.d.ts +2 -1
  69. package/dist/artifact-search.d.ts +2 -1
  70. package/dist/{auto-sync-NSHLUAQI.js → auto-sync-4YFATLFQ.js} +10 -9
  71. package/dist/{auto-sync-NSHLUAQI.js.map → auto-sync-4YFATLFQ.js.map} +1 -1
  72. package/dist/behavior-learner.d.ts +2 -1
  73. package/dist/behavior-signals.d.ts +2 -1
  74. package/dist/bootstrap.d.ts +11 -9
  75. package/dist/briefing-window.d.ts +3 -2
  76. package/dist/briefing.d.ts +3 -2
  77. package/dist/briefing.js +25 -24
  78. package/dist/buffer-surprise-report.d.ts +2 -1
  79. package/dist/buffer-turn-helpers.d.ts +2 -1
  80. package/dist/buffer.d.ts +3 -2
  81. package/dist/buffer.js +11 -10
  82. package/dist/bulk-import/index.d.ts +4 -3
  83. package/dist/calibration.d.ts +2 -1
  84. package/dist/calibration.js +3 -2
  85. package/dist/calibration.js.map +1 -1
  86. package/dist/capabilities.d.ts +2 -1
  87. package/dist/{capsule-merge-IPG4IOFP.js → capsule-merge-ZCXUPLNJ.js} +2 -2
  88. package/dist/{catalog-8O9KY9eA.d.ts → catalog-BaCx29iv.d.ts} +1 -1
  89. package/dist/causal-behavior.d.ts +2 -1
  90. package/dist/causal-consolidation.d.ts +2 -1
  91. package/dist/causal-consolidation.js +26 -25
  92. package/dist/causal-consolidation.js.map +1 -1
  93. package/dist/causal-trajectory-graph.d.ts +2 -1
  94. package/dist/{chunk-CDKHKZL5.js → chunk-2524MOWK.js} +2 -2
  95. package/dist/{chunk-HVAEXYPL.js → chunk-255PC37A.js} +47 -25
  96. package/dist/chunk-255PC37A.js.map +1 -0
  97. package/dist/{chunk-7BMXZCOT.js → chunk-2AU4D4HQ.js} +3 -3
  98. package/dist/{chunk-LTIZHLV7.js → chunk-2JCA2PQT.js} +2 -2
  99. package/dist/{chunk-XXIHX75O.js → chunk-2UZ5ZH6W.js} +3 -3
  100. package/dist/{chunk-QOIOACIE.js → chunk-326KUXIR.js} +15 -648
  101. package/dist/chunk-326KUXIR.js.map +1 -0
  102. package/dist/{chunk-P3SB5BNT.js → chunk-34QW2LK2.js} +2 -2
  103. package/dist/{chunk-EONF76DT.js → chunk-36UBSLFN.js} +2 -2
  104. package/dist/{chunk-DBQWVT2H.js → chunk-3CBI2ZSA.js} +2 -2
  105. package/dist/{chunk-NZXEK3UF.js → chunk-3Q3N35W7.js} +2 -2
  106. package/dist/{chunk-YYGZJPOK.js → chunk-42DJ235G.js} +2 -2
  107. package/dist/{chunk-TCUKRAMK.js → chunk-4JVQRFZD.js} +7 -7
  108. package/dist/{chunk-22FVR2KE.js → chunk-4MIS4CQW.js} +6 -2
  109. package/dist/chunk-4MIS4CQW.js.map +1 -0
  110. package/dist/{chunk-PYLL63BF.js → chunk-4PB2MBY6.js} +9 -9
  111. package/dist/{chunk-UUQG7HAD.js → chunk-4WCNPQQ5.js} +4 -4
  112. package/dist/{chunk-UGPUYIET.js → chunk-5A7ZUOBA.js} +220 -399
  113. package/dist/chunk-5A7ZUOBA.js.map +1 -0
  114. package/dist/chunk-5HYUUFMQ.js +1280 -0
  115. package/dist/chunk-5HYUUFMQ.js.map +1 -0
  116. package/dist/{chunk-H4VH5VIB.js → chunk-5QBDLMGG.js} +2 -2
  117. package/dist/{chunk-RKBLRTNT.js → chunk-5SDSVX7N.js} +2 -2
  118. package/dist/{chunk-DGGB65KC.js → chunk-5THU7NFP.js} +3 -3
  119. package/dist/{chunk-N7RWREIQ.js → chunk-65RENJGB.js} +6 -1
  120. package/dist/chunk-65RENJGB.js.map +1 -0
  121. package/dist/{chunk-BPJNF7J2.js → chunk-6CCRSQWT.js} +2 -2
  122. package/dist/{chunk-XXE5P6HJ.js → chunk-6XYC7NM4.js} +2 -2
  123. package/dist/{chunk-J7HFPA6O.js → chunk-6YAIN5XJ.js} +2 -2
  124. package/dist/{chunk-I5DZ3WGR.js → chunk-757NP436.js} +3 -3
  125. package/dist/{chunk-2C3S7J2S.js → chunk-7CAY3YKP.js} +741 -28
  126. package/dist/chunk-7CAY3YKP.js.map +1 -0
  127. package/dist/{chunk-E6TDQRF6.js → chunk-7J2CGXG3.js} +2 -2
  128. package/dist/{chunk-BUTCAMJM.js → chunk-A2YQL2FF.js} +5 -5
  129. package/dist/chunk-A5UQ52YQ.js +211 -0
  130. package/dist/chunk-A5UQ52YQ.js.map +1 -0
  131. package/dist/{chunk-X2NFFBTO.js → chunk-A7GQBJP5.js} +4 -4
  132. package/dist/{chunk-R3HKWWUB.js → chunk-A7WOWDZK.js} +2 -2
  133. package/dist/{chunk-6N3TQFZU.js → chunk-AIKTQVV3.js} +3 -3
  134. package/dist/{chunk-CGC5UQCF.js → chunk-AKE4GGQ3.js} +2 -2
  135. package/dist/{chunk-W27OW7AB.js → chunk-APFKZVJS.js} +2 -2
  136. package/dist/{chunk-B325AGLK.js → chunk-AQIRQUCP.js} +2 -2
  137. package/dist/{chunk-S7T2TY65.js → chunk-AXFR2NQ5.js} +3 -3
  138. package/dist/{chunk-FCSZ4K2X.js → chunk-BJJWRWER.js} +3 -3
  139. package/dist/{chunk-JT3EB7ZL.js → chunk-BNGHPYZU.js} +5 -5
  140. package/dist/chunk-BRZWWUCJ.js +13 -0
  141. package/dist/{chunk-FYDW33ZB.js.map → chunk-BRZWWUCJ.js.map} +1 -1
  142. package/dist/{chunk-N57A4KPV.js → chunk-C2BFTYD7.js} +2 -2
  143. package/dist/{chunk-3JVLGJCY.js → chunk-C6KRO3SU.js} +2 -2
  144. package/dist/{chunk-Q726HSJO.js → chunk-CRUFVJOX.js} +16 -15
  145. package/dist/chunk-CRUFVJOX.js.map +1 -0
  146. package/dist/{chunk-X35W4S3L.js → chunk-D3IZCN5P.js} +4 -4
  147. package/dist/{chunk-44T3Y7SZ.js → chunk-EJIEQOPB.js} +5 -5
  148. package/dist/{chunk-ET356KSB.js → chunk-F4TWWUMP.js} +2 -2
  149. package/dist/{chunk-CLLPJ6QT.js → chunk-FQXJAC3T.js} +2 -2
  150. package/dist/{chunk-DD5JFCWM.js → chunk-GCBIXUPT.js} +2 -2
  151. package/dist/{chunk-N2ZNPHA3.js → chunk-IFFLUCCU.js} +2 -2
  152. package/dist/{chunk-RHQMKJFG.js → chunk-ISYZ5DUI.js} +51 -47
  153. package/dist/{chunk-RHQMKJFG.js.map → chunk-ISYZ5DUI.js.map} +1 -1
  154. package/dist/{chunk-PFFZWDPE.js → chunk-JZDH2ZZK.js} +3 -3
  155. package/dist/{chunk-TX2UTLXC.js → chunk-K6IPSW5B.js} +2 -2
  156. package/dist/{chunk-4MHYKEOM.js → chunk-KDJHLOZP.js} +10 -10
  157. package/dist/{chunk-KCB7F4J7.js → chunk-KYGOQV37.js} +2 -2
  158. package/dist/{chunk-JEIXTYVG.js → chunk-L2QLDZJC.js} +46 -17
  159. package/dist/chunk-L2QLDZJC.js.map +1 -0
  160. package/dist/{chunk-A7XEPMQ6.js → chunk-LAVJC57X.js} +3 -3
  161. package/dist/chunk-LAVJC57X.js.map +1 -0
  162. package/dist/{chunk-VZWXFXLX.js → chunk-LMCD5W5B.js} +2 -2
  163. package/dist/{chunk-3QQTXYZ6.js → chunk-LSLCFCCQ.js} +2 -1
  164. package/dist/chunk-LSLCFCCQ.js.map +1 -0
  165. package/dist/{chunk-MKD3OMPS.js → chunk-M3MYMWXG.js} +2 -2
  166. package/dist/{chunk-PL7FYKHT.js → chunk-MMG5K6XJ.js} +2 -2
  167. package/dist/{chunk-VGXM5B4H.js → chunk-MNIPH6LD.js} +2 -2
  168. package/dist/{chunk-E6JA6XWY.js → chunk-ND2O2PVN.js} +1013 -1317
  169. package/dist/chunk-ND2O2PVN.js.map +1 -0
  170. package/dist/chunk-NPNSKE76.js +220 -0
  171. package/dist/chunk-NPNSKE76.js.map +1 -0
  172. package/dist/{chunk-XU6OEECT.js → chunk-OQQXGYMX.js} +3 -3
  173. package/dist/{chunk-DB5TGMLZ.js → chunk-OZUXKUPD.js} +6 -4
  174. package/dist/{chunk-DB5TGMLZ.js.map → chunk-OZUXKUPD.js.map} +1 -1
  175. package/dist/chunk-PCEYGOSL.js +66 -0
  176. package/dist/chunk-PCEYGOSL.js.map +1 -0
  177. package/dist/{chunk-LSYDG6MJ.js → chunk-PEXW2JCK.js} +2 -2
  178. package/dist/{chunk-EEOUMG3J.js → chunk-PWPIERBM.js} +38 -6
  179. package/dist/chunk-PWPIERBM.js.map +1 -0
  180. package/dist/chunk-Q4AUIFUA.js +111 -0
  181. package/dist/chunk-Q4AUIFUA.js.map +1 -0
  182. package/dist/{chunk-SO7SV523.js → chunk-Q6LCCIZN.js} +1 -1
  183. package/dist/chunk-Q6LCCIZN.js.map +1 -0
  184. package/dist/{chunk-MOZXTRC2.js → chunk-QF4J3KMV.js} +19 -19
  185. package/dist/{chunk-JGHXXQ2G.js → chunk-QLJ6762U.js} +2 -2
  186. package/dist/{chunk-XOVKXJEP.js → chunk-R3TLVTWW.js} +3 -3
  187. package/dist/{chunk-CETXNLEX.js → chunk-RQO3J4MR.js} +2 -2
  188. package/dist/{chunk-5NANRSCD.js → chunk-RR7G2X7C.js} +5 -5
  189. package/dist/{chunk-DCJ3YFIC.js → chunk-S2ULTQZR.js} +2 -2
  190. package/dist/{chunk-EQHDH4C2.js → chunk-S76KRJDG.js} +3 -3
  191. package/dist/{chunk-H272ZPQ3.js → chunk-SHEHQBCG.js} +124 -23
  192. package/dist/chunk-SHEHQBCG.js.map +1 -0
  193. package/dist/{chunk-EEC4PCG5.js → chunk-SZDLX763.js} +2 -2
  194. package/dist/{chunk-MFDTVQJX.js → chunk-SZWEDG3H.js} +12 -6
  195. package/dist/chunk-SZWEDG3H.js.map +1 -0
  196. package/dist/{chunk-E2ZHGBAK.js → chunk-T2JSUEH6.js} +2 -2
  197. package/dist/{chunk-JSN44KIB.js → chunk-T2YFZ27G.js} +9 -9
  198. package/dist/{chunk-227UFSEQ.js → chunk-TFA6HPOA.js} +2 -2
  199. package/dist/{chunk-BA6WOZOT.js → chunk-TK4FHQRN.js} +4 -4
  200. package/dist/chunk-TLHNF6GA.js +647 -0
  201. package/dist/chunk-TLHNF6GA.js.map +1 -0
  202. package/dist/{chunk-NB5BCFUY.js → chunk-TWYTGIBR.js} +4 -4
  203. package/dist/{chunk-FDLDOEO6.js → chunk-UBG4GAEP.js} +51 -6
  204. package/dist/chunk-UBG4GAEP.js.map +1 -0
  205. package/dist/{chunk-MWFGUESQ.js → chunk-UEZKN6VR.js} +2 -2
  206. package/dist/{chunk-H5AFCNGA.js → chunk-UJX4I26O.js} +2 -2
  207. package/dist/{chunk-BLUYQFRH.js → chunk-VELCIWJZ.js} +15 -11
  208. package/dist/chunk-VELCIWJZ.js.map +1 -0
  209. package/dist/{chunk-PBGVVDLY.js → chunk-VIZR45AN.js} +2 -2
  210. package/dist/{chunk-ZG74PWRW.js → chunk-VZAKYDMJ.js} +2 -2
  211. package/dist/{chunk-JTH2SE6B.js → chunk-W5BLTZZJ.js} +8 -8
  212. package/dist/chunk-W6IJMWTZ.js +72 -0
  213. package/dist/chunk-W6IJMWTZ.js.map +1 -0
  214. package/dist/{chunk-H3TKENU4.js → chunk-WIKO4SCR.js} +5 -5
  215. package/dist/{chunk-YFLLGRXO.js → chunk-X2QPKLPL.js} +2 -2
  216. package/dist/{chunk-MN3LK3KN.js → chunk-X424T5JQ.js} +2 -2
  217. package/dist/{chunk-5BCNEBEN.js → chunk-XPJNT6PI.js} +4 -4
  218. package/dist/{chunk-2JVJ7UHC.js → chunk-XQU3CPF2.js} +4 -2
  219. package/dist/chunk-XQU3CPF2.js.map +1 -0
  220. package/dist/chunk-XW2T4QAW.js +1 -0
  221. package/dist/{chunk-D223ZDQV.js → chunk-YEDVOYL2.js} +2 -2
  222. package/dist/{chunk-TLPZ6MKZ.js → chunk-YEN4TREG.js} +541 -5
  223. package/dist/chunk-YEN4TREG.js.map +1 -0
  224. package/dist/{chunk-RC5DXXWC.js → chunk-YM7YN37H.js} +2 -2
  225. package/dist/{chunk-VLXBE57O.js → chunk-YVGXH72Y.js} +2 -2
  226. package/dist/{chunk-YQAXP5AC.js → chunk-YXLUTALO.js} +5 -5
  227. package/dist/{chunk-OQDPBRQ6.js → chunk-Z7YDVHDI.js} +2 -2
  228. package/dist/{chunk-O75CRYGF.js → chunk-ZEFVK7XC.js} +1 -1
  229. package/dist/chunk-ZEFVK7XC.js.map +1 -0
  230. package/dist/{chunk-XUE46UYW.js → chunk-ZLN7AROH.js} +6 -6
  231. package/dist/{chunk-HV7OY4DM.js → chunk-ZMKYCFJ7.js} +640 -199
  232. package/dist/chunk-ZMKYCFJ7.js.map +1 -0
  233. package/dist/{chunk-HK32G473.js → chunk-ZWEZXVYH.js} +2 -2
  234. package/dist/{cli-D57e2Mqt.d.ts → cli-5mTYh1Tn.d.ts} +5 -5
  235. package/dist/cli-fallback.d.ts +11 -4
  236. package/dist/cli-fallback.js +5 -1
  237. package/dist/cli.d.ts +15 -13
  238. package/dist/cli.js +102 -98
  239. package/dist/coding/export-okf-codegraph.d.ts +2 -1
  240. package/dist/coding/export-okf-codegraph.js +31 -29
  241. package/dist/coding/export-okf-codegraph.js.map +1 -1
  242. package/dist/coding/pre-action-gate.d.ts +2 -1
  243. package/dist/compat/checks.js +2 -2
  244. package/dist/compat/codex-cli-fallback.d.ts +1 -1
  245. package/dist/compat/codex-cli-fallback.js +5 -1
  246. package/dist/compat/codex-cli-fallback.js.map +1 -1
  247. package/dist/compounding/engine.d.ts +3 -2
  248. package/dist/compounding/engine.js +26 -25
  249. package/dist/compounding/preference-consolidator.d.ts +2 -1
  250. package/dist/compression-optimizer.d.ts +2 -1
  251. package/dist/config.d.ts +2 -1
  252. package/dist/config.js +12 -10
  253. package/dist/connectors/codex-materialize-runner.d.ts +2 -1
  254. package/dist/connectors/codex-materialize-runner.js +25 -24
  255. package/dist/connectors/codex-materialize.d.ts +2 -1
  256. package/dist/connectors/index.d.ts +2 -1
  257. package/dist/connectors/index.js +27 -26
  258. package/dist/consolidation-provenance-check.d.ts +3 -2
  259. package/dist/consolidation-undo.d.ts +3 -2
  260. package/dist/contradiction/index.d.ts +4 -3
  261. package/dist/contradiction/index.js +5 -5
  262. package/dist/{contradiction-scan-NOYMFG66.js → contradiction-scan-GVD4JJ7B.js} +3 -3
  263. package/dist/converge-config.d.ts +2 -1
  264. package/dist/convergence-refresh.d.ts +3 -2
  265. package/dist/convergence-refresh.js +27 -26
  266. package/dist/conversation-index/backend.d.ts +2 -1
  267. package/dist/conversation-index/backend.js +3 -3
  268. package/dist/conversation-index/chunker.d.ts +2 -1
  269. package/dist/conversation-index/faiss-adapter.d.ts +2 -1
  270. package/dist/conversation-index/faiss-adapter.js +2 -2
  271. package/dist/conversation-index/indexer.d.ts +2 -1
  272. package/dist/conversation-index/search.d.ts +2 -1
  273. package/dist/corpus-watermark.d.ts +2 -1
  274. package/dist/corpus-watermark.js +28 -27
  275. package/dist/cross-lingual-recall.d.ts +2 -1
  276. package/dist/day-summary.d.ts +2 -1
  277. package/dist/deep-recall-http-glue.d.ts +13 -11
  278. package/dist/deep-recall-http-glue.js +12 -2
  279. package/dist/deep-recall-mcp-tools.d.ts +13 -11
  280. package/dist/deep-recall-policy-llm.d.ts +2 -1
  281. package/dist/deep-recall-policy-llm.js +4 -3
  282. package/dist/deep-recall-seeds.d.ts +2 -1
  283. package/dist/delinearize.d.ts +2 -1
  284. package/dist/dependency-propagation-config.d.ts +2 -1
  285. package/dist/{dependency-propagation-delivery-CmniEsUK.d.ts → dependency-propagation-delivery-CDQCxNll.d.ts} +1 -1
  286. package/dist/direct-answer-wiring.d.ts +2 -1
  287. package/dist/direct-answer.d.ts +2 -1
  288. package/dist/embedding-fallback.d.ts +2 -1
  289. package/dist/enrichment/index.d.ts +2 -1
  290. package/dist/entity-origin-fields.d.ts +2 -1
  291. package/dist/entity-retrieval.d.ts +3 -2
  292. package/dist/entity-retrieval.js +25 -24
  293. package/dist/entity-schema.d.ts +2 -1
  294. package/dist/episodic-context.d.ts +2 -1
  295. package/dist/eval-trajectory-contracts.d.ts +2 -1
  296. package/dist/eval-trajectory-store.d.ts +2 -1
  297. package/dist/eval-trajectory.d.ts +2 -1
  298. package/dist/explicit-capture.d.ts +11 -9
  299. package/dist/explicit-capture.js +6 -6
  300. package/dist/external-wiki-access.d.ts +13 -11
  301. package/dist/external-wiki-access.js +62 -57
  302. package/dist/external-wiki-collection-registration.d.ts +2 -1
  303. package/dist/external-wiki-collection.d.ts +2 -1
  304. package/dist/external-wiki-mcp-tools.d.ts +13 -11
  305. package/dist/extraction-error-classification.d.ts +2 -1
  306. package/dist/extraction-faithfulness.d.ts +2 -1
  307. package/dist/extraction-faithfulness.js +4 -3
  308. package/dist/extraction-judge-telemetry.d.ts +2 -1
  309. package/dist/extraction-judge-training.d.ts +2 -1
  310. package/dist/extraction-judge.d.ts +2 -1
  311. package/dist/extraction-judge.js +5 -4
  312. package/dist/extraction-liveness.d.ts +2 -1
  313. package/dist/extraction-normalization.d.ts +2 -1
  314. package/dist/extraction-prompt.d.ts +2 -1
  315. package/dist/extraction-source-grounding-rules.d.ts +2 -1
  316. package/dist/extraction-source-grounding.d.ts +2 -1
  317. package/dist/extraction.d.ts +2 -1
  318. package/dist/extraction.js +36 -34
  319. package/dist/fallback-llm.d.ts +2 -1
  320. package/dist/fallback-llm.js +3 -2
  321. package/dist/{first-start-migration-RC345GPL.js → first-start-migration-L3UFX5CU.js} +3 -3
  322. package/dist/generic-recall-paths-CqAZyXKX.d.ts +23 -0
  323. package/dist/graph-append-error.d.ts +2 -1
  324. package/dist/graph-dashboard-diff.d.ts +2 -1
  325. package/dist/graph-dashboard-key.d.ts +2 -1
  326. package/dist/graph-dashboard-parser.d.ts +2 -1
  327. package/dist/graph-edge-reinforcement.d.ts +2 -1
  328. package/dist/graph-jsonl.d.ts +2 -1
  329. package/dist/graph-path-reconstruction.d.ts +2 -1
  330. package/dist/graph-path-scoring.d.ts +2 -1
  331. package/dist/graph-snapshot.d.ts +2 -1
  332. package/dist/graph.d.ts +2 -1
  333. package/dist/harmonic-retrieval.js +2 -2
  334. package/dist/importance.d.ts +2 -1
  335. package/dist/importers/index.d.ts +2 -1
  336. package/dist/importers/test-utils.d.ts +2 -1
  337. package/dist/in-flight-reads.d.ts +2 -1
  338. package/dist/{index-BTAsSkPG.d.ts → index-BNluTxBp.d.ts} +2 -2
  339. package/dist/index.d.ts +302 -245
  340. package/dist/index.js +307 -205
  341. package/dist/intent.d.ts +2 -1
  342. package/dist/lcm/engine.d.ts +2 -1
  343. package/dist/lcm/engine.js +2 -2
  344. package/dist/lcm/index.d.ts +2 -1
  345. package/dist/lcm/index.js +4 -4
  346. package/dist/lcm/tools.d.ts +2 -1
  347. package/dist/lifecycle.d.ts +2 -1
  348. package/dist/live-connectors-runner.d.ts +2 -1
  349. package/dist/local-llm.d.ts +4 -1
  350. package/dist/local-llm.js +2 -2
  351. package/dist/local-model-endpoint.d.ts +2 -1
  352. package/dist/location/index.d.ts +4 -3
  353. package/dist/location/index.js +28 -27
  354. package/dist/maintenance/memory-governance.d.ts +2 -1
  355. package/dist/maintenance/memory-governance.js +25 -24
  356. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +3 -2
  357. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +25 -24
  358. package/dist/maintenance/rebuild-memory-projection.d.ts +3 -2
  359. package/dist/maintenance/rebuild-memory-projection.js +26 -25
  360. package/dist/{maintenance-DCvQGTzL.d.ts → maintenance-8hmWOMY_.d.ts} +378 -4
  361. package/dist/mcp-memory-inspector-app.d.ts +13 -11
  362. package/dist/memory-action-policy.d.ts +2 -1
  363. package/dist/memory-cache.d.ts +2 -1
  364. package/dist/memory-controller.d.ts +2 -1
  365. package/dist/memory-lifecycle-ledger-utils.d.ts +2 -1
  366. package/dist/memory-projection-store.d.ts +2 -1
  367. package/dist/memory-provenance.d.ts +2 -1
  368. package/dist/memory-snapshot.d.ts +2 -1
  369. package/dist/memory-subject-cli.d.ts +13 -11
  370. package/dist/memory-subject.d.ts +13 -11
  371. package/dist/memory-worth-outcomes.d.ts +3 -2
  372. package/dist/migrate/from-engram.js +2 -2
  373. package/dist/models-json.d.ts +2 -1
  374. package/dist/namespaces/migrate.d.ts +4 -3
  375. package/dist/namespaces/migrate.js +26 -25
  376. package/dist/namespaces/principal.d.ts +2 -1
  377. package/dist/namespaces/search.d.ts +2 -1
  378. package/dist/namespaces/search.js +8 -8
  379. package/dist/namespaces/storage.d.ts +4 -3
  380. package/dist/namespaces/storage.js +25 -24
  381. package/dist/native-knowledge.d.ts +2 -1
  382. package/dist/network/tailscale.js +2 -2
  383. package/dist/offline-sync-impression-drain.d.ts +2 -1
  384. package/dist/offline-sync-impression-drain.js +6 -6
  385. package/dist/operator-doctor-corpus.d.ts +2 -1
  386. package/dist/operator-doctor-corpus.js +29 -28
  387. package/dist/operator-doctor-replica.d.ts +2 -1
  388. package/dist/operator-toolkit.d.ts +4 -3
  389. package/dist/operator-toolkit.js +43 -41
  390. package/dist/orchestration/compression-guideline-coordinator.d.ts +3 -2
  391. package/dist/orchestration/maintenance.d.ts +5 -4
  392. package/dist/orchestration/maintenance.js +43 -38
  393. package/dist/{orchestrator-CvCsp1tz.d.ts → orchestrator-BUd_3Q86.d.ts} +17 -29
  394. package/dist/orchestrator.d.ts +11 -9
  395. package/dist/orchestrator.js +133 -127
  396. package/dist/patterns-cli.d.ts +2 -1
  397. package/dist/{pipeline-JAdwKBS7.d.ts → pipeline-Dv1Bv0ma.d.ts} +1 -1
  398. package/dist/policy-runtime.d.ts +2 -1
  399. package/dist/proactive-contention.d.ts +2 -1
  400. package/dist/provenance.d.ts +2 -1
  401. package/dist/{public-http-h-yWu9rj.d.ts → public-http-L-IymRBN.d.ts} +1 -1
  402. package/dist/{qmd-Cvw9RWKr.d.ts → qmd-Mj508lHA.d.ts} +1 -1
  403. package/dist/qmd-preflight.d.ts +3 -2
  404. package/dist/qmd-recall-cache.d.ts +2 -1
  405. package/dist/qmd.d.ts +3 -2
  406. package/dist/qmd.js +2 -2
  407. package/dist/recall-concurrency-config.d.ts +2 -1
  408. package/dist/recall-disclosure-escalation.d.ts +2 -1
  409. package/dist/recall-explain-renderer.d.ts +2 -1
  410. package/dist/recall-explain-renderer.js +3 -3
  411. package/dist/recall-memory-map.d.ts +2 -1
  412. package/dist/recall-navigate-access.d.ts +2 -1
  413. package/dist/recall-navigate-access.js +2 -2
  414. package/dist/recall-navigate-disclosure.d.ts +2 -1
  415. package/dist/recall-navigate-disclosure.js +1 -1
  416. package/dist/recall-navigate.d.ts +2 -1
  417. package/dist/recall-navigate.js +2 -2
  418. package/dist/recall-planner-llm.d.ts +2 -1
  419. package/dist/recall-planner-llm.js +3 -2
  420. package/dist/recall-planner-llm.js.map +1 -1
  421. package/dist/recall-state-view-admission.d.ts +56 -0
  422. package/dist/recall-state-view-admission.js +39 -0
  423. package/dist/recall-state-view-inject.js +2 -2
  424. package/dist/recall-state-view-render.js +2 -2
  425. package/dist/recall-state-view-widen.d.ts +18 -1
  426. package/dist/recall-state-view-widen.js +2 -2
  427. package/dist/recall-state-view-wire.d.ts +1 -1
  428. package/dist/recall-state-view-wire.js +3 -3
  429. package/dist/recall-state-view.d.ts +1 -0
  430. package/dist/recall-state-view.js +1 -1
  431. package/dist/recall-state.d.ts +2 -1
  432. package/dist/recall-tag-filter.d.ts +2 -1
  433. package/dist/recall-timings.d.ts +2 -1
  434. package/dist/recall-xray-cli.d.ts +2 -1
  435. package/dist/recall-xray-cli.js +4 -4
  436. package/dist/recall-xray-renderer.d.ts +2 -1
  437. package/dist/recall-xray-renderer.js +3 -3
  438. package/dist/recall-xray.d.ts +9 -1
  439. package/dist/recall-xray.js +2 -2
  440. package/dist/reconcile/cursor.d.ts +11 -2
  441. package/dist/reconcile/cursor.js +6 -4
  442. package/dist/reconcile/cursor.js.map +1 -1
  443. package/dist/reconcile/manifest.d.ts +37 -2
  444. package/dist/reconcile/manifest.js +15 -5
  445. package/dist/reconcile/plan.d.ts +2 -1
  446. package/dist/replay/normalizers/chatgpt.d.ts +2 -1
  447. package/dist/replay/normalizers/claude.d.ts +2 -1
  448. package/dist/replay/normalizers/openclaw.d.ts +2 -1
  449. package/dist/replay/normalizers/shared.d.ts +2 -1
  450. package/dist/replay/runner.d.ts +2 -1
  451. package/dist/replay/types.d.ts +2 -1
  452. package/dist/replica-divergence.d.ts +2 -1
  453. package/dist/replica-peers-config.d.ts +2 -1
  454. package/dist/{resolution-VKATP2HT.js → resolution-OHJZG45O.js} +6 -6
  455. package/dist/resolution-OHJZG45O.js.map +1 -0
  456. package/dist/resolve-auth-token.d.ts +2 -1
  457. package/dist/resume-bundles.js +13 -11
  458. package/dist/retrieval-agents.d.ts +3 -2
  459. package/dist/retrieval-tiers.d.ts +2 -1
  460. package/dist/routing/engine.d.ts +2 -1
  461. package/dist/routing/store.d.ts +2 -1
  462. package/dist/runtime/child-process.d.ts +1 -1
  463. package/dist/runtime/child-process.js +1 -1
  464. package/dist/salvage-envelope.d.ts +2 -1
  465. package/dist/salvage-envelope.js +2 -2
  466. package/dist/{scope-profiles-BShpTPeV.d.ts → scope-profiles-B6BGVbxm.d.ts} +1 -1
  467. package/dist/search/embed-helper.d.ts +2 -1
  468. package/dist/search/factory.d.ts +2 -1
  469. package/dist/search/factory.js +7 -7
  470. package/dist/search/index.d.ts +2 -1
  471. package/dist/search/index.js +11 -11
  472. package/dist/search/lancedb-backend.d.ts +2 -1
  473. package/dist/search/meilisearch-backend.d.ts +2 -1
  474. package/dist/search/noop-backend.d.ts +2 -1
  475. package/dist/search/orama-backend.d.ts +2 -1
  476. package/dist/search/port.d.ts +2 -1
  477. package/dist/search/remote-backend.d.ts +2 -1
  478. package/dist/{semantic-consolidation-CusOpe9F.d.ts → semantic-consolidation-J-598F5M.d.ts} +1 -1
  479. package/dist/semantic-consolidation.d.ts +3 -2
  480. package/dist/semantic-consolidation.js +26 -25
  481. package/dist/semantic-rule-promotion.js +25 -24
  482. package/dist/semantic-rule-verifier.d.ts +2 -1
  483. package/dist/semantic-rule-verifier.js +25 -24
  484. package/dist/{service-BbuVh1eS.d.ts → service-ZQkJ52cz.d.ts} +2 -2
  485. package/dist/session-observer-bands.d.ts +2 -1
  486. package/dist/session-observer-state.d.ts +2 -1
  487. package/dist/shared-context/manager.d.ts +2 -1
  488. package/dist/signal.d.ts +2 -1
  489. package/dist/source-agent-qualifier.d.ts +2 -1
  490. package/dist/source-agent-qualifier.js +34 -32
  491. package/dist/standup/build.js +25 -24
  492. package/dist/{storage-BBLLuVTF.d.ts → storage-CU_hZUgP.d.ts} +67 -6
  493. package/dist/storage.d.ts +4 -3
  494. package/dist/storage.js +24 -23
  495. package/dist/subject-config.d.ts +2 -1
  496. package/dist/subject-config.js +2 -2
  497. package/dist/summarizer.d.ts +2 -1
  498. package/dist/summarizer.js +5 -5
  499. package/dist/summary-snapshot.d.ts +2 -1
  500. package/dist/support-passport/index.d.ts +49 -15
  501. package/dist/support-passport/index.js +69 -60
  502. package/dist/temporal-supersession.d.ts +3 -2
  503. package/dist/temporal-timeline-recall.d.ts +2 -1
  504. package/dist/temporal-validity.d.ts +2 -1
  505. package/dist/threading.d.ts +2 -1
  506. package/dist/tier-migration.d.ts +3 -2
  507. package/dist/tier-routing.d.ts +2 -1
  508. package/dist/tier-routing.js +2 -2
  509. package/dist/{tier-stats-KA6OZX2C.js → tier-stats-VK5PCO2L.js} +3 -3
  510. package/dist/topics.d.ts +2 -1
  511. package/dist/transcript.d.ts +2 -1
  512. package/dist/transfer/capsule-import.js +1 -1
  513. package/dist/transfer/export-okf.d.ts +2 -1
  514. package/dist/transfer/export-okf.js +26 -25
  515. package/dist/transfer/types.d.ts +24 -24
  516. package/dist/trust-score-stage.d.ts +2 -1
  517. package/dist/trust-score.d.ts +2 -1
  518. package/dist/{types-igV4-sbB.d.ts → types-BGxTvLBO.d.ts} +58 -13
  519. package/dist/types.d.ts +2 -1
  520. package/dist/types.js +1 -1
  521. package/dist/utility-runtime.d.ts +2 -1
  522. package/dist/verified-recall.js +25 -24
  523. package/dist/who-knows-cli.d.ts +13 -11
  524. package/dist/who-knows-cli.js +26 -25
  525. package/dist/who-knows.d.ts +13 -11
  526. package/dist/who-knows.js +25 -24
  527. package/dist/write-envelope.d.ts +4 -2
  528. package/dist/write-envelope.js +3 -1
  529. package/package.json +2 -2
  530. package/src/access-category-alias.test.ts +216 -0
  531. package/src/access-mcp.test.ts +73 -0
  532. package/src/access-mcp.ts +6 -6
  533. package/src/access-observe-write-surface.ts +19 -4
  534. package/src/access-offline-manifest.ts +297 -16
  535. package/src/access-recall-surface.ts +5 -5
  536. package/src/access-schema.ts +76 -7
  537. package/src/access-service.ts +11 -2
  538. package/src/activity/config.test.ts +124 -1
  539. package/src/activity/config.ts +150 -18
  540. package/src/activity/index.ts +3 -0
  541. package/src/activity/journal-extract-storage.test.ts +129 -0
  542. package/src/activity/journal-extract.test.ts +314 -0
  543. package/src/activity/journal-extract.ts +247 -0
  544. package/src/activity/journal-heading.test.ts +24 -1
  545. package/src/activity/journal-heading.ts +36 -0
  546. package/src/activity/journal-read.test.ts +242 -0
  547. package/src/activity/journal-read.ts +183 -0
  548. package/src/activity/journal-source.test.ts +15 -15
  549. package/src/activity/journal-source.ts +21 -14
  550. package/src/activity/journal-state.lock-worker.ts +30 -0
  551. package/src/activity/journal-state.test.ts +144 -0
  552. package/src/activity/journal-state.ts +107 -0
  553. package/src/activity/journal-strip.test.ts +106 -52
  554. package/src/activity/journal-strip.ts +35 -10
  555. package/src/activity/journal-vault-integration.test.ts +230 -0
  556. package/src/activity/journal-vault-provenance.test.ts +9 -7
  557. package/src/activity/journal-vault-provenance.ts +4 -10
  558. package/src/activity/journal-vault-read.test.ts +3 -2
  559. package/src/activity/journal-vault-read.ts +9 -139
  560. package/src/activity/journal.test.ts +74 -23
  561. package/src/activity/runner.test.ts +116 -1
  562. package/src/activity/runner.ts +25 -0
  563. package/src/activity/scheduler.ts +4 -0
  564. package/src/activity/store.test.ts +18 -0
  565. package/src/activity/store.ts +14 -0
  566. package/src/activity/sync-registration.ts +4 -0
  567. package/src/activity/timeline/analysis-metadata.ts +2 -0
  568. package/src/activity/timeline/analysis-provider.ts +140 -0
  569. package/src/activity/timeline/analysis-run.test.ts +419 -0
  570. package/src/activity/timeline/analysis-run.ts +106 -0
  571. package/src/activity/timeline/analysis.ts +66 -37
  572. package/src/activity/timeline/corrections.ts +9 -0
  573. package/src/activity/timeline/index.ts +3 -0
  574. package/src/activity/timeline/query.test.ts +71 -0
  575. package/src/activity/timeline/query.ts +57 -8
  576. package/src/activity/timeline/regenerate.test.ts +505 -0
  577. package/src/activity/timeline/regenerate.ts +373 -0
  578. package/src/activity/types.ts +40 -5
  579. package/src/adapters/grok-opencode.test.ts +146 -0
  580. package/src/adapters/grok.ts +53 -0
  581. package/src/adapters/index.ts +2 -0
  582. package/src/adapters/opencode.ts +52 -0
  583. package/src/adapters/registry.ts +4 -0
  584. package/src/cli-fallback.ts +13 -4
  585. package/src/config.test.ts +3 -1
  586. package/src/config.ts +4 -0
  587. package/src/dedup/merge.test.ts +732 -25
  588. package/src/fallback-llm.test.ts +53 -0
  589. package/src/fallback-llm.ts +12 -0
  590. package/src/index.ts +2 -0
  591. package/src/local-llm.ts +3 -1
  592. package/src/orchestration/dependency-propagation-recovery-replay.ts +1 -1
  593. package/src/orchestration/extraction-persist-deps.ts +9 -0
  594. package/src/orchestration/extraction-persist-promotion.test.ts +265 -6
  595. package/src/orchestration/extraction-persist-promotion.ts +42 -3
  596. package/src/orchestration/extraction-persist.ts +3 -3
  597. package/src/orchestration/harmonic-construction-persist.test.ts +115 -4
  598. package/src/orchestration/harmonic-construction-persist.ts +34 -6
  599. package/src/orchestration/maintenance.ts +1 -0
  600. package/src/orchestration/orchestrator-helpers.ts +6 -0
  601. package/src/orchestration/recall-entry.ts +16 -0
  602. package/src/orchestration/recall-internal-deps.ts +14 -0
  603. package/src/orchestration/recall-internal.ts +41 -58
  604. package/src/orchestration/recall-result-formatter.ts +11 -1
  605. package/src/orchestration/recall-search-pipeline.ts +121 -11
  606. package/src/orchestration/recall-state-view-pipeline.test.ts +211 -0
  607. package/src/orchestration/semantic-merge-commit-effects.ts +76 -17
  608. package/src/orchestration/semantic-merge-persist.ts +121 -16
  609. package/src/orchestration/semantic-merge-promotion-payload.ts +133 -54
  610. package/src/orchestrator.ts +7 -35
  611. package/src/providers/codex-subscription.test.ts +666 -0
  612. package/src/providers/codex-subscription.ts +743 -0
  613. package/src/recall-disclosure.test.ts +20 -0
  614. package/src/recall-state-view-admission.ts +114 -0
  615. package/src/recall-state-view-asof.test.ts +176 -0
  616. package/src/recall-state-view-call.test.ts +175 -0
  617. package/src/recall-state-view-config.test.ts +16 -0
  618. package/src/recall-state-view-widen.test.ts +70 -0
  619. package/src/recall-state-view-widen.ts +28 -7
  620. package/src/recall-state-view-wire.ts +3 -1
  621. package/src/recall-state-view-zero-diff.test.ts +20 -11
  622. package/src/recall-state-view.test.ts +142 -0
  623. package/src/recall-state-view.ts +72 -24
  624. package/src/recall-xray-renderer.test.ts +27 -0
  625. package/src/recall-xray-renderer.ts +4 -0
  626. package/src/recall-xray.ts +13 -0
  627. package/src/reconcile/cursor.ts +23 -33
  628. package/src/reconcile/manifest.ts +96 -11
  629. package/src/reconcile-identity-cache.test.ts +378 -0
  630. package/src/runtime/child-process.ts +1 -1
  631. package/src/storage/cas-revision-host.ts +75 -0
  632. package/src/storage/cas-revision-store.test.ts +459 -0
  633. package/src/storage/cas-revision-store.ts +661 -0
  634. package/src/storage/deletion-revision-store.ts +80 -6
  635. package/src/storage/tombstone-blocked-capture-index.ts +15 -0
  636. package/src/storage/tombstone-blocked-capture-mutation.ts +67 -7
  637. package/src/storage/tombstone-blocked-capture-sync.ts +55 -20
  638. package/src/storage-contract/failure-semantics.test.ts +1 -1
  639. package/src/storage-frontmatter-cas.test.ts +698 -1
  640. package/src/storage-replay.test.ts +166 -3
  641. package/src/storage.ts +41 -41
  642. package/src/support-passport/card-projection.ts +82 -33
  643. package/src/temporal-supersession.test.ts +10 -10
  644. package/src/types.ts +7 -7
  645. package/src/write-envelope.ts +1 -1
  646. package/dist/chunk-22FVR2KE.js.map +0 -1
  647. package/dist/chunk-2C3S7J2S.js.map +0 -1
  648. package/dist/chunk-2JVJ7UHC.js.map +0 -1
  649. package/dist/chunk-2QSZNTDO.js +0 -56
  650. package/dist/chunk-2QSZNTDO.js.map +0 -1
  651. package/dist/chunk-3QQTXYZ6.js.map +0 -1
  652. package/dist/chunk-5VCDKQWQ.js +0 -560
  653. package/dist/chunk-5VCDKQWQ.js.map +0 -1
  654. package/dist/chunk-A7XEPMQ6.js.map +0 -1
  655. package/dist/chunk-BLUYQFRH.js.map +0 -1
  656. package/dist/chunk-E6JA6XWY.js.map +0 -1
  657. package/dist/chunk-EEOUMG3J.js.map +0 -1
  658. package/dist/chunk-FDLDOEO6.js.map +0 -1
  659. package/dist/chunk-FYDW33ZB.js +0 -13
  660. package/dist/chunk-H272ZPQ3.js.map +0 -1
  661. package/dist/chunk-HV7OY4DM.js.map +0 -1
  662. package/dist/chunk-HVAEXYPL.js.map +0 -1
  663. package/dist/chunk-JEIXTYVG.js.map +0 -1
  664. package/dist/chunk-LRICZIGN.js +0 -52
  665. package/dist/chunk-LRICZIGN.js.map +0 -1
  666. package/dist/chunk-MFDTVQJX.js.map +0 -1
  667. package/dist/chunk-N7RWREIQ.js.map +0 -1
  668. package/dist/chunk-O75CRYGF.js.map +0 -1
  669. package/dist/chunk-Q726HSJO.js.map +0 -1
  670. package/dist/chunk-QOIOACIE.js.map +0 -1
  671. package/dist/chunk-SEDEKFYQ.js +0 -1
  672. package/dist/chunk-SO7SV523.js.map +0 -1
  673. package/dist/chunk-TLPZ6MKZ.js.map +0 -1
  674. package/dist/chunk-UGPUYIET.js.map +0 -1
  675. package/src/activity/journal-mode.test.ts +0 -32
  676. package/src/activity/journal-mode.ts +0 -20
  677. /package/dist/{capsule-merge-IPG4IOFP.js.map → capsule-merge-ZCXUPLNJ.js.map} +0 -0
  678. /package/dist/{chunk-CDKHKZL5.js.map → chunk-2524MOWK.js.map} +0 -0
  679. /package/dist/{chunk-7BMXZCOT.js.map → chunk-2AU4D4HQ.js.map} +0 -0
  680. /package/dist/{chunk-LTIZHLV7.js.map → chunk-2JCA2PQT.js.map} +0 -0
  681. /package/dist/{chunk-XXIHX75O.js.map → chunk-2UZ5ZH6W.js.map} +0 -0
  682. /package/dist/{chunk-P3SB5BNT.js.map → chunk-34QW2LK2.js.map} +0 -0
  683. /package/dist/{chunk-EONF76DT.js.map → chunk-36UBSLFN.js.map} +0 -0
  684. /package/dist/{chunk-DBQWVT2H.js.map → chunk-3CBI2ZSA.js.map} +0 -0
  685. /package/dist/{chunk-NZXEK3UF.js.map → chunk-3Q3N35W7.js.map} +0 -0
  686. /package/dist/{chunk-YYGZJPOK.js.map → chunk-42DJ235G.js.map} +0 -0
  687. /package/dist/{chunk-TCUKRAMK.js.map → chunk-4JVQRFZD.js.map} +0 -0
  688. /package/dist/{chunk-PYLL63BF.js.map → chunk-4PB2MBY6.js.map} +0 -0
  689. /package/dist/{chunk-UUQG7HAD.js.map → chunk-4WCNPQQ5.js.map} +0 -0
  690. /package/dist/{chunk-H4VH5VIB.js.map → chunk-5QBDLMGG.js.map} +0 -0
  691. /package/dist/{chunk-RKBLRTNT.js.map → chunk-5SDSVX7N.js.map} +0 -0
  692. /package/dist/{chunk-DGGB65KC.js.map → chunk-5THU7NFP.js.map} +0 -0
  693. /package/dist/{chunk-BPJNF7J2.js.map → chunk-6CCRSQWT.js.map} +0 -0
  694. /package/dist/{chunk-XXE5P6HJ.js.map → chunk-6XYC7NM4.js.map} +0 -0
  695. /package/dist/{chunk-J7HFPA6O.js.map → chunk-6YAIN5XJ.js.map} +0 -0
  696. /package/dist/{chunk-I5DZ3WGR.js.map → chunk-757NP436.js.map} +0 -0
  697. /package/dist/{chunk-E6TDQRF6.js.map → chunk-7J2CGXG3.js.map} +0 -0
  698. /package/dist/{chunk-BUTCAMJM.js.map → chunk-A2YQL2FF.js.map} +0 -0
  699. /package/dist/{chunk-X2NFFBTO.js.map → chunk-A7GQBJP5.js.map} +0 -0
  700. /package/dist/{chunk-R3HKWWUB.js.map → chunk-A7WOWDZK.js.map} +0 -0
  701. /package/dist/{chunk-6N3TQFZU.js.map → chunk-AIKTQVV3.js.map} +0 -0
  702. /package/dist/{chunk-CGC5UQCF.js.map → chunk-AKE4GGQ3.js.map} +0 -0
  703. /package/dist/{chunk-W27OW7AB.js.map → chunk-APFKZVJS.js.map} +0 -0
  704. /package/dist/{chunk-B325AGLK.js.map → chunk-AQIRQUCP.js.map} +0 -0
  705. /package/dist/{chunk-S7T2TY65.js.map → chunk-AXFR2NQ5.js.map} +0 -0
  706. /package/dist/{chunk-FCSZ4K2X.js.map → chunk-BJJWRWER.js.map} +0 -0
  707. /package/dist/{chunk-JT3EB7ZL.js.map → chunk-BNGHPYZU.js.map} +0 -0
  708. /package/dist/{chunk-N57A4KPV.js.map → chunk-C2BFTYD7.js.map} +0 -0
  709. /package/dist/{chunk-3JVLGJCY.js.map → chunk-C6KRO3SU.js.map} +0 -0
  710. /package/dist/{chunk-X35W4S3L.js.map → chunk-D3IZCN5P.js.map} +0 -0
  711. /package/dist/{chunk-44T3Y7SZ.js.map → chunk-EJIEQOPB.js.map} +0 -0
  712. /package/dist/{chunk-ET356KSB.js.map → chunk-F4TWWUMP.js.map} +0 -0
  713. /package/dist/{chunk-CLLPJ6QT.js.map → chunk-FQXJAC3T.js.map} +0 -0
  714. /package/dist/{chunk-DD5JFCWM.js.map → chunk-GCBIXUPT.js.map} +0 -0
  715. /package/dist/{chunk-N2ZNPHA3.js.map → chunk-IFFLUCCU.js.map} +0 -0
  716. /package/dist/{chunk-PFFZWDPE.js.map → chunk-JZDH2ZZK.js.map} +0 -0
  717. /package/dist/{chunk-TX2UTLXC.js.map → chunk-K6IPSW5B.js.map} +0 -0
  718. /package/dist/{chunk-4MHYKEOM.js.map → chunk-KDJHLOZP.js.map} +0 -0
  719. /package/dist/{chunk-KCB7F4J7.js.map → chunk-KYGOQV37.js.map} +0 -0
  720. /package/dist/{chunk-VZWXFXLX.js.map → chunk-LMCD5W5B.js.map} +0 -0
  721. /package/dist/{chunk-MKD3OMPS.js.map → chunk-M3MYMWXG.js.map} +0 -0
  722. /package/dist/{chunk-PL7FYKHT.js.map → chunk-MMG5K6XJ.js.map} +0 -0
  723. /package/dist/{chunk-VGXM5B4H.js.map → chunk-MNIPH6LD.js.map} +0 -0
  724. /package/dist/{chunk-XU6OEECT.js.map → chunk-OQQXGYMX.js.map} +0 -0
  725. /package/dist/{chunk-LSYDG6MJ.js.map → chunk-PEXW2JCK.js.map} +0 -0
  726. /package/dist/{chunk-MOZXTRC2.js.map → chunk-QF4J3KMV.js.map} +0 -0
  727. /package/dist/{chunk-JGHXXQ2G.js.map → chunk-QLJ6762U.js.map} +0 -0
  728. /package/dist/{chunk-XOVKXJEP.js.map → chunk-R3TLVTWW.js.map} +0 -0
  729. /package/dist/{chunk-CETXNLEX.js.map → chunk-RQO3J4MR.js.map} +0 -0
  730. /package/dist/{chunk-5NANRSCD.js.map → chunk-RR7G2X7C.js.map} +0 -0
  731. /package/dist/{chunk-DCJ3YFIC.js.map → chunk-S2ULTQZR.js.map} +0 -0
  732. /package/dist/{chunk-EQHDH4C2.js.map → chunk-S76KRJDG.js.map} +0 -0
  733. /package/dist/{chunk-EEC4PCG5.js.map → chunk-SZDLX763.js.map} +0 -0
  734. /package/dist/{chunk-E2ZHGBAK.js.map → chunk-T2JSUEH6.js.map} +0 -0
  735. /package/dist/{chunk-JSN44KIB.js.map → chunk-T2YFZ27G.js.map} +0 -0
  736. /package/dist/{chunk-227UFSEQ.js.map → chunk-TFA6HPOA.js.map} +0 -0
  737. /package/dist/{chunk-BA6WOZOT.js.map → chunk-TK4FHQRN.js.map} +0 -0
  738. /package/dist/{chunk-NB5BCFUY.js.map → chunk-TWYTGIBR.js.map} +0 -0
  739. /package/dist/{chunk-MWFGUESQ.js.map → chunk-UEZKN6VR.js.map} +0 -0
  740. /package/dist/{chunk-H5AFCNGA.js.map → chunk-UJX4I26O.js.map} +0 -0
  741. /package/dist/{chunk-PBGVVDLY.js.map → chunk-VIZR45AN.js.map} +0 -0
  742. /package/dist/{chunk-ZG74PWRW.js.map → chunk-VZAKYDMJ.js.map} +0 -0
  743. /package/dist/{chunk-JTH2SE6B.js.map → chunk-W5BLTZZJ.js.map} +0 -0
  744. /package/dist/{chunk-H3TKENU4.js.map → chunk-WIKO4SCR.js.map} +0 -0
  745. /package/dist/{chunk-YFLLGRXO.js.map → chunk-X2QPKLPL.js.map} +0 -0
  746. /package/dist/{chunk-MN3LK3KN.js.map → chunk-X424T5JQ.js.map} +0 -0
  747. /package/dist/{chunk-5BCNEBEN.js.map → chunk-XPJNT6PI.js.map} +0 -0
  748. /package/dist/{chunk-SEDEKFYQ.js.map → chunk-XW2T4QAW.js.map} +0 -0
  749. /package/dist/{chunk-D223ZDQV.js.map → chunk-YEDVOYL2.js.map} +0 -0
  750. /package/dist/{chunk-RC5DXXWC.js.map → chunk-YM7YN37H.js.map} +0 -0
  751. /package/dist/{chunk-VLXBE57O.js.map → chunk-YVGXH72Y.js.map} +0 -0
  752. /package/dist/{chunk-YQAXP5AC.js.map → chunk-YXLUTALO.js.map} +0 -0
  753. /package/dist/{chunk-OQDPBRQ6.js.map → chunk-Z7YDVHDI.js.map} +0 -0
  754. /package/dist/{chunk-XUE46UYW.js.map → chunk-ZLN7AROH.js.map} +0 -0
  755. /package/dist/{chunk-HK32G473.js.map → chunk-ZWEZXVYH.js.map} +0 -0
  756. /package/dist/{contradiction-scan-NOYMFG66.js.map → contradiction-scan-GVD4JJ7B.js.map} +0 -0
  757. /package/dist/{first-start-migration-RC345GPL.js.map → first-start-migration-L3UFX5CU.js.map} +0 -0
  758. /package/dist/{resolution-VKATP2HT.js.map → recall-state-view-admission.js.map} +0 -0
  759. /package/dist/{tier-stats-KA6OZX2C.js.map → tier-stats-VK5PCO2L.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/active-recall.ts"],"sourcesContent":["import { appendFile, mkdir } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { DEFAULT_REASONING_MODEL } from \"./config.js\";\nimport { collapseWhitespace, truncateCodePointSafe } from \"./whitespace.js\";\nimport type {\n ActiveRecallChatType,\n ActiveRecallModelFallbackPolicy,\n ActiveRecallPromptStyle,\n ActiveRecallQueryMode,\n ActiveRecallThinking,\n} from \"./types.js\";\n\nexport interface ActiveRecallTurn {\n role: \"user\" | \"assistant\";\n content: string;\n}\n\nexport interface ActiveRecallInput {\n sessionKey: string;\n agentId: string;\n chatType: ActiveRecallChatType;\n recentTurns: ActiveRecallTurn[];\n currentMessage: string;\n}\n\nexport interface ActiveRecallConfig {\n enabled: boolean;\n agents: string[] | null;\n allowedChatTypes: ActiveRecallChatType[];\n queryMode: ActiveRecallQueryMode;\n promptStyle: ActiveRecallPromptStyle;\n customInstruction: string | null;\n promptReplacement: string | null;\n promptAppend: string | null;\n maxSummaryChars: number;\n recentUserTurns: number;\n recentAssistantTurns: number;\n recentUserChars: number;\n recentAssistantChars: number;\n thinking: ActiveRecallThinking;\n timeoutMs: number;\n cacheTtlMs: number;\n persistTranscripts: boolean;\n transcriptDir: string;\n entityGraphDepth: number;\n includeCausalTrajectories: boolean;\n includeDaySummary: boolean;\n attachRecallExplain: boolean;\n modelOverride: string | null;\n modelFallbackPolicy: ActiveRecallModelFallbackPolicy;\n}\n\nexport interface ActiveRecallResult {\n summary: string | null;\n citations: Array<{ memoryId: string; relevance: number }>;\n latencyMs: number;\n cacheHit: boolean;\n modelUsed: string;\n transcriptPath: string | null;\n}\n\nexport interface ActiveRecallDependencies {\n recall(query: string, sessionKey: string): Promise<string | null>;\n getLastRecallSnapshot?(sessionKey: string): { memoryIds?: string[] } | null;\n walkEntityGraph?(params: {\n sessionKey: string;\n query: string;\n depth: number;\n }): Promise<string[]>;\n loadCausalTrajectories?(params: {\n sessionKey: string;\n query: string;\n }): Promise<string[]>;\n loadDaySummary?(sessionKey: string): Promise<string | null>;\n explainLastRecall?(sessionKey: string): Promise<string | null>;\n generateSummary?(params: {\n prompt: string;\n sessionKey: string;\n agentId: string;\n model: string;\n timeoutMs: number;\n thinking: ActiveRecallThinking;\n fallbackPolicy: ActiveRecallModelFallbackPolicy;\n }): Promise<{ text: string | null; modelUsed?: string; cacheHit?: boolean }>;\n now?: () => number;\n}\n\ninterface CachedRecallResult {\n expiresAt: number;\n value: ActiveRecallResult;\n}\n\ninterface ActiveRecallTurnWithIndex {\n index: number;\n role: ActiveRecallTurn[\"role\"];\n content: string;\n}\n\nconst ACTIVE_RECALL_CACHE_MAX_ENTRIES = 256;\n\nconst NONE_SET = new Set([\n \"\",\n \"none\",\n \"no_reply\",\n \"nothing useful\",\n \"no relevant memory\",\n \"timeout\",\n \"[]\",\n \"{}\",\n \"null\",\n \"n/a\",\n]);\n\nconst STYLE_INSTRUCTIONS: Record<ActiveRecallPromptStyle, string> = {\n balanced: \"Summarize the most relevant memory context in a compact, neutral way.\",\n strict: \"Only include memory that is directly supported by the retrieved context.\",\n contextual: \"Prefer concise context that helps the next reply stay grounded in recent work.\",\n \"recall-heavy\": \"Bias toward richer recall coverage when multiple retrieved items reinforce each other.\",\n \"precision-heavy\": \"Bias toward precision. Omit anything uncertain or weakly supported.\",\n \"preference-only\": \"Only surface user preference or operating-style memory when present.\",\n};\n\nfunction cloneRecallResult(value: ActiveRecallResult): ActiveRecallResult {\n return {\n ...value,\n citations: [...value.citations],\n };\n}\n\nfunction buildCacheKey(input: ActiveRecallInput, config: ActiveRecallConfig, queryBundle: string): string {\n return JSON.stringify({\n sessionKey: input.sessionKey,\n agentId: input.agentId,\n queryMode: config.queryMode,\n promptStyle: config.promptStyle,\n customInstruction: config.customInstruction,\n promptReplacement: config.promptReplacement,\n promptAppend: config.promptAppend,\n maxSummaryChars: config.maxSummaryChars,\n entityGraphDepth: config.entityGraphDepth,\n includeCausalTrajectories: config.includeCausalTrajectories,\n includeDaySummary: config.includeDaySummary,\n attachRecallExplain: config.attachRecallExplain,\n modelOverride: config.modelOverride,\n modelFallbackPolicy: config.modelFallbackPolicy,\n thinking: config.thinking,\n queryBundle,\n });\n}\n\nfunction pruneExpiredCache(\n cache: Map<string, CachedRecallResult>,\n currentTime: number,\n): void {\n for (const [key, entry] of cache.entries()) {\n if (entry.expiresAt <= currentTime) {\n cache.delete(key);\n }\n }\n}\n\nfunction enforceCacheLimit(cache: Map<string, CachedRecallResult>): void {\n while (cache.size > ACTIVE_RECALL_CACHE_MAX_ENTRIES) {\n const oldestKey = cache.keys().next().value;\n if (typeof oldestKey !== \"string\") {\n break;\n }\n cache.delete(oldestKey);\n }\n}\n\nfunction cropTurns(\n turns: ActiveRecallTurn[],\n role: \"user\" | \"assistant\",\n maxTurns: number,\n maxChars: number,\n): ActiveRecallTurnWithIndex[] {\n if (maxTurns <= 0) {\n return [];\n }\n\n const selected: ActiveRecallTurnWithIndex[] = [];\n for (let index = turns.length - 1; index >= 0 && selected.length < maxTurns; index -= 1) {\n const turn = turns[index];\n if (turn?.role === role) {\n selected.push({\n index,\n role: turn.role,\n content: collapseWhitespace(truncateCodePointSafe(turn.content, maxChars)),\n });\n }\n }\n\n return selected.reverse();\n}\n\nfunction mergeChronologicalTurns(\n userTurns: ActiveRecallTurnWithIndex[],\n assistantTurns: ActiveRecallTurnWithIndex[],\n): ActiveRecallTurnWithIndex[] {\n return [...userTurns, ...assistantTurns]\n .sort((left, right) => left.index - right.index)\n .filter((value) => value.content.length > 0);\n}\n\nexport function buildActiveRecallQueryBundle(\n input: ActiveRecallInput,\n config: ActiveRecallConfig,\n): string {\n if (config.queryMode === \"message\") {\n return collapseWhitespace(input.currentMessage);\n }\n\n const userTurns = cropTurns(\n input.recentTurns,\n \"user\",\n config.recentUserTurns,\n config.recentUserChars,\n );\n const assistantTurns = cropTurns(\n input.recentTurns,\n \"assistant\",\n config.recentAssistantTurns,\n config.recentAssistantChars,\n );\n const mergedTurns = mergeChronologicalTurns(userTurns, assistantTurns);\n\n const parts = [\n ...mergedTurns.map((turn) => `${turn.role}: ${turn.content}`),\n ];\n\n if (config.queryMode === \"full\") {\n return [...parts, `current: ${collapseWhitespace(input.currentMessage)}`]\n .filter((value) => value.trim().length > 0)\n .join(\"\\n\");\n }\n\n return [`current: ${collapseWhitespace(input.currentMessage)}`, ...parts]\n .filter((value) => value.trim().length > 0)\n .join(\"\\n\");\n}\n\nexport function normalizeActiveRecallSummary(value: string | null, maxChars: number): string | null {\n if (value == null) return null;\n const compact = collapseWhitespace(value);\n if (NONE_SET.has(compact.toLowerCase())) return null;\n return truncateCodePointSafe(compact, maxChars);\n}\n\nfunction sanitizeTranscriptPathSegment(value: string): string {\n const normalized = collapseWhitespace(value);\n return encodeURIComponent(normalized.length > 0 ? normalized : \"unknown\").replaceAll(\n \".\",\n \"%2E\",\n );\n}\n\nexport function buildActiveRecallPrompt(params: {\n config: ActiveRecallConfig;\n queryBundle: string;\n recallContext: string | null;\n graphContext: string[];\n causalContext: string[];\n daySummary: string | null;\n recallExplain: string | null;\n}): string {\n const promptReplacement = params.config.promptReplacement?.trim();\n if (promptReplacement) {\n return promptReplacement;\n }\n\n const sections = [\n params.config.customInstruction?.trim() || STYLE_INSTRUCTIONS[params.config.promptStyle],\n `Query bundle:\\n${params.queryBundle}`,\n params.recallContext ? `Retrieved memory:\\n${params.recallContext}` : null,\n params.graphContext.length > 0 ? `Entity graph:\\n${params.graphContext.join(\"\\n\")}` : null,\n params.causalContext.length > 0 ? `Causal trajectories:\\n${params.causalContext.join(\"\\n\")}` : null,\n params.daySummary ? `Day summary:\\n${params.daySummary}` : null,\n params.recallExplain ? `Recall explain:\\n${params.recallExplain}` : null,\n params.config.promptAppend?.trim() || null,\n \"Return either NONE or a compact summary grounded only in the supplied context.\",\n ];\n return sections.filter((value): value is string => !!value && value.trim().length > 0).join(\"\\n\\n\");\n}\n\nasync function appendActiveRecallTranscript(\n transcriptRoot: string,\n input: ActiveRecallInput,\n config: ActiveRecallConfig,\n result: ActiveRecallResult,\n queryBundle: string,\n): Promise<string> {\n const date = new Date().toISOString().slice(0, 10);\n const filePath = path.join(\n transcriptRoot,\n \"agents\",\n sanitizeTranscriptPathSegment(input.agentId),\n date,\n `${sanitizeTranscriptPathSegment(input.sessionKey)}.jsonl`,\n );\n await mkdir(path.dirname(filePath), { recursive: true });\n await appendFile(\n filePath,\n `${JSON.stringify({\n ts: new Date().toISOString(),\n sessionKey: input.sessionKey,\n agentId: input.agentId,\n queryMode: config.queryMode,\n promptStyle: config.promptStyle,\n queryBundle,\n summary: result.summary,\n citations: result.citations,\n latencyMs: result.latencyMs,\n cacheHit: result.cacheHit,\n modelUsed: result.modelUsed,\n })}\\n`,\n \"utf8\",\n );\n return filePath;\n}\n\nexport function createActiveRecallEngine(\n deps: ActiveRecallDependencies,\n config: ActiveRecallConfig,\n) {\n const cache = new Map<string, CachedRecallResult>();\n const now = deps.now ?? (() => Date.now());\n\n return {\n async run(input: ActiveRecallInput): Promise<ActiveRecallResult> {\n if (!config.enabled) {\n return {\n summary: null,\n citations: [],\n latencyMs: 0,\n cacheHit: false,\n modelUsed: config.modelOverride ?? \"disabled\",\n transcriptPath: null,\n };\n }\n if (config.agents && !config.agents.includes(input.agentId)) {\n return {\n summary: null,\n citations: [],\n latencyMs: 0,\n cacheHit: false,\n modelUsed: config.modelOverride ?? \"filtered\",\n transcriptPath: null,\n };\n }\n if (!config.allowedChatTypes.includes(input.chatType)) {\n return {\n summary: null,\n citations: [],\n latencyMs: 0,\n cacheHit: false,\n modelUsed: config.modelOverride ?? \"filtered\",\n transcriptPath: null,\n };\n }\n\n const queryBundle = buildActiveRecallQueryBundle(input, config);\n const cacheKey = buildCacheKey(input, config, queryBundle);\n const currentTime = now();\n const cacheEnabled = config.cacheTtlMs > 0;\n if (cacheEnabled) {\n pruneExpiredCache(cache, currentTime);\n }\n const cached = cache.get(cacheKey);\n if (cacheEnabled && cached) {\n const result: ActiveRecallResult = {\n ...cloneRecallResult(cached.value),\n latencyMs: Math.max(0, now() - currentTime),\n cacheHit: true,\n };\n result.transcriptPath = null;\n if (config.persistTranscripts) {\n try {\n result.transcriptPath = await appendActiveRecallTranscript(\n config.transcriptDir,\n input,\n config,\n result,\n queryBundle,\n );\n } catch {\n result.transcriptPath = null;\n }\n }\n return result;\n }\n\n const start = currentTime;\n const recallContext = await deps.recall(queryBundle, input.sessionKey);\n const graphContext =\n config.entityGraphDepth > 0 && deps.walkEntityGraph\n ? await deps.walkEntityGraph({\n sessionKey: input.sessionKey,\n query: queryBundle,\n depth: config.entityGraphDepth,\n })\n : [];\n const causalContext =\n config.includeCausalTrajectories && deps.loadCausalTrajectories\n ? await deps.loadCausalTrajectories({\n sessionKey: input.sessionKey,\n query: queryBundle,\n })\n : [];\n const daySummary =\n config.includeDaySummary && deps.loadDaySummary\n ? await deps.loadDaySummary(input.sessionKey)\n : null;\n const recallExplain =\n config.attachRecallExplain && deps.explainLastRecall\n ? await deps.explainLastRecall(input.sessionKey)\n : null;\n const prompt = buildActiveRecallPrompt({\n config,\n queryBundle,\n recallContext,\n graphContext,\n causalContext,\n daySummary,\n recallExplain,\n });\n\n const generated = deps.generateSummary\n ? await deps.generateSummary({\n prompt,\n sessionKey: input.sessionKey,\n agentId: input.agentId,\n model: config.modelOverride ?? DEFAULT_REASONING_MODEL,\n timeoutMs: config.timeoutMs,\n thinking: config.thinking,\n fallbackPolicy: config.modelFallbackPolicy,\n })\n : {\n text: recallContext,\n modelUsed: config.modelOverride ?? DEFAULT_REASONING_MODEL,\n cacheHit: false,\n };\n const summary = normalizeActiveRecallSummary(\n generated.text,\n config.maxSummaryChars,\n );\n const snapshot = deps.getLastRecallSnapshot?.(input.sessionKey);\n const citations = (snapshot?.memoryIds ?? []).map((memoryId, index) => ({\n memoryId,\n relevance: Number((1 / (index + 1)).toFixed(3)),\n }));\n const result: ActiveRecallResult = {\n summary,\n citations,\n latencyMs: Math.max(0, now() - start),\n cacheHit: generated.cacheHit === true,\n modelUsed: generated.modelUsed ?? config.modelOverride ?? DEFAULT_REASONING_MODEL,\n transcriptPath: null,\n };\n if (config.persistTranscripts) {\n try {\n result.transcriptPath = await appendActiveRecallTranscript(\n config.transcriptDir,\n input,\n config,\n result,\n queryBundle,\n );\n } catch {\n result.transcriptPath = null;\n }\n }\n\n if (cacheEnabled) {\n const completedAt = now();\n const cachedValue = cloneRecallResult(result);\n cachedValue.transcriptPath = null;\n cache.set(cacheKey, {\n expiresAt: completedAt + config.cacheTtlMs,\n value: cachedValue,\n });\n enforceCacheLimit(cache);\n }\n return result;\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,YAAY,aAAa;AAClC,OAAO,UAAU;AAiGjB,IAAM,kCAAkC;AAExC,IAAM,WAAW,oBAAI,IAAI;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,IAAM,qBAA8D;AAAA,EAClE,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,mBAAmB;AAAA,EACnB,mBAAmB;AACrB;AAEA,SAAS,kBAAkB,OAA+C;AACxE,SAAO;AAAA,IACL,GAAG;AAAA,IACH,WAAW,CAAC,GAAG,MAAM,SAAS;AAAA,EAChC;AACF;AAEA,SAAS,cAAc,OAA0B,QAA4B,aAA6B;AACxG,SAAO,KAAK,UAAU;AAAA,IACpB,YAAY,MAAM;AAAA,IAClB,SAAS,MAAM;AAAA,IACf,WAAW,OAAO;AAAA,IAClB,aAAa,OAAO;AAAA,IACpB,mBAAmB,OAAO;AAAA,IAC1B,mBAAmB,OAAO;AAAA,IAC1B,cAAc,OAAO;AAAA,IACrB,iBAAiB,OAAO;AAAA,IACxB,kBAAkB,OAAO;AAAA,IACzB,2BAA2B,OAAO;AAAA,IAClC,mBAAmB,OAAO;AAAA,IAC1B,qBAAqB,OAAO;AAAA,IAC5B,eAAe,OAAO;AAAA,IACtB,qBAAqB,OAAO;AAAA,IAC5B,UAAU,OAAO;AAAA,IACjB;AAAA,EACF,CAAC;AACH;AAEA,SAAS,kBACP,OACA,aACM;AACN,aAAW,CAAC,KAAK,KAAK,KAAK,MAAM,QAAQ,GAAG;AAC1C,QAAI,MAAM,aAAa,aAAa;AAClC,YAAM,OAAO,GAAG;AAAA,IAClB;AAAA,EACF;AACF;AAEA,SAAS,kBAAkB,OAA8C;AACvE,SAAO,MAAM,OAAO,iCAAiC;AACnD,UAAM,YAAY,MAAM,KAAK,EAAE,KAAK,EAAE;AACtC,QAAI,OAAO,cAAc,UAAU;AACjC;AAAA,IACF;AACA,UAAM,OAAO,SAAS;AAAA,EACxB;AACF;AAEA,SAAS,UACP,OACA,MACA,UACA,UAC6B;AAC7B,MAAI,YAAY,GAAG;AACjB,WAAO,CAAC;AAAA,EACV;AAEA,QAAM,WAAwC,CAAC;AAC/C,WAAS,QAAQ,MAAM,SAAS,GAAG,SAAS,KAAK,SAAS,SAAS,UAAU,SAAS,GAAG;AACvF,UAAM,OAAO,MAAM,KAAK;AACxB,QAAI,MAAM,SAAS,MAAM;AACvB,eAAS,KAAK;AAAA,QACZ;AAAA,QACA,MAAM,KAAK;AAAA,QACX,SAAS,mBAAmB,sBAAsB,KAAK,SAAS,QAAQ,CAAC;AAAA,MAC3E,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO,SAAS,QAAQ;AAC1B;AAEA,SAAS,wBACP,WACA,gBAC6B;AAC7B,SAAO,CAAC,GAAG,WAAW,GAAG,cAAc,EACpC,KAAK,CAAC,MAAM,UAAU,KAAK,QAAQ,MAAM,KAAK,EAC9C,OAAO,CAAC,UAAU,MAAM,QAAQ,SAAS,CAAC;AAC/C;AAEO,SAAS,6BACd,OACA,QACQ;AACR,MAAI,OAAO,cAAc,WAAW;AAClC,WAAO,mBAAmB,MAAM,cAAc;AAAA,EAChD;AAEA,QAAM,YAAY;AAAA,IAChB,MAAM;AAAA,IACN;AAAA,IACA,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AACA,QAAM,iBAAiB;AAAA,IACrB,MAAM;AAAA,IACN;AAAA,IACA,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AACA,QAAM,cAAc,wBAAwB,WAAW,cAAc;AAErE,QAAM,QAAQ;AAAA,IACZ,GAAG,YAAY,IAAI,CAAC,SAAS,GAAG,KAAK,IAAI,KAAK,KAAK,OAAO,EAAE;AAAA,EAC9D;AAEA,MAAI,OAAO,cAAc,QAAQ;AAC/B,WAAO,CAAC,GAAG,OAAO,YAAY,mBAAmB,MAAM,cAAc,CAAC,EAAE,EACrE,OAAO,CAAC,UAAU,MAAM,KAAK,EAAE,SAAS,CAAC,EACzC,KAAK,IAAI;AAAA,EACd;AAEA,SAAO,CAAC,YAAY,mBAAmB,MAAM,cAAc,CAAC,IAAI,GAAG,KAAK,EACrE,OAAO,CAAC,UAAU,MAAM,KAAK,EAAE,SAAS,CAAC,EACzC,KAAK,IAAI;AACd;AAEO,SAAS,6BAA6B,OAAsB,UAAiC;AAClG,MAAI,SAAS,KAAM,QAAO;AAC1B,QAAM,UAAU,mBAAmB,KAAK;AACxC,MAAI,SAAS,IAAI,QAAQ,YAAY,CAAC,EAAG,QAAO;AAChD,SAAO,sBAAsB,SAAS,QAAQ;AAChD;AAEA,SAAS,8BAA8B,OAAuB;AAC5D,QAAM,aAAa,mBAAmB,KAAK;AAC3C,SAAO,mBAAmB,WAAW,SAAS,IAAI,aAAa,SAAS,EAAE;AAAA,IACxE;AAAA,IACA;AAAA,EACF;AACF;AAEO,SAAS,wBAAwB,QAQ7B;AACT,QAAM,oBAAoB,OAAO,OAAO,mBAAmB,KAAK;AAChE,MAAI,mBAAmB;AACrB,WAAO;AAAA,EACT;AAEA,QAAM,WAAW;AAAA,IACf,OAAO,OAAO,mBAAmB,KAAK,KAAK,mBAAmB,OAAO,OAAO,WAAW;AAAA,IACvF;AAAA,EAAkB,OAAO,WAAW;AAAA,IACpC,OAAO,gBAAgB;AAAA,EAAsB,OAAO,aAAa,KAAK;AAAA,IACtE,OAAO,aAAa,SAAS,IAAI;AAAA,EAAkB,OAAO,aAAa,KAAK,IAAI,CAAC,KAAK;AAAA,IACtF,OAAO,cAAc,SAAS,IAAI;AAAA,EAAyB,OAAO,cAAc,KAAK,IAAI,CAAC,KAAK;AAAA,IAC/F,OAAO,aAAa;AAAA,EAAiB,OAAO,UAAU,KAAK;AAAA,IAC3D,OAAO,gBAAgB;AAAA,EAAoB,OAAO,aAAa,KAAK;AAAA,IACpE,OAAO,OAAO,cAAc,KAAK,KAAK;AAAA,IACtC;AAAA,EACF;AACA,SAAO,SAAS,OAAO,CAAC,UAA2B,CAAC,CAAC,SAAS,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,MAAM;AACpG;AAEA,eAAe,6BACb,gBACA,OACA,QACA,QACA,aACiB;AACjB,QAAM,QAAO,oBAAI,KAAK,GAAE,YAAY,EAAE,MAAM,GAAG,EAAE;AACjD,QAAM,WAAW,KAAK;AAAA,IACpB;AAAA,IACA;AAAA,IACA,8BAA8B,MAAM,OAAO;AAAA,IAC3C;AAAA,IACA,GAAG,8BAA8B,MAAM,UAAU,CAAC;AAAA,EACpD;AACA,QAAM,MAAM,KAAK,QAAQ,QAAQ,GAAG,EAAE,WAAW,KAAK,CAAC;AACvD,QAAM;AAAA,IACJ;AAAA,IACA,GAAG,KAAK,UAAU;AAAA,MAChB,KAAI,oBAAI,KAAK,GAAE,YAAY;AAAA,MAC3B,YAAY,MAAM;AAAA,MAClB,SAAS,MAAM;AAAA,MACf,WAAW,OAAO;AAAA,MAClB,aAAa,OAAO;AAAA,MACpB;AAAA,MACA,SAAS,OAAO;AAAA,MAChB,WAAW,OAAO;AAAA,MAClB,WAAW,OAAO;AAAA,MAClB,UAAU,OAAO;AAAA,MACjB,WAAW,OAAO;AAAA,IACpB,CAAC,CAAC;AAAA;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,yBACd,MACA,QACA;AACA,QAAM,QAAQ,oBAAI,IAAgC;AAClD,QAAM,MAAM,KAAK,QAAQ,MAAM,KAAK,IAAI;AAExC,SAAO;AAAA,IACL,MAAM,IAAI,OAAuD;AAC/D,UAAI,CAAC,OAAO,SAAS;AACnB,eAAO;AAAA,UACL,SAAS;AAAA,UACT,WAAW,CAAC;AAAA,UACZ,WAAW;AAAA,UACX,UAAU;AAAA,UACV,WAAW,OAAO,iBAAiB;AAAA,UACnC,gBAAgB;AAAA,QAClB;AAAA,MACF;AACA,UAAI,OAAO,UAAU,CAAC,OAAO,OAAO,SAAS,MAAM,OAAO,GAAG;AAC3D,eAAO;AAAA,UACL,SAAS;AAAA,UACT,WAAW,CAAC;AAAA,UACZ,WAAW;AAAA,UACX,UAAU;AAAA,UACV,WAAW,OAAO,iBAAiB;AAAA,UACnC,gBAAgB;AAAA,QAClB;AAAA,MACF;AACA,UAAI,CAAC,OAAO,iBAAiB,SAAS,MAAM,QAAQ,GAAG;AACrD,eAAO;AAAA,UACL,SAAS;AAAA,UACT,WAAW,CAAC;AAAA,UACZ,WAAW;AAAA,UACX,UAAU;AAAA,UACV,WAAW,OAAO,iBAAiB;AAAA,UACnC,gBAAgB;AAAA,QAClB;AAAA,MACF;AAEA,YAAM,cAAc,6BAA6B,OAAO,MAAM;AAC9D,YAAM,WAAW,cAAc,OAAO,QAAQ,WAAW;AACzD,YAAM,cAAc,IAAI;AACxB,YAAM,eAAe,OAAO,aAAa;AACzC,UAAI,cAAc;AAChB,0BAAkB,OAAO,WAAW;AAAA,MACtC;AACA,YAAM,SAAS,MAAM,IAAI,QAAQ;AACjC,UAAI,gBAAgB,QAAQ;AAC1B,cAAMA,UAA6B;AAAA,UACjC,GAAG,kBAAkB,OAAO,KAAK;AAAA,UACjC,WAAW,KAAK,IAAI,GAAG,IAAI,IAAI,WAAW;AAAA,UAC1C,UAAU;AAAA,QACZ;AACA,QAAAA,QAAO,iBAAiB;AACxB,YAAI,OAAO,oBAAoB;AAC7B,cAAI;AACF,YAAAA,QAAO,iBAAiB,MAAM;AAAA,cAC5B,OAAO;AAAA,cACP;AAAA,cACA;AAAA,cACAA;AAAA,cACA;AAAA,YACF;AAAA,UACF,QAAQ;AACN,YAAAA,QAAO,iBAAiB;AAAA,UAC1B;AAAA,QACF;AACA,eAAOA;AAAA,MACT;AAEA,YAAM,QAAQ;AACd,YAAM,gBAAgB,MAAM,KAAK,OAAO,aAAa,MAAM,UAAU;AACrE,YAAM,eACJ,OAAO,mBAAmB,KAAK,KAAK,kBAChC,MAAM,KAAK,gBAAgB;AAAA,QACzB,YAAY,MAAM;AAAA,QAClB,OAAO;AAAA,QACP,OAAO,OAAO;AAAA,MAChB,CAAC,IACD,CAAC;AACP,YAAM,gBACJ,OAAO,6BAA6B,KAAK,yBACrC,MAAM,KAAK,uBAAuB;AAAA,QAChC,YAAY,MAAM;AAAA,QAClB,OAAO;AAAA,MACT,CAAC,IACD,CAAC;AACP,YAAM,aACJ,OAAO,qBAAqB,KAAK,iBAC7B,MAAM,KAAK,eAAe,MAAM,UAAU,IAC1C;AACN,YAAM,gBACJ,OAAO,uBAAuB,KAAK,oBAC/B,MAAM,KAAK,kBAAkB,MAAM,UAAU,IAC7C;AACN,YAAM,SAAS,wBAAwB;AAAA,QACrC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAED,YAAM,YAAY,KAAK,kBACnB,MAAM,KAAK,gBAAgB;AAAA,QACzB;AAAA,QACA,YAAY,MAAM;AAAA,QAClB,SAAS,MAAM;AAAA,QACf,OAAO,OAAO,iBAAiB;AAAA,QAC/B,WAAW,OAAO;AAAA,QAClB,UAAU,OAAO;AAAA,QACjB,gBAAgB,OAAO;AAAA,MACzB,CAAC,IACD;AAAA,QACE,MAAM;AAAA,QACN,WAAW,OAAO,iBAAiB;AAAA,QACnC,UAAU;AAAA,MACZ;AACJ,YAAM,UAAU;AAAA,QACd,UAAU;AAAA,QACV,OAAO;AAAA,MACT;AACA,YAAM,WAAW,KAAK,wBAAwB,MAAM,UAAU;AAC9D,YAAM,aAAa,UAAU,aAAa,CAAC,GAAG,IAAI,CAAC,UAAU,WAAW;AAAA,QACtE;AAAA,QACA,WAAW,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,CAAC;AAAA,MAChD,EAAE;AACF,YAAM,SAA6B;AAAA,QACjC;AAAA,QACA;AAAA,QACA,WAAW,KAAK,IAAI,GAAG,IAAI,IAAI,KAAK;AAAA,QACpC,UAAU,UAAU,aAAa;AAAA,QACjC,WAAW,UAAU,aAAa,OAAO,iBAAiB;AAAA,QAC1D,gBAAgB;AAAA,MAClB;AACA,UAAI,OAAO,oBAAoB;AAC7B,YAAI;AACF,iBAAO,iBAAiB,MAAM;AAAA,YAC5B,OAAO;AAAA,YACP;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF,QAAQ;AACN,iBAAO,iBAAiB;AAAA,QAC1B;AAAA,MACF;AAEA,UAAI,cAAc;AAChB,cAAM,cAAc,IAAI;AACxB,cAAM,cAAc,kBAAkB,MAAM;AAC5C,oBAAY,iBAAiB;AAC7B,cAAM,IAAI,UAAU;AAAA,UAClB,WAAW,cAAc,OAAO;AAAA,UAChC,OAAO;AAAA,QACT,CAAC;AACD,0BAAkB,KAAK;AAAA,MACzB;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":["result"]}
1
+ {"version":3,"sources":["../src/active-recall.ts"],"sourcesContent":["import { appendFile, mkdir } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { DEFAULT_REASONING_MODEL } from \"./config.js\";\nimport { collapseWhitespace, truncateCodePointSafe } from \"./whitespace.js\";\nimport type {\n ActiveRecallChatType,\n ActiveRecallModelFallbackPolicy,\n ActiveRecallPromptStyle,\n ActiveRecallQueryMode,\n ActiveRecallThinking,\n} from \"./types.js\";\n\nexport interface ActiveRecallTurn {\n role: \"user\" | \"assistant\";\n content: string;\n}\n\nexport interface ActiveRecallInput {\n sessionKey: string;\n agentId: string;\n chatType: ActiveRecallChatType;\n recentTurns: ActiveRecallTurn[];\n currentMessage: string;\n}\n\nexport interface ActiveRecallConfig {\n enabled: boolean;\n agents: string[] | null;\n allowedChatTypes: ActiveRecallChatType[];\n queryMode: ActiveRecallQueryMode;\n promptStyle: ActiveRecallPromptStyle;\n customInstruction: string | null;\n promptReplacement: string | null;\n promptAppend: string | null;\n maxSummaryChars: number;\n recentUserTurns: number;\n recentAssistantTurns: number;\n recentUserChars: number;\n recentAssistantChars: number;\n thinking: ActiveRecallThinking;\n timeoutMs: number;\n cacheTtlMs: number;\n persistTranscripts: boolean;\n transcriptDir: string;\n entityGraphDepth: number;\n includeCausalTrajectories: boolean;\n includeDaySummary: boolean;\n attachRecallExplain: boolean;\n modelOverride: string | null;\n modelFallbackPolicy: ActiveRecallModelFallbackPolicy;\n}\n\nexport interface ActiveRecallResult {\n summary: string | null;\n citations: Array<{ memoryId: string; relevance: number }>;\n latencyMs: number;\n cacheHit: boolean;\n modelUsed: string;\n transcriptPath: string | null;\n}\n\nexport interface ActiveRecallDependencies {\n recall(query: string, sessionKey: string): Promise<string | null>;\n getLastRecallSnapshot?(sessionKey: string): { memoryIds?: string[] } | null;\n walkEntityGraph?(params: {\n sessionKey: string;\n query: string;\n depth: number;\n }): Promise<string[]>;\n loadCausalTrajectories?(params: {\n sessionKey: string;\n query: string;\n }): Promise<string[]>;\n loadDaySummary?(sessionKey: string): Promise<string | null>;\n explainLastRecall?(sessionKey: string): Promise<string | null>;\n generateSummary?(params: {\n prompt: string;\n sessionKey: string;\n agentId: string;\n model: string;\n timeoutMs: number;\n thinking: ActiveRecallThinking;\n fallbackPolicy: ActiveRecallModelFallbackPolicy;\n }): Promise<{ text: string | null; modelUsed?: string; cacheHit?: boolean }>;\n now?: () => number;\n}\n\ninterface CachedRecallResult {\n expiresAt: number;\n value: ActiveRecallResult;\n}\n\ninterface ActiveRecallTurnWithIndex {\n index: number;\n role: ActiveRecallTurn[\"role\"];\n content: string;\n}\n\nconst ACTIVE_RECALL_CACHE_MAX_ENTRIES = 256;\n\nconst NONE_SET = new Set([\n \"\",\n \"none\",\n \"no_reply\",\n \"nothing useful\",\n \"no relevant memory\",\n \"timeout\",\n \"[]\",\n \"{}\",\n \"null\",\n \"n/a\",\n]);\n\nconst STYLE_INSTRUCTIONS: Record<ActiveRecallPromptStyle, string> = {\n balanced: \"Summarize the most relevant memory context in a compact, neutral way.\",\n strict: \"Only include memory that is directly supported by the retrieved context.\",\n contextual: \"Prefer concise context that helps the next reply stay grounded in recent work.\",\n \"recall-heavy\": \"Bias toward richer recall coverage when multiple retrieved items reinforce each other.\",\n \"precision-heavy\": \"Bias toward precision. Omit anything uncertain or weakly supported.\",\n \"preference-only\": \"Only surface user preference or operating-style memory when present.\",\n};\n\nfunction cloneRecallResult(value: ActiveRecallResult): ActiveRecallResult {\n return {\n ...value,\n citations: [...value.citations],\n };\n}\n\nfunction buildCacheKey(input: ActiveRecallInput, config: ActiveRecallConfig, queryBundle: string): string {\n return JSON.stringify({\n sessionKey: input.sessionKey,\n agentId: input.agentId,\n queryMode: config.queryMode,\n promptStyle: config.promptStyle,\n customInstruction: config.customInstruction,\n promptReplacement: config.promptReplacement,\n promptAppend: config.promptAppend,\n maxSummaryChars: config.maxSummaryChars,\n entityGraphDepth: config.entityGraphDepth,\n includeCausalTrajectories: config.includeCausalTrajectories,\n includeDaySummary: config.includeDaySummary,\n attachRecallExplain: config.attachRecallExplain,\n modelOverride: config.modelOverride,\n modelFallbackPolicy: config.modelFallbackPolicy,\n thinking: config.thinking,\n queryBundle,\n });\n}\n\nfunction pruneExpiredCache(\n cache: Map<string, CachedRecallResult>,\n currentTime: number,\n): void {\n for (const [key, entry] of cache.entries()) {\n if (entry.expiresAt <= currentTime) {\n cache.delete(key);\n }\n }\n}\n\nfunction enforceCacheLimit(cache: Map<string, CachedRecallResult>): void {\n while (cache.size > ACTIVE_RECALL_CACHE_MAX_ENTRIES) {\n const oldestKey = cache.keys().next().value;\n if (typeof oldestKey !== \"string\") {\n break;\n }\n cache.delete(oldestKey);\n }\n}\n\nfunction cropTurns(\n turns: ActiveRecallTurn[],\n role: \"user\" | \"assistant\",\n maxTurns: number,\n maxChars: number,\n): ActiveRecallTurnWithIndex[] {\n if (maxTurns <= 0) {\n return [];\n }\n\n const selected: ActiveRecallTurnWithIndex[] = [];\n for (let index = turns.length - 1; index >= 0 && selected.length < maxTurns; index -= 1) {\n const turn = turns[index];\n if (turn?.role === role) {\n selected.push({\n index,\n role: turn.role,\n content: collapseWhitespace(truncateCodePointSafe(turn.content, maxChars)),\n });\n }\n }\n\n return selected.reverse();\n}\n\nfunction mergeChronologicalTurns(\n userTurns: ActiveRecallTurnWithIndex[],\n assistantTurns: ActiveRecallTurnWithIndex[],\n): ActiveRecallTurnWithIndex[] {\n return [...userTurns, ...assistantTurns]\n .sort((left, right) => left.index - right.index)\n .filter((value) => value.content.length > 0);\n}\n\nexport function buildActiveRecallQueryBundle(\n input: ActiveRecallInput,\n config: ActiveRecallConfig,\n): string {\n if (config.queryMode === \"message\") {\n return collapseWhitespace(input.currentMessage);\n }\n\n const userTurns = cropTurns(\n input.recentTurns,\n \"user\",\n config.recentUserTurns,\n config.recentUserChars,\n );\n const assistantTurns = cropTurns(\n input.recentTurns,\n \"assistant\",\n config.recentAssistantTurns,\n config.recentAssistantChars,\n );\n const mergedTurns = mergeChronologicalTurns(userTurns, assistantTurns);\n\n const parts = [\n ...mergedTurns.map((turn) => `${turn.role}: ${turn.content}`),\n ];\n\n if (config.queryMode === \"full\") {\n return [...parts, `current: ${collapseWhitespace(input.currentMessage)}`]\n .filter((value) => value.trim().length > 0)\n .join(\"\\n\");\n }\n\n return [`current: ${collapseWhitespace(input.currentMessage)}`, ...parts]\n .filter((value) => value.trim().length > 0)\n .join(\"\\n\");\n}\n\nexport function normalizeActiveRecallSummary(value: string | null, maxChars: number): string | null {\n if (value == null) return null;\n const compact = collapseWhitespace(value);\n if (NONE_SET.has(compact.toLowerCase())) return null;\n return truncateCodePointSafe(compact, maxChars);\n}\n\nfunction sanitizeTranscriptPathSegment(value: string): string {\n const normalized = collapseWhitespace(value);\n return encodeURIComponent(normalized.length > 0 ? normalized : \"unknown\").replaceAll(\n \".\",\n \"%2E\",\n );\n}\n\nexport function buildActiveRecallPrompt(params: {\n config: ActiveRecallConfig;\n queryBundle: string;\n recallContext: string | null;\n graphContext: string[];\n causalContext: string[];\n daySummary: string | null;\n recallExplain: string | null;\n}): string {\n const promptReplacement = params.config.promptReplacement?.trim();\n if (promptReplacement) {\n return promptReplacement;\n }\n\n const sections = [\n params.config.customInstruction?.trim() || STYLE_INSTRUCTIONS[params.config.promptStyle],\n `Query bundle:\\n${params.queryBundle}`,\n params.recallContext ? `Retrieved memory:\\n${params.recallContext}` : null,\n params.graphContext.length > 0 ? `Entity graph:\\n${params.graphContext.join(\"\\n\")}` : null,\n params.causalContext.length > 0 ? `Causal trajectories:\\n${params.causalContext.join(\"\\n\")}` : null,\n params.daySummary ? `Day summary:\\n${params.daySummary}` : null,\n params.recallExplain ? `Recall explain:\\n${params.recallExplain}` : null,\n params.config.promptAppend?.trim() || null,\n \"Return either NONE or a compact summary grounded only in the supplied context.\",\n ];\n return sections.filter((value): value is string => !!value && value.trim().length > 0).join(\"\\n\\n\");\n}\n\nasync function appendActiveRecallTranscript(\n transcriptRoot: string,\n input: ActiveRecallInput,\n config: ActiveRecallConfig,\n result: ActiveRecallResult,\n queryBundle: string,\n): Promise<string> {\n const date = new Date().toISOString().slice(0, 10);\n const filePath = path.join(\n transcriptRoot,\n \"agents\",\n sanitizeTranscriptPathSegment(input.agentId),\n date,\n `${sanitizeTranscriptPathSegment(input.sessionKey)}.jsonl`,\n );\n await mkdir(path.dirname(filePath), { recursive: true });\n await appendFile(\n filePath,\n `${JSON.stringify({\n ts: new Date().toISOString(),\n sessionKey: input.sessionKey,\n agentId: input.agentId,\n queryMode: config.queryMode,\n promptStyle: config.promptStyle,\n queryBundle,\n summary: result.summary,\n citations: result.citations,\n latencyMs: result.latencyMs,\n cacheHit: result.cacheHit,\n modelUsed: result.modelUsed,\n })}\\n`,\n \"utf8\",\n );\n return filePath;\n}\n\nexport function createActiveRecallEngine(\n deps: ActiveRecallDependencies,\n config: ActiveRecallConfig,\n) {\n const cache = new Map<string, CachedRecallResult>();\n const now = deps.now ?? (() => Date.now());\n\n return {\n async run(input: ActiveRecallInput): Promise<ActiveRecallResult> {\n if (!config.enabled) {\n return {\n summary: null,\n citations: [],\n latencyMs: 0,\n cacheHit: false,\n modelUsed: config.modelOverride ?? \"disabled\",\n transcriptPath: null,\n };\n }\n if (config.agents && !config.agents.includes(input.agentId)) {\n return {\n summary: null,\n citations: [],\n latencyMs: 0,\n cacheHit: false,\n modelUsed: config.modelOverride ?? \"filtered\",\n transcriptPath: null,\n };\n }\n if (!config.allowedChatTypes.includes(input.chatType)) {\n return {\n summary: null,\n citations: [],\n latencyMs: 0,\n cacheHit: false,\n modelUsed: config.modelOverride ?? \"filtered\",\n transcriptPath: null,\n };\n }\n\n const queryBundle = buildActiveRecallQueryBundle(input, config);\n const cacheKey = buildCacheKey(input, config, queryBundle);\n const currentTime = now();\n const cacheEnabled = config.cacheTtlMs > 0;\n if (cacheEnabled) {\n pruneExpiredCache(cache, currentTime);\n }\n const cached = cache.get(cacheKey);\n if (cacheEnabled && cached) {\n const result: ActiveRecallResult = {\n ...cloneRecallResult(cached.value),\n latencyMs: Math.max(0, now() - currentTime),\n cacheHit: true,\n };\n result.transcriptPath = null;\n if (config.persistTranscripts) {\n try {\n result.transcriptPath = await appendActiveRecallTranscript(\n config.transcriptDir,\n input,\n config,\n result,\n queryBundle,\n );\n } catch {\n result.transcriptPath = null;\n }\n }\n return result;\n }\n\n const start = currentTime;\n const recallContext = await deps.recall(queryBundle, input.sessionKey);\n const graphContext =\n config.entityGraphDepth > 0 && deps.walkEntityGraph\n ? await deps.walkEntityGraph({\n sessionKey: input.sessionKey,\n query: queryBundle,\n depth: config.entityGraphDepth,\n })\n : [];\n const causalContext =\n config.includeCausalTrajectories && deps.loadCausalTrajectories\n ? await deps.loadCausalTrajectories({\n sessionKey: input.sessionKey,\n query: queryBundle,\n })\n : [];\n const daySummary =\n config.includeDaySummary && deps.loadDaySummary\n ? await deps.loadDaySummary(input.sessionKey)\n : null;\n const recallExplain =\n config.attachRecallExplain && deps.explainLastRecall\n ? await deps.explainLastRecall(input.sessionKey)\n : null;\n const prompt = buildActiveRecallPrompt({\n config,\n queryBundle,\n recallContext,\n graphContext,\n causalContext,\n daySummary,\n recallExplain,\n });\n\n const generated = deps.generateSummary\n ? await deps.generateSummary({\n prompt,\n sessionKey: input.sessionKey,\n agentId: input.agentId,\n model: config.modelOverride ?? DEFAULT_REASONING_MODEL,\n timeoutMs: config.timeoutMs,\n thinking: config.thinking,\n fallbackPolicy: config.modelFallbackPolicy,\n })\n : {\n text: recallContext,\n modelUsed: config.modelOverride ?? DEFAULT_REASONING_MODEL,\n cacheHit: false,\n };\n const summary = normalizeActiveRecallSummary(\n generated.text,\n config.maxSummaryChars,\n );\n const snapshot = deps.getLastRecallSnapshot?.(input.sessionKey);\n const citations = (snapshot?.memoryIds ?? []).map((memoryId, index) => ({\n memoryId,\n relevance: Number((1 / (index + 1)).toFixed(3)),\n }));\n const result: ActiveRecallResult = {\n summary,\n citations,\n latencyMs: Math.max(0, now() - start),\n cacheHit: generated.cacheHit === true,\n modelUsed: generated.modelUsed ?? config.modelOverride ?? DEFAULT_REASONING_MODEL,\n transcriptPath: null,\n };\n if (config.persistTranscripts) {\n try {\n result.transcriptPath = await appendActiveRecallTranscript(\n config.transcriptDir,\n input,\n config,\n result,\n queryBundle,\n );\n } catch {\n result.transcriptPath = null;\n }\n }\n\n if (cacheEnabled) {\n const completedAt = now();\n const cachedValue = cloneRecallResult(result);\n cachedValue.transcriptPath = null;\n cache.set(cacheKey, {\n expiresAt: completedAt + config.cacheTtlMs,\n value: cachedValue,\n });\n enforceCacheLimit(cache);\n }\n return result;\n },\n };\n}\n"],"mappings":"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","names":["result"]}
@@ -1,8 +1,9 @@
1
- import { a8 as ActivitySnapshot, a9 as ActivityDayMeta, aa as ActivityDayDigest } from '../types-igV4-sbB.js';
1
+ import { a8 as ActivitySnapshot, a9 as ActivityDayMeta, aa as ActivityDayDigest } from '../types-BGxTvLBO.js';
2
2
  import '../message-parts/index.js';
3
3
  import '../bounded-jsonl-state.js';
4
4
  import '../operator-doctor-types.js';
5
5
  import '../external-wiki-config.js';
6
+ import '../recall-state-view.js';
6
7
  import '../contradiction-config.js';
7
8
  import '../graph-path-scoring-config.js';
8
9
  import '../deep-recall-config.js';
@@ -1,6 +1,51 @@
1
- export { AdapterContext, EngramAdapter, ResolvedIdentity } from './types.js';
1
+ import { EngramAdapter, AdapterContext, ResolvedIdentity } from './types.js';
2
2
  export { ClaudeCodeAdapter } from './claude-code.js';
3
3
  export { CodexAdapter } from './codex.js';
4
4
  export { ReplitAdapter } from './replit.js';
5
5
  export { HermesAdapter } from './hermes.js';
6
6
  export { AdapterRegistry } from './registry.js';
7
+
8
+ /**
9
+ * Grok adapter.
10
+ *
11
+ * Detection: Grok clients identify themselves with a clientInfo name
12
+ * containing "grok" in the MCP initialize handshake, and send
13
+ * User-Agent: grok/<version> on HTTP requests. The exact clientInfo
14
+ * name is not yet stable across Grok surfaces (desktop app, CLI), so
15
+ * detection uses a contains-match for forward compatibility.
16
+ *
17
+ * User-configured identification is also supported via headers:
18
+ * "headers": { "X-Engram-Client-Id": "grok" }
19
+ *
20
+ * Principal overrides are intentionally handled only by the HTTP server's
21
+ * trustPrincipalHeader gate. Adapters must not independently trust
22
+ * X-Engram-Principal.
23
+ */
24
+ declare class GrokAdapter implements EngramAdapter {
25
+ readonly id = "grok";
26
+ matches(context: AdapterContext): boolean;
27
+ resolveIdentity(context: AdapterContext): ResolvedIdentity;
28
+ }
29
+
30
+ /**
31
+ * OpenCode adapter.
32
+ *
33
+ * Detection: OpenCode identifies itself as "opencode" in the MCP
34
+ * clientInfo of its initialize handshake, and sends
35
+ * User-Agent: opencode/<version> on HTTP requests.
36
+ *
37
+ * User-configured identification is also supported via headers in the
38
+ * OpenCode MCP server config:
39
+ * "headers": { "X-Engram-Client-Id": "opencode" }
40
+ *
41
+ * Principal overrides are intentionally handled only by the HTTP server's
42
+ * trustPrincipalHeader gate. Adapters must not independently trust
43
+ * X-Engram-Principal.
44
+ */
45
+ declare class OpenCodeAdapter implements EngramAdapter {
46
+ readonly id = "opencode";
47
+ matches(context: AdapterContext): boolean;
48
+ resolveIdentity(context: AdapterContext): ResolvedIdentity;
49
+ }
50
+
51
+ export { AdapterContext, EngramAdapter, GrokAdapter, OpenCodeAdapter, ResolvedIdentity };
@@ -1,7 +1,12 @@
1
- import "../chunk-SEDEKFYQ.js";
1
+ import "../chunk-XW2T4QAW.js";
2
2
  import {
3
- AdapterRegistry
4
- } from "../chunk-2QSZNTDO.js";
3
+ AdapterRegistry,
4
+ GrokAdapter,
5
+ OpenCodeAdapter
6
+ } from "../chunk-Q4AUIFUA.js";
7
+ import {
8
+ ClaudeCodeAdapter
9
+ } from "../chunk-J64TK33U.js";
5
10
  import {
6
11
  CodexAdapter
7
12
  } from "../chunk-RSUYKGGZ.js";
@@ -11,16 +16,15 @@ import {
11
16
  import {
12
17
  ReplitAdapter
13
18
  } from "../chunk-TMSXWOBZ.js";
14
- import {
15
- ClaudeCodeAdapter
16
- } from "../chunk-J64TK33U.js";
17
19
  import "../chunk-7RXCMVFQ.js";
18
20
  import "../chunk-PZ5AY32C.js";
19
21
  export {
20
22
  AdapterRegistry,
21
23
  ClaudeCodeAdapter,
22
24
  CodexAdapter,
25
+ GrokAdapter,
23
26
  HermesAdapter,
27
+ OpenCodeAdapter,
24
28
  ReplitAdapter
25
29
  };
26
30
  //# sourceMappingURL=index.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  AdapterRegistry
3
- } from "../chunk-2QSZNTDO.js";
3
+ } from "../chunk-Q4AUIFUA.js";
4
+ import "../chunk-J64TK33U.js";
4
5
  import "../chunk-RSUYKGGZ.js";
5
6
  import "../chunk-42NQ7AVG.js";
6
7
  import "../chunk-TMSXWOBZ.js";
7
- import "../chunk-J64TK33U.js";
8
8
  import "../chunk-7RXCMVFQ.js";
9
9
  import "../chunk-PZ5AY32C.js";
10
10
  export {
@@ -1,8 +1,9 @@
1
- import { ab as ExtractionResult } from './types-igV4-sbB.js';
1
+ import { ab as ExtractionResult } from './types-BGxTvLBO.js';
2
2
  import './message-parts/index.js';
3
3
  import './bounded-jsonl-state.js';
4
4
  import './operator-doctor-types.js';
5
5
  import './external-wiki-config.js';
6
+ import './recall-state-view.js';
6
7
  import './contradiction-config.js';
7
8
  import './graph-path-scoring-config.js';
8
9
  import './deep-recall-config.js';
@@ -1,8 +1,9 @@
1
- import { M as MemoryFile } from './types-igV4-sbB.js';
1
+ import { M as MemoryFile } from './types-BGxTvLBO.js';
2
2
  import './message-parts/index.js';
3
3
  import './bounded-jsonl-state.js';
4
4
  import './operator-doctor-types.js';
5
5
  import './external-wiki-config.js';
6
+ import './recall-state-view.js';
6
7
  import './contradiction-config.js';
7
8
  import './graph-path-scoring-config.js';
8
9
  import './deep-recall-config.js';
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  dateInTimezone,
3
3
  defaultTimezone
4
- } from "./chunk-YQAXP5AC.js";
5
- import "./chunk-JT3EB7ZL.js";
4
+ } from "./chunk-YXLUTALO.js";
5
+ import "./chunk-BNGHPYZU.js";
6
6
  import "./chunk-UOBPK2OS.js";
7
7
  import "./chunk-CIO7GCWE.js";
8
8
  import "./chunk-7CBKAQIG.js";
@@ -12,18 +12,18 @@ import {
12
12
  describeErrorForOperator
13
13
  } from "./chunk-V7IZKJI3.js";
14
14
  import "./chunk-UHVXE24Y.js";
15
- import "./chunk-3QQTXYZ6.js";
16
- import "./chunk-BT7NVCML.js";
17
- import "./chunk-TLPZ6MKZ.js";
15
+ import "./chunk-YEN4TREG.js";
18
16
  import "./chunk-I55KAVET.js";
19
17
  import "./chunk-L2EXJQJP.js";
20
18
  import "./chunk-45GF7Y3V.js";
21
- import "./chunk-RGMVMVMF.js";
22
- import "./chunk-N7RWREIQ.js";
19
+ import "./chunk-65RENJGB.js";
23
20
  import "./chunk-QDW3E4RD.js";
24
- import "./chunk-VYCOJKSX.js";
21
+ import "./chunk-RGMVMVMF.js";
25
22
  import "./chunk-YCVB7X56.js";
26
23
  import "./chunk-RL6NEVXT.js";
24
+ import "./chunk-LSLCFCCQ.js";
25
+ import "./chunk-BT7NVCML.js";
26
+ import "./chunk-VYCOJKSX.js";
27
27
  import "./chunk-NB3LRY4T.js";
28
28
  import "./chunk-5FVVY2EB.js";
29
29
  import "./chunk-FFAZ2XFU.js";
@@ -32,6 +32,7 @@ import "./chunk-5GKPFL3S.js";
32
32
  import "./chunk-JAKIDQB2.js";
33
33
  import "./chunk-P7FMDTKL.js";
34
34
  import "./chunk-JUOZ62Y7.js";
35
+ import "./chunk-ZEFVK7XC.js";
35
36
  import "./chunk-6KH5NLQS.js";
36
37
  import "./chunk-P2QRMMVQ.js";
37
38
  import "./chunk-JN72EPOE.js";
@@ -90,4 +91,4 @@ function startWearablesAutoSync(settings, deps) {
90
91
  export {
91
92
  startWearablesAutoSync
92
93
  };
93
- //# sourceMappingURL=auto-sync-NSHLUAQI.js.map
94
+ //# sourceMappingURL=auto-sync-4YFATLFQ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/wearables/auto-sync.ts"],"sourcesContent":["/**\n * Wearables auto-sync — in-process periodic transcript refresh.\n *\n * Every tick re-syncs a short rolling window ending today for ALL\n * enabled sources, so the current day's transcript keeps growing while\n * the wearable records and provider-side revisions of recent days flow\n * in without operator action. Once per local day the window deepens to\n * `autoSyncDeepDays` to pick up late uploads and provider reprocessing\n * further back (phones syncing hours later, re-diarized transcripts).\n *\n * Day fetches are unconditional within the window — existing day files\n * are always re-fetched and re-composed; the content-hash skip in the\n * pipeline keeps unchanged days write-free, so a tick on a quiet day\n * is read-only. The timer is unref'd: it never keeps a one-shot CLI\n * process alive, and long-lived hosts stop it via the returned handle.\n */\n\nimport { describeErrorForOperator } from \"./errors.js\";\nimport { dateInTimezone, defaultTimezone } from \"./pipeline.js\";\n\nexport interface WearablesAutoSyncSettings {\n /** Minutes between ticks. */\n intervalMinutes: number;\n /** Rolling window (days ending today) refreshed on a normal tick. */\n days: number;\n /**\n * Window for the once-per-local-day deep pass. 0 disables the deep\n * pass; otherwise must be >= `days` (validated at config parse).\n */\n deepDays: number;\n /** IANA timezone used to detect the local-day rollover. */\n timezone?: string;\n}\n\nexport interface WearablesAutoSyncDeps {\n /** Run a sync across all enabled sources (WearablesService.sync). */\n sync(options: { days: number; signal?: AbortSignal }): Promise<unknown>;\n log: { info(message: string): void; warn(message: string): void };\n /** Clock injection for tests. */\n now?: () => Date;\n}\n\nexport interface WearablesAutoSyncHandle {\n /** Run one scheduler tick now (first-run hook and test seam). */\n tick(): Promise<void>;\n /**\n * Stop the scheduler: clears the timer, aborts the in-flight sync's\n * provider fetches via AbortSignal, and resolves once the in-flight\n * tick has fully settled — after `await stop()` nothing is writing\n * or reindexing anymore. The handle is single-use; a restarted host\n * starts a fresh one.\n */\n stop(): Promise<void>;\n}\n\n/**\n * Start the periodic refresh. The first tick fires after one full\n * interval rather than at start — gateways on low-power hardware can\n * restart-loop during setup (issue #462), and an immediate fetch on\n * every restart would hammer provider APIs. Operators who want an\n * instant refresh run `wearables sync` (or call `tick()`).\n */\nexport function startWearablesAutoSync(\n settings: WearablesAutoSyncSettings,\n deps: WearablesAutoSyncDeps,\n): WearablesAutoSyncHandle {\n let inFlight: Promise<void> | null = null;\n let stopped = false;\n let lastDeepDate: string | null = null;\n // Aborting cancels the in-flight sync's provider fetches promptly on\n // shutdown — without it, a slow tick would keep writing/reindexing\n // after orchestrator.destroy() while a restarted host starts a\n // second scheduler (Kilo review on PR #1464).\n const abortController = new AbortController();\n\n const tick = async (): Promise<void> => {\n // Overlap guard: a slow provider or large deep window must never\n // stack a second sync on top of a running one. The skipped call\n // resolves immediately — it must NOT await the running tick, or a\n // caller holding both promises could deadlock itself.\n if (inFlight || stopped) return;\n const run = (async () => {\n try {\n const now = deps.now ? deps.now() : new Date();\n const today = dateInTimezone(now, settings.timezone ?? defaultTimezone());\n const deep = settings.deepDays > 0 && lastDeepDate !== today;\n const days = deep ? settings.deepDays : settings.days;\n await deps.sync({ days, signal: abortController.signal });\n // Mark the deep pass done only AFTER it succeeded — a failed\n // deep pass retries on the next tick instead of silently\n // waiting for tomorrow (CLAUDE.md rule 25's \"confirm before\n // consuming the one-shot\" shape).\n if (deep) lastDeepDate = today;\n deps.log.info(\n `wearables auto-sync: refreshed ${days}-day window${deep ? \" (daily deep pass)\" : \"\"}`,\n );\n } catch (err) {\n // An abort raised by stop() is intentional shutdown, not a\n // failure — warning about it would be noise in every clean\n // shutdown log.\n if (!stopped) {\n deps.log.warn(\n `wearables auto-sync failed: ${describeErrorForOperator(err)} — retrying on the next tick`,\n );\n }\n } finally {\n inFlight = null;\n }\n })();\n inFlight = run;\n await run;\n };\n\n const timer = setInterval(() => {\n void tick();\n }, settings.intervalMinutes * 60_000);\n timer.unref?.();\n\n return {\n tick,\n stop: async () => {\n stopped = true;\n clearInterval(timer);\n abortController.abort();\n // tick() never rejects (all paths caught), so this only waits.\n if (inFlight) await inFlight;\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DO,SAAS,uBACd,UACA,MACyB;AACzB,MAAI,WAAiC;AACrC,MAAI,UAAU;AACd,MAAI,eAA8B;AAKlC,QAAM,kBAAkB,IAAI,gBAAgB;AAE5C,QAAM,OAAO,YAA2B;AAKtC,QAAI,YAAY,QAAS;AACzB,UAAM,OAAO,YAAY;AACvB,UAAI;AACF,cAAM,MAAM,KAAK,MAAM,KAAK,IAAI,IAAI,oBAAI,KAAK;AAC7C,cAAM,QAAQ,eAAe,KAAK,SAAS,YAAY,gBAAgB,CAAC;AACxE,cAAM,OAAO,SAAS,WAAW,KAAK,iBAAiB;AACvD,cAAM,OAAO,OAAO,SAAS,WAAW,SAAS;AACjD,cAAM,KAAK,KAAK,EAAE,MAAM,QAAQ,gBAAgB,OAAO,CAAC;AAKxD,YAAI,KAAM,gBAAe;AACzB,aAAK,IAAI;AAAA,UACP,kCAAkC,IAAI,cAAc,OAAO,uBAAuB,EAAE;AAAA,QACtF;AAAA,MACF,SAAS,KAAK;AAIZ,YAAI,CAAC,SAAS;AACZ,eAAK,IAAI;AAAA,YACP,+BAA+B,yBAAyB,GAAG,CAAC;AAAA,UAC9D;AAAA,QACF;AAAA,MACF,UAAE;AACA,mBAAW;AAAA,MACb;AAAA,IACF,GAAG;AACH,eAAW;AACX,UAAM;AAAA,EACR;AAEA,QAAM,QAAQ,YAAY,MAAM;AAC9B,SAAK,KAAK;AAAA,EACZ,GAAG,SAAS,kBAAkB,GAAM;AACpC,QAAM,QAAQ;AAEd,SAAO;AAAA,IACL;AAAA,IACA,MAAM,YAAY;AAChB,gBAAU;AACV,oBAAc,KAAK;AACnB,sBAAgB,MAAM;AAEtB,UAAI,SAAU,OAAM;AAAA,IACtB;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/wearables/auto-sync.ts"],"sourcesContent":["/**\n * Wearables auto-sync — in-process periodic transcript refresh.\n *\n * Every tick re-syncs a short rolling window ending today for ALL\n * enabled sources, so the current day's transcript keeps growing while\n * the wearable records and provider-side revisions of recent days flow\n * in without operator action. Once per local day the window deepens to\n * `autoSyncDeepDays` to pick up late uploads and provider reprocessing\n * further back (phones syncing hours later, re-diarized transcripts).\n *\n * Day fetches are unconditional within the window — existing day files\n * are always re-fetched and re-composed; the content-hash skip in the\n * pipeline keeps unchanged days write-free, so a tick on a quiet day\n * is read-only. The timer is unref'd: it never keeps a one-shot CLI\n * process alive, and long-lived hosts stop it via the returned handle.\n */\n\nimport { describeErrorForOperator } from \"./errors.js\";\nimport { dateInTimezone, defaultTimezone } from \"./pipeline.js\";\n\nexport interface WearablesAutoSyncSettings {\n /** Minutes between ticks. */\n intervalMinutes: number;\n /** Rolling window (days ending today) refreshed on a normal tick. */\n days: number;\n /**\n * Window for the once-per-local-day deep pass. 0 disables the deep\n * pass; otherwise must be >= `days` (validated at config parse).\n */\n deepDays: number;\n /** IANA timezone used to detect the local-day rollover. */\n timezone?: string;\n}\n\nexport interface WearablesAutoSyncDeps {\n /** Run a sync across all enabled sources (WearablesService.sync). */\n sync(options: { days: number; signal?: AbortSignal }): Promise<unknown>;\n log: { info(message: string): void; warn(message: string): void };\n /** Clock injection for tests. */\n now?: () => Date;\n}\n\nexport interface WearablesAutoSyncHandle {\n /** Run one scheduler tick now (first-run hook and test seam). */\n tick(): Promise<void>;\n /**\n * Stop the scheduler: clears the timer, aborts the in-flight sync's\n * provider fetches via AbortSignal, and resolves once the in-flight\n * tick has fully settled — after `await stop()` nothing is writing\n * or reindexing anymore. The handle is single-use; a restarted host\n * starts a fresh one.\n */\n stop(): Promise<void>;\n}\n\n/**\n * Start the periodic refresh. The first tick fires after one full\n * interval rather than at start — gateways on low-power hardware can\n * restart-loop during setup (issue #462), and an immediate fetch on\n * every restart would hammer provider APIs. Operators who want an\n * instant refresh run `wearables sync` (or call `tick()`).\n */\nexport function startWearablesAutoSync(\n settings: WearablesAutoSyncSettings,\n deps: WearablesAutoSyncDeps,\n): WearablesAutoSyncHandle {\n let inFlight: Promise<void> | null = null;\n let stopped = false;\n let lastDeepDate: string | null = null;\n // Aborting cancels the in-flight sync's provider fetches promptly on\n // shutdown — without it, a slow tick would keep writing/reindexing\n // after orchestrator.destroy() while a restarted host starts a\n // second scheduler (Kilo review on PR #1464).\n const abortController = new AbortController();\n\n const tick = async (): Promise<void> => {\n // Overlap guard: a slow provider or large deep window must never\n // stack a second sync on top of a running one. The skipped call\n // resolves immediately — it must NOT await the running tick, or a\n // caller holding both promises could deadlock itself.\n if (inFlight || stopped) return;\n const run = (async () => {\n try {\n const now = deps.now ? deps.now() : new Date();\n const today = dateInTimezone(now, settings.timezone ?? defaultTimezone());\n const deep = settings.deepDays > 0 && lastDeepDate !== today;\n const days = deep ? settings.deepDays : settings.days;\n await deps.sync({ days, signal: abortController.signal });\n // Mark the deep pass done only AFTER it succeeded — a failed\n // deep pass retries on the next tick instead of silently\n // waiting for tomorrow (CLAUDE.md rule 25's \"confirm before\n // consuming the one-shot\" shape).\n if (deep) lastDeepDate = today;\n deps.log.info(\n `wearables auto-sync: refreshed ${days}-day window${deep ? \" (daily deep pass)\" : \"\"}`,\n );\n } catch (err) {\n // An abort raised by stop() is intentional shutdown, not a\n // failure — warning about it would be noise in every clean\n // shutdown log.\n if (!stopped) {\n deps.log.warn(\n `wearables auto-sync failed: ${describeErrorForOperator(err)} — retrying on the next tick`,\n );\n }\n } finally {\n inFlight = null;\n }\n })();\n inFlight = run;\n await run;\n };\n\n const timer = setInterval(() => {\n void tick();\n }, settings.intervalMinutes * 60_000);\n timer.unref?.();\n\n return {\n tick,\n stop: async () => {\n stopped = true;\n clearInterval(timer);\n abortController.abort();\n // tick() never rejects (all paths caught), so this only waits.\n if (inFlight) await inFlight;\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DO,SAAS,uBACd,UACA,MACyB;AACzB,MAAI,WAAiC;AACrC,MAAI,UAAU;AACd,MAAI,eAA8B;AAKlC,QAAM,kBAAkB,IAAI,gBAAgB;AAE5C,QAAM,OAAO,YAA2B;AAKtC,QAAI,YAAY,QAAS;AACzB,UAAM,OAAO,YAAY;AACvB,UAAI;AACF,cAAM,MAAM,KAAK,MAAM,KAAK,IAAI,IAAI,oBAAI,KAAK;AAC7C,cAAM,QAAQ,eAAe,KAAK,SAAS,YAAY,gBAAgB,CAAC;AACxE,cAAM,OAAO,SAAS,WAAW,KAAK,iBAAiB;AACvD,cAAM,OAAO,OAAO,SAAS,WAAW,SAAS;AACjD,cAAM,KAAK,KAAK,EAAE,MAAM,QAAQ,gBAAgB,OAAO,CAAC;AAKxD,YAAI,KAAM,gBAAe;AACzB,aAAK,IAAI;AAAA,UACP,kCAAkC,IAAI,cAAc,OAAO,uBAAuB,EAAE;AAAA,QACtF;AAAA,MACF,SAAS,KAAK;AAIZ,YAAI,CAAC,SAAS;AACZ,eAAK,IAAI;AAAA,YACP,+BAA+B,yBAAyB,GAAG,CAAC;AAAA,UAC9D;AAAA,QACF;AAAA,MACF,UAAE;AACA,mBAAW;AAAA,MACb;AAAA,IACF,GAAG;AACH,eAAW;AACX,UAAM;AAAA,EACR;AAEA,QAAM,QAAQ,YAAY,MAAM;AAC9B,SAAK,KAAK;AAAA,EACZ,GAAG,SAAS,kBAAkB,GAAM;AACpC,QAAM,QAAQ;AAEd,SAAO;AAAA,IACL;AAAA,IACA,MAAM,YAAY;AAChB,gBAAU;AACV,oBAAc,KAAK;AACnB,sBAAgB,MAAM;AAEtB,UAAI,SAAU,OAAM;AAAA,IACtB;AAAA,EACF;AACF;","names":[]}
@@ -1,8 +1,9 @@
1
- import { ac as BehaviorSignalEvent, P as PluginConfig, t as BehaviorLoopPolicyState } from './types-igV4-sbB.js';
1
+ import { ac as BehaviorSignalEvent, P as PluginConfig, t as BehaviorLoopPolicyState } from './types-BGxTvLBO.js';
2
2
  import './message-parts/index.js';
3
3
  import './bounded-jsonl-state.js';
4
4
  import './operator-doctor-types.js';
5
5
  import './external-wiki-config.js';
6
+ import './recall-state-view.js';
6
7
  import './contradiction-config.js';
7
8
  import './graph-path-scoring-config.js';
8
9
  import './deep-recall-config.js';
@@ -1,8 +1,9 @@
1
- import { y as MemoryCategory, ac as BehaviorSignalEvent } from './types-igV4-sbB.js';
1
+ import { u as MemoryCategory, ac as BehaviorSignalEvent } from './types-BGxTvLBO.js';
2
2
  import './message-parts/index.js';
3
3
  import './bounded-jsonl-state.js';
4
4
  import './operator-doctor-types.js';
5
5
  import './external-wiki-config.js';
6
+ import './recall-state-view.js';
6
7
  import './contradiction-config.js';
7
8
  import './graph-path-scoring-config.js';
8
9
  import './deep-recall-config.js';
@@ -1,9 +1,10 @@
1
- import { P as PluginConfig } from './types-igV4-sbB.js';
2
- import { O as Orchestrator } from './orchestrator-CvCsp1tz.js';
1
+ import { P as PluginConfig } from './types-BGxTvLBO.js';
2
+ import { O as Orchestrator } from './orchestrator-BUd_3Q86.js';
3
3
  import './message-parts/index.js';
4
4
  import './bounded-jsonl-state.js';
5
5
  import './operator-doctor-types.js';
6
6
  import './external-wiki-config.js';
7
+ import './recall-state-view.js';
7
8
  import './contradiction-config.js';
8
9
  import './graph-path-scoring-config.js';
9
10
  import './deep-recall-config.js';
@@ -17,7 +18,7 @@ import './utils/serialize-mutations.js';
17
18
  import './search/port.js';
18
19
  import './included-memories.js';
19
20
  import './briefing.js';
20
- import './storage-BBLLuVTF.js';
21
+ import './storage-CU_hZUgP.js';
21
22
  import './corpus-read-cancellation.js';
22
23
  import './artifact-search.js';
23
24
  import './active-context-transform.js';
@@ -40,8 +41,8 @@ import './resolve-provider-secret.js';
40
41
  import './transcript.js';
41
42
  import './session-integrity.js';
42
43
  import './summarizer.js';
43
- import './maintenance-DCvQGTzL.js';
44
- import './catalog-8O9KY9eA.js';
44
+ import './maintenance-8hmWOMY_.js';
45
+ import './catalog-BaCx29iv.js';
45
46
  import './namespaces/search.js';
46
47
  import './compounding/engine.js';
47
48
  import './shared-context/manager.js';
@@ -51,7 +52,7 @@ import './utility-runtime.js';
51
52
  import './tier-routing.js';
52
53
  import './lifecycle.js';
53
54
  import './orchestration/compression-guideline-coordinator.js';
54
- import './semantic-consolidation-CusOpe9F.js';
55
+ import './semantic-consolidation-J-598F5M.js';
55
56
  import './connectors/codex-materialize.js';
56
57
  import './logger.js';
57
58
  import './embedding-fallback.js';
@@ -73,16 +74,17 @@ import './conversation-index/chunker.js';
73
74
  import './conversation-index/backend.js';
74
75
  import './faiss-adapter-BHecI1fF.js';
75
76
  import './runtime/child-process.js';
76
- import './dependency-propagation-delivery-CmniEsUK.js';
77
+ import './dependency-propagation-delivery-CDQCxNll.js';
77
78
  import './namespaces/storage.js';
78
79
  import './threading.js';
79
- import './scope-profiles-BShpTPeV.js';
80
+ import './scope-profiles-B6BGVbxm.js';
80
81
  import './graph-DRkl22KE.js';
81
82
  import './graph-write-lock.js';
82
83
  import './recall-xray.js';
83
84
  import './memory-provenance.js';
84
85
  import './user-model.js';
85
86
  import './recall-context-composition.js';
87
+ import './generic-recall-paths-CqAZyXKX.js';
86
88
  import './live-connectors-runner.js';
87
89
  import './framework-CNDn2164.js';
88
90
  import './relevance.js';
@@ -90,7 +92,7 @@ import './negative.js';
90
92
  import './session-observer-state.js';
91
93
  import './semantic-BalR6EXU.js';
92
94
  import './replay/types.js';
93
- import './service-BbuVh1eS.js';
95
+ import './service-ZQkJ52cz.js';
94
96
  import './extraction-judge.js';
95
97
  import './lcm/engine.js';
96
98
  import './lcm/archive.js';
@@ -1,10 +1,11 @@
1
- import { M as MemoryFile } from './types-igV4-sbB.js';
1
+ import { M as MemoryFile } from './types-BGxTvLBO.js';
2
2
  import { CorpusReadOptions } from './corpus-read-cancellation.js';
3
3
  import { ParsedBriefingWindow } from './briefing.js';
4
4
  import './message-parts/index.js';
5
5
  import './bounded-jsonl-state.js';
6
6
  import './operator-doctor-types.js';
7
7
  import './external-wiki-config.js';
8
+ import './recall-state-view.js';
8
9
  import './contradiction-config.js';
9
10
  import './graph-path-scoring-config.js';
10
11
  import './deep-recall-config.js';
@@ -13,7 +14,7 @@ import './objective-state.js';
13
14
  import './active-context-config.js';
14
15
  import './semantic-merge-config.js';
15
16
  import './types-continuity.js';
16
- import './storage-BBLLuVTF.js';
17
+ import './storage-CU_hZUgP.js';
17
18
  import './artifact-search.js';
18
19
  import './active-context-transform.js';
19
20
  import './context-summary.js';
@@ -1,5 +1,5 @@
1
- import { S as StorageManager } from './storage-BBLLuVTF.js';
2
- import { B as BriefingSections, c as BriefingFollowup, d as BriefingFocus, e as CalendarSource, f as CalendarEvent, M as MemoryFile, g as BriefingActiveThread, h as BriefingResult, i as BriefingOpenCommitment, E as EntityFile, j as BriefingRecentEntity } from './types-igV4-sbB.js';
1
+ import { S as StorageManager } from './storage-CU_hZUgP.js';
2
+ import { B as BriefingSections, c as BriefingFollowup, d as BriefingFocus, e as CalendarSource, f as CalendarEvent, M as MemoryFile, g as BriefingActiveThread, h as BriefingResult, i as BriefingOpenCommitment, E as EntityFile, j as BriefingRecentEntity } from './types-BGxTvLBO.js';
3
3
  import './corpus-read-cancellation.js';
4
4
  import './artifact-search.js';
5
5
  import './active-context-transform.js';
@@ -20,6 +20,7 @@ import './message-parts/index.js';
20
20
  import './bounded-jsonl-state.js';
21
21
  import './operator-doctor-types.js';
22
22
  import './external-wiki-config.js';
23
+ import './recall-state-view.js';
23
24
  import './contradiction-config.js';
24
25
  import './graph-path-scoring-config.js';
25
26
  import './deep-recall-config.js';
package/dist/briefing.js CHANGED
@@ -18,35 +18,36 @@ import {
18
18
  renderBriefingMarkdown,
19
19
  resolveBriefingSaveDir,
20
20
  validateBriefingFormat
21
- } from "./chunk-5NANRSCD.js";
22
- import "./chunk-HV7OY4DM.js";
23
- import "./chunk-UHVXE24Y.js";
21
+ } from "./chunk-RR7G2X7C.js";
22
+ import "./chunk-ZMKYCFJ7.js";
24
23
  import "./chunk-46WM6JX2.js";
24
+ import "./chunk-UHVXE24Y.js";
25
25
  import "./chunk-D5F7TKMH.js";
26
- import "./chunk-J7HFPA6O.js";
27
- import "./chunk-TCUKRAMK.js";
26
+ import "./chunk-6YAIN5XJ.js";
27
+ import "./chunk-4JVQRFZD.js";
28
+ import "./chunk-TNSCIPBQ.js";
28
29
  import "./chunk-YQNNHLCG.js";
29
30
  import "./chunk-6KTXE6A3.js";
30
31
  import "./chunk-BD7JTBYP.js";
31
32
  import "./chunk-OB3XMWX5.js";
32
- import "./chunk-CYEPCZN5.js";
33
- import "./chunk-TNSCIPBQ.js";
34
33
  import "./chunk-4O6WRBGE.js";
35
34
  import "./chunk-GUMZC2BO.js";
36
- import "./chunk-227UFSEQ.js";
37
- import "./chunk-ET356KSB.js";
35
+ import "./chunk-CYEPCZN5.js";
36
+ import "./chunk-TFA6HPOA.js";
37
+ import "./chunk-F4TWWUMP.js";
38
38
  import "./chunk-72A4L5JJ.js";
39
39
  import "./chunk-A7Q43EUZ.js";
40
40
  import "./chunk-S2V7RUCL.js";
41
- import "./chunk-SO7SV523.js";
41
+ import "./chunk-PCEYGOSL.js";
42
+ import "./chunk-Q6LCCIZN.js";
42
43
  import "./chunk-SCU65EZI.js";
43
44
  import "./chunk-MRPOZBJC.js";
44
45
  import "./chunk-S2HLHAZ4.js";
45
46
  import "./chunk-DM2T26WE.js";
46
47
  import "./chunk-LDXUBPMO.js";
47
- import "./chunk-DCJ3YFIC.js";
48
+ import "./chunk-S2ULTQZR.js";
48
49
  import "./chunk-AAD2ZS6P.js";
49
- import "./chunk-H272ZPQ3.js";
50
+ import "./chunk-SHEHQBCG.js";
50
51
  import "./chunk-3ONXXHQO.js";
51
52
  import "./chunk-YXZG5TVN.js";
52
53
  import "./chunk-5GINB5LC.js";
@@ -59,24 +60,21 @@ import "./chunk-R7QY5ZVB.js";
59
60
  import "./chunk-5WITETWU.js";
60
61
  import "./chunk-6CIAGZ6X.js";
61
62
  import "./chunk-6JMQR72P.js";
62
- import "./chunk-DBQWVT2H.js";
63
+ import "./chunk-3CBI2ZSA.js";
63
64
  import "./chunk-JXN77SGO.js";
64
65
  import "./chunk-ZLQ37WJX.js";
65
66
  import "./chunk-IUM3VSHI.js";
66
- import "./chunk-3QQTXYZ6.js";
67
- import "./chunk-BT7NVCML.js";
68
67
  import "./chunk-C64XATK7.js";
69
68
  import "./chunk-42JKGUFJ.js";
70
- import "./chunk-TLPZ6MKZ.js";
69
+ import "./chunk-YEN4TREG.js";
71
70
  import "./chunk-I55KAVET.js";
72
71
  import "./chunk-L2EXJQJP.js";
73
72
  import "./chunk-45GF7Y3V.js";
74
- import "./chunk-RGMVMVMF.js";
75
- import "./chunk-N7RWREIQ.js";
73
+ import "./chunk-65RENJGB.js";
76
74
  import "./chunk-353KGBKY.js";
77
75
  import "./chunk-ZIKENA2C.js";
78
- import "./chunk-VYCOJKSX.js";
79
76
  import "./chunk-6Q3ZTEF6.js";
77
+ import "./chunk-RGMVMVMF.js";
80
78
  import "./chunk-W5BIQOAJ.js";
81
79
  import "./chunk-Z7L72ZHL.js";
82
80
  import "./chunk-4O4TKIXQ.js";
@@ -90,20 +88,23 @@ import "./chunk-AL3UYZ5N.js";
90
88
  import "./chunk-RL6NEVXT.js";
91
89
  import "./chunk-C7HJ3NEI.js";
92
90
  import "./chunk-7RJUVTVF.js";
91
+ import "./chunk-PWPIERBM.js";
92
+ import "./chunk-BJMBJZ2Y.js";
93
+ import "./chunk-UKJAGEXH.js";
94
+ import "./chunk-FP2373TW.js";
95
+ import "./chunk-LSLCFCCQ.js";
96
+ import "./chunk-BT7NVCML.js";
97
+ import "./chunk-VYCOJKSX.js";
93
98
  import "./chunk-NB3LRY4T.js";
94
99
  import "./chunk-5FVVY2EB.js";
95
100
  import "./chunk-FFAZ2XFU.js";
96
- import "./chunk-EEOUMG3J.js";
97
101
  import "./chunk-JDSVLVCG.js";
98
102
  import "./chunk-5GKPFL3S.js";
99
103
  import "./chunk-JAKIDQB2.js";
100
- import "./chunk-BJMBJZ2Y.js";
101
- import "./chunk-UKJAGEXH.js";
102
- import "./chunk-FP2373TW.js";
103
104
  import "./chunk-P7FMDTKL.js";
104
105
  import "./chunk-VUFL7X3H.js";
105
106
  import "./chunk-JUOZ62Y7.js";
106
- import "./chunk-O75CRYGF.js";
107
+ import "./chunk-ZEFVK7XC.js";
107
108
  import "./chunk-6KH5NLQS.js";
108
109
  import "./chunk-P2QRMMVQ.js";
109
110
  import "./chunk-BTTPKDIL.js";
@@ -1,8 +1,9 @@
1
- import { ad as BufferSurpriseEvent } from './types-igV4-sbB.js';
1
+ import { ad as BufferSurpriseEvent } from './types-BGxTvLBO.js';
2
2
  import './message-parts/index.js';
3
3
  import './bounded-jsonl-state.js';
4
4
  import './operator-doctor-types.js';
5
5
  import './external-wiki-config.js';
6
+ import './recall-state-view.js';
6
7
  import './contradiction-config.js';
7
8
  import './graph-path-scoring-config.js';
8
9
  import './deep-recall-config.js';
@@ -1,8 +1,9 @@
1
- export { dr as AmbientCaptureProvenance, ds as BufferTurnOwner, dt as ProbeTimeoutError, du as bufferTurnArrayIsSuffixOfSnapshot, dv as bufferTurnArraysEqual, dw as bufferTurnsEqual, dx as copyBufferTurn, dy as describeError, dz as liveTurnsFromExtractionSnapshot, dA as matchingQueuedExtractionPrefixLength, dB as probeWithTimeout } from './types-igV4-sbB.js';
1
+ export { du as AmbientCaptureProvenance, dv as BufferTurnOwner, dw as ProbeTimeoutError, dx as bufferTurnArrayIsSuffixOfSnapshot, dy as bufferTurnArraysEqual, dz as bufferTurnsEqual, dA as copyBufferTurn, dB as describeError, dC as liveTurnsFromExtractionSnapshot, dD as matchingQueuedExtractionPrefixLength, dE as probeWithTimeout } from './types-BGxTvLBO.js';
2
2
  import './message-parts/index.js';
3
3
  import './bounded-jsonl-state.js';
4
4
  import './operator-doctor-types.js';
5
5
  import './external-wiki-config.js';
6
+ import './recall-state-view.js';
6
7
  import './contradiction-config.js';
7
8
  import './graph-path-scoring-config.js';
8
9
  import './deep-recall-config.js';
package/dist/buffer.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { S as StorageManager } from './storage-BBLLuVTF.js';
2
- import { P as PluginConfig, k as BufferTurn, l as ExtractionBufferSnapshot } from './types-igV4-sbB.js';
1
+ import { S as StorageManager } from './storage-CU_hZUgP.js';
2
+ import { P as PluginConfig, k as BufferTurn, l as ExtractionBufferSnapshot } from './types-BGxTvLBO.js';
3
3
  import './corpus-read-cancellation.js';
4
4
  import './artifact-search.js';
5
5
  import './active-context-transform.js';
@@ -20,6 +20,7 @@ import './message-parts/index.js';
20
20
  import './bounded-jsonl-state.js';
21
21
  import './operator-doctor-types.js';
22
22
  import './external-wiki-config.js';
23
+ import './recall-state-view.js';
23
24
  import './contradiction-config.js';
24
25
  import './graph-path-scoring-config.js';
25
26
  import './deep-recall-config.js';