@remnic/core 9.3.770 → 9.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/dist/access-admin-ops-surface.js +35 -35
  2. package/dist/access-boundary.js +36 -36
  3. package/dist/access-cli.js +109 -108
  4. package/dist/access-cli.js.map +1 -1
  5. package/dist/access-http.js +47 -46
  6. package/dist/access-identity-continuity-surface.js +35 -35
  7. package/dist/access-lcm-surface.js +35 -35
  8. package/dist/access-mcp-output-schemas.d.ts +20 -0
  9. package/dist/access-mcp-output-schemas.js +8 -0
  10. package/dist/access-mcp.js +44 -43
  11. package/dist/access-observe-write-surface.js +35 -35
  12. package/dist/access-operations-batch.js +40 -40
  13. package/dist/access-operations.d.ts +4 -4
  14. package/dist/access-operations.js +42 -42
  15. package/dist/access-recall-surface.js +35 -35
  16. package/dist/access-schema.d.ts +68 -68
  17. package/dist/access-schema.js +3 -3
  18. package/dist/access-service.js +35 -35
  19. package/dist/active-recall.js +2 -2
  20. package/dist/adapters/index.js +4 -4
  21. package/dist/adapters/registry.js +2 -2
  22. package/dist/{auto-sync-2SOUW4JW.js → auto-sync-M47VTCFI.js} +7 -7
  23. package/dist/bootstrap.js +2 -2
  24. package/dist/boxes.js +2 -2
  25. package/dist/briefing.js +10 -10
  26. package/dist/buffer.js +2 -2
  27. package/dist/calibration.js +4 -4
  28. package/dist/causal-behavior.js +4 -4
  29. package/dist/causal-chain.js +4 -4
  30. package/dist/causal-consolidation.js +15 -15
  31. package/dist/causal-retrieval.js +4 -4
  32. package/dist/causal-trajectory-graph.js +1 -1
  33. package/dist/causal-trajectory.js +1 -1
  34. package/dist/{chunk-7FL4CNPV.js → chunk-2A3OXAP2.js} +2 -2
  35. package/dist/{chunk-GG6AJN7A.js → chunk-2IZAGAJR.js} +2 -2
  36. package/dist/{chunk-ZG4FT6IT.js → chunk-2TCZE3C2.js} +3 -3
  37. package/dist/chunk-37CTGERM.js +62 -0
  38. package/dist/chunk-37CTGERM.js.map +1 -0
  39. package/dist/{chunk-KYYL4U6X.js → chunk-42BBIR33.js} +2 -2
  40. package/dist/{chunk-DQC3ZZYM.js → chunk-4KJLYTLS.js} +2 -2
  41. package/dist/{chunk-7OSULYN2.js → chunk-4NMATTXV.js} +2 -2
  42. package/dist/{chunk-GY3SKOS4.js → chunk-5EZXHU36.js} +2 -2
  43. package/dist/{chunk-IOENSSZC.js → chunk-5H56JAHW.js} +4 -4
  44. package/dist/{chunk-K2I3AWBR.js → chunk-5K5VEDFY.js} +2 -2
  45. package/dist/chunk-5RUE3GHQ.js +445 -0
  46. package/dist/chunk-5RUE3GHQ.js.map +1 -0
  47. package/dist/{chunk-IBAU2RZN.js → chunk-64ZYXSCO.js} +2 -2
  48. package/dist/{chunk-2MR3MFQB.js → chunk-6Y4JTNX7.js} +2 -2
  49. package/dist/{chunk-XG4NBBRW.js → chunk-7BAJAXGB.js} +2 -2
  50. package/dist/{chunk-L24JROPR.js → chunk-7WSLR2CU.js} +2 -2
  51. package/dist/{chunk-EXM3CQTZ.js → chunk-A3GOMRJG.js} +2 -2
  52. package/dist/{chunk-KFIAFHOC.js → chunk-ABGDGBDT.js} +2 -2
  53. package/dist/{chunk-3JOFWTQD.js → chunk-APMGGGTY.js} +3 -3
  54. package/dist/{chunk-JBPKEARU.js → chunk-AU7Q3LSC.js} +4 -4
  55. package/dist/{chunk-XHYGJVXL.js → chunk-AXTXN4T6.js} +2 -2
  56. package/dist/{chunk-5QANTTY2.js → chunk-BRDJ2HFP.js} +2 -2
  57. package/dist/{chunk-QMN3CIFS.js → chunk-CGS7UKWM.js} +2 -2
  58. package/dist/{chunk-KYC3RLYJ.js → chunk-CXLNZXG5.js} +1 -1
  59. package/dist/{chunk-3O3BZNSH.js → chunk-CZGIIADK.js} +10 -10
  60. package/dist/{chunk-QRDOSYOR.js → chunk-DBRYEIGY.js} +2 -2
  61. package/dist/{chunk-UC4YOAC2.js → chunk-E5BK6CGV.js} +2 -2
  62. package/dist/{chunk-TKZ3AL5V.js → chunk-EHK6KZHK.js} +2 -2
  63. package/dist/{chunk-JZ7P26GF.js → chunk-F53UF7CI.js} +2 -2
  64. package/dist/{chunk-SJHM6I4J.js → chunk-FC77VUX5.js} +2 -2
  65. package/dist/{chunk-DKTSR7EK.js → chunk-FDPZVY6D.js} +2 -2
  66. package/dist/{chunk-CSHUSYUM.js → chunk-FT37KV7R.js} +2 -2
  67. package/dist/{chunk-MLDAD27I.js → chunk-FWPHPN3V.js} +8 -8
  68. package/dist/{chunk-SRSPVFSJ.js → chunk-G47FEGGK.js} +4 -4
  69. package/dist/{chunk-OP43P53G.js → chunk-GEVIE5NV.js} +163 -73
  70. package/dist/chunk-GEVIE5NV.js.map +1 -0
  71. package/dist/{chunk-52TEPNL7.js → chunk-H25TAODC.js} +7 -7
  72. package/dist/{chunk-5ACKQLGA.js → chunk-H2EJNV2Z.js} +3 -3
  73. package/dist/{chunk-XDRJQMYL.js → chunk-H5IT5JL7.js} +2 -2
  74. package/dist/{chunk-TQT3USCG.js → chunk-HG32URJJ.js} +2 -2
  75. package/dist/{chunk-ZQNCHPTZ.js → chunk-HLTAPHZZ.js} +2 -2
  76. package/dist/{chunk-LOPZ2DWR.js → chunk-I73G4UH7.js} +2 -2
  77. package/dist/{chunk-EWGMA5W5.js → chunk-IGF4DII6.js} +20 -20
  78. package/dist/{chunk-DCWIQFNA.js → chunk-JI5AVXYO.js} +4 -4
  79. package/dist/{chunk-VUA4S7P6.js → chunk-JIKJPDQJ.js} +4 -4
  80. package/dist/{chunk-VQ34TERH.js → chunk-JZHHREBL.js} +2 -2
  81. package/dist/{chunk-IQVQJJL7.js → chunk-K2ZLHESQ.js} +2 -2
  82. package/dist/{chunk-PWFWCGOO.js → chunk-KAWTOYAW.js} +2 -2
  83. package/dist/{chunk-DJECGBBM.js → chunk-KQDNAXOM.js} +2 -2
  84. package/dist/{chunk-WIWPSQYU.js → chunk-KQPJLK3X.js} +2 -2
  85. package/dist/{chunk-QKUWPSU3.js → chunk-KS4PRHRD.js} +2 -2
  86. package/dist/{chunk-DMKMQTBH.js → chunk-L4UZBJNM.js} +2 -2
  87. package/dist/{chunk-IQ7WCZRW.js → chunk-LLMZK53N.js} +2 -2
  88. package/dist/{chunk-YTU7WKYN.js → chunk-MNUHL34L.js} +3 -3
  89. package/dist/{chunk-ZCWIH4LH.js → chunk-MRHFJV44.js} +2 -2
  90. package/dist/{chunk-W4H5A3TJ.js → chunk-MTR7BZQN.js} +3 -3
  91. package/dist/{chunk-PNLCEFE4.js → chunk-MTWKDOVO.js} +2 -2
  92. package/dist/{chunk-3YYWUHA7.js → chunk-MWH5MAFP.js} +5 -5
  93. package/dist/{chunk-OSMBC3JU.js → chunk-O2EL7EGG.js} +2 -2
  94. package/dist/{chunk-HW5EF6LV.js → chunk-O7BBFJLP.js} +2 -2
  95. package/dist/{chunk-EHQ5HO5T.js → chunk-OBMR4VIX.js} +1 -1
  96. package/dist/{chunk-WRBDUNSW.js → chunk-OH6BKCPB.js} +3 -3
  97. package/dist/{chunk-6SHAUM5S.js → chunk-OUMTBFSQ.js} +4 -4
  98. package/dist/{chunk-FLVL4L3L.js → chunk-OUXPVWTZ.js} +5 -5
  99. package/dist/{chunk-EEKDRAWX.js → chunk-PRTA6444.js} +2 -2
  100. package/dist/{chunk-WB4CFKZ4.js → chunk-QGS7Z7YU.js} +2 -2
  101. package/dist/{chunk-T4AWNIXJ.js → chunk-QICQ35K5.js} +2 -2
  102. package/dist/{chunk-UUH4YQOF.js → chunk-QLULYKWZ.js} +2 -2
  103. package/dist/{chunk-DBSMLRTO.js → chunk-QT2RZNRT.js} +2 -2
  104. package/dist/{chunk-HM6UJPPO.js → chunk-QWGNDWKB.js} +2 -2
  105. package/dist/{chunk-KCQA46NR.js → chunk-R5VAVVHP.js} +2 -2
  106. package/dist/{chunk-MYNRJGOY.js → chunk-RBGL4MKQ.js} +2 -2
  107. package/dist/{chunk-O7GOFAM3.js → chunk-RP7YXA67.js} +2 -2
  108. package/dist/{chunk-BVKCV2ZY.js → chunk-SMX5267P.js} +2 -2
  109. package/dist/{chunk-U72WWTLR.js → chunk-TH2KIPP7.js} +4 -4
  110. package/dist/{chunk-PSNMICC2.js → chunk-TKUQSXU4.js} +10 -10
  111. package/dist/{chunk-XBZQRZ6G.js → chunk-TN7THW5U.js} +2 -2
  112. package/dist/{chunk-O5EKTMOJ.js → chunk-UAOZJX5J.js} +16 -16
  113. package/dist/{chunk-JRZV3767.js → chunk-UI4FVU6T.js} +2 -2
  114. package/dist/{chunk-E6LXM2GE.js → chunk-UQI2NHTY.js} +55 -55
  115. package/dist/{chunk-W7VA5667.js → chunk-UQMCR5RW.js} +3 -3
  116. package/dist/{chunk-VGUOEDTU.js → chunk-V3UE5I5F.js} +2 -2
  117. package/dist/{chunk-STN5KMSS.js → chunk-VBBMTSOV.js} +7 -7
  118. package/dist/{chunk-5QJZLJ7Q.js → chunk-VBVSN2TV.js} +3 -3
  119. package/dist/{chunk-VL7DP3OW.js → chunk-VFSP73LP.js} +2 -2
  120. package/dist/{chunk-KMKBD66B.js → chunk-XOE5DYQL.js} +3 -3
  121. package/dist/{chunk-TGROC2UP.js → chunk-XXEOGY77.js} +9 -9
  122. package/dist/{chunk-NNL4LJAD.js → chunk-XZ5I7OZR.js} +5 -5
  123. package/dist/{chunk-7XGF5HCC.js → chunk-XZJMIJLW.js} +85 -85
  124. package/dist/{chunk-3NN73CM7.js → chunk-YFBTVOMB.js} +3 -3
  125. package/dist/{chunk-RZ3KJZYE.js → chunk-YM7IEUO7.js} +3 -3
  126. package/dist/{chunk-ZT34X56N.js → chunk-YPL66L3U.js} +2 -2
  127. package/dist/{chunk-ZZMRXJFY.js → chunk-ZIDSD6VC.js} +2 -2
  128. package/dist/cli.js +71 -70
  129. package/dist/compounding/engine.js +11 -11
  130. package/dist/compounding/preference-consolidator.js +1 -1
  131. package/dist/config.js +2 -2
  132. package/dist/connectors/codex-materialize-runner.js +11 -11
  133. package/dist/connectors/codex-materialize.js +2 -2
  134. package/dist/connectors/index.js +12 -12
  135. package/dist/contradiction/index.js +3 -3
  136. package/dist/{contradiction-scan-3FJYWS3G.js → contradiction-scan-SSKCAMLX.js} +3 -3
  137. package/dist/conversation-index/backend.js +5 -5
  138. package/dist/conversation-index/cleanup.js +2 -2
  139. package/dist/conversation-index/faiss-adapter.js +2 -2
  140. package/dist/conversation-index/indexer.js +2 -2
  141. package/dist/conversation-index/search.js +2 -2
  142. package/dist/day-summary.js +2 -2
  143. package/dist/embedding-fallback.js +2 -2
  144. package/dist/entity-retrieval.js +11 -11
  145. package/dist/extraction-faithfulness.js +5 -5
  146. package/dist/extraction-judge-telemetry.js +2 -2
  147. package/dist/extraction-judge-training.js +2 -2
  148. package/dist/extraction-judge.js +5 -5
  149. package/dist/extraction.js +9 -9
  150. package/dist/fallback-llm.js +4 -4
  151. package/dist/{forget-WYLR4ZFV.js → forget-KHF7A44H.js} +4 -4
  152. package/dist/{graph-edge-decay-RXUCJIN4.js → graph-edge-decay-FO7AM4UR.js} +3 -3
  153. package/dist/graph-snapshot.js +2 -2
  154. package/dist/graph.js +1 -1
  155. package/dist/index.js +146 -145
  156. package/dist/lcm/archive.js +2 -2
  157. package/dist/lcm/engine.js +5 -5
  158. package/dist/lcm/index.js +8 -8
  159. package/dist/lcm/schema.js +2 -2
  160. package/dist/lcm/summarizer.js +3 -3
  161. package/dist/local-llm.js +2 -2
  162. package/dist/logger.d.ts +8 -2
  163. package/dist/logger.js +1 -1
  164. package/dist/maintenance/memory-governance.js +10 -10
  165. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +10 -10
  166. package/dist/maintenance/rebuild-memory-projection.js +12 -12
  167. package/dist/model-registry.js +2 -2
  168. package/dist/models-json.js +2 -2
  169. package/dist/namespaces/migrate.js +23 -23
  170. package/dist/namespaces/search.js +13 -13
  171. package/dist/namespaces/storage.js +10 -10
  172. package/dist/native-knowledge.js +2 -2
  173. package/dist/negative.js +2 -2
  174. package/dist/operator-toolkit.js +30 -30
  175. package/dist/orchestration/compression-guideline-coordinator.js +2 -2
  176. package/dist/orchestration/maintenance.js +12 -12
  177. package/dist/orchestrator.js +109 -108
  178. package/dist/profiling.js +2 -2
  179. package/dist/qmd.js +2 -2
  180. package/dist/recall-planner-llm.js +4 -4
  181. package/dist/recall-qos.js +2 -2
  182. package/dist/recall-state.js +2 -2
  183. package/dist/relevance.js +2 -2
  184. package/dist/{resolution-33PIX3TT.js → resolution-VH4NGENZ.js} +3 -3
  185. package/dist/resolution-VH4NGENZ.js.map +1 -0
  186. package/dist/resolve-provider-secret.js +2 -2
  187. package/dist/resume-bundles.js +4 -4
  188. package/dist/retrieval-agents.js +2 -2
  189. package/dist/routing/store.js +2 -2
  190. package/dist/schemas.d.ts +84 -84
  191. package/dist/search/embed-helper.js +2 -2
  192. package/dist/search/factory.js +12 -12
  193. package/dist/search/index.js +12 -12
  194. package/dist/search/lancedb-backend.js +2 -2
  195. package/dist/search/meilisearch-backend.js +2 -2
  196. package/dist/search/orama-backend.js +2 -2
  197. package/dist/search/remote-backend.js +2 -2
  198. package/dist/semantic-consolidation.js +12 -12
  199. package/dist/semantic-rule-promotion.js +10 -10
  200. package/dist/semantic-rule-verifier.js +10 -10
  201. package/dist/session-observer-state.js +2 -2
  202. package/dist/session-transcript-migration.js +2 -2
  203. package/dist/shared-context/manager.d.ts +8 -8
  204. package/dist/shared-context/manager.js +2 -2
  205. package/dist/storage-guards.js +2 -2
  206. package/dist/storage.js +9 -9
  207. package/dist/summarizer.js +7 -7
  208. package/dist/temporal-supersession.js +2 -2
  209. package/dist/threading.js +2 -2
  210. package/dist/transcript.js +2 -2
  211. package/dist/transfer/autodetect.js +1 -1
  212. package/dist/transfer/backup.js +1 -1
  213. package/dist/transfer/capsule-export.js +2 -2
  214. package/dist/transfer/types.d.ts +66 -66
  215. package/dist/verified-recall.js +11 -11
  216. package/package.json +2 -2
  217. package/src/access-mcp-output-schemas.ts +472 -0
  218. package/src/access-mcp.ts +235 -143
  219. package/src/logger.test.ts +120 -0
  220. package/src/logger.ts +37 -9
  221. package/dist/chunk-NU3CSQ4H.js +0 -48
  222. package/dist/chunk-NU3CSQ4H.js.map +0 -1
  223. package/dist/chunk-OP43P53G.js.map +0 -1
  224. /package/dist/{contradiction-scan-3FJYWS3G.js.map → access-mcp-output-schemas.js.map} +0 -0
  225. /package/dist/{auto-sync-2SOUW4JW.js.map → auto-sync-M47VTCFI.js.map} +0 -0
  226. /package/dist/{chunk-7FL4CNPV.js.map → chunk-2A3OXAP2.js.map} +0 -0
  227. /package/dist/{chunk-GG6AJN7A.js.map → chunk-2IZAGAJR.js.map} +0 -0
  228. /package/dist/{chunk-ZG4FT6IT.js.map → chunk-2TCZE3C2.js.map} +0 -0
  229. /package/dist/{chunk-KYYL4U6X.js.map → chunk-42BBIR33.js.map} +0 -0
  230. /package/dist/{chunk-DQC3ZZYM.js.map → chunk-4KJLYTLS.js.map} +0 -0
  231. /package/dist/{chunk-7OSULYN2.js.map → chunk-4NMATTXV.js.map} +0 -0
  232. /package/dist/{chunk-GY3SKOS4.js.map → chunk-5EZXHU36.js.map} +0 -0
  233. /package/dist/{chunk-IOENSSZC.js.map → chunk-5H56JAHW.js.map} +0 -0
  234. /package/dist/{chunk-K2I3AWBR.js.map → chunk-5K5VEDFY.js.map} +0 -0
  235. /package/dist/{chunk-IBAU2RZN.js.map → chunk-64ZYXSCO.js.map} +0 -0
  236. /package/dist/{chunk-2MR3MFQB.js.map → chunk-6Y4JTNX7.js.map} +0 -0
  237. /package/dist/{chunk-XG4NBBRW.js.map → chunk-7BAJAXGB.js.map} +0 -0
  238. /package/dist/{chunk-L24JROPR.js.map → chunk-7WSLR2CU.js.map} +0 -0
  239. /package/dist/{chunk-EXM3CQTZ.js.map → chunk-A3GOMRJG.js.map} +0 -0
  240. /package/dist/{chunk-KFIAFHOC.js.map → chunk-ABGDGBDT.js.map} +0 -0
  241. /package/dist/{chunk-3JOFWTQD.js.map → chunk-APMGGGTY.js.map} +0 -0
  242. /package/dist/{chunk-JBPKEARU.js.map → chunk-AU7Q3LSC.js.map} +0 -0
  243. /package/dist/{chunk-XHYGJVXL.js.map → chunk-AXTXN4T6.js.map} +0 -0
  244. /package/dist/{chunk-5QANTTY2.js.map → chunk-BRDJ2HFP.js.map} +0 -0
  245. /package/dist/{chunk-QMN3CIFS.js.map → chunk-CGS7UKWM.js.map} +0 -0
  246. /package/dist/{chunk-KYC3RLYJ.js.map → chunk-CXLNZXG5.js.map} +0 -0
  247. /package/dist/{chunk-3O3BZNSH.js.map → chunk-CZGIIADK.js.map} +0 -0
  248. /package/dist/{chunk-QRDOSYOR.js.map → chunk-DBRYEIGY.js.map} +0 -0
  249. /package/dist/{chunk-UC4YOAC2.js.map → chunk-E5BK6CGV.js.map} +0 -0
  250. /package/dist/{chunk-TKZ3AL5V.js.map → chunk-EHK6KZHK.js.map} +0 -0
  251. /package/dist/{chunk-JZ7P26GF.js.map → chunk-F53UF7CI.js.map} +0 -0
  252. /package/dist/{chunk-SJHM6I4J.js.map → chunk-FC77VUX5.js.map} +0 -0
  253. /package/dist/{chunk-DKTSR7EK.js.map → chunk-FDPZVY6D.js.map} +0 -0
  254. /package/dist/{chunk-CSHUSYUM.js.map → chunk-FT37KV7R.js.map} +0 -0
  255. /package/dist/{chunk-MLDAD27I.js.map → chunk-FWPHPN3V.js.map} +0 -0
  256. /package/dist/{chunk-SRSPVFSJ.js.map → chunk-G47FEGGK.js.map} +0 -0
  257. /package/dist/{chunk-52TEPNL7.js.map → chunk-H25TAODC.js.map} +0 -0
  258. /package/dist/{chunk-5ACKQLGA.js.map → chunk-H2EJNV2Z.js.map} +0 -0
  259. /package/dist/{chunk-XDRJQMYL.js.map → chunk-H5IT5JL7.js.map} +0 -0
  260. /package/dist/{chunk-TQT3USCG.js.map → chunk-HG32URJJ.js.map} +0 -0
  261. /package/dist/{chunk-ZQNCHPTZ.js.map → chunk-HLTAPHZZ.js.map} +0 -0
  262. /package/dist/{chunk-LOPZ2DWR.js.map → chunk-I73G4UH7.js.map} +0 -0
  263. /package/dist/{chunk-EWGMA5W5.js.map → chunk-IGF4DII6.js.map} +0 -0
  264. /package/dist/{chunk-DCWIQFNA.js.map → chunk-JI5AVXYO.js.map} +0 -0
  265. /package/dist/{chunk-VUA4S7P6.js.map → chunk-JIKJPDQJ.js.map} +0 -0
  266. /package/dist/{chunk-VQ34TERH.js.map → chunk-JZHHREBL.js.map} +0 -0
  267. /package/dist/{chunk-IQVQJJL7.js.map → chunk-K2ZLHESQ.js.map} +0 -0
  268. /package/dist/{chunk-PWFWCGOO.js.map → chunk-KAWTOYAW.js.map} +0 -0
  269. /package/dist/{chunk-DJECGBBM.js.map → chunk-KQDNAXOM.js.map} +0 -0
  270. /package/dist/{chunk-WIWPSQYU.js.map → chunk-KQPJLK3X.js.map} +0 -0
  271. /package/dist/{chunk-QKUWPSU3.js.map → chunk-KS4PRHRD.js.map} +0 -0
  272. /package/dist/{chunk-DMKMQTBH.js.map → chunk-L4UZBJNM.js.map} +0 -0
  273. /package/dist/{chunk-IQ7WCZRW.js.map → chunk-LLMZK53N.js.map} +0 -0
  274. /package/dist/{chunk-YTU7WKYN.js.map → chunk-MNUHL34L.js.map} +0 -0
  275. /package/dist/{chunk-ZCWIH4LH.js.map → chunk-MRHFJV44.js.map} +0 -0
  276. /package/dist/{chunk-W4H5A3TJ.js.map → chunk-MTR7BZQN.js.map} +0 -0
  277. /package/dist/{chunk-PNLCEFE4.js.map → chunk-MTWKDOVO.js.map} +0 -0
  278. /package/dist/{chunk-3YYWUHA7.js.map → chunk-MWH5MAFP.js.map} +0 -0
  279. /package/dist/{chunk-OSMBC3JU.js.map → chunk-O2EL7EGG.js.map} +0 -0
  280. /package/dist/{chunk-HW5EF6LV.js.map → chunk-O7BBFJLP.js.map} +0 -0
  281. /package/dist/{chunk-EHQ5HO5T.js.map → chunk-OBMR4VIX.js.map} +0 -0
  282. /package/dist/{chunk-WRBDUNSW.js.map → chunk-OH6BKCPB.js.map} +0 -0
  283. /package/dist/{chunk-6SHAUM5S.js.map → chunk-OUMTBFSQ.js.map} +0 -0
  284. /package/dist/{chunk-FLVL4L3L.js.map → chunk-OUXPVWTZ.js.map} +0 -0
  285. /package/dist/{chunk-EEKDRAWX.js.map → chunk-PRTA6444.js.map} +0 -0
  286. /package/dist/{chunk-WB4CFKZ4.js.map → chunk-QGS7Z7YU.js.map} +0 -0
  287. /package/dist/{chunk-T4AWNIXJ.js.map → chunk-QICQ35K5.js.map} +0 -0
  288. /package/dist/{chunk-UUH4YQOF.js.map → chunk-QLULYKWZ.js.map} +0 -0
  289. /package/dist/{chunk-DBSMLRTO.js.map → chunk-QT2RZNRT.js.map} +0 -0
  290. /package/dist/{chunk-HM6UJPPO.js.map → chunk-QWGNDWKB.js.map} +0 -0
  291. /package/dist/{chunk-KCQA46NR.js.map → chunk-R5VAVVHP.js.map} +0 -0
  292. /package/dist/{chunk-MYNRJGOY.js.map → chunk-RBGL4MKQ.js.map} +0 -0
  293. /package/dist/{chunk-O7GOFAM3.js.map → chunk-RP7YXA67.js.map} +0 -0
  294. /package/dist/{chunk-BVKCV2ZY.js.map → chunk-SMX5267P.js.map} +0 -0
  295. /package/dist/{chunk-U72WWTLR.js.map → chunk-TH2KIPP7.js.map} +0 -0
  296. /package/dist/{chunk-PSNMICC2.js.map → chunk-TKUQSXU4.js.map} +0 -0
  297. /package/dist/{chunk-XBZQRZ6G.js.map → chunk-TN7THW5U.js.map} +0 -0
  298. /package/dist/{chunk-O5EKTMOJ.js.map → chunk-UAOZJX5J.js.map} +0 -0
  299. /package/dist/{chunk-JRZV3767.js.map → chunk-UI4FVU6T.js.map} +0 -0
  300. /package/dist/{chunk-E6LXM2GE.js.map → chunk-UQI2NHTY.js.map} +0 -0
  301. /package/dist/{chunk-W7VA5667.js.map → chunk-UQMCR5RW.js.map} +0 -0
  302. /package/dist/{chunk-VGUOEDTU.js.map → chunk-V3UE5I5F.js.map} +0 -0
  303. /package/dist/{chunk-STN5KMSS.js.map → chunk-VBBMTSOV.js.map} +0 -0
  304. /package/dist/{chunk-5QJZLJ7Q.js.map → chunk-VBVSN2TV.js.map} +0 -0
  305. /package/dist/{chunk-VL7DP3OW.js.map → chunk-VFSP73LP.js.map} +0 -0
  306. /package/dist/{chunk-KMKBD66B.js.map → chunk-XOE5DYQL.js.map} +0 -0
  307. /package/dist/{chunk-TGROC2UP.js.map → chunk-XXEOGY77.js.map} +0 -0
  308. /package/dist/{chunk-NNL4LJAD.js.map → chunk-XZ5I7OZR.js.map} +0 -0
  309. /package/dist/{chunk-7XGF5HCC.js.map → chunk-XZJMIJLW.js.map} +0 -0
  310. /package/dist/{chunk-3NN73CM7.js.map → chunk-YFBTVOMB.js.map} +0 -0
  311. /package/dist/{chunk-RZ3KJZYE.js.map → chunk-YM7IEUO7.js.map} +0 -0
  312. /package/dist/{chunk-ZT34X56N.js.map → chunk-YPL66L3U.js.map} +0 -0
  313. /package/dist/{chunk-ZZMRXJFY.js.map → chunk-ZIDSD6VC.js.map} +0 -0
  314. /package/dist/{graph-edge-decay-RXUCJIN4.js.map → contradiction-scan-SSKCAMLX.js.map} +0 -0
  315. /package/dist/{forget-WYLR4ZFV.js.map → forget-KHF7A44H.js.map} +0 -0
  316. /package/dist/{resolution-33PIX3TT.js.map → graph-edge-decay-FO7AM4UR.js.map} +0 -0
@@ -0,0 +1,472 @@
1
+ /**
2
+ * Output-schema registry for MCP tools — extracted from access-mcp.ts to
3
+ * keep that file under the 3000-LOC structural ratchet.
4
+ *
5
+ * Contains the per-suffix JSON-Schema declarations (derived from
6
+ * production TS return contracts) and the application helper that
7
+ * assigns schemas to tool objects.
8
+ */
9
+
10
+ const T_STRING = { type: "string" } as const;
11
+ const T_NUMBER = { type: "number" } as const;
12
+ const T_BOOLEAN = { type: "boolean" } as const;
13
+ const T_ARRAY = { type: "array" } as const;
14
+ const T_OBJECT = { type: "object" } as const;
15
+ const T_NULLABLE_OBJECT = { type: ["object", "null"] } as const;
16
+ const T_NULLABLE_STRING = { type: ["string", "null"] } as const;
17
+
18
+ /** Build a JSON Schema object type with the given properties. */
19
+ function objectSchema(properties: Record<string, Readonly<Record<string, unknown>>>): Record<string, unknown> {
20
+ return { type: "object", properties, additionalProperties: true };
21
+ }
22
+
23
+ /**
24
+ * Per-suffix outputSchema registry. Tools not present here fall back to
25
+ * `{ type: "object", additionalProperties: true }` in the constructor pass.
26
+ * The `chatgpt_memory_inspector` tool ships its own precise schema and is
27
+ * intentionally absent — the apply pass skips tools that already have one.
28
+ */
29
+ const TOOL_OUTPUT_SCHEMAS: Readonly<Record<string, Record<string, unknown>>> = {
30
+ recall: objectSchema({
31
+ query: T_STRING,
32
+ namespace: T_STRING,
33
+ context: T_STRING,
34
+ count: T_NUMBER,
35
+ memoryIds: T_ARRAY,
36
+ results: T_ARRAY,
37
+ fallbackUsed: T_BOOLEAN,
38
+ sourcesUsed: T_ARRAY,
39
+ }),
40
+ recall_explain: objectSchema({
41
+ found: T_BOOLEAN,
42
+ snapshot: T_OBJECT,
43
+ intent: T_NULLABLE_OBJECT,
44
+ graph: T_NULLABLE_OBJECT,
45
+ }),
46
+ recall_tier_explain: objectSchema({ snapshotFound: T_BOOLEAN, tierExplain: T_NULLABLE_OBJECT }),
47
+ recall_xray: objectSchema({ snapshotFound: T_BOOLEAN, snapshot: T_OBJECT }),
48
+ set_coding_context: objectSchema({ ok: T_BOOLEAN }),
49
+ wearables_status: objectSchema({
50
+ enabled: T_BOOLEAN,
51
+ timezone: T_STRING,
52
+ sources: T_ARRAY,
53
+ connectorsInstalled: T_ARRAY,
54
+ }),
55
+ wearables_sync: T_ARRAY,
56
+ transcript_day: T_ARRAY,
57
+ transcript_search: T_ARRAY,
58
+ transcript_memories: T_ARRAY,
59
+ action_confidence: objectSchema({
60
+ schemaVersion: T_NUMBER,
61
+ decision: T_STRING,
62
+ confidence: T_NUMBER,
63
+ risk: T_STRING,
64
+ contextReadiness: T_STRING,
65
+ intendedAction: T_STRING,
66
+ attentionPolicy: T_STRING,
67
+ principle: T_STRING,
68
+ reasons: T_ARRAY,
69
+ blockers: T_ARRAY,
70
+ factors: T_ARRAY,
71
+ retrievedMemoryCount: T_NUMBER,
72
+ scopeMismatchCount: T_NUMBER,
73
+ safeToAct: T_BOOLEAN,
74
+ }),
75
+ day_summary: {
76
+ type: ["object", "null"],
77
+ properties: { summary: T_STRING, bullets: T_ARRAY, next_actions: T_ARRAY, risks_or_open_loops: T_ARRAY },
78
+ additionalProperties: true,
79
+ },
80
+ capsule_export: objectSchema({
81
+ archivePath: T_STRING,
82
+ manifestPath: T_STRING,
83
+ encryptedArchivePath: T_NULLABLE_STRING,
84
+ manifest: T_OBJECT,
85
+ }),
86
+ capsule_import: objectSchema({ imported: T_ARRAY, skipped: T_ARRAY, manifest: T_OBJECT }),
87
+ capsule_list: objectSchema({ namespace: T_STRING, capsulesDir: T_STRING, capsules: T_ARRAY }),
88
+ memory_governance_run: objectSchema({
89
+ namespace: T_STRING,
90
+ runId: T_STRING,
91
+ traceId: T_STRING,
92
+ mode: T_STRING,
93
+ reviewQueueCount: T_NUMBER,
94
+ proposedActionCount: T_NUMBER,
95
+ appliedActionCount: T_NUMBER,
96
+ summaryPath: T_STRING,
97
+ reportPath: T_STRING,
98
+ }),
99
+ procedure_mining_run: objectSchema({ namespace: T_STRING, clustersProcessed: T_NUMBER, proceduresWritten: T_NUMBER }),
100
+ pattern_reinforcement_run: objectSchema({
101
+ namespace: T_STRING,
102
+ ran: T_BOOLEAN,
103
+ clustersFound: T_NUMBER,
104
+ canonicalsUpdated: T_NUMBER,
105
+ duplicatesSuperseded: T_NUMBER,
106
+ }),
107
+ procedural_stats: objectSchema({ namespace: T_STRING, counts: T_OBJECT, recent: T_OBJECT }),
108
+ memory_get: objectSchema({ found: T_BOOLEAN, namespace: T_STRING, memory: T_NULLABLE_OBJECT }),
109
+ memory_timeline: objectSchema({ found: T_BOOLEAN, namespace: T_STRING, count: T_NUMBER, timeline: T_ARRAY }),
110
+ memory_store: objectSchema({
111
+ schemaVersion: T_NUMBER,
112
+ operation: T_STRING,
113
+ namespace: T_STRING,
114
+ dryRun: T_BOOLEAN,
115
+ accepted: T_BOOLEAN,
116
+ queued: T_BOOLEAN,
117
+ status: T_STRING,
118
+ memoryId: T_STRING,
119
+ }),
120
+ suggestion_submit: objectSchema({
121
+ schemaVersion: T_NUMBER,
122
+ operation: T_STRING,
123
+ namespace: T_STRING,
124
+ dryRun: T_BOOLEAN,
125
+ accepted: T_BOOLEAN,
126
+ queued: T_BOOLEAN,
127
+ status: T_STRING,
128
+ memoryId: T_STRING,
129
+ }),
130
+ entity_get: objectSchema({ found: T_BOOLEAN, namespace: T_STRING, entity: T_NULLABLE_OBJECT }),
131
+ review_queue_list: objectSchema({ found: T_BOOLEAN, runId: T_STRING, reviewQueue: T_ARRAY }),
132
+ observe: objectSchema({
133
+ accepted: T_NUMBER,
134
+ sessionKey: T_STRING,
135
+ namespace: T_STRING,
136
+ effectiveNamespace: T_STRING,
137
+ lcmArchived: T_BOOLEAN,
138
+ extractionQueued: T_BOOLEAN,
139
+ }),
140
+ lcm_search: objectSchema({
141
+ query: T_STRING,
142
+ namespace: T_STRING,
143
+ results: T_ARRAY,
144
+ count: T_NUMBER,
145
+ lcmEnabled: T_BOOLEAN,
146
+ }),
147
+ lcm_compaction_flush: objectSchema({
148
+ enabled: T_BOOLEAN,
149
+ flushed: T_BOOLEAN,
150
+ sessionKey: T_STRING,
151
+ namespace: T_STRING,
152
+ }),
153
+ lcm_compaction_record: objectSchema({
154
+ enabled: T_BOOLEAN,
155
+ recorded: T_BOOLEAN,
156
+ sessionKey: T_STRING,
157
+ namespace: T_STRING,
158
+ }),
159
+ continuity_audit_generate: objectSchema({ enabled: T_BOOLEAN, period: T_STRING, reportPath: T_STRING }),
160
+ continuity_incident_open: objectSchema({ created: T_BOOLEAN, incident: T_NULLABLE_OBJECT }),
161
+ continuity_incident_close: objectSchema({ closed: T_BOOLEAN, incident: T_NULLABLE_OBJECT }),
162
+ continuity_incident_list: objectSchema({ incidents: T_ARRAY }),
163
+ continuity_loop_add_or_update: objectSchema({ saved: T_BOOLEAN, loop: T_NULLABLE_OBJECT }),
164
+ continuity_loop_review: objectSchema({ reviewed: T_BOOLEAN, loop: T_NULLABLE_OBJECT }),
165
+ identity_anchor_get: objectSchema({ found: T_BOOLEAN, anchor: T_NULLABLE_STRING }),
166
+ identity_anchor_update: objectSchema({ updated: T_BOOLEAN, sections: T_ARRAY }),
167
+ memory_identity: objectSchema({ found: T_BOOLEAN, identity: T_NULLABLE_STRING, message: T_STRING }),
168
+ work_task: objectSchema({
169
+ action: T_STRING,
170
+ task: T_NULLABLE_OBJECT,
171
+ tasks: T_ARRAY,
172
+ count: T_NUMBER,
173
+ deleted: T_BOOLEAN,
174
+ }),
175
+ work_project: objectSchema({
176
+ action: T_STRING,
177
+ project: T_NULLABLE_OBJECT,
178
+ projects: T_ARRAY,
179
+ count: T_NUMBER,
180
+ deleted: T_BOOLEAN,
181
+ }),
182
+ work_board: objectSchema({ action: T_STRING, markdown: T_STRING, snapshot: T_OBJECT, result: T_OBJECT }),
183
+ shared_context_write_output: objectSchema({ written: T_BOOLEAN, path: T_STRING }),
184
+ shared_feedback_record: objectSchema({ recorded: T_BOOLEAN }),
185
+ shared_priorities_append: objectSchema({ appended: T_BOOLEAN }),
186
+ shared_context_cross_signals_run: objectSchema({
187
+ crossSignalsMarkdownPath: T_STRING,
188
+ crossSignalsPath: T_STRING,
189
+ sourceCount: T_NUMBER,
190
+ feedbackCount: T_NUMBER,
191
+ overlapCount: T_NUMBER,
192
+ }),
193
+ shared_context_curate_daily: objectSchema({
194
+ roundtablePath: T_STRING,
195
+ crossSignalsMarkdownPath: T_STRING,
196
+ crossSignalsPath: T_STRING,
197
+ overlapCount: T_NUMBER,
198
+ }),
199
+ compounding_weekly_synthesize: objectSchema({
200
+ weekId: T_STRING,
201
+ reportPath: T_STRING,
202
+ reportJsonPath: T_STRING,
203
+ rubricsPath: T_STRING,
204
+ rubricsIndexPath: T_STRING,
205
+ mistakesCount: T_NUMBER,
206
+ promotionCandidateCount: T_NUMBER,
207
+ }),
208
+ compounding_promote_candidate: objectSchema({
209
+ enabled: T_BOOLEAN,
210
+ dryRun: T_BOOLEAN,
211
+ weekId: T_STRING,
212
+ promoted: T_ARRAY,
213
+ skipped: T_ARRAY,
214
+ tombstoneBlocked: T_ARRAY,
215
+ }),
216
+ compression_guidelines_optimize: objectSchema({
217
+ enabled: T_BOOLEAN,
218
+ dryRun: T_BOOLEAN,
219
+ eventCount: T_NUMBER,
220
+ nextGuidelineVersion: T_NUMBER,
221
+ changedRules: T_NUMBER,
222
+ semanticRefinementApplied: T_BOOLEAN,
223
+ persisted: T_BOOLEAN,
224
+ }),
225
+ compression_guidelines_activate: objectSchema({
226
+ enabled: T_BOOLEAN,
227
+ activated: T_BOOLEAN,
228
+ guidelineVersion: { type: ["number", "null"] } as const,
229
+ }),
230
+ memory_search: objectSchema({ query: T_STRING, results: T_ARRAY, count: T_NUMBER }),
231
+ memory_profile: objectSchema({ profile: T_STRING }),
232
+ memory_entities_list: objectSchema({ entities: T_ARRAY, count: T_NUMBER }),
233
+ memory_questions: objectSchema({ questions: T_ARRAY, count: T_NUMBER }),
234
+ memory_last_recall: objectSchema({
235
+ sessionKey: T_STRING,
236
+ recordedAt: T_STRING,
237
+ queryHash: T_STRING,
238
+ queryLen: T_NUMBER,
239
+ memoryIds: T_ARRAY,
240
+ namespace: T_STRING,
241
+ recallNamespaces: T_ARRAY,
242
+ plannerMode: T_STRING,
243
+ requestedMode: T_STRING,
244
+ source: T_STRING,
245
+ fallbackUsed: T_BOOLEAN,
246
+ sourcesUsed: T_ARRAY,
247
+ latencyMs: T_NUMBER,
248
+ resultPaths: T_ARRAY,
249
+ message: T_NULLABLE_STRING,
250
+ }),
251
+ memory_intent_debug: objectSchema({
252
+ recordedAt: T_STRING,
253
+ promptHash: T_STRING,
254
+ promptLength: T_NUMBER,
255
+ retrievalQueryHash: T_STRING,
256
+ retrievalQueryLength: T_NUMBER,
257
+ plannerEnabled: T_BOOLEAN,
258
+ plannedMode: T_STRING,
259
+ effectiveMode: T_STRING,
260
+ recallResultLimit: T_NUMBER,
261
+ queryIntent: T_OBJECT,
262
+ graphExpandedIntentDetected: T_BOOLEAN,
263
+ graphDecision: T_OBJECT,
264
+ message: T_NULLABLE_STRING,
265
+ }),
266
+ memory_qmd_debug: objectSchema({
267
+ recordedAt: T_STRING,
268
+ queryHash: T_STRING,
269
+ queryLength: T_NUMBER,
270
+ collection: T_STRING,
271
+ namespaces: T_ARRAY,
272
+ fetchLimit: T_NUMBER,
273
+ primaryResultCount: T_NUMBER,
274
+ hybridResultCount: T_NUMBER,
275
+ queryAwareSeedCount: T_NUMBER,
276
+ resultCount: T_NUMBER,
277
+ intentHint: T_STRING,
278
+ explainEnabled: T_BOOLEAN,
279
+ hybridTopUpUsed: T_BOOLEAN,
280
+ hybridTopUpSkippedReason: T_STRING,
281
+ results: T_ARRAY,
282
+ message: T_NULLABLE_STRING,
283
+ }),
284
+ memory_graph_explain: objectSchema({ explanation: T_STRING }),
285
+ graph_snapshot: objectSchema({ nodes: T_ARRAY, edges: T_ARRAY }),
286
+ memory_feedback: objectSchema({ recorded: T_BOOLEAN, enabled: T_BOOLEAN }),
287
+ memory_promote: objectSchema({ promoted: T_BOOLEAN, memoryId: T_STRING }),
288
+ memory_outcome: objectSchema({
289
+ ok: T_BOOLEAN,
290
+ memoryId: T_STRING,
291
+ mw_success: T_NUMBER,
292
+ mw_fail: T_NUMBER,
293
+ reason: T_STRING,
294
+ message: T_STRING,
295
+ }),
296
+ memory_action_apply: objectSchema({ recorded: T_BOOLEAN, event: T_OBJECT }),
297
+ context_checkpoint: objectSchema({ saved: T_BOOLEAN }),
298
+ briefing: objectSchema({
299
+ markdown: T_STRING,
300
+ json: T_OBJECT,
301
+ window: T_OBJECT,
302
+ format: T_STRING,
303
+ namespace: T_STRING,
304
+ }),
305
+ review_list: objectSchema({ pairs: T_ARRAY, total: T_NUMBER, durationMs: T_NUMBER }),
306
+ review_resolve: objectSchema({ pairId: T_STRING, verb: T_STRING, affectedIds: T_ARRAY, message: T_STRING }),
307
+ contradiction_scan_run: objectSchema({
308
+ scanned: T_NUMBER,
309
+ candidates: T_NUMBER,
310
+ judged: T_NUMBER,
311
+ queued: T_NUMBER,
312
+ cooledDown: T_NUMBER,
313
+ elapsedMs: T_NUMBER,
314
+ }),
315
+ memory_summarize_hourly: objectSchema({ ok: T_BOOLEAN, message: T_STRING }),
316
+ conversation_index_update: objectSchema({
317
+ enabled: T_BOOLEAN,
318
+ sessions: T_NUMBER,
319
+ chunks: T_NUMBER,
320
+ skipped: T_NUMBER,
321
+ embeddedRuns: T_NUMBER,
322
+ }),
323
+ profiling_report: objectSchema({
324
+ enabled: T_BOOLEAN,
325
+ format: T_STRING,
326
+ traces: T_ARRAY,
327
+ stats: T_OBJECT,
328
+ bottleneck: T_NULLABLE_STRING,
329
+ }),
330
+ graph_edge_decay_run: objectSchema({ ranAt: T_STRING, disabled: T_BOOLEAN, reason: T_STRING, results: T_ARRAY }),
331
+ live_connectors_run: objectSchema({
332
+ ranAt: T_STRING,
333
+ force: T_BOOLEAN,
334
+ totalDocsImported: T_NUMBER,
335
+ ranCount: T_NUMBER,
336
+ skippedCount: T_NUMBER,
337
+ errorCount: T_NUMBER,
338
+ results: T_ARRAY,
339
+ }),
340
+ peer_list: objectSchema({ peers: T_ARRAY }),
341
+ peer_get: objectSchema({ found: T_BOOLEAN, peer: T_NULLABLE_OBJECT }),
342
+ peer_set: objectSchema({ ok: T_BOOLEAN, created: T_BOOLEAN, peer: T_OBJECT }),
343
+ peer_delete: objectSchema({ ok: T_BOOLEAN, deleted: T_BOOLEAN }),
344
+ peer_profile_get: objectSchema({
345
+ found: T_BOOLEAN,
346
+ profile: {
347
+ type: "object",
348
+ properties: {
349
+ peerId: T_STRING,
350
+ updatedAt: T_STRING,
351
+ fields: { type: "object", additionalProperties: T_STRING },
352
+ provenance: {
353
+ type: "object",
354
+ additionalProperties: {
355
+ type: "array",
356
+ items: {
357
+ type: "object",
358
+ properties: {
359
+ observedAt: T_STRING,
360
+ signal: T_STRING,
361
+ sourceSessionId: T_STRING,
362
+ note: T_STRING,
363
+ },
364
+ required: ["observedAt", "signal"],
365
+ additionalProperties: true,
366
+ },
367
+ },
368
+ },
369
+ },
370
+ required: ["peerId", "updatedAt", "fields", "provenance"],
371
+ additionalProperties: true,
372
+ },
373
+ }),
374
+ peer_forget: objectSchema({ ok: T_BOOLEAN, purged: T_BOOLEAN }),
375
+ console_state: objectSchema({
376
+ capturedAt: T_STRING,
377
+ bufferState: T_OBJECT,
378
+ extractionQueue: T_OBJECT,
379
+ dedupRecent: T_ARRAY,
380
+ maintenanceLedgerTail: T_ARRAY,
381
+ qmdProbe: T_OBJECT,
382
+ daemon: T_OBJECT,
383
+ errors: T_ARRAY,
384
+ }),
385
+ dreams_status: objectSchema({ phases: T_OBJECT, windowStart: T_STRING, windowEnd: T_STRING }),
386
+ dreams_run: objectSchema({ phase: T_STRING, durationMs: T_NUMBER, itemsProcessed: T_NUMBER }),
387
+ coding_decision: objectSchema({
388
+ subcommand: T_STRING,
389
+ records: T_ARRAY,
390
+ count: T_NUMBER,
391
+ found: T_BOOLEAN,
392
+ memoryId: T_STRING,
393
+ status: T_STRING,
394
+ supersededMemoryId: T_STRING,
395
+ replacementMemoryId: T_STRING,
396
+ }),
397
+ coding_architecture: objectSchema({
398
+ subcommand: T_STRING,
399
+ found: T_BOOLEAN,
400
+ refreshed: T_BOOLEAN,
401
+ memoryId: T_STRING,
402
+ }),
403
+ coding_delta: objectSchema({
404
+ subcommand: T_STRING,
405
+ ok: T_BOOLEAN,
406
+ kind: T_STRING,
407
+ delta: T_OBJECT,
408
+ nextState: T_OBJECT,
409
+ }),
410
+ memory_correct_plan: objectSchema({
411
+ planId: T_STRING,
412
+ namespace: T_STRING,
413
+ diff: T_STRING,
414
+ actions: T_ARRAY,
415
+ confidence: T_NUMBER,
416
+ }),
417
+ memory_correct_apply: objectSchema({
418
+ planId: T_STRING,
419
+ status: T_STRING,
420
+ results: T_ARRAY,
421
+ auditMemoryId: T_STRING,
422
+ appliedAt: T_STRING,
423
+ }),
424
+ memory_chat: objectSchema({
425
+ reply: T_STRING,
426
+ chatSessionId: T_STRING,
427
+ pendingPlan: {
428
+ type: "object",
429
+ properties: { planId: T_STRING, preview: T_STRING },
430
+ required: ["planId", "preview"],
431
+ additionalProperties: true,
432
+ },
433
+ skippedTools: { type: "array", items: T_STRING },
434
+ }),
435
+ codegraph_index: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),
436
+ codegraph_list_projects: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),
437
+ codegraph_delete_project: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),
438
+ codegraph_index_status: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),
439
+ codegraph_search_graph: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),
440
+ codegraph_trace_path: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),
441
+ codegraph_detect_changes: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),
442
+ codegraph_query_graph: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),
443
+ codegraph_get_schema: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),
444
+ codegraph_get_snippet: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),
445
+ codegraph_get_architecture: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),
446
+ codegraph_search_code: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),
447
+ codegraph_manage_adr: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),
448
+ codegraph_ingest_traces: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),
449
+ };
450
+
451
+ /**
452
+ * Apply outputSchema from the registry to every tool that lacks one.
453
+ * Suffix resolution strips the canonical or legacy prefix so both
454
+ * `remnic.*` and `engram.*` aliases inherit the same schema.
455
+ * Tools that already have an explicit outputSchema are skipped.
456
+ */
457
+ export function applyToolOutputSchemas<T extends { name: string; outputSchema?: unknown }>(
458
+ tools: ReadonlyArray<T>,
459
+ canonicalPrefix: string,
460
+ legacyPrefix: string
461
+ ): T[] {
462
+ return tools.map((tool) => {
463
+ if (tool.outputSchema) return tool;
464
+ const name = tool.name as string;
465
+ const suffix = name.startsWith(canonicalPrefix)
466
+ ? name.slice(canonicalPrefix.length)
467
+ : name.startsWith(legacyPrefix)
468
+ ? name.slice(legacyPrefix.length)
469
+ : name;
470
+ return { ...tool, outputSchema: TOOL_OUTPUT_SCHEMAS[suffix] ?? { type: "object", additionalProperties: true } };
471
+ });
472
+ }