@remnic/core 9.3.712 → 9.3.714

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 (328) hide show
  1. package/dist/access-boundary.d.ts +6 -6
  2. package/dist/access-boundary.js +17 -16
  3. package/dist/access-cli.js +40 -39
  4. package/dist/access-cli.js.map +1 -1
  5. package/dist/access-http.d.ts +5 -5
  6. package/dist/access-http.js +24 -23
  7. package/dist/access-mcp.d.ts +18 -5
  8. package/dist/access-mcp.js +21 -20
  9. package/dist/access-operations-batch.js +18 -17
  10. package/dist/access-operations.d.ts +6 -5
  11. package/dist/access-operations.js +20 -19
  12. package/dist/access-schema.d.ts +10 -0
  13. package/dist/access-schema.js +1 -1
  14. package/dist/{access-service-Dx2rSJjH.d.ts → access-service-lddjZoRh.d.ts} +20 -5
  15. package/dist/access-service.d.ts +5 -5
  16. package/dist/access-service.js +16 -15
  17. package/dist/access-surface-catalog.d.ts +5 -5
  18. package/dist/access-surface-catalog.js +6 -1
  19. package/dist/access-surface-catalog.js.map +1 -1
  20. package/dist/action-confidence.d.ts +1 -1
  21. package/dist/active-memory-bridge.d.ts +3 -1
  22. package/dist/active-memory-bridge.js +2 -1
  23. package/dist/active-recall.d.ts +1 -1
  24. package/dist/active-recall.js +4 -3
  25. package/dist/active-recall.js.map +1 -1
  26. package/dist/adapters/index.js +4 -4
  27. package/dist/adapters/registry.js +2 -2
  28. package/dist/behavior-learner.d.ts +1 -1
  29. package/dist/behavior-signals.d.ts +1 -1
  30. package/dist/bootstrap.d.ts +4 -4
  31. package/dist/briefing.d.ts +1 -1
  32. package/dist/briefing.js +8 -7
  33. package/dist/buffer-surprise-report.d.ts +1 -1
  34. package/dist/buffer.d.ts +1 -1
  35. package/dist/calibration.d.ts +1 -1
  36. package/dist/capabilities.d.ts +1 -1
  37. package/dist/{catalog-CadPvH29.d.ts → catalog-CbR0CsUw.d.ts} +1 -1
  38. package/dist/causal-behavior.d.ts +1 -1
  39. package/dist/causal-consolidation.d.ts +1 -1
  40. package/dist/causal-consolidation.js +9 -8
  41. package/dist/causal-consolidation.js.map +1 -1
  42. package/dist/{chunk-OMSTU233.js → chunk-2KAYTPPT.js} +4 -4
  43. package/dist/{chunk-VYZNWH4J.js → chunk-2SXMCQEQ.js} +3 -3
  44. package/dist/{chunk-NXL5CVE7.js → chunk-2Y6LMOQQ.js} +2 -2
  45. package/dist/{chunk-AMXOCZHE.js → chunk-3VUPWDSE.js} +15 -3
  46. package/dist/{chunk-AMXOCZHE.js.map → chunk-3VUPWDSE.js.map} +1 -1
  47. package/dist/{chunk-FVQJYWH7.js → chunk-5GKPFL3S.js} +1 -1
  48. package/dist/{chunk-FVQJYWH7.js.map → chunk-5GKPFL3S.js.map} +1 -1
  49. package/dist/{chunk-LQ4J7ELC.js → chunk-67HG7KFE.js} +2 -2
  50. package/dist/{chunk-ZBG4K36I.js → chunk-6FUJ2VYY.js} +3 -3
  51. package/dist/{chunk-GMRNKPWO.js → chunk-6QUPUTT7.js} +2 -2
  52. package/dist/{chunk-Z56IHRVV.js → chunk-6UU43ZGD.js} +2 -2
  53. package/dist/{chunk-APJQ6UEA.js → chunk-AGNBY3VG.js} +4 -4
  54. package/dist/{chunk-OWOKOFXK.js → chunk-AJOIM6UR.js} +2 -2
  55. package/dist/{chunk-JBPKEARU.js → chunk-AU7Q3LSC.js} +4 -4
  56. package/dist/{chunk-YVWZW37D.js → chunk-BNOAB5HH.js} +62 -12
  57. package/dist/{chunk-YVWZW37D.js.map → chunk-BNOAB5HH.js.map} +1 -1
  58. package/dist/{chunk-A2R5NV6O.js → chunk-CTAHKIG6.js} +205 -29
  59. package/dist/chunk-CTAHKIG6.js.map +1 -0
  60. package/dist/{chunk-K22IJO4R.js → chunk-CTOQEZSN.js} +2 -2
  61. package/dist/{chunk-SINGJCUR.js → chunk-CX77GNMB.js} +14 -3
  62. package/dist/chunk-CX77GNMB.js.map +1 -0
  63. package/dist/{chunk-HSDJCT3V.js → chunk-DXGS5YOQ.js} +3 -3
  64. package/dist/{chunk-HV57RHMD.js → chunk-EH5ED3C6.js} +2 -2
  65. package/dist/{chunk-NUWZFSKC.js → chunk-FVZ2ISIX.js} +9 -1
  66. package/dist/chunk-FVZ2ISIX.js.map +1 -0
  67. package/dist/{chunk-GKPIY7EQ.js → chunk-FXZKXW7C.js} +117 -46
  68. package/dist/chunk-FXZKXW7C.js.map +1 -0
  69. package/dist/{chunk-7NDYFAJS.js → chunk-GM3BMWKR.js} +2 -2
  70. package/dist/{chunk-ZVDRL6SK.js → chunk-HHLWSWWF.js} +2 -2
  71. package/dist/chunk-HHLWSWWF.js.map +1 -0
  72. package/dist/{chunk-5QUS24F7.js → chunk-I56LKMF7.js} +2 -2
  73. package/dist/{chunk-Z3B2YW56.js → chunk-IHMT6XTY.js} +9 -5
  74. package/dist/chunk-IHMT6XTY.js.map +1 -0
  75. package/dist/chunk-JAKIDQB2.js +173 -0
  76. package/dist/chunk-JAKIDQB2.js.map +1 -0
  77. package/dist/{chunk-35YJ6KCV.js → chunk-JEIROMLX.js} +2 -2
  78. package/dist/{chunk-SKQCFAYU.js → chunk-JVEMUX6L.js} +2 -2
  79. package/dist/{chunk-CXMXAC5R.js → chunk-K44MIN6D.js} +3 -3
  80. package/dist/{chunk-5KQCOIPW.js → chunk-MECU6WSH.js} +188 -31
  81. package/dist/chunk-MECU6WSH.js.map +1 -0
  82. package/dist/{chunk-BQCFXAMN.js → chunk-MPHDVHIB.js} +2 -2
  83. package/dist/{chunk-BOGENF7P.js → chunk-MSVSP5VO.js} +1 -1
  84. package/dist/chunk-MSVSP5VO.js.map +1 -0
  85. package/dist/{chunk-QXNFQKWU.js → chunk-MTHNJCOJ.js} +2 -2
  86. package/dist/{chunk-3TCRU4JA.js → chunk-O62P2LFL.js} +2 -2
  87. package/dist/{chunk-JSDZMOT7.js → chunk-OC56UWV5.js} +11 -11
  88. package/dist/{chunk-7IBEWQLG.js → chunk-QOIONSOI.js} +2 -2
  89. package/dist/{chunk-4P5UAL3C.js → chunk-RBHANGVX.js} +6 -6
  90. package/dist/{chunk-SK2CR6MW.js → chunk-RVLB4E6N.js} +2 -2
  91. package/dist/{chunk-I3BT2IDW.js → chunk-SYDHFFAW.js} +1110 -28
  92. package/dist/chunk-SYDHFFAW.js.map +1 -0
  93. package/dist/{chunk-VILEUJXC.js → chunk-UC4YOAC2.js} +74 -2
  94. package/dist/{chunk-VILEUJXC.js.map → chunk-UC4YOAC2.js.map} +1 -1
  95. package/dist/{chunk-CNVIWMQI.js → chunk-UY4JMEAK.js} +2 -2
  96. package/dist/{chunk-S6FQLQGH.js → chunk-V7GDTQ6I.js} +2 -2
  97. package/dist/{chunk-JNOYYWCA.js → chunk-VO4UICII.js} +3 -3
  98. package/dist/{chunk-54TI5GLV.js → chunk-WI4QX7GH.js} +3 -3
  99. package/dist/{chunk-3XHD3XGK.js → chunk-XCTDHF7U.js} +30 -2
  100. package/dist/chunk-XCTDHF7U.js.map +1 -0
  101. package/dist/{chunk-XKU4YE6Z.js → chunk-XZTUMWKQ.js} +2 -2
  102. package/dist/{cli-DTWRoJEI.d.ts → cli-iAiVkbYJ.d.ts} +3 -3
  103. package/dist/cli.d.ts +6 -6
  104. package/dist/cli.js +43 -42
  105. package/dist/compounding/engine.d.ts +1 -1
  106. package/dist/compounding/engine.js +8 -7
  107. package/dist/compounding/preference-consolidator.d.ts +1 -1
  108. package/dist/compression-optimizer.d.ts +1 -1
  109. package/dist/config.d.ts +1 -1
  110. package/dist/config.js +4 -3
  111. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  112. package/dist/connectors/codex-materialize-runner.js +8 -7
  113. package/dist/connectors/codex-materialize.d.ts +1 -1
  114. package/dist/connectors/index.d.ts +1 -1
  115. package/dist/connectors/index.js +9 -8
  116. package/dist/consolidation-provenance-check.d.ts +1 -1
  117. package/dist/consolidation-undo.d.ts +1 -1
  118. package/dist/contradiction/index.d.ts +1 -1
  119. package/dist/conversation-index/backend.d.ts +1 -1
  120. package/dist/conversation-index/chunker.d.ts +1 -1
  121. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  122. package/dist/conversation-index/indexer.d.ts +1 -1
  123. package/dist/conversation-index/search.d.ts +1 -1
  124. package/dist/day-summary.d.ts +1 -1
  125. package/dist/delinearize.d.ts +1 -1
  126. package/dist/direct-answer-wiring.d.ts +1 -1
  127. package/dist/direct-answer.d.ts +1 -1
  128. package/dist/embedding-fallback.d.ts +1 -1
  129. package/dist/enrichment/index.d.ts +1 -1
  130. package/dist/entity-retrieval.d.ts +1 -1
  131. package/dist/entity-retrieval.js +8 -7
  132. package/dist/entity-schema.d.ts +1 -1
  133. package/dist/explicit-capture.d.ts +4 -4
  134. package/dist/explicit-capture.js +3 -2
  135. package/dist/extraction-faithfulness.d.ts +1 -1
  136. package/dist/extraction-judge-telemetry.d.ts +1 -1
  137. package/dist/extraction-judge-training.d.ts +1 -1
  138. package/dist/extraction-judge.d.ts +1 -1
  139. package/dist/extraction.d.ts +1 -1
  140. package/dist/extraction.js +4 -3
  141. package/dist/fallback-llm.d.ts +1 -1
  142. package/dist/identity-continuity.d.ts +1 -1
  143. package/dist/importance.d.ts +1 -1
  144. package/dist/index.d.ts +9 -9
  145. package/dist/index.js +62 -61
  146. package/dist/index.js.map +1 -1
  147. package/dist/intent.d.ts +1 -1
  148. package/dist/lcm/engine.d.ts +1 -1
  149. package/dist/lcm/index.d.ts +1 -1
  150. package/dist/lcm/index.js +3 -3
  151. package/dist/lcm/tools.d.ts +1 -1
  152. package/dist/lifecycle.d.ts +1 -1
  153. package/dist/live-connectors-runner.d.ts +1 -1
  154. package/dist/local-llm.d.ts +1 -1
  155. package/dist/maintenance/memory-governance.d.ts +1 -1
  156. package/dist/maintenance/memory-governance.js +8 -7
  157. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +8 -7
  158. package/dist/maintenance/rebuild-memory-projection.js +9 -8
  159. package/dist/mcp-memory-inspector-app.d.ts +5 -5
  160. package/dist/memory-action-policy.d.ts +1 -1
  161. package/dist/memory-cache.d.ts +1 -1
  162. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  163. package/dist/memory-projection-store.d.ts +1 -1
  164. package/dist/memory-provenance.d.ts +1 -1
  165. package/dist/memory-worth-outcomes.d.ts +1 -1
  166. package/dist/models-json.d.ts +1 -1
  167. package/dist/namespaces/migrate.d.ts +2 -2
  168. package/dist/namespaces/migrate.js +12 -11
  169. package/dist/namespaces/principal.d.ts +1 -1
  170. package/dist/namespaces/search.d.ts +1 -1
  171. package/dist/namespaces/search.js +3 -3
  172. package/dist/namespaces/storage.d.ts +2 -2
  173. package/dist/namespaces/storage.js +8 -7
  174. package/dist/native-knowledge.d.ts +1 -1
  175. package/dist/operator-toolkit.d.ts +1 -1
  176. package/dist/operator-toolkit.js +17 -16
  177. package/dist/orchestration/maintenance.d.ts +2 -2
  178. package/dist/orchestration/maintenance.js +10 -9
  179. package/dist/{orchestrator-B1iVjEyc.d.ts → orchestrator-iVZWi8aW.d.ts} +21 -4
  180. package/dist/orchestrator.d.ts +4 -4
  181. package/dist/orchestrator.js +32 -31
  182. package/dist/patterns-cli.d.ts +1 -1
  183. package/dist/policy-runtime.d.ts +1 -1
  184. package/dist/provenance.d.ts +1 -1
  185. package/dist/provenance.js +3 -2
  186. package/dist/qmd-recall-cache.d.ts +1 -1
  187. package/dist/qmd.d.ts +1 -1
  188. package/dist/recall-disclosure-escalation.d.ts +1 -1
  189. package/dist/recall-explain-renderer.d.ts +1 -1
  190. package/dist/recall-explain-renderer.js +3 -3
  191. package/dist/recall-handles.d.ts +228 -0
  192. package/dist/recall-handles.js +42 -0
  193. package/dist/recall-handles.js.map +1 -0
  194. package/dist/recall-planner-llm.d.ts +1 -1
  195. package/dist/recall-state.d.ts +40 -2
  196. package/dist/recall-state.js +3 -1
  197. package/dist/recall-tag-filter.d.ts +1 -1
  198. package/dist/recall-xray-cli.d.ts +1 -1
  199. package/dist/recall-xray-cli.js +4 -4
  200. package/dist/recall-xray-renderer.d.ts +1 -1
  201. package/dist/recall-xray-renderer.js +3 -3
  202. package/dist/recall-xray.d.ts +1 -1
  203. package/dist/recall-xray.js +2 -2
  204. package/dist/resolve-auth-token.d.ts +1 -1
  205. package/dist/resume-bundles.js +5 -4
  206. package/dist/retrieval-agents.d.ts +1 -1
  207. package/dist/retrieval-tiers.d.ts +1 -1
  208. package/dist/routing/engine.d.ts +1 -1
  209. package/dist/routing/store.d.ts +1 -1
  210. package/dist/sanitize.d.ts +2 -0
  211. package/dist/sanitize.js +6 -2
  212. package/dist/search/embed-helper.d.ts +1 -1
  213. package/dist/search/factory.d.ts +1 -1
  214. package/dist/search/factory.js +2 -2
  215. package/dist/search/index.d.ts +1 -1
  216. package/dist/search/index.js +4 -4
  217. package/dist/search/lancedb-backend.d.ts +1 -1
  218. package/dist/search/meilisearch-backend.d.ts +1 -1
  219. package/dist/search/noop-backend.d.ts +1 -1
  220. package/dist/search/orama-backend.d.ts +1 -1
  221. package/dist/search/port.d.ts +1 -1
  222. package/dist/search/remote-backend.d.ts +1 -1
  223. package/dist/{semantic-consolidation-CY8uVRNJ.d.ts → semantic-consolidation-DSjMDZ1u.d.ts} +1 -1
  224. package/dist/semantic-consolidation.d.ts +2 -2
  225. package/dist/semantic-consolidation.js +9 -8
  226. package/dist/semantic-rule-promotion.js +8 -7
  227. package/dist/semantic-rule-verifier.d.ts +1 -1
  228. package/dist/semantic-rule-verifier.js +8 -7
  229. package/dist/session-observer-bands.d.ts +1 -1
  230. package/dist/session-observer-state.d.ts +1 -1
  231. package/dist/shared-context/manager.d.ts +3 -3
  232. package/dist/signal.d.ts +1 -1
  233. package/dist/storage.d.ts +1 -1
  234. package/dist/storage.js +7 -6
  235. package/dist/summarizer.d.ts +1 -1
  236. package/dist/summary-snapshot.d.ts +1 -1
  237. package/dist/temporal-supersession.d.ts +1 -1
  238. package/dist/temporal-validity.d.ts +1 -1
  239. package/dist/threading.d.ts +1 -1
  240. package/dist/tier-migration.d.ts +1 -1
  241. package/dist/tier-routing.d.ts +1 -1
  242. package/dist/topics.d.ts +1 -1
  243. package/dist/transcript.d.ts +1 -1
  244. package/dist/transfer/import-sqlite.js +2 -2
  245. package/dist/{types-Dr0Cw3L9.d.ts → types-D9dwzU_x.d.ts} +25 -1
  246. package/dist/types.d.ts +1 -1
  247. package/dist/types.js +1 -1
  248. package/dist/utility-runtime.d.ts +1 -1
  249. package/dist/verified-recall.js +8 -7
  250. package/package.json +2 -2
  251. package/src/access-boundary.ts +4 -1
  252. package/src/access-http.ts +78 -20
  253. package/src/access-mcp.test.ts +29 -0
  254. package/src/access-mcp.ts +99 -17
  255. package/src/access-operations-batch.ts +14 -0
  256. package/src/access-operations.ts +5 -0
  257. package/src/access-schema.ts +8 -0
  258. package/src/access-service-observe-idempotency.test.ts +308 -0
  259. package/src/access-service.ts +106 -5
  260. package/src/access-surface-catalog.test.ts +4 -2
  261. package/src/access-surface-catalog.ts +5 -0
  262. package/src/active-memory-bridge.test.ts +72 -0
  263. package/src/active-memory-bridge.ts +21 -2
  264. package/src/chat/chat-cli.test.ts +142 -0
  265. package/src/chat/chat-cli.ts +206 -0
  266. package/src/chat/chat-config.ts +57 -0
  267. package/src/chat/chat-engine.test.ts +272 -0
  268. package/src/chat/chat-engine.ts +518 -0
  269. package/src/chat/chat-executor.ts +133 -0
  270. package/src/chat/chat-factory.ts +161 -0
  271. package/src/chat/chat-http.test.ts +197 -0
  272. package/src/chat/chat-http.ts +222 -0
  273. package/src/chat/chat-llm.ts +229 -0
  274. package/src/chat/chat-mcp.test.ts +135 -0
  275. package/src/chat/chat-security.test.ts +491 -0
  276. package/src/chat/chat-session.ts +296 -0
  277. package/src/chat/chat-system-prompt.ts +76 -0
  278. package/src/chat/chat-tools.ts +255 -0
  279. package/src/chat/chat-types.ts +167 -0
  280. package/src/cli.ts +20 -0
  281. package/src/config.ts +9 -0
  282. package/src/orchestrator.ts +106 -5
  283. package/src/recall-handles-wiring.test.ts +477 -0
  284. package/src/recall-handles.test.ts +283 -0
  285. package/src/recall-handles.ts +414 -0
  286. package/src/recall-state.ts +99 -0
  287. package/src/sanitize.ts +6 -0
  288. package/src/types.ts +29 -0
  289. package/dist/chunk-3XHD3XGK.js.map +0 -1
  290. package/dist/chunk-5KQCOIPW.js.map +0 -1
  291. package/dist/chunk-A2R5NV6O.js.map +0 -1
  292. package/dist/chunk-BOGENF7P.js.map +0 -1
  293. package/dist/chunk-GKPIY7EQ.js.map +0 -1
  294. package/dist/chunk-I3BT2IDW.js.map +0 -1
  295. package/dist/chunk-NUWZFSKC.js.map +0 -1
  296. package/dist/chunk-SINGJCUR.js.map +0 -1
  297. package/dist/chunk-Z3B2YW56.js.map +0 -1
  298. package/dist/chunk-ZVDRL6SK.js.map +0 -1
  299. /package/dist/{chunk-OMSTU233.js.map → chunk-2KAYTPPT.js.map} +0 -0
  300. /package/dist/{chunk-VYZNWH4J.js.map → chunk-2SXMCQEQ.js.map} +0 -0
  301. /package/dist/{chunk-NXL5CVE7.js.map → chunk-2Y6LMOQQ.js.map} +0 -0
  302. /package/dist/{chunk-LQ4J7ELC.js.map → chunk-67HG7KFE.js.map} +0 -0
  303. /package/dist/{chunk-ZBG4K36I.js.map → chunk-6FUJ2VYY.js.map} +0 -0
  304. /package/dist/{chunk-GMRNKPWO.js.map → chunk-6QUPUTT7.js.map} +0 -0
  305. /package/dist/{chunk-Z56IHRVV.js.map → chunk-6UU43ZGD.js.map} +0 -0
  306. /package/dist/{chunk-APJQ6UEA.js.map → chunk-AGNBY3VG.js.map} +0 -0
  307. /package/dist/{chunk-OWOKOFXK.js.map → chunk-AJOIM6UR.js.map} +0 -0
  308. /package/dist/{chunk-JBPKEARU.js.map → chunk-AU7Q3LSC.js.map} +0 -0
  309. /package/dist/{chunk-K22IJO4R.js.map → chunk-CTOQEZSN.js.map} +0 -0
  310. /package/dist/{chunk-HSDJCT3V.js.map → chunk-DXGS5YOQ.js.map} +0 -0
  311. /package/dist/{chunk-HV57RHMD.js.map → chunk-EH5ED3C6.js.map} +0 -0
  312. /package/dist/{chunk-7NDYFAJS.js.map → chunk-GM3BMWKR.js.map} +0 -0
  313. /package/dist/{chunk-5QUS24F7.js.map → chunk-I56LKMF7.js.map} +0 -0
  314. /package/dist/{chunk-35YJ6KCV.js.map → chunk-JEIROMLX.js.map} +0 -0
  315. /package/dist/{chunk-SKQCFAYU.js.map → chunk-JVEMUX6L.js.map} +0 -0
  316. /package/dist/{chunk-CXMXAC5R.js.map → chunk-K44MIN6D.js.map} +0 -0
  317. /package/dist/{chunk-BQCFXAMN.js.map → chunk-MPHDVHIB.js.map} +0 -0
  318. /package/dist/{chunk-QXNFQKWU.js.map → chunk-MTHNJCOJ.js.map} +0 -0
  319. /package/dist/{chunk-3TCRU4JA.js.map → chunk-O62P2LFL.js.map} +0 -0
  320. /package/dist/{chunk-JSDZMOT7.js.map → chunk-OC56UWV5.js.map} +0 -0
  321. /package/dist/{chunk-7IBEWQLG.js.map → chunk-QOIONSOI.js.map} +0 -0
  322. /package/dist/{chunk-4P5UAL3C.js.map → chunk-RBHANGVX.js.map} +0 -0
  323. /package/dist/{chunk-SK2CR6MW.js.map → chunk-RVLB4E6N.js.map} +0 -0
  324. /package/dist/{chunk-CNVIWMQI.js.map → chunk-UY4JMEAK.js.map} +0 -0
  325. /package/dist/{chunk-S6FQLQGH.js.map → chunk-V7GDTQ6I.js.map} +0 -0
  326. /package/dist/{chunk-JNOYYWCA.js.map → chunk-VO4UICII.js.map} +0 -0
  327. /package/dist/{chunk-54TI5GLV.js.map → chunk-WI4QX7GH.js.map} +0 -0
  328. /package/dist/{chunk-XKU4YE6Z.js.map → chunk-XZTUMWKQ.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/access-operations-batch.ts"],"sourcesContent":["/**\n * Batch migration of remaining access-surface handlers through the boundary\n * (issue #1525). Each operation routes MCP/HTTP/CLI dispatch through the\n * shared validation + error-mapping layer in access-boundary.ts.\n *\n * Schemas use a null-stripping preprocessor (MCP clients send null for absent\n * optional fields — repo gotcha #2) over a permissive record. Individual\n * schema tightening lands as follow-up PRs; the boundary already centralizes\n * error mapping and enforces \"no handler bypasses the boundary.\"\n */\n\nimport { z } from \"zod\";\nimport { defineOperation, type OperationContext } from \"./access-boundary.js\";\nimport { EngramAccessInputError, type EngramAccessService } from \"./access-service.js\";\nimport type { RecallPlanMode, RecallDisclosure } from \"./types.js\";\nimport { projectTagProjectId } from \"./coding/coding-namespace.js\";\nimport { expandTildePath } from \"./utils/path.js\";\n\n// ---------------------------------------------------------------------------\n// Shared helpers — type-safe extraction from unknown input (no `any`)\n// ---------------------------------------------------------------------------\n\n/** Strip null values from an object (MCP clients send null for absent optionals). */\nfunction stripNulls(data: unknown): unknown {\n if (data !== null && typeof data === \"object\" && !Array.isArray(data)) {\n const obj = data as Record<string, unknown>;\n const cleaned: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(obj)) {\n if (value !== null) cleaned[key] = value;\n }\n return cleaned;\n }\n return data;\n}\n\n/** Permissive schema: null-strip then accept any string-keyed record. */\nconst looseSchema = z.preprocess(\n stripNulls,\n z.record(z.string(), z.unknown()),\n) as z.ZodType<Record<string, unknown>>;\n\nfunction optStr(v: unknown): string | undefined {\n return typeof v === \"string\" ? v : undefined;\n}\nfunction reqStr(v: unknown, field: string): string {\n if (typeof v !== \"string\" || v.length === 0) {\n throw new EngramAccessInputError(`${field} is required and must be a non-empty string`);\n }\n return v;\n}\nfunction defStr(v: unknown, d: string): string {\n return typeof v === \"string\" ? v : d;\n}\nfunction optNum(v: unknown): number | undefined {\n return typeof v === \"number\" && Number.isFinite(v) ? v : undefined;\n}\nfunction optBool(v: unknown): boolean | undefined {\n return typeof v === \"boolean\" ? v : undefined;\n}\nfunction optStrArr(v: unknown): string[] | undefined {\n return Array.isArray(v) && v.every((x) => typeof x === \"string\") ? v : undefined;\n}\n// ===========================================================================\n// Recall operations\n// ===========================================================================\n\ndefineOperation({\n name: \"recall\",\n description: \"Semantic recall across memories.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.recall({\n query: defStr(input.query, \"\"),\n sessionKey: optStr(input.sessionKey),\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n namespace: optStr(input.namespace),\n topK: optNum(input.topK),\n mode: optStr(input.mode) as RecallPlanMode | \"auto\" | undefined,\n includeDebug: input.includeDebug === true,\n disclosure: optStr(input.disclosure) as RecallDisclosure | undefined,\n cwd: optStr(input.cwd),\n projectTag: optStr(input.projectTag),\n asOf: optStr(input.asOf),\n ...(optStrArr(input.tags) !== undefined ? { tags: optStrArr(input.tags)! } : {}),\n ...(optStr(input.tagMatch) !== undefined ? { tagMatch: optStr(input.tagMatch) as \"any\" | \"all\" } : {}),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"recall_explain\",\n description: \"Explain the recall plan for the session.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.recallExplain({\n sessionKey: optStr(input.sessionKey),\n namespace: optStr(input.namespace),\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"set_coding_context\",\n description: \"Set the coding context for a session (issue #569).\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const sessionKey = defStr(input.sessionKey, \"\");\n const projectTag = optStr(input.projectTag);\n const hasProjectTag = projectTag !== undefined && projectTag.trim().length > 0;\n const hasCodingContext = \"codingContext\" in input;\n if (!hasCodingContext && hasProjectTag) {\n const tag = projectTag!.trim();\n const projectId = projectTagProjectId(tag);\n ctx.service.setCodingContext({\n sessionKey,\n codingContext: { projectId, branch: null, rootPath: projectId, defaultBranch: null },\n });\n return { result: { ok: true } };\n }\n if (!hasCodingContext && !hasProjectTag) {\n throw new EngramAccessInputError(\"set_coding_context requires either codingContext or projectTag\");\n }\n const rawCtx = input.codingContext;\n let codingContext: { projectId: string; branch: string | null; rootPath: string; defaultBranch: string | null } | null = null;\n if (rawCtx !== null) {\n if (typeof rawCtx !== \"object\" || rawCtx === undefined) {\n throw new EngramAccessInputError(\"codingContext must be an object or null\");\n }\n const obj = rawCtx as Record<string, unknown>;\n const projectId = defStr(obj.projectId, \"\");\n const rootPath = defStr(obj.rootPath, \"\");\n const branch = obj.branch === null ? null : optStr(obj.branch);\n const defaultBranch = obj.defaultBranch === null ? null : optStr(obj.defaultBranch);\n if (branch === undefined) throw new EngramAccessInputError(\"codingContext.branch must be a string or null\");\n if (defaultBranch === undefined) throw new EngramAccessInputError(\"codingContext.defaultBranch must be a string or null\");\n codingContext = { projectId, branch, rootPath, defaultBranch };\n }\n ctx.service.setCodingContext({ sessionKey, codingContext });\n return { result: { ok: true } };\n },\n});\n\ndefineOperation({\n name: \"recall_tier_explain\",\n description: \"Explain the recall tier breakdown.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const sessionKey = optStr(input.sessionKey);\n const namespace = optStr(input.namespace);\n const result = await ctx.service.recallTierExplain(\n sessionKey !== undefined && sessionKey.length > 0 ? sessionKey : undefined,\n namespace !== undefined && namespace.length > 0 ? namespace : undefined,\n ctx.authenticatedPrincipal,\n );\n return { result };\n },\n});\n\ndefineOperation({\n name: \"recall_xray\",\n description: \"X-ray the recall pipeline for a query.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const budgetRaw = input.budget;\n let budget: number | undefined;\n if (budgetRaw !== undefined && budgetRaw !== null) {\n const parsed = typeof budgetRaw === \"number\" ? budgetRaw : typeof budgetRaw === \"string\" ? Number(budgetRaw) : undefined;\n if (parsed === undefined || !Number.isFinite(parsed) || parsed <= 0 || !Number.isInteger(parsed)) {\n throw new EngramAccessInputError(\"recall_xray: budget expects a positive integer\");\n }\n budget = parsed;\n }\n const disclosureRaw = optStr(input.disclosure);\n const result = await ctx.service.recallXray({\n query: defStr(input.query, \"\"),\n sessionKey: optStr(input.sessionKey),\n namespace: optStr(input.namespace),\n budget,\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n ...(disclosureRaw !== undefined && disclosureRaw !== \"\" ? { disclosure: disclosureRaw as RecallDisclosure } : {}),\n });\n return { result };\n },\n});\n\n// ===========================================================================\n// Wearables + transcript operations\n// ===========================================================================\n\ndefineOperation({\n name: \"wearables_status\",\n description: \"Get wearables sync status.\",\n schema: looseSchema,\n handler: async (_input, ctx) => ({ result: await ctx.service.wearablesStatus() }),\n});\n\ndefineOperation({\n name: \"wearables_sync\",\n description: \"Sync wearables data.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.wearablesSync({\n source: optStr(input.source),\n date: optStr(input.date),\n days: optNum(input.days),\n forceMemories: optBool(input.forceMemories),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"transcript_day\",\n description: \"Get transcript for a specific day.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const date = defStr(input.date, \"\");\n if (date.trim().length === 0) throw new EngramAccessInputError(\"transcript_day: date is required and must be YYYY-MM-DD\");\n const result = await ctx.service.wearablesTranscriptDay({ date, source: optStr(input.source) });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"transcript_search\",\n description: \"Search transcripts.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const query = defStr(input.query, \"\");\n if (query.trim().length === 0) throw new EngramAccessInputError(\"transcript_search: query is required and must be non-empty\");\n const result = await ctx.service.wearablesTranscriptSearch({\n query,\n source: optStr(input.source),\n from: optStr(input.from),\n to: optStr(input.to),\n limit: optNum(input.limit),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"transcript_memories\",\n description: \"Get transcript memories.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.wearablesTranscriptMemories({\n source: optStr(input.source),\n date: optStr(input.date),\n limit: optNum(input.limit),\n });\n return { result };\n },\n});\n\n// ===========================================================================\n// Action confidence, day summary, capsule operations\n// ===========================================================================\n\ndefineOperation({\n name: \"action_confidence\",\n description: \"Get action confidence for recent memories.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.actionConfidence({\n intendedAction: optStr(input.intendedAction),\n confidence: optNum(input.confidence),\n risk: optStr(input.risk) as import(\"./action-confidence.js\").ActionConfidenceRiskCategory | undefined,\n contextReadiness: optStr(input.contextReadiness) as import(\"./action-confidence.js\").ActionConfidenceContextReadiness | undefined,\n currentContextScopes: optStrArr(input.currentContextScopes),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"chatgpt_memory_inspector\",\n description: \"ChatGPT memory inspector (recall xray + action confidence orchestrator).\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const xray = await ctx.service.recallXray({\n query: defStr(input.query, \"\"),\n sessionKey: optStr(input.sessionKey),\n namespace: optStr(input.namespace),\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n });\n const confidence = await ctx.service.actionConfidence({});\n return { result: { xray, confidence } };\n },\n});\n\ndefineOperation({\n name: \"day_summary\",\n description: \"Get a day summary.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.daySummary({\n memories: optStr(input.memories),\n sessionKey: optStr(input.sessionKey),\n namespace: optStr(input.namespace),\n timeZone: optStr(input.timeZone),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"capsule_export\",\n description: \"Export a capsule.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.capsuleExport({\n name: optStr(input.name) ?? \"\",\n namespace: optStr(input.namespace),\n since: optStr(input.since),\n includeKinds: optStrArr(input.includeKinds),\n peerIds: optStrArr(input.peerIds),\n includeTranscripts: optBool(input.includeTranscripts),\n encrypt: optBool(input.encrypt),\n principal: ctx.authenticatedPrincipal,\n } as Parameters<typeof ctx.service.capsuleExport>[0]);\n return { result };\n },\n});\n\ndefineOperation({\n name: \"capsule_import\",\n description: \"Import a capsule.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.capsuleImport({\n archivePath: expandTildePath(optStr(input.archivePath) ?? \"\"),\n namespace: optStr(input.namespace),\n mode: optStr(input.mode) as \"skip\" | \"overwrite\" | \"fork\" | undefined,\n passphrase: optStr(input.passphrase),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"capsule_list\",\n description: \"List capsules.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.capsuleList({\n namespace: optStr(input.namespace),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\n// ===========================================================================\n// Governance, maintenance, procedural operations\n// ===========================================================================\n\ndefineOperation({\n name: \"memory_governance_run\",\n description: \"Run memory governance.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.governanceRun({\n namespace: optStr(input.namespace),\n mode: optStr(input.mode) as \"shadow\" | \"apply\" | undefined,\n recentDays: optNum(input.recentDays),\n maxMemories: optNum(input.maxMemories),\n batchSize: optNum(input.batchSize),\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"procedure_mining_run\",\n description: \"Run procedure mining.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.procedureMiningRun({\n namespace: optStr(input.namespace),\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"pattern_reinforcement_run\",\n description: \"Run pattern reinforcement.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.patternReinforcementRun({\n namespace: optStr(input.namespace),\n force: input.force === true,\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"procedural_stats\",\n description: \"Get procedural stats.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.procedureStats({ namespace: optStr(input.namespace) }, ctx.authenticatedPrincipal);\n return { result };\n },\n});\n\n// ===========================================================================\n// Memory timeline, suggestion, entity, observe, LCM operations\n// ===========================================================================\n\ndefineOperation({\n name: \"memory_timeline\",\n description: \"Get the timeline for a memory.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.memoryTimeline(\n optStr(input.memoryId) ?? \"\",\n optStr(input.namespace),\n optNum(input.limit),\n ctx.authenticatedPrincipal,\n );\n return { result };\n },\n});\n\ndefineOperation({\n name: \"suggestion_submit\",\n description: \"Submit a memory suggestion.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.suggestionSubmit({\n schemaVersion: optNum(input.schemaVersion),\n idempotencyKey: optStr(input.idempotencyKey),\n dryRun: input.dryRun === true,\n sessionKey: optStr(input.sessionKey),\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n content: optStr(input.content) ?? \"\",\n category: optStr(input.category),\n confidence: optNum(input.confidence),\n namespace: optStr(input.namespace),\n tags: optStrArr(input.tags),\n entityRef: optStr(input.entityRef),\n ttl: optStr(input.ttl),\n sourceReason: optStr(input.sourceReason),\n cwd: optStr(input.cwd),\n projectTag: optStr(input.projectTag),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"entity_get\",\n description: \"Get an entity by name.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.entityGet(optStr(input.name) ?? \"\", optStr(input.namespace));\n return { result };\n },\n});\n\ndefineOperation({\n name: \"review_queue_list\",\n description: \"List the review queue.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.reviewQueue(optStr(input.runId) ?? \"\", optStr(input.namespace), ctx.authenticatedPrincipal);\n return { result };\n },\n});\n\ndefineOperation({\n name: \"observe\",\n description: \"Observe messages into the memory system.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const messages = input.messages;\n if (!Array.isArray(messages)) throw new EngramAccessInputError(\"observe: messages must be an array\");\n const result = await ctx.service.observe({\n sessionKey: defStr(input.sessionKey, \"\"),\n messages: messages as unknown as Parameters<typeof ctx.service.observe>[0][\"messages\"],\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n namespace: optStr(input.namespace),\n skipExtraction: input.skipExtraction === true,\n cwd: optStr(input.cwd),\n projectTag: optStr(input.projectTag),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"lcm_search\",\n description: \"Search the LCM (long-context memory).\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.lcmSearch({\n query: defStr(input.query, \"\"),\n sessionKey: optStr(input.sessionKey),\n sessionPrefix: optStr(input.sessionPrefix),\n namespace: optStr(input.namespace),\n limit: optNum(input.limit),\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"lcm_compaction_flush\",\n description: \"Flush LCM compaction.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.lcmCompactionFlush({\n sessionKey: optStr(input.sessionKey) ?? \"\",\n namespace: optStr(input.namespace),\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"lcm_compaction_record\",\n description: \"Record an LCM compaction.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.lcmCompactionRecord({\n sessionKey: optStr(input.sessionKey) ?? \"\",\n namespace: optStr(input.namespace),\n tokensBefore: optNum(input.tokensBefore) ?? 0,\n tokensAfter: optNum(input.tokensAfter) ?? 0,\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\n// ===========================================================================\n// Continuity, identity operations\n// ===========================================================================\n\ndefineOperation({\n name: \"continuity_audit_generate\",\n description: \"Generate a continuity audit.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.continuityAuditGenerate({\n period: optStr(input.period) as \"weekly\" | \"monthly\" | undefined,\n key: optStr(input.key),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"continuity_incident_open\",\n description: \"Open a continuity incident.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.continuityIncidentOpen({\n symptom: optStr(input.symptom) ?? \"\",\n namespace: optStr(input.namespace),\n triggerWindow: optStr(input.triggerWindow),\n suspectedCause: optStr(input.suspectedCause),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"continuity_incident_close\",\n description: \"Close a continuity incident.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.continuityIncidentClose({\n id: optStr(input.id) ?? \"\",\n namespace: optStr(input.namespace),\n fixApplied: optStr(input.fixApplied) ?? \"\",\n verificationResult: optStr(input.verificationResult) ?? \"\",\n preventiveRule: optStr(input.preventiveRule),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"continuity_incident_list\",\n description: \"List continuity incidents.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.continuityIncidentList({\n state: optStr(input.state) as \"all\" | \"open\" | \"closed\" | undefined,\n namespace: optStr(input.namespace),\n limit: optNum(input.limit),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"continuity_loop_add_or_update\",\n description: \"Add or update a continuity loop.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.continuityLoopAddOrUpdate({\n id: optStr(input.id) ?? \"\",\n cadence: optStr(input.cadence) as \"daily\" | \"weekly\" | \"monthly\" | \"quarterly\",\n purpose: optStr(input.purpose) ?? \"\",\n status: optStr(input.status) as \"active\" | \"paused\" | \"retired\",\n killCondition: optStr(input.killCondition) ?? \"\",\n namespace: optStr(input.namespace),\n lastReviewed: optStr(input.lastReviewed),\n notes: optStr(input.notes),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"continuity_loop_review\",\n description: \"Review a continuity loop.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.continuityLoopReview({\n id: optStr(input.id) ?? \"\",\n namespace: optStr(input.namespace),\n status: optStr(input.status) as \"active\" | \"paused\" | \"retired\" | undefined,\n notes: optStr(input.notes),\n reviewedAt: optStr(input.reviewedAt),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"identity_anchor_get\",\n description: \"Get identity anchor.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.identityAnchorGet({ namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"identity_anchor_update\",\n description: \"Update identity anchor.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.identityAnchorUpdate({\n namespace: optStr(input.namespace),\n identityTraits: optStr(input.identityTraits) ?? \"\",\n communicationPreferences: optStr(input.communicationPreferences) ?? \"\",\n operatingPrinciples: optStr(input.operatingPrinciples) ?? \"\",\n continuityNotes: optStr(input.continuityNotes) ?? \"\",\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"memory_identity\",\n description: \"Get memory identity.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.memoryIdentity({ namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal });\n return { result };\n },\n});\n\n// ===========================================================================\n// Work, shared-context, compounding, compression operations\n// ===========================================================================\n\ndefineOperation({\n name: \"work_task\",\n description: \"Manage a work task.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.workTask({\n action: optStr(input.action) as \"update\" | \"list\" | \"get\" | \"create\" | \"delete\" | \"transition\",\n id: optStr(input.id) ?? \"\",\n title: optStr(input.title),\n description: optStr(input.description),\n status: optStr(input.status),\n priority: optStr(input.priority),\n owner: optStr(input.owner),\n assignee: optStr(input.assignee),\n projectId: optStr(input.projectId),\n tags: optStrArr(input.tags),\n dueAt: optStr(input.dueAt),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"work_project\",\n description: \"Manage a work project.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.workProject({\n action: optStr(input.action) as \"update\" | \"list\" | \"get\" | \"create\" | \"delete\" | \"link_task\",\n id: optStr(input.id) ?? \"\",\n name: optStr(input.name),\n description: optStr(input.description),\n status: optStr(input.status),\n owner: optStr(input.owner),\n tags: optStrArr(input.tags),\n taskId: optStr(input.taskId),\n projectId: optStr(input.projectId),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"work_board\",\n description: \"Manage a work board.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.workBoard({\n action: optStr(input.action) as \"export_markdown\" | \"export_snapshot\" | \"import_snapshot\",\n projectId: optStr(input.projectId) ?? \"\",\n snapshotJson: optStr(input.snapshotJson) ?? \"\",\n linkToMemory: input.linkToMemory === true,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"shared_context_write_output\",\n description: \"Write shared context output.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.sharedContextWriteOutput({\n agentId: optStr(input.agentId) ?? \"\",\n title: optStr(input.title) ?? \"\",\n content: optStr(input.content) ?? \"\",\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"shared_feedback_record\",\n description: \"Record shared feedback.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.sharedFeedbackRecord({\n agent: optStr(input.agent) ?? \"\",\n decision: optStr(input.decision) as \"rejected\" | \"approved\" | \"approved_with_feedback\",\n reason: optStr(input.reason) ?? \"\",\n date: optStr(input.date) ?? \"\",\n learning: optStr(input.learning) ?? \"\",\n outcome: optStr(input.outcome) ?? \"\",\n severity: optStr(input.severity) as \"high\" | \"low\" | \"medium\" | undefined,\n confidence: optNum(input.confidence),\n workflow: optStr(input.workflow),\n tags: optStrArr(input.tags),\n evidenceWindowStart: optStr(input.evidenceWindowStart),\n evidenceWindowEnd: optStr(input.evidenceWindowEnd),\n refs: optStrArr(input.refs),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"shared_priorities_append\",\n description: \"Append to shared priorities.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.sharedPrioritiesAppend({\n agentId: optStr(input.agentId) ?? \"\",\n text: optStr(input.text) ?? \"\",\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"shared_context_cross_signals_run\",\n description: \"Run shared context cross signals.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.sharedContextCrossSignalsRun({ date: optStr(input.date) });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"shared_context_curate_daily\",\n description: \"Curate daily shared context.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.sharedContextCurateDaily({ date: optStr(input.date) });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"compounding_weekly_synthesize\",\n description: \"Weekly compound synthesis.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.compoundingWeeklySynthesize({ weekId: optStr(input.weekId) });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"compounding_promote_candidate\",\n description: \"Promote a compounding candidate.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.compoundingPromoteCandidate({\n weekId: optStr(input.weekId) ?? \"\",\n candidateId: optStr(input.candidateId) ?? \"\",\n dryRun: input.dryRun === true,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"compression_guidelines_optimize\",\n description: \"Optimize compression guidelines.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.compressionGuidelinesOptimize({\n dryRun: input.dryRun === true,\n eventLimit: optNum(input.eventLimit),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"compression_guidelines_activate\",\n description: \"Activate compression guidelines.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.compressionGuidelinesActivate({\n expectedContentHash: optStr(input.expectedContentHash) ?? \"\",\n expectedGuidelineVersion: optNum(input.expectedGuidelineVersion),\n });\n return { result };\n },\n});\n\n// ===========================================================================\n// Memory read/debug, graph, feedback, promote, outcome operations\n// ===========================================================================\n\ndefineOperation({\n name: \"memory_profile\",\n description: \"Get the memory profile.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.memoryProfile(optStr(input.namespace), ctx.authenticatedPrincipal);\n return { result };\n },\n});\n\ndefineOperation({\n name: \"memory_entities_list\",\n description: \"List memory entities.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.memoryEntitiesList(optStr(input.namespace), ctx.authenticatedPrincipal);\n return { result };\n },\n});\n\ndefineOperation({\n name: \"memory_questions\",\n description: \"List memory questions.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.memoryQuestions(optStr(input.namespace), ctx.authenticatedPrincipal);\n return { result };\n },\n});\n\ndefineOperation({\n name: \"memory_last_recall\",\n description: \"Get last recall snapshot.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.lastRecallSnapshot(optStr(input.sessionKey));\n return { result };\n },\n});\n\ndefineOperation({\n name: \"memory_intent_debug\",\n description: \"Debug memory intent.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.intentDebug(optStr(input.namespace));\n return { result };\n },\n});\n\ndefineOperation({\n name: \"memory_qmd_debug\",\n description: \"Debug QMD.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.qmdDebug(optStr(input.namespace));\n return { result };\n },\n});\n\ndefineOperation({\n name: \"memory_graph_explain\",\n description: \"Explain the memory graph.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.graphExplainLastRecall(optStr(input.namespace));\n return { result };\n },\n});\n\ndefineOperation({\n name: \"graph_snapshot\",\n description: \"Get a graph snapshot.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.graphSnapshot({\n namespace: optStr(input.namespace),\n limit: optNum(input.limit),\n since: optStr(input.since),\n focusNodeId: optStr(input.focusNodeId),\n categories: optStrArr(input.categories),\n }, ctx.authenticatedPrincipal);\n return { result };\n },\n});\n\ndefineOperation({\n name: \"memory_feedback\",\n description: \"Record memory feedback.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.memoryFeedback({\n memoryId: optStr(input.memoryId) ?? \"\",\n vote: optStr(input.vote) as \"up\" | \"down\",\n note: optStr(input.note),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"memory_promote\",\n description: \"Promote a memory.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.memoryPromote({\n memoryId: optStr(input.memoryId) ?? \"\",\n namespace: optStr(input.namespace),\n sessionKey: optStr(input.sessionKey),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"memory_outcome\",\n description: \"Record a memory outcome.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.memoryOutcome({\n memoryId: optStr(input.memoryId) ?? \"\",\n outcome: optStr(input.outcome) as \"success\" | \"failure\",\n namespace: optStr(input.namespace),\n sessionKey: optStr(input.sessionKey),\n timestamp: optStr(input.timestamp),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"memory_action_apply\",\n description: \"Apply a memory action.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.memoryActionApply({\n action: optStr(input.action) ?? \"\",\n outcome: optStr(input.outcome),\n reason: optStr(input.reason),\n memoryId: optStr(input.memoryId) ?? \"\",\n namespace: optStr(input.namespace),\n sessionKey: optStr(input.sessionKey),\n content: optStr(input.content),\n category: optStr(input.category),\n linkTargetId: optStr(input.linkTargetId),\n linkType: optStr(input.linkType),\n linkStrength: optNum(input.linkStrength),\n artifactType: optStr(input.artifactType),\n execute: input.execute === true,\n sourcePrompt: optStr(input.sourcePrompt),\n dryRun: input.dryRun === true,\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"context_checkpoint\",\n description: \"Create a context checkpoint.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.contextCheckpoint({\n sessionKey: optStr(input.sessionKey) ?? \"\",\n context: optStr(input.context) ?? \"\",\n namespace: optStr(input.namespace),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"briefing\",\n description: \"Get a daily context briefing.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.briefing({\n since: optStr(input.since),\n focus: optStr(input.focus),\n namespace: optStr(input.namespace),\n format: optStr(input.format) as \"json\" | \"markdown\" | undefined,\n maxFollowups: optNum(input.maxFollowups),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\n// ===========================================================================\n// Contradiction review, scan, graph-edge-decay (dynamic-import handlers)\n// ===========================================================================\n\ndefineOperation({\n name: \"review_list\",\n description: \"List contradiction review pairs.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const { isDefaultReviewNamespace, listPairs } = await import(\"./contradiction/contradiction-review.js\");\n const VALID_FILTERS = new Set([\"all\", \"unresolved\", \"contradicts\", \"independent\", \"duplicates\", \"needs-user\"]);\n const rawFilter = optStr(input.filter) ?? \"unresolved\";\n if (!VALID_FILTERS.has(rawFilter)) {\n throw new EngramAccessInputError(\"Invalid filter '\" + rawFilter + \"'. Valid: \" + [...VALID_FILTERS].join(\", \"));\n }\n const filter = rawFilter as \"all\" | \"unresolved\" | \"contradicts\" | \"independent\" | \"duplicates\" | \"needs-user\";\n const ns = optStr(input.namespace);\n const limit = optNum(input.limit) ?? 50;\n const resolved = await ctx.service.getReadableStorageForNamespace(ns, ctx.authenticatedPrincipal);\n const reviewNamespace = ctx.service.configRef.namespacesEnabled ? resolved.namespace : undefined;\n const includeUnscopedForNamespace = Boolean(\n reviewNamespace && isDefaultReviewNamespace(ctx.service.configRef.defaultNamespace, ns, reviewNamespace),\n );\n const result = await listPairs(ctx.service.memoryDir, { filter, namespace: reviewNamespace, includeUnscopedForNamespace, limit });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"review_resolve\",\n description: \"Resolve a contradiction pair.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const pairId = defStr(input.pairId, \"\");\n const verb = defStr(input.verb, \"\");\n if (!pairId) throw new EngramAccessInputError(\"pairId is required\");\n if (!verb) throw new EngramAccessInputError(\"verb is required\");\n const { isValidResolutionVerb, executeResolution } = await import(\"./contradiction/resolution.js\");\n if (!isValidResolutionVerb(verb)) throw new EngramAccessInputError(\"Invalid verb: \" + verb + \". Must be one of: keep-a, keep-b, merge, both-valid, needs-more-context\");\n const result = await executeResolution(ctx.service.memoryDir, ctx.service.storageRef, pairId, verb, {\n mergedMemoryId: optStr(input.mergedMemoryId),\n mergedContent: optStr(input.mergedContent),\n storageForNamespace: async (namespace: string | undefined) => {\n const r = await ctx.service.getWritableStorageForNamespace(namespace, ctx.authenticatedPrincipal);\n return r.storage;\n },\n onMergedMemoryWritten: () => { /* #1522: catalog touch at storage chokepoint */ },\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"contradiction_scan_run\",\n description: \"Run a contradiction scan.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const { runContradictionScan } = await import(\"./contradiction/contradiction-scan.js\");\n const result = await runContradictionScan({\n storage: ctx.service.storageRef,\n config: ctx.service.configRef,\n memoryDir: ctx.service.memoryDir,\n embeddingLookupFactory: ctx.service.embeddingLookupFactoryRef,\n storageForNamespace: (namespace: string | undefined) =>\n ctx.service.getWritableStorageForNamespace(namespace ?? undefined, ctx.authenticatedPrincipal),\n localLlm: ctx.service.localLlmRef,\n fallbackLlm: ctx.service.fallbackLlmRef,\n namespace: optStr(input.namespace),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"graph_edge_decay_run\",\n description: \"Run graph edge decay maintenance.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const cfg = ctx.service.configRef;\n if (!cfg.graphEdgeDecayEnabled) {\n return { result: { ranAt: new Date().toISOString(), disabled: true, reason: \"graphEdgeDecayEnabled is false\" } };\n }\n const { runGraphEdgeDecayMaintenanceAcrossNamespaces } = await import(\"./maintenance/graph-edge-decay.js\");\n const dryRun = input.dryRun === true;\n const results = await runGraphEdgeDecayMaintenanceAcrossNamespaces(ctx.service.memoryDir, {\n windowMs: cfg.graphEdgeDecayWindowMs,\n perWindow: cfg.graphEdgeDecayPerWindow,\n floor: cfg.graphEdgeDecayFloor,\n visibilityThreshold: cfg.graphEdgeDecayVisibilityThreshold,\n dryRun,\n namespacesEnabled: cfg.namespacesEnabled === true,\n defaultNamespace: cfg.defaultNamespace,\n });\n return { result: { results } };\n },\n});\n\n// ===========================================================================\n// Remaining operations: summarize, profiling, connectors, peers, console, dreams\n// ===========================================================================\n\ndefineOperation({\n name: \"memory_summarize_hourly\",\n description: \"Run hourly memory summarization.\",\n schema: looseSchema,\n handler: async (_input, ctx) => ({ result: await ctx.service.memorySummarizeHourly() }),\n});\n\ndefineOperation({\n name: \"conversation_index_update\",\n description: \"Update the conversation index.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.conversationIndexUpdate({\n sessionKey: optStr(input.sessionKey),\n hours: optNum(input.hours),\n embed: optBool(input.embed),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"profiling_report\",\n description: \"Get a profiling report.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.profilingReport({\n format: optStr(input.format),\n limit: optNum(input.limit),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"live_connectors_run\",\n description: \"Run live connectors.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.liveConnectorsRun(\n { authenticatedPrincipal: ctx.authenticatedPrincipal, force: input.force === true },\n ctx.authenticatedPrincipal,\n );\n return { result };\n },\n});\n\ndefineOperation({\n name: \"peer_list\",\n description: \"List peers.\",\n schema: looseSchema,\n handler: async (_input, ctx) => ({ result: await ctx.service.peerList() }),\n});\n\ndefineOperation({\n name: \"peer_get\",\n description: \"Get a peer.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.peerGet(defStr(input.id, \"\"));\n return { result };\n },\n});\n\ndefineOperation({\n name: \"peer_set\",\n description: \"Create or update a peer.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.peerSet({\n id: optStr(input.id) ?? \"\",\n kind: optStr(input.kind),\n displayName: optStr(input.displayName),\n notes: optStr(input.notes),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"peer_delete\",\n description: \"Delete a peer.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.peerDelete(defStr(input.id, \"\"));\n return { result };\n },\n});\n\ndefineOperation({\n name: \"peer_profile_get\",\n description: \"Get a peer profile.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.peerProfileGet(optStr(input.id) ?? \"\");\n return { result };\n },\n});\n\ndefineOperation({\n name: \"peer_forget\",\n description: \"Forget a peer.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.peerForget(optStr(input.id) ?? \"\", { confirm: input.confirm === true || optStr(input.confirm) === \"yes\" ? \"yes\" : \"\" });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"console_state\",\n description: \"Get console state.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.consoleState(optStr(input.namespace), ctx.authenticatedPrincipal);\n return { result };\n },\n});\n\ndefineOperation({\n name: \"dreams_status\",\n description: \"Get dreams status.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.dreamsStatus({\n windowHours: optNum(input.windowHours),\n namespace: optStr(input.namespace),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"dreams_run\",\n description: \"Run dreams.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.dreamsRun({\n phase: optStr(input.phase) as import(\"./types.js\").DreamsPhase,\n dryRun: input.dryRun === true,\n namespace: optStr(input.namespace),\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\n// ===========================================================================\n// HTTP-only operations (routes with no direct MCP tool equivalent)\n// ===========================================================================\n\ndefineOperation({\n name: \"offline_sync_snapshot\",\n description: \"Get or create an offline-sync snapshot.\",\n schema: looseSchema,\n handler: async (_input, ctx) => {\n const result = await ctx.service.offlineSyncSnapshot();\n return { result };\n },\n});\n\ndefineOperation({\n name: \"offline_sync_files\",\n description: \"List offline-sync files.\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.offlineSyncFiles({ paths: optStrArr(input.paths) ?? [], namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal }) }),\n});\n\ndefineOperation({\n name: \"offline_sync_file_content\",\n description: \"Read offline-sync file content.\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.offlineSyncFileContent({ path: optStr(input.path) ?? \"\", namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal, offset: optNum(input.offset), length: optNum(input.length) }) }),\n});\n\ndefineOperation({\n name: \"offline_sync_apply_file_content\",\n description: \"Apply offline-sync file content.\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.offlineSyncApplyFileContent({ sourceId: optStr(input.sourceId) ?? \"\", path: optStr(input.path) ?? \"\", sha256: optStr(input.sha256) ?? \"\", bytes: optNum(input.bytes) ?? 0, mtimeMs: optNum(input.mtimeMs) ?? 0, offset: optNum(input.offset), baseSha256: optStr(input.baseSha256), content: Buffer.from(defStr(input.content, \"\"), \"base64\"), namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal }) }),\n});\n\ndefineOperation({\n name: \"offline_sync_apply\",\n description: \"Apply an offline-sync snapshot.\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.offlineSyncApply({ changeset: input.changeset, namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal }) }),\n});\n\ndefineOperation({\n name: \"lcm_status\",\n description: \"Get LCM status.\",\n schema: looseSchema,\n handler: async (_input, ctx) => ({ result: await ctx.service.lcmStatus() }),\n});\n\ndefineOperation({\n name: \"memory_list\",\n description: \"Browse/list memories (HTTP GET /memories).\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.memoryBrowse() }),\n});\n\ndefineOperation({\n name: \"entity_list\",\n description: \"List entities (HTTP GET /entities).\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.entityList() }),\n});\n\ndefineOperation({\n name: \"maintenance_status\",\n description: \"Get maintenance status (HTTP GET /maintenance).\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.maintenance() }),\n});\n\ndefineOperation({\n name: \"quality_status\",\n description: \"Get quality status (HTTP GET /quality).\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.quality() }),\n});\n\ndefineOperation({\n name: \"trust_zones_status\",\n description: \"Get trust-zone status.\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.trustZoneStatus() }),\n});\n\ndefineOperation({\n name: \"trust_zones_records\",\n description: \"Browse trust-zone records.\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.trustZoneBrowse({ namespace: optStr(input.namespace), limit: optNum(input.limit), offset: optNum(input.offset) }, ctx.authenticatedPrincipal) }),\n});\n\ndefineOperation({\n name: \"review_disposition\",\n description: \"Apply a review disposition.\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.reviewDisposition({ memoryId: optStr(input.memoryId) ?? \"\", status: (optStr(input.status) ?? \"archived\") as import(\"./access-service.js\").EngramAccessReviewDispositionRequest[\"status\"], reasonCode: optStr(input.reasonCode) ?? \"\", namespace: optStr(input.namespace), authenticatedPrincipal: ctx.authenticatedPrincipal }) }),\n});\n\ndefineOperation({\n name: \"trust_zones_promote\",\n description: \"Promote a trust-zone record.\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.trustZonePromote({ recordId: optStr(input.recordId) ?? \"\", targetZone: (optStr(input.targetZone) ?? \"working\") as import(\"./trust-zones.js\").TrustZoneName, promotionReason: optStr(input.promotionReason) ?? \"\", dryRun: input.dryRun === true, namespace: optStr(input.namespace), authenticatedPrincipal: ctx.authenticatedPrincipal }) }),\n});\n\ndefineOperation({\n name: \"trust_zones_demo_seed\",\n description: \"Seed demo trust-zone records.\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.trustZoneDemoSeed({ scenario: optStr(input.scenario), dryRun: input.dryRun === true, namespace: optStr(input.namespace), authenticatedPrincipal: ctx.authenticatedPrincipal }) }),\n});\n\ndefineOperation({\n name: \"citations_observed\",\n description: \"Record observed citations (HTTP POST /v1/citations/observed).\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n // The HTTP handler has complex citation-entry parsing; this operation\n // owns the shape validation boundary. The handler forwards the cleaned\n // input so the transport-specific entry parsing stays in the surface.\n return { result: { ok: true } };\n },\n});\n\ndefineOperation({\n name: \"contradiction_detail\",\n description: \"Get a single contradiction pair detail (HTTP GET /review/contradictions/:id).\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const { listPairs } = await import(\"./contradiction/contradiction-review.js\");\n const result = await listPairs(ctx.service.memoryDir, {\n filter: \"all\" as const,\n namespace: optStr(input.namespace),\n includeUnscopedForNamespace: false,\n limit: 1,\n });\n return { result };\n },\n});\n\n// ===========================================================================\n// SSE-stream operations (endpoint registration; streaming handled by transport)\n// ===========================================================================\n\ndefineOperation({\n name: \"offline_sync_snapshot_stream\",\n description: \"Stream offline-sync snapshot updates (SSE).\",\n schema: looseSchema,\n handler: async (_input, ctx) => ({ result: await ctx.service.offlineSyncSnapshotStream() }),\n});\n\ndefineOperation({\n name: \"graph_events\",\n description: \"Stream graph mutation events (SSE). Endpoint registration only.\",\n schema: looseSchema,\n handler: async (_input, _ctx) => ({ result: { stream: \"sse\" } }),\n});\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/access-operations-batch.ts"],"sourcesContent":["/**\n * Batch migration of remaining access-surface handlers through the boundary\n * (issue #1525). Each operation routes MCP/HTTP/CLI dispatch through the\n * shared validation + error-mapping layer in access-boundary.ts.\n *\n * Schemas use a null-stripping preprocessor (MCP clients send null for absent\n * optional fields — repo gotcha #2) over a permissive record. Individual\n * schema tightening lands as follow-up PRs; the boundary already centralizes\n * error mapping and enforces \"no handler bypasses the boundary.\"\n */\n\nimport { z } from \"zod\";\nimport { defineOperation, type OperationContext } from \"./access-boundary.js\";\nimport { EngramAccessInputError, type EngramAccessService } from \"./access-service.js\";\nimport type { RecallPlanMode, RecallDisclosure } from \"./types.js\";\nimport { projectTagProjectId } from \"./coding/coding-namespace.js\";\nimport { expandTildePath } from \"./utils/path.js\";\n\n// ---------------------------------------------------------------------------\n// Shared helpers — type-safe extraction from unknown input (no `any`)\n// ---------------------------------------------------------------------------\n\n/** Strip null values from an object (MCP clients send null for absent optionals). */\nfunction stripNulls(data: unknown): unknown {\n if (data !== null && typeof data === \"object\" && !Array.isArray(data)) {\n const obj = data as Record<string, unknown>;\n const cleaned: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(obj)) {\n if (value !== null) cleaned[key] = value;\n }\n return cleaned;\n }\n return data;\n}\n\n/** Permissive schema: null-strip then accept any string-keyed record. */\nconst looseSchema = z.preprocess(\n stripNulls,\n z.record(z.string(), z.unknown()),\n) as z.ZodType<Record<string, unknown>>;\n\nfunction optStr(v: unknown): string | undefined {\n return typeof v === \"string\" ? v : undefined;\n}\nfunction reqStr(v: unknown, field: string): string {\n if (typeof v !== \"string\" || v.length === 0) {\n throw new EngramAccessInputError(`${field} is required and must be a non-empty string`);\n }\n return v;\n}\nfunction defStr(v: unknown, d: string): string {\n return typeof v === \"string\" ? v : d;\n}\nfunction optNum(v: unknown): number | undefined {\n return typeof v === \"number\" && Number.isFinite(v) ? v : undefined;\n}\nfunction optBool(v: unknown): boolean | undefined {\n return typeof v === \"boolean\" ? v : undefined;\n}\nfunction optStrArr(v: unknown): string[] | undefined {\n return Array.isArray(v) && v.every((x) => typeof x === \"string\") ? v : undefined;\n}\n// ===========================================================================\n// Recall operations\n// ===========================================================================\n\ndefineOperation({\n name: \"recall\",\n description: \"Semantic recall across memories.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.recall({\n query: defStr(input.query, \"\"),\n sessionKey: optStr(input.sessionKey),\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n namespace: optStr(input.namespace),\n topK: optNum(input.topK),\n mode: optStr(input.mode) as RecallPlanMode | \"auto\" | undefined,\n includeDebug: input.includeDebug === true,\n disclosure: optStr(input.disclosure) as RecallDisclosure | undefined,\n cwd: optStr(input.cwd),\n projectTag: optStr(input.projectTag),\n asOf: optStr(input.asOf),\n ...(optStrArr(input.tags) !== undefined ? { tags: optStrArr(input.tags)! } : {}),\n ...(optStr(input.tagMatch) !== undefined ? { tagMatch: optStr(input.tagMatch) as \"any\" | \"all\" } : {}),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"recall_explain\",\n description: \"Explain the recall plan for the session.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.recallExplain({\n sessionKey: optStr(input.sessionKey),\n namespace: optStr(input.namespace),\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"set_coding_context\",\n description: \"Set the coding context for a session (issue #569).\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const sessionKey = defStr(input.sessionKey, \"\");\n const projectTag = optStr(input.projectTag);\n const hasProjectTag = projectTag !== undefined && projectTag.trim().length > 0;\n const hasCodingContext = \"codingContext\" in input;\n if (!hasCodingContext && hasProjectTag) {\n const tag = projectTag!.trim();\n const projectId = projectTagProjectId(tag);\n ctx.service.setCodingContext({\n sessionKey,\n codingContext: { projectId, branch: null, rootPath: projectId, defaultBranch: null },\n });\n return { result: { ok: true } };\n }\n if (!hasCodingContext && !hasProjectTag) {\n throw new EngramAccessInputError(\"set_coding_context requires either codingContext or projectTag\");\n }\n const rawCtx = input.codingContext;\n let codingContext: { projectId: string; branch: string | null; rootPath: string; defaultBranch: string | null } | null = null;\n if (rawCtx !== null) {\n if (typeof rawCtx !== \"object\" || rawCtx === undefined) {\n throw new EngramAccessInputError(\"codingContext must be an object or null\");\n }\n const obj = rawCtx as Record<string, unknown>;\n const projectId = defStr(obj.projectId, \"\");\n const rootPath = defStr(obj.rootPath, \"\");\n const branch = obj.branch === null ? null : optStr(obj.branch);\n const defaultBranch = obj.defaultBranch === null ? null : optStr(obj.defaultBranch);\n if (branch === undefined) throw new EngramAccessInputError(\"codingContext.branch must be a string or null\");\n if (defaultBranch === undefined) throw new EngramAccessInputError(\"codingContext.defaultBranch must be a string or null\");\n codingContext = { projectId, branch, rootPath, defaultBranch };\n }\n ctx.service.setCodingContext({ sessionKey, codingContext });\n return { result: { ok: true } };\n },\n});\n\ndefineOperation({\n name: \"recall_tier_explain\",\n description: \"Explain the recall tier breakdown.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const sessionKey = optStr(input.sessionKey);\n const namespace = optStr(input.namespace);\n const result = await ctx.service.recallTierExplain(\n sessionKey !== undefined && sessionKey.length > 0 ? sessionKey : undefined,\n namespace !== undefined && namespace.length > 0 ? namespace : undefined,\n ctx.authenticatedPrincipal,\n );\n return { result };\n },\n});\n\ndefineOperation({\n name: \"recall_xray\",\n description: \"X-ray the recall pipeline for a query.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const budgetRaw = input.budget;\n let budget: number | undefined;\n if (budgetRaw !== undefined && budgetRaw !== null) {\n const parsed = typeof budgetRaw === \"number\" ? budgetRaw : typeof budgetRaw === \"string\" ? Number(budgetRaw) : undefined;\n if (parsed === undefined || !Number.isFinite(parsed) || parsed <= 0 || !Number.isInteger(parsed)) {\n throw new EngramAccessInputError(\"recall_xray: budget expects a positive integer\");\n }\n budget = parsed;\n }\n const disclosureRaw = optStr(input.disclosure);\n const result = await ctx.service.recallXray({\n query: defStr(input.query, \"\"),\n sessionKey: optStr(input.sessionKey),\n namespace: optStr(input.namespace),\n budget,\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n ...(disclosureRaw !== undefined && disclosureRaw !== \"\" ? { disclosure: disclosureRaw as RecallDisclosure } : {}),\n });\n return { result };\n },\n});\n\n// ===========================================================================\n// Wearables + transcript operations\n// ===========================================================================\n\ndefineOperation({\n name: \"wearables_status\",\n description: \"Get wearables sync status.\",\n schema: looseSchema,\n handler: async (_input, ctx) => ({ result: await ctx.service.wearablesStatus() }),\n});\n\ndefineOperation({\n name: \"wearables_sync\",\n description: \"Sync wearables data.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.wearablesSync({\n source: optStr(input.source),\n date: optStr(input.date),\n days: optNum(input.days),\n forceMemories: optBool(input.forceMemories),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"transcript_day\",\n description: \"Get transcript for a specific day.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const date = defStr(input.date, \"\");\n if (date.trim().length === 0) throw new EngramAccessInputError(\"transcript_day: date is required and must be YYYY-MM-DD\");\n const result = await ctx.service.wearablesTranscriptDay({ date, source: optStr(input.source) });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"transcript_search\",\n description: \"Search transcripts.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const query = defStr(input.query, \"\");\n if (query.trim().length === 0) throw new EngramAccessInputError(\"transcript_search: query is required and must be non-empty\");\n const result = await ctx.service.wearablesTranscriptSearch({\n query,\n source: optStr(input.source),\n from: optStr(input.from),\n to: optStr(input.to),\n limit: optNum(input.limit),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"transcript_memories\",\n description: \"Get transcript memories.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.wearablesTranscriptMemories({\n source: optStr(input.source),\n date: optStr(input.date),\n limit: optNum(input.limit),\n });\n return { result };\n },\n});\n\n// ===========================================================================\n// Action confidence, day summary, capsule operations\n// ===========================================================================\n\ndefineOperation({\n name: \"action_confidence\",\n description: \"Get action confidence for recent memories.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.actionConfidence({\n intendedAction: optStr(input.intendedAction),\n confidence: optNum(input.confidence),\n risk: optStr(input.risk) as import(\"./action-confidence.js\").ActionConfidenceRiskCategory | undefined,\n contextReadiness: optStr(input.contextReadiness) as import(\"./action-confidence.js\").ActionConfidenceContextReadiness | undefined,\n currentContextScopes: optStrArr(input.currentContextScopes),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"chatgpt_memory_inspector\",\n description: \"ChatGPT memory inspector (recall xray + action confidence orchestrator).\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const xray = await ctx.service.recallXray({\n query: defStr(input.query, \"\"),\n sessionKey: optStr(input.sessionKey),\n namespace: optStr(input.namespace),\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n });\n const confidence = await ctx.service.actionConfidence({});\n return { result: { xray, confidence } };\n },\n});\n\ndefineOperation({\n name: \"day_summary\",\n description: \"Get a day summary.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.daySummary({\n memories: optStr(input.memories),\n sessionKey: optStr(input.sessionKey),\n namespace: optStr(input.namespace),\n timeZone: optStr(input.timeZone),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"capsule_export\",\n description: \"Export a capsule.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.capsuleExport({\n name: optStr(input.name) ?? \"\",\n namespace: optStr(input.namespace),\n since: optStr(input.since),\n includeKinds: optStrArr(input.includeKinds),\n peerIds: optStrArr(input.peerIds),\n includeTranscripts: optBool(input.includeTranscripts),\n encrypt: optBool(input.encrypt),\n principal: ctx.authenticatedPrincipal,\n } as Parameters<typeof ctx.service.capsuleExport>[0]);\n return { result };\n },\n});\n\ndefineOperation({\n name: \"capsule_import\",\n description: \"Import a capsule.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.capsuleImport({\n archivePath: expandTildePath(optStr(input.archivePath) ?? \"\"),\n namespace: optStr(input.namespace),\n mode: optStr(input.mode) as \"skip\" | \"overwrite\" | \"fork\" | undefined,\n passphrase: optStr(input.passphrase),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"capsule_list\",\n description: \"List capsules.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.capsuleList({\n namespace: optStr(input.namespace),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\n// ===========================================================================\n// Governance, maintenance, procedural operations\n// ===========================================================================\n\ndefineOperation({\n name: \"memory_governance_run\",\n description: \"Run memory governance.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.governanceRun({\n namespace: optStr(input.namespace),\n mode: optStr(input.mode) as \"shadow\" | \"apply\" | undefined,\n recentDays: optNum(input.recentDays),\n maxMemories: optNum(input.maxMemories),\n batchSize: optNum(input.batchSize),\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"procedure_mining_run\",\n description: \"Run procedure mining.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.procedureMiningRun({\n namespace: optStr(input.namespace),\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"pattern_reinforcement_run\",\n description: \"Run pattern reinforcement.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.patternReinforcementRun({\n namespace: optStr(input.namespace),\n force: input.force === true,\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"procedural_stats\",\n description: \"Get procedural stats.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.procedureStats({ namespace: optStr(input.namespace) }, ctx.authenticatedPrincipal);\n return { result };\n },\n});\n\n// ===========================================================================\n// Memory timeline, suggestion, entity, observe, LCM operations\n// ===========================================================================\n\ndefineOperation({\n name: \"memory_timeline\",\n description: \"Get the timeline for a memory.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.memoryTimeline(\n optStr(input.memoryId) ?? \"\",\n optStr(input.namespace),\n optNum(input.limit),\n ctx.authenticatedPrincipal,\n );\n return { result };\n },\n});\n\ndefineOperation({\n name: \"suggestion_submit\",\n description: \"Submit a memory suggestion.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.suggestionSubmit({\n schemaVersion: optNum(input.schemaVersion),\n idempotencyKey: optStr(input.idempotencyKey),\n dryRun: input.dryRun === true,\n sessionKey: optStr(input.sessionKey),\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n content: optStr(input.content) ?? \"\",\n category: optStr(input.category),\n confidence: optNum(input.confidence),\n namespace: optStr(input.namespace),\n tags: optStrArr(input.tags),\n entityRef: optStr(input.entityRef),\n ttl: optStr(input.ttl),\n sourceReason: optStr(input.sourceReason),\n cwd: optStr(input.cwd),\n projectTag: optStr(input.projectTag),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"entity_get\",\n description: \"Get an entity by name.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.entityGet(optStr(input.name) ?? \"\", optStr(input.namespace));\n return { result };\n },\n});\n\ndefineOperation({\n name: \"review_queue_list\",\n description: \"List the review queue.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.reviewQueue(optStr(input.runId) ?? \"\", optStr(input.namespace), ctx.authenticatedPrincipal);\n return { result };\n },\n});\n\ndefineOperation({\n name: \"observe\",\n description: \"Observe messages into the memory system.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const messages = input.messages;\n if (!Array.isArray(messages)) throw new EngramAccessInputError(\"observe: messages must be an array\");\n const result = await ctx.service.observe({\n sessionKey: defStr(input.sessionKey, \"\"),\n messages: messages as unknown as Parameters<typeof ctx.service.observe>[0][\"messages\"],\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n namespace: optStr(input.namespace),\n skipExtraction: input.skipExtraction === true,\n cwd: optStr(input.cwd),\n projectTag: optStr(input.projectTag),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"lcm_search\",\n description: \"Search the LCM (long-context memory).\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.lcmSearch({\n query: defStr(input.query, \"\"),\n sessionKey: optStr(input.sessionKey),\n sessionPrefix: optStr(input.sessionPrefix),\n namespace: optStr(input.namespace),\n limit: optNum(input.limit),\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"lcm_compaction_flush\",\n description: \"Flush LCM compaction.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.lcmCompactionFlush({\n sessionKey: optStr(input.sessionKey) ?? \"\",\n namespace: optStr(input.namespace),\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"lcm_compaction_record\",\n description: \"Record an LCM compaction.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.lcmCompactionRecord({\n sessionKey: optStr(input.sessionKey) ?? \"\",\n namespace: optStr(input.namespace),\n tokensBefore: optNum(input.tokensBefore) ?? 0,\n tokensAfter: optNum(input.tokensAfter) ?? 0,\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\n// ===========================================================================\n// Continuity, identity operations\n// ===========================================================================\n\ndefineOperation({\n name: \"continuity_audit_generate\",\n description: \"Generate a continuity audit.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.continuityAuditGenerate({\n period: optStr(input.period) as \"weekly\" | \"monthly\" | undefined,\n key: optStr(input.key),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"continuity_incident_open\",\n description: \"Open a continuity incident.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.continuityIncidentOpen({\n symptom: optStr(input.symptom) ?? \"\",\n namespace: optStr(input.namespace),\n triggerWindow: optStr(input.triggerWindow),\n suspectedCause: optStr(input.suspectedCause),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"continuity_incident_close\",\n description: \"Close a continuity incident.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.continuityIncidentClose({\n id: optStr(input.id) ?? \"\",\n namespace: optStr(input.namespace),\n fixApplied: optStr(input.fixApplied) ?? \"\",\n verificationResult: optStr(input.verificationResult) ?? \"\",\n preventiveRule: optStr(input.preventiveRule),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"continuity_incident_list\",\n description: \"List continuity incidents.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.continuityIncidentList({\n state: optStr(input.state) as \"all\" | \"open\" | \"closed\" | undefined,\n namespace: optStr(input.namespace),\n limit: optNum(input.limit),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"continuity_loop_add_or_update\",\n description: \"Add or update a continuity loop.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.continuityLoopAddOrUpdate({\n id: optStr(input.id) ?? \"\",\n cadence: optStr(input.cadence) as \"daily\" | \"weekly\" | \"monthly\" | \"quarterly\",\n purpose: optStr(input.purpose) ?? \"\",\n status: optStr(input.status) as \"active\" | \"paused\" | \"retired\",\n killCondition: optStr(input.killCondition) ?? \"\",\n namespace: optStr(input.namespace),\n lastReviewed: optStr(input.lastReviewed),\n notes: optStr(input.notes),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"continuity_loop_review\",\n description: \"Review a continuity loop.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.continuityLoopReview({\n id: optStr(input.id) ?? \"\",\n namespace: optStr(input.namespace),\n status: optStr(input.status) as \"active\" | \"paused\" | \"retired\" | undefined,\n notes: optStr(input.notes),\n reviewedAt: optStr(input.reviewedAt),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"identity_anchor_get\",\n description: \"Get identity anchor.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.identityAnchorGet({ namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"identity_anchor_update\",\n description: \"Update identity anchor.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.identityAnchorUpdate({\n namespace: optStr(input.namespace),\n identityTraits: optStr(input.identityTraits) ?? \"\",\n communicationPreferences: optStr(input.communicationPreferences) ?? \"\",\n operatingPrinciples: optStr(input.operatingPrinciples) ?? \"\",\n continuityNotes: optStr(input.continuityNotes) ?? \"\",\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"memory_identity\",\n description: \"Get memory identity.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.memoryIdentity({ namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal });\n return { result };\n },\n});\n\n// ===========================================================================\n// Work, shared-context, compounding, compression operations\n// ===========================================================================\n\ndefineOperation({\n name: \"work_task\",\n description: \"Manage a work task.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.workTask({\n action: optStr(input.action) as \"update\" | \"list\" | \"get\" | \"create\" | \"delete\" | \"transition\",\n id: optStr(input.id) ?? \"\",\n title: optStr(input.title),\n description: optStr(input.description),\n status: optStr(input.status),\n priority: optStr(input.priority),\n owner: optStr(input.owner),\n assignee: optStr(input.assignee),\n projectId: optStr(input.projectId),\n tags: optStrArr(input.tags),\n dueAt: optStr(input.dueAt),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"work_project\",\n description: \"Manage a work project.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.workProject({\n action: optStr(input.action) as \"update\" | \"list\" | \"get\" | \"create\" | \"delete\" | \"link_task\",\n id: optStr(input.id) ?? \"\",\n name: optStr(input.name),\n description: optStr(input.description),\n status: optStr(input.status),\n owner: optStr(input.owner),\n tags: optStrArr(input.tags),\n taskId: optStr(input.taskId),\n projectId: optStr(input.projectId),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"work_board\",\n description: \"Manage a work board.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.workBoard({\n action: optStr(input.action) as \"export_markdown\" | \"export_snapshot\" | \"import_snapshot\",\n projectId: optStr(input.projectId) ?? \"\",\n snapshotJson: optStr(input.snapshotJson) ?? \"\",\n linkToMemory: input.linkToMemory === true,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"shared_context_write_output\",\n description: \"Write shared context output.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.sharedContextWriteOutput({\n agentId: optStr(input.agentId) ?? \"\",\n title: optStr(input.title) ?? \"\",\n content: optStr(input.content) ?? \"\",\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"shared_feedback_record\",\n description: \"Record shared feedback.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.sharedFeedbackRecord({\n agent: optStr(input.agent) ?? \"\",\n decision: optStr(input.decision) as \"rejected\" | \"approved\" | \"approved_with_feedback\",\n reason: optStr(input.reason) ?? \"\",\n date: optStr(input.date) ?? \"\",\n learning: optStr(input.learning) ?? \"\",\n outcome: optStr(input.outcome) ?? \"\",\n severity: optStr(input.severity) as \"high\" | \"low\" | \"medium\" | undefined,\n confidence: optNum(input.confidence),\n workflow: optStr(input.workflow),\n tags: optStrArr(input.tags),\n evidenceWindowStart: optStr(input.evidenceWindowStart),\n evidenceWindowEnd: optStr(input.evidenceWindowEnd),\n refs: optStrArr(input.refs),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"shared_priorities_append\",\n description: \"Append to shared priorities.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.sharedPrioritiesAppend({\n agentId: optStr(input.agentId) ?? \"\",\n text: optStr(input.text) ?? \"\",\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"shared_context_cross_signals_run\",\n description: \"Run shared context cross signals.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.sharedContextCrossSignalsRun({ date: optStr(input.date) });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"shared_context_curate_daily\",\n description: \"Curate daily shared context.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.sharedContextCurateDaily({ date: optStr(input.date) });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"compounding_weekly_synthesize\",\n description: \"Weekly compound synthesis.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.compoundingWeeklySynthesize({ weekId: optStr(input.weekId) });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"compounding_promote_candidate\",\n description: \"Promote a compounding candidate.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.compoundingPromoteCandidate({\n weekId: optStr(input.weekId) ?? \"\",\n candidateId: optStr(input.candidateId) ?? \"\",\n dryRun: input.dryRun === true,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"compression_guidelines_optimize\",\n description: \"Optimize compression guidelines.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.compressionGuidelinesOptimize({\n dryRun: input.dryRun === true,\n eventLimit: optNum(input.eventLimit),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"compression_guidelines_activate\",\n description: \"Activate compression guidelines.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.compressionGuidelinesActivate({\n expectedContentHash: optStr(input.expectedContentHash) ?? \"\",\n expectedGuidelineVersion: optNum(input.expectedGuidelineVersion),\n });\n return { result };\n },\n});\n\n// ===========================================================================\n// Memory read/debug, graph, feedback, promote, outcome operations\n// ===========================================================================\n\ndefineOperation({\n name: \"memory_profile\",\n description: \"Get the memory profile.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.memoryProfile(optStr(input.namespace), ctx.authenticatedPrincipal);\n return { result };\n },\n});\n\ndefineOperation({\n name: \"memory_entities_list\",\n description: \"List memory entities.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.memoryEntitiesList(optStr(input.namespace), ctx.authenticatedPrincipal);\n return { result };\n },\n});\n\ndefineOperation({\n name: \"memory_questions\",\n description: \"List memory questions.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.memoryQuestions(optStr(input.namespace), ctx.authenticatedPrincipal);\n return { result };\n },\n});\n\ndefineOperation({\n name: \"memory_last_recall\",\n description: \"Get last recall snapshot.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.lastRecallSnapshot(optStr(input.sessionKey));\n return { result };\n },\n});\n\ndefineOperation({\n name: \"memory_intent_debug\",\n description: \"Debug memory intent.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.intentDebug(optStr(input.namespace));\n return { result };\n },\n});\n\ndefineOperation({\n name: \"memory_qmd_debug\",\n description: \"Debug QMD.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.qmdDebug(optStr(input.namespace));\n return { result };\n },\n});\n\ndefineOperation({\n name: \"memory_graph_explain\",\n description: \"Explain the memory graph.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.graphExplainLastRecall(optStr(input.namespace));\n return { result };\n },\n});\n\ndefineOperation({\n name: \"graph_snapshot\",\n description: \"Get a graph snapshot.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.graphSnapshot({\n namespace: optStr(input.namespace),\n limit: optNum(input.limit),\n since: optStr(input.since),\n focusNodeId: optStr(input.focusNodeId),\n categories: optStrArr(input.categories),\n }, ctx.authenticatedPrincipal);\n return { result };\n },\n});\n\ndefineOperation({\n name: \"memory_feedback\",\n description: \"Record memory feedback.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.memoryFeedback({\n memoryId: optStr(input.memoryId) ?? \"\",\n vote: optStr(input.vote) as \"up\" | \"down\",\n note: optStr(input.note),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"memory_promote\",\n description: \"Promote a memory.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.memoryPromote({\n memoryId: optStr(input.memoryId) ?? \"\",\n namespace: optStr(input.namespace),\n sessionKey: optStr(input.sessionKey),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"memory_outcome\",\n description: \"Record a memory outcome.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.memoryOutcome({\n memoryId: optStr(input.memoryId) ?? \"\",\n outcome: optStr(input.outcome) as \"success\" | \"failure\",\n namespace: optStr(input.namespace),\n sessionKey: optStr(input.sessionKey),\n timestamp: optStr(input.timestamp),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"memory_action_apply\",\n description: \"Apply a memory action.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.memoryActionApply({\n action: optStr(input.action) ?? \"\",\n outcome: optStr(input.outcome),\n reason: optStr(input.reason),\n memoryId: optStr(input.memoryId) ?? \"\",\n namespace: optStr(input.namespace),\n sessionKey: optStr(input.sessionKey),\n content: optStr(input.content),\n category: optStr(input.category),\n linkTargetId: optStr(input.linkTargetId),\n linkType: optStr(input.linkType),\n linkStrength: optNum(input.linkStrength),\n artifactType: optStr(input.artifactType),\n execute: input.execute === true,\n sourcePrompt: optStr(input.sourcePrompt),\n dryRun: input.dryRun === true,\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"context_checkpoint\",\n description: \"Create a context checkpoint.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.contextCheckpoint({\n sessionKey: optStr(input.sessionKey) ?? \"\",\n context: optStr(input.context) ?? \"\",\n namespace: optStr(input.namespace),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"briefing\",\n description: \"Get a daily context briefing.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.briefing({\n since: optStr(input.since),\n focus: optStr(input.focus),\n namespace: optStr(input.namespace),\n format: optStr(input.format) as \"json\" | \"markdown\" | undefined,\n maxFollowups: optNum(input.maxFollowups),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\n// ===========================================================================\n// Contradiction review, scan, graph-edge-decay (dynamic-import handlers)\n// ===========================================================================\n\ndefineOperation({\n name: \"review_list\",\n description: \"List contradiction review pairs.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const { isDefaultReviewNamespace, listPairs } = await import(\"./contradiction/contradiction-review.js\");\n const VALID_FILTERS = new Set([\"all\", \"unresolved\", \"contradicts\", \"independent\", \"duplicates\", \"needs-user\"]);\n const rawFilter = optStr(input.filter) ?? \"unresolved\";\n if (!VALID_FILTERS.has(rawFilter)) {\n throw new EngramAccessInputError(\"Invalid filter '\" + rawFilter + \"'. Valid: \" + [...VALID_FILTERS].join(\", \"));\n }\n const filter = rawFilter as \"all\" | \"unresolved\" | \"contradicts\" | \"independent\" | \"duplicates\" | \"needs-user\";\n const ns = optStr(input.namespace);\n const limit = optNum(input.limit) ?? 50;\n const resolved = await ctx.service.getReadableStorageForNamespace(ns, ctx.authenticatedPrincipal);\n const reviewNamespace = ctx.service.configRef.namespacesEnabled ? resolved.namespace : undefined;\n const includeUnscopedForNamespace = Boolean(\n reviewNamespace && isDefaultReviewNamespace(ctx.service.configRef.defaultNamespace, ns, reviewNamespace),\n );\n const result = await listPairs(ctx.service.memoryDir, { filter, namespace: reviewNamespace, includeUnscopedForNamespace, limit });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"review_resolve\",\n description: \"Resolve a contradiction pair.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const pairId = defStr(input.pairId, \"\");\n const verb = defStr(input.verb, \"\");\n if (!pairId) throw new EngramAccessInputError(\"pairId is required\");\n if (!verb) throw new EngramAccessInputError(\"verb is required\");\n const { isValidResolutionVerb, executeResolution } = await import(\"./contradiction/resolution.js\");\n if (!isValidResolutionVerb(verb)) throw new EngramAccessInputError(\"Invalid verb: \" + verb + \". Must be one of: keep-a, keep-b, merge, both-valid, needs-more-context\");\n const result = await executeResolution(ctx.service.memoryDir, ctx.service.storageRef, pairId, verb, {\n mergedMemoryId: optStr(input.mergedMemoryId),\n mergedContent: optStr(input.mergedContent),\n storageForNamespace: async (namespace: string | undefined) => {\n const r = await ctx.service.getWritableStorageForNamespace(namespace, ctx.authenticatedPrincipal);\n return r.storage;\n },\n onMergedMemoryWritten: () => { /* #1522: catalog touch at storage chokepoint */ },\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"contradiction_scan_run\",\n description: \"Run a contradiction scan.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const { runContradictionScan } = await import(\"./contradiction/contradiction-scan.js\");\n const result = await runContradictionScan({\n storage: ctx.service.storageRef,\n config: ctx.service.configRef,\n memoryDir: ctx.service.memoryDir,\n embeddingLookupFactory: ctx.service.embeddingLookupFactoryRef,\n storageForNamespace: (namespace: string | undefined) =>\n ctx.service.getWritableStorageForNamespace(namespace ?? undefined, ctx.authenticatedPrincipal),\n localLlm: ctx.service.localLlmRef,\n fallbackLlm: ctx.service.fallbackLlmRef,\n namespace: optStr(input.namespace),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"graph_edge_decay_run\",\n description: \"Run graph edge decay maintenance.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const cfg = ctx.service.configRef;\n if (!cfg.graphEdgeDecayEnabled) {\n return { result: { ranAt: new Date().toISOString(), disabled: true, reason: \"graphEdgeDecayEnabled is false\" } };\n }\n const { runGraphEdgeDecayMaintenanceAcrossNamespaces } = await import(\"./maintenance/graph-edge-decay.js\");\n const dryRun = input.dryRun === true;\n const results = await runGraphEdgeDecayMaintenanceAcrossNamespaces(ctx.service.memoryDir, {\n windowMs: cfg.graphEdgeDecayWindowMs,\n perWindow: cfg.graphEdgeDecayPerWindow,\n floor: cfg.graphEdgeDecayFloor,\n visibilityThreshold: cfg.graphEdgeDecayVisibilityThreshold,\n dryRun,\n namespacesEnabled: cfg.namespacesEnabled === true,\n defaultNamespace: cfg.defaultNamespace,\n });\n return { result: { results } };\n },\n});\n\n// ===========================================================================\n// Remaining operations: summarize, profiling, connectors, peers, console, dreams\n// ===========================================================================\n\ndefineOperation({\n name: \"memory_summarize_hourly\",\n description: \"Run hourly memory summarization.\",\n schema: looseSchema,\n handler: async (_input, ctx) => ({ result: await ctx.service.memorySummarizeHourly() }),\n});\n\ndefineOperation({\n name: \"conversation_index_update\",\n description: \"Update the conversation index.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.conversationIndexUpdate({\n sessionKey: optStr(input.sessionKey),\n hours: optNum(input.hours),\n embed: optBool(input.embed),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"profiling_report\",\n description: \"Get a profiling report.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.profilingReport({\n format: optStr(input.format),\n limit: optNum(input.limit),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"live_connectors_run\",\n description: \"Run live connectors.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.liveConnectorsRun(\n { authenticatedPrincipal: ctx.authenticatedPrincipal, force: input.force === true },\n ctx.authenticatedPrincipal,\n );\n return { result };\n },\n});\n\ndefineOperation({\n name: \"peer_list\",\n description: \"List peers.\",\n schema: looseSchema,\n handler: async (_input, ctx) => ({ result: await ctx.service.peerList() }),\n});\n\ndefineOperation({\n name: \"peer_get\",\n description: \"Get a peer.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.peerGet(defStr(input.id, \"\"));\n return { result };\n },\n});\n\ndefineOperation({\n name: \"peer_set\",\n description: \"Create or update a peer.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.peerSet({\n id: optStr(input.id) ?? \"\",\n kind: optStr(input.kind),\n displayName: optStr(input.displayName),\n notes: optStr(input.notes),\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"peer_delete\",\n description: \"Delete a peer.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.peerDelete(defStr(input.id, \"\"));\n return { result };\n },\n});\n\ndefineOperation({\n name: \"peer_profile_get\",\n description: \"Get a peer profile.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.peerProfileGet(optStr(input.id) ?? \"\");\n return { result };\n },\n});\n\ndefineOperation({\n name: \"peer_forget\",\n description: \"Forget a peer.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.peerForget(optStr(input.id) ?? \"\", { confirm: input.confirm === true || optStr(input.confirm) === \"yes\" ? \"yes\" : \"\" });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"console_state\",\n description: \"Get console state.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.consoleState(optStr(input.namespace), ctx.authenticatedPrincipal);\n return { result };\n },\n});\n\ndefineOperation({\n name: \"dreams_status\",\n description: \"Get dreams status.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.dreamsStatus({\n windowHours: optNum(input.windowHours),\n namespace: optStr(input.namespace),\n principal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\ndefineOperation({\n name: \"dreams_run\",\n description: \"Run dreams.\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const result = await ctx.service.dreamsRun({\n phase: optStr(input.phase) as import(\"./types.js\").DreamsPhase,\n dryRun: input.dryRun === true,\n namespace: optStr(input.namespace),\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n });\n return { result };\n },\n});\n\n// ===========================================================================\n// HTTP-only operations (routes with no direct MCP tool equivalent)\n// ===========================================================================\n\ndefineOperation({\n name: \"offline_sync_snapshot\",\n description: \"Get or create an offline-sync snapshot.\",\n schema: looseSchema,\n handler: async (_input, ctx) => {\n const result = await ctx.service.offlineSyncSnapshot();\n return { result };\n },\n});\n\ndefineOperation({\n name: \"offline_sync_files\",\n description: \"List offline-sync files.\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.offlineSyncFiles({ paths: optStrArr(input.paths) ?? [], namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal }) }),\n});\n\ndefineOperation({\n name: \"offline_sync_file_content\",\n description: \"Read offline-sync file content.\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.offlineSyncFileContent({ path: optStr(input.path) ?? \"\", namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal, offset: optNum(input.offset), length: optNum(input.length) }) }),\n});\n\ndefineOperation({\n name: \"offline_sync_apply_file_content\",\n description: \"Apply offline-sync file content.\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.offlineSyncApplyFileContent({ sourceId: optStr(input.sourceId) ?? \"\", path: optStr(input.path) ?? \"\", sha256: optStr(input.sha256) ?? \"\", bytes: optNum(input.bytes) ?? 0, mtimeMs: optNum(input.mtimeMs) ?? 0, offset: optNum(input.offset), baseSha256: optStr(input.baseSha256), content: Buffer.from(defStr(input.content, \"\"), \"base64\"), namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal }) }),\n});\n\ndefineOperation({\n name: \"offline_sync_apply\",\n description: \"Apply an offline-sync snapshot.\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.offlineSyncApply({ changeset: input.changeset, namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal }) }),\n});\n\ndefineOperation({\n name: \"lcm_status\",\n description: \"Get LCM status.\",\n schema: looseSchema,\n handler: async (_input, ctx) => ({ result: await ctx.service.lcmStatus() }),\n});\n\ndefineOperation({\n name: \"memory_list\",\n description: \"Browse/list memories (HTTP GET /memories).\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.memoryBrowse() }),\n});\n\ndefineOperation({\n name: \"entity_list\",\n description: \"List entities (HTTP GET /entities).\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.entityList() }),\n});\n\ndefineOperation({\n name: \"maintenance_status\",\n description: \"Get maintenance status (HTTP GET /maintenance).\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.maintenance() }),\n});\n\ndefineOperation({\n name: \"quality_status\",\n description: \"Get quality status (HTTP GET /quality).\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.quality() }),\n});\n\ndefineOperation({\n name: \"trust_zones_status\",\n description: \"Get trust-zone status.\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.trustZoneStatus() }),\n});\n\ndefineOperation({\n name: \"trust_zones_records\",\n description: \"Browse trust-zone records.\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.trustZoneBrowse({ namespace: optStr(input.namespace), limit: optNum(input.limit), offset: optNum(input.offset) }, ctx.authenticatedPrincipal) }),\n});\n\ndefineOperation({\n name: \"review_disposition\",\n description: \"Apply a review disposition.\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.reviewDisposition({ memoryId: optStr(input.memoryId) ?? \"\", status: (optStr(input.status) ?? \"archived\") as import(\"./access-service.js\").EngramAccessReviewDispositionRequest[\"status\"], reasonCode: optStr(input.reasonCode) ?? \"\", namespace: optStr(input.namespace), authenticatedPrincipal: ctx.authenticatedPrincipal }) }),\n});\n\ndefineOperation({\n name: \"trust_zones_promote\",\n description: \"Promote a trust-zone record.\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.trustZonePromote({ recordId: optStr(input.recordId) ?? \"\", targetZone: (optStr(input.targetZone) ?? \"working\") as import(\"./trust-zones.js\").TrustZoneName, promotionReason: optStr(input.promotionReason) ?? \"\", dryRun: input.dryRun === true, namespace: optStr(input.namespace), authenticatedPrincipal: ctx.authenticatedPrincipal }) }),\n});\n\ndefineOperation({\n name: \"trust_zones_demo_seed\",\n description: \"Seed demo trust-zone records.\",\n schema: looseSchema,\n handler: async (input, ctx) => ({ result: await ctx.service.trustZoneDemoSeed({ scenario: optStr(input.scenario), dryRun: input.dryRun === true, namespace: optStr(input.namespace), authenticatedPrincipal: ctx.authenticatedPrincipal }) }),\n});\n\ndefineOperation({\n name: \"citations_observed\",\n description: \"Record observed citations (HTTP POST /v1/citations/observed).\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n // The HTTP handler has complex citation-entry parsing; this operation\n // owns the shape validation boundary. The handler forwards the cleaned\n // input so the transport-specific entry parsing stays in the surface.\n return { result: { ok: true } };\n },\n});\n\ndefineOperation({\n name: \"contradiction_detail\",\n description: \"Get a single contradiction pair detail (HTTP GET /review/contradictions/:id).\",\n schema: looseSchema,\n handler: async (input, ctx) => {\n const { listPairs } = await import(\"./contradiction/contradiction-review.js\");\n const result = await listPairs(ctx.service.memoryDir, {\n filter: \"all\" as const,\n namespace: optStr(input.namespace),\n includeUnscopedForNamespace: false,\n limit: 1,\n });\n return { result };\n },\n});\n\n// ===========================================================================\n// SSE-stream operations (endpoint registration; streaming handled by transport)\n// ===========================================================================\n\ndefineOperation({\n name: \"offline_sync_snapshot_stream\",\n description: \"Stream offline-sync snapshot updates (SSE).\",\n schema: looseSchema,\n handler: async (_input, ctx) => ({ result: await ctx.service.offlineSyncSnapshotStream() }),\n});\n\ndefineOperation({\n name: \"graph_events\",\n description: \"Stream graph mutation events (SSE). Endpoint registration only.\",\n schema: looseSchema,\n handler: async (_input, _ctx) => ({ result: { stream: \"sse\" } }),\n});\n\ndefineOperation({\n name: \"chat_message\",\n description: \"Send a message to Remnic Chat (issue #1583). Endpoint registration only — the handler enforces the chat_disabled gate, message validation, and the confirmation protocol.\",\n schema: looseSchema,\n handler: async (_input, _ctx) => ({ result: { ok: true } }),\n});\n\ndefineOperation({\n name: \"chat_events\",\n description: \"Stream chat session transcript events (SSE, issue #1583). Endpoint registration only.\",\n schema: looseSchema,\n handler: async (_input, _ctx) => ({ result: { stream: \"sse\" } }),\n});\n"],"mappings":"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","names":[]}
@@ -49,4 +49,4 @@ export {
49
49
  sanitizeMemoryContent,
50
50
  isSafeMemoryContent
51
51
  };
52
- //# sourceMappingURL=chunk-FVQJYWH7.js.map
52
+ //# sourceMappingURL=chunk-5GKPFL3S.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/sanitize.ts"],"sourcesContent":["const rx = (...parts: string[]): RegExp => new RegExp(parts.join(\"\"), \"i\");\n\nconst INJECTION_PATTERNS: RegExp[] = [\n rx(\"ignore\\\\s+(all\\\\s+)?\", \"(previous|prior|above)\", \"\\\\s+(instructions?|prompts?|context)\"),\n rx(\"forget\\\\s+\", \"(everything|all|previous|what)\"),\n rx(\n \"new\\\\s+(\",\n \"system\",\n \"\\\\s+)?\",\n \"prompt:\",\n ),\n rx(\"\\\\[\", \"system\", \"\\\\]\"),\n rx(\"<\\\\s*\", \"system\", \"\\\\s*>\"),\n rx(\"you\\\\s+are\\\\s+now\\\\s+(?!called|named)\"),\n rx(\"disregard\\\\s+(all\\\\s+)?\", \"(previous|prior)\"),\n rx(\n \"over\",\n \"ride\\\\s+(previous\\\\s+)?\",\n \"(instructions?|\",\n \"prompt)\",\n ),\n rx(\"act\\\\s+as\\\\s+(?:an?\\\\s+)?(?:AI|assistant|ChatGPT|GPT|Claude|LLM)\\\\s+(?:without|that\\\\s+ignores)\"),\n rx(\"do\\\\s+not\\\\s+(?:follow|obey)\\\\s+(?:previous|prior|your)\\\\s+\", \"instructions\"),\n rx(\"pretend\\\\s+(?:you\\\\s+)?(?:have\\\\s+no|you\\\\s+don.?t\\\\s+have)\\\\s+(restrictions|guidelines|rules)\"),\n];\n\nexport type SanitizeResult = {\n clean: boolean;\n text: string;\n violations: string[];\n};\n\nconst REDACTED_PLACEHOLDER = \"[content removed: unsafe memory text]\";\n\nexport function sanitizeMemoryContent(text: string): SanitizeResult {\n const source = typeof text === \"string\" ? text : \"\";\n const violations: string[] = [];\n\n for (const pattern of INJECTION_PATTERNS) {\n if (pattern.test(source)) {\n violations.push(pattern.source);\n }\n }\n\n if (violations.length === 0) {\n return { clean: true, text: source, violations: [] };\n }\n\n return {\n clean: false,\n text: REDACTED_PLACEHOLDER,\n violations,\n };\n}\n\nexport function isSafeMemoryContent(text: string): boolean {\n return sanitizeMemoryContent(text).clean;\n}\n"],"mappings":";AAAA,IAAM,KAAK,IAAI,UAA4B,IAAI,OAAO,MAAM,KAAK,EAAE,GAAG,GAAG;AAEzE,IAAM,qBAA+B;AAAA,EACnC,GAAG,wBAAwB,0BAA0B,sCAAsC;AAAA,EAC3F,GAAG,cAAc,gCAAgC;AAAA,EACjD;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,GAAG,OAAO,UAAU,KAAK;AAAA,EACzB,GAAG,SAAS,UAAU,OAAO;AAAA,EAC7B,GAAG,uCAAuC;AAAA,EAC1C,GAAG,2BAA2B,kBAAkB;AAAA,EAChD;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,GAAG,iGAAiG;AAAA,EACpG,GAAG,+DAA+D,cAAc;AAAA,EAChF,GAAG,gGAAgG;AACrG;AAQA,IAAM,uBAAuB;AAEtB,SAAS,sBAAsB,MAA8B;AAClE,QAAM,SAAS,OAAO,SAAS,WAAW,OAAO;AACjD,QAAM,aAAuB,CAAC;AAE9B,aAAW,WAAW,oBAAoB;AACxC,QAAI,QAAQ,KAAK,MAAM,GAAG;AACxB,iBAAW,KAAK,QAAQ,MAAM;AAAA,IAChC;AAAA,EACF;AAEA,MAAI,WAAW,WAAW,GAAG;AAC3B,WAAO,EAAE,OAAO,MAAM,MAAM,QAAQ,YAAY,CAAC,EAAE;AAAA,EACrD;AAEA,SAAO;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN;AAAA,EACF;AACF;AAEO,SAAS,oBAAoB,MAAuB;AACzD,SAAO,sBAAsB,IAAI,EAAE;AACrC;","names":[]}
1
+ {"version":3,"sources":["../src/sanitize.ts"],"sourcesContent":["const rx = (...parts: string[]): RegExp => new RegExp(parts.join(\"\"), \"i\");\n\nconst INJECTION_PATTERNS: RegExp[] = [\n rx(\"ignore\\\\s+(all\\\\s+)?\", \"(previous|prior|above)\", \"\\\\s+(instructions?|prompts?|context)\"),\n rx(\"forget\\\\s+\", \"(everything|all|previous|what)\"),\n rx(\n \"new\\\\s+(\",\n \"system\",\n \"\\\\s+)?\",\n \"prompt:\",\n ),\n rx(\"\\\\[\", \"system\", \"\\\\]\"),\n rx(\"<\\\\s*\", \"system\", \"\\\\s*>\"),\n rx(\"you\\\\s+are\\\\s+now\\\\s+(?!called|named)\"),\n rx(\"disregard\\\\s+(all\\\\s+)?\", \"(previous|prior)\"),\n rx(\n \"over\",\n \"ride\\\\s+(previous\\\\s+)?\",\n \"(instructions?|\",\n \"prompt)\",\n ),\n rx(\"act\\\\s+as\\\\s+(?:an?\\\\s+)?(?:AI|assistant|ChatGPT|GPT|Claude|LLM)\\\\s+(?:without|that\\\\s+ignores)\"),\n rx(\"do\\\\s+not\\\\s+(?:follow|obey)\\\\s+(?:previous|prior|your)\\\\s+\", \"instructions\"),\n rx(\"pretend\\\\s+(?:you\\\\s+)?(?:have\\\\s+no|you\\\\s+don.?t\\\\s+have)\\\\s+(restrictions|guidelines|rules)\"),\n];\n\nexport type SanitizeResult = {\n clean: boolean;\n text: string;\n violations: string[];\n};\n\nconst REDACTED_PLACEHOLDER = \"[content removed: unsafe memory text]\";\n\nexport function sanitizeMemoryContent(text: string): SanitizeResult {\n const source = typeof text === \"string\" ? text : \"\";\n const violations: string[] = [];\n\n for (const pattern of INJECTION_PATTERNS) {\n if (pattern.test(source)) {\n violations.push(pattern.source);\n }\n }\n\n if (violations.length === 0) {\n return { clean: true, text: source, violations: [] };\n }\n\n return {\n clean: false,\n text: REDACTED_PLACEHOLDER,\n violations,\n };\n}\n\nexport function isSafeMemoryContent(text: string): boolean {\n return sanitizeMemoryContent(text).clean;\n}\n\n// Issue #1582 hygiene §2 — handles are render-time-only tokens; when an agent\n// echoes one back into a turn, the orchestrator strips it via this name before\n// the turn enters the extraction buffer (rule 23). Re-exported from the pure\n// recall-handles module so every content-sanitization concern lives here.\nexport { stripHandles as stripMemoryHandles } from \"./recall-handles.js\";\n"],"mappings":";AAAA,IAAM,KAAK,IAAI,UAA4B,IAAI,OAAO,MAAM,KAAK,EAAE,GAAG,GAAG;AAEzE,IAAM,qBAA+B;AAAA,EACnC,GAAG,wBAAwB,0BAA0B,sCAAsC;AAAA,EAC3F,GAAG,cAAc,gCAAgC;AAAA,EACjD;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,GAAG,OAAO,UAAU,KAAK;AAAA,EACzB,GAAG,SAAS,UAAU,OAAO;AAAA,EAC7B,GAAG,uCAAuC;AAAA,EAC1C,GAAG,2BAA2B,kBAAkB;AAAA,EAChD;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,GAAG,iGAAiG;AAAA,EACpG,GAAG,+DAA+D,cAAc;AAAA,EAChF,GAAG,gGAAgG;AACrG;AAQA,IAAM,uBAAuB;AAEtB,SAAS,sBAAsB,MAA8B;AAClE,QAAM,SAAS,OAAO,SAAS,WAAW,OAAO;AACjD,QAAM,aAAuB,CAAC;AAE9B,aAAW,WAAW,oBAAoB;AACxC,QAAI,QAAQ,KAAK,MAAM,GAAG;AACxB,iBAAW,KAAK,QAAQ,MAAM;AAAA,IAChC;AAAA,EACF;AAEA,MAAI,WAAW,WAAW,GAAG;AAC3B,WAAO,EAAE,OAAO,MAAM,MAAM,QAAQ,YAAY,CAAC,EAAE;AAAA,EACrD;AAEA,SAAO;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN;AAAA,EACF;AACF;AAEO,SAAS,oBAAoB,MAAuB;AACzD,SAAO,sBAAsB,IAAI,EAAE;AACrC;","names":[]}
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-O75CRYGF.js";
16
16
  import {
17
17
  coerceInstallExtension
18
- } from "./chunk-SK2CR6MW.js";
18
+ } from "./chunk-RVLB4E6N.js";
19
19
  import {
20
20
  expandTildePath
21
21
  } from "./chunk-EYIEWJNI.js";
@@ -2254,4 +2254,4 @@ export {
2254
2254
  resolveWeCloneProxyConfigPath,
2255
2255
  buildWeCloneProxyConfig
2256
2256
  };
2257
- //# sourceMappingURL=chunk-LQ4J7ELC.js.map
2257
+ //# sourceMappingURL=chunk-67HG7KFE.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  parseXrayFormat
3
- } from "./chunk-5QUS24F7.js";
3
+ } from "./chunk-I56LKMF7.js";
4
4
  import {
5
5
  RECALL_DISCLOSURE_LEVELS,
6
6
  isRecallDisclosure
7
- } from "./chunk-BOGENF7P.js";
7
+ } from "./chunk-MSVSP5VO.js";
8
8
 
9
9
  // src/recall-xray-cli.ts
10
10
  function parseXrayDisclosureFlag(value) {
@@ -50,4 +50,4 @@ export {
50
50
  parseXrayBudgetFlag,
51
51
  parseXrayCliOptions
52
52
  };
53
- //# sourceMappingURL=chunk-ZBG4K36I.js.map
53
+ //# sourceMappingURL=chunk-6FUJ2VYY.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  resolveDefaultNamespaceRoot,
3
3
  resolveNamespaceStorageRoot
4
- } from "./chunk-BQCFXAMN.js";
4
+ } from "./chunk-MPHDVHIB.js";
5
5
  import {
6
6
  namespaceIdentityFromToken,
7
7
  namespaceIdentityToken,
@@ -1950,4 +1950,4 @@ export {
1950
1950
  runNamespaceMaintenancePlan,
1951
1951
  runNamespaceMaintenanceBatchPlan
1952
1952
  };
1953
- //# sourceMappingURL=chunk-GMRNKPWO.js.map
1953
+ //# sourceMappingURL=chunk-6QUPUTT7.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-JSDZMOT7.js";
3
+ } from "./chunk-OC56UWV5.js";
4
4
 
5
5
  // src/semantic-rule-promotion.ts
6
6
  import { createHash, randomUUID } from "crypto";
@@ -529,4 +529,4 @@ export {
529
529
  setSemanticRulePromotionTestHooks,
530
530
  promoteSemanticRuleFromMemory
531
531
  };
532
- //# sourceMappingURL=chunk-Z56IHRVV.js.map
532
+ //# sourceMappingURL=chunk-6UU43ZGD.js.map
@@ -1,10 +1,10 @@
1
+ import {
2
+ SQLITE_SCHEMA_VERSION
3
+ } from "./chunk-Z734BLO3.js";
1
4
  import {
2
5
  parseConflictPolicy,
3
6
  validateManifestRecords
4
7
  } from "./chunk-G4IAEX6D.js";
5
- import {
6
- SQLITE_SCHEMA_VERSION
7
- } from "./chunk-Z734BLO3.js";
8
8
  import {
9
9
  openBetterSqlite3
10
10
  } from "./chunk-6KYMPV2O.js";
@@ -84,4 +84,4 @@ async function importSqlite(opts) {
84
84
  export {
85
85
  importSqlite
86
86
  };
87
- //# sourceMappingURL=chunk-APJQ6UEA.js.map
87
+ //# sourceMappingURL=chunk-AGNBY3VG.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isRecallDisclosure
3
- } from "./chunk-BOGENF7P.js";
3
+ } from "./chunk-MSVSP5VO.js";
4
4
  import {
5
5
  normalizeRetrievedMemoryProvenance
6
6
  } from "./chunk-I4WBNM3M.js";
@@ -277,4 +277,4 @@ export {
277
277
  RecallXrayBuilder,
278
278
  summarizeDisclosureTokens
279
279
  };
280
- //# sourceMappingURL=chunk-OWOKOFXK.js.map
280
+ //# sourceMappingURL=chunk-AJOIM6UR.js.map
@@ -1,3 +1,6 @@
1
+ import {
2
+ HermesAdapter
3
+ } from "./chunk-42NQ7AVG.js";
1
4
  import {
2
5
  ReplitAdapter
3
6
  } from "./chunk-TMSXWOBZ.js";
@@ -7,9 +10,6 @@ import {
7
10
  import {
8
11
  CodexAdapter
9
12
  } from "./chunk-RSUYKGGZ.js";
10
- import {
11
- HermesAdapter
12
- } from "./chunk-42NQ7AVG.js";
13
13
 
14
14
  // src/adapters/registry.ts
15
15
  var AdapterRegistry = class {
@@ -53,4 +53,4 @@ var AdapterRegistry = class {
53
53
  export {
54
54
  AdapterRegistry
55
55
  };
56
- //# sourceMappingURL=chunk-JBPKEARU.js.map
56
+ //# sourceMappingURL=chunk-AU7Q3LSC.js.map