@remnic/core 1.0.1 → 1.0.3

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 (347) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +48 -0
  3. package/dist/access-cli.d.ts +13 -3
  4. package/dist/access-cli.js +90 -75
  5. package/dist/access-cli.js.map +1 -1
  6. package/dist/access-http.d.ts +10 -3
  7. package/dist/access-http.js +25 -18
  8. package/dist/access-mcp.d.ts +30 -3
  9. package/dist/access-mcp.js +16 -1
  10. package/dist/access-schema.d.ts +46 -46
  11. package/dist/access-schema.js +1 -1
  12. package/dist/access-service.d.ts +65 -4
  13. package/dist/access-service.js +21 -15
  14. package/dist/active-memory-bridge.d.ts +66 -0
  15. package/dist/active-memory-bridge.js +11 -0
  16. package/dist/active-recall.d.ts +96 -0
  17. package/dist/active-recall.js +308 -0
  18. package/dist/active-recall.js.map +1 -0
  19. package/dist/behavior-learner.js +1 -1
  20. package/dist/bootstrap.d.ts +6 -3
  21. package/dist/bootstrap.js +2 -2
  22. package/dist/boxes.js +2 -2
  23. package/dist/briefing.d.ts +169 -0
  24. package/dist/briefing.js +52 -0
  25. package/dist/briefing.js.map +1 -0
  26. package/dist/buffer.d.ts +19 -5
  27. package/dist/buffer.js +2 -2
  28. package/dist/calibration.js +6 -6
  29. package/dist/causal-behavior.js +5 -5
  30. package/dist/causal-chain.js +3 -3
  31. package/dist/causal-consolidation.d.ts +22 -2
  32. package/dist/causal-consolidation.js +36 -9
  33. package/dist/causal-consolidation.js.map +1 -1
  34. package/dist/causal-retrieval.js +6 -6
  35. package/dist/causal-trajectory-graph.js +1 -1
  36. package/dist/causal-trajectory.d.ts +14 -1
  37. package/dist/causal-trajectory.js +5 -1
  38. package/dist/{chunk-KWBU5S5U.js → chunk-2ODBA7MQ.js} +9 -3
  39. package/dist/chunk-2ODBA7MQ.js.map +1 -0
  40. package/dist/{chunk-6UJQNRIO.js → chunk-2VFW5K5U.js} +93 -36
  41. package/dist/chunk-2VFW5K5U.js.map +1 -0
  42. package/dist/chunk-3PG3H5TD.js +7 -0
  43. package/dist/chunk-3PG3H5TD.js.map +1 -0
  44. package/dist/{chunk-NTTLPF7F.js → chunk-3QFQGRHO.js} +5 -5
  45. package/dist/chunk-4DJQYKMN.js +187 -0
  46. package/dist/chunk-4DJQYKMN.js.map +1 -0
  47. package/dist/chunk-4KAN3GZ3.js +225 -0
  48. package/dist/chunk-4KAN3GZ3.js.map +1 -0
  49. package/dist/{chunk-ORZMT74A.js → chunk-4NRAJUDS.js} +11 -1
  50. package/dist/chunk-4NRAJUDS.js.map +1 -0
  51. package/dist/{chunk-B7LOFDVE.js → chunk-4WMCPJWX.js} +8 -3
  52. package/dist/chunk-4WMCPJWX.js.map +1 -0
  53. package/dist/{chunk-G3AG3KZN.js → chunk-5IZL4DCV.js} +2 -2
  54. package/dist/{chunk-BRK4ODMI.js → chunk-5NPGSAVB.js} +2 -2
  55. package/dist/chunk-6MKAMLQL.js +16 -0
  56. package/dist/chunk-6MKAMLQL.js.map +1 -0
  57. package/dist/{chunk-ESSMF2FR.js → chunk-6PFRXT4K.js} +15 -6
  58. package/dist/chunk-6PFRXT4K.js.map +1 -0
  59. package/dist/chunk-6ZH4TU6I.js +245 -0
  60. package/dist/chunk-6ZH4TU6I.js.map +1 -0
  61. package/dist/{chunk-V4YC4LUK.js → chunk-74JR4N5J.js} +175 -63
  62. package/dist/chunk-74JR4N5J.js.map +1 -0
  63. package/dist/{chunk-L5RPWGFK.js → chunk-7DHTMOND.js} +2 -2
  64. package/dist/{chunk-TVVVQQAK.js → chunk-7PA4OZEU.js} +53 -11
  65. package/dist/chunk-7PA4OZEU.js.map +1 -0
  66. package/dist/{chunk-Q6FETXJA.js → chunk-7SEAZFFB.js} +2 -2
  67. package/dist/chunk-ALXMCZEU.js +332 -0
  68. package/dist/chunk-ALXMCZEU.js.map +1 -0
  69. package/dist/{chunk-QANCTXQF.js → chunk-AYPYCLR7.js} +3 -3
  70. package/dist/{chunk-WWIQTB2Y.js → chunk-BKQJBXXX.js} +9 -2
  71. package/dist/chunk-BKQJBXXX.js.map +1 -0
  72. package/dist/{chunk-LP47L3ZX.js → chunk-BTY5RRRF.js} +7 -7
  73. package/dist/{chunk-SCHEKPYH.js → chunk-C2EFFULQ.js} +1 -1
  74. package/dist/{chunk-GJR6D6KC.js → chunk-D654IBA6.js} +2 -2
  75. package/dist/{chunk-UV2FO7J4.js → chunk-E6K4NIEU.js} +2 -2
  76. package/dist/{chunk-T4WRIV2C.js → chunk-EABGC2TL.js} +2 -2
  77. package/dist/chunk-ECKDIK5F.js +813 -0
  78. package/dist/chunk-ECKDIK5F.js.map +1 -0
  79. package/dist/chunk-EJI5XIBB.js +232 -0
  80. package/dist/chunk-EJI5XIBB.js.map +1 -0
  81. package/dist/{chunk-ONRU4L2N.js → chunk-FEMOX5AD.js} +2 -2
  82. package/dist/{chunk-IFFFR3MR.js → chunk-FSFEQI74.js} +3 -3
  83. package/dist/chunk-G4SK7DSQ.js +121 -0
  84. package/dist/chunk-G4SK7DSQ.js.map +1 -0
  85. package/dist/{chunk-UIYZ5T3I.js → chunk-GJQPH5G3.js} +8 -8
  86. package/dist/{chunk-2PO5ZRKV.js → chunk-GZCUW5IC.js} +16 -3
  87. package/dist/chunk-GZCUW5IC.js.map +1 -0
  88. package/dist/{chunk-IZME7KW2.js → chunk-HITJFT7E.js} +24 -10
  89. package/dist/{chunk-IZME7KW2.js.map → chunk-HITJFT7E.js.map} +1 -1
  90. package/dist/chunk-IQT3XTKW.js +121 -0
  91. package/dist/chunk-IQT3XTKW.js.map +1 -0
  92. package/dist/{chunk-BDFZXRSO.js → chunk-J4IYOZZ5.js} +15 -2
  93. package/dist/chunk-J4IYOZZ5.js.map +1 -0
  94. package/dist/{chunk-ZKYI7UVO.js → chunk-JR4ZC3G4.js} +2 -2
  95. package/dist/{chunk-UCYSTFZR.js → chunk-JRNQ3RNA.js} +2 -2
  96. package/dist/{chunk-UYSKNO6E.js → chunk-JROGC36Y.js} +15 -4
  97. package/dist/chunk-JROGC36Y.js.map +1 -0
  98. package/dist/{chunk-GPGBSNKM.js → chunk-K4FLSOR5.js} +2 -2
  99. package/dist/{chunk-M5ZBBBJI.js → chunk-KEG4GNGI.js} +2 -2
  100. package/dist/chunk-KVE7R4CG.js +320 -0
  101. package/dist/chunk-KVE7R4CG.js.map +1 -0
  102. package/dist/{chunk-L7WO3MZ4.js → chunk-KWP7T3DP.js} +2 -2
  103. package/dist/chunk-LAYN4LDC.js +267 -0
  104. package/dist/chunk-LAYN4LDC.js.map +1 -0
  105. package/dist/{chunk-PGK3VUHN.js → chunk-MTLYEMJB.js} +3 -2
  106. package/dist/chunk-MTLYEMJB.js.map +1 -0
  107. package/dist/{chunk-J47FNDR7.js → chunk-MYQWXITD.js} +7 -7
  108. package/dist/{chunk-YNI4S5WT.js → chunk-N53K2EXC.js} +2 -2
  109. package/dist/{chunk-763GUIOU.js → chunk-NBNN5GOB.js} +2 -2
  110. package/dist/{chunk-CXWFUJR2.js → chunk-NSB3WSYS.js} +125 -6
  111. package/dist/chunk-NSB3WSYS.js.map +1 -0
  112. package/dist/{chunk-KL4CP4SB.js → chunk-O5ETUNBT.js} +17 -5
  113. package/dist/chunk-O5ETUNBT.js.map +1 -0
  114. package/dist/{chunk-OOSWAUYB.js → chunk-ODWDQNRE.js} +2 -2
  115. package/dist/{chunk-ISY75RLM.js → chunk-OJFGVJS6.js} +288 -7
  116. package/dist/chunk-OJFGVJS6.js.map +1 -0
  117. package/dist/{chunk-HLBYLYRD.js → chunk-PAORGQRI.js} +70 -13
  118. package/dist/chunk-PAORGQRI.js.map +1 -0
  119. package/dist/{chunk-ZJLY4QSU.js → chunk-PMB3WGDL.js} +69 -6
  120. package/dist/chunk-PMB3WGDL.js.map +1 -0
  121. package/dist/{chunk-J3BT33K7.js → chunk-POBPGDWI.js} +5 -5
  122. package/dist/{chunk-QWUUMMIK.js → chunk-POMSFKTB.js} +1351 -76
  123. package/dist/chunk-POMSFKTB.js.map +1 -0
  124. package/dist/{chunk-OTAVQCSF.js → chunk-PYXS46O7.js} +2 -2
  125. package/dist/chunk-QDW3E4RD.js +108 -0
  126. package/dist/chunk-QDW3E4RD.js.map +1 -0
  127. package/dist/{chunk-YNCQ7E4M.js → chunk-QDYXG4CS.js} +4 -3
  128. package/dist/chunk-QDYXG4CS.js.map +1 -0
  129. package/dist/{chunk-XUHI52HK.js → chunk-QKAH5B6E.js} +4 -4
  130. package/dist/{chunk-HLXVTBF3.js → chunk-QNJMBKFK.js} +3 -2
  131. package/dist/chunk-QNJMBKFK.js.map +1 -0
  132. package/dist/chunk-RCICHSHL.js +789 -0
  133. package/dist/chunk-RCICHSHL.js.map +1 -0
  134. package/dist/{chunk-HG2NKWR2.js → chunk-S4LX5EBI.js} +2 -2
  135. package/dist/{chunk-4A24LIM2.js → chunk-S75M5ZRK.js} +2 -2
  136. package/dist/{chunk-QCCCQT3O.js → chunk-TBBDFYXW.js} +2 -2
  137. package/dist/chunk-TBBDFYXW.js.map +1 -0
  138. package/dist/{chunk-U4PV25RD.js → chunk-U2IQTSBY.js} +1 -1
  139. package/dist/chunk-U2IQTSBY.js.map +1 -0
  140. package/dist/chunk-U66YHYC7.js +31 -0
  141. package/dist/chunk-U66YHYC7.js.map +1 -0
  142. package/dist/{chunk-MWGVGUIS.js → chunk-UEYA6UC7.js} +36 -4
  143. package/dist/chunk-UEYA6UC7.js.map +1 -0
  144. package/dist/{chunk-MDDAA2AO.js → chunk-UPMD5XND.js} +2 -2
  145. package/dist/{chunk-M5KEYE5E.js → chunk-URB2WSKZ.js} +2 -2
  146. package/dist/chunk-UVJFDP7P.js +202 -0
  147. package/dist/chunk-UVJFDP7P.js.map +1 -0
  148. package/dist/{chunk-QY2BHY5O.js → chunk-V7XCAHIB.js} +265 -25
  149. package/dist/chunk-V7XCAHIB.js.map +1 -0
  150. package/dist/chunk-W6SL7OFG.js +180 -0
  151. package/dist/chunk-W6SL7OFG.js.map +1 -0
  152. package/dist/{chunk-QDOSNLB4.js → chunk-X4WESCKA.js} +17 -15
  153. package/dist/chunk-X4WESCKA.js.map +1 -0
  154. package/dist/{chunk-OTFNI3OO.js → chunk-XMGSSBFX.js} +1738 -383
  155. package/dist/chunk-XMGSSBFX.js.map +1 -0
  156. package/dist/chunk-YDBIWGNI.js +298 -0
  157. package/dist/chunk-YDBIWGNI.js.map +1 -0
  158. package/dist/chunk-YFYL2SIJ.js +7857 -0
  159. package/dist/chunk-YFYL2SIJ.js.map +1 -0
  160. package/dist/chunking.js +1 -1
  161. package/dist/citations.d.ts +67 -0
  162. package/dist/citations.js +13 -0
  163. package/dist/citations.js.map +1 -0
  164. package/dist/cli-DwIBnp2g.d.ts +1240 -0
  165. package/dist/cli.d.ts +31 -1147
  166. package/dist/cli.js +149 -7092
  167. package/dist/cli.js.map +1 -1
  168. package/dist/codex-materialize-CQlLTzke.d.ts +139 -0
  169. package/dist/codex-thread-key.d.ts +3 -0
  170. package/dist/codex-thread-key.js +7 -0
  171. package/dist/codex-thread-key.js.map +1 -0
  172. package/dist/config.js +3 -2
  173. package/dist/connectors/codex/instructions.md +160 -0
  174. package/dist/connectors/codex/resources/namespace-cheatsheet.md +48 -0
  175. package/dist/day-summary.d.ts +7 -2
  176. package/dist/day-summary.js +5 -2
  177. package/dist/embedding-fallback.d.ts +96 -2
  178. package/dist/embedding-fallback.js +6 -4
  179. package/dist/{engine-2A6J4XEX.js → engine-X7X3AAG3.js} +10 -7
  180. package/dist/engine-X7X3AAG3.js.map +1 -0
  181. package/dist/entity-retrieval.d.ts +3 -2
  182. package/dist/entity-retrieval.js +10 -7
  183. package/dist/entity-schema.d.ts +11 -0
  184. package/dist/entity-schema.js +19 -0
  185. package/dist/entity-schema.js.map +1 -0
  186. package/dist/explicit-capture.d.ts +6 -3
  187. package/dist/explicit-capture.js +2 -2
  188. package/dist/extraction-judge.d.ts +66 -0
  189. package/dist/extraction-judge.js +18 -0
  190. package/dist/extraction-judge.js.map +1 -0
  191. package/dist/extraction.d.ts +1 -0
  192. package/dist/extraction.js +12 -10
  193. package/dist/fallback-llm.js +4 -4
  194. package/dist/graph.js +1 -1
  195. package/dist/importance.d.ts +11 -1
  196. package/dist/importance.js +3 -1
  197. package/dist/index.d.ts +1140 -8
  198. package/dist/index.js +3350 -333
  199. package/dist/index.js.map +1 -1
  200. package/dist/intent.d.ts +2 -1
  201. package/dist/intent.js +3 -1
  202. package/dist/lifecycle.js +1 -1
  203. package/dist/local-llm.js +2 -2
  204. package/dist/logger.d.ts +1 -1
  205. package/dist/logger.js +1 -1
  206. package/dist/memory-cache.d.ts +2 -2
  207. package/dist/memory-cache.js +1 -1
  208. package/dist/{memory-projection-store-NxMkbocT.d.ts → memory-projection-store-DeSXPh1j.d.ts} +1 -1
  209. package/dist/memory-projection-store.d.ts +1 -1
  210. package/dist/model-registry.js +2 -2
  211. package/dist/models-json.js +2 -2
  212. package/dist/native-knowledge.js +2 -2
  213. package/dist/negative.js +2 -2
  214. package/dist/operator-toolkit.js +20 -16
  215. package/dist/{orchestrator-CIvLFHx3.d.ts → orchestrator-B9kwlCep.d.ts} +254 -9
  216. package/dist/orchestrator.d.ts +6 -3
  217. package/dist/orchestrator.js +70 -58
  218. package/dist/page-versioning.d.ts +77 -0
  219. package/dist/page-versioning.js +15 -0
  220. package/dist/page-versioning.js.map +1 -0
  221. package/dist/plugin-id.d.ts +37 -0
  222. package/dist/plugin-id.js +11 -0
  223. package/dist/plugin-id.js.map +1 -0
  224. package/dist/policy-runtime.js +2 -2
  225. package/dist/profiling.js +2 -2
  226. package/dist/qmd.d.ts +5 -2
  227. package/dist/qmd.js +3 -3
  228. package/dist/recall-audit.d.ts +20 -0
  229. package/dist/recall-audit.js +50 -0
  230. package/dist/recall-audit.js.map +1 -0
  231. package/dist/recall-mmr.d.ts +152 -0
  232. package/dist/recall-mmr.js +17 -0
  233. package/dist/recall-mmr.js.map +1 -0
  234. package/dist/recall-qos.js +2 -2
  235. package/dist/recall-state.js +2 -2
  236. package/dist/relevance.js +2 -2
  237. package/dist/resolve-provider-secret.js +2 -2
  238. package/dist/resume-bundles.js +5 -4
  239. package/dist/retrieval-agents.js +2 -2
  240. package/dist/retrieval.js +2 -2
  241. package/dist/schemas.d.ts +422 -64
  242. package/dist/schemas.js +3 -1
  243. package/dist/sdk-compat.d.ts +2 -0
  244. package/dist/sdk-compat.js +6 -3
  245. package/dist/sdk-compat.js.map +1 -1
  246. package/dist/semantic-chunking.d.ts +87 -0
  247. package/dist/semantic-chunking.js +20 -0
  248. package/dist/semantic-chunking.js.map +1 -0
  249. package/dist/semantic-consolidation-DrvSYRdB.d.ts +119 -0
  250. package/dist/semantic-consolidation.d.ts +4 -42
  251. package/dist/semantic-consolidation.js +23 -2
  252. package/dist/semantic-rule-promotion.js +9 -6
  253. package/dist/semantic-rule-verifier.js +10 -7
  254. package/dist/session-observer-state.js +2 -2
  255. package/dist/session-toggles.d.ts +22 -0
  256. package/dist/session-toggles.js +116 -0
  257. package/dist/session-toggles.js.map +1 -0
  258. package/dist/skills-registry.d.ts +47 -0
  259. package/dist/skills-registry.js +48 -0
  260. package/dist/skills-registry.js.map +1 -0
  261. package/dist/source-attribution.d.ts +169 -0
  262. package/dist/source-attribution.js +27 -0
  263. package/dist/source-attribution.js.map +1 -0
  264. package/dist/storage.d.ts +171 -10
  265. package/dist/storage.js +16 -5
  266. package/dist/summarizer.js +7 -7
  267. package/dist/temporal-supersession.d.ts +127 -0
  268. package/dist/temporal-supersession.js +20 -0
  269. package/dist/temporal-supersession.js.map +1 -0
  270. package/dist/threading.js +2 -2
  271. package/dist/tier-migration.d.ts +2 -1
  272. package/dist/tier-routing.js +2 -2
  273. package/dist/tokens.d.ts +21 -1
  274. package/dist/tokens.js +5 -1
  275. package/dist/transcript.js +2 -2
  276. package/dist/types.d.ts +497 -3
  277. package/dist/types.js +1 -1
  278. package/dist/utility-learner.js +2 -2
  279. package/dist/utility-runtime.js +3 -3
  280. package/dist/verified-recall.js +11 -8
  281. package/dist/whitespace.d.ts +4 -0
  282. package/dist/whitespace.js +9 -0
  283. package/dist/whitespace.js.map +1 -0
  284. package/package.json +14 -8
  285. package/dist/chunk-2CJCWDMR.js +0 -87
  286. package/dist/chunk-2CJCWDMR.js.map +0 -1
  287. package/dist/chunk-2PO5ZRKV.js.map +0 -1
  288. package/dist/chunk-6UJQNRIO.js.map +0 -1
  289. package/dist/chunk-B7LOFDVE.js.map +0 -1
  290. package/dist/chunk-BDFZXRSO.js.map +0 -1
  291. package/dist/chunk-CXWFUJR2.js.map +0 -1
  292. package/dist/chunk-DORBM6OB.js +0 -81
  293. package/dist/chunk-DORBM6OB.js.map +0 -1
  294. package/dist/chunk-ESSMF2FR.js.map +0 -1
  295. package/dist/chunk-HLBYLYRD.js.map +0 -1
  296. package/dist/chunk-HLXVTBF3.js.map +0 -1
  297. package/dist/chunk-ISY75RLM.js.map +0 -1
  298. package/dist/chunk-KL4CP4SB.js.map +0 -1
  299. package/dist/chunk-KWBU5S5U.js.map +0 -1
  300. package/dist/chunk-MWGVGUIS.js.map +0 -1
  301. package/dist/chunk-ORZMT74A.js.map +0 -1
  302. package/dist/chunk-OTFNI3OO.js.map +0 -1
  303. package/dist/chunk-PGK3VUHN.js.map +0 -1
  304. package/dist/chunk-QCCCQT3O.js.map +0 -1
  305. package/dist/chunk-QDOSNLB4.js.map +0 -1
  306. package/dist/chunk-QPKFPHOO.js +0 -178
  307. package/dist/chunk-QPKFPHOO.js.map +0 -1
  308. package/dist/chunk-QWUUMMIK.js.map +0 -1
  309. package/dist/chunk-QY2BHY5O.js.map +0 -1
  310. package/dist/chunk-TVVVQQAK.js.map +0 -1
  311. package/dist/chunk-U4PV25RD.js.map +0 -1
  312. package/dist/chunk-UYSKNO6E.js.map +0 -1
  313. package/dist/chunk-V4YC4LUK.js.map +0 -1
  314. package/dist/chunk-WWIQTB2Y.js.map +0 -1
  315. package/dist/chunk-YNCQ7E4M.js.map +0 -1
  316. package/dist/chunk-ZJLY4QSU.js.map +0 -1
  317. /package/dist/{engine-2A6J4XEX.js.map → active-memory-bridge.js.map} +0 -0
  318. /package/dist/{chunk-NTTLPF7F.js.map → chunk-3QFQGRHO.js.map} +0 -0
  319. /package/dist/{chunk-G3AG3KZN.js.map → chunk-5IZL4DCV.js.map} +0 -0
  320. /package/dist/{chunk-BRK4ODMI.js.map → chunk-5NPGSAVB.js.map} +0 -0
  321. /package/dist/{chunk-L5RPWGFK.js.map → chunk-7DHTMOND.js.map} +0 -0
  322. /package/dist/{chunk-Q6FETXJA.js.map → chunk-7SEAZFFB.js.map} +0 -0
  323. /package/dist/{chunk-QANCTXQF.js.map → chunk-AYPYCLR7.js.map} +0 -0
  324. /package/dist/{chunk-LP47L3ZX.js.map → chunk-BTY5RRRF.js.map} +0 -0
  325. /package/dist/{chunk-SCHEKPYH.js.map → chunk-C2EFFULQ.js.map} +0 -0
  326. /package/dist/{chunk-GJR6D6KC.js.map → chunk-D654IBA6.js.map} +0 -0
  327. /package/dist/{chunk-UV2FO7J4.js.map → chunk-E6K4NIEU.js.map} +0 -0
  328. /package/dist/{chunk-T4WRIV2C.js.map → chunk-EABGC2TL.js.map} +0 -0
  329. /package/dist/{chunk-ONRU4L2N.js.map → chunk-FEMOX5AD.js.map} +0 -0
  330. /package/dist/{chunk-IFFFR3MR.js.map → chunk-FSFEQI74.js.map} +0 -0
  331. /package/dist/{chunk-UIYZ5T3I.js.map → chunk-GJQPH5G3.js.map} +0 -0
  332. /package/dist/{chunk-ZKYI7UVO.js.map → chunk-JR4ZC3G4.js.map} +0 -0
  333. /package/dist/{chunk-UCYSTFZR.js.map → chunk-JRNQ3RNA.js.map} +0 -0
  334. /package/dist/{chunk-GPGBSNKM.js.map → chunk-K4FLSOR5.js.map} +0 -0
  335. /package/dist/{chunk-M5ZBBBJI.js.map → chunk-KEG4GNGI.js.map} +0 -0
  336. /package/dist/{chunk-L7WO3MZ4.js.map → chunk-KWP7T3DP.js.map} +0 -0
  337. /package/dist/{chunk-J47FNDR7.js.map → chunk-MYQWXITD.js.map} +0 -0
  338. /package/dist/{chunk-YNI4S5WT.js.map → chunk-N53K2EXC.js.map} +0 -0
  339. /package/dist/{chunk-763GUIOU.js.map → chunk-NBNN5GOB.js.map} +0 -0
  340. /package/dist/{chunk-OOSWAUYB.js.map → chunk-ODWDQNRE.js.map} +0 -0
  341. /package/dist/{chunk-J3BT33K7.js.map → chunk-POBPGDWI.js.map} +0 -0
  342. /package/dist/{chunk-OTAVQCSF.js.map → chunk-PYXS46O7.js.map} +0 -0
  343. /package/dist/{chunk-XUHI52HK.js.map → chunk-QKAH5B6E.js.map} +0 -0
  344. /package/dist/{chunk-HG2NKWR2.js.map → chunk-S4LX5EBI.js.map} +0 -0
  345. /package/dist/{chunk-4A24LIM2.js.map → chunk-S75M5ZRK.js.map} +0 -0
  346. /package/dist/{chunk-MDDAA2AO.js.map → chunk-UPMD5XND.js.map} +0 -0
  347. /package/dist/{chunk-M5KEYE5E.js.map → chunk-URB2WSKZ.js.map} +0 -0
package/dist/intent.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import { MemoryIntent, RecallPlanMode } from './types.js';
2
2
 
3
3
  declare function inferIntentFromText(text: string): MemoryIntent;
4
+ declare function isTaskInitiationIntent(intent: MemoryIntent): boolean;
4
5
  declare function intentCompatibilityScore(queryIntent: MemoryIntent, memoryIntent: MemoryIntent): number;
5
6
  declare function planRecallMode(prompt: string): RecallPlanMode;
6
7
  declare function hasBroadGraphIntent(prompt: string): boolean;
7
8
 
8
- export { hasBroadGraphIntent, inferIntentFromText, intentCompatibilityScore, planRecallMode };
9
+ export { hasBroadGraphIntent, inferIntentFromText, intentCompatibilityScore, isTaskInitiationIntent, planRecallMode };
package/dist/intent.js CHANGED
@@ -2,12 +2,14 @@ import {
2
2
  hasBroadGraphIntent,
3
3
  inferIntentFromText,
4
4
  intentCompatibilityScore,
5
+ isTaskInitiationIntent,
5
6
  planRecallMode
6
- } from "./chunk-WWIQTB2Y.js";
7
+ } from "./chunk-BKQJBXXX.js";
7
8
  export {
8
9
  hasBroadGraphIntent,
9
10
  inferIntentFromText,
10
11
  intentCompatibilityScore,
12
+ isTaskInitiationIntent,
11
13
  planRecallMode
12
14
  };
13
15
  //# sourceMappingURL=intent.js.map
package/dist/lifecycle.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  daysSince,
8
8
  decideLifecycleTransition,
9
9
  resolveLifecycleState
10
- } from "./chunk-QCCCQT3O.js";
10
+ } from "./chunk-TBBDFYXW.js";
11
11
  export {
12
12
  clamp01,
13
13
  clampLifecycleThreshold,
package/dist/local-llm.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  LocalLlmClient
3
- } from "./chunk-MDDAA2AO.js";
3
+ } from "./chunk-UPMD5XND.js";
4
4
  import "./chunk-LK6SGL53.js";
5
5
  import "./chunk-MARWOCVP.js";
6
- import "./chunk-KWBU5S5U.js";
6
+ import "./chunk-2ODBA7MQ.js";
7
7
  export {
8
8
  LocalLlmClient
9
9
  };
package/dist/logger.d.ts CHANGED
@@ -4,7 +4,7 @@ interface LoggerBackend {
4
4
  error(msg: string, ...args: unknown[]): void;
5
5
  debug?(msg: string, ...args: unknown[]): void;
6
6
  }
7
- declare function initLogger(backend: LoggerBackend, debug: boolean): void;
7
+ declare function initLogger(backend?: LoggerBackend, debug?: boolean): void;
8
8
  declare const log: {
9
9
  info(msg: string, ...args: unknown[]): void;
10
10
  warn(msg: string, ...args: unknown[]): void;
package/dist/logger.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  initLogger,
3
3
  log
4
- } from "./chunk-KWBU5S5U.js";
4
+ } from "./chunk-2ODBA7MQ.js";
5
5
  export {
6
6
  initLogger,
7
7
  log
@@ -6,8 +6,8 @@ declare function updateCacheOnWrite(baseDir: string, memory: MemoryFile): void;
6
6
  declare function updateCacheOnDelete(baseDir: string, filePath: string): void;
7
7
  declare function getCachedArchivedMemories(baseDir: string, currentVersion: number): MemoryFile[] | null;
8
8
  declare function setCachedArchivedMemories(baseDir: string, memories: MemoryFile[], version: number): void;
9
- declare function getCachedEntities(baseDir: string, currentVersion: number): EntityFile[] | null;
10
- declare function setCachedEntities(baseDir: string, entities: EntityFile[], version: number): void;
9
+ declare function getCachedEntities(baseDir: string, currentVersion: number, schemaKey?: string): EntityFile[] | null;
10
+ declare function setCachedEntities(baseDir: string, entities: EntityFile[], version: number, schemaKey?: string): void;
11
11
  /** Get a pre-filtered Map of episode memories (keyed by ID). Derived from hot cache. */
12
12
  declare function getCachedEpisodeMap(baseDir: string, currentVersion: number): Map<string, MemoryFile> | null;
13
13
  /** Build and cache the episode memory map from the full memory list. */
@@ -15,7 +15,7 @@ import {
15
15
  setCachedRuleMemories,
16
16
  updateCacheOnDelete,
17
17
  updateCacheOnWrite
18
- } from "./chunk-ESSMF2FR.js";
18
+ } from "./chunk-6PFRXT4K.js";
19
19
  export {
20
20
  clearMemoryCache,
21
21
  getCachedArchivedMemories,
@@ -218,4 +218,4 @@ declare function readProjectedGovernanceRecord(memoryDir: string): {
218
218
  report: string;
219
219
  } | null;
220
220
 
221
- export { readProjectedMemoryState as A, readProjectedMemoryTimeline as B, readProjectedNativeKnowledgeChunks as C, type MemoryGovernanceRunResult as M, type ProjectedMemoryBrowseOptions as P, type RestoreMemoryGovernanceRunResult as R, type MemoryGovernanceSummary as a, type MemoryGovernanceMetrics as b, type MemoryGovernanceQualityScore as c, type MemoryGovernanceReviewQueueEntry as d, type MemoryGovernanceAppliedAction as e, type MemoryGovernanceTransitionReport as f, type MemoryGovernanceManifest as g, type MemoryGovernanceRestoreManifest as h, type ProjectedMemoryBrowsePage as i, readProjectedGovernanceRecord as j, MEMORY_PROJECTION_SCHEMA_VERSION as k, type MemoryProjectionGovernanceAppliedActionRow as l, type MemoryProjectionGovernanceReviewQueueRow as m, type ProjectedEntityMentionRow as n, type ProjectedMemoryBrowseRow as o, type ProjectedNativeKnowledgeChunkRow as p, type ProjectedReviewQueueSnapshot as q, readMemoryGovernanceRunArtifact as r, getMemoryProjectionPath as s, initializeMemoryProjectionDb as t, memoryCurrentSelectExpressions as u, parseCurrentRow as v, parseTimelineRows as w, readProjectedEntityMentions as x, readProjectedLatestReviewQueue as y, readProjectedMemoryBrowse as z };
221
+ export { readProjectedMemoryState as A, readProjectedMemoryTimeline as B, readProjectedNativeKnowledgeChunks as C, type MemoryGovernanceRunResult as M, type ProjectedMemoryBrowseOptions as P, type RestoreMemoryGovernanceRunResult as R, type ProjectedMemoryBrowsePage as a, readProjectedGovernanceRecord as b, type MemoryGovernanceSummary as c, type MemoryGovernanceMetrics as d, type MemoryGovernanceQualityScore as e, type MemoryGovernanceReviewQueueEntry as f, type MemoryGovernanceAppliedAction as g, type MemoryGovernanceTransitionReport as h, type MemoryGovernanceManifest as i, type MemoryGovernanceRestoreManifest as j, MEMORY_PROJECTION_SCHEMA_VERSION as k, type MemoryProjectionGovernanceAppliedActionRow as l, type MemoryProjectionGovernanceReviewQueueRow as m, type ProjectedEntityMentionRow as n, type ProjectedMemoryBrowseRow as o, type ProjectedNativeKnowledgeChunkRow as p, type ProjectedReviewQueueSnapshot as q, readMemoryGovernanceRunArtifact as r, getMemoryProjectionPath as s, initializeMemoryProjectionDb as t, memoryCurrentSelectExpressions as u, parseCurrentRow as v, parseTimelineRows as w, readProjectedEntityMentions as x, readProjectedLatestReviewQueue as y, readProjectedMemoryBrowse as z };
@@ -1,3 +1,3 @@
1
- export { k as MEMORY_PROJECTION_SCHEMA_VERSION, l as MemoryProjectionGovernanceAppliedActionRow, m as MemoryProjectionGovernanceReviewQueueRow, n as ProjectedEntityMentionRow, P as ProjectedMemoryBrowseOptions, i as ProjectedMemoryBrowsePage, o as ProjectedMemoryBrowseRow, p as ProjectedNativeKnowledgeChunkRow, q as ProjectedReviewQueueSnapshot, s as getMemoryProjectionPath, t as initializeMemoryProjectionDb, u as memoryCurrentSelectExpressions, v as parseCurrentRow, w as parseTimelineRows, x as readProjectedEntityMentions, j as readProjectedGovernanceRecord, y as readProjectedLatestReviewQueue, z as readProjectedMemoryBrowse, A as readProjectedMemoryState, B as readProjectedMemoryTimeline, C as readProjectedNativeKnowledgeChunks } from './memory-projection-store-NxMkbocT.js';
1
+ export { k as MEMORY_PROJECTION_SCHEMA_VERSION, l as MemoryProjectionGovernanceAppliedActionRow, m as MemoryProjectionGovernanceReviewQueueRow, n as ProjectedEntityMentionRow, P as ProjectedMemoryBrowseOptions, a as ProjectedMemoryBrowsePage, o as ProjectedMemoryBrowseRow, p as ProjectedNativeKnowledgeChunkRow, q as ProjectedReviewQueueSnapshot, s as getMemoryProjectionPath, t as initializeMemoryProjectionDb, u as memoryCurrentSelectExpressions, v as parseCurrentRow, w as parseTimelineRows, x as readProjectedEntityMentions, b as readProjectedGovernanceRecord, y as readProjectedLatestReviewQueue, z as readProjectedMemoryBrowse, A as readProjectedMemoryState, B as readProjectedMemoryTimeline, C as readProjectedNativeKnowledgeChunks } from './memory-projection-store-DeSXPh1j.js';
2
2
  import './types.js';
3
3
  import 'better-sqlite3';
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ModelRegistry
3
- } from "./chunk-ONRU4L2N.js";
4
- import "./chunk-KWBU5S5U.js";
3
+ } from "./chunk-FEMOX5AD.js";
4
+ import "./chunk-2ODBA7MQ.js";
5
5
  export {
6
6
  ModelRegistry
7
7
  };
@@ -2,8 +2,8 @@ import {
2
2
  __setModelsJsonForTest,
3
3
  clearModelsJsonCache,
4
4
  loadModelsJsonProviders
5
- } from "./chunk-OOSWAUYB.js";
6
- import "./chunk-KWBU5S5U.js";
5
+ } from "./chunk-ODWDQNRE.js";
6
+ import "./chunk-2ODBA7MQ.js";
7
7
  export {
8
8
  __setModelsJsonForTest,
9
9
  clearModelsJsonCache,
@@ -9,8 +9,8 @@ import {
9
9
  syncCuratedIncludeFiles,
10
10
  syncObsidianVaults,
11
11
  syncOpenClawWorkspaceArtifacts
12
- } from "./chunk-Q6FETXJA.js";
13
- import "./chunk-KWBU5S5U.js";
12
+ } from "./chunk-7SEAZFFB.js";
13
+ import "./chunk-2ODBA7MQ.js";
14
14
  export {
15
15
  collectNativeKnowledgeChunks,
16
16
  formatNativeKnowledgeSection,
package/dist/negative.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  NegativeExampleStore
3
- } from "./chunk-GJR6D6KC.js";
4
- import "./chunk-KWBU5S5U.js";
3
+ } from "./chunk-D654IBA6.js";
4
+ import "./chunk-2ODBA7MQ.js";
5
5
  export {
6
6
  NegativeExampleStore
7
7
  };
@@ -5,31 +5,35 @@ import {
5
5
  runOperatorInventory,
6
6
  runOperatorRepair,
7
7
  runOperatorSetup
8
- } from "./chunk-QDOSNLB4.js";
9
- import "./chunk-IZME7KW2.js";
8
+ } from "./chunk-X4WESCKA.js";
9
+ import "./chunk-HITJFT7E.js";
10
10
  import "./chunk-YRMVARQP.js";
11
- import "./chunk-TVVVQQAK.js";
12
- import "./chunk-LK6SGL53.js";
13
- import "./chunk-Q6FETXJA.js";
11
+ import "./chunk-U66YHYC7.js";
12
+ import "./chunk-7PA4OZEU.js";
13
+ import "./chunk-7SEAZFFB.js";
14
14
  import "./chunk-K6WK37A6.js";
15
- import "./chunk-SCHEKPYH.js";
16
- import "./chunk-ISY75RLM.js";
15
+ import "./chunk-LK6SGL53.js";
16
+ import "./chunk-OJFGVJS6.js";
17
17
  import "./chunk-Z5LAYHGJ.js";
18
+ import "./chunk-C2EFFULQ.js";
18
19
  import "./chunk-MARWOCVP.js";
19
- import "./chunk-J3BT33K7.js";
20
- import "./chunk-QWUUMMIK.js";
21
- import "./chunk-U4PV25RD.js";
22
- import "./chunk-ESSMF2FR.js";
20
+ import "./chunk-POBPGDWI.js";
21
+ import "./chunk-QNJMBKFK.js";
22
+ import "./chunk-TBBDFYXW.js";
23
+ import "./chunk-LPSF4OQH.js";
24
+ import "./chunk-POMSFKTB.js";
25
+ import "./chunk-U2IQTSBY.js";
26
+ import "./chunk-4KAN3GZ3.js";
27
+ import "./chunk-6ZH4TU6I.js";
28
+ import "./chunk-6PFRXT4K.js";
23
29
  import "./chunk-TP4FZJIZ.js";
24
30
  import "./chunk-SCU65EZI.js";
25
31
  import "./chunk-BOUYNNYD.js";
26
- import "./chunk-DM2T26WE.js";
27
32
  import "./chunk-QSVPYQPG.js";
28
- import "./chunk-HLXVTBF3.js";
33
+ import "./chunk-DM2T26WE.js";
29
34
  import "./chunk-M62O4P4T.js";
30
- import "./chunk-KWBU5S5U.js";
31
- import "./chunk-LPSF4OQH.js";
32
- import "./chunk-QCCCQT3O.js";
35
+ import "./chunk-4DJQYKMN.js";
36
+ import "./chunk-2ODBA7MQ.js";
33
37
  export {
34
38
  runBenchmarkRecall,
35
39
  runOperatorConfigReview,
@@ -10,8 +10,8 @@ import { NegativeExampleStore } from './negative.js';
10
10
  import { LastRecallStore, TierMigrationStatusStore, GraphRecallExpandedEntry, TierMigrationStatusSnapshot, TierMigrationCycleSummary, LastRecallSnapshot } from './recall-state.js';
11
11
  import { SessionObserverState } from './session-observer-state.js';
12
12
  import { EmbeddingFallback } from './embedding-fallback.js';
13
- import { PluginConfig, QmdSearchResult, BehaviorLoopPolicyState, BootstrapOptions, BootstrapResult, MemoryFile, DaySummaryResult, MemoryActionEvent, RecallPlanMode, MemoryIntent, ExtractionResult, MemoryFrontmatter, IdentityInjectionMode } from './types.js';
14
- import { SemanticConsolidationResult } from './semantic-consolidation.js';
13
+ import { PluginConfig, QmdSearchResult, BehaviorLoopPolicyState, BootstrapOptions, BootstrapResult, ConsolidationObservation, MemoryFile, DaySummaryResult, MemoryActionEvent, RecallPlanMode, MemoryIntent, EntityTimelineEntry, ExtractionResult, MemoryFrontmatter, IdentityInjectionMode } from './types.js';
14
+ import { S as SemanticConsolidationResult } from './semantic-consolidation-DrvSYRdB.js';
15
15
  import { z } from 'zod';
16
16
  import { RuntimePolicyValues } from './policy-runtime.js';
17
17
  import { ProfilingCollector } from './profiling.js';
@@ -33,6 +33,74 @@ interface ReplayWarning {
33
33
  index?: number;
34
34
  }
35
35
 
36
+ interface BulkImportSource {
37
+ turns: ImportTurn[];
38
+ metadata: {
39
+ source: string;
40
+ exportDate: string;
41
+ messageCount: number;
42
+ dateRange: {
43
+ from: string;
44
+ to: string;
45
+ };
46
+ };
47
+ }
48
+ interface ImportTurn {
49
+ role: "user" | "assistant" | "other";
50
+ content: string;
51
+ timestamp: string;
52
+ participantId?: string;
53
+ participantName?: string;
54
+ replyToId?: string;
55
+ }
56
+ interface BulkImportOptions {
57
+ batchSize?: number;
58
+ dryRun?: boolean;
59
+ dedup?: boolean;
60
+ trustLevel?: "import";
61
+ namespace?: string;
62
+ }
63
+ type ImportSourceRole = ImportTurn["role"];
64
+ interface BulkImportResult {
65
+ memoriesCreated: number;
66
+ duplicatesSkipped: number;
67
+ entitiesCreated: number;
68
+ turnsProcessed: number;
69
+ batchesProcessed: number;
70
+ errors: BulkImportError[];
71
+ }
72
+ interface BulkImportError {
73
+ batchIndex: number;
74
+ message: string;
75
+ }
76
+ interface BulkImportSourceAdapter {
77
+ name: string;
78
+ parse(input: unknown, options?: {
79
+ strict?: boolean;
80
+ platform?: string;
81
+ }): Promise<BulkImportSource> | BulkImportSource;
82
+ }
83
+ interface ImportTurnValidationIssue {
84
+ code: string;
85
+ message: string;
86
+ index?: number;
87
+ }
88
+ declare function isImportRole(value: unknown): value is ImportSourceRole;
89
+ /**
90
+ * Parse an ISO-8601 / RFC 3339 timestamp used by bulk-import adapters.
91
+ *
92
+ * Accepts variable-precision fractional seconds and either a `Z` suffix or a
93
+ * `[+-]HH:MM` timezone offset, so adapters may preserve their source
94
+ * timestamps verbatim. Returns milliseconds since epoch, or `null` if the
95
+ * string is not a well-formed timestamp (including overflowed calendar dates
96
+ * or out-of-range offsets).
97
+ *
98
+ * Delegates to the shared parser in `utils/iso-timestamp.ts` — do not
99
+ * reimplement locally; extend that helper instead.
100
+ */
101
+ declare function parseIsoTimestamp(value: string): number | null;
102
+ declare function validateImportTurn(turn: ImportTurn, index?: number): ImportTurnValidationIssue[];
103
+
36
104
  type SummarizeFn = (text: string, targetTokens: number, aggressive: boolean) => Promise<string | null>;
37
105
 
38
106
  declare class LcmEngine {
@@ -167,10 +235,10 @@ declare const SharedFeedbackEntrySchema: z.ZodObject<{
167
235
  evidenceWindowEnd: z.ZodOptional<z.ZodString>;
168
236
  refs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
169
237
  }, "strip", z.ZodTypeAny, {
170
- date: string;
171
238
  decision: "rejected" | "approved" | "approved_with_feedback";
172
- reason: string;
173
239
  agent: string;
240
+ date: string;
241
+ reason: string;
174
242
  confidence?: number | undefined;
175
243
  tags?: string[] | undefined;
176
244
  severity?: "low" | "medium" | "high" | undefined;
@@ -181,10 +249,10 @@ declare const SharedFeedbackEntrySchema: z.ZodObject<{
181
249
  evidenceWindowStart?: string | undefined;
182
250
  evidenceWindowEnd?: string | undefined;
183
251
  }, {
184
- date: string;
185
252
  decision: "rejected" | "approved" | "approved_with_feedback";
186
- reason: string;
187
253
  agent: string;
254
+ date: string;
255
+ reason: string;
188
256
  confidence?: number | undefined;
189
257
  tags?: string[] | undefined;
190
258
  severity?: "low" | "medium" | "high" | undefined;
@@ -486,6 +554,7 @@ declare class CompoundingEngine {
486
554
  private readContinuityAuditReferences;
487
555
  }
488
556
 
557
+ declare function dedupeEntitySynthesisEvidenceEntries(entries: EntityTimelineEntry[]): EntityTimelineEntry[];
489
558
  interface GraphRecallSnapshot {
490
559
  recordedAt: string;
491
560
  mode: RecallPlanMode | string;
@@ -681,6 +750,7 @@ declare class Orchestrator {
681
750
  readonly summarizer: HourlySummarizer;
682
751
  readonly localLlm: LocalLlmClient;
683
752
  readonly fastLlm: LocalLlmClient;
753
+ private readonly judgeVerdictCache;
684
754
  private readonly fastGatewayLlm;
685
755
  readonly modelRegistry: ModelRegistry;
686
756
  readonly relevance: RelevanceStore;
@@ -721,6 +791,7 @@ declare class Orchestrator {
721
791
  private nonZeroExtractionsSinceConsolidation;
722
792
  private lastConsolidationRunAtMs;
723
793
  private consolidationInFlight;
794
+ private readonly consolidationObservers;
724
795
  private qmdMaintenanceTimer;
725
796
  private qmdMaintenancePending;
726
797
  private qmdMaintenanceInFlight;
@@ -739,6 +810,36 @@ declare class Orchestrator {
739
810
  private evalShadowWriteChain;
740
811
  private initPromise;
741
812
  private resolveInit;
813
+ /**
814
+ * Resolves when deferred initialization (QMD probe, warmup, caches, cron)
815
+ * completes. CLI and http-serve callers that need `qmd.isAvailable()` to
816
+ * reflect reality should `await orchestrator.deferredReady` after
817
+ * `initialize()`. Gateway callers can ignore it — recall() degrades
818
+ * gracefully when QMD isn't ready yet.
819
+ *
820
+ * Also resolves (without error) when `initialize()` throws before reaching
821
+ * the deferred-init phase, so callers never hang on a permanently-pending
822
+ * promise.
823
+ *
824
+ * Host adapters that need to tie deferred init to their stop() lifecycle
825
+ * should `await orchestrator.deferredReady` before proceeding with teardown
826
+ * to prevent background QMD/warmup/cron tasks from racing with shutdown.
827
+ */
828
+ deferredReady: Promise<void>;
829
+ private resolveDeferredReady;
830
+ private deferredInitAbort;
831
+ /**
832
+ * Whether the deferred init's QMD startup sync completed successfully.
833
+ * When false after deferredReady resolves, the server retry loop should
834
+ * attempt startupSearchSync() even if `qmd.isAvailable()` is true —
835
+ * availability only means probe succeeded, not that the index is current.
836
+ */
837
+ deferredSyncSucceeded: boolean;
838
+ /**
839
+ * Abort deferred initialization so background QMD sync/warmup stops
840
+ * promptly on shutdown. Safe to call multiple times or before init.
841
+ */
842
+ abortDeferredInit(): void;
742
843
  /** Set per-session workspace for the next recall() call (compaction reset). @internal */
743
844
  setRecallWorkspaceOverride(sessionKey: string, dir: string): void;
744
845
  /** Remove a per-session workspace override (cleanup on error or early return). @internal */
@@ -794,12 +895,28 @@ declare class Orchestrator {
794
895
  } | null>;
795
896
  };
796
897
  initialize(): Promise<void>;
898
+ private deferredInitialize;
899
+ /**
900
+ * Namespace-aware startup search sync. Re-probes QMD, ensures collections
901
+ * (namespace-aware when namespacesEnabled), runs update, and warms up search.
902
+ * Designed for server retry paths that run after the deferred init completes
903
+ * when QMD was not available during initial startup.
904
+ *
905
+ * Accepts an optional AbortSignal so callers can interrupt the sync during
906
+ * shutdown. The signal is checked between phases and forwarded into the QMD
907
+ * update and warmup search calls so a long-running `qmd update` subprocess
908
+ * is killed promptly rather than left in flight after `httpServer.stop()`.
909
+ *
910
+ * Returns true if the sync succeeded (QMD now available), false otherwise.
911
+ */
912
+ startupSearchSync(signal?: AbortSignal): Promise<boolean>;
797
913
  /**
798
914
  * Auto-register the engram-day-summary cron job in OpenClaw if it doesn't exist.
799
915
  * Fire-and-forget — never blocks init or crashes on failure.
800
916
  */
801
917
  private autoRegisterDaySummaryCron;
802
918
  private autoRegisterNightlyGovernanceCron;
919
+ private autoRegisterProceduralMiningCron;
803
920
  applyBehaviorRuntimePolicy(state: BehaviorLoopPolicyState): Promise<{
804
921
  applied: boolean;
805
922
  rolledBack: boolean;
@@ -814,6 +931,10 @@ declare class Orchestrator {
814
931
  merged: number;
815
932
  invalidated: number;
816
933
  }>;
934
+ reindexMemoryById(id: string, options?: {
935
+ storage?: StorageManager;
936
+ }): Promise<void>;
937
+ registerConsolidationObserver(observer: (observation: ConsolidationObservation) => Promise<void> | void): () => void;
817
938
  runSemanticConsolidationNow(options?: {
818
939
  dryRun?: boolean;
819
940
  thresholdOverride?: number;
@@ -822,6 +943,7 @@ declare class Orchestrator {
822
943
  waitForExtractionIdle(timeoutMs?: number): Promise<boolean>;
823
944
  waitForConsolidationIdle(timeoutMs?: number): Promise<boolean>;
824
945
  getStorage(namespace?: string): Promise<StorageManager>;
946
+ processEntitySynthesisQueue(namespace?: string, maxEntities?: number): Promise<number>;
825
947
  generateDaySummary(memories: string | MemoryFile[]): Promise<DaySummaryResult | null>;
826
948
  /**
827
949
  * Auto-gather today's facts and hourly summaries from storage, then generate a day summary.
@@ -947,12 +1069,83 @@ declare class Orchestrator {
947
1069
  private getRecallBudgetChars;
948
1070
  private assembleRecallSections;
949
1071
  private recallInternal;
950
- processTurn(role: "user" | "assistant", content: string, sessionKey?: string): Promise<void>;
1072
+ processTurn(role: "user" | "assistant", content: string, sessionKey?: string, options?: {
1073
+ bufferKey?: string;
1074
+ logicalSessionKey?: string;
1075
+ providerThreadId?: string | null;
1076
+ turnFingerprint?: string;
1077
+ persistProcessedFingerprint?: boolean;
1078
+ }): Promise<void>;
1079
+ flushSession(sessionKey: string, options: {
1080
+ reason: string;
1081
+ abortSignal?: AbortSignal;
1082
+ bufferKey?: string;
1083
+ }): Promise<void>;
951
1084
  ingestReplayBatch(turns: ReplayTurn[], options?: {
952
1085
  deadlineMs?: number;
953
1086
  }): Promise<void>;
954
- observeSessionHeartbeat(sessionKey: string): Promise<void>;
1087
+ /**
1088
+ * Return the namespace that `ingestBulkImportBatch` writes into (#460).
1089
+ *
1090
+ * Exposed so host CLIs can snapshot the same storage root that extraction
1091
+ * actually writes to, avoiding the "CLI counts files at namespace A while
1092
+ * writes land in namespace B" footgun that a naïve
1093
+ * `config.defaultNamespace` snapshot could hit when a namespace policy
1094
+ * named `"default"` also exists.
1095
+ *
1096
+ * Today bulk-import is pinned to `config.defaultNamespace`; future
1097
+ * per-invocation namespace routing would thread an explicit target here
1098
+ * and through `ingestBulkImportBatch`.
1099
+ */
1100
+ bulkImportWriteNamespace(): string;
1101
+ /**
1102
+ * Ingest a batch of bulk-import turns (#460). Like ingestReplayBatch, this
1103
+ * normalizes user/assistant turns into the extraction buffer and awaits
1104
+ * settlement, but it intentionally bypasses the captureMode="explicit"
1105
+ * gate because bulk-import is itself an explicit user action — the user
1106
+ * ran `bulk-import --source <name> --file ...` and would be surprised to
1107
+ * see the command silently no-op when capture is otherwise restricted.
1108
+ *
1109
+ * Turns with role="other" are skipped (not supported by the extraction
1110
+ * pipeline).
1111
+ *
1112
+ * Two design decisions worth calling out:
1113
+ *
1114
+ * - **sessionKey is truthy and per-batch-unique.**
1115
+ * `ThreadingManager.shouldStartNewThread` only applies the session-key
1116
+ * boundary check when `turn.sessionKey` is truthy (threading.ts:82);
1117
+ * with an empty string, imported turns could attach to the current
1118
+ * live thread or merge across unrelated import batches. A unique
1119
+ * `bulk-import:batch:<timestamp>-<rand>` key forces a fresh thread per
1120
+ * batch without matching common prefix/map rules in
1121
+ * `principalFromSessionKeyRules`. (Catch-all regex rules could still
1122
+ * remap the principal, but that only affects metadata provenance —
1123
+ * see the next point for why write routing is unaffected.)
1124
+ *
1125
+ * - **writeNamespaceOverride pins the storage target.**
1126
+ * We pass `writeNamespaceOverride: this.bulkImportWriteNamespace()` to
1127
+ * `queueBufferedExtraction`, which tells `runExtraction` to skip
1128
+ * `defaultNamespaceForPrincipal` and write directly into the
1129
+ * orchestrator's declared bulk-import write namespace. This keeps
1130
+ * writes deterministic even when namespace policies named `"default"`
1131
+ * exist alongside a different `config.defaultNamespace`, and also
1132
+ * guards against regex-catch-all principal rules steering bulk-import
1133
+ * into an unexpected tenant.
1134
+ *
1135
+ * Per-invocation namespace routing (letting callers target a namespace
1136
+ * other than `bulkImportWriteNamespace()`) is a separate feature tracked
1137
+ * as a follow-up — the hook is the `writeNamespaceOverride` option, but
1138
+ * the CLI surface does not yet expose a `--namespace` flag.
1139
+ */
1140
+ ingestBulkImportBatch(turns: ImportTurn[], options?: {
1141
+ deadlineMs?: number;
1142
+ }): Promise<void>;
1143
+ observeSessionHeartbeat(sessionKey: string, options?: {
1144
+ bufferKey?: string;
1145
+ }): Promise<void>;
955
1146
  private queueBufferedExtraction;
1147
+ private normalizeExtractionFingerprintTurns;
1148
+ private buildExtractionFingerprint;
956
1149
  private shouldQueueExtraction;
957
1150
  /**
958
1151
  * Background serial queue processor.
@@ -961,6 +1154,7 @@ declare class Orchestrator {
961
1154
  */
962
1155
  private processQueue;
963
1156
  private runExtraction;
1157
+ private recordProcessedExtractionFingerprint;
964
1158
  private runTierMigrationCycle;
965
1159
  getTierMigrationStatus(): Promise<TierMigrationStatusSnapshot>;
966
1160
  runTierMigrationNow(options?: {
@@ -1055,8 +1249,59 @@ declare class Orchestrator {
1055
1249
  private emitTrace;
1056
1250
  private queueEvalShadowRecall;
1057
1251
  private publishRecallResults;
1252
+ /**
1253
+ * Apply MMR over the pre-truncation recall candidate pool and then slice
1254
+ * the result to `limit`. This is the single place in the pipeline where
1255
+ * MMR runs, and it must be called *before* callers throw away candidates
1256
+ * that would otherwise sit below the final cutoff. Running MMR post-slice
1257
+ * is a no-op in the cases we care about — diverse candidates just below
1258
+ * the cutoff are already gone and can never be promoted.
1259
+ *
1260
+ * Callers must pass the full candidate pool (post-rerank, pre-slice).
1261
+ */
1262
+ private diversifyAndLimitRecallResults;
1263
+ /**
1264
+ * Apply Maximal Marginal Relevance to a section's ordered candidate list.
1265
+ *
1266
+ * Operates per-section so one redundant cluster cannot dominate a section,
1267
+ * and so one section's MMR pass cannot starve other sections. Returns the
1268
+ * input unchanged when disabled, when there are fewer than 2 candidates, or
1269
+ * when no budget information is available.
1270
+ */
1271
+ private applyMmrToQmdResults;
1058
1272
  private buildLastRecallBudgetSummary;
1059
1273
  private collectLastRecallSources;
1274
+ /**
1275
+ * Issue #373 — nearest-neighbor lookup for the write-time semantic dedup
1276
+ * guard. Returns the top-K embedding hits against the currently indexed
1277
+ * memories, or an empty array when the embedding backend is unavailable.
1278
+ * Intentionally does NOT throw; `decideSemanticDedup` treats both "empty"
1279
+ * and "error" outcomes as fail-open (keep the candidate).
1280
+ *
1281
+ * PR #399 P1 fix: when namespaces are enabled the lookup must be scoped
1282
+ * to the SAME namespace as the fact being written. Otherwise a
1283
+ * high-similarity memory from another namespace can suppress a write in
1284
+ * the target namespace — cross-tenant data loss. Callers pass the target
1285
+ * storage so we can translate its root directory into the correct index
1286
+ * path prefix (and, for the legacy default-namespace layout at
1287
+ * `memoryDir` root, an exclusion list for `namespaces/*`).
1288
+ */
1289
+ private semanticDedupLookup;
1290
+ /**
1291
+ * Resolve the namespace-scoped filter to pass into
1292
+ * `EmbeddingFallback.search()` for semantic dedup. Returns an empty
1293
+ * object (no filter) when namespaces are disabled, preserving the
1294
+ * pre-PR #399 behavior for single-tenant installs.
1295
+ *
1296
+ * Index entries are stored as paths relative to `config.memoryDir`, so:
1297
+ * - A non-default namespace `ns` lives under `namespaces/<ns>/…` and
1298
+ * we include exactly that prefix.
1299
+ * - The default namespace may live at `memoryDir` root (legacy) or at
1300
+ * `memoryDir/namespaces/<default>/…` (migrated). When it lives at
1301
+ * root we include everything but EXCLUDE all `namespaces/…` entries
1302
+ * so facts from non-default namespaces can't cross-match.
1303
+ */
1304
+ private semanticDedupScopeFor;
1060
1305
  private searchEmbeddingFallback;
1061
1306
  /**
1062
1307
  * Long-term fallback retrieval.
@@ -1101,4 +1346,4 @@ declare class Orchestrator {
1101
1346
  private readArchivedMemoriesForNamespaces;
1102
1347
  }
1103
1348
 
1104
- export { resolvePersistedMemoryRelativePath as A, resolveRecallModeDecision as B, type CompoundingPromotionReport as C, resolveRecentThreadMemoryPaths as D, shouldFilterLifecycleRecallCandidate as E, summarizeGraphShadowComparison as F, type GraphRecallSnapshot as G, type IntentDebugSnapshot as I, Orchestrator as O, type QmdRecallSnapshot as Q, type ReplaySource as R, type ReplayWarning as a, type ReplayTurn as b, type GraphRecallRankedResult as c, defaultWorkspaceDir as d, type GraphRecallShadowComparison as e, type RecallInvocationOptions as f, type RecallModeDecision as g, appendMemoryToGraphContext as h, blendGraphExpandedRecallScore as i, buildCompressionGuidelinesMarkdown as j, buildMemoryPathById as k, computeArtifactCandidateFetchLimit as l, computeArtifactRecallLimit as m, computeQmdHybridFetchLimit as n, deriveTopicsFromExtraction as o, filterRecallCandidates as p, formatCompressionGuidelinesForRecall as q, graphPathRelativeToStorage as r, sanitizeSessionKeyForFilename as s, hasIdentityRecoveryIntent as t, isArtifactMemoryPath as u, lifecycleRecallScoreAdjustment as v, mergeArtifactRecallCandidates as w, mergeGraphExpandedResults as x, resolveEffectiveIdentityInjectionMode as y, resolveEffectiveRecallMode as z };
1349
+ export { deriveTopicsFromExtraction as A, type BulkImportSource as B, type CompoundingPromotionReport as C, filterRecallCandidates as D, formatCompressionGuidelinesForRecall as E, graphPathRelativeToStorage as F, type GraphRecallSnapshot as G, hasIdentityRecoveryIntent as H, type IntentDebugSnapshot as I, isArtifactMemoryPath as J, lifecycleRecallScoreAdjustment as K, mergeArtifactRecallCandidates as L, mergeGraphExpandedResults as M, resolveEffectiveIdentityInjectionMode as N, Orchestrator as O, resolveEffectiveRecallMode as P, type QmdRecallSnapshot as Q, type ReplaySource as R, resolvePersistedMemoryRelativePath as S, resolveRecallModeDecision as T, resolveRecentThreadMemoryPaths as U, shouldFilterLifecycleRecallCandidate as V, summarizeGraphShadowComparison as W, type ReplayWarning as a, type ImportTurn as b, type BulkImportOptions as c, type BulkImportResult as d, type ReplayTurn as e, type BulkImportSourceAdapter as f, type BulkImportError as g, type ImportSourceRole as h, type ImportTurnValidationIssue as i, defaultWorkspaceDir as j, isImportRole as k, type GraphRecallRankedResult as l, type GraphRecallShadowComparison as m, type RecallInvocationOptions as n, type RecallModeDecision as o, parseIsoTimestamp as p, appendMemoryToGraphContext as q, blendGraphExpandedRecallScore as r, sanitizeSessionKeyForFilename as s, buildCompressionGuidelinesMarkdown as t, buildMemoryPathById as u, validateImportTurn as v, computeArtifactCandidateFetchLimit as w, computeArtifactRecallLimit as x, computeQmdHybridFetchLimit as y, dedupeEntitySynthesisEvidenceEntries as z };
@@ -10,12 +10,15 @@ import './negative.js';
10
10
  import './recall-state.js';
11
11
  import './session-observer-state.js';
12
12
  import './embedding-fallback.js';
13
- export { c as GraphRecallRankedResult, e as GraphRecallShadowComparison, G as GraphRecallSnapshot, I as IntentDebugSnapshot, O as Orchestrator, Q as QmdRecallSnapshot, f as RecallInvocationOptions, g as RecallModeDecision, h as appendMemoryToGraphContext, i as blendGraphExpandedRecallScore, j as buildCompressionGuidelinesMarkdown, k as buildMemoryPathById, l as computeArtifactCandidateFetchLimit, m as computeArtifactRecallLimit, n as computeQmdHybridFetchLimit, d as defaultWorkspaceDir, o as deriveTopicsFromExtraction, p as filterRecallCandidates, q as formatCompressionGuidelinesForRecall, r as graphPathRelativeToStorage, t as hasIdentityRecoveryIntent, u as isArtifactMemoryPath, v as lifecycleRecallScoreAdjustment, w as mergeArtifactRecallCandidates, x as mergeGraphExpandedResults, y as resolveEffectiveIdentityInjectionMode, z as resolveEffectiveRecallMode, A as resolvePersistedMemoryRelativePath, B as resolveRecallModeDecision, D as resolveRecentThreadMemoryPaths, s as sanitizeSessionKeyForFilename, E as shouldFilterLifecycleRecallCandidate, F as summarizeGraphShadowComparison } from './orchestrator-CIvLFHx3.js';
13
+ export { l as GraphRecallRankedResult, m as GraphRecallShadowComparison, G as GraphRecallSnapshot, I as IntentDebugSnapshot, O as Orchestrator, Q as QmdRecallSnapshot, n as RecallInvocationOptions, o as RecallModeDecision, q as appendMemoryToGraphContext, r as blendGraphExpandedRecallScore, t as buildCompressionGuidelinesMarkdown, u as buildMemoryPathById, w as computeArtifactCandidateFetchLimit, x as computeArtifactRecallLimit, y as computeQmdHybridFetchLimit, z as dedupeEntitySynthesisEvidenceEntries, j as defaultWorkspaceDir, A as deriveTopicsFromExtraction, D as filterRecallCandidates, E as formatCompressionGuidelinesForRecall, F as graphPathRelativeToStorage, H as hasIdentityRecoveryIntent, J as isArtifactMemoryPath, K as lifecycleRecallScoreAdjustment, L as mergeArtifactRecallCandidates, M as mergeGraphExpandedResults, N as resolveEffectiveIdentityInjectionMode, P as resolveEffectiveRecallMode, S as resolvePersistedMemoryRelativePath, T as resolveRecallModeDecision, U as resolveRecentThreadMemoryPaths, s as sanitizeSessionKeyForFilename, V as shouldFilterLifecycleRecallCandidate, W as summarizeGraphShadowComparison } from './orchestrator-B9kwlCep.js';
14
14
  import './types.js';
15
- import './semantic-consolidation.js';
15
+ import './semantic-consolidation-DrvSYRdB.js';
16
16
  import './policy-runtime.js';
17
17
  import './profiling.js';
18
- import './memory-projection-store-NxMkbocT.js';
18
+ import './page-versioning.js';
19
+ import './memory-projection-store-DeSXPh1j.js';
19
20
  import 'better-sqlite3';
20
21
  import './session-integrity.js';
21
22
  import 'zod';
23
+ import './codex-materialize-CQlLTzke.js';
24
+ import './logger.js';