ocr-provenance-mcp 1.0.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.

Potentially problematic release.


This version of ocr-provenance-mcp might be problematic. Click here for more details.

Files changed (578) hide show
  1. package/.env.example +55 -0
  2. package/LICENSE +78 -0
  3. package/README.md +1154 -0
  4. package/dist/bin-http.d.ts +24 -0
  5. package/dist/bin-http.d.ts.map +1 -0
  6. package/dist/bin-http.js +275 -0
  7. package/dist/bin-http.js.map +1 -0
  8. package/dist/bin-setup.d.ts +11 -0
  9. package/dist/bin-setup.d.ts.map +1 -0
  10. package/dist/bin-setup.js +610 -0
  11. package/dist/bin-setup.js.map +1 -0
  12. package/dist/bin.d.ts +16 -0
  13. package/dist/bin.d.ts.map +1 -0
  14. package/dist/bin.js +16 -0
  15. package/dist/bin.js.map +1 -0
  16. package/dist/index.d.ts +13 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +90 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/models/chunk.d.ts +136 -0
  21. package/dist/models/chunk.d.ts.map +1 -0
  22. package/dist/models/chunk.js +27 -0
  23. package/dist/models/chunk.js.map +1 -0
  24. package/dist/models/cluster.d.ts +79 -0
  25. package/dist/models/cluster.d.ts.map +1 -0
  26. package/dist/models/cluster.js +10 -0
  27. package/dist/models/cluster.js.map +1 -0
  28. package/dist/models/comparison.d.ts +62 -0
  29. package/dist/models/comparison.d.ts.map +1 -0
  30. package/dist/models/comparison.js +8 -0
  31. package/dist/models/comparison.js.map +1 -0
  32. package/dist/models/document.d.ts +104 -0
  33. package/dist/models/document.d.ts.map +1 -0
  34. package/dist/models/document.js +15 -0
  35. package/dist/models/document.js.map +1 -0
  36. package/dist/models/embedding.d.ts +87 -0
  37. package/dist/models/embedding.d.ts.map +1 -0
  38. package/dist/models/embedding.js +23 -0
  39. package/dist/models/embedding.js.map +1 -0
  40. package/dist/models/extraction.d.ts +15 -0
  41. package/dist/models/extraction.d.ts.map +1 -0
  42. package/dist/models/extraction.js +2 -0
  43. package/dist/models/extraction.js.map +1 -0
  44. package/dist/models/form-fill.d.ts +23 -0
  45. package/dist/models/form-fill.d.ts.map +1 -0
  46. package/dist/models/form-fill.js +2 -0
  47. package/dist/models/form-fill.js.map +1 -0
  48. package/dist/models/image.d.ts +177 -0
  49. package/dist/models/image.d.ts.map +1 -0
  50. package/dist/models/image.js +8 -0
  51. package/dist/models/image.js.map +1 -0
  52. package/dist/models/index.d.ts +14 -0
  53. package/dist/models/index.d.ts.map +1 -0
  54. package/dist/models/index.js +22 -0
  55. package/dist/models/index.js.map +1 -0
  56. package/dist/models/provenance.d.ts +174 -0
  57. package/dist/models/provenance.d.ts.map +1 -0
  58. package/dist/models/provenance.js +53 -0
  59. package/dist/models/provenance.js.map +1 -0
  60. package/dist/models/uploaded-file.d.ts +20 -0
  61. package/dist/models/uploaded-file.d.ts.map +1 -0
  62. package/dist/models/uploaded-file.js +2 -0
  63. package/dist/models/uploaded-file.js.map +1 -0
  64. package/dist/server/errors.d.ts +93 -0
  65. package/dist/server/errors.d.ts.map +1 -0
  66. package/dist/server/errors.js +256 -0
  67. package/dist/server/errors.js.map +1 -0
  68. package/dist/server/events.d.ts +36 -0
  69. package/dist/server/events.d.ts.map +1 -0
  70. package/dist/server/events.js +48 -0
  71. package/dist/server/events.js.map +1 -0
  72. package/dist/server/permissions.d.ts +26 -0
  73. package/dist/server/permissions.d.ts.map +1 -0
  74. package/dist/server/permissions.js +194 -0
  75. package/dist/server/permissions.js.map +1 -0
  76. package/dist/server/register-tools.d.ts +25 -0
  77. package/dist/server/register-tools.d.ts.map +1 -0
  78. package/dist/server/register-tools.js +102 -0
  79. package/dist/server/register-tools.js.map +1 -0
  80. package/dist/server/startup.d.ts +16 -0
  81. package/dist/server/startup.d.ts.map +1 -0
  82. package/dist/server/startup.js +37 -0
  83. package/dist/server/startup.js.map +1 -0
  84. package/dist/server/state.d.ts +166 -0
  85. package/dist/server/state.d.ts.map +1 -0
  86. package/dist/server/state.js +424 -0
  87. package/dist/server/state.js.map +1 -0
  88. package/dist/server/transports/http-transport.d.ts +37 -0
  89. package/dist/server/transports/http-transport.d.ts.map +1 -0
  90. package/dist/server/transports/http-transport.js +204 -0
  91. package/dist/server/transports/http-transport.js.map +1 -0
  92. package/dist/server/transports/index.d.ts +9 -0
  93. package/dist/server/transports/index.d.ts.map +1 -0
  94. package/dist/server/transports/index.js +9 -0
  95. package/dist/server/transports/index.js.map +1 -0
  96. package/dist/server/transports/session-manager.d.ts +40 -0
  97. package/dist/server/transports/session-manager.d.ts.map +1 -0
  98. package/dist/server/transports/session-manager.js +74 -0
  99. package/dist/server/transports/session-manager.js.map +1 -0
  100. package/dist/server/types.d.ts +82 -0
  101. package/dist/server/types.d.ts.map +1 -0
  102. package/dist/server/types.js +14 -0
  103. package/dist/server/types.js.map +1 -0
  104. package/dist/services/audit.d.ts +26 -0
  105. package/dist/services/audit.d.ts.map +1 -0
  106. package/dist/services/audit.js +43 -0
  107. package/dist/services/audit.js.map +1 -0
  108. package/dist/services/chunking/chunk-deduplicator.d.ts +33 -0
  109. package/dist/services/chunking/chunk-deduplicator.d.ts.map +1 -0
  110. package/dist/services/chunking/chunk-deduplicator.js +46 -0
  111. package/dist/services/chunking/chunk-deduplicator.js.map +1 -0
  112. package/dist/services/chunking/chunk-merger.d.ts +26 -0
  113. package/dist/services/chunking/chunk-merger.d.ts.map +1 -0
  114. package/dist/services/chunking/chunk-merger.js +94 -0
  115. package/dist/services/chunking/chunk-merger.js.map +1 -0
  116. package/dist/services/chunking/chunker.d.ts +62 -0
  117. package/dist/services/chunking/chunker.d.ts.map +1 -0
  118. package/dist/services/chunking/chunker.js +566 -0
  119. package/dist/services/chunking/chunker.js.map +1 -0
  120. package/dist/services/chunking/heading-normalizer.d.ts +33 -0
  121. package/dist/services/chunking/heading-normalizer.d.ts.map +1 -0
  122. package/dist/services/chunking/heading-normalizer.js +101 -0
  123. package/dist/services/chunking/heading-normalizer.js.map +1 -0
  124. package/dist/services/chunking/json-block-analyzer.d.ts +163 -0
  125. package/dist/services/chunking/json-block-analyzer.d.ts.map +1 -0
  126. package/dist/services/chunking/json-block-analyzer.js +1033 -0
  127. package/dist/services/chunking/json-block-analyzer.js.map +1 -0
  128. package/dist/services/chunking/markdown-parser.d.ts +75 -0
  129. package/dist/services/chunking/markdown-parser.d.ts.map +1 -0
  130. package/dist/services/chunking/markdown-parser.js +428 -0
  131. package/dist/services/chunking/markdown-parser.js.map +1 -0
  132. package/dist/services/chunking/text-normalizer.d.ts +20 -0
  133. package/dist/services/chunking/text-normalizer.d.ts.map +1 -0
  134. package/dist/services/chunking/text-normalizer.js +36 -0
  135. package/dist/services/chunking/text-normalizer.js.map +1 -0
  136. package/dist/services/clm/contract-schemas.d.ts +36 -0
  137. package/dist/services/clm/contract-schemas.d.ts.map +1 -0
  138. package/dist/services/clm/contract-schemas.js +92 -0
  139. package/dist/services/clm/contract-schemas.js.map +1 -0
  140. package/dist/services/clm/summarization.d.ts +46 -0
  141. package/dist/services/clm/summarization.d.ts.map +1 -0
  142. package/dist/services/clm/summarization.js +61 -0
  143. package/dist/services/clm/summarization.js.map +1 -0
  144. package/dist/services/clustering/clustering-service.d.ts +58 -0
  145. package/dist/services/clustering/clustering-service.d.ts.map +1 -0
  146. package/dist/services/clustering/clustering-service.js +467 -0
  147. package/dist/services/clustering/clustering-service.js.map +1 -0
  148. package/dist/services/comparison/diff-service.d.ts +41 -0
  149. package/dist/services/comparison/diff-service.d.ts.map +1 -0
  150. package/dist/services/comparison/diff-service.js +120 -0
  151. package/dist/services/comparison/diff-service.js.map +1 -0
  152. package/dist/services/embedding/embedder.d.ts +55 -0
  153. package/dist/services/embedding/embedder.d.ts.map +1 -0
  154. package/dist/services/embedding/embedder.js +202 -0
  155. package/dist/services/embedding/embedder.js.map +1 -0
  156. package/dist/services/embedding/nomic.d.ts +67 -0
  157. package/dist/services/embedding/nomic.d.ts.map +1 -0
  158. package/dist/services/embedding/nomic.js +280 -0
  159. package/dist/services/embedding/nomic.js.map +1 -0
  160. package/dist/services/gemini/circuit-breaker.d.ts +106 -0
  161. package/dist/services/gemini/circuit-breaker.d.ts.map +1 -0
  162. package/dist/services/gemini/circuit-breaker.js +237 -0
  163. package/dist/services/gemini/circuit-breaker.js.map +1 -0
  164. package/dist/services/gemini/client.d.ts +173 -0
  165. package/dist/services/gemini/client.d.ts.map +1 -0
  166. package/dist/services/gemini/client.js +483 -0
  167. package/dist/services/gemini/client.js.map +1 -0
  168. package/dist/services/gemini/config.d.ts +116 -0
  169. package/dist/services/gemini/config.d.ts.map +1 -0
  170. package/dist/services/gemini/config.js +118 -0
  171. package/dist/services/gemini/config.js.map +1 -0
  172. package/dist/services/gemini/index.d.ts +9 -0
  173. package/dist/services/gemini/index.d.ts.map +1 -0
  174. package/dist/services/gemini/index.js +13 -0
  175. package/dist/services/gemini/index.js.map +1 -0
  176. package/dist/services/gemini/rate-limiter.d.ts +62 -0
  177. package/dist/services/gemini/rate-limiter.d.ts.map +1 -0
  178. package/dist/services/gemini/rate-limiter.js +120 -0
  179. package/dist/services/gemini/rate-limiter.js.map +1 -0
  180. package/dist/services/images/extractor.d.ts +88 -0
  181. package/dist/services/images/extractor.d.ts.map +1 -0
  182. package/dist/services/images/extractor.js +340 -0
  183. package/dist/services/images/extractor.js.map +1 -0
  184. package/dist/services/images/optimizer.d.ts +130 -0
  185. package/dist/services/images/optimizer.d.ts.map +1 -0
  186. package/dist/services/images/optimizer.js +228 -0
  187. package/dist/services/images/optimizer.js.map +1 -0
  188. package/dist/services/ocr/datalab.d.ts +64 -0
  189. package/dist/services/ocr/datalab.d.ts.map +1 -0
  190. package/dist/services/ocr/datalab.js +425 -0
  191. package/dist/services/ocr/datalab.js.map +1 -0
  192. package/dist/services/ocr/errors.d.ts +38 -0
  193. package/dist/services/ocr/errors.d.ts.map +1 -0
  194. package/dist/services/ocr/errors.js +83 -0
  195. package/dist/services/ocr/errors.js.map +1 -0
  196. package/dist/services/ocr/file-manager.d.ts +76 -0
  197. package/dist/services/ocr/file-manager.d.ts.map +1 -0
  198. package/dist/services/ocr/file-manager.js +238 -0
  199. package/dist/services/ocr/file-manager.js.map +1 -0
  200. package/dist/services/ocr/form-fill.d.ts +48 -0
  201. package/dist/services/ocr/form-fill.d.ts.map +1 -0
  202. package/dist/services/ocr/form-fill.js +213 -0
  203. package/dist/services/ocr/form-fill.js.map +1 -0
  204. package/dist/services/ocr/processor.d.ts +95 -0
  205. package/dist/services/ocr/processor.d.ts.map +1 -0
  206. package/dist/services/ocr/processor.js +259 -0
  207. package/dist/services/ocr/processor.js.map +1 -0
  208. package/dist/services/provenance/agent-metadata.d.ts +82 -0
  209. package/dist/services/provenance/agent-metadata.d.ts.map +1 -0
  210. package/dist/services/provenance/agent-metadata.js +106 -0
  211. package/dist/services/provenance/agent-metadata.js.map +1 -0
  212. package/dist/services/provenance/chain-hash.d.ts +57 -0
  213. package/dist/services/provenance/chain-hash.d.ts.map +1 -0
  214. package/dist/services/provenance/chain-hash.js +131 -0
  215. package/dist/services/provenance/chain-hash.js.map +1 -0
  216. package/dist/services/provenance/exporter.d.ts +202 -0
  217. package/dist/services/provenance/exporter.d.ts.map +1 -0
  218. package/dist/services/provenance/exporter.js +457 -0
  219. package/dist/services/provenance/exporter.js.map +1 -0
  220. package/dist/services/provenance/index.d.ts +15 -0
  221. package/dist/services/provenance/index.d.ts.map +1 -0
  222. package/dist/services/provenance/index.js +17 -0
  223. package/dist/services/provenance/index.js.map +1 -0
  224. package/dist/services/provenance/tracker.d.ts +138 -0
  225. package/dist/services/provenance/tracker.d.ts.map +1 -0
  226. package/dist/services/provenance/tracker.js +293 -0
  227. package/dist/services/provenance/tracker.js.map +1 -0
  228. package/dist/services/provenance/verifier.d.ts +153 -0
  229. package/dist/services/provenance/verifier.d.ts.map +1 -0
  230. package/dist/services/provenance/verifier.js +536 -0
  231. package/dist/services/provenance/verifier.js.map +1 -0
  232. package/dist/services/python-pool.d.ts +70 -0
  233. package/dist/services/python-pool.d.ts.map +1 -0
  234. package/dist/services/python-pool.js +265 -0
  235. package/dist/services/python-pool.js.map +1 -0
  236. package/dist/services/search/bm25.d.ts +180 -0
  237. package/dist/services/search/bm25.d.ts.map +1 -0
  238. package/dist/services/search/bm25.js +656 -0
  239. package/dist/services/search/bm25.js.map +1 -0
  240. package/dist/services/search/fusion.d.ts +103 -0
  241. package/dist/services/search/fusion.d.ts.map +1 -0
  242. package/dist/services/search/fusion.js +122 -0
  243. package/dist/services/search/fusion.js.map +1 -0
  244. package/dist/services/search/local-reranker.d.ts +30 -0
  245. package/dist/services/search/local-reranker.d.ts.map +1 -0
  246. package/dist/services/search/local-reranker.js +123 -0
  247. package/dist/services/search/local-reranker.js.map +1 -0
  248. package/dist/services/search/quality.d.ts +11 -0
  249. package/dist/services/search/quality.d.ts.map +1 -0
  250. package/dist/services/search/quality.js +17 -0
  251. package/dist/services/search/quality.js.map +1 -0
  252. package/dist/services/search/query-classifier.d.ts +34 -0
  253. package/dist/services/search/query-classifier.d.ts.map +1 -0
  254. package/dist/services/search/query-classifier.js +114 -0
  255. package/dist/services/search/query-classifier.js.map +1 -0
  256. package/dist/services/search/query-expander.d.ts +73 -0
  257. package/dist/services/search/query-expander.d.ts.map +1 -0
  258. package/dist/services/search/query-expander.js +281 -0
  259. package/dist/services/search/query-expander.js.map +1 -0
  260. package/dist/services/search/reranker.d.ts +44 -0
  261. package/dist/services/search/reranker.d.ts.map +1 -0
  262. package/dist/services/search/reranker.js +101 -0
  263. package/dist/services/search/reranker.js.map +1 -0
  264. package/dist/services/storage/database/annotation-operations.d.ts +113 -0
  265. package/dist/services/storage/database/annotation-operations.d.ts.map +1 -0
  266. package/dist/services/storage/database/annotation-operations.js +177 -0
  267. package/dist/services/storage/database/annotation-operations.js.map +1 -0
  268. package/dist/services/storage/database/approval-operations.d.ts +132 -0
  269. package/dist/services/storage/database/approval-operations.d.ts.map +1 -0
  270. package/dist/services/storage/database/approval-operations.js +206 -0
  271. package/dist/services/storage/database/approval-operations.js.map +1 -0
  272. package/dist/services/storage/database/chunk-operations.d.ts +132 -0
  273. package/dist/services/storage/database/chunk-operations.d.ts.map +1 -0
  274. package/dist/services/storage/database/chunk-operations.js +306 -0
  275. package/dist/services/storage/database/chunk-operations.js.map +1 -0
  276. package/dist/services/storage/database/cluster-operations.d.ts +97 -0
  277. package/dist/services/storage/database/cluster-operations.d.ts.map +1 -0
  278. package/dist/services/storage/database/cluster-operations.js +258 -0
  279. package/dist/services/storage/database/cluster-operations.js.map +1 -0
  280. package/dist/services/storage/database/comparison-operations.d.ts +41 -0
  281. package/dist/services/storage/database/comparison-operations.d.ts.map +1 -0
  282. package/dist/services/storage/database/comparison-operations.js +65 -0
  283. package/dist/services/storage/database/comparison-operations.js.map +1 -0
  284. package/dist/services/storage/database/converters.d.ts +36 -0
  285. package/dist/services/storage/database/converters.d.ts.map +1 -0
  286. package/dist/services/storage/database/converters.js +244 -0
  287. package/dist/services/storage/database/converters.js.map +1 -0
  288. package/dist/services/storage/database/document-operations.d.ts +145 -0
  289. package/dist/services/storage/database/document-operations.d.ts.map +1 -0
  290. package/dist/services/storage/database/document-operations.js +498 -0
  291. package/dist/services/storage/database/document-operations.js.map +1 -0
  292. package/dist/services/storage/database/embedding-operations.d.ts +130 -0
  293. package/dist/services/storage/database/embedding-operations.d.ts.map +1 -0
  294. package/dist/services/storage/database/embedding-operations.js +315 -0
  295. package/dist/services/storage/database/embedding-operations.js.map +1 -0
  296. package/dist/services/storage/database/extraction-operations.d.ts +47 -0
  297. package/dist/services/storage/database/extraction-operations.d.ts.map +1 -0
  298. package/dist/services/storage/database/extraction-operations.js +85 -0
  299. package/dist/services/storage/database/extraction-operations.js.map +1 -0
  300. package/dist/services/storage/database/form-fill-operations.d.ts +58 -0
  301. package/dist/services/storage/database/form-fill-operations.d.ts.map +1 -0
  302. package/dist/services/storage/database/form-fill-operations.js +116 -0
  303. package/dist/services/storage/database/form-fill-operations.js.map +1 -0
  304. package/dist/services/storage/database/helpers.d.ts +29 -0
  305. package/dist/services/storage/database/helpers.d.ts.map +1 -0
  306. package/dist/services/storage/database/helpers.js +55 -0
  307. package/dist/services/storage/database/helpers.js.map +1 -0
  308. package/dist/services/storage/database/image-operations.d.ts +202 -0
  309. package/dist/services/storage/database/image-operations.d.ts.map +1 -0
  310. package/dist/services/storage/database/image-operations.js +484 -0
  311. package/dist/services/storage/database/image-operations.js.map +1 -0
  312. package/dist/services/storage/database/index.d.ts +13 -0
  313. package/dist/services/storage/database/index.d.ts.map +1 -0
  314. package/dist/services/storage/database/index.js +16 -0
  315. package/dist/services/storage/database/index.js.map +1 -0
  316. package/dist/services/storage/database/lock-operations.d.ts +59 -0
  317. package/dist/services/storage/database/lock-operations.d.ts.map +1 -0
  318. package/dist/services/storage/database/lock-operations.js +89 -0
  319. package/dist/services/storage/database/lock-operations.js.map +1 -0
  320. package/dist/services/storage/database/obligation-operations.d.ts +88 -0
  321. package/dist/services/storage/database/obligation-operations.d.ts.map +1 -0
  322. package/dist/services/storage/database/obligation-operations.js +206 -0
  323. package/dist/services/storage/database/obligation-operations.js.map +1 -0
  324. package/dist/services/storage/database/ocr-operations.d.ts +33 -0
  325. package/dist/services/storage/database/ocr-operations.d.ts.map +1 -0
  326. package/dist/services/storage/database/ocr-operations.js +70 -0
  327. package/dist/services/storage/database/ocr-operations.js.map +1 -0
  328. package/dist/services/storage/database/playbook-operations.d.ts +72 -0
  329. package/dist/services/storage/database/playbook-operations.d.ts.map +1 -0
  330. package/dist/services/storage/database/playbook-operations.js +247 -0
  331. package/dist/services/storage/database/playbook-operations.js.map +1 -0
  332. package/dist/services/storage/database/provenance-operations.d.ts +112 -0
  333. package/dist/services/storage/database/provenance-operations.d.ts.map +1 -0
  334. package/dist/services/storage/database/provenance-operations.js +251 -0
  335. package/dist/services/storage/database/provenance-operations.js.map +1 -0
  336. package/dist/services/storage/database/service.d.ts +142 -0
  337. package/dist/services/storage/database/service.d.ts.map +1 -0
  338. package/dist/services/storage/database/service.js +310 -0
  339. package/dist/services/storage/database/service.js.map +1 -0
  340. package/dist/services/storage/database/static-operations.d.ts +30 -0
  341. package/dist/services/storage/database/static-operations.d.ts.map +1 -0
  342. package/dist/services/storage/database/static-operations.js +218 -0
  343. package/dist/services/storage/database/static-operations.js.map +1 -0
  344. package/dist/services/storage/database/stats-operations.d.ts +101 -0
  345. package/dist/services/storage/database/stats-operations.d.ts.map +1 -0
  346. package/dist/services/storage/database/stats-operations.js +394 -0
  347. package/dist/services/storage/database/stats-operations.js.map +1 -0
  348. package/dist/services/storage/database/tag-operations.d.ts +76 -0
  349. package/dist/services/storage/database/tag-operations.d.ts.map +1 -0
  350. package/dist/services/storage/database/tag-operations.js +178 -0
  351. package/dist/services/storage/database/tag-operations.js.map +1 -0
  352. package/dist/services/storage/database/types.d.ts +286 -0
  353. package/dist/services/storage/database/types.d.ts.map +1 -0
  354. package/dist/services/storage/database/types.js +39 -0
  355. package/dist/services/storage/database/types.js.map +1 -0
  356. package/dist/services/storage/database/upload-operations.d.ts +71 -0
  357. package/dist/services/storage/database/upload-operations.d.ts.map +1 -0
  358. package/dist/services/storage/database/upload-operations.js +124 -0
  359. package/dist/services/storage/database/upload-operations.js.map +1 -0
  360. package/dist/services/storage/database/user-operations.d.ts +102 -0
  361. package/dist/services/storage/database/user-operations.d.ts.map +1 -0
  362. package/dist/services/storage/database/user-operations.js +151 -0
  363. package/dist/services/storage/database/user-operations.js.map +1 -0
  364. package/dist/services/storage/database/workflow-operations.d.ts +98 -0
  365. package/dist/services/storage/database/workflow-operations.d.ts.map +1 -0
  366. package/dist/services/storage/database/workflow-operations.js +157 -0
  367. package/dist/services/storage/database/workflow-operations.js.map +1 -0
  368. package/dist/services/storage/database.d.ts +16 -0
  369. package/dist/services/storage/database.d.ts.map +1 -0
  370. package/dist/services/storage/database.js +15 -0
  371. package/dist/services/storage/database.js.map +1 -0
  372. package/dist/services/storage/index.d.ts +10 -0
  373. package/dist/services/storage/index.d.ts.map +1 -0
  374. package/dist/services/storage/index.js +10 -0
  375. package/dist/services/storage/index.js.map +1 -0
  376. package/dist/services/storage/migrations/index.d.ts +16 -0
  377. package/dist/services/storage/migrations/index.d.ts.map +1 -0
  378. package/dist/services/storage/migrations/index.js +20 -0
  379. package/dist/services/storage/migrations/index.js.map +1 -0
  380. package/dist/services/storage/migrations/operations.d.ts +40 -0
  381. package/dist/services/storage/migrations/operations.d.ts.map +1 -0
  382. package/dist/services/storage/migrations/operations.js +2910 -0
  383. package/dist/services/storage/migrations/operations.js.map +1 -0
  384. package/dist/services/storage/migrations/schema-definitions.d.ts +306 -0
  385. package/dist/services/storage/migrations/schema-definitions.d.ts.map +1 -0
  386. package/dist/services/storage/migrations/schema-definitions.js +1006 -0
  387. package/dist/services/storage/migrations/schema-definitions.js.map +1 -0
  388. package/dist/services/storage/migrations/schema-helpers.d.ts +50 -0
  389. package/dist/services/storage/migrations/schema-helpers.d.ts.map +1 -0
  390. package/dist/services/storage/migrations/schema-helpers.js +176 -0
  391. package/dist/services/storage/migrations/schema-helpers.js.map +1 -0
  392. package/dist/services/storage/migrations/types.d.ts +15 -0
  393. package/dist/services/storage/migrations/types.d.ts.map +1 -0
  394. package/dist/services/storage/migrations/types.js +21 -0
  395. package/dist/services/storage/migrations/types.js.map +1 -0
  396. package/dist/services/storage/migrations/verification.d.ts +20 -0
  397. package/dist/services/storage/migrations/verification.d.ts.map +1 -0
  398. package/dist/services/storage/migrations/verification.js +78 -0
  399. package/dist/services/storage/migrations/verification.js.map +1 -0
  400. package/dist/services/storage/migrations.d.ts +16 -0
  401. package/dist/services/storage/migrations.d.ts.map +1 -0
  402. package/dist/services/storage/migrations.js +17 -0
  403. package/dist/services/storage/migrations.js.map +1 -0
  404. package/dist/services/storage/types.d.ts +12 -0
  405. package/dist/services/storage/types.d.ts.map +1 -0
  406. package/dist/services/storage/types.js +5 -0
  407. package/dist/services/storage/types.js.map +1 -0
  408. package/dist/services/storage/vector.d.ts +208 -0
  409. package/dist/services/storage/vector.d.ts.map +1 -0
  410. package/dist/services/storage/vector.js +526 -0
  411. package/dist/services/storage/vector.js.map +1 -0
  412. package/dist/services/vlm/pipeline.d.ts +194 -0
  413. package/dist/services/vlm/pipeline.d.ts.map +1 -0
  414. package/dist/services/vlm/pipeline.js +800 -0
  415. package/dist/services/vlm/pipeline.js.map +1 -0
  416. package/dist/services/vlm/prompts.d.ts +171 -0
  417. package/dist/services/vlm/prompts.d.ts.map +1 -0
  418. package/dist/services/vlm/prompts.js +229 -0
  419. package/dist/services/vlm/prompts.js.map +1 -0
  420. package/dist/services/vlm/service.d.ts +174 -0
  421. package/dist/services/vlm/service.d.ts.map +1 -0
  422. package/dist/services/vlm/service.js +256 -0
  423. package/dist/services/vlm/service.js.map +1 -0
  424. package/dist/services/webhook-delivery.d.ts +4 -0
  425. package/dist/services/webhook-delivery.d.ts.map +1 -0
  426. package/dist/services/webhook-delivery.js +140 -0
  427. package/dist/services/webhook-delivery.js.map +1 -0
  428. package/dist/tools/chunks.d.ts +19 -0
  429. package/dist/tools/chunks.d.ts.map +1 -0
  430. package/dist/tools/chunks.js +392 -0
  431. package/dist/tools/chunks.js.map +1 -0
  432. package/dist/tools/clm.d.ts +16 -0
  433. package/dist/tools/clm.d.ts.map +1 -0
  434. package/dist/tools/clm.js +668 -0
  435. package/dist/tools/clm.js.map +1 -0
  436. package/dist/tools/clustering.d.ts +13 -0
  437. package/dist/tools/clustering.d.ts.map +1 -0
  438. package/dist/tools/clustering.js +498 -0
  439. package/dist/tools/clustering.js.map +1 -0
  440. package/dist/tools/collaboration.d.ts +15 -0
  441. package/dist/tools/collaboration.d.ts.map +1 -0
  442. package/dist/tools/collaboration.js +516 -0
  443. package/dist/tools/collaboration.js.map +1 -0
  444. package/dist/tools/comparison.d.ts +13 -0
  445. package/dist/tools/comparison.d.ts.map +1 -0
  446. package/dist/tools/comparison.js +735 -0
  447. package/dist/tools/comparison.js.map +1 -0
  448. package/dist/tools/compliance.d.ts +15 -0
  449. package/dist/tools/compliance.d.ts.map +1 -0
  450. package/dist/tools/compliance.js +640 -0
  451. package/dist/tools/compliance.js.map +1 -0
  452. package/dist/tools/config.d.ts +19 -0
  453. package/dist/tools/config.d.ts.map +1 -0
  454. package/dist/tools/config.js +213 -0
  455. package/dist/tools/config.js.map +1 -0
  456. package/dist/tools/database.d.ts +62 -0
  457. package/dist/tools/database.d.ts.map +1 -0
  458. package/dist/tools/database.js +288 -0
  459. package/dist/tools/database.js.map +1 -0
  460. package/dist/tools/documents.d.ts +61 -0
  461. package/dist/tools/documents.d.ts.map +1 -0
  462. package/dist/tools/documents.js +1624 -0
  463. package/dist/tools/documents.js.map +1 -0
  464. package/dist/tools/embeddings.d.ts +14 -0
  465. package/dist/tools/embeddings.d.ts.map +1 -0
  466. package/dist/tools/embeddings.js +626 -0
  467. package/dist/tools/embeddings.js.map +1 -0
  468. package/dist/tools/evaluation.d.ts +25 -0
  469. package/dist/tools/evaluation.d.ts.map +1 -0
  470. package/dist/tools/evaluation.js +523 -0
  471. package/dist/tools/evaluation.js.map +1 -0
  472. package/dist/tools/events.d.ts +16 -0
  473. package/dist/tools/events.d.ts.map +1 -0
  474. package/dist/tools/events.js +493 -0
  475. package/dist/tools/events.js.map +1 -0
  476. package/dist/tools/extraction-structured.d.ts +13 -0
  477. package/dist/tools/extraction-structured.d.ts.map +1 -0
  478. package/dist/tools/extraction-structured.js +390 -0
  479. package/dist/tools/extraction-structured.js.map +1 -0
  480. package/dist/tools/extraction.d.ts +24 -0
  481. package/dist/tools/extraction.d.ts.map +1 -0
  482. package/dist/tools/extraction.js +424 -0
  483. package/dist/tools/extraction.js.map +1 -0
  484. package/dist/tools/file-management.d.ts +14 -0
  485. package/dist/tools/file-management.d.ts.map +1 -0
  486. package/dist/tools/file-management.js +523 -0
  487. package/dist/tools/file-management.js.map +1 -0
  488. package/dist/tools/form-fill.d.ts +13 -0
  489. package/dist/tools/form-fill.d.ts.map +1 -0
  490. package/dist/tools/form-fill.js +250 -0
  491. package/dist/tools/form-fill.js.map +1 -0
  492. package/dist/tools/health.d.ts +19 -0
  493. package/dist/tools/health.d.ts.map +1 -0
  494. package/dist/tools/health.js +229 -0
  495. package/dist/tools/health.js.map +1 -0
  496. package/dist/tools/images.d.ts +54 -0
  497. package/dist/tools/images.d.ts.map +1 -0
  498. package/dist/tools/images.js +787 -0
  499. package/dist/tools/images.js.map +1 -0
  500. package/dist/tools/ingestion.d.ts +94 -0
  501. package/dist/tools/ingestion.d.ts.map +1 -0
  502. package/dist/tools/ingestion.js +1659 -0
  503. package/dist/tools/ingestion.js.map +1 -0
  504. package/dist/tools/intelligence.d.ts +18 -0
  505. package/dist/tools/intelligence.d.ts.map +1 -0
  506. package/dist/tools/intelligence.js +1039 -0
  507. package/dist/tools/intelligence.js.map +1 -0
  508. package/dist/tools/provenance.d.ts +51 -0
  509. package/dist/tools/provenance.d.ts.map +1 -0
  510. package/dist/tools/provenance.js +691 -0
  511. package/dist/tools/provenance.js.map +1 -0
  512. package/dist/tools/reports.d.ts +41 -0
  513. package/dist/tools/reports.d.ts.map +1 -0
  514. package/dist/tools/reports.js +1394 -0
  515. package/dist/tools/reports.js.map +1 -0
  516. package/dist/tools/search.d.ts +35 -0
  517. package/dist/tools/search.d.ts.map +1 -0
  518. package/dist/tools/search.js +2528 -0
  519. package/dist/tools/search.js.map +1 -0
  520. package/dist/tools/shared.d.ts +52 -0
  521. package/dist/tools/shared.d.ts.map +1 -0
  522. package/dist/tools/shared.js +54 -0
  523. package/dist/tools/shared.js.map +1 -0
  524. package/dist/tools/tags.d.ts +15 -0
  525. package/dist/tools/tags.d.ts.map +1 -0
  526. package/dist/tools/tags.js +287 -0
  527. package/dist/tools/tags.js.map +1 -0
  528. package/dist/tools/timeline.d.ts +15 -0
  529. package/dist/tools/timeline.d.ts.map +1 -0
  530. package/dist/tools/timeline.js +14 -0
  531. package/dist/tools/timeline.js.map +1 -0
  532. package/dist/tools/users.d.ts +14 -0
  533. package/dist/tools/users.d.ts.map +1 -0
  534. package/dist/tools/users.js +257 -0
  535. package/dist/tools/users.js.map +1 -0
  536. package/dist/tools/vlm.d.ts +40 -0
  537. package/dist/tools/vlm.d.ts.map +1 -0
  538. package/dist/tools/vlm.js +475 -0
  539. package/dist/tools/vlm.js.map +1 -0
  540. package/dist/tools/workflow.d.ts +16 -0
  541. package/dist/tools/workflow.d.ts.map +1 -0
  542. package/dist/tools/workflow.js +495 -0
  543. package/dist/tools/workflow.js.map +1 -0
  544. package/dist/utils/backoff.d.ts +53 -0
  545. package/dist/utils/backoff.d.ts.map +1 -0
  546. package/dist/utils/backoff.js +78 -0
  547. package/dist/utils/backoff.js.map +1 -0
  548. package/dist/utils/config-persistence.d.ts +33 -0
  549. package/dist/utils/config-persistence.d.ts.map +1 -0
  550. package/dist/utils/config-persistence.js +61 -0
  551. package/dist/utils/config-persistence.js.map +1 -0
  552. package/dist/utils/hash.d.ts +65 -0
  553. package/dist/utils/hash.d.ts.map +1 -0
  554. package/dist/utils/hash.js +146 -0
  555. package/dist/utils/hash.js.map +1 -0
  556. package/dist/utils/math.d.ts +21 -0
  557. package/dist/utils/math.d.ts.map +1 -0
  558. package/dist/utils/math.js +39 -0
  559. package/dist/utils/math.js.map +1 -0
  560. package/dist/utils/validation.d.ts +697 -0
  561. package/dist/utils/validation.d.ts.map +1 -0
  562. package/dist/utils/validation.js +529 -0
  563. package/dist/utils/validation.js.map +1 -0
  564. package/package.json +96 -0
  565. package/python/.gitkeep +0 -0
  566. package/python/__init__.py +104 -0
  567. package/python/clustering_worker.py +440 -0
  568. package/python/docx_image_extractor.py +524 -0
  569. package/python/embedding_worker.py +552 -0
  570. package/python/file_manager_worker.py +564 -0
  571. package/python/form_fill_worker.py +399 -0
  572. package/python/gpu_utils.py +582 -0
  573. package/python/image_extractor.py +317 -0
  574. package/python/image_optimizer.py +444 -0
  575. package/python/ocr_worker.py +712 -0
  576. package/python/pyproject.toml +76 -0
  577. package/python/requirements.txt +51 -0
  578. package/python/reranker_worker.py +87 -0
@@ -0,0 +1,194 @@
1
+ /**
2
+ * Tool-Level Permission System
3
+ *
4
+ * 6 permission scopes, 4 roles.
5
+ * Each tool declares a required scope.
6
+ * Permission check runs before handler execution.
7
+ *
8
+ * FAIL FAST: Unauthorized access throws immediately.
9
+ *
10
+ * CRITICAL: NEVER use console.log() - stdout is reserved for JSON-RPC protocol.
11
+ *
12
+ * @module server/permissions
13
+ */
14
+ // ═══════════════════════════════════════════════════════════════════════════════
15
+ // ROLE-SCOPE MAPPING
16
+ // ═══════════════════════════════════════════════════════════════════════════════
17
+ /** Role to scopes mapping */
18
+ const ROLE_SCOPES = {
19
+ viewer: new Set(['ocr:read']),
20
+ reviewer: new Set(['ocr:read', 'ocr:review']),
21
+ editor: new Set(['ocr:read', 'ocr:write', 'ocr:review']),
22
+ admin: new Set([
23
+ 'ocr:read',
24
+ 'ocr:write',
25
+ 'ocr:review',
26
+ 'ocr:configure',
27
+ 'ocr:delete',
28
+ 'ocr:admin',
29
+ ]),
30
+ };
31
+ // ═══════════════════════════════════════════════════════════════════════════════
32
+ // PERMISSION CHECKS
33
+ // ═══════════════════════════════════════════════════════════════════════════════
34
+ /** Check if a role has a specific permission scope */
35
+ export function hasPermission(role, scope) {
36
+ return ROLE_SCOPES[role]?.has(scope) ?? false;
37
+ }
38
+ /** Get all scopes for a role */
39
+ export function getScopesForRole(role) {
40
+ return Array.from(ROLE_SCOPES[role] ?? []);
41
+ }
42
+ /** Validate that a role string is valid */
43
+ export function isValidRole(role) {
44
+ return role in ROLE_SCOPES;
45
+ }
46
+ // ═══════════════════════════════════════════════════════════════════════════════
47
+ // TOOL-SCOPE MAPPING
48
+ // ═══════════════════════════════════════════════════════════════════════════════
49
+ /** Tool name to required scope mapping */
50
+ export const TOOL_SCOPES = {
51
+ // ── Read tools ────────────────────────────────────────────────────────────
52
+ ocr_db_list: 'ocr:read',
53
+ ocr_db_stats: 'ocr:read',
54
+ ocr_search: 'ocr:read',
55
+ ocr_fts_manage: 'ocr:read',
56
+ ocr_search_export: 'ocr:read',
57
+ ocr_benchmark_compare: 'ocr:read',
58
+ ocr_rag_context: 'ocr:read',
59
+ ocr_search_saved: 'ocr:read',
60
+ ocr_search_cross_db: 'ocr:read',
61
+ ocr_document_list: 'ocr:read',
62
+ ocr_document_get: 'ocr:read',
63
+ ocr_document_find_similar: 'ocr:read',
64
+ ocr_document_structure: 'ocr:read',
65
+ ocr_document_duplicates: 'ocr:read',
66
+ ocr_document_versions: 'ocr:read',
67
+ ocr_document_page: 'ocr:read',
68
+ ocr_export: 'ocr:read',
69
+ ocr_provenance_get: 'ocr:read',
70
+ ocr_provenance_verify: 'ocr:read',
71
+ ocr_provenance_export: 'ocr:read',
72
+ ocr_provenance_query: 'ocr:read',
73
+ ocr_provenance_timeline: 'ocr:read',
74
+ ocr_provenance_processor_stats: 'ocr:read',
75
+ ocr_vlm_status: 'ocr:read',
76
+ ocr_image_list: 'ocr:read',
77
+ ocr_image_get: 'ocr:read',
78
+ ocr_image_stats: 'ocr:read',
79
+ ocr_image_pending: 'ocr:read',
80
+ ocr_image_search: 'ocr:read',
81
+ ocr_chunk_get: 'ocr:read',
82
+ ocr_chunk_list: 'ocr:read',
83
+ ocr_chunk_context: 'ocr:read',
84
+ ocr_embedding_list: 'ocr:read',
85
+ ocr_embedding_stats: 'ocr:read',
86
+ ocr_embedding_get: 'ocr:read',
87
+ ocr_tag_list: 'ocr:read',
88
+ ocr_tag_search: 'ocr:read',
89
+ ocr_document_tables: 'ocr:read',
90
+ ocr_document_recommend: 'ocr:read',
91
+ ocr_document_extras: 'ocr:read',
92
+ ocr_table_export: 'ocr:read',
93
+ ocr_config_get: 'ocr:read',
94
+ ocr_health_check: 'ocr:read',
95
+ ocr_guide: 'ocr:read',
96
+ ocr_report_overview: 'ocr:read',
97
+ ocr_report_performance: 'ocr:read',
98
+ ocr_document_report: 'ocr:read',
99
+ ocr_evaluation_report: 'ocr:read',
100
+ ocr_error_analytics: 'ocr:read',
101
+ ocr_trends: 'ocr:read',
102
+ ocr_cost_summary: 'ocr:read',
103
+ ocr_status: 'ocr:read',
104
+ ocr_comparison_list: 'ocr:read',
105
+ ocr_comparison_get: 'ocr:read',
106
+ ocr_cluster_list: 'ocr:read',
107
+ ocr_cluster_get: 'ocr:read',
108
+ ocr_extraction_list: 'ocr:read',
109
+ ocr_extraction_get: 'ocr:read',
110
+ ocr_file_list: 'ocr:read',
111
+ ocr_file_get: 'ocr:read',
112
+ ocr_form_fill_status: 'ocr:read',
113
+ // ── Write tools ───────────────────────────────────────────────────────────
114
+ ocr_db_create: 'ocr:write',
115
+ ocr_db_select: 'ocr:write',
116
+ ocr_ingest_files: 'ocr:write',
117
+ ocr_ingest_directory: 'ocr:write',
118
+ ocr_process_pending: 'ocr:write',
119
+ ocr_reprocess: 'ocr:write',
120
+ ocr_retry_failed: 'ocr:write',
121
+ ocr_convert_raw: 'ocr:write',
122
+ ocr_embedding_rebuild: 'ocr:write',
123
+ ocr_vlm_describe: 'ocr:write',
124
+ ocr_vlm_process: 'ocr:write',
125
+ ocr_vlm_analyze_pdf: 'ocr:write',
126
+ ocr_extract_images: 'ocr:write',
127
+ ocr_extract_structured: 'ocr:write',
128
+ ocr_form_fill: 'ocr:write',
129
+ ocr_file_upload: 'ocr:write',
130
+ ocr_file_download: 'ocr:write',
131
+ ocr_file_ingest_uploaded: 'ocr:write',
132
+ ocr_document_compare: 'ocr:write',
133
+ ocr_comparison_discover: 'ocr:write',
134
+ ocr_comparison_batch: 'ocr:write',
135
+ ocr_comparison_matrix: 'ocr:write',
136
+ ocr_cluster_documents: 'ocr:write',
137
+ ocr_cluster_assign: 'ocr:write',
138
+ ocr_cluster_merge: 'ocr:write',
139
+ ocr_cluster_reassign: 'ocr:write',
140
+ ocr_tag_create: 'ocr:write',
141
+ ocr_tag_apply: 'ocr:write',
142
+ ocr_tag_remove: 'ocr:write',
143
+ ocr_document_update_metadata: 'ocr:write',
144
+ ocr_image_reanalyze: 'ocr:write',
145
+ ocr_image_reset_failed: 'ocr:write',
146
+ ocr_evaluate: 'ocr:write',
147
+ // ── Review tools (future Phase 2/3) ───────────────────────────────────────
148
+ ocr_document_workflow: 'ocr:review',
149
+ ocr_annotation_create: 'ocr:review',
150
+ ocr_annotation_update: 'ocr:review',
151
+ ocr_annotation_list: 'ocr:read',
152
+ ocr_annotation_get: 'ocr:read',
153
+ ocr_annotation_summary: 'ocr:read',
154
+ ocr_workflow_submit: 'ocr:review',
155
+ ocr_workflow_review: 'ocr:review',
156
+ ocr_workflow_assign: 'ocr:review',
157
+ ocr_workflow_status: 'ocr:read',
158
+ ocr_workflow_queue: 'ocr:read',
159
+ // ── Configure tools ───────────────────────────────────────────────────────
160
+ ocr_config_set: 'ocr:configure',
161
+ // ── Delete tools ──────────────────────────────────────────────────────────
162
+ ocr_document_delete: 'ocr:delete',
163
+ ocr_db_delete: 'ocr:delete',
164
+ ocr_tag_delete: 'ocr:delete',
165
+ ocr_cluster_delete: 'ocr:delete',
166
+ ocr_image_delete: 'ocr:delete',
167
+ ocr_file_delete: 'ocr:delete',
168
+ ocr_annotation_delete: 'ocr:delete',
169
+ ocr_document_unlock: 'ocr:delete',
170
+ // ── Admin tools ───────────────────────────────────────────────────────────
171
+ ocr_user_info: 'ocr:admin',
172
+ ocr_audit_query: 'ocr:admin',
173
+ ocr_webhook_create: 'ocr:admin',
174
+ ocr_webhook_list: 'ocr:admin',
175
+ ocr_webhook_delete: 'ocr:admin',
176
+ ocr_compliance_report: 'ocr:admin',
177
+ ocr_compliance_hipaa: 'ocr:admin',
178
+ ocr_compliance_export: 'ocr:admin',
179
+ };
180
+ // ═══════════════════════════════════════════════════════════════════════════════
181
+ // PERMISSION CHECK
182
+ // ═══════════════════════════════════════════════════════════════════════════════
183
+ /** Check permission - returns true if allowed, false if denied. Admin always passes. */
184
+ export function checkToolPermission(toolName, userRole) {
185
+ // No user context = local mode = full access
186
+ if (userRole === null)
187
+ return true;
188
+ const requiredScope = TOOL_SCOPES[toolName];
189
+ // Tools not in the map are allowed (new tools default to accessible)
190
+ if (!requiredScope)
191
+ return true;
192
+ return hasPermission(userRole, requiredScope);
193
+ }
194
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/server/permissions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Shared Tool Registration
3
+ *
4
+ * Registers all MCP tools on a given McpServer instance.
5
+ * Used by both src/index.ts (stdio) and src/bin-http.ts (unified Docker entry).
6
+ *
7
+ * CRITICAL: NEVER use console.log() - stdout may be reserved for JSON-RPC protocol.
8
+ *
9
+ * @module server/register-tools
10
+ */
11
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
12
+ /**
13
+ * Register all tools on the given MCP server instance.
14
+ *
15
+ * @param server - McpServer instance to register tools on
16
+ * @returns Number of tools registered
17
+ * @throws Exits process with code 1 if duplicate tool names are detected
18
+ */
19
+ export declare function registerAllTools(server: McpServer): number;
20
+ /**
21
+ * Get total tool count without registering on a server instance.
22
+ * Used by HTTP mode health endpoint to avoid creating a throwaway McpServer.
23
+ */
24
+ export declare function getToolCount(): number;
25
+ //# sourceMappingURL=register-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-tools.d.ts","sourceRoot":"","sources":["../../src/server/register-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA8DzE;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAmB1D;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAMrC"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Shared Tool Registration
3
+ *
4
+ * Registers all MCP tools on a given McpServer instance.
5
+ * Used by both src/index.ts (stdio) and src/bin-http.ts (unified Docker entry).
6
+ *
7
+ * CRITICAL: NEVER use console.log() - stdout may be reserved for JSON-RPC protocol.
8
+ *
9
+ * @module server/register-tools
10
+ */
11
+ import { databaseTools } from '../tools/database.js';
12
+ import { ingestionTools } from '../tools/ingestion.js';
13
+ import { searchTools } from '../tools/search.js';
14
+ import { documentTools } from '../tools/documents.js';
15
+ import { provenanceTools } from '../tools/provenance.js';
16
+ import { configTools } from '../tools/config.js';
17
+ import { vlmTools } from '../tools/vlm.js';
18
+ import { imageTools } from '../tools/images.js';
19
+ import { evaluationTools } from '../tools/evaluation.js';
20
+ import { extractionTools } from '../tools/extraction.js';
21
+ import { reportTools } from '../tools/reports.js';
22
+ import { formFillTools } from '../tools/form-fill.js';
23
+ import { structuredExtractionTools } from '../tools/extraction-structured.js';
24
+ import { fileManagementTools } from '../tools/file-management.js';
25
+ import { comparisonTools } from '../tools/comparison.js';
26
+ import { clusteringTools } from '../tools/clustering.js';
27
+ import { chunkTools } from '../tools/chunks.js';
28
+ import { embeddingTools } from '../tools/embeddings.js';
29
+ import { tagTools } from '../tools/tags.js';
30
+ import { intelligenceTools } from '../tools/intelligence.js';
31
+ import { healthTools } from '../tools/health.js';
32
+ import { userTools } from '../tools/users.js';
33
+ import { collaborationTools } from '../tools/collaboration.js';
34
+ import { workflowTools } from '../tools/workflow.js';
35
+ import { eventTools } from '../tools/events.js';
36
+ import { clmTools } from '../tools/clm.js';
37
+ import { complianceTools } from '../tools/compliance.js';
38
+ /** All tool modules in registration order */
39
+ const allToolModules = [
40
+ databaseTools,
41
+ ingestionTools,
42
+ searchTools,
43
+ documentTools,
44
+ provenanceTools,
45
+ configTools,
46
+ vlmTools,
47
+ imageTools,
48
+ evaluationTools,
49
+ extractionTools,
50
+ reportTools,
51
+ formFillTools,
52
+ structuredExtractionTools,
53
+ fileManagementTools,
54
+ comparisonTools,
55
+ clusteringTools,
56
+ chunkTools,
57
+ embeddingTools,
58
+ tagTools,
59
+ intelligenceTools,
60
+ healthTools,
61
+ userTools,
62
+ collaborationTools,
63
+ workflowTools,
64
+ eventTools,
65
+ clmTools,
66
+ complianceTools,
67
+ ];
68
+ /**
69
+ * Register all tools on the given MCP server instance.
70
+ *
71
+ * @param server - McpServer instance to register tools on
72
+ * @returns Number of tools registered
73
+ * @throws Exits process with code 1 if duplicate tool names are detected
74
+ */
75
+ export function registerAllTools(server) {
76
+ const registeredToolNames = new Set();
77
+ let toolCount = 0;
78
+ for (const toolModule of allToolModules) {
79
+ for (const [name, tool] of Object.entries(toolModule)) {
80
+ if (registeredToolNames.has(name)) {
81
+ console.error(`[FATAL] Duplicate tool name detected: "${name}". Each tool must have a unique name.`);
82
+ process.exit(1);
83
+ }
84
+ registeredToolNames.add(name);
85
+ server.tool(name, tool.description, tool.inputSchema, tool.handler);
86
+ toolCount++;
87
+ }
88
+ }
89
+ return toolCount;
90
+ }
91
+ /**
92
+ * Get total tool count without registering on a server instance.
93
+ * Used by HTTP mode health endpoint to avoid creating a throwaway McpServer.
94
+ */
95
+ export function getToolCount() {
96
+ let count = 0;
97
+ for (const toolModule of allToolModules) {
98
+ count += Object.keys(toolModule).length;
99
+ }
100
+ return count;
101
+ }
102
+ //# sourceMappingURL=register-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-tools.js","sourceRoot":"","sources":["../../src/server/register-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,6CAA6C;AAC7C,MAAM,cAAc,GAAqC;IACvD,aAAa;IACb,cAAc;IACd,WAAW;IACX,aAAa;IACb,eAAe;IACf,WAAW;IACX,QAAQ;IACR,UAAU;IACV,eAAe;IACf,eAAe;IACf,WAAW;IACX,aAAa;IACb,yBAAyB;IACzB,mBAAmB;IACnB,eAAe;IACf,eAAe;IACf,UAAU;IACV,cAAc;IACd,QAAQ;IACR,iBAAiB;IACjB,WAAW;IACX,SAAS;IACT,kBAAkB;IAClB,aAAa;IACb,UAAU;IACV,QAAQ;IACR,eAAe;CAChB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9C,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,MAAM,UAAU,IAAI,cAAc,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACtD,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,OAAO,CAAC,KAAK,CACX,0CAA0C,IAAI,uCAAuC,CACtF,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAsC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/F,SAAS,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,UAAU,IAAI,cAAc,EAAE,CAAC;QACxC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;IAC1C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Shared Startup Validation
3
+ *
4
+ * Validates startup dependencies and applies environment-driven config.
5
+ * Used by both src/index.ts (stdio) and src/bin-http.ts (unified Docker entry).
6
+ *
7
+ * CRITICAL: NEVER use console.log() - stdout may be reserved for JSON-RPC protocol.
8
+ *
9
+ * @module server/startup
10
+ */
11
+ /**
12
+ * Validate startup dependencies and apply environment-driven config overrides.
13
+ * Warnings only: missing API keys prevent specific features, not the whole server.
14
+ */
15
+ export declare function validateStartupDependencies(): void;
16
+ //# sourceMappingURL=startup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startup.d.ts","sourceRoot":"","sources":["../../src/server/startup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,IAAI,CA2BlD"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Shared Startup Validation
3
+ *
4
+ * Validates startup dependencies and applies environment-driven config.
5
+ * Used by both src/index.ts (stdio) and src/bin-http.ts (unified Docker entry).
6
+ *
7
+ * CRITICAL: NEVER use console.log() - stdout may be reserved for JSON-RPC protocol.
8
+ *
9
+ * @module server/startup
10
+ */
11
+ import { updateConfig } from './state.js';
12
+ /**
13
+ * Validate startup dependencies and apply environment-driven config overrides.
14
+ * Warnings only: missing API keys prevent specific features, not the whole server.
15
+ */
16
+ export function validateStartupDependencies() {
17
+ const warnings = [];
18
+ if (!process.env.DATALAB_API_KEY) {
19
+ warnings.push('DATALAB_API_KEY is not set. OCR processing will fail. Get one at https://www.datalab.to');
20
+ }
21
+ if (!process.env.GEMINI_API_KEY) {
22
+ warnings.push('GEMINI_API_KEY is not set. VLM processing and evaluation will fail. Get one at https://aistudio.google.com/');
23
+ }
24
+ if (warnings.length > 0) {
25
+ console.error('=== STARTUP WARNINGS ===');
26
+ for (const w of warnings) {
27
+ console.error(` - ${w}`);
28
+ }
29
+ console.error('========================');
30
+ }
31
+ const embeddingDevice = process.env.EMBEDDING_DEVICE;
32
+ if (embeddingDevice) {
33
+ updateConfig({ embeddingDevice });
34
+ console.error(`[Config] EMBEDDING_DEVICE=${embeddingDevice}`);
35
+ }
36
+ }
37
+ //# sourceMappingURL=startup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startup.js","sourceRoot":"","sources":["../../src/server/startup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;;GAGG;AACH,MAAM,UAAU,2BAA2B;IACzC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CACX,yFAAyF,CAC1F,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;QAChC,QAAQ,CAAC,IAAI,CACX,6GAA6G,CAC9G,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACrD,IAAI,eAAe,EAAE,CAAC;QACpB,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,6BAA6B,eAAe,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * MCP Server State Management
3
+ *
4
+ * Manages global server state including current database connection and configuration.
5
+ * FAIL FAST: All state access throws immediately if preconditions not met.
6
+ *
7
+ * @module server/state
8
+ */
9
+ import { DatabaseService } from '../services/storage/database/index.js';
10
+ import { VectorService } from '../services/storage/vector.js';
11
+ import type { ServerState, ServerConfig } from './types.js';
12
+ /**
13
+ * Global server state
14
+ * Mutable state for current database and configuration
15
+ */
16
+ export declare const state: ServerState;
17
+ /**
18
+ * Services returned from requireDatabase
19
+ */
20
+ interface DatabaseServices {
21
+ db: DatabaseService;
22
+ vector: VectorService;
23
+ /** Generation counter for detecting stale references */
24
+ generation: number;
25
+ }
26
+ /**
27
+ * Require database to be selected - FAIL FAST if not
28
+ *
29
+ * @returns Database service, vector service, and generation counter
30
+ * @throws MCPError with DATABASE_NOT_SELECTED if no database is selected
31
+ */
32
+ export declare function requireDatabase(): DatabaseServices;
33
+ /**
34
+ * Validate that the database generation matches the expected value.
35
+ *
36
+ * The generation counter increments on every database switch/clear. A mismatch
37
+ * means the database was switched between the time a caller obtained the
38
+ * generation and the time it validates -- indicating a race condition where
39
+ * the caller's database reference is stale.
40
+ *
41
+ * Callers can optionally use this at critical points (e.g., before writing
42
+ * results back to the database) to detect and fail fast on stale references.
43
+ *
44
+ * @param expectedGeneration - The generation value obtained from requireDatabase()
45
+ * @throws Error if the current generation does not match
46
+ */
47
+ export declare function validateGeneration(expectedGeneration: number): void;
48
+ /**
49
+ * Begin tracking an in-flight database operation.
50
+ *
51
+ * Increments the active operation counter and returns the current generation.
52
+ * While any operations are active, selectDatabase() and clearDatabase() will
53
+ * throw to prevent database switches during async work.
54
+ *
55
+ * @returns Current database generation for later validation
56
+ * @throws MCPError if no database is selected
57
+ */
58
+ export declare function beginDatabaseOperation(): number;
59
+ /**
60
+ * End tracking an in-flight database operation.
61
+ *
62
+ * Decrements the active operation counter. Counter never goes below 0.
63
+ */
64
+ export declare function endDatabaseOperation(): void;
65
+ /**
66
+ * Get the number of active database operations (for diagnostics/testing).
67
+ */
68
+ export declare function getActiveOperationCount(): number;
69
+ /**
70
+ * Execute an async function within a tracked database operation scope.
71
+ *
72
+ * Calls beginDatabaseOperation() before the function and endDatabaseOperation()
73
+ * in a finally block, guaranteeing the counter is decremented even on error.
74
+ * Also validates the generation after the function completes to detect any
75
+ * mid-operation database switch.
76
+ *
77
+ * Use this for async tool handlers that do database writes across multiple
78
+ * await points. Read-only synchronous handlers do not need this wrapper
79
+ * because the event loop does not yield.
80
+ *
81
+ * @param fn - Async function receiving DatabaseServices
82
+ * @returns The result of fn
83
+ * @throws MCPError if no database is selected
84
+ * @throws Error if the database was switched during the operation
85
+ */
86
+ export declare function withDatabaseOperation<T>(fn: (services: DatabaseServices) => Promise<T>): Promise<T>;
87
+ /**
88
+ * Check if a database is currently selected
89
+ */
90
+ export declare function hasDatabase(): boolean;
91
+ /**
92
+ * Get current database name or null
93
+ */
94
+ export declare function getCurrentDatabaseName(): string | null;
95
+ /**
96
+ * Select a database by name - opens connection and sets as current
97
+ *
98
+ * FAIL FAST: Throws immediately if database doesn't exist or if operations
99
+ * are in-flight (H-2 guard). Uses atomic swap (M-9 fix): opens new DB first,
100
+ * then swaps state, then closes old DB -- no null window.
101
+ *
102
+ * @param name - Database name to select
103
+ * @param storagePath - Optional storage path override
104
+ * @throws MCPError with DATABASE_NOT_FOUND if database doesn't exist
105
+ * @throws Error if database operations are in-flight
106
+ */
107
+ export declare function selectDatabase(name: string, storagePath?: string): void;
108
+ /**
109
+ * Create a new database and optionally select it
110
+ *
111
+ * FAIL FAST: Throws immediately if database already exists
112
+ *
113
+ * @param name - Database name to create
114
+ * @param description - Optional description
115
+ * @param storagePath - Optional storage path override
116
+ * @param autoSelect - Whether to select the database after creation (default: true)
117
+ * @returns The created database service
118
+ * @throws MCPError with DATABASE_ALREADY_EXISTS if database exists
119
+ */
120
+ export declare function createDatabase(name: string, description?: string, storagePath?: string, autoSelect?: boolean): DatabaseService;
121
+ /**
122
+ * Delete a database
123
+ *
124
+ * FAIL FAST: Throws if database doesn't exist
125
+ *
126
+ * @param name - Database name to delete
127
+ * @param storagePath - Optional storage path override
128
+ * @throws MCPError with DATABASE_NOT_FOUND if database doesn't exist
129
+ */
130
+ export declare function deleteDatabase(name: string, storagePath?: string): void;
131
+ /**
132
+ * Clear current database selection - closes connection.
133
+ *
134
+ * FAIL FAST: Throws if async operations are in-flight (H-2 guard).
135
+ * The forceClose parameter bypasses the guard for internal use only
136
+ * (resetState in tests, process exit cleanup).
137
+ *
138
+ * @param forceClose - Skip operation guard (internal use only)
139
+ * @throws Error if database operations are in-flight and forceClose is false
140
+ */
141
+ export declare function clearDatabase(forceClose?: boolean): void;
142
+ /**
143
+ * Get current server configuration
144
+ */
145
+ export declare function getConfig(): ServerConfig;
146
+ /**
147
+ * Update server configuration (deep merges nested objects like imageOptimization)
148
+ */
149
+ export declare function updateConfig(updates: Partial<ServerConfig>): void;
150
+ /**
151
+ * Reset configuration to defaults
152
+ */
153
+ export declare function resetConfig(): void;
154
+ /**
155
+ * Get default storage path
156
+ */
157
+ export declare function getDefaultStoragePath(): string;
158
+ /**
159
+ * Reset all server state - ONLY USE IN TESTS
160
+ *
161
+ * Uses forceClose=true to bypass the operation guard since tests
162
+ * need to reset state unconditionally between test cases.
163
+ */
164
+ export declare function resetState(): void;
165
+ export {};
166
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/server/state.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAQ9D,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAmC5D;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,WAInB,CAAC;AAMF;;GAEG;AACH,UAAU,gBAAgB;IACxB,EAAE,EAAE,eAAe,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;CACpB;AAkBD;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,gBAAgB,CASlD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAOnE;AAMD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAM/C;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAI3C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,qBAAqB,CAAC,CAAC,EAC3C,EAAE,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,OAAO,CAAC,CAAC,CAAC,GAC7C,OAAO,CAAC,CAAC,CAAC,CAUZ;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAEtD;AAsDD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAoCvE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,EACpB,UAAU,GAAE,OAAc,GACzB,eAAe,CAmCjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAevE;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,UAAU,GAAE,OAAe,GAAG,IAAI,CAgB/D;AAMD;;GAEG;AACH,wBAAgB,SAAS,IAAI,YAAY,CAExC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAYjE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAMD;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAMjC"}