@remnic/core 9.3.693 → 9.3.695

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 (358) hide show
  1. package/dist/access-boundary.d.ts +13 -12
  2. package/dist/access-boundary.js +36 -28
  3. package/dist/access-cli.js +62 -59
  4. package/dist/access-cli.js.map +1 -1
  5. package/dist/access-http.d.ts +12 -11
  6. package/dist/access-http.js +40 -32
  7. package/dist/access-mcp.d.ts +19 -11
  8. package/dist/access-mcp.js +39 -31
  9. package/dist/access-operations.d.ts +56 -13
  10. package/dist/access-operations.js +66 -30
  11. package/dist/access-schema.js +3 -3
  12. package/dist/{access-service-DxCpgyVW.d.ts → access-service-BqBQeUJd.d.ts} +99 -3
  13. package/dist/access-service.d.ts +8 -7
  14. package/dist/access-service.js +35 -27
  15. package/dist/access-surface-catalog.d.ts +12 -11
  16. package/dist/access-surface-catalog.js +15 -0
  17. package/dist/access-surface-catalog.js.map +1 -1
  18. package/dist/action-confidence.d.ts +1 -1
  19. package/dist/active-memory-bridge.d.ts +1 -1
  20. package/dist/active-recall.d.ts +1 -1
  21. package/dist/active-recall.js +1 -1
  22. package/dist/{auto-sync-RWXT6P5M.js → auto-sync-PFW2NJZY.js} +8 -8
  23. package/dist/behavior-learner.d.ts +1 -1
  24. package/dist/behavior-signals.d.ts +1 -1
  25. package/dist/bootstrap.d.ts +9 -8
  26. package/dist/briefing.d.ts +1 -1
  27. package/dist/briefing.js +12 -5
  28. package/dist/buffer-surprise-report.d.ts +1 -1
  29. package/dist/buffer.d.ts +1 -1
  30. package/dist/calibration.d.ts +1 -1
  31. package/dist/calibration.js +2 -2
  32. package/dist/capabilities.d.ts +1 -1
  33. package/dist/{capsule-crypto-7FJQINUR.js → capsule-crypto-YO5QJ6L3.js} +2 -2
  34. package/dist/{catalog-BEWLjdOr.d.ts → catalog-D7YDNNF7.d.ts} +1 -1
  35. package/dist/causal-behavior.d.ts +1 -1
  36. package/dist/causal-behavior.js +2 -2
  37. package/dist/causal-chain.js +2 -2
  38. package/dist/causal-consolidation.d.ts +1 -1
  39. package/dist/causal-consolidation.js +17 -16
  40. package/dist/causal-consolidation.js.map +1 -1
  41. package/dist/causal-retrieval.js +2 -2
  42. package/dist/causal-trajectory-graph.js +2 -2
  43. package/dist/causal-trajectory.js +1 -1
  44. package/dist/{chunk-UPTZYUYJ.js → chunk-24D66MMN.js} +2 -1
  45. package/dist/chunk-24D66MMN.js.map +1 -0
  46. package/dist/{chunk-THKNO6OX.js → chunk-32XTY2DQ.js} +52 -51
  47. package/dist/chunk-32XTY2DQ.js.map +1 -0
  48. package/dist/{chunk-YN4ZT4CW.js → chunk-3LYJIA76.js} +1 -1
  49. package/dist/{chunk-ADUAF5EV.js → chunk-3P2XEQSV.js} +2 -2
  50. package/dist/{chunk-KYH53EFD.js → chunk-4NNDJOAO.js} +8 -8
  51. package/dist/{chunk-QFG23CRE.js → chunk-52QIAN76.js} +2 -2
  52. package/dist/chunk-5AT62NQH.js +553 -0
  53. package/dist/chunk-5AT62NQH.js.map +1 -0
  54. package/dist/{chunk-TAPSNIMA.js → chunk-5CEJH5ZN.js} +4 -4
  55. package/dist/{chunk-4RGWCRIJ.js → chunk-5TYA4OCF.js} +4 -4
  56. package/dist/{chunk-FM7KLRKN.js → chunk-6GAUF4OU.js} +3 -3
  57. package/dist/{chunk-6C2BMUZA.js → chunk-AF6DSAWD.js} +2 -2
  58. package/dist/{chunk-2NLLXCJG.js → chunk-BXLOS5AJ.js} +2 -2
  59. package/dist/{chunk-32KD5IHZ.js → chunk-CLXTDOKV.js} +2 -2
  60. package/dist/{chunk-ARV3AUOM.js → chunk-DL6H3D7S.js} +2 -2
  61. package/dist/{chunk-X7Y7WX73.js → chunk-DQEMWVMT.js} +1 -1
  62. package/dist/{chunk-3BRA3N5A.js → chunk-EC3A6M43.js} +2 -2
  63. package/dist/{chunk-UTUYAPLY.js → chunk-EK6FYL2E.js} +38 -3
  64. package/dist/chunk-EK6FYL2E.js.map +1 -0
  65. package/dist/{chunk-ZLXGFAML.js → chunk-FZMH66NT.js} +2 -2
  66. package/dist/{chunk-HXNMDPHN.js → chunk-G663XUEG.js} +2 -2
  67. package/dist/{chunk-TYEOAFH3.js → chunk-G6SVZWPB.js} +10 -1
  68. package/dist/chunk-G6SVZWPB.js.map +1 -0
  69. package/dist/chunk-HKET3ZOI.js +381 -0
  70. package/dist/chunk-HKET3ZOI.js.map +1 -0
  71. package/dist/{chunk-YOI3ELXF.js → chunk-IF362TF6.js} +2 -2
  72. package/dist/{chunk-WIKNVFBS.js → chunk-J45OCIVH.js} +2 -2
  73. package/dist/{chunk-UDJLF3BO.js → chunk-JI6HWBYL.js} +2 -2
  74. package/dist/{chunk-ECZPWSB5.js → chunk-JJT3AGL4.js} +4 -4
  75. package/dist/{chunk-RHWFMBO5.js → chunk-JMAKCWJ3.js} +96 -7
  76. package/dist/chunk-JMAKCWJ3.js.map +1 -0
  77. package/dist/{chunk-4NFVPDIL.js → chunk-LM6JB2EG.js} +2 -2
  78. package/dist/{chunk-AFWEUTMS.js → chunk-LPIWEKZ3.js} +2 -2
  79. package/dist/{chunk-LD53WPMU.js → chunk-LQ6JI4VH.js} +4 -4
  80. package/dist/{chunk-U2OBZSGG.js → chunk-MNFAGE5D.js} +2 -2
  81. package/dist/{chunk-VFVG4NS2.js → chunk-MOBRVKWE.js} +23 -12
  82. package/dist/chunk-MOBRVKWE.js.map +1 -0
  83. package/dist/{chunk-MQTPUPLP.js → chunk-N4PD5IY3.js} +834 -51
  84. package/dist/chunk-N4PD5IY3.js.map +1 -0
  85. package/dist/{chunk-5HGPDRQZ.js → chunk-NFMDHE45.js} +2 -2
  86. package/dist/chunk-NFMDHE45.js.map +1 -0
  87. package/dist/{chunk-MCV2DD6F.js → chunk-NLZO5NO6.js} +2 -2
  88. package/dist/{chunk-3VVH6ZQW.js → chunk-Q6ZHGGNJ.js} +2 -2
  89. package/dist/{chunk-4IQNAOP3.js → chunk-Q7SFJURX.js} +2 -2
  90. package/dist/{chunk-MXZWKOOR.js → chunk-QJM2XAJD.js} +11 -11
  91. package/dist/{chunk-6ZNIUGXB.js → chunk-QQW2LIEA.js} +4 -4
  92. package/dist/{chunk-GCOSQBQ2.js → chunk-QVTSLRKT.js} +3 -3
  93. package/dist/{chunk-F7BVJ3IE.js → chunk-RWST6NOL.js} +166 -102
  94. package/dist/chunk-RWST6NOL.js.map +1 -0
  95. package/dist/{chunk-NUZ3N445.js → chunk-SPVIG2R3.js} +10 -10
  96. package/dist/{chunk-2D27ODNX.js → chunk-TIVZ4MCG.js} +2 -2
  97. package/dist/{chunk-5KBNNUXS.js → chunk-TT7BJWGI.js} +2 -2
  98. package/dist/{chunk-KQAFEZQX.js → chunk-VDX2J7OX.js} +2 -2
  99. package/dist/{chunk-E6BOD3UJ.js → chunk-VPAFWWCL.js} +2 -2
  100. package/dist/chunk-VQ7B2Q6M.js +112 -0
  101. package/dist/chunk-VQ7B2Q6M.js.map +1 -0
  102. package/dist/{chunk-UOCLRM74.js → chunk-W54EAJT4.js} +2 -2
  103. package/dist/{chunk-QVG4LAQO.js → chunk-WR6KFJKA.js} +7 -7
  104. package/dist/{chunk-YQGHW5ML.js → chunk-WRFKZEO6.js} +4 -4
  105. package/dist/{chunk-WYB44HHV.js → chunk-XUNQLJT2.js} +20 -8
  106. package/dist/chunk-XUNQLJT2.js.map +1 -0
  107. package/dist/{chunk-66HROLW5.js → chunk-XWT4JXXA.js} +2 -2
  108. package/dist/{chunk-SAC5V6JT.js → chunk-XXA6T3O4.js} +2 -2
  109. package/dist/{chunk-KF74X62T.js → chunk-YGKUAX2B.js} +4 -4
  110. package/dist/{chunk-W4ELOUNX.js → chunk-YOZNTNNA.js} +2 -2
  111. package/dist/{chunk-DQHZA7Y3.js → chunk-ZXUOAFUG.js} +1 -1
  112. package/dist/chunk-ZXUOAFUG.js.map +1 -0
  113. package/dist/{cli-DoQsv4ut.d.ts → cli-DBDgdvh9.d.ts} +3 -3
  114. package/dist/cli.d.ts +11 -10
  115. package/dist/cli.js +58 -50
  116. package/dist/coding/optional-coding-graph.js +7 -104
  117. package/dist/coding/optional-coding-graph.js.map +1 -1
  118. package/dist/compounding/engine.d.ts +1 -1
  119. package/dist/compounding/engine.js +12 -5
  120. package/dist/compounding/preference-consolidator.d.ts +1 -1
  121. package/dist/compression-optimizer.d.ts +1 -1
  122. package/dist/config.d.ts +1 -1
  123. package/dist/config.js +1 -1
  124. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  125. package/dist/connectors/codex-materialize-runner.js +12 -5
  126. package/dist/connectors/codex-materialize.d.ts +1 -1
  127. package/dist/connectors/index.d.ts +1 -1
  128. package/dist/connectors/index.js +12 -5
  129. package/dist/consolidation-provenance-check.d.ts +3 -3
  130. package/dist/consolidation-undo.d.ts +2 -2
  131. package/dist/contradiction/index.d.ts +1 -1
  132. package/dist/conversation-index/backend.d.ts +1 -1
  133. package/dist/conversation-index/chunker.d.ts +1 -1
  134. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  135. package/dist/conversation-index/indexer.d.ts +1 -1
  136. package/dist/conversation-index/search.d.ts +1 -1
  137. package/dist/day-summary.d.ts +1 -1
  138. package/dist/delinearize.d.ts +1 -1
  139. package/dist/direct-answer-wiring.d.ts +1 -1
  140. package/dist/direct-answer.d.ts +1 -1
  141. package/dist/embedding-fallback.d.ts +1 -1
  142. package/dist/enrichment/index.d.ts +1 -1
  143. package/dist/entity-retrieval.d.ts +1 -1
  144. package/dist/entity-retrieval.js +13 -5
  145. package/dist/entity-schema.d.ts +1 -1
  146. package/dist/explicit-capture.d.ts +9 -8
  147. package/dist/extraction-faithfulness.d.ts +211 -0
  148. package/dist/extraction-faithfulness.js +35 -0
  149. package/dist/extraction-judge-telemetry.d.ts +1 -1
  150. package/dist/extraction-judge-training.d.ts +1 -1
  151. package/dist/extraction-judge.d.ts +1 -1
  152. package/dist/extraction-judge.js +4 -4
  153. package/dist/extraction.d.ts +1 -1
  154. package/dist/extraction.js +7 -7
  155. package/dist/fallback-llm.d.ts +1 -1
  156. package/dist/fallback-llm.js +2 -2
  157. package/dist/{graph-edge-decay-D7OESCBR.js → graph-edge-decay-JLOF3YW4.js} +3 -3
  158. package/dist/graph-snapshot.js +3 -3
  159. package/dist/graph.js +2 -2
  160. package/dist/identity-continuity.d.ts +1 -1
  161. package/dist/importance.d.ts +1 -1
  162. package/dist/index.d.ts +12 -11
  163. package/dist/index.js +101 -99
  164. package/dist/index.js.map +1 -1
  165. package/dist/intent.d.ts +1 -1
  166. package/dist/lcm/engine.d.ts +1 -1
  167. package/dist/lcm/index.d.ts +1 -1
  168. package/dist/lcm/index.js +3 -3
  169. package/dist/lcm/tools.d.ts +1 -1
  170. package/dist/lifecycle.d.ts +1 -1
  171. package/dist/live-connectors-runner.d.ts +1 -1
  172. package/dist/local-llm.d.ts +1 -1
  173. package/dist/local-llm.js +1 -1
  174. package/dist/maintenance/memory-governance.d.ts +1 -1
  175. package/dist/maintenance/memory-governance.js +13 -5
  176. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +13 -5
  177. package/dist/maintenance/rebuild-memory-projection.js +14 -6
  178. package/dist/mcp-memory-inspector-app.d.ts +12 -11
  179. package/dist/memory-action-policy.d.ts +1 -1
  180. package/dist/memory-cache.d.ts +1 -1
  181. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  182. package/dist/memory-projection-store.d.ts +1 -1
  183. package/dist/memory-provenance.d.ts +1 -1
  184. package/dist/memory-worth-outcomes.d.ts +1 -1
  185. package/dist/models-json.d.ts +1 -1
  186. package/dist/namespaces/migrate.d.ts +2 -2
  187. package/dist/namespaces/migrate.js +20 -12
  188. package/dist/namespaces/principal.d.ts +1 -1
  189. package/dist/namespaces/search.d.ts +1 -1
  190. package/dist/namespaces/search.js +6 -6
  191. package/dist/namespaces/storage.d.ts +2 -2
  192. package/dist/namespaces/storage.js +13 -5
  193. package/dist/native-knowledge.d.ts +1 -1
  194. package/dist/operator-toolkit.d.ts +1 -1
  195. package/dist/operator-toolkit.js +26 -19
  196. package/dist/orchestration/maintenance.d.ts +2 -2
  197. package/dist/orchestration/maintenance.js +15 -7
  198. package/dist/{orchestrator-CNJCYjZ1.d.ts → orchestrator-Dv8JQu3-.d.ts} +20 -3
  199. package/dist/orchestrator.d.ts +6 -5
  200. package/dist/orchestrator.js +47 -46
  201. package/dist/patterns-cli.d.ts +1 -1
  202. package/dist/policy-runtime.d.ts +1 -1
  203. package/dist/provenance.d.ts +1 -1
  204. package/dist/qmd-recall-cache.d.ts +1 -1
  205. package/dist/qmd.d.ts +1 -1
  206. package/dist/recall-disclosure-escalation.d.ts +1 -1
  207. package/dist/recall-explain-renderer.d.ts +1 -1
  208. package/dist/recall-explain-renderer.js +3 -3
  209. package/dist/recall-planner-llm.d.ts +1 -1
  210. package/dist/recall-planner-llm.js +2 -2
  211. package/dist/recall-state.d.ts +1 -1
  212. package/dist/recall-tag-filter.d.ts +1 -1
  213. package/dist/recall-xray-cli.d.ts +1 -1
  214. package/dist/recall-xray-cli.js +4 -4
  215. package/dist/recall-xray-renderer.d.ts +1 -1
  216. package/dist/recall-xray-renderer.js +3 -3
  217. package/dist/recall-xray.d.ts +1 -1
  218. package/dist/recall-xray.js +2 -2
  219. package/dist/resolve-auth-token.d.ts +1 -1
  220. package/dist/resume-bundles.js +2 -2
  221. package/dist/retrieval-agents.d.ts +1 -1
  222. package/dist/retrieval-tiers.d.ts +1 -1
  223. package/dist/routing/engine.d.ts +1 -1
  224. package/dist/routing/store.d.ts +1 -1
  225. package/dist/search/embed-helper.d.ts +1 -1
  226. package/dist/search/factory.d.ts +1 -1
  227. package/dist/search/factory.js +5 -5
  228. package/dist/search/index.d.ts +1 -1
  229. package/dist/search/index.js +5 -5
  230. package/dist/search/lancedb-backend.d.ts +1 -1
  231. package/dist/search/lancedb-backend.js +2 -2
  232. package/dist/search/meilisearch-backend.d.ts +1 -1
  233. package/dist/search/meilisearch-backend.js +2 -2
  234. package/dist/search/noop-backend.d.ts +1 -1
  235. package/dist/search/orama-backend.d.ts +1 -1
  236. package/dist/search/orama-backend.js +2 -2
  237. package/dist/search/port.d.ts +1 -1
  238. package/dist/search/remote-backend.d.ts +1 -1
  239. package/dist/{semantic-consolidation-D5U0Mrdb.d.ts → semantic-consolidation-CgREi9E0.d.ts} +1 -1
  240. package/dist/semantic-consolidation.d.ts +2 -2
  241. package/dist/semantic-consolidation.js +13 -6
  242. package/dist/semantic-rule-promotion.js +13 -5
  243. package/dist/semantic-rule-verifier.d.ts +1 -1
  244. package/dist/semantic-rule-verifier.js +13 -5
  245. package/dist/session-observer-bands.d.ts +1 -1
  246. package/dist/session-observer-state.d.ts +1 -1
  247. package/dist/shared-context/manager.d.ts +1 -1
  248. package/dist/signal.d.ts +1 -1
  249. package/dist/{state-NCHQ4TRG.js → state-ITXJKXRE.js} +2 -2
  250. package/dist/storage.d.ts +11 -1
  251. package/dist/storage.js +12 -4
  252. package/dist/summarizer.d.ts +1 -1
  253. package/dist/summarizer.js +6 -6
  254. package/dist/summary-snapshot.d.ts +1 -1
  255. package/dist/temporal-supersession.d.ts +1 -1
  256. package/dist/temporal-validity.d.ts +1 -1
  257. package/dist/threading.d.ts +1 -1
  258. package/dist/tier-migration.d.ts +1 -1
  259. package/dist/tier-routing.d.ts +1 -1
  260. package/dist/topics.d.ts +1 -1
  261. package/dist/{trace-WM7V4CKI.js → trace-ZFVRH4GO.js} +3 -3
  262. package/dist/transcript.d.ts +1 -1
  263. package/dist/transfer/backup.js +2 -2
  264. package/dist/transfer/capsule-export.js +2 -2
  265. package/dist/transfer/capsule-import.js +2 -2
  266. package/dist/{tui-RI7P6PBS.js → tui-55UJMJX7.js} +3 -3
  267. package/dist/tui-55UJMJX7.js.map +1 -0
  268. package/dist/{types-2NoBoRBM.d.ts → types-CeZYSC-E.d.ts} +51 -1
  269. package/dist/types.d.ts +1 -1
  270. package/dist/types.js +1 -1
  271. package/dist/utility-runtime.d.ts +1 -1
  272. package/dist/verified-recall.js +13 -5
  273. package/package.json +2 -2
  274. package/src/access-boundary.ts +17 -0
  275. package/src/access-http.ts +27 -3
  276. package/src/access-mcp.ts +99 -2
  277. package/src/access-operations.ts +259 -0
  278. package/src/access-service.ts +82 -0
  279. package/src/access-surface-catalog.test.ts +1 -1
  280. package/src/access-surface-catalog.ts +15 -0
  281. package/src/cli.ts +1 -0
  282. package/src/coding/architecture-surfaces.test.ts +2 -0
  283. package/src/coding/codegraph-runtime.ts +773 -0
  284. package/src/coding/codegraph-surfaces.test.ts +880 -0
  285. package/src/coding/codegraph-surfaces.ts +771 -0
  286. package/src/coding/coding-knowledge-config.ts +7 -0
  287. package/src/coding/decision-surfaces.test.ts +2 -0
  288. package/src/coding/session-delta-surfaces.test.ts +2 -0
  289. package/src/config.test.ts +18 -0
  290. package/src/config.ts +30 -0
  291. package/src/console/state.ts +32 -0
  292. package/src/extraction-faithfulness.test.ts +1112 -0
  293. package/src/extraction-faithfulness.ts +993 -0
  294. package/src/faithfulness-graph-guard.test.ts +252 -0
  295. package/src/local-llm.ts +1 -0
  296. package/src/orchestrator.ts +169 -45
  297. package/src/storage.ts +19 -0
  298. package/src/types.ts +61 -0
  299. package/dist/chunk-5HGPDRQZ.js.map +0 -1
  300. package/dist/chunk-DQHZA7Y3.js.map +0 -1
  301. package/dist/chunk-F7BVJ3IE.js.map +0 -1
  302. package/dist/chunk-JNKH2XWQ.js +0 -183
  303. package/dist/chunk-JNKH2XWQ.js.map +0 -1
  304. package/dist/chunk-MQTPUPLP.js.map +0 -1
  305. package/dist/chunk-RHWFMBO5.js.map +0 -1
  306. package/dist/chunk-THKNO6OX.js.map +0 -1
  307. package/dist/chunk-TYEOAFH3.js.map +0 -1
  308. package/dist/chunk-UPTZYUYJ.js.map +0 -1
  309. package/dist/chunk-UTUYAPLY.js.map +0 -1
  310. package/dist/chunk-VFVG4NS2.js.map +0 -1
  311. package/dist/chunk-WYB44HHV.js.map +0 -1
  312. /package/dist/{auto-sync-RWXT6P5M.js.map → auto-sync-PFW2NJZY.js.map} +0 -0
  313. /package/dist/{capsule-crypto-7FJQINUR.js.map → capsule-crypto-YO5QJ6L3.js.map} +0 -0
  314. /package/dist/{chunk-YN4ZT4CW.js.map → chunk-3LYJIA76.js.map} +0 -0
  315. /package/dist/{chunk-ADUAF5EV.js.map → chunk-3P2XEQSV.js.map} +0 -0
  316. /package/dist/{chunk-KYH53EFD.js.map → chunk-4NNDJOAO.js.map} +0 -0
  317. /package/dist/{chunk-QFG23CRE.js.map → chunk-52QIAN76.js.map} +0 -0
  318. /package/dist/{chunk-TAPSNIMA.js.map → chunk-5CEJH5ZN.js.map} +0 -0
  319. /package/dist/{chunk-4RGWCRIJ.js.map → chunk-5TYA4OCF.js.map} +0 -0
  320. /package/dist/{chunk-FM7KLRKN.js.map → chunk-6GAUF4OU.js.map} +0 -0
  321. /package/dist/{chunk-6C2BMUZA.js.map → chunk-AF6DSAWD.js.map} +0 -0
  322. /package/dist/{chunk-2NLLXCJG.js.map → chunk-BXLOS5AJ.js.map} +0 -0
  323. /package/dist/{chunk-32KD5IHZ.js.map → chunk-CLXTDOKV.js.map} +0 -0
  324. /package/dist/{chunk-ARV3AUOM.js.map → chunk-DL6H3D7S.js.map} +0 -0
  325. /package/dist/{chunk-X7Y7WX73.js.map → chunk-DQEMWVMT.js.map} +0 -0
  326. /package/dist/{chunk-3BRA3N5A.js.map → chunk-EC3A6M43.js.map} +0 -0
  327. /package/dist/{chunk-ZLXGFAML.js.map → chunk-FZMH66NT.js.map} +0 -0
  328. /package/dist/{chunk-HXNMDPHN.js.map → chunk-G663XUEG.js.map} +0 -0
  329. /package/dist/{chunk-YOI3ELXF.js.map → chunk-IF362TF6.js.map} +0 -0
  330. /package/dist/{chunk-WIKNVFBS.js.map → chunk-J45OCIVH.js.map} +0 -0
  331. /package/dist/{chunk-UDJLF3BO.js.map → chunk-JI6HWBYL.js.map} +0 -0
  332. /package/dist/{chunk-ECZPWSB5.js.map → chunk-JJT3AGL4.js.map} +0 -0
  333. /package/dist/{chunk-4NFVPDIL.js.map → chunk-LM6JB2EG.js.map} +0 -0
  334. /package/dist/{chunk-AFWEUTMS.js.map → chunk-LPIWEKZ3.js.map} +0 -0
  335. /package/dist/{chunk-LD53WPMU.js.map → chunk-LQ6JI4VH.js.map} +0 -0
  336. /package/dist/{chunk-U2OBZSGG.js.map → chunk-MNFAGE5D.js.map} +0 -0
  337. /package/dist/{chunk-MCV2DD6F.js.map → chunk-NLZO5NO6.js.map} +0 -0
  338. /package/dist/{chunk-3VVH6ZQW.js.map → chunk-Q6ZHGGNJ.js.map} +0 -0
  339. /package/dist/{chunk-4IQNAOP3.js.map → chunk-Q7SFJURX.js.map} +0 -0
  340. /package/dist/{chunk-MXZWKOOR.js.map → chunk-QJM2XAJD.js.map} +0 -0
  341. /package/dist/{chunk-6ZNIUGXB.js.map → chunk-QQW2LIEA.js.map} +0 -0
  342. /package/dist/{chunk-GCOSQBQ2.js.map → chunk-QVTSLRKT.js.map} +0 -0
  343. /package/dist/{chunk-NUZ3N445.js.map → chunk-SPVIG2R3.js.map} +0 -0
  344. /package/dist/{chunk-2D27ODNX.js.map → chunk-TIVZ4MCG.js.map} +0 -0
  345. /package/dist/{chunk-5KBNNUXS.js.map → chunk-TT7BJWGI.js.map} +0 -0
  346. /package/dist/{chunk-KQAFEZQX.js.map → chunk-VDX2J7OX.js.map} +0 -0
  347. /package/dist/{chunk-E6BOD3UJ.js.map → chunk-VPAFWWCL.js.map} +0 -0
  348. /package/dist/{chunk-UOCLRM74.js.map → chunk-W54EAJT4.js.map} +0 -0
  349. /package/dist/{chunk-QVG4LAQO.js.map → chunk-WR6KFJKA.js.map} +0 -0
  350. /package/dist/{chunk-YQGHW5ML.js.map → chunk-WRFKZEO6.js.map} +0 -0
  351. /package/dist/{chunk-66HROLW5.js.map → chunk-XWT4JXXA.js.map} +0 -0
  352. /package/dist/{chunk-SAC5V6JT.js.map → chunk-XXA6T3O4.js.map} +0 -0
  353. /package/dist/{chunk-KF74X62T.js.map → chunk-YGKUAX2B.js.map} +0 -0
  354. /package/dist/{chunk-W4ELOUNX.js.map → chunk-YOZNTNNA.js.map} +0 -0
  355. /package/dist/{state-NCHQ4TRG.js.map → extraction-faithfulness.js.map} +0 -0
  356. /package/dist/{graph-edge-decay-D7OESCBR.js.map → graph-edge-decay-JLOF3YW4.js.map} +0 -0
  357. /package/dist/{tui-RI7P6PBS.js.map → state-ITXJKXRE.js.map} +0 -0
  358. /package/dist/{trace-WM7V4CKI.js.map → trace-ZFVRH4GO.js.map} +0 -0
@@ -791,6 +791,20 @@ interface CodingKnowledgeConfig {
791
791
  * check at boot, not at every call.
792
792
  */
793
793
  structuralProviderCommand: string;
794
+ /**
795
+ * Gate for the 14 codegraph parity tools (issue #1554). Off by default --
796
+ * tools/list, HTTP routes, and CLI help are byte-identical to pre-feature
797
+ * until this is true. The runtime also requires the @remnic/coding-graph
798
+ * package to be installed (rule 39: single gate predicate
799
+ * codegraphSurfaceVisible(config) && isCodingGraphInstalled()).
800
+ */
801
+ codegraphTools: boolean;
802
+ /**
803
+ * Root directory for per-project graph SQLite DBs. Empty string = derive
804
+ * from memoryDir (<memoryDir>/codegraph/<principal>/<projectId>.sqlite).
805
+ * Absolute path required when set explicitly (rule 11 -- no relative paths).
806
+ */
807
+ codegraphDbDir: string;
794
808
  }
795
809
  /**
796
810
  * Session-scoped coding context. Produced by `resolveGitContext()` in the
@@ -1331,6 +1345,14 @@ interface PluginConfig {
1331
1345
  * location.
1332
1346
  */
1333
1347
  judgeTrainingDir: string;
1348
+ /** Gate mode: "off" (default, byte-identical pre-feature), "shadow" (record only), "enforce" (route to pending_review). */
1349
+ extractionFaithfulnessGate: "off" | "shadow" | "enforce";
1350
+ /** Override model/endpoint; empty string = default routing chain. */
1351
+ extractionFaithfulnessModel: string;
1352
+ /** Context window (chars) around the quote sent to the verifier. Default 400. */
1353
+ extractionFaithfulnessContextChars: number;
1354
+ /** Per-batch timeout in ms; timeout → tagged error, never blocks writes. Default 8000. */
1355
+ extractionFaithfulnessTimeoutMs: number;
1334
1356
  hourlySummariesEnabled: boolean;
1335
1357
  daySummaryEnabled: boolean;
1336
1358
  /** Timezone override for the day summary cron (issue #1475). */
@@ -2720,6 +2742,26 @@ interface MemoryFrontmatter {
2720
2742
  * recorded). Readers treat absent as `"none"` for legacy memories.
2721
2743
  */
2722
2744
  provenance?: "verified" | "unverified" | "none";
2745
+ /** Entailment verdict from the faithfulness gate (issue #1576). */
2746
+ faithfulness?: FaithfulnessFrontmatter;
2747
+ }
2748
+ /**
2749
+ * Faithfulness gate frontmatter (issue #1576).
2750
+ *
2751
+ * Serialized as a single JSON line so it round-trips through the existing
2752
+ * YAML parser. `verdict: "unchecked"` marks a fact that entered the gate but
2753
+ * could not be evaluated (backend failure, timeout). `verdict:
2754
+ * "skipped_no_span"` marks a legacy fact without a verified source span.
2755
+ * Both are distinct from the field being absent (gate was off entirely).
2756
+ */
2757
+ interface FaithfulnessFrontmatter {
2758
+ verdict: "entailed" | "contradicted" | "unsupported" | "unchecked" | "skipped_no_span";
2759
+ /** Model/endpoint that produced the verdict, when known. */
2760
+ model?: string;
2761
+ /** One-sentence rationale from the verifier. */
2762
+ rationale?: string;
2763
+ /** ISO-8601 timestamp the check ran. */
2764
+ at?: string;
2723
2765
  }
2724
2766
  /** Memory link relationship types */
2725
2767
  type MemoryLinkType = "follows" | "references" | "contradicts" | "supports" | "related";
@@ -2863,6 +2905,14 @@ interface ExtractedFact {
2863
2905
  tags: string[];
2864
2906
  entityRef?: string;
2865
2907
  source?: ExtractionPassSource;
2908
+ /**
2909
+ * Claim-level provenance spans backing this fact (issue #1575).
2910
+ * Populated by the PR 2 extraction validator when `provenance.enabled`
2911
+ * is true. Absent for legacy extractions — downstream consumers (the
2912
+ * faithfulness gate #1576, TrustScore #1577) MUST treat absent as
2913
+ * "no verified span" and skip gracefully.
2914
+ */
2915
+ sources?: ProvenanceSource[];
2866
2916
  promptedByQuestion?: string;
2867
2917
  /**
2868
2918
  * Whether this fact is project-scoped or globally applicable.
@@ -3372,4 +3422,4 @@ interface HourlySummary {
3372
3422
  generatedAt: string;
3373
3423
  }
3374
3424
 
3375
- export { type Checkpoint as $, type ActiveRecallChatType as A, type BehaviorSignalEvent as B, type CompressionGuidelineOptimizerState as C, type MemorySummary as D, type EntityStructuredSection as E, type FileHygieneConfig as F, type GatewayConfig as G, type RecallPlanMode as H, type ImportanceScore as I, type IdentityInjectionMode as J, type RecallDisclosure as K, type LiveConnectorsConfig as L, type MemoryCategory as M, type BriefingSections as N, type BriefingFollowup as O, type PluginConfig as P, type QmdSearchResult as Q, type RecallTierExplain as R, type BriefingFocus as S, type TopicScore as T, type CalendarSource as U, type CalendarEvent as V, type BriefingActiveThread as W, type BriefingResult as X, type BriefingRecentEntity as Y, type BufferTurn as Z, type TranscriptEntry as _, type ActiveRecallQueryMode as a, RECALL_DISCLOSURE_LEVELS as a$, type HourlySummary as a0, type SessionObserverBandConfig as a1, type LifecycleState as a2, type VerificationState as a3, type PolicyClass as a4, type ImportanceLevel as a5, type SecretRef as a6, type AgentAccessAuthToken as a7, type CompressionGuidelineOptimizerEventCounts as a8, type CompressionGuidelineOptimizerActionSummary as a9, type WearableConversation as aA, type WearableSourceSettings as aB, type WearableNativeMemory as aC, type WearableMemoryMode as aD, type WearableSourceConnector as aE, type WearablesConfig as aF, type WearableSyncSummary as aG, type WearableSourceStatus as aH, type WearableDayTranscript as aI, type WearableCorrectionRule as aJ, type CodingContext as aK, type BootstrapOptions as aL, type BootstrapResult as aM, type ConsolidationObservation as aN, type EntityTimelineEntry as aO, type CodingModeConfig as aP, type WearableCleanupSettings as aQ, type WearableDayTranscriptMeta as aR, type BriefingConfig as aS, type BriefingOpenCommitment as aT, type BriefingWindow as aU, type CodexCompatConfig as aV, DEFAULT_RECALL_DISCLOSURE as aW, type ExtractedFact as aX, type MemoryActionEligibilitySource as aY, type MemoryObservation as aZ, type MemoryScope as a_, type CompressionGuidelineOptimizerRuleUpdate as aa, type MemoryActionType as ab, type EntityMention as ac, type EntitySchemaDefinition as ad, type EntitySchemaSectionDefinition as ae, type ExtractionResult as af, type ConsolidationResult as ag, type DaySummaryResult as ah, type MemoryIntent as ai, type QmdSearchExplain as aj, type MemoryActionEligibilityContext as ak, type MemoryActionPolicyResult as al, type MemoryLifecycleEventType as am, type MemoryLifecycleStateSummary as an, type ModelProviderConfig as ao, type NativeKnowledgeConfig as ap, type ProvenanceConfig as aq, type ProvenanceSource as ar, type RetrievalTier as as, type SignalScanResult as at, type ConversationThread as au, type ScopeProfileLayerId as av, type ScopeProfilePromotionTarget as aw, type DreamsStatusResult as ax, type DreamsPhase as ay, type DreamsRunResult as az, type ActiveRecallPromptStyle as b, type NotionLiveConnectorConfig as b$, type WearableAuthCheck as b0, type WearableFetchOptions as b1, type WearableFetchPage as b2, type WearableNativeMemoryPage as b3, type WearableTranscriptSegment as b4, isRecallDisclosure as b5, type AgentAccessHttpConfig as b6, type AgentDefaultsConfig as b7, type AgentPersona as b8, type BehaviorLoopAdjustment as b9, type DreamsRemConfig as bA, type EngramTraceEvent as bB, type ExtractedProcedureStep as bC, type ExtractedQuestion as bD, type ExtractedReasoningTrace as bE, type ExtractedReasoningTraceStep as bF, type ExtractedRelationship as bG, type ExtractionPassSource as bH, type GitHubLiveConnectorConfig as bI, type GmailLiveConnectorConfig as bJ, type GoogleDriveLiveConnectorConfig as bK, type HeartbeatConfig as bL, type HeartbeatDetectionMode as bM, type LlmTraceCallback as bN, type LlmTraceEvent as bO, type MemoryActionOutcome as bP, type MemoryActionPolicyDecision as bQ, type MemoryActionStatus as bR, type MemoryLinkType as bS, type MemoryOsPresetName as bT, type ModelApi as bU, type ModelDefinitionConfig as bV, type ModelProviderAuthMode as bW, type NamespacePolicy as bX, type NativeKnowledgeFolderRuleConfig as bY, type NativeKnowledgeObsidianVaultConfig as bZ, type NativeKnowledgeOpenClawWorkspaceConfig as b_, type BehaviorSignalDirection as ba, type BehaviorSignalType as bb, type BriefingCalendarSourceError as bc, type BufferEntryState as bd, type CaptureMode as be, type CodexCliReasoningEffort as bf, type CodexCompactionFlushMode as bg, type CodexConnectorConfig as bh, type CodingKnowledgeConfig as bi, type CompressionGuidelineActivationState as bj, type CompressionGuidelineOptimizerSourceWindow as bk, type ConfidenceTier as bl, type ConsolidationAction as bm, type ConsolidationItem as bn, type ContinuityIncidentState as bo, type ContinuityLoopCadence as bp, type ContinuityLoopStatus as bq, type ContradictionScanConfig as br, type CronConversationRecallMode as bs, type CronRecallMode as bt, type DreamingConfig as bu, type DreamingNarrativePromptStyle as bv, type DreamsDeepSleepConfig as bw, type DreamsLightSleepConfig as bx, type DreamsPhaseStatus as by, type DreamsPhasesConfig as bz, type ActiveRecallThinking as c, type PrincipalFromSessionKeyMode as c0, type PrincipalRule as c1, type ProceduralConfig as c2, type QuestionEntry as c3, type ReasoningEffort as c4, type RecallPipelineConfig as c5, type RecallSectionConfig as c6, type RecallTraceEvent as c7, type RelevanceFeedback as c8, SPECULATIVE_TTL_DAYS as c9, type ScopeProfileAutoPromoteConfig as ca, type ScopeProfileConfig as cb, type ScopeProfileTeamProjectConfig as cc, type ScopeTeamConfig as cd, type ScoredEntity as ce, type SemanticChunkingConfigShape as cf, type SignalLevel as cg, type SlotBehaviorConfig as ch, type SlotMismatchMode as ci, type TriggerMode as cj, confidenceTier as ck, type ActiveRecallModelFallbackPolicy as d, type BehaviorLoopPolicyState as e, type AgentPersonaModelConfig as f, type MemoryFile as g, type MemoryStatus as h, type MemoryLink as i, type MemoryFrontmatter as j, type BufferState as k, type MetaState as l, type MemoryActionEvent as m, type MemoryLifecycleEvent as n, type BufferSurpriseEvent as o, type ContinuityIncidentOpenInput as p, type ContinuityIncidentRecord as q, type ContinuityIncidentCloseInput as r, type ContinuityImprovementLoop as s, type ContinuityLoopUpsertInput as t, type ContinuityLoopReviewInput as u, type EntityRelationship as v, type EntityActivityEntry as w, type EntityFile as x, type AccessTrackingEntry as y, type MemoryProjectionCurrentState as z };
3425
+ export { type TranscriptEntry as $, type ActiveRecallChatType as A, type BehaviorSignalEvent as B, type CompressionGuidelineOptimizerState as C, type MemoryProjectionCurrentState as D, type EntityStructuredSection as E, type FaithfulnessFrontmatter as F, type GatewayConfig as G, type MemorySummary as H, type ImportanceScore as I, type RecallPlanMode as J, type IdentityInjectionMode as K, type LiveConnectorsConfig as L, type MemoryCategory as M, type RecallDisclosure as N, type BriefingSections as O, type PluginConfig as P, type QmdSearchResult as Q, type RecallTierExplain as R, type BriefingFollowup as S, type TopicScore as T, type BriefingFocus as U, type CalendarSource as V, type CalendarEvent as W, type BriefingActiveThread as X, type BriefingResult as Y, type BriefingRecentEntity as Z, type BufferTurn as _, type ActiveRecallQueryMode as a, type MemoryScope as a$, type Checkpoint as a0, type HourlySummary as a1, type SessionObserverBandConfig as a2, type LifecycleState as a3, type VerificationState as a4, type PolicyClass as a5, type ImportanceLevel as a6, type SecretRef as a7, type AgentAccessAuthToken as a8, type CompressionGuidelineOptimizerEventCounts as a9, type DreamsRunResult as aA, type WearableConversation as aB, type WearableSourceSettings as aC, type WearableNativeMemory as aD, type WearableMemoryMode as aE, type WearableSourceConnector as aF, type WearablesConfig as aG, type WearableSyncSummary as aH, type WearableSourceStatus as aI, type WearableDayTranscript as aJ, type WearableCorrectionRule as aK, type CodingContext as aL, type BootstrapOptions as aM, type BootstrapResult as aN, type ConsolidationObservation as aO, type EntityTimelineEntry as aP, type CodingModeConfig as aQ, type WearableCleanupSettings as aR, type WearableDayTranscriptMeta as aS, type BriefingConfig as aT, type BriefingOpenCommitment as aU, type BriefingWindow as aV, type CodexCompatConfig as aW, DEFAULT_RECALL_DISCLOSURE as aX, type ExtractedFact as aY, type MemoryActionEligibilitySource as aZ, type MemoryObservation as a_, type CompressionGuidelineOptimizerActionSummary as aa, type CompressionGuidelineOptimizerRuleUpdate as ab, type MemoryActionType as ac, type EntityMention as ad, type EntitySchemaDefinition as ae, type EntitySchemaSectionDefinition as af, type ExtractionResult as ag, type ConsolidationResult as ah, type DaySummaryResult as ai, type MemoryIntent as aj, type QmdSearchExplain as ak, type MemoryActionEligibilityContext as al, type MemoryActionPolicyResult as am, type MemoryLifecycleEventType as an, type MemoryLifecycleStateSummary as ao, type ModelProviderConfig as ap, type NativeKnowledgeConfig as aq, type ProvenanceConfig as ar, type ProvenanceSource as as, type RetrievalTier as at, type SignalScanResult as au, type ConversationThread as av, type ScopeProfileLayerId as aw, type ScopeProfilePromotionTarget as ax, type DreamsStatusResult as ay, type DreamsPhase as az, type ActiveRecallPromptStyle as b, type NativeKnowledgeOpenClawWorkspaceConfig as b$, RECALL_DISCLOSURE_LEVELS as b0, type WearableAuthCheck as b1, type WearableFetchOptions as b2, type WearableFetchPage as b3, type WearableNativeMemoryPage as b4, type WearableTranscriptSegment as b5, isRecallDisclosure as b6, type AgentAccessHttpConfig as b7, type AgentDefaultsConfig as b8, type AgentPersona as b9, type DreamsPhasesConfig as bA, type DreamsRemConfig as bB, type EngramTraceEvent as bC, type ExtractedProcedureStep as bD, type ExtractedQuestion as bE, type ExtractedReasoningTrace as bF, type ExtractedReasoningTraceStep as bG, type ExtractedRelationship as bH, type ExtractionPassSource as bI, type GitHubLiveConnectorConfig as bJ, type GmailLiveConnectorConfig as bK, type GoogleDriveLiveConnectorConfig as bL, type HeartbeatConfig as bM, type HeartbeatDetectionMode as bN, type LlmTraceCallback as bO, type LlmTraceEvent as bP, type MemoryActionOutcome as bQ, type MemoryActionPolicyDecision as bR, type MemoryActionStatus as bS, type MemoryLinkType as bT, type MemoryOsPresetName as bU, type ModelApi as bV, type ModelDefinitionConfig as bW, type ModelProviderAuthMode as bX, type NamespacePolicy as bY, type NativeKnowledgeFolderRuleConfig as bZ, type NativeKnowledgeObsidianVaultConfig as b_, type BehaviorLoopAdjustment as ba, type BehaviorSignalDirection as bb, type BehaviorSignalType as bc, type BriefingCalendarSourceError as bd, type BufferEntryState as be, type CaptureMode as bf, type CodexCliReasoningEffort as bg, type CodexCompactionFlushMode as bh, type CodexConnectorConfig as bi, type CodingKnowledgeConfig as bj, type CompressionGuidelineActivationState as bk, type CompressionGuidelineOptimizerSourceWindow as bl, type ConfidenceTier as bm, type ConsolidationAction as bn, type ConsolidationItem as bo, type ContinuityIncidentState as bp, type ContinuityLoopCadence as bq, type ContinuityLoopStatus as br, type ContradictionScanConfig as bs, type CronConversationRecallMode as bt, type CronRecallMode as bu, type DreamingConfig as bv, type DreamingNarrativePromptStyle as bw, type DreamsDeepSleepConfig as bx, type DreamsLightSleepConfig as by, type DreamsPhaseStatus as bz, type ActiveRecallThinking as c, type NotionLiveConnectorConfig as c0, type PrincipalFromSessionKeyMode as c1, type PrincipalRule as c2, type ProceduralConfig as c3, type QuestionEntry as c4, type ReasoningEffort as c5, type RecallPipelineConfig as c6, type RecallSectionConfig as c7, type RecallTraceEvent as c8, type RelevanceFeedback as c9, SPECULATIVE_TTL_DAYS as ca, type ScopeProfileAutoPromoteConfig as cb, type ScopeProfileConfig as cc, type ScopeProfileTeamProjectConfig as cd, type ScopeTeamConfig as ce, type ScoredEntity as cf, type SemanticChunkingConfigShape as cg, type SignalLevel as ch, type SlotBehaviorConfig as ci, type SlotMismatchMode as cj, type TriggerMode as ck, confidenceTier as cl, type ActiveRecallModelFallbackPolicy as d, type BehaviorLoopPolicyState as e, type AgentPersonaModelConfig as f, type MemoryFile as g, type MemoryStatus as h, type MemoryLink as i, type MemoryFrontmatter as j, type BufferState as k, type MetaState as l, type MemoryActionEvent as m, type MemoryLifecycleEvent as n, type BufferSurpriseEvent as o, type ContinuityIncidentOpenInput as p, type ContinuityIncidentRecord as q, type ContinuityIncidentCloseInput as r, type ContinuityImprovementLoop as s, type ContinuityLoopUpsertInput as t, type ContinuityLoopReviewInput as u, type FileHygieneConfig as v, type EntityRelationship as w, type EntityActivityEntry as x, type EntityFile as y, type AccessTrackingEntry as z };
package/dist/types.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import './types-ByK7T3L6.js';
2
2
  import './index-DJ9QWMw-.js';
3
- export { y as AccessTrackingEntry, A as ActiveRecallChatType, d as ActiveRecallModelFallbackPolicy, b as ActiveRecallPromptStyle, a as ActiveRecallQueryMode, c as ActiveRecallThinking, a7 as AgentAccessAuthToken, b6 as AgentAccessHttpConfig, b7 as AgentDefaultsConfig, b8 as AgentPersona, f as AgentPersonaModelConfig, b9 as BehaviorLoopAdjustment, e as BehaviorLoopPolicyState, ba as BehaviorSignalDirection, B as BehaviorSignalEvent, bb as BehaviorSignalType, aL as BootstrapOptions, aM as BootstrapResult, W as BriefingActiveThread, bc as BriefingCalendarSourceError, aS as BriefingConfig, S as BriefingFocus, O as BriefingFollowup, aT as BriefingOpenCommitment, Y as BriefingRecentEntity, X as BriefingResult, N as BriefingSections, aU as BriefingWindow, bd as BufferEntryState, k as BufferState, o as BufferSurpriseEvent, Z as BufferTurn, V as CalendarEvent, U as CalendarSource, be as CaptureMode, $ as Checkpoint, bf as CodexCliReasoningEffort, bg as CodexCompactionFlushMode, aV as CodexCompatConfig, bh as CodexConnectorConfig, aK as CodingContext, bi as CodingKnowledgeConfig, aP as CodingModeConfig, bj as CompressionGuidelineActivationState, a9 as CompressionGuidelineOptimizerActionSummary, a8 as CompressionGuidelineOptimizerEventCounts, aa as CompressionGuidelineOptimizerRuleUpdate, bk as CompressionGuidelineOptimizerSourceWindow, C as CompressionGuidelineOptimizerState, bl as ConfidenceTier, bm as ConsolidationAction, bn as ConsolidationItem, aN as ConsolidationObservation, ag as ConsolidationResult, s as ContinuityImprovementLoop, r as ContinuityIncidentCloseInput, p as ContinuityIncidentOpenInput, q as ContinuityIncidentRecord, bo as ContinuityIncidentState, bp as ContinuityLoopCadence, u as ContinuityLoopReviewInput, bq as ContinuityLoopStatus, t as ContinuityLoopUpsertInput, br as ContradictionScanConfig, au as ConversationThread, bs as CronConversationRecallMode, bt as CronRecallMode, aW as DEFAULT_RECALL_DISCLOSURE, ah as DaySummaryResult, bu as DreamingConfig, bv as DreamingNarrativePromptStyle, bw as DreamsDeepSleepConfig, bx as DreamsLightSleepConfig, ay as DreamsPhase, by as DreamsPhaseStatus, bz as DreamsPhasesConfig, bA as DreamsRemConfig, az as DreamsRunResult, ax as DreamsStatusResult, bB as EngramTraceEvent, w as EntityActivityEntry, x as EntityFile, ac as EntityMention, v as EntityRelationship, ad as EntitySchemaDefinition, ae as EntitySchemaSectionDefinition, E as EntityStructuredSection, aO as EntityTimelineEntry, aX as ExtractedFact, bC as ExtractedProcedureStep, bD as ExtractedQuestion, bE as ExtractedReasoningTrace, bF as ExtractedReasoningTraceStep, bG as ExtractedRelationship, bH as ExtractionPassSource, af as ExtractionResult, F as FileHygieneConfig, G as GatewayConfig, bI as GitHubLiveConnectorConfig, bJ as GmailLiveConnectorConfig, bK as GoogleDriveLiveConnectorConfig, bL as HeartbeatConfig, bM as HeartbeatDetectionMode, a0 as HourlySummary, J as IdentityInjectionMode, a5 as ImportanceLevel, I as ImportanceScore, a2 as LifecycleState, L as LiveConnectorsConfig, bN as LlmTraceCallback, bO as LlmTraceEvent, ak as MemoryActionEligibilityContext, aY as MemoryActionEligibilitySource, m as MemoryActionEvent, bP as MemoryActionOutcome, bQ as MemoryActionPolicyDecision, al as MemoryActionPolicyResult, bR as MemoryActionStatus, ab as MemoryActionType, M as MemoryCategory, g as MemoryFile, j as MemoryFrontmatter, ai as MemoryIntent, n as MemoryLifecycleEvent, am as MemoryLifecycleEventType, an as MemoryLifecycleStateSummary, i as MemoryLink, bS as MemoryLinkType, aZ as MemoryObservation, bT as MemoryOsPresetName, z as MemoryProjectionCurrentState, a_ as MemoryScope, h as MemoryStatus, D as MemorySummary, l as MetaState, bU as ModelApi, bV as ModelDefinitionConfig, bW as ModelProviderAuthMode, ao as ModelProviderConfig, bX as NamespacePolicy, ap as NativeKnowledgeConfig, bY as NativeKnowledgeFolderRuleConfig, bZ as NativeKnowledgeObsidianVaultConfig, b_ as NativeKnowledgeOpenClawWorkspaceConfig, b$ as NotionLiveConnectorConfig, P as PluginConfig, a4 as PolicyClass, c0 as PrincipalFromSessionKeyMode, c1 as PrincipalRule, c2 as ProceduralConfig, aq as ProvenanceConfig, ar as ProvenanceSource, aj as QmdSearchExplain, Q as QmdSearchResult, c3 as QuestionEntry, a$ as RECALL_DISCLOSURE_LEVELS, c4 as ReasoningEffort, K as RecallDisclosure, c5 as RecallPipelineConfig, H as RecallPlanMode, c6 as RecallSectionConfig, R as RecallTierExplain, c7 as RecallTraceEvent, c8 as RelevanceFeedback, as as RetrievalTier, c9 as SPECULATIVE_TTL_DAYS, ca as ScopeProfileAutoPromoteConfig, cb as ScopeProfileConfig, av as ScopeProfileLayerId, aw as ScopeProfilePromotionTarget, cc as ScopeProfileTeamProjectConfig, cd as ScopeTeamConfig, ce as ScoredEntity, a6 as SecretRef, cf as SemanticChunkingConfigShape, a1 as SessionObserverBandConfig, cg as SignalLevel, at as SignalScanResult, ch as SlotBehaviorConfig, ci as SlotMismatchMode, T as TopicScore, _ as TranscriptEntry, cj as TriggerMode, a3 as VerificationState, ck as confidenceTier, b5 as isRecallDisclosure } from './types-2NoBoRBM.js';
3
+ export { z as AccessTrackingEntry, A as ActiveRecallChatType, d as ActiveRecallModelFallbackPolicy, b as ActiveRecallPromptStyle, a as ActiveRecallQueryMode, c as ActiveRecallThinking, a8 as AgentAccessAuthToken, b7 as AgentAccessHttpConfig, b8 as AgentDefaultsConfig, b9 as AgentPersona, f as AgentPersonaModelConfig, ba as BehaviorLoopAdjustment, e as BehaviorLoopPolicyState, bb as BehaviorSignalDirection, B as BehaviorSignalEvent, bc as BehaviorSignalType, aM as BootstrapOptions, aN as BootstrapResult, X as BriefingActiveThread, bd as BriefingCalendarSourceError, aT as BriefingConfig, U as BriefingFocus, S as BriefingFollowup, aU as BriefingOpenCommitment, Z as BriefingRecentEntity, Y as BriefingResult, O as BriefingSections, aV as BriefingWindow, be as BufferEntryState, k as BufferState, o as BufferSurpriseEvent, _ as BufferTurn, W as CalendarEvent, V as CalendarSource, bf as CaptureMode, a0 as Checkpoint, bg as CodexCliReasoningEffort, bh as CodexCompactionFlushMode, aW as CodexCompatConfig, bi as CodexConnectorConfig, aL as CodingContext, bj as CodingKnowledgeConfig, aQ as CodingModeConfig, bk as CompressionGuidelineActivationState, aa as CompressionGuidelineOptimizerActionSummary, a9 as CompressionGuidelineOptimizerEventCounts, ab as CompressionGuidelineOptimizerRuleUpdate, bl as CompressionGuidelineOptimizerSourceWindow, C as CompressionGuidelineOptimizerState, bm as ConfidenceTier, bn as ConsolidationAction, bo as ConsolidationItem, aO as ConsolidationObservation, ah as ConsolidationResult, s as ContinuityImprovementLoop, r as ContinuityIncidentCloseInput, p as ContinuityIncidentOpenInput, q as ContinuityIncidentRecord, bp as ContinuityIncidentState, bq as ContinuityLoopCadence, u as ContinuityLoopReviewInput, br as ContinuityLoopStatus, t as ContinuityLoopUpsertInput, bs as ContradictionScanConfig, av as ConversationThread, bt as CronConversationRecallMode, bu as CronRecallMode, aX as DEFAULT_RECALL_DISCLOSURE, ai as DaySummaryResult, bv as DreamingConfig, bw as DreamingNarrativePromptStyle, bx as DreamsDeepSleepConfig, by as DreamsLightSleepConfig, az as DreamsPhase, bz as DreamsPhaseStatus, bA as DreamsPhasesConfig, bB as DreamsRemConfig, aA as DreamsRunResult, ay as DreamsStatusResult, bC as EngramTraceEvent, x as EntityActivityEntry, y as EntityFile, ad as EntityMention, w as EntityRelationship, ae as EntitySchemaDefinition, af as EntitySchemaSectionDefinition, E as EntityStructuredSection, aP as EntityTimelineEntry, aY as ExtractedFact, bD as ExtractedProcedureStep, bE as ExtractedQuestion, bF as ExtractedReasoningTrace, bG as ExtractedReasoningTraceStep, bH as ExtractedRelationship, bI as ExtractionPassSource, ag as ExtractionResult, F as FaithfulnessFrontmatter, v as FileHygieneConfig, G as GatewayConfig, bJ as GitHubLiveConnectorConfig, bK as GmailLiveConnectorConfig, bL as GoogleDriveLiveConnectorConfig, bM as HeartbeatConfig, bN as HeartbeatDetectionMode, a1 as HourlySummary, K as IdentityInjectionMode, a6 as ImportanceLevel, I as ImportanceScore, a3 as LifecycleState, L as LiveConnectorsConfig, bO as LlmTraceCallback, bP as LlmTraceEvent, al as MemoryActionEligibilityContext, aZ as MemoryActionEligibilitySource, m as MemoryActionEvent, bQ as MemoryActionOutcome, bR as MemoryActionPolicyDecision, am as MemoryActionPolicyResult, bS as MemoryActionStatus, ac as MemoryActionType, M as MemoryCategory, g as MemoryFile, j as MemoryFrontmatter, aj as MemoryIntent, n as MemoryLifecycleEvent, an as MemoryLifecycleEventType, ao as MemoryLifecycleStateSummary, i as MemoryLink, bT as MemoryLinkType, a_ as MemoryObservation, bU as MemoryOsPresetName, D as MemoryProjectionCurrentState, a$ as MemoryScope, h as MemoryStatus, H as MemorySummary, l as MetaState, bV as ModelApi, bW as ModelDefinitionConfig, bX as ModelProviderAuthMode, ap as ModelProviderConfig, bY as NamespacePolicy, aq as NativeKnowledgeConfig, bZ as NativeKnowledgeFolderRuleConfig, b_ as NativeKnowledgeObsidianVaultConfig, b$ as NativeKnowledgeOpenClawWorkspaceConfig, c0 as NotionLiveConnectorConfig, P as PluginConfig, a5 as PolicyClass, c1 as PrincipalFromSessionKeyMode, c2 as PrincipalRule, c3 as ProceduralConfig, ar as ProvenanceConfig, as as ProvenanceSource, ak as QmdSearchExplain, Q as QmdSearchResult, c4 as QuestionEntry, b0 as RECALL_DISCLOSURE_LEVELS, c5 as ReasoningEffort, N as RecallDisclosure, c6 as RecallPipelineConfig, J as RecallPlanMode, c7 as RecallSectionConfig, R as RecallTierExplain, c8 as RecallTraceEvent, c9 as RelevanceFeedback, at as RetrievalTier, ca as SPECULATIVE_TTL_DAYS, cb as ScopeProfileAutoPromoteConfig, cc as ScopeProfileConfig, aw as ScopeProfileLayerId, ax as ScopeProfilePromotionTarget, cd as ScopeProfileTeamProjectConfig, ce as ScopeTeamConfig, cf as ScoredEntity, a7 as SecretRef, cg as SemanticChunkingConfigShape, a2 as SessionObserverBandConfig, ch as SignalLevel, au as SignalScanResult, ci as SlotBehaviorConfig, cj as SlotMismatchMode, T as TopicScore, $ as TranscriptEntry, ck as TriggerMode, a4 as VerificationState, cl as confidenceTier, b6 as isRecallDisclosure } from './types-CeZYSC-E.js';
package/dist/types.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  SPECULATIVE_TTL_DAYS,
5
5
  confidenceTier,
6
6
  isRecallDisclosure
7
- } from "./chunk-DQHZA7Y3.js";
7
+ } from "./chunk-ZXUOAFUG.js";
8
8
  import "./chunk-PZ5AY32C.js";
9
9
  export {
10
10
  DEFAULT_RECALL_DISCLOSURE,
@@ -1,5 +1,5 @@
1
1
  import { TierRoutingPolicy } from './tier-routing.js';
2
- import './types-2NoBoRBM.js';
2
+ import './types-CeZYSC-E.js';
3
3
  import './types-ByK7T3L6.js';
4
4
  import './index-DJ9QWMw-.js';
5
5
  import './lifecycle.js';
@@ -1,32 +1,40 @@
1
1
  import {
2
2
  compareVerifiedEpisodeResults,
3
3
  searchVerifiedEpisodes
4
- } from "./chunk-3VVH6ZQW.js";
4
+ } from "./chunk-Q6ZHGGNJ.js";
5
5
  import "./chunk-7FL4CNPV.js";
6
- import "./chunk-VFVG4NS2.js";
6
+ import "./chunk-MOBRVKWE.js";
7
7
  import "./chunk-M7XQSUBB.js";
8
8
  import "./chunk-5UZXUTVO.js";
9
9
  import "./chunk-5GPPACXK.js";
10
10
  import "./chunk-SVOZFLIQ.js";
11
11
  import "./chunk-J6A3CX5N.js";
12
- import "./chunk-DQHZA7Y3.js";
12
+ import "./chunk-ZXUOAFUG.js";
13
+ import "./chunk-RULE4VG5.js";
13
14
  import "./chunk-SCU65EZI.js";
14
15
  import "./chunk-MB5RSUW6.js";
15
16
  import "./chunk-6KYMPV2O.js";
16
17
  import "./chunk-AWJ2FHCF.js";
17
18
  import "./chunk-42JKGUFJ.js";
18
- import "./chunk-RULE4VG5.js";
19
- import "./chunk-LDXUBPMO.js";
20
19
  import "./chunk-DM2T26WE.js";
20
+ import "./chunk-LDXUBPMO.js";
21
21
  import "./chunk-FVQJYWH7.js";
22
+ import "./chunk-5AT62NQH.js";
22
23
  import "./chunk-G7D6GZ5J.js";
23
24
  import "./chunk-VF4XKTX3.js";
25
+ import "./chunk-5TYA4OCF.js";
26
+ import "./chunk-IQVQJJL7.js";
27
+ import "./chunk-VL7DP3OW.js";
28
+ import "./chunk-L2EXJQJP.js";
29
+ import "./chunk-RGMVMVMF.js";
30
+ import "./chunk-RK6F44Y6.js";
24
31
  import "./chunk-J2HSAU72.js";
25
32
  import "./chunk-A6XUJE5D.js";
26
33
  import "./chunk-P7FMDTKL.js";
27
34
  import "./chunk-VS2IYZRU.js";
28
35
  import "./chunk-ZPQVJEVQ.js";
29
36
  import "./chunk-4DJQYKMN.js";
37
+ import "./chunk-EYIEWJNI.js";
30
38
  import "./chunk-JUC24CTX.js";
31
39
  import "./chunk-NU3CSQ4H.js";
32
40
  import "./chunk-ZBJMUXZH.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remnic/core",
3
- "version": "9.3.693",
3
+ "version": "9.3.695",
4
4
  "description": "Framework-agnostic Remnic memory engine — orchestrator, storage, extraction, search, trust zones",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -2941,7 +2941,7 @@
2941
2941
  "core"
2942
2942
  ],
2943
2943
  "peerDependencies": {
2944
- "@remnic/coding-graph": "^9.3.693"
2944
+ "@remnic/coding-graph": "^9.3.695"
2945
2945
  },
2946
2946
  "peerDependenciesMeta": {
2947
2947
  "@remnic/coding-graph": {
@@ -36,6 +36,23 @@ export type OperationName =
36
36
  | "memory_store"
37
37
  | "coding_decision"
38
38
  | "coding_architecture"
39
+ // codegraph parity tools (issue #1554) -- each maps to one codegraph_*
40
+ // boundary operation that delegates to the surface handler in
41
+ // coding/codegraph-surfaces.ts. Names match the external tool suffixes.
42
+ | "codegraph_index"
43
+ | "codegraph_list_projects"
44
+ | "codegraph_delete_project"
45
+ | "codegraph_index_status"
46
+ | "codegraph_search_graph"
47
+ | "codegraph_trace_path"
48
+ | "codegraph_detect_changes"
49
+ | "codegraph_query_graph"
50
+ | "codegraph_get_schema"
51
+ | "codegraph_get_snippet"
52
+ | "codegraph_get_architecture"
53
+ | "codegraph_search_code"
54
+ | "codegraph_manage_adr"
55
+ | "codegraph_ingest_traces"
39
56
  | "coding_delta";
40
57
 
41
58
  // ---------------------------------------------------------------------------
@@ -317,6 +317,7 @@ export class EngramAccessHttpServer {
317
317
  emitLegacyTools: options.emitLegacyTools,
318
318
  codingDecisionVisible: this.service.decisionRecordSurfaceVisible,
319
319
  architectureCardVisible: this.service.architectureCardSurfaceVisible,
320
+ codegraphVisible: this.service.codegraphSurfaceVisible,
320
321
  sessionDeltaVisible: this.service.sessionDeltaSurfaceVisible,
321
322
  });
322
323
  }
@@ -2268,6 +2269,20 @@ export class EngramAccessHttpServer {
2268
2269
  const codingArchitectureWrite =
2269
2270
  (toolName === "engram.coding_architecture" || toolName === "remnic.coding_architecture") &&
2270
2271
  toolArgsSubcommand === "refresh";
2272
+ // codegraph parity tools (issue #1554): only mutating tools count as
2273
+ // writes — index, delete_project, ingest_traces, and manage_adr
2274
+ // (record|supersede). Read-only tools (search_graph, get_schema,
2275
+ // list_projects, etc.) must NOT hit the write quota.
2276
+ const CODEGRAPH_WRITE_TOOLS = new Set([
2277
+ "engram.codegraph_index", "remnic.codegraph_index",
2278
+ "engram.codegraph_delete_project", "remnic.codegraph_delete_project",
2279
+ "engram.codegraph_ingest_traces", "remnic.codegraph_ingest_traces",
2280
+ ]);
2281
+ const isCodegraphManageAdr =
2282
+ toolName === "engram.codegraph_manage_adr" || toolName === "remnic.codegraph_manage_adr";
2283
+ const codegraphWrite =
2284
+ CODEGRAPH_WRITE_TOOLS.has(toolName) ||
2285
+ (isCodegraphManageAdr && (toolArgsSubcommand === "record" || toolArgsSubcommand === "supersede"));
2271
2286
  const isMcpWrite =
2272
2287
  request.method === "tools/call" &&
2273
2288
  (
@@ -2297,7 +2312,8 @@ export class EngramAccessHttpServer {
2297
2312
  )
2298
2313
  ) ||
2299
2314
  codingDecisionWrite ||
2300
- codingArchitectureWrite
2315
+ codingArchitectureWrite ||
2316
+ codegraphWrite
2301
2317
  );
2302
2318
  if (isMcpWrite) {
2303
2319
  this.ensureWriteRateLimitAvailable();
@@ -2320,8 +2336,16 @@ export class EngramAccessHttpServer {
2320
2336
  if (isMcpWrite && response !== null) {
2321
2337
  const result = (response as Record<string, unknown>).result as Record<string, unknown> | undefined;
2322
2338
  const isError = result?.isError === true;
2323
- const structured = result?.structuredContent as { dryRun?: boolean; idempotencyReplay?: boolean } | undefined;
2324
- if (!isError && structured && this.shouldCountWriteRateLimit(structured)) {
2339
+ const structured = result?.structuredContent as
2340
+ | { dryRun?: boolean; idempotencyReplay?: boolean; ok?: boolean }
2341
+ | undefined;
2342
+ // Rejected codegraph calls carry { ok: false } in structuredContent
2343
+ // (confirm_required, package_missing, runtime_unavailable, ...). The
2344
+ // MCP layer sets isError:false for these, so without this guard they
2345
+ // would consume the write quota despite no mutation occurring
2346
+ // (issue #1554 review thread: don't bill rejected calls as writes).
2347
+ const isRejectedCodegraph = structured?.ok === false;
2348
+ if (!isError && !isRejectedCodegraph && structured && this.shouldCountWriteRateLimit(structured)) {
2325
2349
  this.recordWriteRateLimitHit();
2326
2350
  }
2327
2351
  }
package/src/access-mcp.ts CHANGED
@@ -111,6 +111,21 @@ const MCP_MIGRATED_OPERATIONS: Readonly<Record<string, OperationName>> = {
111
111
  "engram.memory_store": "memory_store",
112
112
  "engram.coding_decision": "coding_decision",
113
113
  "engram.coding_architecture": "coding_architecture",
114
+ // codegraph parity tools (issue #1554) — each maps to its boundary op.
115
+ "engram.codegraph_index": "codegraph_index",
116
+ "engram.codegraph_list_projects": "codegraph_list_projects",
117
+ "engram.codegraph_delete_project": "codegraph_delete_project",
118
+ "engram.codegraph_index_status": "codegraph_index_status",
119
+ "engram.codegraph_search_graph": "codegraph_search_graph",
120
+ "engram.codegraph_trace_path": "codegraph_trace_path",
121
+ "engram.codegraph_detect_changes": "codegraph_detect_changes",
122
+ "engram.codegraph_query_graph": "codegraph_query_graph",
123
+ "engram.codegraph_get_schema": "codegraph_get_schema",
124
+ "engram.codegraph_get_snippet": "codegraph_get_snippet",
125
+ "engram.codegraph_get_architecture": "codegraph_get_architecture",
126
+ "engram.codegraph_search_code": "codegraph_search_code",
127
+ "engram.codegraph_manage_adr": "codegraph_manage_adr",
128
+ "engram.codegraph_ingest_traces": "codegraph_ingest_traces",
114
129
  "engram.coding_delta": "coding_delta",
115
130
  };
116
131
 
@@ -332,6 +347,12 @@ export class EngramMcpServer {
332
347
  * (issue #1548 Track A PR 3, rule 39).
333
348
  */
334
349
  private readonly architectureCardVisible: boolean;
350
+ /**
351
+ * Whether the 14 codegraph parity tools should appear in `tools/list`
352
+ * (issue #1554). Config-only -- runtime availability is checked at call
353
+ * time. When false the tools array is byte-identical to pre-feature.
354
+ */
355
+ private readonly codegraphVisible: boolean;
335
356
  private readonly sessionDeltaVisible: boolean;
336
357
 
337
358
  constructor(
@@ -343,6 +364,7 @@ export class EngramMcpServer {
343
364
  emitLegacyTools?: boolean;
344
365
  codingDecisionVisible?: boolean;
345
366
  architectureCardVisible?: boolean;
367
+ codegraphVisible?: boolean;
346
368
  sessionDeltaVisible?: boolean;
347
369
  } = {},
348
370
  ) {
@@ -351,6 +373,7 @@ export class EngramMcpServer {
351
373
  this.emitLegacyTools = options.emitLegacyTools !== false;
352
374
  this.codingDecisionVisible = options.codingDecisionVisible === true;
353
375
  this.architectureCardVisible = options.architectureCardVisible === true;
376
+ this.codegraphVisible = options.codegraphVisible === true;
354
377
  this.sessionDeltaVisible = options.sessionDeltaVisible === true;
355
378
  this.authenticatedPrincipal =
356
379
  options.principal?.trim() ||
@@ -2037,6 +2060,70 @@ export class EngramMcpServer {
2037
2060
  );
2038
2061
  this.tools = [...this.tools, ...architectureTools];
2039
2062
  }
2063
+ if (this.codegraphVisible) {
2064
+ // The 14 codegraph parity tools (issue #1554). Each delegates to its
2065
+ // boundary operation; the MCP dispatch injects the `tool` field from
2066
+ // the operation name. The inputSchema is intentionally permissive —
2067
+ // the boundary's zod schema owns validation (rule 51).
2068
+ const codegraphToolDefs: Array<{ suffix: string; description: string; required?: string[] }> = [
2069
+ { suffix: "index", description: "Index a repository into the code graph.", required: ["repoRoot"] },
2070
+ { suffix: "list_projects", description: "List code graph projects for the principal." },
2071
+ { suffix: "delete_project", description: "Delete a code graph project (requires confirm: true).", required: ["confirm"] },
2072
+ { suffix: "index_status", description: "Get the indexing status for a project." },
2073
+ { suffix: "search_graph", description: "Search the code graph for symbols.", required: ["query"] },
2074
+ { suffix: "trace_path", description: "Trace call/dependency paths from a starting symbol.", required: ["start"] },
2075
+ { suffix: "detect_changes", description: "Detect changed symbols since a git ref.", required: ["head"] },
2076
+ { suffix: "query_graph", description: "Run a structured query against the code graph.", required: ["structuredQuery"] },
2077
+ { suffix: "get_schema", description: "Get the code graph schema statistics." },
2078
+ { suffix: "get_snippet", description: "Get a source code snippet for a symbol.", required: ["qualifiedName"] },
2079
+ { suffix: "get_architecture", description: "Get the composed architecture card + graph stats." },
2080
+ { suffix: "search_code", description: "Search the code graph for code (functions, classes, methods).", required: ["query"] },
2081
+ { suffix: "manage_adr", description: "Manage ADRs via Track A decision records (list, get, record, supersede).", required: ["subcommand"] },
2082
+ { suffix: "ingest_traces", description: "Ingest call-site traces to upgrade edge confidence.", required: ["traces"] },
2083
+ ];
2084
+ for (const def of codegraphToolDefs) {
2085
+ const tools = withToolAliases(
2086
+ {
2087
+ name: `engram.codegraph_${def.suffix}`,
2088
+ description: def.description,
2089
+ inputSchema: {
2090
+ type: "object",
2091
+ properties: {
2092
+ sessionKey: { type: "string", description: "Session identifier whose coding context scopes the operation." },
2093
+ project: { type: "string", description: "Explicit project id (defaults to session coding context)." },
2094
+ principal: { type: "string", description: "Authenticated principal override." },
2095
+ query: { type: "string" },
2096
+ limit: { type: "number" },
2097
+ start: { type: "string" },
2098
+ direction: { type: "string", enum: ["inbound", "outbound", "both"] },
2099
+ depth: { type: "number" },
2100
+ qualifiedName: { type: "string" },
2101
+ path: { type: "string" },
2102
+ structuredQuery: { type: "object" },
2103
+ head: { type: "string" },
2104
+ repoRoot: { type: "string" },
2105
+ mode: { type: "string", enum: ["auto", "full", "incremental"] },
2106
+ confirm: { type: "boolean" },
2107
+ subcommand: { type: "string", enum: ["list", "get", "record", "supersede"] },
2108
+ id: { type: "string" },
2109
+ title: { type: "string" },
2110
+ status: { type: "string", enum: ["proposed", "accepted", "superseded", "rejected"] },
2111
+ context: { type: "string" },
2112
+ decision: { type: "string" },
2113
+ consequences: { type: "string" },
2114
+ entityRefs: { type: "array", items: { type: "string" } },
2115
+ supersedesId: { type: "string" },
2116
+ traces: { type: "array", items: { type: "object" } },
2117
+ },
2118
+ required: def.required ?? [],
2119
+ additionalProperties: false,
2120
+ },
2121
+ },
2122
+ this.emitLegacyTools,
2123
+ );
2124
+ this.tools = [...this.tools, ...tools];
2125
+ }
2126
+ }
2040
2127
  if (this.sessionDeltaVisible) {
2041
2128
  const deltaTools = withToolAliases(
2042
2129
  {
@@ -2423,8 +2510,18 @@ export class EngramMcpServer {
2423
2510
  if (!op) {
2424
2511
  throw new EngramAccessInputError(`access-boundary: operation not registered: ${migrated}`);
2425
2512
  }
2426
- const envelope =
2427
- migrated === "memory_store" ? parseMcpRequest("memoryStore", args) : args;
2513
+ let envelope: Record<string, unknown>;
2514
+ if (migrated === "memory_store") {
2515
+ envelope = parseMcpRequest("memoryStore", args);
2516
+ } else if (migrated.startsWith("codegraph_")) {
2517
+ // codegraph parity tools (issue #1554): the surface handler dispatches
2518
+ // on the `tool` field. The MCP tool name encodes it (e.g.
2519
+ // codegraph_search_graph → tool: "search_graph"); inject it so the
2520
+ // client payload does not need to carry the internal dispatch field.
2521
+ envelope = { ...args, tool: migrated.slice("codegraph_".length) };
2522
+ } else {
2523
+ envelope = args;
2524
+ }
2428
2525
  // The registry erases In/Out at the Map boundary; the caller knows the
2429
2526
  // concrete output shape ({ result: <service response> }) so the cast is
2430
2527
  // the type-erasure seam, not a leap of faith.