@remnic/core 9.65.1 → 9.65.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 (576) hide show
  1. package/dist/access-admin-ops-surface.d.ts +44 -44
  2. package/dist/access-admin-ops-surface.js +36 -35
  3. package/dist/access-authorization-probe.d.ts +39 -40
  4. package/dist/access-authorization-probe.js +37 -36
  5. package/dist/access-boundary.d.ts +41 -185
  6. package/dist/access-boundary.js +36 -35
  7. package/dist/access-cli.js +110 -107
  8. package/dist/access-cli.js.map +1 -1
  9. package/dist/access-coding-context-resolution.d.ts +3 -1
  10. package/dist/access-extraction-force-flush.d.ts +25 -25
  11. package/dist/access-extraction-force-flush.js +36 -35
  12. package/dist/access-health-types.d.ts +3 -1
  13. package/dist/access-http-lcm-compaction.d.ts +39 -39
  14. package/dist/access-http-lifecycle-flush.d.ts +40 -41
  15. package/dist/access-http-offline-stream.d.ts +25 -25
  16. package/dist/access-http-query.d.ts +4 -2
  17. package/dist/access-http-query.js +38 -37
  18. package/dist/access-http.d.ts +51 -44
  19. package/dist/access-http.js +57 -56
  20. package/dist/access-identity-continuity-surface.d.ts +12 -12
  21. package/dist/access-identity-continuity-surface.js +36 -35
  22. package/dist/access-lcm-surface.d.ts +27 -27
  23. package/dist/access-lcm-surface.js +36 -35
  24. package/dist/access-mcp-admin-tools.d.ts +9 -1
  25. package/dist/access-mcp-admin-tools.js +3 -1
  26. package/dist/access-mcp-output-schemas.js +1 -1
  27. package/dist/access-mcp.d.ts +39 -39
  28. package/dist/access-mcp.js +50 -47
  29. package/dist/access-memory-search-fanout.d.ts +4 -2
  30. package/dist/{access-namespace-preflight-BKUnKsBv.d.ts → access-namespace-preflight-B7Usyz-K.d.ts} +1 -1
  31. package/dist/access-namespace-preflight.d.ts +5 -3
  32. package/dist/access-namespace-preflight.js +36 -35
  33. package/dist/access-observe-write-surface.d.ts +39 -39
  34. package/dist/access-observe-write-surface.js +36 -35
  35. package/dist/access-offline-manifest.d.ts +12 -12
  36. package/dist/access-offline-manifest.js +5 -5
  37. package/dist/access-operations-batch.js +41 -40
  38. package/dist/access-operations.d.ts +46 -47
  39. package/dist/access-operations.js +44 -43
  40. package/dist/access-recall-concurrency.d.ts +40 -40
  41. package/dist/access-recall-concurrency.js +36 -35
  42. package/dist/access-recall-response.d.ts +24 -24
  43. package/dist/access-recall-response.js +36 -35
  44. package/dist/access-recall-surface.d.ts +24 -24
  45. package/dist/access-recall-surface.js +36 -35
  46. package/dist/access-schema.d.ts +139 -139
  47. package/dist/access-schema.js +3 -3
  48. package/dist/{access-service-B1Lbb-nQ.d.ts → access-service-DkaIG3n8.d.ts} +688 -140
  49. package/dist/access-service-helpers.d.ts +40 -40
  50. package/dist/access-service.d.ts +47 -47
  51. package/dist/access-service.js +36 -35
  52. package/dist/access-surface-catalog.d.ts +41 -42
  53. package/dist/access-surface-catalog.js +44 -37
  54. package/dist/access-surface-catalog.js.map +1 -1
  55. package/dist/access-wearables-meetings-surface.d.ts +5 -3
  56. package/dist/action-confidence.d.ts +3 -1
  57. package/dist/active-memory-bridge.d.ts +3 -1
  58. package/dist/active-recall.d.ts +3 -1
  59. package/dist/active-recall.js +11 -1
  60. package/dist/active-recall.js.map +1 -1
  61. package/dist/adapters/index.js +4 -4
  62. package/dist/adapters/registry.js +2 -2
  63. package/dist/ambient-provenance.d.ts +3 -1
  64. package/dist/artifact-search.d.ts +3 -1
  65. package/dist/{auto-sync-5L7EUZ27.js → auto-sync-H64ZCNIR.js} +13 -5
  66. package/dist/{auto-sync-5L7EUZ27.js.map → auto-sync-H64ZCNIR.js.map} +1 -1
  67. package/dist/behavior-learner.d.ts +3 -1
  68. package/dist/behavior-signals.d.ts +3 -1
  69. package/dist/bootstrap.d.ts +12 -12
  70. package/dist/briefing-window.d.ts +4 -2
  71. package/dist/briefing.d.ts +4 -2
  72. package/dist/briefing.js +16 -15
  73. package/dist/buffer-surprise-report.d.ts +3 -1
  74. package/dist/buffer-turn-helpers.d.ts +3 -1
  75. package/dist/buffer.d.ts +4 -2
  76. package/dist/buffer.js +4 -4
  77. package/dist/bulk-import/index.d.ts +5 -3
  78. package/dist/calibration.d.ts +3 -1
  79. package/dist/calibration.js +1 -1
  80. package/dist/capabilities.d.ts +3 -1
  81. package/dist/{capsule-crypto-7FJQINUR.js → capsule-crypto-YO5QJ6L3.js} +2 -2
  82. package/dist/{catalog-DjVhJoRM.d.ts → catalog-CX2BZEJh.d.ts} +1 -1
  83. package/dist/causal-behavior.d.ts +1 -1
  84. package/dist/causal-consolidation.d.ts +3 -1
  85. package/dist/causal-consolidation.js +20 -19
  86. package/dist/causal-consolidation.js.map +1 -1
  87. package/dist/causal-trajectory-graph.d.ts +1 -1
  88. package/dist/{chunk-MIBKEW7A.js → chunk-2VXWFYJE.js} +3 -3
  89. package/dist/{chunk-3YTTAGPB.js → chunk-3DVBKTSO.js} +2 -2
  90. package/dist/{chunk-EIR5VLIH.js → chunk-4K7IW3F7.js} +2 -2
  91. package/dist/chunk-4K7IW3F7.js.map +1 -0
  92. package/dist/{chunk-JTSVMJHV.js → chunk-4XDGYCZI.js} +3 -3
  93. package/dist/chunk-573TEZCD.js +88 -0
  94. package/dist/chunk-573TEZCD.js.map +1 -0
  95. package/dist/{chunk-HQSBYI5X.js → chunk-57HVIG5U.js} +2 -2
  96. package/dist/{chunk-PMVPCZJZ.js → chunk-6433HV72.js} +2 -2
  97. package/dist/{chunk-N6TRHP72.js → chunk-6TAX66IA.js} +2 -2
  98. package/dist/{chunk-AGKIG3YA.js → chunk-6VALIZKG.js} +2 -2
  99. package/dist/{chunk-YQ3CBLL4.js → chunk-76PL4XLG.js} +512 -8
  100. package/dist/chunk-76PL4XLG.js.map +1 -0
  101. package/dist/{chunk-4NZHHGVL.js → chunk-7BDZTALN.js} +4 -1
  102. package/dist/chunk-7BDZTALN.js.map +1 -0
  103. package/dist/{chunk-NS5ETDYD.js → chunk-7BEPVIH3.js} +3 -3
  104. package/dist/{chunk-JG22O53B.js → chunk-7CBKAQIG.js} +2 -1
  105. package/dist/chunk-7CBKAQIG.js.map +1 -0
  106. package/dist/{chunk-LYIZXQYY.js → chunk-7KFIMGMP.js} +2 -2
  107. package/dist/{chunk-LWVO2QZV.js → chunk-7QOO4LGC.js} +56 -56
  108. package/dist/chunk-AAXJNINV.js +55 -0
  109. package/dist/chunk-AAXJNINV.js.map +1 -0
  110. package/dist/{chunk-56BSXSHC.js → chunk-AB3A7EFH.js} +31 -2
  111. package/dist/{chunk-56BSXSHC.js.map → chunk-AB3A7EFH.js.map} +1 -1
  112. package/dist/{chunk-CCTVAVTT.js → chunk-AUO2LJ3K.js} +2 -2
  113. package/dist/{chunk-ALCJRQ72.js → chunk-AYDDB3XI.js} +2 -2
  114. package/dist/{chunk-3TMYV3LP.js → chunk-AYYGRVRP.js} +5 -5
  115. package/dist/{chunk-W6TSGWYS.js → chunk-AZAA5DNP.js} +2 -2
  116. package/dist/{chunk-WTOE7CW4.js → chunk-BKYPJUQL.js} +122 -16
  117. package/dist/chunk-BKYPJUQL.js.map +1 -0
  118. package/dist/{chunk-6JJT5AKI.js → chunk-BQUEAVNW.js} +2 -2
  119. package/dist/{chunk-2NLLXCJG.js → chunk-BXLOS5AJ.js} +2 -2
  120. package/dist/{chunk-CEH2AFXG.js → chunk-C24UZSFW.js} +6 -6
  121. package/dist/{chunk-ZPN7W3OP.js → chunk-CDUUDBWJ.js} +3 -3
  122. package/dist/{chunk-35NN3ZFA.js → chunk-CTVWELNK.js} +21 -3
  123. package/dist/chunk-CTVWELNK.js.map +1 -0
  124. package/dist/{chunk-Y23B2QXP.js → chunk-D27J626P.js} +2 -2
  125. package/dist/{chunk-2572MRP2.js → chunk-DHTQP334.js} +2 -2
  126. package/dist/{chunk-HJQZQUPC.js → chunk-DJZWNKFO.js} +5 -5
  127. package/dist/{chunk-X7Y7WX73.js → chunk-DQEMWVMT.js} +1 -1
  128. package/dist/{chunk-VJ6ECBIP.js → chunk-E4MVQQVX.js} +2 -2
  129. package/dist/{chunk-SYJ6EKKE.js → chunk-EIVIB73I.js} +2 -2
  130. package/dist/{chunk-HUNSEO5U.js → chunk-EV3YFLCB.js} +2 -2
  131. package/dist/{chunk-GEULB2VI.js → chunk-FC7TIRFS.js} +21 -1
  132. package/dist/chunk-FC7TIRFS.js.map +1 -0
  133. package/dist/{chunk-VPGRXEAB.js → chunk-G57LQRP6.js} +2 -2
  134. package/dist/{chunk-BC4QD3FM.js → chunk-GN55KU2P.js} +2 -2
  135. package/dist/{chunk-4W6INNXO.js → chunk-GUXS322H.js} +2 -2
  136. package/dist/{chunk-DBXZZIDU.js → chunk-H5FW4S5Q.js} +434 -693
  137. package/dist/chunk-H5FW4S5Q.js.map +1 -0
  138. package/dist/chunk-I32NKXE2.js +879 -0
  139. package/dist/chunk-I32NKXE2.js.map +1 -0
  140. package/dist/{chunk-3MADV4YC.js → chunk-IQSC3V2E.js} +2 -2
  141. package/dist/{chunk-UYCIS6V5.js → chunk-JCWY73FK.js} +2 -2
  142. package/dist/{chunk-T42L3S6A.js → chunk-LBWQ65SX.js} +4 -4
  143. package/dist/{chunk-MSTNSVXI.js → chunk-LDBFXD4F.js} +2 -1
  144. package/dist/chunk-LDBFXD4F.js.map +1 -0
  145. package/dist/{chunk-CEQF6L5K.js → chunk-LUNJ3WFO.js} +9 -7
  146. package/dist/chunk-LUNJ3WFO.js.map +1 -0
  147. package/dist/{chunk-256FBCVX.js → chunk-M4AHBM72.js} +7 -7
  148. package/dist/{chunk-YEQEGSJA.js → chunk-MBDJJTAT.js} +3 -3
  149. package/dist/{chunk-IAY7YBXS.js → chunk-MRTUN665.js} +2 -2
  150. package/dist/{chunk-JFJ3MHGV.js → chunk-NXKJHSDN.js} +1 -1
  151. package/dist/chunk-NXKJHSDN.js.map +1 -0
  152. package/dist/{chunk-R3AAOKR2.js → chunk-NZWEEALH.js} +2 -2
  153. package/dist/{chunk-I2HTKOOP.js → chunk-ODZG724P.js} +2 -2
  154. package/dist/{chunk-7QFBLYFP.js → chunk-OJD4WS2E.js} +3 -3
  155. package/dist/{chunk-CUS6S7PN.js → chunk-OLWTCWQ2.js} +9 -9
  156. package/dist/chunk-OLWTCWQ2.js.map +1 -0
  157. package/dist/{chunk-53ENM6F6.js → chunk-P4DHENRE.js} +2 -2
  158. package/dist/{chunk-DEFI2QBT.js → chunk-PAYGC3BD.js} +52 -22
  159. package/dist/chunk-PAYGC3BD.js.map +1 -0
  160. package/dist/{chunk-KPBLJCCV.js → chunk-PDVQ5JU3.js} +2 -2
  161. package/dist/{chunk-7BY7V4YX.js → chunk-Q4WONDMJ.js} +4 -3
  162. package/dist/{chunk-7BY7V4YX.js.map → chunk-Q4WONDMJ.js.map} +1 -1
  163. package/dist/{chunk-ESCQ6LY7.js → chunk-QFMO32TO.js} +3 -3
  164. package/dist/{chunk-HQSPXTQO.js → chunk-QXIQPCCN.js} +1 -1
  165. package/dist/{chunk-CFRBTATE.js → chunk-R47WINCY.js} +3 -3
  166. package/dist/{chunk-G72IPMR7.js → chunk-R4OCGPSH.js} +2 -2
  167. package/dist/{chunk-LCU5R6TQ.js → chunk-RAIUTAZZ.js} +22 -3
  168. package/dist/chunk-RAIUTAZZ.js.map +1 -0
  169. package/dist/chunk-RIAM7DND.js +167 -0
  170. package/dist/chunk-RIAM7DND.js.map +1 -0
  171. package/dist/{chunk-VZVP2W4O.js → chunk-RK4WXUI2.js} +2 -2
  172. package/dist/{chunk-JBPKEARU.js → chunk-RKNJBZ55.js} +4 -4
  173. package/dist/{chunk-6L27N6YI.js → chunk-S7Q5CM7E.js} +2 -2
  174. package/dist/{chunk-CTQRPANJ.js → chunk-SVSRPG6M.js} +2 -2
  175. package/dist/{chunk-GXWDWOWP.js → chunk-TDKSCV62.js} +2 -2
  176. package/dist/{chunk-S2VBSTTA.js → chunk-THG4GYIE.js} +2 -2
  177. package/dist/{chunk-IXRC7EQG.js → chunk-TR7DGXGI.js} +2 -2
  178. package/dist/{chunk-63FHSH7E.js → chunk-TYUS5TLG.js} +4 -4
  179. package/dist/{chunk-7PWWGYGO.js → chunk-URHCUXKI.js} +2 -2
  180. package/dist/{chunk-Z54TXZ2F.js → chunk-VA5KMSAE.js} +16 -7
  181. package/dist/chunk-VA5KMSAE.js.map +1 -0
  182. package/dist/{chunk-KQAFEZQX.js → chunk-VDX2J7OX.js} +2 -2
  183. package/dist/{chunk-MUJ4QFUQ.js → chunk-W4BMEGQA.js} +4 -4
  184. package/dist/{chunk-5HK3CJAR.js → chunk-W675UJCZ.js} +2 -2
  185. package/dist/{chunk-3PXVYJMC.js → chunk-WN5FSGLE.js} +2077 -215
  186. package/dist/chunk-WN5FSGLE.js.map +1 -0
  187. package/dist/{chunk-3RHFGGI5.js → chunk-YF6UHWOV.js} +30 -10
  188. package/dist/chunk-YF6UHWOV.js.map +1 -0
  189. package/dist/{chunk-X5SDZMO7.js → chunk-YHCBJULX.js} +2 -2
  190. package/dist/{chunk-5UYSCYR7.js → chunk-Z4RPXHJH.js} +4 -4
  191. package/dist/{cli-Pulnz-qm.d.ts → cli-ChKeYMZv.d.ts} +5 -5
  192. package/dist/cli.d.ts +25 -25
  193. package/dist/cli.js +81 -78
  194. package/dist/coding/pre-action-gate.d.ts +2 -60
  195. package/dist/compounding/engine.d.ts +4 -2
  196. package/dist/compounding/engine.js +17 -16
  197. package/dist/compounding/preference-consolidator.d.ts +3 -1
  198. package/dist/compression-optimizer.d.ts +3 -1
  199. package/dist/config.d.ts +3 -1
  200. package/dist/config.js +11 -1
  201. package/dist/connectors/codex-materialize-runner.d.ts +3 -1
  202. package/dist/connectors/codex-materialize-runner.js +16 -15
  203. package/dist/connectors/codex-materialize.d.ts +3 -1
  204. package/dist/connectors/index.d.ts +3 -1
  205. package/dist/connectors/index.js +16 -15
  206. package/dist/consolidation-provenance-check.d.ts +4 -2
  207. package/dist/consolidation-undo.d.ts +4 -2
  208. package/dist/contradiction/index.d.ts +10 -270
  209. package/dist/contradiction/index.js +20 -7
  210. package/dist/{contradiction-review-QKJH5DKD.js → contradiction-review-WRVLRWHS.js} +6 -2
  211. package/dist/{contradiction-scan-VOTQRRSX.js → contradiction-scan-AKUWPX5N.js} +5 -3
  212. package/dist/converge-config.d.ts +3 -1
  213. package/dist/convergence-refresh.d.ts +4 -2
  214. package/dist/convergence-refresh.js +18 -17
  215. package/dist/conversation-index/backend.d.ts +3 -1
  216. package/dist/conversation-index/chunker.d.ts +3 -1
  217. package/dist/conversation-index/faiss-adapter.d.ts +3 -1
  218. package/dist/conversation-index/indexer.d.ts +3 -1
  219. package/dist/conversation-index/search.d.ts +3 -1
  220. package/dist/corpus-watermark.d.ts +3 -1
  221. package/dist/corpus-watermark.js +18 -17
  222. package/dist/cross-lingual-recall.d.ts +3 -1
  223. package/dist/day-summary.d.ts +3 -1
  224. package/dist/delinearize.d.ts +3 -1
  225. package/dist/dependency-propagation-config.d.ts +3 -1
  226. package/dist/{dependency-propagation-delivery-Co17gxYb.d.ts → dependency-propagation-delivery-B8ZMBBCY.d.ts} +1 -1
  227. package/dist/direct-answer-wiring.d.ts +3 -1
  228. package/dist/direct-answer.d.ts +3 -1
  229. package/dist/embedding-fallback.d.ts +3 -1
  230. package/dist/enrichment/index.d.ts +3 -1
  231. package/dist/entity-origin-fields.d.ts +3 -1
  232. package/dist/entity-retrieval.d.ts +4 -2
  233. package/dist/entity-retrieval.js +16 -15
  234. package/dist/entity-schema.d.ts +3 -1
  235. package/dist/episodic-context.d.ts +3 -1
  236. package/dist/explicit-capture.d.ts +12 -12
  237. package/dist/explicit-capture.js +7 -6
  238. package/dist/external-wiki-access.d.ts +41 -42
  239. package/dist/external-wiki-access.js +37 -36
  240. package/dist/external-wiki-collection-registration.d.ts +3 -1
  241. package/dist/external-wiki-collection.d.ts +3 -1
  242. package/dist/external-wiki-mcp-tools.d.ts +40 -40
  243. package/dist/extraction-error-classification.d.ts +3 -1
  244. package/dist/extraction-faithfulness.d.ts +3 -1
  245. package/dist/extraction-judge-telemetry.d.ts +3 -1
  246. package/dist/extraction-judge-training.d.ts +3 -1
  247. package/dist/extraction-judge.d.ts +3 -1
  248. package/dist/extraction-judge.js +2 -2
  249. package/dist/extraction-liveness.d.ts +3 -1
  250. package/dist/extraction-normalization.d.ts +3 -1
  251. package/dist/extraction-normalization.js +2 -2
  252. package/dist/extraction-prompt.d.ts +4 -2
  253. package/dist/extraction-prompt.js +1 -1
  254. package/dist/extraction-source-grounding-rules.d.ts +3 -1
  255. package/dist/extraction-source-grounding.d.ts +3 -1
  256. package/dist/extraction.d.ts +3 -1
  257. package/dist/extraction.js +22 -21
  258. package/dist/fallback-llm.d.ts +3 -1
  259. package/dist/graph-dashboard-diff.d.ts +3 -1
  260. package/dist/graph-dashboard-key.d.ts +3 -1
  261. package/dist/graph-dashboard-parser.d.ts +3 -1
  262. package/dist/graph-edge-reinforcement.d.ts +3 -1
  263. package/dist/graph-path-reconstruction.d.ts +3 -1
  264. package/dist/graph-path-scoring.d.ts +3 -1
  265. package/dist/graph-snapshot.d.ts +3 -1
  266. package/dist/graph.d.ts +3 -1
  267. package/dist/harmonic-retrieval.js +1 -1
  268. package/dist/importance.d.ts +3 -1
  269. package/dist/importers/index.d.ts +3 -1
  270. package/dist/in-flight-reads.d.ts +3 -1
  271. package/dist/index-CexDrJzC.d.ts +284 -0
  272. package/dist/index.d.ts +946 -707
  273. package/dist/index.js +253 -151
  274. package/dist/intent.d.ts +3 -1
  275. package/dist/lcm/engine.d.ts +3 -1
  276. package/dist/lcm/engine.js +3 -3
  277. package/dist/lcm/index.d.ts +3 -1
  278. package/dist/lcm/index.js +6 -6
  279. package/dist/lcm/tools.d.ts +3 -1
  280. package/dist/lifecycle.d.ts +3 -1
  281. package/dist/live-connectors-runner.d.ts +3 -1
  282. package/dist/local-llm.d.ts +3 -1
  283. package/dist/local-model-endpoint.d.ts +3 -1
  284. package/dist/maintenance/memory-governance.d.ts +3 -1
  285. package/dist/maintenance/memory-governance.js +16 -15
  286. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +4 -2
  287. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +16 -15
  288. package/dist/maintenance/rebuild-memory-projection.d.ts +4 -2
  289. package/dist/maintenance/rebuild-memory-projection.js +17 -16
  290. package/dist/{maintenance-DiSLtVN7.d.ts → maintenance-nkdtSrVr.d.ts} +3 -3
  291. package/dist/mcp-memory-inspector-app.d.ts +37 -37
  292. package/dist/mcp-read-only-tools.js +1 -1
  293. package/dist/memory-action-policy.d.ts +3 -1
  294. package/dist/memory-cache.d.ts +3 -1
  295. package/dist/memory-lifecycle-ledger-utils.d.ts +3 -1
  296. package/dist/memory-projection-store.d.ts +3 -1
  297. package/dist/memory-provenance.d.ts +3 -1
  298. package/dist/memory-snapshot.d.ts +3 -1
  299. package/dist/memory-subject-cli.d.ts +177 -0
  300. package/dist/memory-subject-cli.js +16 -0
  301. package/dist/memory-subject.d.ts +128 -0
  302. package/dist/memory-subject.js +44 -0
  303. package/dist/memory-subject.js.map +1 -0
  304. package/dist/memory-worth-outcomes.d.ts +7 -4
  305. package/dist/memory-worth-outcomes.js +1 -1
  306. package/dist/models-json.d.ts +3 -1
  307. package/dist/namespaces/migrate.d.ts +5 -3
  308. package/dist/namespaces/migrate.js +17 -16
  309. package/dist/namespaces/principal.d.ts +3 -1
  310. package/dist/namespaces/search.d.ts +3 -1
  311. package/dist/namespaces/search.js +6 -6
  312. package/dist/namespaces/storage.d.ts +5 -3
  313. package/dist/namespaces/storage.js +16 -15
  314. package/dist/native-knowledge.d.ts +3 -1
  315. package/dist/offline-sync-impression-drain.d.ts +3 -1
  316. package/dist/operator-doctor-corpus.d.ts +3 -1
  317. package/dist/operator-doctor-corpus.js +19 -18
  318. package/dist/operator-doctor-replica.d.ts +3 -1
  319. package/dist/operator-toolkit.d.ts +5 -3
  320. package/dist/operator-toolkit.js +29 -24
  321. package/dist/orchestration/compression-guideline-coordinator.d.ts +4 -2
  322. package/dist/orchestration/maintenance.d.ts +6 -4
  323. package/dist/orchestration/maintenance.js +22 -21
  324. package/dist/{orchestrator-DzCaxNS4.d.ts → orchestrator-Bvq1-RQs.d.ts} +23 -9
  325. package/dist/orchestrator.d.ts +12 -12
  326. package/dist/orchestrator.js +111 -108
  327. package/dist/patterns-cli.d.ts +3 -1
  328. package/dist/{pipeline-HJ8DKbFl.d.ts → pipeline-C8vfIiTX.d.ts} +1 -1
  329. package/dist/policy-runtime.d.ts +3 -1
  330. package/dist/proactive-contention.d.ts +3 -1
  331. package/dist/provenance.d.ts +3 -1
  332. package/dist/{public-http-DwXauTX3.d.ts → public-http-Cy0aYbys.d.ts} +1 -1
  333. package/dist/{qmd-BzxluoLt.d.ts → qmd-B9p1SZTZ.d.ts} +1 -1
  334. package/dist/qmd-preflight.d.ts +4 -2
  335. package/dist/qmd-recall-cache.d.ts +3 -1
  336. package/dist/qmd.d.ts +4 -2
  337. package/dist/qmd.js +4 -4
  338. package/dist/recall-concurrency-config.d.ts +3 -1
  339. package/dist/recall-disclosure-escalation.d.ts +3 -1
  340. package/dist/recall-explain-renderer.d.ts +3 -1
  341. package/dist/recall-explain-renderer.js +3 -3
  342. package/dist/recall-memory-map.d.ts +3 -1
  343. package/dist/recall-planner-llm.d.ts +3 -1
  344. package/dist/recall-state.d.ts +3 -1
  345. package/dist/recall-tag-filter.d.ts +3 -1
  346. package/dist/recall-timings.d.ts +3 -1
  347. package/dist/recall-xray-cli.d.ts +3 -1
  348. package/dist/recall-xray-cli.js +4 -4
  349. package/dist/recall-xray-renderer.d.ts +3 -1
  350. package/dist/recall-xray-renderer.js +3 -3
  351. package/dist/recall-xray.d.ts +3 -1
  352. package/dist/recall-xray.js +2 -2
  353. package/dist/reconcile/cursor.d.ts +3 -1
  354. package/dist/reconcile/manifest.d.ts +3 -1
  355. package/dist/reconcile/manifest.js +3 -3
  356. package/dist/reconcile/plan.d.ts +3 -1
  357. package/dist/replay/normalizers/chatgpt.d.ts +3 -1
  358. package/dist/replay/normalizers/claude.d.ts +3 -1
  359. package/dist/replay/normalizers/openclaw.d.ts +3 -1
  360. package/dist/replay/normalizers/shared.d.ts +3 -1
  361. package/dist/replay/runner.d.ts +3 -1
  362. package/dist/replay/types.d.ts +3 -1
  363. package/dist/replica-divergence.d.ts +3 -1
  364. package/dist/replica-peers-config.d.ts +3 -1
  365. package/dist/resolution-4552BNRV.js +36 -0
  366. package/dist/resolution-4552BNRV.js.map +1 -0
  367. package/dist/resolve-auth-token.d.ts +3 -1
  368. package/dist/resume-bundles.js +9 -2
  369. package/dist/retrieval-agents.d.ts +4 -2
  370. package/dist/retrieval-tiers.d.ts +3 -1
  371. package/dist/routing/engine.d.ts +3 -1
  372. package/dist/routing/store.d.ts +3 -1
  373. package/dist/salvage-envelope.d.ts +3 -1
  374. package/dist/salvage-envelope.js +10 -2
  375. package/dist/schemas.d.ts +130 -116
  376. package/dist/schemas.js +1 -1
  377. package/dist/{scope-profiles-CEMZz0t5.d.ts → scope-profiles-DLrRxFWR.d.ts} +1 -1
  378. package/dist/search/embed-helper.d.ts +3 -1
  379. package/dist/search/factory.d.ts +3 -1
  380. package/dist/search/factory.js +5 -5
  381. package/dist/search/index.d.ts +3 -1
  382. package/dist/search/index.js +9 -9
  383. package/dist/search/lancedb-backend.d.ts +3 -1
  384. package/dist/search/meilisearch-backend.d.ts +3 -1
  385. package/dist/search/noop-backend.d.ts +3 -1
  386. package/dist/search/orama-backend.d.ts +3 -1
  387. package/dist/search/port.d.ts +3 -1
  388. package/dist/search/remote-backend.d.ts +3 -1
  389. package/dist/{semantic-TddhF0y7.d.ts → semantic-BalR6EXU.d.ts} +1 -1
  390. package/dist/{semantic-consolidation-D9dYj6vu.d.ts → semantic-consolidation-DlN6xe20.d.ts} +1 -1
  391. package/dist/semantic-consolidation.d.ts +4 -2
  392. package/dist/semantic-consolidation.js +17 -16
  393. package/dist/semantic-rule-promotion.js +16 -15
  394. package/dist/semantic-rule-verifier.d.ts +3 -1
  395. package/dist/semantic-rule-verifier.js +16 -15
  396. package/dist/{service-_qgST_0y.d.ts → service-GkYyVfm9.d.ts} +2 -2
  397. package/dist/session-observer-bands.d.ts +3 -1
  398. package/dist/session-observer-state.d.ts +3 -1
  399. package/dist/shared-context/manager.d.ts +13 -11
  400. package/dist/signal.d.ts +3 -1
  401. package/dist/source-agent-qualifier.d.ts +3 -1
  402. package/dist/source-agent-qualifier.js +18 -17
  403. package/dist/{storage-B9lbNTYE.d.ts → storage-BIDzuKIn.d.ts} +3 -2
  404. package/dist/storage.d.ts +4 -2
  405. package/dist/storage.js +18 -17
  406. package/dist/subject-config.d.ts +40 -0
  407. package/dist/subject-config.js +20 -0
  408. package/dist/subject-config.js.map +1 -0
  409. package/dist/summarizer.d.ts +3 -1
  410. package/dist/summary-snapshot.d.ts +3 -1
  411. package/dist/support-passport/index.d.ts +43 -43
  412. package/dist/support-passport/index.js +39 -38
  413. package/dist/temporal-supersession.d.ts +4 -2
  414. package/dist/temporal-timeline-recall.d.ts +3 -1
  415. package/dist/temporal-validity.d.ts +3 -1
  416. package/dist/threading.d.ts +3 -1
  417. package/dist/tier-migration.d.ts +4 -2
  418. package/dist/tier-routing.d.ts +3 -1
  419. package/dist/topics.d.ts +3 -1
  420. package/dist/transcript.d.ts +3 -1
  421. package/dist/transfer/backup.js +2 -2
  422. package/dist/transfer/capsule-export.js +2 -2
  423. package/dist/transfer/capsule-import.js +2 -2
  424. package/dist/transfer/types.d.ts +86 -86
  425. package/dist/trust-score-stage.d.ts +3 -1
  426. package/dist/trust-score.d.ts +3 -1
  427. package/dist/{types-BrEzuxPA.d.ts → types-BxAcOl5Q.d.ts} +360 -32
  428. package/dist/types.d.ts +3 -1
  429. package/dist/types.js +1 -1
  430. package/dist/utility-runtime.d.ts +3 -1
  431. package/dist/verified-recall.js +16 -15
  432. package/dist/who-knows-cli.d.ts +40 -40
  433. package/dist/who-knows-cli.js +17 -16
  434. package/dist/who-knows.d.ts +42 -42
  435. package/dist/who-knows.js +16 -15
  436. package/dist/write-envelope.d.ts +7 -2
  437. package/dist/write-envelope.js +10 -1
  438. package/package.json +2 -2
  439. package/scripts/build-with-heap.mjs +1 -1
  440. package/src/access-boundary.ts +6 -0
  441. package/src/access-http.ts +6 -5
  442. package/src/access-mcp-admin-tools.ts +38 -0
  443. package/src/access-mcp-output-schemas.ts +20 -0
  444. package/src/access-mcp.ts +8 -8
  445. package/src/access-operations-batch.ts +13 -0
  446. package/src/access-service.ts +112 -0
  447. package/src/access-surface-catalog.test.ts +24 -0
  448. package/src/access-surface-catalog.ts +6 -0
  449. package/src/coding/action-gate.test.ts +341 -0
  450. package/src/coding/action-gate.ts +556 -0
  451. package/src/config.ts +15 -17
  452. package/src/contradiction/contradiction-review.ts +50 -4
  453. package/src/contradiction/contradiction-scan.ts +14 -3
  454. package/src/contradiction/resolution.ts +50 -2
  455. package/src/extraction-prompt.ts +1 -0
  456. package/src/extraction.ts +4 -1
  457. package/src/index.ts +9 -9
  458. package/src/mcp-read-only-tools.ts +1 -0
  459. package/src/memory-subject-cli.ts +135 -0
  460. package/src/memory-subject.test.ts +48 -0
  461. package/src/memory-subject.ts +314 -0
  462. package/src/memory-worth-outcomes.test.ts +6 -2
  463. package/src/memory-worth-outcomes.ts +11 -7
  464. package/src/operator-toolkit.ts +1 -1
  465. package/src/orchestration/extraction-persist.ts +48 -48
  466. package/src/orchestration/recall-internal.ts +6 -5
  467. package/src/orchestration/recall-rerank-coordinator.ts +123 -4
  468. package/src/orchestration/recall-result-formatter.ts +6 -2
  469. package/src/orchestration/recall-search-pipeline.ts +14 -1
  470. package/src/preferences/drift-config.ts +118 -0
  471. package/src/preferences/drift-recall.ts +133 -0
  472. package/src/preferences/drift-types.ts +87 -0
  473. package/src/preferences/index.ts +12 -0
  474. package/src/preferences/preference-drift.test.ts +690 -0
  475. package/src/preferences/preference-drift.ts +724 -0
  476. package/src/procedural/library-maintenance.test.ts +582 -0
  477. package/src/procedural/library-maintenance.ts +546 -0
  478. package/src/procedural/maintenance-config.ts +78 -0
  479. package/src/procedural/procedure-recall.ts +29 -1
  480. package/src/procedural/procedure-stats.ts +20 -0
  481. package/src/review/review-deck-access.test.ts +325 -0
  482. package/src/review/review-deck-http-base.ts +133 -0
  483. package/src/review/review-deck-mutation.test.ts +417 -0
  484. package/src/review/review-deck-mutation.ts +677 -0
  485. package/src/review/review-deck-snapshot.ts +196 -0
  486. package/src/review/review-deck-surface.ts +117 -0
  487. package/src/review/review-deck.test.ts +347 -0
  488. package/src/review/review-deck.ts +311 -0
  489. package/src/schemas.ts +7 -0
  490. package/src/spaces/index.ts +38 -2
  491. package/src/storage.ts +10 -8
  492. package/src/subject-config.ts +80 -0
  493. package/src/types.ts +33 -32
  494. package/src/write-envelope.test.ts +14 -0
  495. package/src/write-envelope.ts +24 -3
  496. package/dist/chunk-35NN3ZFA.js.map +0 -1
  497. package/dist/chunk-3PXVYJMC.js.map +0 -1
  498. package/dist/chunk-3RHFGGI5.js.map +0 -1
  499. package/dist/chunk-4NZHHGVL.js.map +0 -1
  500. package/dist/chunk-CEQF6L5K.js.map +0 -1
  501. package/dist/chunk-CUS6S7PN.js.map +0 -1
  502. package/dist/chunk-DBXZZIDU.js.map +0 -1
  503. package/dist/chunk-DEFI2QBT.js.map +0 -1
  504. package/dist/chunk-EIR5VLIH.js.map +0 -1
  505. package/dist/chunk-GEULB2VI.js.map +0 -1
  506. package/dist/chunk-JFJ3MHGV.js.map +0 -1
  507. package/dist/chunk-JG22O53B.js.map +0 -1
  508. package/dist/chunk-LCU5R6TQ.js.map +0 -1
  509. package/dist/chunk-MDVBCPOS.js +0 -402
  510. package/dist/chunk-MDVBCPOS.js.map +0 -1
  511. package/dist/chunk-MSTNSVXI.js.map +0 -1
  512. package/dist/chunk-WTOE7CW4.js.map +0 -1
  513. package/dist/chunk-YQ3CBLL4.js.map +0 -1
  514. package/dist/chunk-Z54TXZ2F.js.map +0 -1
  515. package/dist/resolution-DKMBPXHI.js +0 -18
  516. /package/dist/{capsule-crypto-7FJQINUR.js.map → capsule-crypto-YO5QJ6L3.js.map} +0 -0
  517. /package/dist/{chunk-MIBKEW7A.js.map → chunk-2VXWFYJE.js.map} +0 -0
  518. /package/dist/{chunk-3YTTAGPB.js.map → chunk-3DVBKTSO.js.map} +0 -0
  519. /package/dist/{chunk-JTSVMJHV.js.map → chunk-4XDGYCZI.js.map} +0 -0
  520. /package/dist/{chunk-HQSBYI5X.js.map → chunk-57HVIG5U.js.map} +0 -0
  521. /package/dist/{chunk-PMVPCZJZ.js.map → chunk-6433HV72.js.map} +0 -0
  522. /package/dist/{chunk-N6TRHP72.js.map → chunk-6TAX66IA.js.map} +0 -0
  523. /package/dist/{chunk-AGKIG3YA.js.map → chunk-6VALIZKG.js.map} +0 -0
  524. /package/dist/{chunk-NS5ETDYD.js.map → chunk-7BEPVIH3.js.map} +0 -0
  525. /package/dist/{chunk-LYIZXQYY.js.map → chunk-7KFIMGMP.js.map} +0 -0
  526. /package/dist/{chunk-LWVO2QZV.js.map → chunk-7QOO4LGC.js.map} +0 -0
  527. /package/dist/{chunk-CCTVAVTT.js.map → chunk-AUO2LJ3K.js.map} +0 -0
  528. /package/dist/{chunk-ALCJRQ72.js.map → chunk-AYDDB3XI.js.map} +0 -0
  529. /package/dist/{chunk-3TMYV3LP.js.map → chunk-AYYGRVRP.js.map} +0 -0
  530. /package/dist/{chunk-W6TSGWYS.js.map → chunk-AZAA5DNP.js.map} +0 -0
  531. /package/dist/{chunk-6JJT5AKI.js.map → chunk-BQUEAVNW.js.map} +0 -0
  532. /package/dist/{chunk-2NLLXCJG.js.map → chunk-BXLOS5AJ.js.map} +0 -0
  533. /package/dist/{chunk-CEH2AFXG.js.map → chunk-C24UZSFW.js.map} +0 -0
  534. /package/dist/{chunk-ZPN7W3OP.js.map → chunk-CDUUDBWJ.js.map} +0 -0
  535. /package/dist/{chunk-Y23B2QXP.js.map → chunk-D27J626P.js.map} +0 -0
  536. /package/dist/{chunk-2572MRP2.js.map → chunk-DHTQP334.js.map} +0 -0
  537. /package/dist/{chunk-HJQZQUPC.js.map → chunk-DJZWNKFO.js.map} +0 -0
  538. /package/dist/{chunk-X7Y7WX73.js.map → chunk-DQEMWVMT.js.map} +0 -0
  539. /package/dist/{chunk-VJ6ECBIP.js.map → chunk-E4MVQQVX.js.map} +0 -0
  540. /package/dist/{chunk-SYJ6EKKE.js.map → chunk-EIVIB73I.js.map} +0 -0
  541. /package/dist/{chunk-HUNSEO5U.js.map → chunk-EV3YFLCB.js.map} +0 -0
  542. /package/dist/{chunk-VPGRXEAB.js.map → chunk-G57LQRP6.js.map} +0 -0
  543. /package/dist/{chunk-BC4QD3FM.js.map → chunk-GN55KU2P.js.map} +0 -0
  544. /package/dist/{chunk-4W6INNXO.js.map → chunk-GUXS322H.js.map} +0 -0
  545. /package/dist/{chunk-3MADV4YC.js.map → chunk-IQSC3V2E.js.map} +0 -0
  546. /package/dist/{chunk-UYCIS6V5.js.map → chunk-JCWY73FK.js.map} +0 -0
  547. /package/dist/{chunk-T42L3S6A.js.map → chunk-LBWQ65SX.js.map} +0 -0
  548. /package/dist/{chunk-256FBCVX.js.map → chunk-M4AHBM72.js.map} +0 -0
  549. /package/dist/{chunk-YEQEGSJA.js.map → chunk-MBDJJTAT.js.map} +0 -0
  550. /package/dist/{chunk-IAY7YBXS.js.map → chunk-MRTUN665.js.map} +0 -0
  551. /package/dist/{chunk-R3AAOKR2.js.map → chunk-NZWEEALH.js.map} +0 -0
  552. /package/dist/{chunk-I2HTKOOP.js.map → chunk-ODZG724P.js.map} +0 -0
  553. /package/dist/{chunk-7QFBLYFP.js.map → chunk-OJD4WS2E.js.map} +0 -0
  554. /package/dist/{chunk-53ENM6F6.js.map → chunk-P4DHENRE.js.map} +0 -0
  555. /package/dist/{chunk-KPBLJCCV.js.map → chunk-PDVQ5JU3.js.map} +0 -0
  556. /package/dist/{chunk-ESCQ6LY7.js.map → chunk-QFMO32TO.js.map} +0 -0
  557. /package/dist/{chunk-HQSPXTQO.js.map → chunk-QXIQPCCN.js.map} +0 -0
  558. /package/dist/{chunk-CFRBTATE.js.map → chunk-R47WINCY.js.map} +0 -0
  559. /package/dist/{chunk-G72IPMR7.js.map → chunk-R4OCGPSH.js.map} +0 -0
  560. /package/dist/{chunk-VZVP2W4O.js.map → chunk-RK4WXUI2.js.map} +0 -0
  561. /package/dist/{chunk-JBPKEARU.js.map → chunk-RKNJBZ55.js.map} +0 -0
  562. /package/dist/{chunk-6L27N6YI.js.map → chunk-S7Q5CM7E.js.map} +0 -0
  563. /package/dist/{chunk-CTQRPANJ.js.map → chunk-SVSRPG6M.js.map} +0 -0
  564. /package/dist/{chunk-GXWDWOWP.js.map → chunk-TDKSCV62.js.map} +0 -0
  565. /package/dist/{chunk-S2VBSTTA.js.map → chunk-THG4GYIE.js.map} +0 -0
  566. /package/dist/{chunk-IXRC7EQG.js.map → chunk-TR7DGXGI.js.map} +0 -0
  567. /package/dist/{chunk-63FHSH7E.js.map → chunk-TYUS5TLG.js.map} +0 -0
  568. /package/dist/{chunk-7PWWGYGO.js.map → chunk-URHCUXKI.js.map} +0 -0
  569. /package/dist/{chunk-KQAFEZQX.js.map → chunk-VDX2J7OX.js.map} +0 -0
  570. /package/dist/{chunk-MUJ4QFUQ.js.map → chunk-W4BMEGQA.js.map} +0 -0
  571. /package/dist/{chunk-5HK3CJAR.js.map → chunk-W675UJCZ.js.map} +0 -0
  572. /package/dist/{chunk-X5SDZMO7.js.map → chunk-YHCBJULX.js.map} +0 -0
  573. /package/dist/{chunk-5UYSCYR7.js.map → chunk-Z4RPXHJH.js.map} +0 -0
  574. /package/dist/{contradiction-review-QKJH5DKD.js.map → contradiction-review-WRVLRWHS.js.map} +0 -0
  575. /package/dist/{contradiction-scan-VOTQRRSX.js.map → contradiction-scan-AKUWPX5N.js.map} +0 -0
  576. /package/dist/{resolution-DKMBPXHI.js.map → memory-subject-cli.js.map} +0 -0
@@ -11,6 +11,14 @@ import {
11
11
  import {
12
12
  parseLocationConfig
13
13
  } from "./chunk-7PHI6GUI.js";
14
+ import {
15
+ PRE_ACTION_GATE_DEFAULT_TIMEOUT_MS,
16
+ normalizeActionIntent,
17
+ sanitizePayloadString
18
+ } from "./chunk-D2YNNDML.js";
19
+ import {
20
+ parseSubjectRuntimeConfig
21
+ } from "./chunk-AAXJNINV.js";
14
22
  import {
15
23
  cloneDefaultSessionObserverBands
16
24
  } from "./chunk-Z5LAYHGJ.js";
@@ -96,6 +104,155 @@ import {
96
104
  // src/config.ts
97
105
  import path from "path";
98
106
 
107
+ // src/procedural/maintenance-config.ts
108
+ function parseProceduralMaintenanceConfig(raw) {
109
+ if (raw !== void 0 && (raw === null || typeof raw !== "object" || Array.isArray(raw))) {
110
+ throw new Error(
111
+ `procedural.maintenance must be an object (got ${JSON.stringify(raw)}). Omit the key to keep maintenance disabled (issue #2370).`
112
+ );
113
+ }
114
+ const rawMaintenance = raw && typeof raw === "object" ? raw : {};
115
+ let enabled = false;
116
+ if (rawMaintenance.enabled !== void 0) {
117
+ const coerced = coerceBool(rawMaintenance.enabled);
118
+ if (coerced === void 0) {
119
+ throw new Error(
120
+ `procedural.maintenance.enabled must be a boolean or one of "true"/"false"/"1"/"0"/"yes"/"no"/"on"/"off" (got ${JSON.stringify(rawMaintenance.enabled)}).`
121
+ );
122
+ }
123
+ enabled = coerced;
124
+ }
125
+ const parseInteger = (key, fallback, min, max) => {
126
+ const value = rawMaintenance[key];
127
+ if (value === void 0) return fallback;
128
+ const coerced = coerceNumber(value);
129
+ if (coerced === void 0 || !Number.isFinite(coerced)) {
130
+ throw new Error(
131
+ `procedural.maintenance.${key} must be a finite number (got ${JSON.stringify(value)}).`
132
+ );
133
+ }
134
+ if (!Number.isInteger(coerced)) {
135
+ throw new Error(
136
+ `procedural.maintenance.${key} must be an integer (got ${JSON.stringify(value)}).`
137
+ );
138
+ }
139
+ if (coerced < min || coerced > max) {
140
+ throw new Error(
141
+ `procedural.maintenance.${key} must be between ${min} and ${max} (got ${JSON.stringify(value)}).`
142
+ );
143
+ }
144
+ return coerced;
145
+ };
146
+ let retireFailRatio = 2;
147
+ if (rawMaintenance.retireFailRatio !== void 0) {
148
+ const coerced = coerceNumber(rawMaintenance.retireFailRatio);
149
+ if (coerced === void 0 || !Number.isFinite(coerced) || coerced <= 0) {
150
+ throw new Error(
151
+ `procedural.maintenance.retireFailRatio must be a positive finite number (got ${JSON.stringify(rawMaintenance.retireFailRatio)}).`
152
+ );
153
+ }
154
+ retireFailRatio = coerced;
155
+ }
156
+ let mergeEnabled = true;
157
+ if (rawMaintenance.mergeEnabled !== void 0) {
158
+ const coerced = coerceBool(rawMaintenance.mergeEnabled);
159
+ if (coerced === void 0) {
160
+ throw new Error(
161
+ `procedural.maintenance.mergeEnabled must be a boolean or one of "true"/"false"/"1"/"0"/"yes"/"no"/"on"/"off" (got ${JSON.stringify(rawMaintenance.mergeEnabled)}).`
162
+ );
163
+ }
164
+ mergeEnabled = coerced;
165
+ }
166
+ return {
167
+ enabled,
168
+ retireIdleDays: parseInteger("retireIdleDays", 90, 0, 36500),
169
+ retireMinOutcomes: parseInteger("retireMinOutcomes", 5, 1, 1e5),
170
+ retireFailRatio,
171
+ mergeEnabled
172
+ };
173
+ }
174
+
175
+ // src/preferences/drift-config.ts
176
+ var DRIFT_DETECTION_DEFAULTS = {
177
+ enabled: false,
178
+ minAgeDays: 60,
179
+ lookbackDays: 45,
180
+ maxCandidatesPerRun: 25,
181
+ recallDamping: false,
182
+ stalePenalty: 0.8,
183
+ annotateAfterDays: 0
184
+ };
185
+ function parseFlag(src, key, fallback) {
186
+ const value = src[key];
187
+ if (value === void 0 || value === null) return fallback;
188
+ const coerced = coerceBool(value);
189
+ if (coerced === void 0) {
190
+ throw new Error(
191
+ `driftDetection.${key} must be a boolean or one of "true"/"false"/"1"/"0"/"yes"/"no"/"on"/"off" (got ${JSON.stringify(value)}).`
192
+ );
193
+ }
194
+ return coerced;
195
+ }
196
+ function parseDayCount(src, key, fallback) {
197
+ const value = src[key];
198
+ if (value === void 0 || value === null) return fallback;
199
+ const coerced = coerceNumber(value);
200
+ if (coerced === void 0 || !Number.isFinite(coerced)) {
201
+ throw new Error(`driftDetection.${key} must be a finite number (got ${JSON.stringify(value)}).`);
202
+ }
203
+ if (!Number.isInteger(coerced)) {
204
+ throw new Error(`driftDetection.${key} must be an integer (got ${JSON.stringify(value)}).`);
205
+ }
206
+ if (coerced < 0 || coerced > 36500) {
207
+ throw new Error(`driftDetection.${key} must be between 0 and 36500 (got ${JSON.stringify(value)}).`);
208
+ }
209
+ return coerced;
210
+ }
211
+ function parseDriftDetectionConfig(raw) {
212
+ if (raw === void 0 || raw === null) return { ...DRIFT_DETECTION_DEFAULTS };
213
+ if (typeof raw !== "object" || Array.isArray(raw)) {
214
+ throw new Error(
215
+ `driftDetection must be an object (got ${JSON.stringify(raw)}). Omit the key to keep drift detection disabled (issue #2371).`
216
+ );
217
+ }
218
+ const src = raw;
219
+ const rawMax = src.maxCandidatesPerRun;
220
+ let maxCandidatesPerRun = DRIFT_DETECTION_DEFAULTS.maxCandidatesPerRun;
221
+ if (rawMax !== void 0 && rawMax !== null) {
222
+ const coerced = coerceNumber(rawMax);
223
+ if (coerced === void 0 || !Number.isInteger(coerced) || coerced < 0) {
224
+ throw new Error(
225
+ `driftDetection.maxCandidatesPerRun must be an integer >= 0 (got ${JSON.stringify(rawMax)}). Use 0 to disable the scan.`
226
+ );
227
+ }
228
+ maxCandidatesPerRun = coerced;
229
+ }
230
+ const rawPenalty = src.stalePenalty;
231
+ let stalePenalty = DRIFT_DETECTION_DEFAULTS.stalePenalty;
232
+ if (rawPenalty !== void 0 && rawPenalty !== null) {
233
+ const coerced = coerceNumber(rawPenalty);
234
+ if (coerced === void 0 || !Number.isFinite(coerced) || coerced <= 0 || coerced > 1) {
235
+ throw new Error(
236
+ `driftDetection.stalePenalty must be a number in (0, 1] (got ${JSON.stringify(rawPenalty)}). Use 1 to disable damping without changing the flag.`
237
+ );
238
+ }
239
+ stalePenalty = coerced;
240
+ }
241
+ return {
242
+ enabled: parseFlag(src, "enabled", DRIFT_DETECTION_DEFAULTS.enabled),
243
+ minAgeDays: parseDayCount(src, "minAgeDays", DRIFT_DETECTION_DEFAULTS.minAgeDays),
244
+ lookbackDays: parseDayCount(src, "lookbackDays", DRIFT_DETECTION_DEFAULTS.lookbackDays),
245
+ maxCandidatesPerRun,
246
+ recallDamping: parseFlag(src, "recallDamping", DRIFT_DETECTION_DEFAULTS.recallDamping),
247
+ stalePenalty,
248
+ annotateAfterDays: parseDayCount(
249
+ src,
250
+ "annotateAfterDays",
251
+ DRIFT_DETECTION_DEFAULTS.annotateAfterDays
252
+ )
253
+ };
254
+ }
255
+
99
256
  // src/wearables/config.ts
100
257
  var KNOWN_WEARABLE_SOURCE_IDS = ["limitless", "bee", "omi"];
101
258
  var MEMORY_MODES = ["off", "review", "auto", "smart"];
@@ -880,6 +1037,341 @@ function parseOkfConfig(raw) {
880
1037
  };
881
1038
  }
882
1039
 
1040
+ // src/coding/action-gate.ts
1041
+ var ACTION_GATE_DEFAULT_MAX_ADVISORIES_PER_TURN = 3;
1042
+ var MAX_ADVISORY_CHARS = 400;
1043
+ var MAX_ACTION_TERMS = 24;
1044
+ var MIN_TERM_CHARS = 3;
1045
+ var MIN_TERM_OVERLAP_RATIO = 0.6;
1046
+ var MAX_TRACKED_SESSIONS = 200;
1047
+ var MAX_TRACKED_IDS_PER_SESSION = 200;
1048
+ var ACTION_GATE_DEFAULTS = {
1049
+ enabled: false,
1050
+ timeoutMs: PRE_ACTION_GATE_DEFAULT_TIMEOUT_MS,
1051
+ maxAdvisoriesPerTurn: ACTION_GATE_DEFAULT_MAX_ADVISORIES_PER_TURN
1052
+ };
1053
+ function parseActionGateConfig(raw) {
1054
+ if (raw !== void 0 && (raw === null || typeof raw !== "object" || Array.isArray(raw))) {
1055
+ throw new Error(
1056
+ `actionGate must be an object (got ${JSON.stringify(raw)}). Use actionGate: { enabled: true } to opt in.`
1057
+ );
1058
+ }
1059
+ const block = raw ?? {};
1060
+ const rawEnabled = block.enabled;
1061
+ let enabled = ACTION_GATE_DEFAULTS.enabled;
1062
+ if (rawEnabled !== void 0) {
1063
+ const coerced = coerceBool(rawEnabled);
1064
+ if (coerced === void 0) {
1065
+ throw new Error(
1066
+ `actionGate.enabled must be a boolean or one of "true"/"false"/"1"/"0"/"yes"/"no"/"on"/"off" (got ${JSON.stringify(rawEnabled)}).`
1067
+ );
1068
+ }
1069
+ enabled = coerced;
1070
+ }
1071
+ const rawTimeout = coerceNumber(block.timeoutMs);
1072
+ const timeoutMs = rawTimeout !== void 0 && Number.isFinite(rawTimeout) ? Math.min(5e3, Math.max(1, Math.floor(rawTimeout))) : ACTION_GATE_DEFAULTS.timeoutMs;
1073
+ const rawMax = coerceNumber(block.maxAdvisoriesPerTurn);
1074
+ const maxAdvisoriesPerTurn = rawMax !== void 0 && Number.isFinite(rawMax) ? Math.min(20, Math.max(0, Math.floor(rawMax))) : ACTION_GATE_DEFAULTS.maxAdvisoriesPerTurn;
1075
+ return { enabled, timeoutMs, maxAdvisoriesPerTurn };
1076
+ }
1077
+ function actionTermsFor(intent) {
1078
+ const raw = intent.kind === "command" ? [intent.command, ...intent.args ?? []] : [intent.filePath, intent.editKind, intent.symbol ?? "", intent.range ?? ""];
1079
+ const terms = [];
1080
+ const seen = /* @__PURE__ */ new Set();
1081
+ for (const piece of raw) {
1082
+ for (const token of sanitizePayloadString(piece ?? "").toLowerCase().split(/[^a-z0-9._-]+/)) {
1083
+ const term = token.replace(/^[._-]+|[._-]+$/g, "");
1084
+ if (term.length < MIN_TERM_CHARS || seen.has(term)) continue;
1085
+ seen.add(term);
1086
+ terms.push(term);
1087
+ if (terms.length >= MAX_ACTION_TERMS) return terms;
1088
+ }
1089
+ }
1090
+ return terms;
1091
+ }
1092
+ function isFailureClassMemory(memory) {
1093
+ const fm = memory.frontmatter;
1094
+ if (fm.status !== void 0 && fm.status !== "active") return false;
1095
+ if (fm.category === "correction") return true;
1096
+ if (fm.structuredAttributes?.needsRepair === "true") return true;
1097
+ const failures = typeof fm.mw_fail === "number" ? fm.mw_fail : 0;
1098
+ const successes = typeof fm.mw_success === "number" ? fm.mw_success : 0;
1099
+ return failures > 0 && failures > successes;
1100
+ }
1101
+ function createFailureMemoryCandidateSource(deps) {
1102
+ return {
1103
+ id: "failure-memory",
1104
+ async find(query) {
1105
+ if (query.actionTerms.length === 0) return { ok: true, candidates: [] };
1106
+ let memories;
1107
+ try {
1108
+ memories = await deps.listMemories({
1109
+ namespace: query.namespace,
1110
+ memoryDir: query.memoryDir,
1111
+ signal: query.signal
1112
+ });
1113
+ } catch (error) {
1114
+ return { ok: false, reason: error instanceof Error ? error.message : String(error) };
1115
+ }
1116
+ const required = Math.max(1, Math.ceil(query.actionTerms.length * MIN_TERM_OVERLAP_RATIO));
1117
+ const candidates = [];
1118
+ for (const memory of memories) {
1119
+ if (!isFailureClassMemory(memory)) continue;
1120
+ const haystack = `${memory.content} ${(memory.frontmatter.tags ?? []).join(" ")}`.toLowerCase();
1121
+ let hits = 0;
1122
+ for (const term of query.actionTerms) if (haystack.includes(term)) hits += 1;
1123
+ if (hits < required) continue;
1124
+ candidates.push({
1125
+ memoryId: memory.frontmatter.id,
1126
+ score: hits,
1127
+ advisoryText: `[ActionGate] A stored failure memory matches this action: "${memory.content}".`
1128
+ });
1129
+ }
1130
+ candidates.sort((left, right) => {
1131
+ const byScore = (right.score ?? 0) - (left.score ?? 0);
1132
+ return byScore !== 0 ? byScore : left.memoryId.localeCompare(right.memoryId);
1133
+ });
1134
+ return { ok: true, candidates };
1135
+ }
1136
+ };
1137
+ }
1138
+ function createTrajectoryCandidateSource(gate) {
1139
+ return {
1140
+ id: "causal-trajectory",
1141
+ async find(query) {
1142
+ const result = await gate.evaluate({
1143
+ sessionKey: query.sessionKey,
1144
+ strategyId: query.strategyId,
1145
+ intent: query.intent,
1146
+ codingContext: query.codingContext,
1147
+ memoryDir: query.memoryDir,
1148
+ causalTrajectoryStoreDir: query.causalTrajectoryStoreDir,
1149
+ signal: query.signal
1150
+ });
1151
+ if (result.status === "ERROR_FAIL_OPEN") {
1152
+ return { ok: false, reason: result.reason ?? "pre-action gate failed open" };
1153
+ }
1154
+ if (result.status !== "MATCH_WARN" || !result.matchedTrajectoryId || !result.advisoryText) {
1155
+ return { ok: true, candidates: [] };
1156
+ }
1157
+ return {
1158
+ ok: true,
1159
+ candidates: [
1160
+ {
1161
+ memoryId: result.matchedTrajectoryId,
1162
+ // Trajectory matches are exact fingerprint hits: rank above lexical ones.
1163
+ score: Number.MAX_SAFE_INTEGER,
1164
+ advisoryText: result.advisoryText
1165
+ }
1166
+ ]
1167
+ };
1168
+ }
1169
+ };
1170
+ }
1171
+ var ActionGateService = class {
1172
+ config;
1173
+ sources;
1174
+ audit;
1175
+ clock;
1176
+ now;
1177
+ sessions = /* @__PURE__ */ new Map();
1178
+ constructor(config, deps = {}) {
1179
+ this.config = config;
1180
+ this.sources = deps.sources ?? [];
1181
+ this.audit = deps.audit;
1182
+ this.clock = deps.clock ?? Date.now;
1183
+ this.now = deps.now ?? (() => /* @__PURE__ */ new Date());
1184
+ }
1185
+ /**
1186
+ * Memory ids the gate already delivered in this session. Turn-start recall
1187
+ * filters these out before its own cap, honouring the filter-then-cap order.
1188
+ */
1189
+ suppressedForTurnStart(sessionKey) {
1190
+ if (!this.config.enabled) return [];
1191
+ return [...this.sessions.get(sessionKey)?.deliveredByGate ?? []];
1192
+ }
1193
+ /** Record ids turn-start recall injected, so the gate will not repeat them. */
1194
+ noteTurnStartDelivery(sessionKey, memoryIds) {
1195
+ if (!this.config.enabled || memoryIds.length === 0) return;
1196
+ const state = this.sessionState(sessionKey, void 0);
1197
+ for (const id of memoryIds) this.addTracked(state.deliveredByTurnStart, id);
1198
+ }
1199
+ resetSession(sessionKey) {
1200
+ this.sessions.delete(sessionKey);
1201
+ }
1202
+ async evaluate(request) {
1203
+ const startedAt = this.clock();
1204
+ if (!this.config.enabled) {
1205
+ return {
1206
+ status: "DISABLED",
1207
+ advisories: [],
1208
+ suppressedIds: [],
1209
+ degradations: [],
1210
+ reason: "actionGate.enabled is false",
1211
+ latencyMs: 0
1212
+ };
1213
+ }
1214
+ if (this.config.maxAdvisoriesPerTurn === 0) {
1215
+ return this.finish(request, startedAt, {
1216
+ status: "DISABLED",
1217
+ advisories: [],
1218
+ suppressedIds: [],
1219
+ degradations: [],
1220
+ reason: "actionGate.maxAdvisoriesPerTurn is 0"
1221
+ });
1222
+ }
1223
+ let fingerprint;
1224
+ try {
1225
+ fingerprint = normalizeActionIntent(request.intent, request.strategyId, request.codingContext).fingerprint;
1226
+ } catch (error) {
1227
+ return this.finish(request, startedAt, {
1228
+ status: "ERROR_FAIL_OPEN",
1229
+ advisories: [],
1230
+ suppressedIds: [],
1231
+ degradations: [],
1232
+ reason: error instanceof Error ? error.message : String(error)
1233
+ });
1234
+ }
1235
+ const deadline = startedAt + this.config.timeoutMs;
1236
+ const collected = await this.collect(request, fingerprint, deadline);
1237
+ const state = this.sessionState(request.sessionKey, request.turnId);
1238
+ const advisories = [];
1239
+ const suppressedIds = [];
1240
+ for (const { sourceId, candidate } of collected.candidates) {
1241
+ if (state.deliveredThisTurn.has(candidate.memoryId) || state.deliveredByTurnStart.has(candidate.memoryId)) {
1242
+ suppressedIds.push(candidate.memoryId);
1243
+ continue;
1244
+ }
1245
+ if (advisories.length >= this.config.maxAdvisoriesPerTurn) {
1246
+ suppressedIds.push(candidate.memoryId);
1247
+ continue;
1248
+ }
1249
+ advisories.push({
1250
+ memoryId: candidate.memoryId,
1251
+ sourceId,
1252
+ text: sanitizePayloadString(candidate.advisoryText).replace(/\s+/g, " ").slice(0, MAX_ADVISORY_CHARS)
1253
+ });
1254
+ this.addTracked(state.deliveredThisTurn, candidate.memoryId);
1255
+ this.addTracked(state.deliveredByGate, candidate.memoryId);
1256
+ }
1257
+ const status = advisories.length > 0 ? "MATCH_WARN" : collected.degradations.length > 0 ? "ERROR_FAIL_OPEN" : "NO_MATCH";
1258
+ return this.finish(request, startedAt, {
1259
+ status,
1260
+ advisories,
1261
+ suppressedIds,
1262
+ degradations: collected.degradations,
1263
+ fingerprint,
1264
+ reason: status === "ERROR_FAIL_OPEN" ? collected.degradations[0] : void 0
1265
+ });
1266
+ }
1267
+ async collect(request, fingerprint, deadline) {
1268
+ if (this.sources.length === 0) return { candidates: [], degradations: [] };
1269
+ const timeoutAbort = new AbortController();
1270
+ const signal = request.signal ? AbortSignal.any([request.signal, timeoutAbort.signal]) : timeoutAbort.signal;
1271
+ const query = {
1272
+ sessionKey: request.sessionKey,
1273
+ fingerprint,
1274
+ actionTerms: actionTermsFor(request.intent),
1275
+ strategyId: request.strategyId,
1276
+ intent: request.intent,
1277
+ codingContext: request.codingContext,
1278
+ memoryDir: request.memoryDir,
1279
+ namespace: request.namespace,
1280
+ causalTrajectoryStoreDir: request.causalTrajectoryStoreDir,
1281
+ signal
1282
+ };
1283
+ const remaining = Math.max(1, deadline - this.clock());
1284
+ let onTimeout;
1285
+ const timeoutResult = new Promise((resolve) => {
1286
+ onTimeout = resolve;
1287
+ });
1288
+ const timer = setTimeout(() => {
1289
+ timeoutAbort.abort();
1290
+ onTimeout({ ok: false, reason: `action gate timed out after ${this.config.timeoutMs}ms` });
1291
+ }, remaining);
1292
+ try {
1293
+ const settled = await Promise.all(
1294
+ this.sources.map(async (source) => {
1295
+ let result;
1296
+ try {
1297
+ result = await Promise.race([source.find(query), timeoutResult]);
1298
+ } catch (error) {
1299
+ result = { ok: false, reason: error instanceof Error ? error.message : String(error) };
1300
+ }
1301
+ return { source, result };
1302
+ })
1303
+ );
1304
+ const candidates = [];
1305
+ const degradations = [];
1306
+ for (const { source, result } of settled) {
1307
+ if (!result.ok) {
1308
+ degradations.push(`${source.id}: ${result.reason}`);
1309
+ continue;
1310
+ }
1311
+ for (const candidate of result.candidates) candidates.push({ sourceId: source.id, candidate });
1312
+ }
1313
+ candidates.sort((left, right) => {
1314
+ const byScore = (right.candidate.score ?? 0) - (left.candidate.score ?? 0);
1315
+ if (byScore !== 0) return byScore;
1316
+ const bySource = left.sourceId.localeCompare(right.sourceId);
1317
+ return bySource !== 0 ? bySource : left.candidate.memoryId.localeCompare(right.candidate.memoryId);
1318
+ });
1319
+ return { candidates, degradations };
1320
+ } finally {
1321
+ clearTimeout(timer);
1322
+ }
1323
+ }
1324
+ finish(request, startedAt, decision) {
1325
+ const latencyMs = Math.max(0, this.clock() - startedAt);
1326
+ const result = { ...decision, latencyMs };
1327
+ if (this.audit) {
1328
+ const record = {
1329
+ ts: this.now().toISOString(),
1330
+ sessionKey: request.sessionKey,
1331
+ turnId: request.turnId,
1332
+ status: result.status,
1333
+ latencyMs,
1334
+ fingerprint: result.fingerprint,
1335
+ deliveredIds: result.advisories.map((advisory) => advisory.memoryId),
1336
+ suppressedIds: result.suppressedIds,
1337
+ degradations: result.degradations,
1338
+ reason: result.reason
1339
+ };
1340
+ void Promise.resolve().then(() => this.audit?.(record)).catch(() => void 0);
1341
+ }
1342
+ return result;
1343
+ }
1344
+ sessionState(sessionKey, turnId) {
1345
+ let state = this.sessions.get(sessionKey);
1346
+ if (!state) {
1347
+ if (this.sessions.size >= MAX_TRACKED_SESSIONS) {
1348
+ const oldest = this.sessions.keys().next().value;
1349
+ if (oldest !== void 0) this.sessions.delete(oldest);
1350
+ }
1351
+ state = {
1352
+ turnId: turnId ?? "",
1353
+ deliveredThisTurn: /* @__PURE__ */ new Set(),
1354
+ deliveredByGate: /* @__PURE__ */ new Set(),
1355
+ deliveredByTurnStart: /* @__PURE__ */ new Set()
1356
+ };
1357
+ this.sessions.set(sessionKey, state);
1358
+ }
1359
+ if (turnId !== void 0 && state.turnId !== turnId) {
1360
+ state.turnId = turnId;
1361
+ state.deliveredThisTurn.clear();
1362
+ }
1363
+ return state;
1364
+ }
1365
+ addTracked(set, value) {
1366
+ if (set.has(value)) return;
1367
+ if (set.size >= MAX_TRACKED_IDS_PER_SESSION) {
1368
+ const oldest = set.values().next().value;
1369
+ if (oldest !== void 0) set.delete(oldest);
1370
+ }
1371
+ set.add(value);
1372
+ }
1373
+ };
1374
+
883
1375
  // src/chat/chat-config.ts
884
1376
  var DEFAULT_CHAT_CONFIG = {
885
1377
  enabled: false,
@@ -1688,6 +2180,7 @@ function parseConfig(raw, rawOperatorConfig, runtimeSet) {
1688
2180
  const lookbackDays = lookbackCoerced !== void 0 && Number.isFinite(lookbackCoerced) ? Math.min(3650, Math.max(1, Math.floor(lookbackCoerced))) : 14;
1689
2181
  const recallMaxCoerced = coerceNumber(rawProcedural.recallMaxProcedures);
1690
2182
  const recallMaxProcedures = recallMaxCoerced !== void 0 && Number.isFinite(recallMaxCoerced) ? Math.min(10, Math.max(1, Math.floor(recallMaxCoerced))) : 2;
2183
+ const maintenance = parseProceduralMaintenanceConfig(rawProcedural.maintenance);
1691
2184
  const rawEnabledValue = rawProcedural.enabled;
1692
2185
  let proceduralEnabled;
1693
2186
  if (rawEnabledValue === void 0) {
@@ -1702,6 +2195,7 @@ function parseConfig(raw, rawOperatorConfig, runtimeSet) {
1702
2195
  proceduralEnabled = enabledCoerced;
1703
2196
  }
1704
2197
  const procedural = {
2198
+ maintenance,
1705
2199
  enabled: proceduralEnabled,
1706
2200
  /** `0` skips all mining (`minOccurrences_zero`); otherwise clusters need at least this many members. */
1707
2201
  minOccurrences: Math.min(1e3, Math.max(0, proceduralMinRaw)),
@@ -2087,6 +2581,8 @@ function parseConfig(raw, rawOperatorConfig, runtimeSet) {
2087
2581
  contradictionAutoResolve: cfg.contradictionAutoResolve !== false,
2088
2582
  // Contradiction Scan cron (issue #520)
2089
2583
  contradictionScan: parseContradictionScanConfig(cfg.contradictionScan),
2584
+ // Preference drift detection (issue #2371)
2585
+ driftDetection: parseDriftDetectionConfig(cfg.driftDetection),
2090
2586
  dependencyPropagation: parseDependencyPropagationConfig(cfg),
2091
2587
  // Temporal Supersession (issue #375)
2092
2588
  temporalSupersessionEnabled: cfg.temporalSupersessionEnabled !== false,
@@ -2521,6 +3017,7 @@ function parseConfig(raw, rawOperatorConfig, runtimeSet) {
2521
3017
  bridgeMode: cfg.bridgeMode === void 0 ? "embedded" : String(cfg.bridgeMode),
2522
3018
  codexCompat,
2523
3019
  codingKnowledge: parseCodingKnowledgeConfig(cfg.codingKnowledge),
3020
+ actionGate: parseActionGateConfig(cfg.actionGate),
2524
3021
  chat: parseChatConfig(cfg.chat),
2525
3022
  supportPassport: parseSupportPassportConfig(cfg.supportPassport),
2526
3023
  hourlySummariesEnabled: cfg.hourlySummariesEnabled !== false,
@@ -2789,10 +3286,10 @@ function parseConfig(raw, rawOperatorConfig, runtimeSet) {
2789
3286
  }
2790
3287
  return "low";
2791
3288
  })(),
2792
- // Extraction scope classification. When enabled, the extraction prompt
2793
- // asks the LLM to classify each fact as "project" or "global". Global
2794
- // facts are promoted to the shared namespace. Default true (rule 30 gate).
3289
+ // Extraction scope classification (rule 30 gate): "global" facts promote
3290
+ // to the shared namespace. Default true.
2795
3291
  extractionScopeClassificationEnabled: coerceBool(cfg.extractionScopeClassificationEnabled) !== false,
3292
+ ...parseSubjectRuntimeConfig(cfg),
2796
3293
  // Extraction judge (issue #376). Opt-in LLM-as-judge fact-worthiness gate.
2797
3294
  extractionJudgeEnabled: cfg.extractionJudgeEnabled === true,
2798
3295
  extractionJudgeModel: typeof cfg.extractionJudgeModel === "string" ? cfg.extractionJudgeModel : "",
@@ -2802,10 +3299,7 @@ function parseConfig(raw, rawOperatorConfig, runtimeSet) {
2802
3299
  // text before the verdict is forcibly converted to reject.
2803
3300
  extractionJudgeMaxDeferrals: typeof cfg.extractionJudgeMaxDeferrals === "number" && Number.isFinite(cfg.extractionJudgeMaxDeferrals) && cfg.extractionJudgeMaxDeferrals >= 1 ? Math.floor(cfg.extractionJudgeMaxDeferrals) : 2,
2804
3301
  // Judge telemetry (issue #562 PR 3): opt-in structured emit to the
2805
- // observation ledger for defer-rate / latency metrics.
2806
- // Uses `coerceBool` so CLI-style string inputs (`"true"`, `"false"`,
2807
- // `"1"`, `"0"`) are accepted consistently with the rest of the
2808
- // codebase (CLAUDE.md gotcha 36).
3302
+ // observation ledger; `coerceBool` accepts CLI-style strings (gotcha 36).
2809
3303
  extractionJudgeTelemetryEnabled: coerceBool(cfg.extractionJudgeTelemetryEnabled) === true,
2810
3304
  // Judge training-pair collection (issue #562 PR 4): opt-in shim for a
2811
3305
  // future GRPO training pipeline. Rows land under ~/.remnic/judge-
@@ -3918,6 +4412,8 @@ function parseTrustScoreWeights(value) {
3918
4412
  }
3919
4413
 
3920
4414
  export {
4415
+ DRIFT_DETECTION_DEFAULTS,
4416
+ parseDriftDetectionConfig,
3921
4417
  KNOWN_WEARABLE_SOURCE_IDS,
3922
4418
  defaultWearableCleanupSettings,
3923
4419
  defaultWearableSourceSettings,
@@ -3930,10 +4426,18 @@ export {
3930
4426
  detectMeetings,
3931
4427
  DEFAULT_MEETINGS_CONFIG,
3932
4428
  parseMeetingsConfig,
4429
+ ACTION_GATE_DEFAULT_MAX_ADVISORIES_PER_TURN,
4430
+ ACTION_GATE_DEFAULTS,
4431
+ parseActionGateConfig,
4432
+ actionTermsFor,
4433
+ isFailureClassMemory,
4434
+ createFailureMemoryCandidateSource,
4435
+ createTrajectoryCandidateSource,
4436
+ ActionGateService,
3933
4437
  isOpenaiApiKeyDisabled,
3934
4438
  resolveEnvVars,
3935
4439
  DEFAULT_REASONING_MODEL,
3936
4440
  VALID_MEMORY_CATEGORIES,
3937
4441
  parseConfig
3938
4442
  };
3939
- //# sourceMappingURL=chunk-YQ3CBLL4.js.map
4443
+ //# sourceMappingURL=chunk-76PL4XLG.js.map