@remnic/core 1.0.2 → 1.1.0

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 (385) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -0
  3. package/dist/abort-error.d.ts +32 -0
  4. package/dist/abort-error.js +11 -0
  5. package/dist/access-cli.d.ts +13 -3
  6. package/dist/access-cli.js +96 -80
  7. package/dist/access-cli.js.map +1 -1
  8. package/dist/access-http.d.ts +12 -4
  9. package/dist/access-http.js +25 -18
  10. package/dist/access-mcp.d.ts +32 -4
  11. package/dist/access-mcp.js +16 -1
  12. package/dist/access-schema.d.ts +28 -28
  13. package/dist/access-schema.js +1 -1
  14. package/dist/access-service-HmO1Trrx.d.ts +732 -0
  15. package/dist/access-service.d.ts +15 -601
  16. package/dist/access-service.js +21 -15
  17. package/dist/active-memory-bridge.d.ts +66 -0
  18. package/dist/active-memory-bridge.js +11 -0
  19. package/dist/active-memory-bridge.js.map +1 -0
  20. package/dist/active-recall.d.ts +96 -0
  21. package/dist/active-recall.js +308 -0
  22. package/dist/active-recall.js.map +1 -0
  23. package/dist/behavior-learner.js +1 -1
  24. package/dist/bootstrap.d.ts +6 -3
  25. package/dist/bootstrap.js +2 -2
  26. package/dist/boxes.js +2 -2
  27. package/dist/briefing.d.ts +169 -0
  28. package/dist/briefing.js +52 -0
  29. package/dist/briefing.js.map +1 -0
  30. package/dist/buffer.d.ts +19 -5
  31. package/dist/buffer.js +2 -2
  32. package/dist/calibration.js +6 -6
  33. package/dist/causal-behavior.js +5 -5
  34. package/dist/causal-chain.js +3 -3
  35. package/dist/causal-consolidation.d.ts +22 -2
  36. package/dist/causal-consolidation.js +36 -9
  37. package/dist/causal-consolidation.js.map +1 -1
  38. package/dist/causal-retrieval.js +6 -6
  39. package/dist/causal-trajectory-graph.js +1 -1
  40. package/dist/causal-trajectory.d.ts +14 -1
  41. package/dist/causal-trajectory.js +5 -1
  42. package/dist/{chunk-KWBU5S5U.js → chunk-2ODBA7MQ.js} +9 -3
  43. package/dist/chunk-2ODBA7MQ.js.map +1 -0
  44. package/dist/{chunk-ZJLY4QSU.js → chunk-37UIFYWO.js} +130 -6
  45. package/dist/chunk-37UIFYWO.js.map +1 -0
  46. package/dist/chunk-3PG3H5TD.js +7 -0
  47. package/dist/chunk-3PG3H5TD.js.map +1 -0
  48. package/dist/{chunk-NTTLPF7F.js → chunk-3QFQGRHO.js} +5 -5
  49. package/dist/{chunk-QDOSNLB4.js → chunk-3QHL5ABG.js} +17 -15
  50. package/dist/chunk-3QHL5ABG.js.map +1 -0
  51. package/dist/{chunk-6UJQNRIO.js → chunk-3SV6CQHO.js} +92 -33
  52. package/dist/chunk-3SV6CQHO.js.map +1 -0
  53. package/dist/{chunk-U4PV25RD.js → chunk-3WHVNEN7.js} +1 -1
  54. package/dist/chunk-3WHVNEN7.js.map +1 -0
  55. package/dist/{chunk-XUHI52HK.js → chunk-44ICJRF3.js} +98 -10
  56. package/dist/chunk-44ICJRF3.js.map +1 -0
  57. package/dist/{chunk-HG2NKWR2.js → chunk-47UU5PU2.js} +49 -10
  58. package/dist/chunk-47UU5PU2.js.map +1 -0
  59. package/dist/chunk-4DJQYKMN.js +187 -0
  60. package/dist/chunk-4DJQYKMN.js.map +1 -0
  61. package/dist/chunk-4KAN3GZ3.js +225 -0
  62. package/dist/chunk-4KAN3GZ3.js.map +1 -0
  63. package/dist/chunk-4LACOVZX.js +813 -0
  64. package/dist/chunk-4LACOVZX.js.map +1 -0
  65. package/dist/{chunk-ORZMT74A.js → chunk-4NRAJUDS.js} +11 -1
  66. package/dist/chunk-4NRAJUDS.js.map +1 -0
  67. package/dist/{chunk-B7LOFDVE.js → chunk-4WMCPJWX.js} +8 -3
  68. package/dist/chunk-4WMCPJWX.js.map +1 -0
  69. package/dist/{chunk-G3AG3KZN.js → chunk-5IZL4DCV.js} +2 -2
  70. package/dist/{chunk-BRK4ODMI.js → chunk-5NPGSAVB.js} +2 -2
  71. package/dist/{chunk-QANCTXQF.js → chunk-6LX5ORAS.js} +3 -3
  72. package/dist/chunk-6MKAMLQL.js +16 -0
  73. package/dist/chunk-6MKAMLQL.js.map +1 -0
  74. package/dist/{chunk-ESSMF2FR.js → chunk-6PFRXT4K.js} +15 -6
  75. package/dist/chunk-6PFRXT4K.js.map +1 -0
  76. package/dist/{chunk-UIYZ5T3I.js → chunk-6UJ47TVX.js} +8 -8
  77. package/dist/chunk-6ZH4TU6I.js +245 -0
  78. package/dist/chunk-6ZH4TU6I.js.map +1 -0
  79. package/dist/{chunk-L5RPWGFK.js → chunk-7DHTMOND.js} +2 -2
  80. package/dist/{chunk-L7WO3MZ4.js → chunk-7ECD5ATE.js} +2 -2
  81. package/dist/{chunk-Q6FETXJA.js → chunk-7SEAZFFB.js} +2 -2
  82. package/dist/{chunk-V4YC4LUK.js → chunk-7WQ6SLIE.js} +175 -63
  83. package/dist/chunk-7WQ6SLIE.js.map +1 -0
  84. package/dist/chunk-ALXMCZEU.js +332 -0
  85. package/dist/chunk-ALXMCZEU.js.map +1 -0
  86. package/dist/{chunk-TVVVQQAK.js → chunk-BLKTA7MM.js} +58 -24
  87. package/dist/chunk-BLKTA7MM.js.map +1 -0
  88. package/dist/{chunk-SCHEKPYH.js → chunk-C2EFFULQ.js} +1 -1
  89. package/dist/{chunk-GJR6D6KC.js → chunk-D654IBA6.js} +2 -2
  90. package/dist/{chunk-OTFNI3OO.js → chunk-DEPL3635.js} +1828 -401
  91. package/dist/chunk-DEPL3635.js.map +1 -0
  92. package/dist/{chunk-UYSKNO6E.js → chunk-DHHP2Z4X.js} +15 -4
  93. package/dist/chunk-DHHP2Z4X.js.map +1 -0
  94. package/dist/{chunk-UV2FO7J4.js → chunk-E6K4NIEU.js} +2 -2
  95. package/dist/{chunk-T4WRIV2C.js → chunk-EABGC2TL.js} +2 -2
  96. package/dist/chunk-EJI5XIBB.js +232 -0
  97. package/dist/chunk-EJI5XIBB.js.map +1 -0
  98. package/dist/{chunk-ONRU4L2N.js → chunk-FEMOX5AD.js} +2 -2
  99. package/dist/{chunk-IFFFR3MR.js → chunk-FSFEQI74.js} +3 -3
  100. package/dist/chunk-G4SK7DSQ.js +121 -0
  101. package/dist/chunk-G4SK7DSQ.js.map +1 -0
  102. package/dist/{chunk-WWIQTB2Y.js → chunk-GGD5W7TB.js} +9 -2
  103. package/dist/chunk-GGD5W7TB.js.map +1 -0
  104. package/dist/{chunk-QWUUMMIK.js → chunk-GV6NLQ4X.js} +1355 -80
  105. package/dist/chunk-GV6NLQ4X.js.map +1 -0
  106. package/dist/{chunk-2PO5ZRKV.js → chunk-GZCUW5IC.js} +16 -3
  107. package/dist/chunk-GZCUW5IC.js.map +1 -0
  108. package/dist/{chunk-AAI7JARD.js → chunk-HMDCOMYU.js} +8 -11
  109. package/dist/chunk-HMDCOMYU.js.map +1 -0
  110. package/dist/chunk-IQT3XTKW.js +121 -0
  111. package/dist/chunk-IQT3XTKW.js.map +1 -0
  112. package/dist/{chunk-J3BT33K7.js → chunk-ITRLGI2T.js} +5 -5
  113. package/dist/{chunk-BDFZXRSO.js → chunk-J4IYOZZ5.js} +15 -2
  114. package/dist/chunk-J4IYOZZ5.js.map +1 -0
  115. package/dist/{chunk-J47FNDR7.js → chunk-JIU55F3X.js} +7 -7
  116. package/dist/{chunk-MDDAA2AO.js → chunk-JL2PU6AI.js} +17 -6
  117. package/dist/chunk-JL2PU6AI.js.map +1 -0
  118. package/dist/{chunk-ZKYI7UVO.js → chunk-JR4ZC3G4.js} +2 -2
  119. package/dist/{chunk-UCYSTFZR.js → chunk-JRNQ3RNA.js} +2 -2
  120. package/dist/{chunk-GPGBSNKM.js → chunk-K4FLSOR5.js} +2 -2
  121. package/dist/chunk-KVE7R4CG.js +320 -0
  122. package/dist/chunk-KVE7R4CG.js.map +1 -0
  123. package/dist/chunk-LAYN4LDC.js +267 -0
  124. package/dist/chunk-LAYN4LDC.js.map +1 -0
  125. package/dist/{chunk-ISY75RLM.js → chunk-MBJHSA7F.js} +344 -7
  126. package/dist/chunk-MBJHSA7F.js.map +1 -0
  127. package/dist/{chunk-PGK3VUHN.js → chunk-MTLYEMJB.js} +3 -2
  128. package/dist/chunk-MTLYEMJB.js.map +1 -0
  129. package/dist/{chunk-QY2BHY5O.js → chunk-MVTHXUBX.js} +297 -34
  130. package/dist/chunk-MVTHXUBX.js.map +1 -0
  131. package/dist/{chunk-LP47L3ZX.js → chunk-N42IWANG.js} +5 -5
  132. package/dist/{chunk-YNI4S5WT.js → chunk-N53K2EXC.js} +2 -2
  133. package/dist/{chunk-763GUIOU.js → chunk-NBNN5GOB.js} +2 -2
  134. package/dist/{chunk-CXWFUJR2.js → chunk-NQEVYWX6.js} +195 -5
  135. package/dist/chunk-NQEVYWX6.js.map +1 -0
  136. package/dist/{chunk-KL4CP4SB.js → chunk-O5ETUNBT.js} +17 -5
  137. package/dist/chunk-O5ETUNBT.js.map +1 -0
  138. package/dist/{chunk-OOSWAUYB.js → chunk-ODWDQNRE.js} +2 -2
  139. package/dist/chunk-OIT5QGG4.js +80 -0
  140. package/dist/chunk-OIT5QGG4.js.map +1 -0
  141. package/dist/{chunk-HLBYLYRD.js → chunk-PAORGQRI.js} +70 -13
  142. package/dist/chunk-PAORGQRI.js.map +1 -0
  143. package/dist/chunk-PVGDJXVK.js +21 -0
  144. package/dist/chunk-PVGDJXVK.js.map +1 -0
  145. package/dist/{chunk-OTAVQCSF.js → chunk-PYXS46O7.js} +2 -2
  146. package/dist/chunk-QDW3E4RD.js +108 -0
  147. package/dist/chunk-QDW3E4RD.js.map +1 -0
  148. package/dist/{chunk-YNCQ7E4M.js → chunk-QDYXG4CS.js} +4 -3
  149. package/dist/chunk-QDYXG4CS.js.map +1 -0
  150. package/dist/{chunk-HLXVTBF3.js → chunk-QNJMBKFK.js} +3 -2
  151. package/dist/chunk-QNJMBKFK.js.map +1 -0
  152. package/dist/{chunk-4A24LIM2.js → chunk-S75M5ZRK.js} +2 -2
  153. package/dist/chunk-SYUK3VLY.js +789 -0
  154. package/dist/chunk-SYUK3VLY.js.map +1 -0
  155. package/dist/{chunk-QCCCQT3O.js → chunk-TBBDFYXW.js} +2 -2
  156. package/dist/chunk-TBBDFYXW.js.map +1 -0
  157. package/dist/chunk-U66YHYC7.js +31 -0
  158. package/dist/chunk-U66YHYC7.js.map +1 -0
  159. package/dist/{chunk-MWGVGUIS.js → chunk-UEYA6UC7.js} +36 -4
  160. package/dist/chunk-UEYA6UC7.js.map +1 -0
  161. package/dist/{chunk-M5KEYE5E.js → chunk-URB2WSKZ.js} +2 -2
  162. package/dist/chunk-UVJFDP7P.js +202 -0
  163. package/dist/chunk-UVJFDP7P.js.map +1 -0
  164. package/dist/chunk-W6SL7OFG.js +180 -0
  165. package/dist/chunk-W6SL7OFG.js.map +1 -0
  166. package/dist/chunk-WBSAYXVI.js +7945 -0
  167. package/dist/chunk-WBSAYXVI.js.map +1 -0
  168. package/dist/{chunk-M5ZBBBJI.js → chunk-XZ2TIKGC.js} +39 -9
  169. package/dist/chunk-XZ2TIKGC.js.map +1 -0
  170. package/dist/chunk-Y4FHOFJ2.js +140 -0
  171. package/dist/chunk-Y4FHOFJ2.js.map +1 -0
  172. package/dist/chunk-YDBIWGNI.js +298 -0
  173. package/dist/chunk-YDBIWGNI.js.map +1 -0
  174. package/dist/chunk-YNB73F22.js +137 -0
  175. package/dist/chunk-YNB73F22.js.map +1 -0
  176. package/dist/{chunk-IZME7KW2.js → chunk-ZVBB3T7V.js} +31 -12
  177. package/dist/chunk-ZVBB3T7V.js.map +1 -0
  178. package/dist/chunking.js +1 -1
  179. package/dist/citations.d.ts +67 -0
  180. package/dist/citations.js +13 -0
  181. package/dist/citations.js.map +1 -0
  182. package/dist/cli-BneVIEvh.d.ts +1240 -0
  183. package/dist/cli.d.ts +32 -1147
  184. package/dist/cli.js +150 -7092
  185. package/dist/cli.js.map +1 -1
  186. package/dist/codex-materialize-CQlLTzke.d.ts +139 -0
  187. package/dist/codex-thread-key.d.ts +3 -0
  188. package/dist/codex-thread-key.js +7 -0
  189. package/dist/codex-thread-key.js.map +1 -0
  190. package/dist/config.js +3 -2
  191. package/dist/connectors/codex/instructions.md +160 -0
  192. package/dist/connectors/codex/resources/namespace-cheatsheet.md +48 -0
  193. package/dist/contradiction-review-WIUBAR52.js +21 -0
  194. package/dist/contradiction-review-WIUBAR52.js.map +1 -0
  195. package/dist/contradiction-scan-GR33PONM.js +376 -0
  196. package/dist/contradiction-scan-GR33PONM.js.map +1 -0
  197. package/dist/day-summary.d.ts +7 -2
  198. package/dist/day-summary.js +5 -2
  199. package/dist/direct-answer-wiring.d.ts +77 -0
  200. package/dist/direct-answer-wiring.js +75 -0
  201. package/dist/direct-answer-wiring.js.map +1 -0
  202. package/dist/direct-answer.d.ts +106 -0
  203. package/dist/direct-answer.js +10 -0
  204. package/dist/direct-answer.js.map +1 -0
  205. package/dist/embedding-fallback.d.ts +96 -2
  206. package/dist/embedding-fallback.js +6 -4
  207. package/dist/{engine-2A6J4XEX.js → engine-5TIQBYZR.js} +10 -7
  208. package/dist/engine-5TIQBYZR.js.map +1 -0
  209. package/dist/entity-retrieval.d.ts +3 -2
  210. package/dist/entity-retrieval.js +10 -7
  211. package/dist/entity-schema.d.ts +11 -0
  212. package/dist/entity-schema.js +19 -0
  213. package/dist/entity-schema.js.map +1 -0
  214. package/dist/explicit-capture.d.ts +6 -3
  215. package/dist/explicit-capture.js +2 -2
  216. package/dist/extraction-judge.d.ts +66 -0
  217. package/dist/extraction-judge.js +18 -0
  218. package/dist/extraction-judge.js.map +1 -0
  219. package/dist/extraction.d.ts +1 -0
  220. package/dist/extraction.js +12 -10
  221. package/dist/fallback-llm.d.ts +11 -2
  222. package/dist/fallback-llm.js +4 -4
  223. package/dist/graph.js +1 -1
  224. package/dist/harmonic-retrieval.js +2 -1
  225. package/dist/importance.d.ts +11 -1
  226. package/dist/importance.js +3 -1
  227. package/dist/index.d.ts +1027 -9
  228. package/dist/index.js +3303 -349
  229. package/dist/index.js.map +1 -1
  230. package/dist/intent.d.ts +2 -1
  231. package/dist/intent.js +3 -1
  232. package/dist/lifecycle.js +1 -1
  233. package/dist/local-llm.d.ts +10 -3
  234. package/dist/local-llm.js +2 -2
  235. package/dist/logger.d.ts +1 -1
  236. package/dist/logger.js +1 -1
  237. package/dist/memory-cache.d.ts +2 -2
  238. package/dist/memory-cache.js +1 -1
  239. package/dist/{memory-projection-store-NxMkbocT.d.ts → memory-projection-store-DeSXPh1j.d.ts} +1 -1
  240. package/dist/memory-projection-store.d.ts +1 -1
  241. package/dist/model-registry.js +2 -2
  242. package/dist/models-json.js +2 -2
  243. package/dist/native-knowledge.js +2 -2
  244. package/dist/negative.js +2 -2
  245. package/dist/operator-toolkit.js +20 -15
  246. package/dist/{orchestrator-zTa-Qo-1.d.ts → orchestrator-DRYA6_lW.d.ts} +273 -9
  247. package/dist/orchestrator.d.ts +6 -3
  248. package/dist/orchestrator.js +76 -63
  249. package/dist/page-versioning.d.ts +77 -0
  250. package/dist/page-versioning.js +15 -0
  251. package/dist/page-versioning.js.map +1 -0
  252. package/dist/plugin-id.d.ts +37 -0
  253. package/dist/plugin-id.js +11 -0
  254. package/dist/plugin-id.js.map +1 -0
  255. package/dist/policy-runtime.js +2 -2
  256. package/dist/profiling.js +2 -2
  257. package/dist/qmd.d.ts +5 -2
  258. package/dist/qmd.js +4 -3
  259. package/dist/recall-audit.d.ts +20 -0
  260. package/dist/recall-audit.js +50 -0
  261. package/dist/recall-audit.js.map +1 -0
  262. package/dist/recall-mmr.d.ts +152 -0
  263. package/dist/recall-mmr.js +17 -0
  264. package/dist/recall-mmr.js.map +1 -0
  265. package/dist/recall-qos.js +2 -2
  266. package/dist/recall-state.d.ts +28 -1
  267. package/dist/recall-state.js +2 -2
  268. package/dist/relevance.js +2 -2
  269. package/dist/resolution-QBTDHTG7.js +100 -0
  270. package/dist/resolution-QBTDHTG7.js.map +1 -0
  271. package/dist/resolve-provider-secret.d.ts +24 -1
  272. package/dist/resolve-provider-secret.js +4 -2
  273. package/dist/resume-bundles.js +6 -5
  274. package/dist/retrieval-agents.js +2 -2
  275. package/dist/retrieval.js +2 -2
  276. package/dist/schemas.d.ts +412 -54
  277. package/dist/schemas.js +3 -1
  278. package/dist/sdk-compat.d.ts +2 -0
  279. package/dist/sdk-compat.js +6 -3
  280. package/dist/sdk-compat.js.map +1 -1
  281. package/dist/semantic-chunking.d.ts +87 -0
  282. package/dist/semantic-chunking.js +20 -0
  283. package/dist/semantic-chunking.js.map +1 -0
  284. package/dist/semantic-consolidation-DrvSYRdB.d.ts +119 -0
  285. package/dist/semantic-consolidation.d.ts +4 -42
  286. package/dist/semantic-consolidation.js +23 -2
  287. package/dist/semantic-rule-promotion.js +9 -6
  288. package/dist/semantic-rule-verifier.js +10 -7
  289. package/dist/session-observer-state.js +2 -2
  290. package/dist/session-toggles.d.ts +22 -0
  291. package/dist/session-toggles.js +116 -0
  292. package/dist/session-toggles.js.map +1 -0
  293. package/dist/skills-registry.d.ts +47 -0
  294. package/dist/skills-registry.js +48 -0
  295. package/dist/skills-registry.js.map +1 -0
  296. package/dist/source-attribution.d.ts +169 -0
  297. package/dist/source-attribution.js +27 -0
  298. package/dist/source-attribution.js.map +1 -0
  299. package/dist/storage.d.ts +171 -10
  300. package/dist/storage.js +16 -5
  301. package/dist/summarizer.js +7 -7
  302. package/dist/temporal-supersession.d.ts +127 -0
  303. package/dist/temporal-supersession.js +20 -0
  304. package/dist/temporal-supersession.js.map +1 -0
  305. package/dist/threading.js +2 -2
  306. package/dist/tier-migration.d.ts +2 -1
  307. package/dist/tier-routing.js +2 -2
  308. package/dist/tokens.d.ts +21 -1
  309. package/dist/tokens.js +5 -1
  310. package/dist/transcript.js +2 -2
  311. package/dist/types-DJhqDJUV.d.ts +50 -0
  312. package/dist/types.d.ts +529 -3
  313. package/dist/types.js +1 -1
  314. package/dist/utility-learner.js +2 -2
  315. package/dist/utility-runtime.js +3 -3
  316. package/dist/verified-recall.js +11 -8
  317. package/dist/whitespace.d.ts +4 -0
  318. package/dist/whitespace.js +9 -0
  319. package/dist/whitespace.js.map +1 -0
  320. package/package.json +14 -8
  321. package/dist/chunk-2CJCWDMR.js +0 -87
  322. package/dist/chunk-2CJCWDMR.js.map +0 -1
  323. package/dist/chunk-2PO5ZRKV.js.map +0 -1
  324. package/dist/chunk-6UJQNRIO.js.map +0 -1
  325. package/dist/chunk-AAI7JARD.js.map +0 -1
  326. package/dist/chunk-B7LOFDVE.js.map +0 -1
  327. package/dist/chunk-BDFZXRSO.js.map +0 -1
  328. package/dist/chunk-CXWFUJR2.js.map +0 -1
  329. package/dist/chunk-DORBM6OB.js +0 -81
  330. package/dist/chunk-DORBM6OB.js.map +0 -1
  331. package/dist/chunk-ESSMF2FR.js.map +0 -1
  332. package/dist/chunk-HG2NKWR2.js.map +0 -1
  333. package/dist/chunk-HLBYLYRD.js.map +0 -1
  334. package/dist/chunk-HLXVTBF3.js.map +0 -1
  335. package/dist/chunk-ISY75RLM.js.map +0 -1
  336. package/dist/chunk-IZME7KW2.js.map +0 -1
  337. package/dist/chunk-KL4CP4SB.js.map +0 -1
  338. package/dist/chunk-KWBU5S5U.js.map +0 -1
  339. package/dist/chunk-M5ZBBBJI.js.map +0 -1
  340. package/dist/chunk-MDDAA2AO.js.map +0 -1
  341. package/dist/chunk-MWGVGUIS.js.map +0 -1
  342. package/dist/chunk-ORZMT74A.js.map +0 -1
  343. package/dist/chunk-OTFNI3OO.js.map +0 -1
  344. package/dist/chunk-PGK3VUHN.js.map +0 -1
  345. package/dist/chunk-QCCCQT3O.js.map +0 -1
  346. package/dist/chunk-QDOSNLB4.js.map +0 -1
  347. package/dist/chunk-QPKFPHOO.js +0 -178
  348. package/dist/chunk-QPKFPHOO.js.map +0 -1
  349. package/dist/chunk-QWUUMMIK.js.map +0 -1
  350. package/dist/chunk-QY2BHY5O.js.map +0 -1
  351. package/dist/chunk-TVVVQQAK.js.map +0 -1
  352. package/dist/chunk-U4PV25RD.js.map +0 -1
  353. package/dist/chunk-UYSKNO6E.js.map +0 -1
  354. package/dist/chunk-V4YC4LUK.js.map +0 -1
  355. package/dist/chunk-WWIQTB2Y.js.map +0 -1
  356. package/dist/chunk-XUHI52HK.js.map +0 -1
  357. package/dist/chunk-YNCQ7E4M.js.map +0 -1
  358. package/dist/chunk-ZJLY4QSU.js.map +0 -1
  359. /package/dist/{engine-2A6J4XEX.js.map → abort-error.js.map} +0 -0
  360. /package/dist/{chunk-NTTLPF7F.js.map → chunk-3QFQGRHO.js.map} +0 -0
  361. /package/dist/{chunk-G3AG3KZN.js.map → chunk-5IZL4DCV.js.map} +0 -0
  362. /package/dist/{chunk-BRK4ODMI.js.map → chunk-5NPGSAVB.js.map} +0 -0
  363. /package/dist/{chunk-QANCTXQF.js.map → chunk-6LX5ORAS.js.map} +0 -0
  364. /package/dist/{chunk-UIYZ5T3I.js.map → chunk-6UJ47TVX.js.map} +0 -0
  365. /package/dist/{chunk-L5RPWGFK.js.map → chunk-7DHTMOND.js.map} +0 -0
  366. /package/dist/{chunk-L7WO3MZ4.js.map → chunk-7ECD5ATE.js.map} +0 -0
  367. /package/dist/{chunk-Q6FETXJA.js.map → chunk-7SEAZFFB.js.map} +0 -0
  368. /package/dist/{chunk-SCHEKPYH.js.map → chunk-C2EFFULQ.js.map} +0 -0
  369. /package/dist/{chunk-GJR6D6KC.js.map → chunk-D654IBA6.js.map} +0 -0
  370. /package/dist/{chunk-UV2FO7J4.js.map → chunk-E6K4NIEU.js.map} +0 -0
  371. /package/dist/{chunk-T4WRIV2C.js.map → chunk-EABGC2TL.js.map} +0 -0
  372. /package/dist/{chunk-ONRU4L2N.js.map → chunk-FEMOX5AD.js.map} +0 -0
  373. /package/dist/{chunk-IFFFR3MR.js.map → chunk-FSFEQI74.js.map} +0 -0
  374. /package/dist/{chunk-J3BT33K7.js.map → chunk-ITRLGI2T.js.map} +0 -0
  375. /package/dist/{chunk-J47FNDR7.js.map → chunk-JIU55F3X.js.map} +0 -0
  376. /package/dist/{chunk-ZKYI7UVO.js.map → chunk-JR4ZC3G4.js.map} +0 -0
  377. /package/dist/{chunk-UCYSTFZR.js.map → chunk-JRNQ3RNA.js.map} +0 -0
  378. /package/dist/{chunk-GPGBSNKM.js.map → chunk-K4FLSOR5.js.map} +0 -0
  379. /package/dist/{chunk-LP47L3ZX.js.map → chunk-N42IWANG.js.map} +0 -0
  380. /package/dist/{chunk-YNI4S5WT.js.map → chunk-N53K2EXC.js.map} +0 -0
  381. /package/dist/{chunk-763GUIOU.js.map → chunk-NBNN5GOB.js.map} +0 -0
  382. /package/dist/{chunk-OOSWAUYB.js.map → chunk-ODWDQNRE.js.map} +0 -0
  383. /package/dist/{chunk-OTAVQCSF.js.map → chunk-PYXS46O7.js.map} +0 -0
  384. /package/dist/{chunk-4A24LIM2.js.map → chunk-S75M5ZRK.js.map} +0 -0
  385. /package/dist/{chunk-M5KEYE5E.js.map → chunk-URB2WSKZ.js.map} +0 -0
@@ -1,8 +1,11 @@
1
1
  import {
2
- canReadNamespace,
3
- canWriteNamespace,
4
- resolvePrincipal
5
- } from "./chunk-N5AKDXAI.js";
2
+ buildProposedActions,
3
+ buildQualityScore,
4
+ groupActionsByStatus,
5
+ listMemoryGovernanceRuns,
6
+ readMemoryGovernanceRunArtifact,
7
+ runMemoryGovernance
8
+ } from "./chunk-ITRLGI2T.js";
6
9
  import {
7
10
  getTrustZoneStoreStatus,
8
11
  isTrustZoneName,
@@ -13,23 +16,39 @@ import {
13
16
  summarizeTrustZonePromotionReadiness
14
17
  } from "./chunk-EQINRHYR.js";
15
18
  import {
16
- buildProposedActions,
17
- buildQualityScore,
18
- groupActionsByStatus,
19
- listMemoryGovernanceRuns,
20
- readMemoryGovernanceRunArtifact,
21
- runMemoryGovernance
22
- } from "./chunk-J3BT33K7.js";
19
+ persistExplicitCapture,
20
+ queueExplicitCaptureForReview,
21
+ validateExplicitCaptureInput
22
+ } from "./chunk-QDYXG4CS.js";
23
23
  import {
24
24
  wrapWorkLayerContext
25
25
  } from "./chunk-EEQLFRUM.js";
26
26
  import {
27
- parseEntityFile
28
- } from "./chunk-QWUUMMIK.js";
27
+ buildProcedurePersistBody,
28
+ normalizeProcedureSteps
29
+ } from "./chunk-QDW3E4RD.js";
29
30
  import {
30
- inferMemoryStatus,
31
- toMemoryPathRel
32
- } from "./chunk-TP4FZJIZ.js";
31
+ filterTrajectoriesByLookbackDays,
32
+ readCausalTrajectoryRecords
33
+ } from "./chunk-4NRAJUDS.js";
34
+ import {
35
+ canReadNamespace,
36
+ canWriteNamespace,
37
+ resolvePrincipal
38
+ } from "./chunk-N5AKDXAI.js";
39
+ import {
40
+ AccessIdempotencyStore,
41
+ hashAccessIdempotencyPayload
42
+ } from "./chunk-XKECPATV.js";
43
+ import {
44
+ FileCalendarSource,
45
+ buildBriefing,
46
+ parseBriefingFocus,
47
+ parseBriefingWindow
48
+ } from "./chunk-4LACOVZX.js";
49
+ import {
50
+ parseEntityFile
51
+ } from "./chunk-GV6NLQ4X.js";
33
52
  import {
34
53
  normalizeProjectionPreview,
35
54
  normalizeProjectionTags
@@ -38,17 +57,12 @@ import {
38
57
  getMemoryProjectionPath
39
58
  } from "./chunk-BOUYNNYD.js";
40
59
  import {
41
- persistExplicitCapture,
42
- queueExplicitCaptureForReview,
43
- validateExplicitCaptureInput
44
- } from "./chunk-YNCQ7E4M.js";
60
+ inferMemoryStatus,
61
+ toMemoryPathRel
62
+ } from "./chunk-TP4FZJIZ.js";
45
63
  import {
46
64
  log
47
- } from "./chunk-KWBU5S5U.js";
48
- import {
49
- AccessIdempotencyStore,
50
- hashAccessIdempotencyPayload
51
- } from "./chunk-XKECPATV.js";
65
+ } from "./chunk-2ODBA7MQ.js";
52
66
 
53
67
  // src/access-service.ts
54
68
  import { stat } from "fs/promises";
@@ -662,6 +676,102 @@ async function importWorkBoardSnapshot(options) {
662
676
  return { created, updated };
663
677
  }
664
678
 
679
+ // src/procedural/procedure-miner.ts
680
+ var PROCEDURE_CLUSTER_ATTR_MAX = 500;
681
+ function clusterKey(record) {
682
+ const goal = record.goal.trim().toLowerCase().replace(/\s+/g, " ").slice(0, 120);
683
+ const refs = [...record.entityRefs ?? []].map((r) => r.trim().toLowerCase()).sort();
684
+ return `${goal}|${refs.join(",")}`;
685
+ }
686
+ function successRate(group) {
687
+ if (group.length === 0) return 0;
688
+ const ok = group.filter((g) => g.outcomeKind === "success" || g.outcomeKind === "partial").length;
689
+ return ok / group.length;
690
+ }
691
+ function pseudoStepsFromCluster(group) {
692
+ const sentences = [];
693
+ const pushUnique = (raw) => {
694
+ const t = raw.trim();
695
+ if (t.length < 8) return;
696
+ if (!sentences.includes(t)) sentences.push(t);
697
+ };
698
+ for (const g of group) {
699
+ const parts = [g.actionSummary, g.observationSummary, g.outcomeSummary].join(" ").split(/[.!?]\s+|;|\n+/).map((s) => s.trim()).filter((s) => s.length > 12);
700
+ for (const p of parts) pushUnique(p);
701
+ if (sentences.length >= 5) break;
702
+ }
703
+ if (sentences.length < 2 && group[0]) {
704
+ pushUnique(`${group[0].goal.trim()} \u2014 confirm prerequisites and context.`);
705
+ pushUnique("Execute the planned actions, then record the outcome.");
706
+ }
707
+ return sentences.slice(0, 6).map((intent, i) => ({
708
+ order: i + 1,
709
+ intent
710
+ }));
711
+ }
712
+ async function hasExistingClusterWrite(storage, cluster) {
713
+ const clusterKey2 = cluster.slice(0, PROCEDURE_CLUSTER_ATTR_MAX);
714
+ const memories = await storage.readAllMemories();
715
+ for (const m of memories) {
716
+ if (m.frontmatter.category !== "procedure") continue;
717
+ const c = m.frontmatter.structuredAttributes?.procedure_cluster;
718
+ if (c === clusterKey2) return true;
719
+ }
720
+ return false;
721
+ }
722
+ async function runProcedureMining(options) {
723
+ const cfg = options.config.procedural;
724
+ if (!cfg?.enabled) {
725
+ return { clustersProcessed: 0, proceduresWritten: 0, skippedReason: "procedural_disabled" };
726
+ }
727
+ if (cfg.minOccurrences <= 0) {
728
+ return { clustersProcessed: 0, proceduresWritten: 0, skippedReason: "minOccurrences_zero" };
729
+ }
730
+ const trajectoryDir = typeof options.config.causalTrajectoryStoreDir === "string" && options.config.causalTrajectoryStoreDir.trim().length > 0 ? options.config.causalTrajectoryStoreDir.trim() : void 0;
731
+ const { trajectories } = await readCausalTrajectoryRecords({
732
+ memoryDir: options.memoryDir,
733
+ causalTrajectoryStoreDir: trajectoryDir
734
+ });
735
+ const recent = filterTrajectoriesByLookbackDays(trajectories, cfg.lookbackDays);
736
+ const clusters = /* @__PURE__ */ new Map();
737
+ for (const t of recent) {
738
+ const key = clusterKey(t);
739
+ const arr = clusters.get(key) ?? [];
740
+ arr.push(t);
741
+ clusters.set(key, arr);
742
+ }
743
+ let clustersProcessed = 0;
744
+ let proceduresWritten = 0;
745
+ for (const [key, group] of clusters) {
746
+ if (group.length < cfg.minOccurrences) continue;
747
+ const rate = successRate(group);
748
+ if (rate < cfg.successFloor) continue;
749
+ clustersProcessed += 1;
750
+ if (await hasExistingClusterWrite(options.storage, key)) {
751
+ log.debug(`procedure-miner: skip duplicate cluster key=${key.slice(0, 40)}\u2026`);
752
+ continue;
753
+ }
754
+ const steps = normalizeProcedureSteps(pseudoStepsFromCluster(group));
755
+ if (steps.length < 2) continue;
756
+ const title = `When you work on goals like: ${group[0].goal.trim().slice(0, 140)}`;
757
+ const body = buildProcedurePersistBody(title, steps);
758
+ const promote = cfg.autoPromoteEnabled === true && group.length >= cfg.autoPromoteOccurrences && rate >= cfg.successFloor;
759
+ await options.storage.writeMemory("procedure", body, {
760
+ source: "procedure-miner",
761
+ status: promote ? "active" : "pending_review",
762
+ tags: ["procedure-miner", "causal-trajectory"],
763
+ structuredAttributes: {
764
+ procedure_cluster: key.slice(0, PROCEDURE_CLUSTER_ATTR_MAX),
765
+ trajectory_ids: group.map((g) => g.trajectoryId).join(",").slice(0, 1900),
766
+ trajectory_count: String(group.length),
767
+ success_rate: rate.toFixed(4)
768
+ }
769
+ });
770
+ proceduresWritten += 1;
771
+ }
772
+ return { clustersProcessed, proceduresWritten };
773
+ }
774
+
665
775
  // src/access-service.ts
666
776
  var EngramAccessInputError = class extends Error {
667
777
  };
@@ -785,6 +895,9 @@ var EngramAccessService = class {
785
895
  orchestrator;
786
896
  idempotency;
787
897
  idempotencyLocks = /* @__PURE__ */ new Map();
898
+ get briefingEnabled() {
899
+ return this.orchestrator.config.briefing?.enabled === true;
900
+ }
788
901
  resolveNamespace(namespace) {
789
902
  const requested = namespace?.trim();
790
903
  if (!requested) return this.orchestrator.config.defaultNamespace;
@@ -825,7 +938,16 @@ var EngramAccessService = class {
825
938
  }
826
939
  resolveReadableNamespace(namespace, principal) {
827
940
  const resolved = this.resolveNamespace(namespace);
828
- if (principal && !canReadNamespace(principal, resolved, this.orchestrator.config)) {
941
+ const namespacesEnabled = this.orchestrator.config.namespacesEnabled;
942
+ if (!namespacesEnabled) {
943
+ return resolved;
944
+ }
945
+ if (!principal) {
946
+ throw new EngramAccessInputError(
947
+ "authentication required: namespaces are enabled and no principal was supplied"
948
+ );
949
+ }
950
+ if (!canReadNamespace(principal, resolved, this.orchestrator.config)) {
829
951
  throw new EngramAccessInputError(`namespace is not readable: ${resolved}`);
830
952
  }
831
953
  return resolved;
@@ -969,6 +1091,62 @@ var EngramAccessService = class {
969
1091
  }
970
1092
  return this.orchestrator.generateDaySummary(memories);
971
1093
  }
1094
+ /**
1095
+ * Build a daily context briefing. Gracefully degrades when the OpenAI key
1096
+ * or Responses API is unavailable — never throws for LLM-related problems.
1097
+ */
1098
+ async briefing(request) {
1099
+ const config = this.orchestrator.config;
1100
+ if (!config.briefing.enabled) {
1101
+ throw new EngramAccessInputError("briefing is disabled");
1102
+ }
1103
+ const namespace = this.resolveReadableNamespace(request.namespace, request.principal);
1104
+ const storage = await this.orchestrator.getStorage(namespace);
1105
+ const token = typeof request.since === "string" && request.since.trim().length > 0 ? request.since.trim() : config.briefing.defaultWindow;
1106
+ const window = parseBriefingWindow(token);
1107
+ if (!window) {
1108
+ throw new EngramAccessInputError(`invalid briefing window: ${token}`);
1109
+ }
1110
+ const rawFocus = typeof request.focus === "string" ? request.focus.trim() : "";
1111
+ let focus = null;
1112
+ if (rawFocus.length > 0) {
1113
+ focus = parseBriefingFocus(rawFocus);
1114
+ if (!focus) {
1115
+ throw new EngramAccessInputError(
1116
+ `invalid briefing focus filter: ${request.focus}`
1117
+ );
1118
+ }
1119
+ }
1120
+ const SUPPORTED_FORMATS = ["markdown", "json"];
1121
+ if (typeof request.format === "string" && !SUPPORTED_FORMATS.includes(request.format)) {
1122
+ throw new EngramAccessInputError(
1123
+ `unsupported briefing format: "${request.format}". Accepted: ${SUPPORTED_FORMATS.join(", ")}.`
1124
+ );
1125
+ }
1126
+ const format = request.format === "json" ? "json" : request.format === "markdown" ? "markdown" : config.briefing.defaultFormat;
1127
+ const maxFollowups = typeof request.maxFollowups === "number" && Number.isFinite(request.maxFollowups) ? Math.max(0, Math.min(10, Math.floor(request.maxFollowups))) : config.briefing.maxFollowups;
1128
+ const calendarSource = config.briefing.calendarSource ? new FileCalendarSource(config.briefing.calendarSource) : void 0;
1129
+ const result = await buildBriefing({
1130
+ storage,
1131
+ namespace,
1132
+ window,
1133
+ focus,
1134
+ calendarSource,
1135
+ maxFollowups,
1136
+ allowLlm: config.briefing.llmFollowups,
1137
+ openaiApiKey: config.openaiApiKey,
1138
+ openaiBaseUrl: config.openaiBaseUrl,
1139
+ model: config.model
1140
+ });
1141
+ return {
1142
+ format,
1143
+ window: result.window,
1144
+ namespace,
1145
+ markdown: result.markdown,
1146
+ json: result.json,
1147
+ followupsUnavailableReason: result.followupsUnavailableReason
1148
+ };
1149
+ }
972
1150
  async recall(request) {
973
1151
  const query = request.query.trim();
974
1152
  if (query.length === 0) {
@@ -1320,14 +1498,15 @@ var EngramAccessService = class {
1320
1498
  for (const name of names) {
1321
1499
  const raw = await storage.readEntity(name);
1322
1500
  if (!raw) continue;
1323
- const entity = parseEntityFile(raw);
1501
+ const entity = parseEntityFile(raw, this.orchestrator.config.entitySchemas);
1324
1502
  if (query) {
1325
1503
  const haystack = [
1326
1504
  entity.name,
1327
1505
  entity.type,
1328
- entity.summary ?? "",
1506
+ entity.synthesis || entity.summary || "",
1329
1507
  ...entity.aliases,
1330
- ...entity.facts
1508
+ ...entity.facts,
1509
+ ...(entity.structuredSections ?? []).flatMap((section) => [section.title, ...section.facts])
1331
1510
  ].join("\n").toLowerCase();
1332
1511
  if (!haystack.includes(query)) continue;
1333
1512
  }
@@ -1335,7 +1514,7 @@ var EngramAccessService = class {
1335
1514
  name: entity.name,
1336
1515
  type: entity.type,
1337
1516
  updated: entity.updated,
1338
- summary: entity.summary,
1517
+ summary: entity.synthesis || entity.summary,
1339
1518
  aliases: entity.aliases
1340
1519
  });
1341
1520
  }
@@ -1358,7 +1537,7 @@ var EngramAccessService = class {
1358
1537
  return {
1359
1538
  found: true,
1360
1539
  namespace: resolvedNamespace,
1361
- entity: parseEntityFile(raw)
1540
+ entity: parseEntityFile(raw, this.orchestrator.config.entitySchemas)
1362
1541
  };
1363
1542
  }
1364
1543
  async reviewQueue(runId, namespace, principal) {
@@ -1502,13 +1681,25 @@ var EngramAccessService = class {
1502
1681
  request.authenticatedPrincipal ?? principal
1503
1682
  );
1504
1683
  const storage = await this.orchestrator.getStorage(resolvedNamespace);
1684
+ const mode = request.mode === "apply" ? "apply" : "shadow";
1685
+ const boundedBatchSize = typeof request.batchSize === "number" && Number.isFinite(request.batchSize) ? Math.max(1, Math.floor(request.batchSize)) : void 0;
1505
1686
  const result = await runMemoryGovernance({
1506
1687
  memoryDir: storage.dir,
1507
- mode: request.mode === "apply" ? "apply" : "shadow",
1688
+ mode,
1508
1689
  recentDays: typeof request.recentDays === "number" && Number.isFinite(request.recentDays) ? Math.max(1, Math.floor(request.recentDays)) : void 0,
1509
1690
  maxMemories: typeof request.maxMemories === "number" && Number.isFinite(request.maxMemories) ? Math.max(1, Math.floor(request.maxMemories)) : void 0,
1510
- batchSize: typeof request.batchSize === "number" && Number.isFinite(request.batchSize) ? Math.max(1, Math.floor(request.batchSize)) : void 0
1691
+ batchSize: boundedBatchSize
1511
1692
  });
1693
+ if (mode === "apply") {
1694
+ try {
1695
+ await this.orchestrator.processEntitySynthesisQueue(
1696
+ resolvedNamespace,
1697
+ Math.min(boundedBatchSize ?? 5, 5)
1698
+ );
1699
+ } catch (error) {
1700
+ log.debug(`governanceRun: entity synthesis refresh failed after governance apply: ${error}`);
1701
+ }
1702
+ }
1512
1703
  return {
1513
1704
  namespace: resolvedNamespace,
1514
1705
  runId: result.runId,
@@ -1521,6 +1712,25 @@ var EngramAccessService = class {
1521
1712
  reportPath: result.reportPath
1522
1713
  };
1523
1714
  }
1715
+ async procedureMiningRun(request, principal) {
1716
+ const resolvedNamespace = this.resolveWritableNamespace(
1717
+ request.namespace,
1718
+ void 0,
1719
+ request.authenticatedPrincipal ?? principal
1720
+ );
1721
+ const storage = await this.orchestrator.getStorage(resolvedNamespace);
1722
+ const result = await runProcedureMining({
1723
+ memoryDir: storage.dir,
1724
+ storage,
1725
+ config: this.orchestrator.config
1726
+ });
1727
+ return {
1728
+ namespace: resolvedNamespace,
1729
+ clustersProcessed: result.clustersProcessed,
1730
+ proceduresWritten: result.proceduresWritten,
1731
+ skippedReason: result.skippedReason
1732
+ };
1733
+ }
1524
1734
  async trustZoneStatus(namespace, principal) {
1525
1735
  const resolvedNamespace = this.resolveReadableNamespace(namespace, principal);
1526
1736
  const storage = await this.orchestrator.getStorage(resolvedNamespace);
@@ -2367,6 +2577,59 @@ ${next}`);
2367
2577
  }
2368
2578
  };
2369
2579
  }
2580
+ /**
2581
+ * Record citation usage from an observed oai-mem-citation block.
2582
+ * For each citation entry, extract the memory ID from the path and
2583
+ * increment its access tracking via the orchestrator. Returns the
2584
+ * count of submitted IDs and the count of IDs that matched real memories.
2585
+ */
2586
+ async recordCitationUsage(request) {
2587
+ if (request.entries.length === 0) return { submitted: 0, matched: 0 };
2588
+ const resolvedNamespace = this.resolveWritableNamespace(
2589
+ request.namespace,
2590
+ request.sessionId,
2591
+ request.authenticatedPrincipal
2592
+ );
2593
+ const memoryIds = [];
2594
+ for (const entry of request.entries) {
2595
+ const basename = entry.path.split("/").pop() ?? entry.path;
2596
+ const id = basename.endsWith(".md") ? basename.slice(0, -3) : basename;
2597
+ if (id.length > 0) {
2598
+ memoryIds.push(id);
2599
+ }
2600
+ }
2601
+ if (memoryIds.length === 0) return { submitted: 0, matched: 0 };
2602
+ const storage = await this.orchestrator.getStorage(resolvedNamespace);
2603
+ const existingIds = await storage.filterExistingMemoryIds(memoryIds);
2604
+ const matchedIds = memoryIds.filter((id) => existingIds.has(id));
2605
+ if (matchedIds.length > 0) {
2606
+ try {
2607
+ this.orchestrator.trackMemoryAccess(matchedIds);
2608
+ } catch {
2609
+ log.debug("citation usage tracking: failed to record access for cited memories");
2610
+ }
2611
+ }
2612
+ return { submitted: memoryIds.length, matched: matchedIds.length };
2613
+ }
2614
+ // ── Contradiction Review (issue #520) ──────────────────────────────────────
2615
+ get memoryDir() {
2616
+ return this.orchestrator.config.memoryDir;
2617
+ }
2618
+ get storageRef() {
2619
+ return this.orchestrator.storage;
2620
+ }
2621
+ get configRef() {
2622
+ return this.orchestrator.config;
2623
+ }
2624
+ get localLlmRef() {
2625
+ return this.orchestrator.localLlm ?? null;
2626
+ }
2627
+ get fallbackLlmRef() {
2628
+ return null;
2629
+ }
2630
+ get embeddingLookupRef() {
2631
+ return void 0;
2632
+ }
2370
2633
  };
2371
2634
 
2372
2635
  export {
@@ -2375,4 +2638,4 @@ export {
2375
2638
  ENGRAM_ACCESS_WRITE_SCHEMA_VERSION,
2376
2639
  EngramAccessService
2377
2640
  };
2378
- //# sourceMappingURL=chunk-QY2BHY5O.js.map
2641
+ //# sourceMappingURL=chunk-MVTHXUBX.js.map