@remnic/core 10.0.91 → 10.0.93

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 (522) hide show
  1. package/dist/access-admin-ops-surface.js +334 -61
  2. package/dist/access-authorization-probe.js +2 -283
  3. package/dist/access-boundary.d.ts +1 -1
  4. package/dist/access-boundary.d.ts.map +1 -1
  5. package/dist/access-boundary.js +1 -282
  6. package/dist/access-cli.js +288 -304
  7. package/dist/access-cli.js.map +1 -1
  8. package/dist/access-coding-context-resolution.js +3 -3
  9. package/dist/access-extraction-force-flush.js +334 -61
  10. package/dist/access-http-briefing.js +334 -62
  11. package/dist/access-http-query.js +334 -63
  12. package/dist/access-http.js +332 -114
  13. package/dist/access-identity-continuity-surface.js +334 -61
  14. package/dist/access-lcm-surface.js +334 -61
  15. package/dist/access-mcp-frames.d.ts +20 -6
  16. package/dist/access-mcp-frames.d.ts.map +1 -1
  17. package/dist/access-mcp-frames.js +1 -1
  18. package/dist/access-mcp.d.ts +5 -0
  19. package/dist/access-mcp.d.ts.map +1 -1
  20. package/dist/access-mcp.js +332 -89
  21. package/dist/access-namespace-preflight.js +2 -282
  22. package/dist/access-observe-transcript.js +3 -3
  23. package/dist/access-observe-write-category.js +6 -6
  24. package/dist/access-observe-write-surface.js +334 -61
  25. package/dist/access-offline-manifest.js +12 -11
  26. package/dist/access-operations-batch.js +332 -66
  27. package/dist/access-operations.js +332 -75
  28. package/dist/access-recall-concurrency.js +334 -61
  29. package/dist/access-recall-diagnostics.js +6 -5
  30. package/dist/access-recall-response.js +334 -61
  31. package/dist/access-recall-surface.js +334 -61
  32. package/dist/access-schema.js +2 -2
  33. package/dist/access-service.d.ts +1 -0
  34. package/dist/access-service.d.ts.map +1 -1
  35. package/dist/access-service.js +337 -64
  36. package/dist/access-surface-catalog.js +6 -283
  37. package/dist/access-surface-catalog.js.map +1 -1
  38. package/dist/active-context-transform.js +1 -1
  39. package/dist/active-memory-bridge.js +3 -2
  40. package/dist/active-recall.js +36 -37
  41. package/dist/active-recall.js.map +1 -1
  42. package/dist/activity/journal-extract.d.ts +13 -1
  43. package/dist/activity/journal-extract.d.ts.map +1 -1
  44. package/dist/{auto-sync-3AZW7MXI.js → auto-sync-BO5YZKM6.js} +13 -15
  45. package/dist/{auto-sync-3AZW7MXI.js.map → auto-sync-BO5YZKM6.js.map} +1 -1
  46. package/dist/briefing.js +20 -20
  47. package/dist/buffer.js +16 -16
  48. package/dist/calibration.js +10 -10
  49. package/dist/{capsule-merge-2IIXFXN5.js → capsule-merge-6IDAYTKG.js} +6 -6
  50. package/dist/causal-consolidation.js +23 -23
  51. package/dist/{chunk-QL7RHYK6.js → chunk-2LMA22UU.js} +5 -5
  52. package/dist/{chunk-RGUUBAT5.js → chunk-2WCLTWV2.js} +3 -3
  53. package/dist/{chunk-RSK2WIEM.js → chunk-2YODOG2O.js} +2 -2
  54. package/dist/{chunk-WYG5UNDY.js → chunk-3AUDELZL.js} +2 -2
  55. package/dist/{chunk-OFVCFKDH.js → chunk-3CYOCE6U.js} +3 -3
  56. package/dist/{chunk-6HM6HARE.js → chunk-3FBAEPCU.js} +2 -2
  57. package/dist/{chunk-PIITB2YZ.js → chunk-3ZS3NUEI.js} +4 -4
  58. package/dist/{chunk-V4XE263I.js → chunk-43AA5FVD.js} +1 -1
  59. package/dist/chunk-43AA5FVD.js.map +1 -0
  60. package/dist/{chunk-ANZZLRUX.js → chunk-4IVRQMZW.js} +2 -2
  61. package/dist/{chunk-63E37JCN.js → chunk-4RAJT5L2.js} +4 -4
  62. package/dist/{chunk-45VUHDV2.js → chunk-5CO5G4MN.js} +2 -2
  63. package/dist/{chunk-PUEO37QG.js → chunk-5YT2IIFX.js} +729 -17
  64. package/dist/chunk-5YT2IIFX.js.map +1 -0
  65. package/dist/{chunk-P5VZSSYL.js → chunk-622V2AZA.js} +233 -40
  66. package/dist/chunk-622V2AZA.js.map +1 -0
  67. package/dist/{chunk-3UMDRGFS.js → chunk-65HWAQ4F.js} +3 -3
  68. package/dist/{chunk-T67LUYCR.js → chunk-77NTFICT.js} +5 -5
  69. package/dist/chunk-A2WFUMUN.js +86 -0
  70. package/dist/chunk-A2WFUMUN.js.map +1 -0
  71. package/dist/{chunk-UE6RRXMF.js → chunk-A4F7OIC5.js} +2 -2
  72. package/dist/chunk-AHA5VQGP.js +117 -0
  73. package/dist/chunk-AHA5VQGP.js.map +1 -0
  74. package/dist/{chunk-AOFEMUHG.js → chunk-ATG2PQ4V.js} +56 -5
  75. package/dist/chunk-ATG2PQ4V.js.map +1 -0
  76. package/dist/{chunk-63O7LVMN.js → chunk-B33YWUJV.js} +3 -3
  77. package/dist/{chunk-QVMOCJRV.js → chunk-B377OKUP.js} +2 -2
  78. package/dist/{chunk-IUKYFTGW.js → chunk-B3DR2JBZ.js} +140 -125
  79. package/dist/chunk-B3DR2JBZ.js.map +1 -0
  80. package/dist/{chunk-ZT6WPSII.js → chunk-BGHCSLE5.js} +2 -2
  81. package/dist/{chunk-YYOMGOHB.js → chunk-BOK6BN5M.js} +2 -2
  82. package/dist/{chunk-OH7QLI6W.js → chunk-BPPUH5JM.js} +5 -5
  83. package/dist/{chunk-EV76IZ37.js → chunk-BTI4C4MA.js} +2 -2
  84. package/dist/{chunk-O6ZSWHVR.js → chunk-C2KE5DMD.js} +4 -4
  85. package/dist/{chunk-47F6WWLQ.js → chunk-C73N66PR.js} +2 -2
  86. package/dist/{chunk-3XIWW4TB.js → chunk-CGJYL633.js} +2 -2
  87. package/dist/{chunk-WRT7GJ2D.js → chunk-CIWMTNHW.js} +4 -4
  88. package/dist/{chunk-O55EKIEC.js → chunk-D3ZKHLN2.js} +2 -2
  89. package/dist/{chunk-CD4BCCNP.js → chunk-DJ7WVEWX.js} +2 -2
  90. package/dist/{chunk-RO7RUBLD.js → chunk-EFL24KOI.js} +2 -2
  91. package/dist/{chunk-4CJTQHEG.js → chunk-ESLOLCD4.js} +3 -3
  92. package/dist/{chunk-Z4Q6USKJ.js → chunk-ETBVCRVL.js} +4 -4
  93. package/dist/{chunk-VILPVT4S.js → chunk-EZ47HOJ6.js} +4 -4
  94. package/dist/{chunk-EFYN5I7Z.js → chunk-F4QFU5IZ.js} +2 -2
  95. package/dist/{chunk-T6OZW2WR.js → chunk-FA7SLQ5X.js} +7 -1
  96. package/dist/chunk-FA7SLQ5X.js.map +1 -0
  97. package/dist/{chunk-SHUBTAY2.js → chunk-FMKILENU.js} +14 -14
  98. package/dist/{chunk-YLXETSAH.js → chunk-GCZJ7XRI.js} +2 -2
  99. package/dist/{chunk-J4MMPQ7Q.js → chunk-GQXOBKPL.js} +7 -9
  100. package/dist/{chunk-J4MMPQ7Q.js.map → chunk-GQXOBKPL.js.map} +1 -1
  101. package/dist/{chunk-UDKWFDV2.js → chunk-HLUHEMN4.js} +27 -3
  102. package/dist/chunk-HLUHEMN4.js.map +1 -0
  103. package/dist/{chunk-QFEDITXM.js → chunk-JNDMIAJ4.js} +2 -2
  104. package/dist/chunk-JTSSSR4L.js +359 -0
  105. package/dist/chunk-JTSSSR4L.js.map +1 -0
  106. package/dist/{chunk-5KBIOI4G.js → chunk-JVBAPAWZ.js} +217 -13
  107. package/dist/chunk-JVBAPAWZ.js.map +1 -0
  108. package/dist/{chunk-E5PPE4VA.js → chunk-K2VRKCPA.js} +2 -2
  109. package/dist/{chunk-MKRYQROF.js → chunk-LGEHAQHK.js} +4 -4
  110. package/dist/{chunk-7HTUYFR3.js → chunk-LLPMMMWG.js} +27 -10
  111. package/dist/chunk-LLPMMMWG.js.map +1 -0
  112. package/dist/{chunk-XYTQJD7F.js → chunk-LMJVP5CM.js} +2 -2
  113. package/dist/{chunk-JC36FPQ5.js → chunk-LPV72KRQ.js} +2 -2
  114. package/dist/{chunk-2LCRG2YV.js → chunk-M2XR6B6V.js} +2 -2
  115. package/dist/{chunk-GGRRF4PZ.js → chunk-MDPT6QFK.js} +1 -1
  116. package/dist/{chunk-GGRRF4PZ.js.map → chunk-MDPT6QFK.js.map} +1 -1
  117. package/dist/{chunk-VPQFK63H.js → chunk-MH632KPO.js} +2 -2
  118. package/dist/{chunk-EQ4U73UH.js → chunk-MLAMXQAW.js} +14 -2
  119. package/dist/chunk-MLAMXQAW.js.map +1 -0
  120. package/dist/{chunk-ZU5JDLOH.js → chunk-MMRTPH3J.js} +2 -2
  121. package/dist/{chunk-ZZ67UTQX.js → chunk-MUX7IL77.js} +2 -2
  122. package/dist/{chunk-RYWROSL5.js → chunk-NAQ4A5IX.js} +7 -7
  123. package/dist/{chunk-TVIVY7KU.js → chunk-NED7IR7B.js} +4 -4
  124. package/dist/{chunk-ADYP7HXE.js → chunk-NHVAX7MH.js} +3 -3
  125. package/dist/{chunk-TG3R2SID.js → chunk-NMGHGTVR.js} +5 -5
  126. package/dist/{chunk-YCNIGRRF.js → chunk-NS7U4ZYU.js} +13 -117
  127. package/dist/chunk-NS7U4ZYU.js.map +1 -0
  128. package/dist/{chunk-NGHDW6UU.js → chunk-NUQEREIP.js} +2 -2
  129. package/dist/{chunk-5IIQU4JZ.js → chunk-OB72KNMF.js} +4 -4
  130. package/dist/{chunk-7L3TODI7.js → chunk-OJXJWNFY.js} +2 -2
  131. package/dist/{chunk-66L5ZRJC.js → chunk-P3WRNWWM.js} +157 -4
  132. package/dist/chunk-P3WRNWWM.js.map +1 -0
  133. package/dist/{chunk-E6M225BJ.js → chunk-PC5DRBGD.js} +18 -8
  134. package/dist/chunk-PC5DRBGD.js.map +1 -0
  135. package/dist/{chunk-EURPSF4Y.js → chunk-PH5ZQM35.js} +2 -2
  136. package/dist/{chunk-BMWMTAQF.js → chunk-PRAUN6PN.js} +3 -3
  137. package/dist/{chunk-RWGRSKN5.js → chunk-PT4DZDJA.js} +2 -2
  138. package/dist/{chunk-7EPY3IQL.js → chunk-PZJQ46DH.js} +2 -2
  139. package/dist/{chunk-AH637HZ5.js → chunk-QDESY76F.js} +3 -3
  140. package/dist/{chunk-I6QGI65T.js → chunk-QRMG4HK4.js} +3 -3
  141. package/dist/{chunk-ZU3NJNO7.js → chunk-QSF5SJAM.js} +4 -4
  142. package/dist/{chunk-5IYOKDM4.js → chunk-R23JWJD3.js} +5 -5
  143. package/dist/{chunk-EWJZZDRG.js → chunk-R4BBGPI2.js} +219 -219
  144. package/dist/chunk-R4BBGPI2.js.map +1 -0
  145. package/dist/{chunk-LJQFJF4J.js → chunk-RM2YUFH6.js} +6 -6
  146. package/dist/{chunk-IPT2OY4B.js → chunk-RQFXZYTF.js} +35 -33
  147. package/dist/chunk-RQFXZYTF.js.map +1 -0
  148. package/dist/{chunk-AP6NCP3V.js → chunk-S3S72HRM.js} +8 -6
  149. package/dist/chunk-S3S72HRM.js.map +1 -0
  150. package/dist/{chunk-6QMWECO5.js → chunk-SGQPR5SX.js} +7 -7
  151. package/dist/{chunk-ZGFLIK5H.js → chunk-SPAKBUJY.js} +2 -2
  152. package/dist/{chunk-ER7XANP3.js → chunk-SQ3GEIEL.js} +4 -4
  153. package/dist/{chunk-5UCMYPVF.js → chunk-SVT5IA2H.js} +2 -2
  154. package/dist/{chunk-HVKUCT3W.js → chunk-T4KY6UYF.js} +5 -3
  155. package/dist/{chunk-HVKUCT3W.js.map → chunk-T4KY6UYF.js.map} +1 -1
  156. package/dist/{chunk-FRSHF6FU.js → chunk-TJ4F6H4H.js} +3 -3
  157. package/dist/{chunk-R6HMAIKM.js → chunk-TOSPNM4T.js} +2 -2
  158. package/dist/{chunk-NJJMVS5Y.js → chunk-TRQE3RYR.js} +5 -5
  159. package/dist/{chunk-RMXS4I66.js → chunk-TVDJEUV5.js} +2 -2
  160. package/dist/{chunk-PLCYKAWH.js → chunk-TYRWSE4B.js} +2 -2
  161. package/dist/{chunk-YS2GHSWN.js → chunk-UBEKET2V.js} +389 -39
  162. package/dist/chunk-UBEKET2V.js.map +1 -0
  163. package/dist/{chunk-IQWUACVG.js → chunk-UHMHJX5G.js} +3 -3
  164. package/dist/{chunk-YODUDA6R.js → chunk-UN4RVUG2.js} +22 -22
  165. package/dist/{chunk-KZSGBWOJ.js → chunk-V2KGDESV.js} +2 -2
  166. package/dist/{chunk-E6Z4FBX6.js → chunk-V2QSNFCT.js} +2 -2
  167. package/dist/{chunk-BCCG7VWM.js → chunk-V65H7MI6.js} +396 -13
  168. package/dist/chunk-V65H7MI6.js.map +1 -0
  169. package/dist/chunk-W54Z2MOP.js +4500 -0
  170. package/dist/chunk-W54Z2MOP.js.map +1 -0
  171. package/dist/{chunk-N74SGESS.js → chunk-WKSQTMU7.js} +2 -2
  172. package/dist/{chunk-RIZ5NUNN.js → chunk-WQ4XKIOX.js} +4 -4
  173. package/dist/{chunk-WWK6J6SE.js → chunk-WQURALGV.js} +4996 -2748
  174. package/dist/chunk-WQURALGV.js.map +1 -0
  175. package/dist/{chunk-QEYTRFR3.js → chunk-X26YOFGS.js} +2 -2
  176. package/dist/{chunk-ITHZFHST.js → chunk-X2BVB74H.js} +2 -2
  177. package/dist/{chunk-GNXGJBCA.js → chunk-XIYLWEXC.js} +2 -2
  178. package/dist/{chunk-IBJ6U753.js → chunk-XKZBZOKV.js} +4 -4
  179. package/dist/{chunk-7O2MC42R.js → chunk-XNRLRNQF.js} +2 -2
  180. package/dist/{chunk-65AUYLU3.js → chunk-XPXHQI6N.js} +2 -2
  181. package/dist/{chunk-JBCCWVU2.js → chunk-XRDYRWZI.js} +2 -2
  182. package/dist/chunk-XRWWCW4H.js +102 -0
  183. package/dist/chunk-XRWWCW4H.js.map +1 -0
  184. package/dist/chunk-YKJBSMMP.js +67137 -0
  185. package/dist/chunk-YKJBSMMP.js.map +1 -0
  186. package/dist/{chunk-2JSDPUKD.js → chunk-YMFPFXEX.js} +2 -2
  187. package/dist/{chunk-645WOU5I.js → chunk-ZDZJNXL6.js} +4 -4
  188. package/dist/{chunk-6TCXIRP5.js → chunk-ZKE4CO6B.js} +4 -4
  189. package/dist/{chunk-KEPXC4KN.js → chunk-ZSE774RV.js} +2 -2
  190. package/dist/cli.d.ts.map +1 -1
  191. package/dist/cli.js +305 -187
  192. package/dist/coding/export-okf-codegraph.js +29 -29
  193. package/dist/compounding/engine.js +23 -24
  194. package/dist/config.d.ts.map +1 -1
  195. package/dist/config.js +36 -37
  196. package/dist/connectors/codex-materialize-runner.js +20 -20
  197. package/dist/connectors/index.js +21 -21
  198. package/dist/connectors/live/framework.d.ts +7 -0
  199. package/dist/connectors/live/framework.d.ts.map +1 -1
  200. package/dist/connectors/live/google-drive.d.ts +17 -3
  201. package/dist/connectors/live/google-drive.d.ts.map +1 -1
  202. package/dist/consolidation-provenance-check.js +4 -4
  203. package/dist/consolidation-undo.js +5 -5
  204. package/dist/contradiction/index.js +7 -6
  205. package/dist/{contradiction-scan-P2MHYFVG.js → contradiction-scan-IBPYGQZF.js} +4 -3
  206. package/dist/convergence-refresh.js +22 -22
  207. package/dist/corpus-watermark.js +23 -23
  208. package/dist/deep-recall-http-glue.js +2 -2
  209. package/dist/deep-recall-policy-llm.js +4 -4
  210. package/dist/direct-answer-wiring.js +2 -2
  211. package/dist/embedding-fallback.js +1 -1
  212. package/dist/entity-retrieval.js +21 -21
  213. package/dist/eval-trajectory-store.js +2 -2
  214. package/dist/eval-trajectory.js +2 -2
  215. package/dist/event-order-recall.js +2 -2
  216. package/dist/explicit-capture.d.ts +3 -2
  217. package/dist/explicit-capture.d.ts.map +1 -1
  218. package/dist/explicit-capture.js +530 -6
  219. package/dist/explicit-cue-recall.js +2 -2
  220. package/dist/external-wiki-access.js +2 -283
  221. package/dist/extraction-faithfulness.js +4 -4
  222. package/dist/extraction-judge.js +5 -5
  223. package/dist/extraction-normalization.js +1 -1
  224. package/dist/extraction-quote-grounding.d.ts.map +1 -1
  225. package/dist/extraction-quote-grounding.js +1 -1
  226. package/dist/extraction-source-grounding-rules.js +2 -2
  227. package/dist/extraction-source-grounding.js +3 -3
  228. package/dist/extraction.js +43 -44
  229. package/dist/fallback-llm-codex-subscription.js +2 -2
  230. package/dist/fallback-llm.js +3 -3
  231. package/dist/{first-start-migration-QFI7B5SH.js → first-start-migration-FILJH3RO.js} +6 -5
  232. package/dist/{first-start-migration-QFI7B5SH.js.map → first-start-migration-FILJH3RO.js.map} +1 -1
  233. package/dist/focused-list-recall.js +2 -2
  234. package/dist/harmonic-retrieval.js +20 -20
  235. package/dist/index.js +776 -797
  236. package/dist/lcm/index.js +2 -2
  237. package/dist/live-connectors-runner.d.ts +2 -0
  238. package/dist/live-connectors-runner.d.ts.map +1 -1
  239. package/dist/live-connectors-runner.js +3 -4
  240. package/dist/local-llm-config.js +2 -2
  241. package/dist/local-llm-helpers.d.ts +4 -0
  242. package/dist/local-llm-helpers.d.ts.map +1 -1
  243. package/dist/local-llm-helpers.js +3 -1
  244. package/dist/local-llm.d.ts +4 -1
  245. package/dist/local-llm.d.ts.map +1 -1
  246. package/dist/local-llm.js +4 -4
  247. package/dist/location/index.js +27 -29
  248. package/dist/maintenance/memory-governance.js +20 -20
  249. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +20 -20
  250. package/dist/maintenance/rebuild-memory-projection-runner.js +22 -22
  251. package/dist/maintenance/rebuild-memory-projection.js +21 -21
  252. package/dist/memory-browse-operations.js +2 -283
  253. package/dist/memory-browse.js +8 -7
  254. package/dist/memory-controller.js +2 -2
  255. package/dist/memory-subject.js +2 -2
  256. package/dist/namespaces/migrate.js +21 -21
  257. package/dist/namespaces/search.js +5 -5
  258. package/dist/namespaces/storage.js +20 -20
  259. package/dist/offline-sync-changeset-generations.js +1 -1
  260. package/dist/offline-sync-embedding-generation.js +1 -1
  261. package/dist/offline-sync-impression-drain.js +6 -6
  262. package/dist/offline-sync-snapshot-stream.js +1 -1
  263. package/dist/offline-sync.js +1 -1
  264. package/dist/operator-doctor-corpus.js +24 -24
  265. package/dist/operator-toolkit.js +58 -61
  266. package/dist/orchestration/backlog-scheduler.js +279 -295
  267. package/dist/orchestration/backlog-scheduler.js.map +1 -1
  268. package/dist/orchestration/buffer-drain-runner.js +279 -295
  269. package/dist/orchestration/extraction-run.d.ts +4 -0
  270. package/dist/orchestration/extraction-run.d.ts.map +1 -1
  271. package/dist/orchestration/fact-dedup-window.d.ts +1 -1
  272. package/dist/orchestration/fact-dedup-window.d.ts.map +1 -1
  273. package/dist/orchestration/maintenance.js +39 -42
  274. package/dist/orchestrator.d.ts +11 -11
  275. package/dist/orchestrator.d.ts.map +1 -1
  276. package/dist/orchestrator.js +291 -308
  277. package/dist/page-versioning.js +3 -3
  278. package/dist/qmd-daemon-session.js +2 -2
  279. package/dist/qmd.js +3 -3
  280. package/dist/recall-explain-renderer.js +3 -3
  281. package/dist/recall-navigate-access.js +2 -2
  282. package/dist/recall-navigate-disclosure.js +2 -2
  283. package/dist/recall-navigate.js +2 -2
  284. package/dist/recall-navigation-operations.js +2 -283
  285. package/dist/recall-navigation.js +334 -61
  286. package/dist/recall-planner-llm.js +3 -3
  287. package/dist/recall-state-view-admission.js +6 -6
  288. package/dist/recall-why-service.js +10 -9
  289. package/dist/recall-why.js +4 -3
  290. package/dist/recall-xray-cli.js +4 -4
  291. package/dist/recall-xray-renderer.js +3 -3
  292. package/dist/recall-xray.js +2 -2
  293. package/dist/reconcile/manifest.js +3 -3
  294. package/dist/{resolution-N7H3F2E4.js → resolution-OVVIF7ZY.js} +8 -7
  295. package/dist/response-guidance-recall.js +2 -2
  296. package/dist/resume-bundles.js +40 -41
  297. package/dist/salvage-envelope.js +4 -4
  298. package/dist/search/factory.js +4 -4
  299. package/dist/search/index.js +4 -4
  300. package/dist/semantic-consolidation.js +23 -23
  301. package/dist/semantic-rule-promotion.js +20 -20
  302. package/dist/semantic-rule-verifier.js +20 -20
  303. package/dist/shared-context/manager.js +2 -3
  304. package/dist/source-agent-qualifier.js +32 -33
  305. package/dist/standup/build.js +20 -20
  306. package/dist/{state-store-I5HLZTZT.js → state-store-EEAX2MBS.js} +2 -2
  307. package/dist/storage/content-hash-index.d.ts +10 -0
  308. package/dist/storage/content-hash-index.d.ts.map +1 -1
  309. package/dist/storage.js +19 -19
  310. package/dist/subject-config.js +3 -3
  311. package/dist/summarizer.d.ts +4 -1
  312. package/dist/summarizer.d.ts.map +1 -1
  313. package/dist/summarizer.js +6 -6
  314. package/dist/support-passport/index.js +53 -297
  315. package/dist/targeted-fact-recall.js +2 -2
  316. package/dist/tier-routing.js +3 -2
  317. package/dist/{tier-stats-FQGQSFET.js → tier-stats-FXEUJN73.js} +6 -5
  318. package/dist/{tier-stats-FQGQSFET.js.map → tier-stats-FXEUJN73.js.map} +1 -1
  319. package/dist/transcript.js +2 -2
  320. package/dist/transfer/capsule-import.js +4 -4
  321. package/dist/transfer/export-okf.js +20 -20
  322. package/dist/types.d.ts +10 -10
  323. package/dist/types.d.ts.map +1 -1
  324. package/dist/types.js +1 -1
  325. package/dist/verified-recall.js +20 -20
  326. package/dist/wearables/memory-gen.d.ts +5 -1
  327. package/dist/wearables/memory-gen.d.ts.map +1 -1
  328. package/dist/wearables/service.d.ts.map +1 -1
  329. package/dist/who-knows-cli.js +21 -21
  330. package/dist/who-knows.js +20 -20
  331. package/dist/write-envelope.js +3 -3
  332. package/package.json +2 -2
  333. package/src/access-boundary.ts +5 -1
  334. package/src/access-category-alias.test.ts +5 -0
  335. package/src/access-mcp-frames.test.ts +60 -5
  336. package/src/access-mcp-frames.ts +72 -18
  337. package/src/access-mcp.test.ts +66 -2
  338. package/src/access-mcp.ts +19 -13
  339. package/src/access-service-coding-write.test.ts +7 -0
  340. package/src/access-service.ts +3 -0
  341. package/src/activity/journal-extract-storage.test.ts +31 -0
  342. package/src/activity/journal-extract.test.ts +1 -0
  343. package/src/activity/journal-extract.ts +24 -3
  344. package/src/cli.ts +1 -2
  345. package/src/config.test.ts +17 -0
  346. package/src/config.ts +25 -7
  347. package/src/connectors/live/framework.ts +8 -0
  348. package/src/connectors/live/google-drive.test.ts +74 -0
  349. package/src/connectors/live/google-drive.ts +138 -11
  350. package/src/explicit-capture.test.ts +109 -17
  351. package/src/explicit-capture.ts +90 -37
  352. package/src/extraction-quote-grounding.test.ts +20 -0
  353. package/src/extraction-quote-grounding.ts +21 -11
  354. package/src/fact-dedup-window.test.ts +37 -0
  355. package/src/live-connectors-runner.ts +3 -0
  356. package/src/live-connectors-secretref.test.ts +126 -0
  357. package/src/local-llm-helpers.ts +12 -0
  358. package/src/local-llm-shutdown.test.ts +194 -0
  359. package/src/local-llm.ts +32 -30
  360. package/src/orchestration/extraction-run.ts +12 -3
  361. package/src/orchestration/fact-dedup-window.ts +5 -1
  362. package/src/orchestrator-connector-dedup.test.ts +9 -5
  363. package/src/orchestrator.ts +52 -55
  364. package/src/storage/content-hash-index.ts +27 -2
  365. package/src/storage-fact-hash-publish-failure.test.ts +87 -0
  366. package/src/summarizer-shutdown.test.ts +195 -0
  367. package/src/summarizer.ts +15 -2
  368. package/src/types.ts +10 -10
  369. package/src/wearables/memory-gen.test.ts +20 -0
  370. package/src/wearables/memory-gen.ts +14 -7
  371. package/src/wearables/service.ts +14 -1
  372. package/src/wearables/storage-io.test.ts +25 -0
  373. package/dist/chunk-27XYV2XL.js +0 -43
  374. package/dist/chunk-27XYV2XL.js.map +0 -1
  375. package/dist/chunk-5KBIOI4G.js.map +0 -1
  376. package/dist/chunk-66L5ZRJC.js.map +0 -1
  377. package/dist/chunk-7HTUYFR3.js.map +0 -1
  378. package/dist/chunk-AOFEMUHG.js.map +0 -1
  379. package/dist/chunk-AP6NCP3V.js.map +0 -1
  380. package/dist/chunk-APYY5CX3.js +0 -335
  381. package/dist/chunk-APYY5CX3.js.map +0 -1
  382. package/dist/chunk-ATPWMT2E.js +0 -223
  383. package/dist/chunk-ATPWMT2E.js.map +0 -1
  384. package/dist/chunk-BCCG7VWM.js.map +0 -1
  385. package/dist/chunk-E6M225BJ.js.map +0 -1
  386. package/dist/chunk-EQ4U73UH.js.map +0 -1
  387. package/dist/chunk-ETSJD5IV.js +0 -361
  388. package/dist/chunk-ETSJD5IV.js.map +0 -1
  389. package/dist/chunk-EWJZZDRG.js.map +0 -1
  390. package/dist/chunk-FHGWKODN.js +0 -2300
  391. package/dist/chunk-FHGWKODN.js.map +0 -1
  392. package/dist/chunk-GRTKLWYX.js +0 -621
  393. package/dist/chunk-GRTKLWYX.js.map +0 -1
  394. package/dist/chunk-IGLJNHOX.js +0 -62
  395. package/dist/chunk-IGLJNHOX.js.map +0 -1
  396. package/dist/chunk-IPT2OY4B.js.map +0 -1
  397. package/dist/chunk-IUKYFTGW.js.map +0 -1
  398. package/dist/chunk-KUIRDD74.js +0 -3991
  399. package/dist/chunk-KUIRDD74.js.map +0 -1
  400. package/dist/chunk-MVMRUGBH.js +0 -1919
  401. package/dist/chunk-MVMRUGBH.js.map +0 -1
  402. package/dist/chunk-ODL4ZTNI.js +0 -3644
  403. package/dist/chunk-ODL4ZTNI.js.map +0 -1
  404. package/dist/chunk-OGXXGHW6.js +0 -223
  405. package/dist/chunk-OGXXGHW6.js.map +0 -1
  406. package/dist/chunk-P5VZSSYL.js.map +0 -1
  407. package/dist/chunk-PPCLZ4JU.js +0 -28
  408. package/dist/chunk-PPCLZ4JU.js.map +0 -1
  409. package/dist/chunk-PUEO37QG.js.map +0 -1
  410. package/dist/chunk-RRTVGD3J.js +0 -792
  411. package/dist/chunk-RRTVGD3J.js.map +0 -1
  412. package/dist/chunk-STSLB4HT.js +0 -18793
  413. package/dist/chunk-STSLB4HT.js.map +0 -1
  414. package/dist/chunk-T6OZW2WR.js.map +0 -1
  415. package/dist/chunk-TRBGGJKZ.js +0 -32218
  416. package/dist/chunk-TRBGGJKZ.js.map +0 -1
  417. package/dist/chunk-UDKWFDV2.js.map +0 -1
  418. package/dist/chunk-V4XE263I.js.map +0 -1
  419. package/dist/chunk-V7IZKJI3.js +0 -22
  420. package/dist/chunk-V7IZKJI3.js.map +0 -1
  421. package/dist/chunk-VMVVSZTD.js +0 -61
  422. package/dist/chunk-VMVVSZTD.js.map +0 -1
  423. package/dist/chunk-VNUOAXWP.js +0 -203
  424. package/dist/chunk-VNUOAXWP.js.map +0 -1
  425. package/dist/chunk-WLBEZZK5.js +0 -729
  426. package/dist/chunk-WLBEZZK5.js.map +0 -1
  427. package/dist/chunk-WUUES6CU.js +0 -25
  428. package/dist/chunk-WUUES6CU.js.map +0 -1
  429. package/dist/chunk-WWK6J6SE.js.map +0 -1
  430. package/dist/chunk-XICOH5HT.js +0 -346
  431. package/dist/chunk-XICOH5HT.js.map +0 -1
  432. package/dist/chunk-YCNIGRRF.js.map +0 -1
  433. package/dist/chunk-YS2GHSWN.js.map +0 -1
  434. package/dist/chunk-ZCLEYJPB.js +0 -10143
  435. package/dist/chunk-ZCLEYJPB.js.map +0 -1
  436. /package/dist/{capsule-merge-2IIXFXN5.js.map → capsule-merge-6IDAYTKG.js.map} +0 -0
  437. /package/dist/{chunk-QL7RHYK6.js.map → chunk-2LMA22UU.js.map} +0 -0
  438. /package/dist/{chunk-RGUUBAT5.js.map → chunk-2WCLTWV2.js.map} +0 -0
  439. /package/dist/{chunk-RSK2WIEM.js.map → chunk-2YODOG2O.js.map} +0 -0
  440. /package/dist/{chunk-WYG5UNDY.js.map → chunk-3AUDELZL.js.map} +0 -0
  441. /package/dist/{chunk-OFVCFKDH.js.map → chunk-3CYOCE6U.js.map} +0 -0
  442. /package/dist/{chunk-6HM6HARE.js.map → chunk-3FBAEPCU.js.map} +0 -0
  443. /package/dist/{chunk-PIITB2YZ.js.map → chunk-3ZS3NUEI.js.map} +0 -0
  444. /package/dist/{chunk-ANZZLRUX.js.map → chunk-4IVRQMZW.js.map} +0 -0
  445. /package/dist/{chunk-63E37JCN.js.map → chunk-4RAJT5L2.js.map} +0 -0
  446. /package/dist/{chunk-45VUHDV2.js.map → chunk-5CO5G4MN.js.map} +0 -0
  447. /package/dist/{chunk-3UMDRGFS.js.map → chunk-65HWAQ4F.js.map} +0 -0
  448. /package/dist/{chunk-T67LUYCR.js.map → chunk-77NTFICT.js.map} +0 -0
  449. /package/dist/{chunk-UE6RRXMF.js.map → chunk-A4F7OIC5.js.map} +0 -0
  450. /package/dist/{chunk-63O7LVMN.js.map → chunk-B33YWUJV.js.map} +0 -0
  451. /package/dist/{chunk-QVMOCJRV.js.map → chunk-B377OKUP.js.map} +0 -0
  452. /package/dist/{chunk-ZT6WPSII.js.map → chunk-BGHCSLE5.js.map} +0 -0
  453. /package/dist/{chunk-YYOMGOHB.js.map → chunk-BOK6BN5M.js.map} +0 -0
  454. /package/dist/{chunk-OH7QLI6W.js.map → chunk-BPPUH5JM.js.map} +0 -0
  455. /package/dist/{chunk-EV76IZ37.js.map → chunk-BTI4C4MA.js.map} +0 -0
  456. /package/dist/{chunk-O6ZSWHVR.js.map → chunk-C2KE5DMD.js.map} +0 -0
  457. /package/dist/{chunk-47F6WWLQ.js.map → chunk-C73N66PR.js.map} +0 -0
  458. /package/dist/{chunk-3XIWW4TB.js.map → chunk-CGJYL633.js.map} +0 -0
  459. /package/dist/{chunk-WRT7GJ2D.js.map → chunk-CIWMTNHW.js.map} +0 -0
  460. /package/dist/{chunk-O55EKIEC.js.map → chunk-D3ZKHLN2.js.map} +0 -0
  461. /package/dist/{chunk-CD4BCCNP.js.map → chunk-DJ7WVEWX.js.map} +0 -0
  462. /package/dist/{chunk-RO7RUBLD.js.map → chunk-EFL24KOI.js.map} +0 -0
  463. /package/dist/{chunk-4CJTQHEG.js.map → chunk-ESLOLCD4.js.map} +0 -0
  464. /package/dist/{chunk-Z4Q6USKJ.js.map → chunk-ETBVCRVL.js.map} +0 -0
  465. /package/dist/{chunk-VILPVT4S.js.map → chunk-EZ47HOJ6.js.map} +0 -0
  466. /package/dist/{chunk-EFYN5I7Z.js.map → chunk-F4QFU5IZ.js.map} +0 -0
  467. /package/dist/{chunk-SHUBTAY2.js.map → chunk-FMKILENU.js.map} +0 -0
  468. /package/dist/{chunk-YLXETSAH.js.map → chunk-GCZJ7XRI.js.map} +0 -0
  469. /package/dist/{chunk-QFEDITXM.js.map → chunk-JNDMIAJ4.js.map} +0 -0
  470. /package/dist/{chunk-E5PPE4VA.js.map → chunk-K2VRKCPA.js.map} +0 -0
  471. /package/dist/{chunk-MKRYQROF.js.map → chunk-LGEHAQHK.js.map} +0 -0
  472. /package/dist/{chunk-XYTQJD7F.js.map → chunk-LMJVP5CM.js.map} +0 -0
  473. /package/dist/{chunk-JC36FPQ5.js.map → chunk-LPV72KRQ.js.map} +0 -0
  474. /package/dist/{chunk-2LCRG2YV.js.map → chunk-M2XR6B6V.js.map} +0 -0
  475. /package/dist/{chunk-VPQFK63H.js.map → chunk-MH632KPO.js.map} +0 -0
  476. /package/dist/{chunk-ZU5JDLOH.js.map → chunk-MMRTPH3J.js.map} +0 -0
  477. /package/dist/{chunk-ZZ67UTQX.js.map → chunk-MUX7IL77.js.map} +0 -0
  478. /package/dist/{chunk-RYWROSL5.js.map → chunk-NAQ4A5IX.js.map} +0 -0
  479. /package/dist/{chunk-TVIVY7KU.js.map → chunk-NED7IR7B.js.map} +0 -0
  480. /package/dist/{chunk-ADYP7HXE.js.map → chunk-NHVAX7MH.js.map} +0 -0
  481. /package/dist/{chunk-TG3R2SID.js.map → chunk-NMGHGTVR.js.map} +0 -0
  482. /package/dist/{chunk-NGHDW6UU.js.map → chunk-NUQEREIP.js.map} +0 -0
  483. /package/dist/{chunk-5IIQU4JZ.js.map → chunk-OB72KNMF.js.map} +0 -0
  484. /package/dist/{chunk-7L3TODI7.js.map → chunk-OJXJWNFY.js.map} +0 -0
  485. /package/dist/{chunk-EURPSF4Y.js.map → chunk-PH5ZQM35.js.map} +0 -0
  486. /package/dist/{chunk-BMWMTAQF.js.map → chunk-PRAUN6PN.js.map} +0 -0
  487. /package/dist/{chunk-RWGRSKN5.js.map → chunk-PT4DZDJA.js.map} +0 -0
  488. /package/dist/{chunk-7EPY3IQL.js.map → chunk-PZJQ46DH.js.map} +0 -0
  489. /package/dist/{chunk-AH637HZ5.js.map → chunk-QDESY76F.js.map} +0 -0
  490. /package/dist/{chunk-I6QGI65T.js.map → chunk-QRMG4HK4.js.map} +0 -0
  491. /package/dist/{chunk-ZU3NJNO7.js.map → chunk-QSF5SJAM.js.map} +0 -0
  492. /package/dist/{chunk-5IYOKDM4.js.map → chunk-R23JWJD3.js.map} +0 -0
  493. /package/dist/{chunk-LJQFJF4J.js.map → chunk-RM2YUFH6.js.map} +0 -0
  494. /package/dist/{chunk-6QMWECO5.js.map → chunk-SGQPR5SX.js.map} +0 -0
  495. /package/dist/{chunk-ZGFLIK5H.js.map → chunk-SPAKBUJY.js.map} +0 -0
  496. /package/dist/{chunk-ER7XANP3.js.map → chunk-SQ3GEIEL.js.map} +0 -0
  497. /package/dist/{chunk-5UCMYPVF.js.map → chunk-SVT5IA2H.js.map} +0 -0
  498. /package/dist/{chunk-FRSHF6FU.js.map → chunk-TJ4F6H4H.js.map} +0 -0
  499. /package/dist/{chunk-R6HMAIKM.js.map → chunk-TOSPNM4T.js.map} +0 -0
  500. /package/dist/{chunk-NJJMVS5Y.js.map → chunk-TRQE3RYR.js.map} +0 -0
  501. /package/dist/{chunk-RMXS4I66.js.map → chunk-TVDJEUV5.js.map} +0 -0
  502. /package/dist/{chunk-PLCYKAWH.js.map → chunk-TYRWSE4B.js.map} +0 -0
  503. /package/dist/{chunk-IQWUACVG.js.map → chunk-UHMHJX5G.js.map} +0 -0
  504. /package/dist/{chunk-YODUDA6R.js.map → chunk-UN4RVUG2.js.map} +0 -0
  505. /package/dist/{chunk-KZSGBWOJ.js.map → chunk-V2KGDESV.js.map} +0 -0
  506. /package/dist/{chunk-E6Z4FBX6.js.map → chunk-V2QSNFCT.js.map} +0 -0
  507. /package/dist/{chunk-N74SGESS.js.map → chunk-WKSQTMU7.js.map} +0 -0
  508. /package/dist/{chunk-RIZ5NUNN.js.map → chunk-WQ4XKIOX.js.map} +0 -0
  509. /package/dist/{chunk-QEYTRFR3.js.map → chunk-X26YOFGS.js.map} +0 -0
  510. /package/dist/{chunk-ITHZFHST.js.map → chunk-X2BVB74H.js.map} +0 -0
  511. /package/dist/{chunk-GNXGJBCA.js.map → chunk-XIYLWEXC.js.map} +0 -0
  512. /package/dist/{chunk-IBJ6U753.js.map → chunk-XKZBZOKV.js.map} +0 -0
  513. /package/dist/{chunk-7O2MC42R.js.map → chunk-XNRLRNQF.js.map} +0 -0
  514. /package/dist/{chunk-65AUYLU3.js.map → chunk-XPXHQI6N.js.map} +0 -0
  515. /package/dist/{chunk-JBCCWVU2.js.map → chunk-XRDYRWZI.js.map} +0 -0
  516. /package/dist/{chunk-2JSDPUKD.js.map → chunk-YMFPFXEX.js.map} +0 -0
  517. /package/dist/{chunk-645WOU5I.js.map → chunk-ZDZJNXL6.js.map} +0 -0
  518. /package/dist/{chunk-6TCXIRP5.js.map → chunk-ZKE4CO6B.js.map} +0 -0
  519. /package/dist/{chunk-KEPXC4KN.js.map → chunk-ZSE774RV.js.map} +0 -0
  520. /package/dist/{contradiction-scan-P2MHYFVG.js.map → contradiction-scan-IBPYGQZF.js.map} +0 -0
  521. /package/dist/{resolution-N7H3F2E4.js.map → resolution-OVVIF7ZY.js.map} +0 -0
  522. /package/dist/{state-store-I5HLZTZT.js.map → state-store-EEAX2MBS.js.map} +0 -0
@@ -11,6 +11,9 @@ import {
11
11
  import {
12
12
  parseLocationConfig
13
13
  } from "./chunk-QNJQCLI6.js";
14
+ import {
15
+ parseCodingKnowledgeConfig
16
+ } from "./chunk-FEHIOYML.js";
14
17
  import {
15
18
  PRE_ACTION_GATE_DEFAULT_TIMEOUT_MS,
16
19
  normalizeActionIntent,
@@ -18,7 +21,7 @@ import {
18
21
  } from "./chunk-CIEEYVUB.js";
19
22
  import {
20
23
  parseSubjectRuntimeConfig
21
- } from "./chunk-WYG5UNDY.js";
24
+ } from "./chunk-3AUDELZL.js";
22
25
  import {
23
26
  parseRecallStandingBlock,
24
27
  parseStandingBlockFreshDays,
@@ -34,15 +37,24 @@ import {
34
37
  parseRecallRecognitionTier,
35
38
  parseRecognitionIndexMaxEntries
36
39
  } from "./chunk-4KQIWY4A.js";
40
+ import {
41
+ parseRecallStateViews
42
+ } from "./chunk-EH3HNCAM.js";
43
+ import {
44
+ parseRecallNavigationConfig
45
+ } from "./chunk-LVTT5AUG.js";
37
46
  import {
38
47
  parseRecallConcurrencyConfig
39
48
  } from "./chunk-6ZMAMSHS.js";
40
49
  import {
41
50
  parseProjectionRebuildScheduleConfig
42
51
  } from "./chunk-EWMRFW3F.js";
52
+ import {
53
+ parseReplicaPeersConfig
54
+ } from "./chunk-WNIUPHWV.js";
43
55
  import {
44
56
  parseLocalLlmConfig
45
- } from "./chunk-O6ZSWHVR.js";
57
+ } from "./chunk-C2KE5DMD.js";
46
58
  import {
47
59
  parseGraphPathScoringConfig
48
60
  } from "./chunk-6ZN34ISG.js";
@@ -56,6 +68,9 @@ import {
56
68
  import {
57
69
  parseExternalWikiRoots
58
70
  } from "./chunk-NDNTNE3S.js";
71
+ import {
72
+ parseExternalWikiRecallGuard
73
+ } from "./chunk-JV3C2MNQ.js";
59
74
  import {
60
75
  resolveEmitLegacyTools,
61
76
  resolveNamespaceCatalogEnabled
@@ -63,6 +78,9 @@ import {
63
78
  import {
64
79
  parseDependencyPropagationConfig
65
80
  } from "./chunk-VUDMT5CP.js";
81
+ import {
82
+ parseDeepRecallConfig
83
+ } from "./chunk-IEEV27BC.js";
66
84
  import {
67
85
  parseContradictionLocalizationConfig,
68
86
  parseContradictionScanConfig
@@ -81,37 +99,6 @@ import {
81
99
  import {
82
100
  parseSecurityConfig
83
101
  } from "./chunk-G2XTGEGL.js";
84
- import {
85
- parseBoundedJsonlStateConfig
86
- } from "./chunk-KFZY2OFH.js";
87
- import {
88
- parseActiveContextFields
89
- } from "./chunk-B32WYRXX.js";
90
- import {
91
- parseBackgroundGeneration
92
- } from "./chunk-27NO2KVB.js";
93
- import {
94
- MEMORY_CATEGORIES,
95
- parseCorrectionConfig
96
- } from "./chunk-ETSJD5IV.js";
97
- import {
98
- parseCodingKnowledgeConfig
99
- } from "./chunk-FEHIOYML.js";
100
- import {
101
- parseRecallStateViews
102
- } from "./chunk-EH3HNCAM.js";
103
- import {
104
- parseRecallNavigationConfig
105
- } from "./chunk-LVTT5AUG.js";
106
- import {
107
- parseReplicaPeersConfig
108
- } from "./chunk-WNIUPHWV.js";
109
- import {
110
- parseExternalWikiRecallGuard
111
- } from "./chunk-JV3C2MNQ.js";
112
- import {
113
- parseDeepRecallConfig
114
- } from "./chunk-IEEV27BC.js";
115
102
  import {
116
103
  parseSkillProjectionConfig
117
104
  } from "./chunk-236PXYG7.js";
@@ -128,12 +115,21 @@ import {
128
115
  normalizeRecallTokenSet,
129
116
  normalizeRecallTokens
130
117
  } from "./chunk-YCVB7X56.js";
118
+ import {
119
+ parseBoundedJsonlStateConfig
120
+ } from "./chunk-KFZY2OFH.js";
121
+ import {
122
+ parseActiveContextFields
123
+ } from "./chunk-B32WYRXX.js";
131
124
  import {
132
125
  coerceBool,
133
126
  coerceBooleanLike,
134
127
  coerceInstallExtension,
135
128
  coerceNumber
136
129
  } from "./chunk-PQVCH2AE.js";
130
+ import {
131
+ parseBackgroundGeneration
132
+ } from "./chunk-27NO2KVB.js";
137
133
  import {
138
134
  parseConvergeConfig
139
135
  } from "./chunk-EHHQJTAU.js";
@@ -142,10 +138,10 @@ import {
142
138
  } from "./chunk-7RJUVTVF.js";
143
139
  import {
144
140
  excludeSupportPassportPrivateMemories
145
- } from "./chunk-YCNIGRRF.js";
141
+ } from "./chunk-NS7U4ZYU.js";
146
142
  import {
147
143
  STRUCTURED_ATTRIBUTE_LIMITS
148
- } from "./chunk-QEYTRFR3.js";
144
+ } from "./chunk-X26YOFGS.js";
149
145
  import {
150
146
  parseOfflineSyncExcludes
151
147
  } from "./chunk-63LFM77Z.js";
@@ -172,6 +168,80 @@ import {
172
168
  // src/config.ts
173
169
  import path2 from "path";
174
170
 
171
+ // src/correction/correction-config.ts
172
+ var DEFAULT_CORRECTION_CLASSIFY_TIMEOUT_MS = 45e3;
173
+ var MAX_CORRECTION_CLASSIFY_TIMEOUT_MS = 3e5;
174
+ function parseCorrectionConfig(cfg) {
175
+ return {
176
+ correctionEnabled: (() => {
177
+ const nested = cfg.correction?.enabled;
178
+ const raw = nested !== void 0 ? nested : cfg.correctionEnabled;
179
+ if (raw === void 0 || raw === null) return true;
180
+ const value = coerceBool(raw);
181
+ if (value === void 0) {
182
+ throw new Error(`Invalid correction.enabled: expected a boolean, got ${JSON.stringify(raw)}`);
183
+ }
184
+ return value;
185
+ })(),
186
+ correctionApplyRequiresConfirm: (() => {
187
+ const nested = cfg.correction?.applyRequiresConfirm;
188
+ const raw = nested !== void 0 ? nested : cfg.correctionApplyRequiresConfirm;
189
+ if (raw === void 0 || raw === null) return true;
190
+ const value = coerceBool(raw);
191
+ if (value === void 0) {
192
+ throw new Error(`Invalid correction.applyRequiresConfirm: expected a boolean, got ${JSON.stringify(raw)}`);
193
+ }
194
+ return value;
195
+ })(),
196
+ correctionMaxAffected: (() => {
197
+ const rawNested = cfg.correction?.maxAffected;
198
+ const raw = rawNested !== void 0 ? rawNested : cfg.correctionMaxAffected;
199
+ if (raw === void 0 || raw === null) return 10;
200
+ const n = coerceNumber(raw);
201
+ if (n === void 0 || !Number.isFinite(n) || n < 1 || !Number.isInteger(n)) {
202
+ throw new Error(`Invalid correction.maxAffected: expected an integer >= 1, got ${JSON.stringify(raw)}`);
203
+ }
204
+ return n;
205
+ })(),
206
+ correctionPlanTtlHours: (() => {
207
+ const nested = cfg.correction?.planTtlHours;
208
+ const fromNested = nested !== void 0 ? coerceNumber(nested) : void 0;
209
+ if (fromNested !== void 0 && fromNested >= 1) return fromNested;
210
+ if (nested !== void 0 && fromNested === void 0) {
211
+ throw new Error(`Invalid correction.planTtlHours: expected a number >= 1, got ${JSON.stringify(nested)}`);
212
+ }
213
+ if (fromNested !== void 0 && fromNested < 1) {
214
+ throw new Error(`Invalid correction.planTtlHours: expected a number >= 1, got ${JSON.stringify(nested)}`);
215
+ }
216
+ const fromFlat = coerceNumber(cfg.correctionPlanTtlHours);
217
+ if (fromFlat !== void 0 && fromFlat >= 1) return fromFlat;
218
+ if (cfg.correctionPlanTtlHours !== void 0 && fromFlat === void 0) {
219
+ throw new Error(
220
+ `Invalid correction.planTtlHours: expected a number >= 1, got ${JSON.stringify(cfg.correctionPlanTtlHours)}`
221
+ );
222
+ }
223
+ if (fromFlat !== void 0 && fromFlat < 1) {
224
+ throw new Error(
225
+ `Invalid correction.planTtlHours: expected a number >= 1, got ${JSON.stringify(cfg.correctionPlanTtlHours)}`
226
+ );
227
+ }
228
+ return 24;
229
+ })(),
230
+ correctionClassifyTimeoutMs: (() => {
231
+ const nested = cfg.correction?.classifyTimeoutMs;
232
+ const raw = nested !== void 0 ? nested : cfg.correctionClassifyTimeoutMs;
233
+ if (raw === void 0 || raw === null) return DEFAULT_CORRECTION_CLASSIFY_TIMEOUT_MS;
234
+ const n = coerceNumber(raw);
235
+ if (n === void 0 || !Number.isInteger(n) || n < 1 || n > MAX_CORRECTION_CLASSIFY_TIMEOUT_MS) {
236
+ throw new Error(
237
+ `Invalid correction.classifyTimeoutMs: expected an integer from 1 to ${MAX_CORRECTION_CLASSIFY_TIMEOUT_MS}, got ${JSON.stringify(raw)}`
238
+ );
239
+ }
240
+ return n;
241
+ })()
242
+ };
243
+ }
244
+
175
245
  // src/procedural/maintenance-config.ts
176
246
  function parseProceduralMaintenanceConfig(raw) {
177
247
  if (raw !== void 0 && (raw === null || typeof raw !== "object" || Array.isArray(raw))) {
@@ -1115,6 +1185,274 @@ async function applyNoveltyGate(opts) {
1115
1185
  }
1116
1186
  }
1117
1187
 
1188
+ // src/correction/correction-contract.ts
1189
+ var MEMORY_CATEGORIES = [
1190
+ "fact",
1191
+ "preference",
1192
+ "correction",
1193
+ "entity",
1194
+ "decision",
1195
+ "relationship",
1196
+ "principle",
1197
+ "commitment",
1198
+ "moment",
1199
+ "skill",
1200
+ "rule",
1201
+ "procedure",
1202
+ "reasoning_trace"
1203
+ ];
1204
+ var CORRECTION_ACTION_KINDS = [
1205
+ "supersede",
1206
+ "edit",
1207
+ "retract",
1208
+ "rescope",
1209
+ "redaction_rule"
1210
+ ];
1211
+ var CORRECTION_TEXT_MAX = 1e4;
1212
+ var REDACTION_PATTERN_MAX = 256;
1213
+ var CORRECTION_MEMORY_ID_MAX = 512;
1214
+ function validateCorrectionRequest(request) {
1215
+ if (!request || typeof request !== "object") {
1216
+ throw new CorrectionContractError("CorrectionRequest must be an object.");
1217
+ }
1218
+ const text = typeof request.text === "string" ? request.text.trim() : "";
1219
+ if (text.length === 0) {
1220
+ throw new CorrectionContractError("CorrectionRequest.text is required and must be non-empty.");
1221
+ }
1222
+ if (text.length > CORRECTION_TEXT_MAX) {
1223
+ throw new CorrectionContractError(
1224
+ `CorrectionRequest.text exceeds the ${CORRECTION_TEXT_MAX}-character limit (${text.length}).`
1225
+ );
1226
+ }
1227
+ const targetIds = Array.isArray(request.targetIds) ? request.targetIds.filter((id) => typeof id === "string" && id.length > 0) : void 0;
1228
+ const normalizedTargets = targetIds !== void 0 && targetIds.length === 0 ? void 0 : targetIds;
1229
+ const duplicateOf = readDuplicateOf(request.duplicateOf);
1230
+ if (duplicateOf) {
1231
+ if (!normalizedTargets || normalizedTargets.length !== 1) {
1232
+ throw new CorrectionContractError(
1233
+ "CorrectionRequest.duplicateOf requires exactly one targetIds entry (the duplicate memory)."
1234
+ );
1235
+ }
1236
+ if (normalizedTargets[0] === duplicateOf) {
1237
+ throw new CorrectionContractError(
1238
+ "CorrectionRequest.duplicateOf must be a different memory from targetIds."
1239
+ );
1240
+ }
1241
+ }
1242
+ return {
1243
+ text,
1244
+ ...normalizedTargets ? { targetIds: normalizedTargets } : {},
1245
+ ...duplicateOf ? { duplicateOf } : {},
1246
+ ...request.sessionKey ? { sessionKey: request.sessionKey } : {},
1247
+ ...request.principal ? { principal: request.principal } : {},
1248
+ ...request.namespace ? { namespace: request.namespace } : {}
1249
+ };
1250
+ }
1251
+ function readDuplicateOf(value) {
1252
+ if (value === void 0 || value === null) return void 0;
1253
+ if (typeof value !== "string") {
1254
+ throw new CorrectionContractError("CorrectionRequest.duplicateOf must be a memory id string.");
1255
+ }
1256
+ const id = value.trim();
1257
+ if (id.length === 0 || id !== value) {
1258
+ throw new CorrectionContractError("CorrectionRequest.duplicateOf must be a non-empty memory id.");
1259
+ }
1260
+ if (id.length > CORRECTION_MEMORY_ID_MAX) {
1261
+ throw new CorrectionContractError(
1262
+ `CorrectionRequest.duplicateOf exceeds the ${CORRECTION_MEMORY_ID_MAX}-character limit (${id.length}).`
1263
+ );
1264
+ }
1265
+ return id;
1266
+ }
1267
+ function validateRedactionPattern(pattern) {
1268
+ if (typeof pattern !== "string") {
1269
+ throw new CorrectionContractError("redaction_rule.pattern must be a string.");
1270
+ }
1271
+ const trimmed = pattern.trim();
1272
+ if (trimmed.length === 0) {
1273
+ throw new CorrectionContractError("redaction_rule.pattern is required.");
1274
+ }
1275
+ if (trimmed.length > REDACTION_PATTERN_MAX) {
1276
+ throw new CorrectionContractError(
1277
+ `redaction_rule.pattern exceeds the ${REDACTION_PATTERN_MAX}-character bound.`
1278
+ );
1279
+ }
1280
+ if (isRegexLike(trimmed) && isUnsafeRedactionRegex(trimmed)) {
1281
+ throw new CorrectionContractError(
1282
+ "redaction_rule.pattern is unsafe \u2014 use a bounded literal or a regex without nested quantifiers / overlapping alternation."
1283
+ );
1284
+ }
1285
+ if (isRegexLike(trimmed)) {
1286
+ const regexBody = trimmed.slice(1, -1);
1287
+ if (regexBody.length === 0) {
1288
+ throw new CorrectionContractError("redaction_rule.pattern body is empty \u2014 use a non-empty regex.");
1289
+ }
1290
+ try {
1291
+ if (new RegExp(regexBody).test("")) {
1292
+ throw new CorrectionContractError(
1293
+ "redaction_rule.pattern matches the empty string \u2014 it would withhold every fact."
1294
+ );
1295
+ }
1296
+ } catch (e) {
1297
+ if (e instanceof CorrectionContractError) throw e;
1298
+ }
1299
+ }
1300
+ return trimmed;
1301
+ }
1302
+ function isRegexLike(pattern) {
1303
+ return pattern.startsWith("/") && pattern.endsWith("/") && pattern.length >= 2;
1304
+ }
1305
+ function isUnsafeRedactionRegex(pattern) {
1306
+ const body = pattern.startsWith("/") && pattern.endsWith("/") ? pattern.slice(1, -1) : pattern;
1307
+ if (/(?:^|[^\\])\(\.\*\)|(?:^|[^\\])\.\*|(?:^|[^\\])\.\+|^\.([^*+]?)$/.test(body)) {
1308
+ return true;
1309
+ }
1310
+ if (body.length > 512) return true;
1311
+ for (let i = 0; i < body.length; i++) {
1312
+ if (body[i] !== "(") continue;
1313
+ let depth = 1;
1314
+ let j = i + 1;
1315
+ while (j < body.length && depth > 0) {
1316
+ if (body[j] === "\\") {
1317
+ j += 2;
1318
+ continue;
1319
+ }
1320
+ if (body[j] === "(") depth++;
1321
+ else if (body[j] === ")") depth--;
1322
+ j++;
1323
+ }
1324
+ if (depth !== 0) continue;
1325
+ const afterGroup = body[j];
1326
+ if (afterGroup !== "+" && afterGroup !== "*" && afterGroup !== "{") continue;
1327
+ const groupBody = body.slice(i + 1, j - 1);
1328
+ if (/[+*?]$/.test(groupBody) || /\{\d+,?\d*\}[+*?]?$/.test(groupBody)) {
1329
+ return true;
1330
+ }
1331
+ if (groupBody.includes("|")) {
1332
+ const branches = groupBody.split("|");
1333
+ if (branches.length >= 2) {
1334
+ const firstChars = new Set(branches.map((b) => b[0]).filter(Boolean));
1335
+ if (firstChars.size < branches.filter((b) => b.length > 0).length) {
1336
+ return true;
1337
+ }
1338
+ }
1339
+ }
1340
+ i = j;
1341
+ }
1342
+ return false;
1343
+ }
1344
+ function validateCorrectionAction(action) {
1345
+ if (!action || typeof action !== "object") {
1346
+ throw new CorrectionContractError("CorrectionAction must be an object.");
1347
+ }
1348
+ const a = action;
1349
+ if (typeof a.kind !== "string" || !CORRECTION_ACTION_KINDS.includes(a.kind)) {
1350
+ throw new CorrectionContractError(
1351
+ `CorrectionAction.kind must be one of: ${CORRECTION_ACTION_KINDS.join(", ")}.`
1352
+ );
1353
+ }
1354
+ switch (a.kind) {
1355
+ case "supersede":
1356
+ if (typeof a.loserId !== "string" || a.loserId.length === 0) {
1357
+ throw new CorrectionContractError("supersede.loserId is required.");
1358
+ }
1359
+ {
1360
+ const hasReplacement = a.replacement !== void 0 && a.replacement !== null;
1361
+ const hasWinner = a.winnerId !== void 0 && a.winnerId !== null;
1362
+ if (hasWinner) {
1363
+ if (typeof a.winnerId !== "string" || a.winnerId.trim().length === 0 || a.winnerId !== a.winnerId.trim()) {
1364
+ throw new CorrectionContractError("supersede.winnerId must be a non-empty memory id.");
1365
+ }
1366
+ if (a.winnerId === a.loserId) {
1367
+ throw new CorrectionContractError("supersede.winnerId must differ from loserId.");
1368
+ }
1369
+ if (hasReplacement) {
1370
+ throw new CorrectionContractError("supersede.winnerId cannot be combined with a replacement draft.");
1371
+ }
1372
+ }
1373
+ if (hasReplacement) validateMemoryDraft(a.replacement);
1374
+ }
1375
+ break;
1376
+ case "edit":
1377
+ if (typeof a.memoryId !== "string" || a.memoryId.length === 0) {
1378
+ throw new CorrectionContractError("edit.memoryId is required.");
1379
+ }
1380
+ if (typeof a.patch !== "string" || a.patch.length === 0) {
1381
+ throw new CorrectionContractError("edit.patch is required and must be non-empty.");
1382
+ }
1383
+ break;
1384
+ case "retract":
1385
+ if (typeof a.memoryId !== "string" || a.memoryId.length === 0) {
1386
+ throw new CorrectionContractError("retract.memoryId is required.");
1387
+ }
1388
+ break;
1389
+ case "rescope":
1390
+ if (typeof a.memoryId !== "string" || a.memoryId.length === 0) {
1391
+ throw new CorrectionContractError("rescope.memoryId is required.");
1392
+ }
1393
+ if (typeof a.toNamespace !== "string" || a.toNamespace.trim().length === 0) {
1394
+ throw new CorrectionContractError("rescope.toNamespace is required.");
1395
+ }
1396
+ break;
1397
+ case "redaction_rule":
1398
+ if (typeof a.pattern !== "string") {
1399
+ throw new CorrectionContractError("redaction_rule.pattern is required.");
1400
+ }
1401
+ validateRedactionPattern(a.pattern);
1402
+ break;
1403
+ }
1404
+ }
1405
+ function validateMemoryDraft(draft) {
1406
+ if (!draft || typeof draft !== "object") {
1407
+ throw new CorrectionContractError("MemoryDraft must be an object.");
1408
+ }
1409
+ const d = draft;
1410
+ if (typeof d.content !== "string" || d.content.trim().length === 0) {
1411
+ throw new CorrectionContractError("MemoryDraft.content is required and must be non-empty.");
1412
+ }
1413
+ if (d.category !== void 0) {
1414
+ if (typeof d.category !== "string" || !MEMORY_CATEGORIES.includes(d.category)) {
1415
+ throw new CorrectionContractError(
1416
+ `MemoryDraft.category must be one of: ${MEMORY_CATEGORIES.join(", ")}.`
1417
+ );
1418
+ }
1419
+ }
1420
+ if (d.confidence !== void 0 && (typeof d.confidence !== "number" || d.confidence < 0 || d.confidence > 1)) {
1421
+ throw new CorrectionContractError("MemoryDraft.confidence must be a number in [0, 1].");
1422
+ }
1423
+ if (d.tags !== void 0 && !Array.isArray(d.tags)) {
1424
+ throw new CorrectionContractError("MemoryDraft.tags must be an array.");
1425
+ }
1426
+ if (d.structuredAttributes !== void 0 && (typeof d.structuredAttributes !== "object" || d.structuredAttributes === null)) {
1427
+ throw new CorrectionContractError("MemoryDraft.structuredAttributes must be an object.");
1428
+ }
1429
+ }
1430
+ function deterministicFallbackPlan(args) {
1431
+ return {
1432
+ planId: newPlanId(),
1433
+ request: args.request,
1434
+ namespace: args.namespace,
1435
+ affected: args.affected,
1436
+ classification: "outdated",
1437
+ actions: [],
1438
+ diff: "",
1439
+ confidence: 0,
1440
+ warnings: [...args.warnings, "planner LLM unavailable \u2014 manual action selection required"],
1441
+ createdAt: args.createdAt,
1442
+ expiresAt: args.expiresAt,
1443
+ status: "pending"
1444
+ };
1445
+ }
1446
+ function newPlanId() {
1447
+ return `corr-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`;
1448
+ }
1449
+ var CorrectionContractError = class extends Error {
1450
+ constructor(message) {
1451
+ super(message);
1452
+ this.name = "CorrectionContractError";
1453
+ }
1454
+ };
1455
+
1118
1456
  // src/dedup/merge-min-score.ts
1119
1457
  function describeValue(value) {
1120
1458
  try {
@@ -4923,9 +5261,12 @@ function parseConfig(raw, rawOperatorConfig, runtimeSet) {
4923
5261
  }
4924
5262
  const rawDrive = rawConnectors.googleDrive && typeof rawConnectors.googleDrive === "object" && !Array.isArray(rawConnectors.googleDrive) ? rawConnectors.googleDrive : {};
4925
5263
  const driveEnabled = coerceBool(rawDrive.enabled) === true;
4926
- const driveClientId = typeof rawDrive.clientId === "string" ? rawDrive.clientId : "";
4927
- const driveClientSecret = typeof rawDrive[CLIENT_SECRET_FIELD] === "string" ? rawDrive[CLIENT_SECRET_FIELD] : "";
4928
- const driveRefreshToken = typeof rawDrive[REFRESH_TOKEN_FIELD] === "string" ? rawDrive[REFRESH_TOKEN_FIELD] : "";
5264
+ const driveClientIdRaw = rawDrive.clientId;
5265
+ const driveClientId = Object.prototype.toString.call(driveClientIdRaw) === "[object String]" ? driveClientIdRaw : Object.prototype.toString.call(driveClientIdRaw) === "[object Object]" && Object.prototype.toString.call(driveClientIdRaw.source) === "[object String]" ? driveClientIdRaw : "";
5266
+ const driveClientSecretRaw = rawDrive[CLIENT_SECRET_FIELD];
5267
+ const driveClientSecret = Object.prototype.toString.call(driveClientSecretRaw) === "[object String]" ? driveClientSecretRaw : Object.prototype.toString.call(driveClientSecretRaw) === "[object Object]" && Object.prototype.toString.call(driveClientSecretRaw.source) === "[object String]" ? driveClientSecretRaw : "";
5268
+ const driveRefreshTokenRaw = rawDrive[REFRESH_TOKEN_FIELD];
5269
+ const driveRefreshToken = Object.prototype.toString.call(driveRefreshTokenRaw) === "[object String]" ? driveRefreshTokenRaw : Object.prototype.toString.call(driveRefreshTokenRaw) === "[object Object]" && Object.prototype.toString.call(driveRefreshTokenRaw.source) === "[object String]" ? driveRefreshTokenRaw : "";
4929
5270
  const drivePollCoerced = coerceNumber(rawDrive.pollIntervalMs);
4930
5271
  let drivePollIntervalMs = 3e5;
4931
5272
  if (drivePollCoerced !== void 0) {
@@ -5466,6 +5807,15 @@ function parseTrustScoreWeights(value) {
5466
5807
  }
5467
5808
 
5468
5809
  export {
5810
+ CORRECTION_TEXT_MAX,
5811
+ validateCorrectionRequest,
5812
+ validateRedactionPattern,
5813
+ validateCorrectionAction,
5814
+ deterministicFallbackPlan,
5815
+ newPlanId,
5816
+ CorrectionContractError,
5817
+ DEFAULT_CORRECTION_CLASSIFY_TIMEOUT_MS,
5818
+ MAX_CORRECTION_CLASSIFY_TIMEOUT_MS,
5469
5819
  DRIFT_DETECTION_DEFAULTS,
5470
5820
  parseDriftDetectionConfig,
5471
5821
  buildMergeFrontmatterUpdate,
@@ -5504,4 +5854,4 @@ export {
5504
5854
  VALID_MEMORY_CATEGORIES,
5505
5855
  parseConfig
5506
5856
  };
5507
- //# sourceMappingURL=chunk-YS2GHSWN.js.map
5857
+ //# sourceMappingURL=chunk-UBEKET2V.js.map