@remnic/core 9.45.2 → 9.45.4

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 (749) hide show
  1. package/dist/abort-error.d.ts +2 -1
  2. package/dist/abort-error.js +3 -1
  3. package/dist/access-admin-ops-surface.d.ts +14 -10
  4. package/dist/access-admin-ops-surface.js +84 -76
  5. package/dist/access-audit.js +2 -2
  6. package/dist/access-authorization-probe.d.ts +14 -10
  7. package/dist/access-authorization-probe.js +85 -77
  8. package/dist/access-boundary.d.ts +15 -11
  9. package/dist/access-boundary.js +84 -76
  10. package/dist/access-citation-namespace.js +2 -2
  11. package/dist/access-cli.js +193 -181
  12. package/dist/access-cli.js.map +1 -1
  13. package/dist/access-coding-context-resolution.d.ts +16 -0
  14. package/dist/access-coding-context-resolution.js +13 -0
  15. package/dist/access-coding-context-resolution.js.map +1 -0
  16. package/dist/access-extraction-force-flush.d.ts +14 -10
  17. package/dist/access-extraction-force-flush.js +84 -76
  18. package/dist/access-health-types.d.ts +2 -1
  19. package/dist/access-http-lcm-compaction.d.ts +16 -12
  20. package/dist/access-http-lcm-compaction.js +3 -3
  21. package/dist/access-http-lifecycle-flush.d.ts +14 -10
  22. package/dist/access-http-lifecycle-flush.js +2 -2
  23. package/dist/access-http-offline-stream.d.ts +123 -0
  24. package/dist/access-http-offline-stream.js +10 -0
  25. package/dist/access-http-offline-stream.js.map +1 -0
  26. package/dist/access-http-query.js +84 -76
  27. package/dist/access-http.d.ts +15 -10
  28. package/dist/access-http.js +105 -92
  29. package/dist/access-identity-continuity-surface.d.ts +9 -8
  30. package/dist/access-identity-continuity-surface.js +84 -76
  31. package/dist/access-lcm-surface.d.ts +14 -10
  32. package/dist/access-lcm-surface.js +84 -76
  33. package/dist/access-mcp-output-schemas.js +1 -1
  34. package/dist/access-mcp.d.ts +14 -10
  35. package/dist/access-mcp.js +95 -83
  36. package/dist/access-memory-search-fanout.d.ts +3 -2
  37. package/dist/{access-namespace-preflight-5yZ4g6F8.d.ts → access-namespace-preflight-CWUDwB4M.d.ts} +1 -1
  38. package/dist/access-namespace-preflight.d.ts +4 -3
  39. package/dist/access-namespace-preflight.js +84 -76
  40. package/dist/access-observe-helpers.d.ts +1 -0
  41. package/dist/access-observe-helpers.js +1 -1
  42. package/dist/access-observe-write-surface.d.ts +16 -10
  43. package/dist/access-observe-write-surface.js +84 -76
  44. package/dist/access-offline-manifest.d.ts +104 -0
  45. package/dist/access-offline-manifest.js +45 -0
  46. package/dist/access-offline-manifest.js.map +1 -0
  47. package/dist/access-operations-batch.js +86 -78
  48. package/dist/access-operations.d.ts +18 -14
  49. package/dist/access-operations.js +91 -80
  50. package/dist/access-recall-concurrency.d.ts +16 -26
  51. package/dist/access-recall-concurrency.js +86 -77
  52. package/dist/access-recall-response.d.ts +18 -14
  53. package/dist/access-recall-response.js +84 -76
  54. package/dist/access-recall-surface.d.ts +29 -24
  55. package/dist/access-recall-surface.js +84 -76
  56. package/dist/access-schema.d.ts +84 -84
  57. package/dist/access-schema.js +3 -3
  58. package/dist/{access-service-CiJRsgAB.d.ts → access-service-CsU-ljFD.d.ts} +25 -16
  59. package/dist/access-service-helpers.d.ts +14 -10
  60. package/dist/access-service.d.ts +14 -10
  61. package/dist/access-service.js +84 -76
  62. package/dist/access-surface-catalog.d.ts +14 -10
  63. package/dist/access-surface-catalog.js +4 -0
  64. package/dist/access-surface-catalog.js.map +1 -1
  65. package/dist/access-wearables-meetings-surface.d.ts +4 -3
  66. package/dist/action-confidence.d.ts +2 -1
  67. package/dist/active-memory-bridge.d.ts +2 -1
  68. package/dist/active-recall.d.ts +2 -1
  69. package/dist/active-recall.js +10 -8
  70. package/dist/active-recall.js.map +1 -1
  71. package/dist/adapters/index.js +7 -7
  72. package/dist/adapters/registry.js +3 -3
  73. package/dist/{auto-sync-5OE5QOZB.js → auto-sync-UPTUVE4X.js} +6 -6
  74. package/dist/behavior-learner.d.ts +2 -1
  75. package/dist/behavior-learner.js +1 -1
  76. package/dist/behavior-signals.d.ts +2 -1
  77. package/dist/bootstrap.d.ts +9 -8
  78. package/dist/briefing.d.ts +3 -2
  79. package/dist/briefing.js +23 -22
  80. package/dist/buffer-surprise-report.d.ts +2 -1
  81. package/dist/buffer-turn-helpers.d.ts +2 -1
  82. package/dist/buffer.d.ts +3 -2
  83. package/dist/buffer.js +12 -11
  84. package/dist/bulk-import/index.d.ts +4 -3
  85. package/dist/calibration.d.ts +2 -1
  86. package/dist/capabilities.d.ts +2 -1
  87. package/dist/{capsule-merge-IDWJPCWK.js → capsule-merge-Q6AR3XL7.js} +67 -54
  88. package/dist/capsule-merge-Q6AR3XL7.js.map +1 -0
  89. package/dist/{catalog-scBmy0sO.d.ts → catalog-bctMURhN.d.ts} +1 -1
  90. package/dist/causal-behavior.d.ts +2 -1
  91. package/dist/causal-behavior.js +2 -2
  92. package/dist/causal-chain.js +2 -2
  93. package/dist/causal-consolidation.d.ts +2 -1
  94. package/dist/causal-consolidation.js +27 -26
  95. package/dist/causal-consolidation.js.map +1 -1
  96. package/dist/causal-retrieval.js +2 -2
  97. package/dist/causal-trajectory-graph.d.ts +2 -1
  98. package/dist/causal-trajectory.js +1 -1
  99. package/dist/{chunk-VUPTKTDV.js → chunk-2MRHJNWL.js} +3 -3
  100. package/dist/{chunk-JBPKEARU.js → chunk-2QSZNTDO.js} +7 -7
  101. package/dist/{chunk-5IVLTFOV.js → chunk-44N6ESJ4.js} +2 -2
  102. package/dist/{chunk-WOCNN776.js → chunk-4POAMKV6.js} +100 -41
  103. package/dist/chunk-4POAMKV6.js.map +1 -0
  104. package/dist/{chunk-HO3QBJEY.js → chunk-5546W5SI.js} +2 -2
  105. package/dist/{chunk-U7GW7NE7.js → chunk-5CEECY6P.js} +10 -10
  106. package/dist/{chunk-4UH4BTGK.js → chunk-5SNZSWWR.js} +82 -82
  107. package/dist/{chunk-6CZPDBJS.js → chunk-5U7ID3EZ.js} +3 -3
  108. package/dist/{chunk-GF22HWS2.js → chunk-6NNNURLK.js} +7 -7
  109. package/dist/chunk-773TRRGT.js +36 -0
  110. package/dist/chunk-773TRRGT.js.map +1 -0
  111. package/dist/chunk-7CITSYSH.js +242 -0
  112. package/dist/chunk-7CITSYSH.js.map +1 -0
  113. package/dist/{chunk-227UFSEQ.js → chunk-7RZJWZ46.js} +5 -5
  114. package/dist/{chunk-E5UK4VPE.js → chunk-7SHJHPTY.js} +5 -5
  115. package/dist/{chunk-UVIKWC7M.js → chunk-7YERSTN7.js} +17 -17
  116. package/dist/{chunk-DLVPUX7U.js → chunk-7YKVM5H3.js} +8 -6
  117. package/dist/chunk-7YKVM5H3.js.map +1 -0
  118. package/dist/{chunk-3CE77VAP.js → chunk-A4JMGKCD.js} +87 -74
  119. package/dist/chunk-A4JMGKCD.js.map +1 -0
  120. package/dist/chunk-A5KNZSNA.js +26 -0
  121. package/dist/chunk-A5KNZSNA.js.map +1 -0
  122. package/dist/{chunk-S2NCTZGJ.js → chunk-AJQ57VV3.js} +15 -15
  123. package/dist/chunk-AJQ57VV3.js.map +1 -0
  124. package/dist/{chunk-CUM2BBPN.js → chunk-AUMWZSE7.js} +19 -10
  125. package/dist/chunk-AUMWZSE7.js.map +1 -0
  126. package/dist/{chunk-XYTOI63Z.js → chunk-BGHFOD5A.js} +19 -11
  127. package/dist/chunk-BGHFOD5A.js.map +1 -0
  128. package/dist/{chunk-BUE5E2HL.js → chunk-BGLY7EEM.js} +5 -314
  129. package/dist/chunk-BGLY7EEM.js.map +1 -0
  130. package/dist/chunk-BIPBQQFI.js +44 -0
  131. package/dist/chunk-BIPBQQFI.js.map +1 -0
  132. package/dist/{chunk-S5SLVSVY.js → chunk-BQIFZ2MP.js} +5 -5
  133. package/dist/chunk-BTTPKDIL.js +34 -0
  134. package/dist/{chunk-PVGDJXVK.js.map → chunk-BTTPKDIL.js.map} +1 -1
  135. package/dist/{chunk-E53DSZEN.js → chunk-C26TE27X.js} +3 -3
  136. package/dist/{chunk-LZ4LDKHZ.js → chunk-CLB32OHM.js} +6 -6
  137. package/dist/{chunk-Q6IP2ARR.js → chunk-CSOYVTRX.js} +2 -2
  138. package/dist/{chunk-XOQSEF7X.js → chunk-CVILPI77.js} +6 -6
  139. package/dist/chunk-D3I2MCN7.js +29 -0
  140. package/dist/chunk-D3I2MCN7.js.map +1 -0
  141. package/dist/{chunk-A5OJCXZL.js → chunk-DSUAAZZX.js} +15 -4
  142. package/dist/chunk-DSUAAZZX.js.map +1 -0
  143. package/dist/{chunk-HREE4JHI.js → chunk-DYVMXPCF.js} +486 -287
  144. package/dist/chunk-DYVMXPCF.js.map +1 -0
  145. package/dist/{chunk-J7VGGECD.js → chunk-DZPFMQZ7.js} +1 -1
  146. package/dist/chunk-DZPFMQZ7.js.map +1 -0
  147. package/dist/{chunk-PDLBLTOK.js → chunk-EITZHSX6.js} +9 -9
  148. package/dist/{chunk-D3J5SLQK.js → chunk-EJHEWCGQ.js} +81 -20
  149. package/dist/chunk-EJHEWCGQ.js.map +1 -0
  150. package/dist/{chunk-WUNIWKY4.js → chunk-ELIL2A37.js} +6 -6
  151. package/dist/{chunk-E6PNLPGJ.js → chunk-FZP32336.js} +806 -470
  152. package/dist/chunk-FZP32336.js.map +1 -0
  153. package/dist/{chunk-4L6HUREQ.js → chunk-G7A5HLUS.js} +23 -17
  154. package/dist/chunk-G7A5HLUS.js.map +1 -0
  155. package/dist/{chunk-CINZGPSJ.js → chunk-GUMZC2BO.js} +2 -2
  156. package/dist/{chunk-H24WNPA2.js → chunk-GWFSVJ4P.js} +3 -3
  157. package/dist/{chunk-7XC2HX75.js → chunk-GYPQL6XN.js} +157 -16
  158. package/dist/chunk-GYPQL6XN.js.map +1 -0
  159. package/dist/{chunk-TSH56VPU.js → chunk-HAYSYUAB.js} +2 -2
  160. package/dist/{chunk-TDHTVMPG.js → chunk-HFPASSFV.js} +7 -2
  161. package/dist/chunk-HFPASSFV.js.map +1 -0
  162. package/dist/chunk-J2WC5LF4.js +395 -0
  163. package/dist/chunk-J2WC5LF4.js.map +1 -0
  164. package/dist/{chunk-PKNLM44P.js → chunk-JH6BPLOP.js} +9 -9
  165. package/dist/{chunk-KXB4VXHY.js → chunk-JIYDRBVZ.js} +2 -2
  166. package/dist/chunk-JV3C2MNQ.js +74 -0
  167. package/dist/chunk-JV3C2MNQ.js.map +1 -0
  168. package/dist/{chunk-AV5ZEH4M.js → chunk-KVJRXN2E.js} +2 -2
  169. package/dist/{chunk-JVLCVFQ4.js → chunk-KXEFRMCF.js} +3 -3
  170. package/dist/{chunk-WFTIGIIS.js → chunk-L6CQ7WIW.js} +5 -5
  171. package/dist/{chunk-EJUEXZHX.js → chunk-LLJMAULE.js} +2 -2
  172. package/dist/{chunk-N5Z4EVOR.js → chunk-LNEWDF2A.js} +36 -11
  173. package/dist/chunk-LNEWDF2A.js.map +1 -0
  174. package/dist/{chunk-AS7YMSL6.js → chunk-M23RF3LJ.js} +4 -4
  175. package/dist/{chunk-UYLMNVY6.js → chunk-MDISBSYA.js} +16 -9
  176. package/dist/chunk-MDISBSYA.js.map +1 -0
  177. package/dist/{chunk-3F2LKUMU.js → chunk-NIS256NW.js} +2 -2
  178. package/dist/{chunk-YIAA2X3D.js → chunk-NK5RGJ65.js} +3 -3
  179. package/dist/chunk-NLDVVWCL.js +84 -0
  180. package/dist/chunk-NLDVVWCL.js.map +1 -0
  181. package/dist/{chunk-OQ5PRDDS.js → chunk-NTOIP2E6.js} +6 -6
  182. package/dist/{chunk-HLPD7B7P.js → chunk-NUEQKLNB.js} +2 -2
  183. package/dist/{chunk-4J7G5SY4.js → chunk-NZBZ7IS2.js} +72 -24
  184. package/dist/chunk-NZBZ7IS2.js.map +1 -0
  185. package/dist/{chunk-3TBLDMJA.js → chunk-O4KMGRXE.js} +5 -2
  186. package/dist/chunk-O4KMGRXE.js.map +1 -0
  187. package/dist/{chunk-33PLLLL7.js → chunk-P7NGM24P.js} +6 -6
  188. package/dist/{chunk-7TWUCYER.js → chunk-PNRA7FAD.js} +7 -7
  189. package/dist/{chunk-5I4M26Q7.js → chunk-QBSFOKY6.js} +4 -4
  190. package/dist/{chunk-QJAQNXWI.js → chunk-QCECHYZL.js} +76 -79
  191. package/dist/chunk-QCECHYZL.js.map +1 -0
  192. package/dist/{chunk-P4DRWEYC.js → chunk-QVSBTCVP.js} +2 -2
  193. package/dist/{chunk-AAIUERNB.js → chunk-R5RFK3CB.js} +6 -6
  194. package/dist/{chunk-WDISJRMG.js → chunk-RMMVQQA6.js} +2 -2
  195. package/dist/{chunk-KWMXR7XS.js → chunk-S2V7RUCL.js} +8 -1
  196. package/dist/{chunk-KWMXR7XS.js.map → chunk-S2V7RUCL.js.map} +1 -1
  197. package/dist/{chunk-5SM35XZR.js → chunk-S5NZBKKQ.js} +2 -2
  198. package/dist/{chunk-VNA7W7QF.js → chunk-SVH57F5Z.js} +12 -4
  199. package/dist/chunk-SVH57F5Z.js.map +1 -0
  200. package/dist/{chunk-WIPEXG6R.js → chunk-SXIMQLGV.js} +2 -2
  201. package/dist/{chunk-RVLJEII5.js → chunk-SYUBB3WM.js} +256 -187
  202. package/dist/chunk-SYUBB3WM.js.map +1 -0
  203. package/dist/{chunk-OAEQLRCY.js → chunk-TN76AKO3.js} +5 -5
  204. package/dist/{chunk-QN25OCUF.js → chunk-TQ4GD737.js} +5 -5
  205. package/dist/{chunk-VCD4PSK2.js → chunk-TQZ4DVBC.js} +7 -4
  206. package/dist/chunk-TQZ4DVBC.js.map +1 -0
  207. package/dist/{chunk-7K5Q6COX.js → chunk-TVVEYCNW.js} +4 -4
  208. package/dist/{chunk-DNWXFTLD.js → chunk-TYISDI6B.js} +2 -2
  209. package/dist/{chunk-4LMA77JH.js → chunk-U2VLVBBH.js} +3 -3
  210. package/dist/{chunk-5ZE7QHTK.js → chunk-ULVR5KG7.js} +5 -5
  211. package/dist/{chunk-NVRYW264.js → chunk-UQWIKLQK.js} +18 -15
  212. package/dist/chunk-UQWIKLQK.js.map +1 -0
  213. package/dist/{chunk-YV32N67O.js → chunk-URS5GSM7.js} +1 -1
  214. package/dist/chunk-URS5GSM7.js.map +1 -0
  215. package/dist/{chunk-4B77XSG5.js → chunk-UV72DEZD.js} +5 -5
  216. package/dist/{chunk-S2BBISHU.js → chunk-VANZKHTN.js} +3 -3
  217. package/dist/chunk-VHFXP27N.js +250 -0
  218. package/dist/chunk-VHFXP27N.js.map +1 -0
  219. package/dist/{chunk-3Y224NYC.js → chunk-VYISFWVX.js} +2 -2
  220. package/dist/{chunk-TIHMZFIV.js → chunk-W3IC7QOY.js} +3 -3
  221. package/dist/{chunk-NRV4Y3PM.js → chunk-W4FBGYGK.js} +1 -1
  222. package/dist/{chunk-P2BM76KT.js → chunk-WAS4HV46.js} +174 -43
  223. package/dist/chunk-WAS4HV46.js.map +1 -0
  224. package/dist/{chunk-57QKLRBV.js → chunk-WB7JSQCP.js} +2 -1
  225. package/dist/chunk-WB7JSQCP.js.map +1 -0
  226. package/dist/chunk-WGP57SR3.js +68 -0
  227. package/dist/chunk-WGP57SR3.js.map +1 -0
  228. package/dist/{chunk-ECK75GDJ.js → chunk-WQIHRA5F.js} +43 -24
  229. package/dist/chunk-WQIHRA5F.js.map +1 -0
  230. package/dist/{chunk-MU7ZHSZE.js → chunk-WZFAPHIK.js} +2 -2
  231. package/dist/{chunk-T2TTP3KU.js → chunk-X4IDNPOS.js} +2 -2
  232. package/dist/{chunk-BLAKS3CP.js → chunk-XL3TATMJ.js} +3 -3
  233. package/dist/{chunk-W4XJFLAL.js → chunk-XPRJSHNI.js} +2 -2
  234. package/dist/{chunk-5TFP4CUL.js → chunk-XQ3HXAQH.js} +14 -11
  235. package/dist/chunk-XQ3HXAQH.js.map +1 -0
  236. package/dist/{chunk-VWAXN2BN.js → chunk-XSFHWBQO.js} +93 -31
  237. package/dist/chunk-XSFHWBQO.js.map +1 -0
  238. package/dist/{chunk-DL7ZD3JH.js → chunk-XTAUXTDO.js} +14 -9
  239. package/dist/chunk-XTAUXTDO.js.map +1 -0
  240. package/dist/{chunk-JE7EK33X.js → chunk-Y7HRYCNW.js} +2 -2
  241. package/dist/{chunk-E6EE5B67.js → chunk-YK6BDDHP.js} +4 -4
  242. package/dist/{chunk-ES36HTSC.js → chunk-YLHM5BQQ.js} +3 -3
  243. package/dist/{chunk-RN7DY3FC.js → chunk-YMAQDHQM.js} +31 -12
  244. package/dist/chunk-YMAQDHQM.js.map +1 -0
  245. package/dist/{chunk-ULARSG5Z.js → chunk-YN6ASZUG.js} +10 -8
  246. package/dist/{chunk-ULARSG5Z.js.map → chunk-YN6ASZUG.js.map} +1 -1
  247. package/dist/{chunk-IKKWIPYN.js → chunk-YYQAKIDJ.js} +37 -1
  248. package/dist/chunk-YYQAKIDJ.js.map +1 -0
  249. package/dist/{chunk-BJKPPZ6Z.js → chunk-ZFGZ6PZ2.js} +2 -2
  250. package/dist/{chunk-CJ2ZR7UA.js → chunk-ZI32MKDW.js} +267 -214
  251. package/dist/chunk-ZI32MKDW.js.map +1 -0
  252. package/dist/{chunk-64UDOIMI.js → chunk-ZLQ37WJX.js} +2 -2
  253. package/dist/chunk-ZMAYKGPN.js +351 -0
  254. package/dist/chunk-ZMAYKGPN.js.map +1 -0
  255. package/dist/{cli-BUGN3d6_.d.ts → cli-BBHDtG36.d.ts} +5 -5
  256. package/dist/cli.d.ts +16 -12
  257. package/dist/cli.js +138 -124
  258. package/dist/compounding/engine.d.ts +3 -2
  259. package/dist/compounding/engine.js +24 -23
  260. package/dist/compounding/preference-consolidator.d.ts +2 -1
  261. package/dist/compression-optimizer.d.ts +2 -1
  262. package/dist/config.d.ts +2 -1
  263. package/dist/config.js +10 -8
  264. package/dist/connectors/codex-materialize-runner.d.ts +2 -1
  265. package/dist/connectors/codex-materialize-runner.js +23 -22
  266. package/dist/connectors/codex-materialize.d.ts +2 -1
  267. package/dist/connectors/index.d.ts +2 -1
  268. package/dist/connectors/index.js +26 -25
  269. package/dist/consolidation-provenance-check.d.ts +3 -2
  270. package/dist/consolidation-provenance-check.js +4 -4
  271. package/dist/consolidation-undo.d.ts +3 -2
  272. package/dist/consolidation-undo.js +10 -7
  273. package/dist/consolidation-undo.js.map +1 -1
  274. package/dist/contradiction/index.d.ts +3 -2
  275. package/dist/converge-config.d.ts +2 -1
  276. package/dist/convergence-refresh.d.ts +4 -3
  277. package/dist/convergence-refresh.js +27 -26
  278. package/dist/conversation-index/backend.d.ts +2 -1
  279. package/dist/conversation-index/backend.js +2 -2
  280. package/dist/conversation-index/chunker.d.ts +2 -1
  281. package/dist/conversation-index/faiss-adapter.d.ts +2 -1
  282. package/dist/conversation-index/indexer.d.ts +2 -1
  283. package/dist/conversation-index/search.d.ts +2 -1
  284. package/dist/corpus-watermark.d.ts +2 -1
  285. package/dist/corpus-watermark.js +42 -41
  286. package/dist/day-summary.d.ts +2 -1
  287. package/dist/delinearize.d.ts +2 -1
  288. package/dist/direct-answer-wiring.d.ts +2 -1
  289. package/dist/direct-answer-wiring.js +2 -2
  290. package/dist/direct-answer.d.ts +2 -1
  291. package/dist/embedding-fallback.d.ts +2 -1
  292. package/dist/embedding-fallback.js +2 -2
  293. package/dist/enrichment/index.d.ts +2 -1
  294. package/dist/entity-retrieval-boundaries.js +1 -1
  295. package/dist/entity-retrieval.d.ts +3 -2
  296. package/dist/entity-retrieval.js +24 -23
  297. package/dist/entity-schema.d.ts +2 -1
  298. package/dist/explicit-capture.d.ts +9 -8
  299. package/dist/explicit-capture.js +11 -9
  300. package/dist/external-wiki-access.d.ts +127 -0
  301. package/dist/external-wiki-access.js +186 -0
  302. package/dist/external-wiki-access.js.map +1 -0
  303. package/dist/external-wiki-cli.d.ts +13 -0
  304. package/dist/external-wiki-cli.js +96 -0
  305. package/dist/external-wiki-cli.js.map +1 -0
  306. package/dist/external-wiki-collection-registration.d.ts +39 -0
  307. package/dist/external-wiki-collection-registration.js +79 -0
  308. package/dist/external-wiki-collection-registration.js.map +1 -0
  309. package/dist/external-wiki-collection.d.ts +50 -0
  310. package/dist/external-wiki-collection.js +387 -0
  311. package/dist/external-wiki-collection.js.map +1 -0
  312. package/dist/external-wiki-config.d.ts +13 -0
  313. package/dist/external-wiki-config.js +13 -0
  314. package/dist/external-wiki-config.js.map +1 -0
  315. package/dist/external-wiki-guard.d.ts +11 -0
  316. package/dist/external-wiki-guard.js +18 -0
  317. package/dist/external-wiki-guard.js.map +1 -0
  318. package/dist/external-wiki-mcp-tools.d.ts +123 -0
  319. package/dist/external-wiki-mcp-tools.js +8 -0
  320. package/dist/external-wiki-mcp-tools.js.map +1 -0
  321. package/dist/external-wiki-search.d.ts +42 -0
  322. package/dist/external-wiki-search.js +11 -0
  323. package/dist/external-wiki-search.js.map +1 -0
  324. package/dist/external-wiki.d.ts +43 -0
  325. package/dist/external-wiki.js +16 -0
  326. package/dist/external-wiki.js.map +1 -0
  327. package/dist/extraction-error-classification.d.ts +2 -1
  328. package/dist/extraction-faithfulness.d.ts +2 -1
  329. package/dist/extraction-judge-telemetry.d.ts +2 -1
  330. package/dist/extraction-judge-training.d.ts +2 -1
  331. package/dist/extraction-judge.d.ts +2 -1
  332. package/dist/extraction-liveness.d.ts +2 -1
  333. package/dist/extraction-source-grounding-helpers.d.ts +5 -3
  334. package/dist/extraction-source-grounding-helpers.js +1 -1
  335. package/dist/extraction-source-grounding-rules.d.ts +2 -1
  336. package/dist/extraction-source-grounding-rules.js +2 -2
  337. package/dist/extraction-source-grounding.d.ts +2 -1
  338. package/dist/extraction-source-grounding.js +5 -5
  339. package/dist/extraction.d.ts +2 -1
  340. package/dist/extraction.js +45 -43
  341. package/dist/fallback-llm.d.ts +2 -1
  342. package/dist/graph-dashboard-diff.d.ts +2 -1
  343. package/dist/graph-dashboard-key.d.ts +2 -1
  344. package/dist/graph-dashboard-parser.d.ts +2 -1
  345. package/dist/graph-edge-reinforcement.d.ts +2 -1
  346. package/dist/graph-snapshot.d.ts +2 -1
  347. package/dist/graph.d.ts +2 -1
  348. package/dist/harmonic-retrieval.js +2 -2
  349. package/dist/importance.d.ts +2 -1
  350. package/dist/importers/index.d.ts +2 -1
  351. package/dist/in-flight-reads.d.ts +2 -1
  352. package/dist/index.d.ts +732 -720
  353. package/dist/index.js +291 -259
  354. package/dist/intent.d.ts +2 -1
  355. package/dist/lcm/engine.d.ts +2 -1
  356. package/dist/lcm/engine.js +3 -3
  357. package/dist/lcm/index.d.ts +2 -1
  358. package/dist/lcm/index.js +8 -8
  359. package/dist/lcm/tools.d.ts +2 -1
  360. package/dist/lifecycle.d.ts +2 -1
  361. package/dist/live-connectors-runner.d.ts +2 -1
  362. package/dist/local-llm.d.ts +2 -1
  363. package/dist/local-llm.js +2 -2
  364. package/dist/local-model-endpoint.d.ts +2 -1
  365. package/dist/maintenance/memory-governance.d.ts +2 -1
  366. package/dist/maintenance/memory-governance.js +24 -23
  367. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +3 -2
  368. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +24 -23
  369. package/dist/maintenance/rebuild-memory-projection.d.ts +3 -2
  370. package/dist/maintenance/rebuild-memory-projection.js +26 -25
  371. package/dist/{maintenance-LbuS2rUA.d.ts → maintenance-D2mveyCd.d.ts} +3 -3
  372. package/dist/mcp-memory-inspector-app.d.ts +14 -10
  373. package/dist/mcp-read-only-tools.js +1 -1
  374. package/dist/memory-action-policy.d.ts +2 -1
  375. package/dist/memory-cache.d.ts +2 -1
  376. package/dist/memory-lifecycle-ledger-utils.d.ts +2 -1
  377. package/dist/memory-projection-store.d.ts +2 -1
  378. package/dist/memory-provenance.d.ts +2 -1
  379. package/dist/memory-worth-outcomes.d.ts +3 -2
  380. package/dist/models-json.d.ts +2 -1
  381. package/dist/namespaces/migrate.d.ts +4 -3
  382. package/dist/namespaces/migrate.js +40 -39
  383. package/dist/namespaces/principal.d.ts +2 -1
  384. package/dist/namespaces/search.d.ts +2 -1
  385. package/dist/namespaces/search.js +18 -18
  386. package/dist/namespaces/storage.d.ts +4 -3
  387. package/dist/namespaces/storage.js +23 -22
  388. package/dist/native-knowledge.d.ts +2 -1
  389. package/dist/offline-sync-impression-drain.d.ts +2 -1
  390. package/dist/offline-sync-impression-drain.js +11 -9
  391. package/dist/offline-sync.d.ts +29 -3
  392. package/dist/offline-sync.js +6 -2
  393. package/dist/operator-doctor-corpus.d.ts +2 -1
  394. package/dist/operator-doctor-corpus.js +45 -44
  395. package/dist/operator-doctor-replica.d.ts +2 -1
  396. package/dist/operator-doctor-replica.js +3 -3
  397. package/dist/operator-toolkit.d.ts +4 -3
  398. package/dist/operator-toolkit.js +59 -55
  399. package/dist/orchestration/compression-guideline-coordinator.d.ts +3 -2
  400. package/dist/orchestration/maintenance.d.ts +5 -4
  401. package/dist/orchestration/maintenance.js +36 -33
  402. package/dist/{orchestrator-rHiWt32X.d.ts → orchestrator-DJYlwiUv.d.ts} +14 -7
  403. package/dist/orchestrator.d.ts +9 -8
  404. package/dist/orchestrator.js +201 -189
  405. package/dist/page-versioning.js +3 -3
  406. package/dist/patterns-cli.d.ts +2 -1
  407. package/dist/{pipeline-W_97O8BV.d.ts → pipeline-CNjY4wk3.d.ts} +1 -1
  408. package/dist/policy-runtime.d.ts +2 -1
  409. package/dist/policy-runtime.js +1 -1
  410. package/dist/proactive-contention.d.ts +2 -1
  411. package/dist/provenance.d.ts +2 -1
  412. package/dist/provenance.js +2 -2
  413. package/dist/{qmd-LWtMofAf.d.ts → qmd-C0UDZidt.d.ts} +9 -7
  414. package/dist/qmd-preflight.d.ts +5 -4
  415. package/dist/qmd-preflight.js +2 -2
  416. package/dist/qmd-recall-cache.d.ts +2 -1
  417. package/dist/qmd.d.ts +4 -3
  418. package/dist/qmd.js +5 -5
  419. package/dist/recall-concurrency-config.d.ts +2 -1
  420. package/dist/recall-disclosure-escalation.d.ts +2 -1
  421. package/dist/recall-explain-renderer.d.ts +2 -1
  422. package/dist/recall-explain-renderer.js +3 -3
  423. package/dist/recall-memory-map.d.ts +2 -1
  424. package/dist/recall-planner-llm.d.ts +2 -1
  425. package/dist/recall-state.d.ts +2 -1
  426. package/dist/recall-tag-filter.d.ts +2 -1
  427. package/dist/recall-timings.d.ts +2 -1
  428. package/dist/recall-xray-cli.d.ts +2 -1
  429. package/dist/recall-xray-cli.js +4 -4
  430. package/dist/recall-xray-renderer.d.ts +2 -1
  431. package/dist/recall-xray-renderer.js +3 -3
  432. package/dist/recall-xray.d.ts +8 -1
  433. package/dist/recall-xray.js +2 -2
  434. package/dist/reconcile/cursor.d.ts +12 -2
  435. package/dist/reconcile/cursor.js +46 -7
  436. package/dist/reconcile/cursor.js.map +1 -1
  437. package/dist/reconcile/manifest.d.ts +9 -2
  438. package/dist/reconcile/manifest.js +15 -268
  439. package/dist/reconcile/manifest.js.map +1 -1
  440. package/dist/reconcile/plan.d.ts +6 -2
  441. package/dist/reconcile/plan.js +4 -4
  442. package/dist/replay/normalizers/chatgpt.d.ts +2 -1
  443. package/dist/replay/normalizers/claude.d.ts +2 -1
  444. package/dist/replay/normalizers/openclaw.d.ts +2 -1
  445. package/dist/replay/normalizers/shared.d.ts +2 -1
  446. package/dist/replay/runner.d.ts +2 -1
  447. package/dist/replay/types.d.ts +2 -1
  448. package/dist/replica-divergence.d.ts +2 -1
  449. package/dist/replica-divergence.js +2 -2
  450. package/dist/replica-peers-config.d.ts +2 -1
  451. package/dist/resolve-auth-token.d.ts +2 -1
  452. package/dist/resume-bundles.js +12 -10
  453. package/dist/retrieval-agents.d.ts +4 -3
  454. package/dist/retrieval-agents.js +2 -2
  455. package/dist/retrieval-tiers.d.ts +2 -1
  456. package/dist/routing/engine.d.ts +2 -1
  457. package/dist/routing/store.d.ts +2 -1
  458. package/dist/salvage-envelope.d.ts +2 -1
  459. package/dist/schemas.d.ts +76 -76
  460. package/dist/{scope-profiles-BiQKOE-p.d.ts → scope-profiles-BJzp2F5A.d.ts} +1 -1
  461. package/dist/search/embed-helper.d.ts +2 -1
  462. package/dist/search/embed-helper.js +3 -3
  463. package/dist/search/factory.d.ts +4 -2
  464. package/dist/search/factory.js +20 -18
  465. package/dist/search/index.d.ts +2 -1
  466. package/dist/search/index.js +22 -22
  467. package/dist/search/lancedb-backend.d.ts +2 -1
  468. package/dist/search/lancedb-backend.js +4 -4
  469. package/dist/search/meilisearch-backend.d.ts +2 -1
  470. package/dist/search/meilisearch-backend.js +4 -4
  471. package/dist/search/noop-backend.d.ts +2 -1
  472. package/dist/search/orama-backend.d.ts +2 -1
  473. package/dist/search/orama-backend.js +4 -4
  474. package/dist/search/port.d.ts +18 -1
  475. package/dist/search/port.js +1 -1
  476. package/dist/search/remote-backend.d.ts +2 -1
  477. package/dist/search/remote-backend.js +2 -2
  478. package/dist/secure-store/index.js +2 -2
  479. package/dist/{semantic-consolidation-dHYCyqgh.d.ts → semantic-consolidation-D4KAZO2G.d.ts} +1 -1
  480. package/dist/semantic-consolidation.d.ts +3 -2
  481. package/dist/semantic-consolidation.js +25 -24
  482. package/dist/semantic-rule-promotion.js +23 -22
  483. package/dist/semantic-rule-verifier.d.ts +2 -1
  484. package/dist/semantic-rule-verifier.js +24 -23
  485. package/dist/{service-DJG3KCQ4.d.ts → service-BeDxSqE-.d.ts} +2 -2
  486. package/dist/session-observer-bands.d.ts +2 -1
  487. package/dist/session-observer-state.d.ts +2 -1
  488. package/dist/shared-context/manager.d.ts +10 -9
  489. package/dist/shared-context/manager.js +2 -2
  490. package/dist/signal.d.ts +2 -1
  491. package/dist/source-agent-qualifier.d.ts +2 -1
  492. package/dist/source-agent-qualifier.js +42 -40
  493. package/dist/{storage-F9FVh-w9.d.ts → storage-DfjxusTE.d.ts} +24 -12
  494. package/dist/storage.d.ts +3 -2
  495. package/dist/storage.js +25 -24
  496. package/dist/summarizer.d.ts +2 -1
  497. package/dist/summarizer.js +5 -5
  498. package/dist/summary-snapshot.d.ts +2 -1
  499. package/dist/temporal-supersession.d.ts +3 -2
  500. package/dist/temporal-timeline-recall.d.ts +2 -1
  501. package/dist/temporal-validity.d.ts +2 -1
  502. package/dist/threading.d.ts +2 -1
  503. package/dist/tier-migration.d.ts +3 -2
  504. package/dist/tier-routing.d.ts +2 -1
  505. package/dist/tool-scoped-memory.d.ts +5 -1
  506. package/dist/tool-scoped-memory.js +3 -1
  507. package/dist/topics.d.ts +2 -1
  508. package/dist/transcript.d.ts +2 -1
  509. package/dist/transfer/capsule-import.js +4 -4
  510. package/dist/transfer/types.d.ts +66 -66
  511. package/dist/trust-score-stage.d.ts +2 -1
  512. package/dist/trust-score.d.ts +2 -1
  513. package/dist/{types-rEwubvim.d.ts → types-yX_FwERf.d.ts} +8 -1
  514. package/dist/types.d.ts +2 -1
  515. package/dist/types.js +1 -1
  516. package/dist/utility-runtime.d.ts +2 -1
  517. package/dist/verified-recall.js +24 -23
  518. package/dist/write-envelope.d.ts +2 -1
  519. package/package.json +2 -2
  520. package/src/abort-error.ts +17 -0
  521. package/src/access-admin-ops-surface.ts +1 -0
  522. package/src/access-boundary.ts +1 -0
  523. package/src/access-coding-context-resolution.ts +42 -0
  524. package/src/access-extraction-force-flush.ts +38 -2
  525. package/src/access-http-lcm-compaction.ts +5 -2
  526. package/src/access-http-offline-stream.ts +79 -0
  527. package/src/access-http.test.ts +310 -3
  528. package/src/access-http.ts +85 -21
  529. package/src/access-mcp-output-schemas.ts +36 -0
  530. package/src/access-mcp.test.ts +95 -1
  531. package/src/access-mcp.ts +7 -9
  532. package/src/access-observe-helpers.ts +64 -22
  533. package/src/access-observe-write-surface.ts +8 -0
  534. package/src/access-offline-manifest.ts +54 -0
  535. package/src/access-operations-batch.ts +3 -3
  536. package/src/access-operations.ts +13 -7
  537. package/src/access-recall-concurrency.ts +3 -27
  538. package/src/access-recall-surface.ts +3 -0
  539. package/src/access-service-health.test.ts +32 -7
  540. package/src/access-service-namespace.test.ts +55 -0
  541. package/src/access-service-observe-idempotency.test.ts +34 -2
  542. package/src/access-service-observe-lcm-parity.test.ts +138 -3
  543. package/src/access-service-observe-scope.test.ts +160 -1
  544. package/src/access-service-offline-file-content.test.ts +345 -1
  545. package/src/access-service.ts +86 -59
  546. package/src/access-surface-catalog.ts +4 -0
  547. package/src/admin/admin-surfaces.ts +2 -0
  548. package/src/binary-lifecycle/pipeline.test.ts +106 -1
  549. package/src/binary-lifecycle/pipeline.ts +3 -0
  550. package/src/coding/git-context.test.ts +47 -0
  551. package/src/coding/git-context.ts +129 -27
  552. package/src/config.test.ts +24 -0
  553. package/src/config.ts +9 -12
  554. package/src/connector-provenance.test.ts +101 -0
  555. package/src/consolidation-undo.ts +3 -0
  556. package/src/converge-conflict-policy-type.test.ts +15 -0
  557. package/src/convergence-refresh.ts +14 -2
  558. package/src/correction/correction-access-wiring.ts +9 -7
  559. package/src/correction/correction-executor.test.ts +206 -2
  560. package/src/correction/correction-executor.ts +29 -20
  561. package/src/correction/correction-planner.test.ts +36 -0
  562. package/src/correction/correction-planner.ts +9 -15
  563. package/src/correction/correction-service.ts +3 -1
  564. package/src/correction/correction-storage-integration.test.ts +77 -0
  565. package/src/correction/correction-surfaces.test.ts +41 -28
  566. package/src/correction/passive-capture.test.ts +59 -0
  567. package/src/correction/passive-capture.ts +4 -1
  568. package/src/entity-retrieval-boundaries.ts +17 -4
  569. package/src/entity-retrieval.ts +27 -6
  570. package/src/external-wiki-access.test.ts +65 -0
  571. package/src/external-wiki-access.ts +31 -0
  572. package/src/external-wiki-cli.ts +92 -0
  573. package/src/external-wiki-collection-registration.test.ts +163 -0
  574. package/src/external-wiki-collection-registration.ts +101 -0
  575. package/src/external-wiki-collection.test.ts +502 -0
  576. package/src/external-wiki-collection.ts +503 -0
  577. package/src/external-wiki-config.test.ts +135 -0
  578. package/src/external-wiki-config.ts +100 -0
  579. package/src/external-wiki-guard.ts +83 -0
  580. package/src/external-wiki-mcp-tools.ts +23 -0
  581. package/src/external-wiki-search.test.ts +301 -0
  582. package/src/external-wiki-search.ts +362 -0
  583. package/src/external-wiki.test.ts +240 -0
  584. package/src/external-wiki.ts +453 -0
  585. package/src/extraction-scope-source-agent.test.ts +21 -0
  586. package/src/extraction-source-grounding-helpers.ts +243 -53
  587. package/src/extraction-source-grounding-rules.ts +133 -39
  588. package/src/extraction-source-grounding.test.ts +363 -33
  589. package/src/extraction-timeout.test.ts +1 -0
  590. package/src/extraction-watermark.test.ts +150 -7
  591. package/src/extraction.ts +8 -1
  592. package/src/index.ts +8 -0
  593. package/src/mcp-read-only-tools.ts +1 -0
  594. package/src/offline-sync.test.ts +194 -0
  595. package/src/offline-sync.ts +217 -13
  596. package/src/orchestration/external-wiki-recall-guard.test.ts +94 -0
  597. package/src/orchestration/extraction-persist.ts +19 -2
  598. package/src/orchestration/extraction-run-helpers.ts +37 -19
  599. package/src/orchestration/extraction-run.test.ts +171 -2
  600. package/src/orchestration/extraction-run.ts +11 -13
  601. package/src/orchestration/extraction-watermark.ts +106 -17
  602. package/src/orchestration/generic-recall-paths.ts +14 -0
  603. package/src/orchestration/orchestrator-helpers.ts +2 -0
  604. package/src/orchestration/orchestrator-init.ts +9 -0
  605. package/src/orchestration/recall-internal-deps.ts +6 -0
  606. package/src/orchestration/recall-internal.ts +154 -33
  607. package/src/orchestration/recall-rerank-coordinator.ts +60 -25
  608. package/src/orchestration/recall-search-pipeline.test.ts +75 -1
  609. package/src/orchestration/recall-search-pipeline.ts +50 -10
  610. package/src/orchestrator-convergence-refresh.test.ts +36 -2
  611. package/src/orchestrator.ts +13 -3
  612. package/src/page-versioning.ts +5 -19
  613. package/src/procedural/procedure-recall.ts +5 -1
  614. package/src/provenance-surfaces.test.ts +3 -0
  615. package/src/qmd-client.test.ts +78 -17
  616. package/src/qmd.test.ts +24 -0
  617. package/src/qmd.ts +224 -315
  618. package/src/recall-explain-renderer.ts +3 -0
  619. package/src/recall-rerank-coordinator.test.ts +61 -0
  620. package/src/recall-xray-renderer.test.ts +6 -0
  621. package/src/recall-xray.test.ts +88 -1
  622. package/src/recall-xray.ts +15 -0
  623. package/src/reconcile/cursor.test.ts +48 -0
  624. package/src/reconcile/cursor.ts +58 -11
  625. package/src/reconcile/manifest.test.ts +4 -0
  626. package/src/reconcile/manifest.ts +41 -51
  627. package/src/reconcile/plan.test.ts +4 -0
  628. package/src/reconcile/plan.ts +29 -16
  629. package/src/search/factory.ts +6 -6
  630. package/src/search/port.ts +25 -9
  631. package/src/secure-store/secure-fs.ts +20 -12
  632. package/src/secure-store/secure-store.test.ts +41 -2
  633. package/src/spaces/index.test.ts +61 -2
  634. package/src/spaces/index.ts +44 -18
  635. package/src/storage/entity-alias-config.ts +97 -0
  636. package/src/storage/entity-canonical-id-lock.ts +53 -23
  637. package/src/storage/entity-canonical-id-migration.ts +53 -22
  638. package/src/storage/entity-canonical-id-references.ts +3 -0
  639. package/src/storage/entity-id-safety.ts +7 -0
  640. package/src/storage/entity-store.ts +6 -2
  641. package/src/storage/memory-frontmatter-metadata.ts +4 -9
  642. package/src/storage/memory-migration-serialization.ts +10 -15
  643. package/src/storage/tombstone-blocked-capture-mutation.ts +52 -64
  644. package/src/storage/tombstone-blocked-capture-sync.ts +244 -199
  645. package/src/storage-deletion-revisions.test.ts +91 -0
  646. package/src/storage-fact-hash-index-defer.test.ts +446 -163
  647. package/src/storage.ts +534 -245
  648. package/src/tool-scoped-memory.ts +10 -0
  649. package/src/transfer/capsule-import.ts +13 -0
  650. package/src/transfer/capsule-merge.ts +13 -0
  651. package/src/trust-score-recall-paths.test.ts +75 -1
  652. package/src/types.ts +7 -3
  653. package/dist/capsule-merge-IDWJPCWK.js.map +0 -1
  654. package/dist/chunk-3CE77VAP.js.map +0 -1
  655. package/dist/chunk-3TBLDMJA.js.map +0 -1
  656. package/dist/chunk-4J7G5SY4.js.map +0 -1
  657. package/dist/chunk-4L6HUREQ.js.map +0 -1
  658. package/dist/chunk-57QKLRBV.js.map +0 -1
  659. package/dist/chunk-5TFP4CUL.js.map +0 -1
  660. package/dist/chunk-7XC2HX75.js.map +0 -1
  661. package/dist/chunk-A5OJCXZL.js.map +0 -1
  662. package/dist/chunk-BUE5E2HL.js.map +0 -1
  663. package/dist/chunk-CJ2ZR7UA.js.map +0 -1
  664. package/dist/chunk-CUM2BBPN.js.map +0 -1
  665. package/dist/chunk-D3J5SLQK.js.map +0 -1
  666. package/dist/chunk-DL7ZD3JH.js.map +0 -1
  667. package/dist/chunk-DLVPUX7U.js.map +0 -1
  668. package/dist/chunk-E6PNLPGJ.js.map +0 -1
  669. package/dist/chunk-ECK75GDJ.js.map +0 -1
  670. package/dist/chunk-HREE4JHI.js.map +0 -1
  671. package/dist/chunk-IKKWIPYN.js.map +0 -1
  672. package/dist/chunk-J7VGGECD.js.map +0 -1
  673. package/dist/chunk-N5Z4EVOR.js.map +0 -1
  674. package/dist/chunk-NVRYW264.js.map +0 -1
  675. package/dist/chunk-P2BM76KT.js.map +0 -1
  676. package/dist/chunk-PVGDJXVK.js +0 -21
  677. package/dist/chunk-QJAQNXWI.js.map +0 -1
  678. package/dist/chunk-RN7DY3FC.js.map +0 -1
  679. package/dist/chunk-RVLJEII5.js.map +0 -1
  680. package/dist/chunk-S2NCTZGJ.js.map +0 -1
  681. package/dist/chunk-TDHTVMPG.js.map +0 -1
  682. package/dist/chunk-UYLMNVY6.js.map +0 -1
  683. package/dist/chunk-VCD4PSK2.js.map +0 -1
  684. package/dist/chunk-VNA7W7QF.js.map +0 -1
  685. package/dist/chunk-VWAXN2BN.js.map +0 -1
  686. package/dist/chunk-WOCNN776.js.map +0 -1
  687. package/dist/chunk-XYTOI63Z.js.map +0 -1
  688. package/dist/chunk-YV32N67O.js.map +0 -1
  689. /package/dist/{auto-sync-5OE5QOZB.js.map → auto-sync-UPTUVE4X.js.map} +0 -0
  690. /package/dist/{chunk-VUPTKTDV.js.map → chunk-2MRHJNWL.js.map} +0 -0
  691. /package/dist/{chunk-JBPKEARU.js.map → chunk-2QSZNTDO.js.map} +0 -0
  692. /package/dist/{chunk-5IVLTFOV.js.map → chunk-44N6ESJ4.js.map} +0 -0
  693. /package/dist/{chunk-HO3QBJEY.js.map → chunk-5546W5SI.js.map} +0 -0
  694. /package/dist/{chunk-U7GW7NE7.js.map → chunk-5CEECY6P.js.map} +0 -0
  695. /package/dist/{chunk-4UH4BTGK.js.map → chunk-5SNZSWWR.js.map} +0 -0
  696. /package/dist/{chunk-6CZPDBJS.js.map → chunk-5U7ID3EZ.js.map} +0 -0
  697. /package/dist/{chunk-GF22HWS2.js.map → chunk-6NNNURLK.js.map} +0 -0
  698. /package/dist/{chunk-227UFSEQ.js.map → chunk-7RZJWZ46.js.map} +0 -0
  699. /package/dist/{chunk-E5UK4VPE.js.map → chunk-7SHJHPTY.js.map} +0 -0
  700. /package/dist/{chunk-UVIKWC7M.js.map → chunk-7YERSTN7.js.map} +0 -0
  701. /package/dist/{chunk-S5SLVSVY.js.map → chunk-BQIFZ2MP.js.map} +0 -0
  702. /package/dist/{chunk-E53DSZEN.js.map → chunk-C26TE27X.js.map} +0 -0
  703. /package/dist/{chunk-LZ4LDKHZ.js.map → chunk-CLB32OHM.js.map} +0 -0
  704. /package/dist/{chunk-Q6IP2ARR.js.map → chunk-CSOYVTRX.js.map} +0 -0
  705. /package/dist/{chunk-XOQSEF7X.js.map → chunk-CVILPI77.js.map} +0 -0
  706. /package/dist/{chunk-PDLBLTOK.js.map → chunk-EITZHSX6.js.map} +0 -0
  707. /package/dist/{chunk-WUNIWKY4.js.map → chunk-ELIL2A37.js.map} +0 -0
  708. /package/dist/{chunk-CINZGPSJ.js.map → chunk-GUMZC2BO.js.map} +0 -0
  709. /package/dist/{chunk-H24WNPA2.js.map → chunk-GWFSVJ4P.js.map} +0 -0
  710. /package/dist/{chunk-TSH56VPU.js.map → chunk-HAYSYUAB.js.map} +0 -0
  711. /package/dist/{chunk-PKNLM44P.js.map → chunk-JH6BPLOP.js.map} +0 -0
  712. /package/dist/{chunk-KXB4VXHY.js.map → chunk-JIYDRBVZ.js.map} +0 -0
  713. /package/dist/{chunk-AV5ZEH4M.js.map → chunk-KVJRXN2E.js.map} +0 -0
  714. /package/dist/{chunk-JVLCVFQ4.js.map → chunk-KXEFRMCF.js.map} +0 -0
  715. /package/dist/{chunk-WFTIGIIS.js.map → chunk-L6CQ7WIW.js.map} +0 -0
  716. /package/dist/{chunk-EJUEXZHX.js.map → chunk-LLJMAULE.js.map} +0 -0
  717. /package/dist/{chunk-AS7YMSL6.js.map → chunk-M23RF3LJ.js.map} +0 -0
  718. /package/dist/{chunk-3F2LKUMU.js.map → chunk-NIS256NW.js.map} +0 -0
  719. /package/dist/{chunk-YIAA2X3D.js.map → chunk-NK5RGJ65.js.map} +0 -0
  720. /package/dist/{chunk-OQ5PRDDS.js.map → chunk-NTOIP2E6.js.map} +0 -0
  721. /package/dist/{chunk-HLPD7B7P.js.map → chunk-NUEQKLNB.js.map} +0 -0
  722. /package/dist/{chunk-33PLLLL7.js.map → chunk-P7NGM24P.js.map} +0 -0
  723. /package/dist/{chunk-7TWUCYER.js.map → chunk-PNRA7FAD.js.map} +0 -0
  724. /package/dist/{chunk-5I4M26Q7.js.map → chunk-QBSFOKY6.js.map} +0 -0
  725. /package/dist/{chunk-P4DRWEYC.js.map → chunk-QVSBTCVP.js.map} +0 -0
  726. /package/dist/{chunk-AAIUERNB.js.map → chunk-R5RFK3CB.js.map} +0 -0
  727. /package/dist/{chunk-WDISJRMG.js.map → chunk-RMMVQQA6.js.map} +0 -0
  728. /package/dist/{chunk-5SM35XZR.js.map → chunk-S5NZBKKQ.js.map} +0 -0
  729. /package/dist/{chunk-WIPEXG6R.js.map → chunk-SXIMQLGV.js.map} +0 -0
  730. /package/dist/{chunk-OAEQLRCY.js.map → chunk-TN76AKO3.js.map} +0 -0
  731. /package/dist/{chunk-QN25OCUF.js.map → chunk-TQ4GD737.js.map} +0 -0
  732. /package/dist/{chunk-7K5Q6COX.js.map → chunk-TVVEYCNW.js.map} +0 -0
  733. /package/dist/{chunk-DNWXFTLD.js.map → chunk-TYISDI6B.js.map} +0 -0
  734. /package/dist/{chunk-4LMA77JH.js.map → chunk-U2VLVBBH.js.map} +0 -0
  735. /package/dist/{chunk-5ZE7QHTK.js.map → chunk-ULVR5KG7.js.map} +0 -0
  736. /package/dist/{chunk-4B77XSG5.js.map → chunk-UV72DEZD.js.map} +0 -0
  737. /package/dist/{chunk-S2BBISHU.js.map → chunk-VANZKHTN.js.map} +0 -0
  738. /package/dist/{chunk-3Y224NYC.js.map → chunk-VYISFWVX.js.map} +0 -0
  739. /package/dist/{chunk-TIHMZFIV.js.map → chunk-W3IC7QOY.js.map} +0 -0
  740. /package/dist/{chunk-NRV4Y3PM.js.map → chunk-W4FBGYGK.js.map} +0 -0
  741. /package/dist/{chunk-MU7ZHSZE.js.map → chunk-WZFAPHIK.js.map} +0 -0
  742. /package/dist/{chunk-T2TTP3KU.js.map → chunk-X4IDNPOS.js.map} +0 -0
  743. /package/dist/{chunk-BLAKS3CP.js.map → chunk-XL3TATMJ.js.map} +0 -0
  744. /package/dist/{chunk-W4XJFLAL.js.map → chunk-XPRJSHNI.js.map} +0 -0
  745. /package/dist/{chunk-JE7EK33X.js.map → chunk-Y7HRYCNW.js.map} +0 -0
  746. /package/dist/{chunk-E6EE5B67.js.map → chunk-YK6BDDHP.js.map} +0 -0
  747. /package/dist/{chunk-ES36HTSC.js.map → chunk-YLHM5BQQ.js.map} +0 -0
  748. /package/dist/{chunk-BJKPPZ6Z.js.map → chunk-ZFGZ6PZ2.js.map} +0 -0
  749. /package/dist/{chunk-64UDOIMI.js.map → chunk-ZLQ37WJX.js.map} +0 -0
@@ -0,0 +1,387 @@
1
+ import "./chunk-PZ5AY32C.js";
2
+
3
+ // src/external-wiki-collection.ts
4
+ import { createHash } from "crypto";
5
+ import { createReadStream } from "fs";
6
+ import { readdir, realpath } from "fs/promises";
7
+ import path from "path";
8
+ var COLLECTION_PREFIX = "external-wiki-";
9
+ function externalWikiCollectionName(wikiId) {
10
+ const slug = wikiId.normalize("NFKD").toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
11
+ if (!slug) {
12
+ throw new Error("External wiki id must contain usable characters for a collection name");
13
+ }
14
+ return `${COLLECTION_PREFIX}${slug}`;
15
+ }
16
+ function supportsExternalWikiCollections(backend) {
17
+ return backend.supportsAdditionalCollections?.() === true && typeof backend.excludeCollectionFromGlobalSearch === "function" && typeof backend.deleteCollection === "function" && typeof backend.collectionRoot === "function";
18
+ }
19
+ var ExternalWikiCollectionManager = class {
20
+ constructor(backend, defaultCollection, now = () => /* @__PURE__ */ new Date()) {
21
+ this.backend = backend;
22
+ this.defaultCollection = defaultCollection;
23
+ this.now = now;
24
+ }
25
+ backend;
26
+ defaultCollection;
27
+ now;
28
+ managedByWikiId = /* @__PURE__ */ new Map();
29
+ operationTail = Promise.resolve();
30
+ statuses() {
31
+ return [...this.managedByWikiId.values()].map(({ status }) => ({ ...status }));
32
+ }
33
+ refresh(roots, execution) {
34
+ const snapshot = roots.map((root) => ({ ...root }));
35
+ return this.enqueueOperation(() => this.refreshSerial(snapshot, execution));
36
+ }
37
+ async refreshSerial(roots, execution) {
38
+ const configuredWikiIds = new Set(roots.map((root) => root.id));
39
+ for (const [wikiId, managed] of this.managedByWikiId) {
40
+ if (!configuredWikiIds.has(wikiId)) {
41
+ if (!managed.managed) {
42
+ this.managedByWikiId.delete(wikiId);
43
+ continue;
44
+ }
45
+ try {
46
+ await this.removeManagedCollection(wikiId, managed, execution);
47
+ this.managedByWikiId.delete(wikiId);
48
+ } catch (error) {
49
+ this.rememberError(
50
+ wikiId,
51
+ managed.status.collection,
52
+ safeBackendError("External wiki collection removal failed", error)
53
+ );
54
+ }
55
+ }
56
+ }
57
+ const collectionOwnerByName = /* @__PURE__ */ new Map();
58
+ const collidingWikiIds = /* @__PURE__ */ new Set();
59
+ for (const root of roots) {
60
+ if (root.enabled === false || root.indexInQmd !== true) continue;
61
+ try {
62
+ const collection = externalWikiCollectionName(root.id);
63
+ const owner = collectionOwnerByName.get(collection);
64
+ if (owner) {
65
+ collidingWikiIds.add(owner);
66
+ collidingWikiIds.add(root.id);
67
+ } else {
68
+ collectionOwnerByName.set(collection, root.id);
69
+ }
70
+ } catch {
71
+ continue;
72
+ }
73
+ }
74
+ const statuses = [];
75
+ for (const root of roots) {
76
+ if (collidingWikiIds.has(root.id)) {
77
+ statuses.push(
78
+ this.rememberError(
79
+ root.id,
80
+ externalWikiCollectionName(root.id),
81
+ "External wiki ids must not resolve to the same dedicated collection"
82
+ )
83
+ );
84
+ continue;
85
+ }
86
+ statuses.push(await this.refreshRoot(root, execution));
87
+ }
88
+ return statuses;
89
+ }
90
+ async search(wikiId, query, limit, execution) {
91
+ const managed = this.managedByWikiId.get(wikiId);
92
+ if (!managed || managed.status.state !== "healthy" || !managed.pagesDir) return null;
93
+ let degradationCode = null;
94
+ try {
95
+ const results = await this.backend.hybridSearch(query, managed.status.collection, limit, {
96
+ ...execution,
97
+ onDegradation: (detail) => {
98
+ degradationCode = detail.code;
99
+ execution?.onDegradation?.(detail);
100
+ }
101
+ });
102
+ if (degradationCode) {
103
+ managed.status = {
104
+ ...managed.status,
105
+ state: "error",
106
+ lastError: `External wiki collection search degraded (${degradationCode})`
107
+ };
108
+ return null;
109
+ }
110
+ return results.filter((result) => isPageResult(result.path, managed.pagesDir, managed.status.collection));
111
+ } catch (error) {
112
+ managed.status = {
113
+ ...managed.status,
114
+ state: "error",
115
+ lastError: safeBackendError("External wiki collection search failed", error)
116
+ };
117
+ return null;
118
+ }
119
+ }
120
+ purge(wikiId, execution) {
121
+ return this.enqueueOperation(async () => {
122
+ const collection = externalWikiCollectionName(wikiId);
123
+ this.assertDedicatedCollection(collection);
124
+ if (!this.backend.deleteCollection) return false;
125
+ const removed = await this.backend.deleteCollection(collection, execution);
126
+ this.managedByWikiId.delete(wikiId);
127
+ return removed;
128
+ });
129
+ }
130
+ enqueueOperation(operation) {
131
+ const running = this.operationTail.then(operation);
132
+ this.operationTail = running.then(
133
+ () => void 0,
134
+ () => void 0
135
+ );
136
+ return running;
137
+ }
138
+ async refreshRoot(root, execution) {
139
+ let collection;
140
+ try {
141
+ collection = externalWikiCollectionName(root.id);
142
+ this.assertDedicatedCollection(collection);
143
+ } catch (error) {
144
+ return this.rememberError(root.id, `${COLLECTION_PREFIX}invalid`, configError(error));
145
+ }
146
+ const prior = this.managedByWikiId.get(root.id);
147
+ if (root.enabled === false || root.indexInQmd !== true) {
148
+ if (prior?.managed) {
149
+ try {
150
+ await this.removeManagedCollection(root.id, prior, execution);
151
+ } catch (error) {
152
+ return this.rememberError(
153
+ root.id,
154
+ collection,
155
+ safeBackendError("External wiki collection removal failed", error)
156
+ );
157
+ }
158
+ }
159
+ return this.rememberDisabled(root.id, collection);
160
+ }
161
+ const dedicatedBackend = supportsExternalWikiCollections(this.backend) ? this.backend : null;
162
+ if (!dedicatedBackend) {
163
+ return this.rememberError(
164
+ root.id,
165
+ collection,
166
+ "Active search backend does not support dedicated external wiki collections"
167
+ );
168
+ }
169
+ let pagesDir;
170
+ let pages;
171
+ try {
172
+ pagesDir = await resolvePagesDir(root);
173
+ pages = await fingerprintMarkdownPages(pagesDir);
174
+ } catch (error) {
175
+ return this.rememberError(root.id, collection, configError(error));
176
+ }
177
+ if (prior?.managed && prior.status.state === "healthy" && prior.pagesDir === pagesDir && prior.fingerprint === pages.fingerprint) {
178
+ return { ...prior.status };
179
+ }
180
+ let rollbackCollection = false;
181
+ let managedAfterFailure = prior?.managed ?? false;
182
+ try {
183
+ let collectionState = await dedicatedBackend.ensureCollection(pagesDir, collection, execution);
184
+ if (collectionState !== "present") {
185
+ throw new Error(`Dedicated collection could not be prepared (${collectionState})`);
186
+ }
187
+ rollbackCollection = true;
188
+ managedAfterFailure = true;
189
+ let boundRoot = await dedicatedBackend.collectionRoot(collection, execution);
190
+ if (!boundRoot) {
191
+ throw new Error("Dedicated collection source root could not be verified");
192
+ }
193
+ if (await realpath(boundRoot) !== pagesDir) {
194
+ await dedicatedBackend.deleteCollection(collection, execution);
195
+ rollbackCollection = false;
196
+ managedAfterFailure = false;
197
+ collectionState = await dedicatedBackend.ensureCollection(pagesDir, collection, execution);
198
+ if (collectionState !== "present") {
199
+ throw new Error(`Dedicated collection could not be rebound (${collectionState})`);
200
+ }
201
+ rollbackCollection = true;
202
+ managedAfterFailure = true;
203
+ boundRoot = await dedicatedBackend.collectionRoot(collection, execution);
204
+ if (!boundRoot || await realpath(boundRoot) !== pagesDir) {
205
+ throw new Error("Dedicated collection source root did not match the configured pagesDir");
206
+ }
207
+ }
208
+ await dedicatedBackend.excludeCollectionFromGlobalSearch(collection, execution);
209
+ if (dedicatedBackend.updateCollectionFromDir) {
210
+ await dedicatedBackend.updateCollectionFromDir(collection, pagesDir, execution);
211
+ } else if (dedicatedBackend.updateCollectionStrict) {
212
+ await dedicatedBackend.updateCollectionStrict(collection, execution);
213
+ } else {
214
+ throw new Error("Active search backend cannot refresh a dedicated collection");
215
+ }
216
+ if (dedicatedBackend.embedCollectionStrict) {
217
+ await dedicatedBackend.embedCollectionStrict(collection);
218
+ } else {
219
+ await dedicatedBackend.embedCollection(collection);
220
+ }
221
+ const backendStatus = await dedicatedBackend.collectionStatus?.(collection);
222
+ const status = {
223
+ wikiId: root.id,
224
+ collection,
225
+ state: "healthy",
226
+ documentCount: backendStatus?.totalFiles ?? pages.documentCount,
227
+ lastIndexedAt: this.now().toISOString(),
228
+ lastError: null
229
+ };
230
+ this.managedByWikiId.set(root.id, {
231
+ status,
232
+ pagesDir,
233
+ fingerprint: pages.fingerprint,
234
+ managed: true
235
+ });
236
+ return { ...status };
237
+ } catch (error) {
238
+ let cleanupError;
239
+ if (rollbackCollection) {
240
+ try {
241
+ await dedicatedBackend.deleteCollection(collection, execution);
242
+ managedAfterFailure = false;
243
+ } catch (rollbackError) {
244
+ cleanupError = rollbackError;
245
+ managedAfterFailure = true;
246
+ }
247
+ }
248
+ const refreshError = safeBackendError("External wiki collection refresh failed", error);
249
+ const lastError = cleanupError ? `${refreshError}; ${safeBackendError("collection rollback failed", cleanupError)}` : refreshError;
250
+ const status = this.rememberError(root.id, collection, lastError);
251
+ const failed = this.managedByWikiId.get(root.id);
252
+ if (failed) {
253
+ this.managedByWikiId.set(root.id, {
254
+ ...failed,
255
+ pagesDir: managedAfterFailure ? prior?.pagesDir ?? pagesDir : null,
256
+ fingerprint: managedAfterFailure ? prior?.fingerprint ?? null : null,
257
+ managed: managedAfterFailure
258
+ });
259
+ }
260
+ return status;
261
+ }
262
+ }
263
+ assertDedicatedCollection(collection) {
264
+ if (collection === this.defaultCollection || !collection.startsWith(COLLECTION_PREFIX)) {
265
+ throw new Error("External wiki collection must not target the default memory collection");
266
+ }
267
+ }
268
+ rememberDisabled(wikiId, collection) {
269
+ const status = {
270
+ wikiId,
271
+ collection,
272
+ state: "disabled",
273
+ documentCount: null,
274
+ lastIndexedAt: null,
275
+ lastError: null
276
+ };
277
+ this.managedByWikiId.set(wikiId, { status, pagesDir: null, fingerprint: null, managed: false });
278
+ return { ...status };
279
+ }
280
+ rememberError(wikiId, collection, lastError) {
281
+ const prior = this.managedByWikiId.get(wikiId);
282
+ const status = {
283
+ wikiId,
284
+ collection,
285
+ state: "error",
286
+ documentCount: prior?.status.documentCount ?? null,
287
+ lastIndexedAt: prior?.status.lastIndexedAt ?? null,
288
+ lastError
289
+ };
290
+ this.managedByWikiId.set(wikiId, {
291
+ status,
292
+ pagesDir: prior?.pagesDir ?? null,
293
+ fingerprint: prior?.fingerprint ?? null,
294
+ managed: prior?.managed ?? false
295
+ });
296
+ return { ...status };
297
+ }
298
+ async removeManagedCollection(wikiId, managed, execution) {
299
+ if (!this.backend.deleteCollection) {
300
+ throw new Error("Active search backend cannot delete a dedicated collection; use a backend purge command");
301
+ }
302
+ await this.backend.deleteCollection(managed.status.collection, execution);
303
+ this.managedByWikiId.set(wikiId, {
304
+ status: managed.status,
305
+ pagesDir: null,
306
+ fingerprint: null,
307
+ managed: false
308
+ });
309
+ }
310
+ };
311
+ async function resolvePagesDir(root) {
312
+ const lexicalRootDir = path.resolve(root.rootDir);
313
+ const lexicalPagesDir = path.resolve(lexicalRootDir, root.pagesDir ?? "wiki");
314
+ const lexicalRelative = path.relative(lexicalRootDir, lexicalPagesDir);
315
+ if (!lexicalRelative || lexicalRelative.startsWith("..") || path.isAbsolute(lexicalRelative)) {
316
+ throw new Error("External wiki pagesDir must stay inside the configured rootDir");
317
+ }
318
+ const [rootDir, pagesDir] = await Promise.all([realpath(lexicalRootDir), realpath(lexicalPagesDir)]);
319
+ const canonicalRelative = path.relative(rootDir, pagesDir);
320
+ if (!canonicalRelative || canonicalRelative.startsWith("..") || path.isAbsolute(canonicalRelative)) {
321
+ throw new Error("External wiki pagesDir must stay inside the configured rootDir");
322
+ }
323
+ return pagesDir;
324
+ }
325
+ async function fingerprintMarkdownPages(pagesDir) {
326
+ const markdownPaths = [];
327
+ const pending = [pagesDir];
328
+ while (pending.length > 0) {
329
+ const directory = pending.pop();
330
+ const entries = await readdir(directory, { withFileTypes: true });
331
+ for (const entry of entries) {
332
+ const entryPath = path.join(directory, entry.name);
333
+ if (entry.isDirectory()) {
334
+ pending.push(entryPath);
335
+ } else if (entry.isSymbolicLink()) {
336
+ throw new Error("External wiki pagesDir must not contain symbolic links");
337
+ } else if (entry.isFile() && entry.name.toLowerCase().endsWith(".md")) {
338
+ markdownPaths.push(entryPath);
339
+ }
340
+ }
341
+ }
342
+ markdownPaths.sort();
343
+ const fingerprint = createHash("sha256");
344
+ for (const markdownPath of markdownPaths) {
345
+ fingerprint.update(path.relative(pagesDir, markdownPath));
346
+ fingerprint.update("\0");
347
+ for await (const chunk of createReadStream(markdownPath)) {
348
+ fingerprint.update(chunk);
349
+ }
350
+ fingerprint.update("\0");
351
+ }
352
+ return {
353
+ fingerprint: fingerprint.digest("hex"),
354
+ documentCount: markdownPaths.length
355
+ };
356
+ }
357
+ function isPageResult(resultPath, pagesDir, collection) {
358
+ let candidate = resultPath;
359
+ const qmdPrefix = `qmd://${collection}/`;
360
+ if (candidate.startsWith(qmdPrefix)) candidate = candidate.slice(qmdPrefix.length);
361
+ const resolved = path.isAbsolute(candidate) ? path.resolve(candidate) : path.resolve(pagesDir, candidate);
362
+ const relative = path.relative(pagesDir, resolved);
363
+ return Boolean(relative) && !relative.startsWith("..") && !path.isAbsolute(relative) && resolved.toLowerCase().endsWith(".md");
364
+ }
365
+ function configError(error) {
366
+ if (error instanceof Error && error.message.startsWith("External wiki")) {
367
+ return error.message;
368
+ }
369
+ const code = typeof error === "object" && error !== null && "code" in error ? String(error.code) : null;
370
+ return code ? `External wiki pages directory could not be scanned (${code})` : "Invalid external wiki collection configuration";
371
+ }
372
+ function safeBackendError(prefix, error) {
373
+ if (error instanceof Error && error.message.startsWith("Dedicated collection")) {
374
+ return error.message;
375
+ }
376
+ if (error instanceof Error && error.message.startsWith("Active search backend")) {
377
+ return error.message;
378
+ }
379
+ const name = error instanceof Error && error.name ? error.name : "Error";
380
+ return `${prefix} (${name})`;
381
+ }
382
+ export {
383
+ ExternalWikiCollectionManager,
384
+ externalWikiCollectionName,
385
+ supportsExternalWikiCollections
386
+ };
387
+ //# sourceMappingURL=external-wiki-collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/external-wiki-collection.ts"],"sourcesContent":["import { createHash } from \"node:crypto\";\nimport { createReadStream } from \"node:fs\";\nimport { readdir, realpath } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport type { SearchBackend, SearchExecutionOptions, SearchResult } from \"./search/port.js\";\n\nconst COLLECTION_PREFIX = \"external-wiki-\";\n\nexport interface ExternalWikiCollectionRoot {\n id: string;\n rootDir: string;\n enabled?: boolean;\n pagesDir?: string;\n indexInQmd?: boolean;\n}\n\nexport type ExternalWikiCollectionBackend = Pick<\n SearchBackend,\n | \"updateCollectionStrict\"\n | \"updateCollectionFromDir\"\n | \"embedCollection\"\n | \"embedCollectionStrict\"\n | \"hybridSearch\"\n | \"collectionStatus\"\n> & {\n ensureCollection(\n rootDir: string,\n collection: string,\n execution?: SearchExecutionOptions\n ): Promise<\"present\" | \"missing\" | \"unknown\" | \"skipped\">;\n} & Required<\n Pick<\n SearchBackend,\n | \"supportsAdditionalCollections\"\n | \"excludeCollectionFromGlobalSearch\"\n | \"deleteCollection\"\n | \"collectionRoot\"\n >\n>;\n\nexport type ExternalWikiCollectionState = \"disabled\" | \"healthy\" | \"error\";\n\nexport interface ExternalWikiCollectionStatus {\n wikiId: string;\n collection: string;\n state: ExternalWikiCollectionState;\n documentCount: number | null;\n lastIndexedAt: string | null;\n lastError: string | null;\n}\n\ninterface ManagedWikiCollection {\n status: ExternalWikiCollectionStatus;\n pagesDir: string | null;\n fingerprint: string | null;\n managed: boolean;\n}\n\ninterface PagesFingerprint {\n fingerprint: string;\n documentCount: number;\n}\n\nexport function externalWikiCollectionName(wikiId: string): string {\n const slug = wikiId\n .normalize(\"NFKD\")\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n if (!slug) {\n throw new Error(\"External wiki id must contain usable characters for a collection name\");\n }\n return `${COLLECTION_PREFIX}${slug}`;\n}\n\nexport function supportsExternalWikiCollections(\n backend: SearchBackend | ExternalWikiCollectionBackend\n): backend is ExternalWikiCollectionBackend {\n return (\n backend.supportsAdditionalCollections?.() === true &&\n typeof backend.excludeCollectionFromGlobalSearch === \"function\" &&\n typeof backend.deleteCollection === \"function\" &&\n typeof backend.collectionRoot === \"function\"\n );\n}\n\nexport class ExternalWikiCollectionManager {\n private readonly managedByWikiId = new Map<string, ManagedWikiCollection>();\n private operationTail: Promise<void> = Promise.resolve();\n\n constructor(\n private readonly backend: SearchBackend | ExternalWikiCollectionBackend,\n private readonly defaultCollection: string,\n private readonly now: () => Date = () => new Date()\n ) {}\n\n statuses(): ExternalWikiCollectionStatus[] {\n return [...this.managedByWikiId.values()].map(({ status }) => ({ ...status }));\n }\n\n refresh(\n roots: readonly ExternalWikiCollectionRoot[],\n execution?: SearchExecutionOptions\n ): Promise<ExternalWikiCollectionStatus[]> {\n const snapshot = roots.map((root) => ({ ...root }));\n return this.enqueueOperation(() => this.refreshSerial(snapshot, execution));\n }\n\n private async refreshSerial(\n roots: readonly ExternalWikiCollectionRoot[],\n execution?: SearchExecutionOptions\n ): Promise<ExternalWikiCollectionStatus[]> {\n const configuredWikiIds = new Set(roots.map((root) => root.id));\n for (const [wikiId, managed] of this.managedByWikiId) {\n if (!configuredWikiIds.has(wikiId)) {\n if (!managed.managed) {\n this.managedByWikiId.delete(wikiId);\n continue;\n }\n try {\n await this.removeManagedCollection(wikiId, managed, execution);\n this.managedByWikiId.delete(wikiId);\n } catch (error) {\n this.rememberError(\n wikiId,\n managed.status.collection,\n safeBackendError(\"External wiki collection removal failed\", error)\n );\n }\n }\n }\n\n const collectionOwnerByName = new Map<string, string>();\n const collidingWikiIds = new Set<string>();\n for (const root of roots) {\n if (root.enabled === false || root.indexInQmd !== true) continue;\n try {\n const collection = externalWikiCollectionName(root.id);\n const owner = collectionOwnerByName.get(collection);\n if (owner) {\n collidingWikiIds.add(owner);\n collidingWikiIds.add(root.id);\n } else {\n collectionOwnerByName.set(collection, root.id);\n }\n } catch {\n continue;\n }\n }\n\n const statuses: ExternalWikiCollectionStatus[] = [];\n for (const root of roots) {\n if (collidingWikiIds.has(root.id)) {\n statuses.push(\n this.rememberError(\n root.id,\n externalWikiCollectionName(root.id),\n \"External wiki ids must not resolve to the same dedicated collection\"\n )\n );\n continue;\n }\n statuses.push(await this.refreshRoot(root, execution));\n }\n return statuses;\n }\n\n async search(\n wikiId: string,\n query: string,\n limit: number,\n execution?: SearchExecutionOptions\n ): Promise<SearchResult[] | null> {\n const managed = this.managedByWikiId.get(wikiId);\n if (!managed || managed.status.state !== \"healthy\" || !managed.pagesDir) return null;\n\n let degradationCode: string | null = null;\n try {\n const results = await this.backend.hybridSearch(query, managed.status.collection, limit, {\n ...execution,\n onDegradation: (detail) => {\n degradationCode = detail.code;\n execution?.onDegradation?.(detail);\n },\n });\n if (degradationCode) {\n managed.status = {\n ...managed.status,\n state: \"error\",\n lastError: `External wiki collection search degraded (${degradationCode})`,\n };\n return null;\n }\n return results.filter((result) => isPageResult(result.path, managed.pagesDir!, managed.status.collection));\n } catch (error) {\n managed.status = {\n ...managed.status,\n state: \"error\",\n lastError: safeBackendError(\"External wiki collection search failed\", error),\n };\n return null;\n }\n }\n\n purge(wikiId: string, execution?: SearchExecutionOptions): Promise<boolean> {\n return this.enqueueOperation(async () => {\n const collection = externalWikiCollectionName(wikiId);\n this.assertDedicatedCollection(collection);\n if (!this.backend.deleteCollection) return false;\n const removed = await this.backend.deleteCollection(collection, execution);\n this.managedByWikiId.delete(wikiId);\n return removed;\n });\n }\n\n private enqueueOperation<T>(operation: () => Promise<T>): Promise<T> {\n const running = this.operationTail.then(operation);\n this.operationTail = running.then(\n () => undefined,\n () => undefined\n );\n return running;\n }\n\n private async refreshRoot(\n root: ExternalWikiCollectionRoot,\n execution?: SearchExecutionOptions\n ): Promise<ExternalWikiCollectionStatus> {\n let collection: string;\n try {\n collection = externalWikiCollectionName(root.id);\n this.assertDedicatedCollection(collection);\n } catch (error) {\n return this.rememberError(root.id, `${COLLECTION_PREFIX}invalid`, configError(error));\n }\n\n const prior = this.managedByWikiId.get(root.id);\n if (root.enabled === false || root.indexInQmd !== true) {\n if (prior?.managed) {\n try {\n await this.removeManagedCollection(root.id, prior, execution);\n } catch (error) {\n return this.rememberError(\n root.id,\n collection,\n safeBackendError(\"External wiki collection removal failed\", error)\n );\n }\n }\n return this.rememberDisabled(root.id, collection);\n }\n\n const dedicatedBackend = supportsExternalWikiCollections(this.backend) ? this.backend : null;\n if (!dedicatedBackend) {\n return this.rememberError(\n root.id,\n collection,\n \"Active search backend does not support dedicated external wiki collections\"\n );\n }\n\n let pagesDir: string;\n let pages: PagesFingerprint;\n try {\n pagesDir = await resolvePagesDir(root);\n pages = await fingerprintMarkdownPages(pagesDir);\n } catch (error) {\n return this.rememberError(root.id, collection, configError(error));\n }\n\n if (\n prior?.managed &&\n prior.status.state === \"healthy\" &&\n prior.pagesDir === pagesDir &&\n prior.fingerprint === pages.fingerprint\n ) {\n return { ...prior.status };\n }\n\n let rollbackCollection = false;\n let managedAfterFailure = prior?.managed ?? false;\n try {\n let collectionState = await dedicatedBackend.ensureCollection(pagesDir, collection, execution);\n if (collectionState !== \"present\") {\n throw new Error(`Dedicated collection could not be prepared (${collectionState})`);\n }\n rollbackCollection = true;\n managedAfterFailure = true;\n let boundRoot = await dedicatedBackend.collectionRoot(collection, execution);\n if (!boundRoot) {\n throw new Error(\"Dedicated collection source root could not be verified\");\n }\n if ((await realpath(boundRoot)) !== pagesDir) {\n await dedicatedBackend.deleteCollection(collection, execution);\n rollbackCollection = false;\n managedAfterFailure = false;\n collectionState = await dedicatedBackend.ensureCollection(pagesDir, collection, execution);\n if (collectionState !== \"present\") {\n throw new Error(`Dedicated collection could not be rebound (${collectionState})`);\n }\n rollbackCollection = true;\n managedAfterFailure = true;\n boundRoot = await dedicatedBackend.collectionRoot(collection, execution);\n if (!boundRoot || (await realpath(boundRoot)) !== pagesDir) {\n throw new Error(\"Dedicated collection source root did not match the configured pagesDir\");\n }\n }\n await dedicatedBackend.excludeCollectionFromGlobalSearch(collection, execution);\n if (dedicatedBackend.updateCollectionFromDir) {\n await dedicatedBackend.updateCollectionFromDir(collection, pagesDir, execution);\n } else if (dedicatedBackend.updateCollectionStrict) {\n await dedicatedBackend.updateCollectionStrict(collection, execution);\n } else {\n throw new Error(\"Active search backend cannot refresh a dedicated collection\");\n }\n if (dedicatedBackend.embedCollectionStrict) {\n await dedicatedBackend.embedCollectionStrict(collection);\n } else {\n await dedicatedBackend.embedCollection(collection);\n }\n const backendStatus = await dedicatedBackend.collectionStatus?.(collection);\n const status: ExternalWikiCollectionStatus = {\n wikiId: root.id,\n collection,\n state: \"healthy\",\n documentCount: backendStatus?.totalFiles ?? pages.documentCount,\n lastIndexedAt: this.now().toISOString(),\n lastError: null,\n };\n this.managedByWikiId.set(root.id, {\n status,\n pagesDir,\n fingerprint: pages.fingerprint,\n managed: true,\n });\n return { ...status };\n } catch (error) {\n let cleanupError: unknown;\n if (rollbackCollection) {\n try {\n await dedicatedBackend.deleteCollection(collection, execution);\n managedAfterFailure = false;\n } catch (rollbackError) {\n cleanupError = rollbackError;\n managedAfterFailure = true;\n }\n }\n const refreshError = safeBackendError(\"External wiki collection refresh failed\", error);\n const lastError = cleanupError\n ? `${refreshError}; ${safeBackendError(\"collection rollback failed\", cleanupError)}`\n : refreshError;\n const status = this.rememberError(root.id, collection, lastError);\n const failed = this.managedByWikiId.get(root.id);\n if (failed) {\n this.managedByWikiId.set(root.id, {\n ...failed,\n pagesDir: managedAfterFailure ? (prior?.pagesDir ?? pagesDir) : null,\n fingerprint: managedAfterFailure ? prior?.fingerprint ?? null : null,\n managed: managedAfterFailure,\n });\n }\n return status;\n }\n }\n\n private assertDedicatedCollection(collection: string): void {\n if (collection === this.defaultCollection || !collection.startsWith(COLLECTION_PREFIX)) {\n throw new Error(\"External wiki collection must not target the default memory collection\");\n }\n }\n\n private rememberDisabled(wikiId: string, collection: string): ExternalWikiCollectionStatus {\n const status: ExternalWikiCollectionStatus = {\n wikiId,\n collection,\n state: \"disabled\",\n documentCount: null,\n lastIndexedAt: null,\n lastError: null,\n };\n this.managedByWikiId.set(wikiId, { status, pagesDir: null, fingerprint: null, managed: false });\n return { ...status };\n }\n\n private rememberError(wikiId: string, collection: string, lastError: string): ExternalWikiCollectionStatus {\n const prior = this.managedByWikiId.get(wikiId);\n const status: ExternalWikiCollectionStatus = {\n wikiId,\n collection,\n state: \"error\",\n documentCount: prior?.status.documentCount ?? null,\n lastIndexedAt: prior?.status.lastIndexedAt ?? null,\n lastError,\n };\n this.managedByWikiId.set(wikiId, {\n status,\n pagesDir: prior?.pagesDir ?? null,\n fingerprint: prior?.fingerprint ?? null,\n managed: prior?.managed ?? false,\n });\n return { ...status };\n }\n\n private async removeManagedCollection(\n wikiId: string,\n managed: ManagedWikiCollection,\n execution?: SearchExecutionOptions\n ): Promise<void> {\n if (!this.backend.deleteCollection) {\n throw new Error(\"Active search backend cannot delete a dedicated collection; use a backend purge command\");\n }\n await this.backend.deleteCollection(managed.status.collection, execution);\n this.managedByWikiId.set(wikiId, {\n status: managed.status,\n pagesDir: null,\n fingerprint: null,\n managed: false,\n });\n }\n}\n\nasync function resolvePagesDir(root: ExternalWikiCollectionRoot): Promise<string> {\n const lexicalRootDir = path.resolve(root.rootDir);\n const lexicalPagesDir = path.resolve(lexicalRootDir, root.pagesDir ?? \"wiki\");\n const lexicalRelative = path.relative(lexicalRootDir, lexicalPagesDir);\n if (!lexicalRelative || lexicalRelative.startsWith(\"..\") || path.isAbsolute(lexicalRelative)) {\n throw new Error(\"External wiki pagesDir must stay inside the configured rootDir\");\n }\n const [rootDir, pagesDir] = await Promise.all([realpath(lexicalRootDir), realpath(lexicalPagesDir)]);\n const canonicalRelative = path.relative(rootDir, pagesDir);\n if (!canonicalRelative || canonicalRelative.startsWith(\"..\") || path.isAbsolute(canonicalRelative)) {\n throw new Error(\"External wiki pagesDir must stay inside the configured rootDir\");\n }\n return pagesDir;\n}\n\nasync function fingerprintMarkdownPages(pagesDir: string): Promise<PagesFingerprint> {\n const markdownPaths: string[] = [];\n const pending = [pagesDir];\n while (pending.length > 0) {\n const directory = pending.pop()!;\n const entries = await readdir(directory, { withFileTypes: true });\n for (const entry of entries) {\n const entryPath = path.join(directory, entry.name);\n if (entry.isDirectory()) {\n pending.push(entryPath);\n } else if (entry.isSymbolicLink()) {\n throw new Error(\"External wiki pagesDir must not contain symbolic links\");\n } else if (entry.isFile() && entry.name.toLowerCase().endsWith(\".md\")) {\n markdownPaths.push(entryPath);\n }\n }\n }\n markdownPaths.sort();\n const fingerprint = createHash(\"sha256\");\n for (const markdownPath of markdownPaths) {\n fingerprint.update(path.relative(pagesDir, markdownPath));\n fingerprint.update(\"\\0\");\n for await (const chunk of createReadStream(markdownPath)) {\n fingerprint.update(chunk);\n }\n fingerprint.update(\"\\0\");\n }\n return {\n fingerprint: fingerprint.digest(\"hex\"),\n documentCount: markdownPaths.length,\n };\n}\n\nfunction isPageResult(resultPath: string, pagesDir: string, collection: string): boolean {\n let candidate = resultPath;\n const qmdPrefix = `qmd://${collection}/`;\n if (candidate.startsWith(qmdPrefix)) candidate = candidate.slice(qmdPrefix.length);\n const resolved = path.isAbsolute(candidate) ? path.resolve(candidate) : path.resolve(pagesDir, candidate);\n const relative = path.relative(pagesDir, resolved);\n return (\n Boolean(relative) &&\n !relative.startsWith(\"..\") &&\n !path.isAbsolute(relative) &&\n resolved.toLowerCase().endsWith(\".md\")\n );\n}\n\nfunction configError(error: unknown): string {\n if (error instanceof Error && error.message.startsWith(\"External wiki\")) {\n return error.message;\n }\n const code = typeof error === \"object\" && error !== null && \"code\" in error ? String(error.code) : null;\n return code\n ? `External wiki pages directory could not be scanned (${code})`\n : \"Invalid external wiki collection configuration\";\n}\n\nfunction safeBackendError(prefix: string, error: unknown): string {\n if (error instanceof Error && error.message.startsWith(\"Dedicated collection\")) {\n return error.message;\n }\n if (error instanceof Error && error.message.startsWith(\"Active search backend\")) {\n return error.message;\n }\n const name = error instanceof Error && error.name ? error.name : \"Error\";\n return `${prefix} (${name})`;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,13 @@
1
+ interface ExternalWikiRoot {
2
+ id: string;
3
+ rootDir: string;
4
+ enabled: boolean;
5
+ label?: string;
6
+ pagesDir: string;
7
+ indexFile: string;
8
+ indexInQmd: boolean;
9
+ includeInDefaultRecall: false;
10
+ }
11
+ declare function parseExternalWikiRoots(value: unknown, memoryDir?: string): ExternalWikiRoot[];
12
+
13
+ export { type ExternalWikiRoot, parseExternalWikiRoots };
@@ -0,0 +1,13 @@
1
+ import {
2
+ parseExternalWikiRoots
3
+ } from "./chunk-NLDVVWCL.js";
4
+ import "./chunk-JV3C2MNQ.js";
5
+ import "./chunk-PQVCH2AE.js";
6
+ import "./chunk-EYIEWJNI.js";
7
+ import "./chunk-JUC24CTX.js";
8
+ import "./chunk-3WCASNQZ.js";
9
+ import "./chunk-PZ5AY32C.js";
10
+ export {
11
+ parseExternalWikiRoots
12
+ };
13
+ //# sourceMappingURL=external-wiki-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,11 @@
1
+ declare const EXTERNAL_WIKI_COLLECTION_PREFIX = "external-wiki-";
2
+ declare function isExternalWikiCollectionName(collection: string): boolean;
3
+ declare function parseExternalWikiRecallGuard(config: Record<string, unknown>): {
4
+ wikiMergeIntoRecall: false;
5
+ qmdCollection: string;
6
+ qmdColdCollection: string;
7
+ };
8
+ declare function assertExternalWikiRootOutsideMemoryDir(memoryDir: string, rootDir: string): void;
9
+ declare function assertExternalWikiRootOutsideMemoryDirCanonical(memoryDir: string, rootDir: string): Promise<void>;
10
+
11
+ export { EXTERNAL_WIKI_COLLECTION_PREFIX, assertExternalWikiRootOutsideMemoryDir, assertExternalWikiRootOutsideMemoryDirCanonical, isExternalWikiCollectionName, parseExternalWikiRecallGuard };
@@ -0,0 +1,18 @@
1
+ import {
2
+ EXTERNAL_WIKI_COLLECTION_PREFIX,
3
+ assertExternalWikiRootOutsideMemoryDir,
4
+ assertExternalWikiRootOutsideMemoryDirCanonical,
5
+ isExternalWikiCollectionName,
6
+ parseExternalWikiRecallGuard
7
+ } from "./chunk-JV3C2MNQ.js";
8
+ import "./chunk-PQVCH2AE.js";
9
+ import "./chunk-3WCASNQZ.js";
10
+ import "./chunk-PZ5AY32C.js";
11
+ export {
12
+ EXTERNAL_WIKI_COLLECTION_PREFIX,
13
+ assertExternalWikiRootOutsideMemoryDir,
14
+ assertExternalWikiRootOutsideMemoryDirCanonical,
15
+ isExternalWikiCollectionName,
16
+ parseExternalWikiRecallGuard
17
+ };
18
+ //# sourceMappingURL=external-wiki-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,123 @@
1
+ import { McpTool } from './access-mcp.js';
2
+ import 'node:stream';
3
+ import './access-service-CsU-ljFD.js';
4
+ import './catalog-bctMURhN.js';
5
+ import './types-yX_FwERf.js';
6
+ import './message-parts/index.js';
7
+ import './bounded-jsonl-state.js';
8
+ import './operator-doctor-types.js';
9
+ import './external-wiki-config.js';
10
+ import './types-continuity.js';
11
+ import './access-namespace-preflight-CWUDwB4M.js';
12
+ import './access-token-capabilities.js';
13
+ import 'node:async_hooks';
14
+ import './scope-profiles-BJzp2F5A.js';
15
+ import './storage-DfjxusTE.js';
16
+ import './entity-id-normalization.js';
17
+ import './page-versioning.js';
18
+ import './consolidation-operator.js';
19
+ import './utils/serialize-mutations.js';
20
+ import './memory-projection-store.js';
21
+ import './maintenance/memory-governance.js';
22
+ import './runtime/better-sqlite.js';
23
+ import 'better-sqlite3';
24
+ import './write-envelope.js';
25
+ import './structured-attributes.js';
26
+ import './types-B1VHaf2w.js';
27
+ import './recall-explain-renderer.js';
28
+ import './recall-state.js';
29
+ import './search/port.js';
30
+ import './recall-xray.js';
31
+ import './memory-provenance.js';
32
+ import './user-model.js';
33
+ import './access-citation.js';
34
+ import './resolve-auth-token.js';
35
+ import './access-health-types.js';
36
+ import './corpus-watermark.js';
37
+ import './replica-divergence.js';
38
+ import './recall-audit-anomaly.js';
39
+ import './recall-audit.js';
40
+ import './orchestrator-DJYlwiUv.js';
41
+ import './briefing.js';
42
+ import './buffer.js';
43
+ import './extraction-faithfulness.js';
44
+ import './local-llm.js';
45
+ import './model-registry.js';
46
+ import './fallback-llm.js';
47
+ import './resolve-provider-secret.js';
48
+ import './transcript.js';
49
+ import './session-integrity.js';
50
+ import './summarizer.js';
51
+ import './maintenance-D2mveyCd.js';
52
+ import './namespaces/search.js';
53
+ import './compounding/engine.js';
54
+ import './shared-context/manager.js';
55
+ import 'zod';
56
+ import './capabilities.js';
57
+ import './utility-runtime.js';
58
+ import './tier-routing.js';
59
+ import './lifecycle.js';
60
+ import './orchestration/compression-guideline-coordinator.js';
61
+ import './semantic-consolidation-D4KAZO2G.js';
62
+ import './connectors/codex-materialize.js';
63
+ import './logger.js';
64
+ import './embedding-fallback.js';
65
+ import './extraction.js';
66
+ import './schemas.js';
67
+ import './profiling.js';
68
+ import './extraction-error-classification.js';
69
+ import './objective-state.js';
70
+ import './causal-trajectory.js';
71
+ import './trust-zones.js';
72
+ import './harmonic-retrieval.js';
73
+ import './abstraction-nodes.js';
74
+ import './cue-anchors.js';
75
+ import './verified-recall.js';
76
+ import './boxes.js';
77
+ import './semantic-rule-verifier.js';
78
+ import './work-product-ledger.js';
79
+ import './trust-score-stage.js';
80
+ import './trust-score.js';
81
+ import './conversation-index/chunker.js';
82
+ import './conversation-index/backend.js';
83
+ import './faiss-adapter-BHecI1fF.js';
84
+ import './runtime/child-process.js';
85
+ import './namespaces/storage.js';
86
+ import './threading.js';
87
+ import './graph.js';
88
+ import './recall-context-composition.js';
89
+ import './live-connectors-runner.js';
90
+ import './framework-CNDn2164.js';
91
+ import './relevance.js';
92
+ import './negative.js';
93
+ import './session-observer-state.js';
94
+ import './semantic-TddhF0y7.js';
95
+ import './replay/types.js';
96
+ import './service-BeDxSqE-.js';
97
+ import './extraction-judge.js';
98
+ import './lcm/engine.js';
99
+ import './lcm/archive.js';
100
+ import './lcm/summarizer.js';
101
+ import './lcm/dag.js';
102
+ import './lcm/recall.js';
103
+ import './lcm/queue.js';
104
+ import './policy-runtime.js';
105
+ import './explicit-capture.js';
106
+ import './cross-namespace-budget.js';
107
+ import './access-wearables-meetings-surface.js';
108
+ import './graph-snapshot.js';
109
+ import './memory-worth-outcomes.js';
110
+ import './transfer/capsule-import.js';
111
+ import './transfer/types.js';
112
+ import './transfer/capsule-export.js';
113
+ import './capsule-cli.js';
114
+ import './offline-sync.js';
115
+ import './access-offline-manifest.js';
116
+ import './reconcile/manifest.js';
117
+ import './reconcile/plan.js';
118
+ import './action-confidence.js';
119
+ import './access-errors.js';
120
+
121
+ declare const EXTERNAL_WIKI_MCP_TOOLS: McpTool[];
122
+
123
+ export { EXTERNAL_WIKI_MCP_TOOLS };
@@ -0,0 +1,8 @@
1
+ import {
2
+ EXTERNAL_WIKI_MCP_TOOLS
3
+ } from "./chunk-A5KNZSNA.js";
4
+ import "./chunk-PZ5AY32C.js";
5
+ export {
6
+ EXTERNAL_WIKI_MCP_TOOLS
7
+ };
8
+ //# sourceMappingURL=external-wiki-mcp-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}