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 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,529 @@
1
+ /**
2
+ * OCR Provenance MCP System - Zod Validation Schemas
3
+ *
4
+ * This module provides comprehensive input validation for all MCP tool inputs.
5
+ * Each schema includes:
6
+ * - Type validation
7
+ * - Constraint validation (min/max, patterns, etc.)
8
+ * - Descriptive error messages
9
+ * - Default values where appropriate
10
+ *
11
+ * @module utils/validation
12
+ */
13
+ import { z } from 'zod';
14
+ import * as path from 'path';
15
+ import { homedir } from 'os';
16
+ // ═══════════════════════════════════════════════════════════════════════════════
17
+ // CUSTOM ERROR CLASS
18
+ // ═══════════════════════════════════════════════════════════════════════════════
19
+ /**
20
+ * Custom validation error with descriptive message
21
+ */
22
+ export class ValidationError extends Error {
23
+ constructor(message) {
24
+ super(message);
25
+ this.name = 'ValidationError';
26
+ }
27
+ }
28
+ // ═══════════════════════════════════════════════════════════════════════════════
29
+ // HELPER FUNCTIONS
30
+ // ═══════════════════════════════════════════════════════════════════════════════
31
+ /**
32
+ * Validate input against schema and throw descriptive error if invalid
33
+ *
34
+ * @param schema - Zod schema to validate against
35
+ * @param input - Input value to validate
36
+ * @returns Validated and typed input data
37
+ * @throws ValidationError with descriptive message if validation fails
38
+ */
39
+ export function validateInput(schema, input) {
40
+ const result = schema.safeParse(input);
41
+ if (!result.success) {
42
+ const errors = result.error.errors.map((e) => {
43
+ const path = e.path.length > 0 ? `${e.path.join('.')}: ` : '';
44
+ return `${path}${e.message}`;
45
+ });
46
+ throw new ValidationError(errors.join('; '));
47
+ }
48
+ return result.data;
49
+ }
50
+ // ═══════════════════════════════════════════════════════════════════════════════
51
+ // SHARED ENUMS AND BASE SCHEMAS
52
+ // ═══════════════════════════════════════════════════════════════════════════════
53
+ /**
54
+ * OCR processing mode enum
55
+ */
56
+ export const OCRMode = z.enum(['fast', 'balanced', 'accurate']);
57
+ /**
58
+ * Item type for provenance lookups
59
+ */
60
+ export const ItemType = z.enum([
61
+ 'document',
62
+ 'ocr_result',
63
+ 'chunk',
64
+ 'embedding',
65
+ 'image',
66
+ 'comparison',
67
+ 'clustering',
68
+ 'form_fill',
69
+ 'extraction',
70
+ 'auto',
71
+ ]);
72
+ /**
73
+ * Export format for provenance data
74
+ */
75
+ export const ExportFormat = z.enum(['json', 'w3c-prov', 'csv']);
76
+ /**
77
+ * Export scope for provenance exports
78
+ */
79
+ export const ExportScope = z.enum(['document', 'database']);
80
+ /**
81
+ * Configuration keys that can be set
82
+ */
83
+ export const ConfigKey = z.enum([
84
+ 'datalab_default_mode',
85
+ 'datalab_max_concurrent',
86
+ 'embedding_batch_size',
87
+ 'embedding_device',
88
+ 'chunk_size',
89
+ 'chunk_overlap_percent',
90
+ 'max_chunk_size',
91
+ 'auto_cluster_enabled',
92
+ 'auto_cluster_threshold',
93
+ 'auto_cluster_algorithm',
94
+ ]);
95
+ // ═══════════════════════════════════════════════════════════════════════════════
96
+ // DATABASE MANAGEMENT SCHEMAS
97
+ // ═══════════════════════════════════════════════════════════════════════════════
98
+ /**
99
+ * Schema for creating a new database
100
+ */
101
+ export const DatabaseCreateInput = z.object({
102
+ name: z
103
+ .string()
104
+ .min(1, 'Database name is required')
105
+ .max(64, 'Database name must be 64 characters or less')
106
+ .regex(/^[a-zA-Z0-9_-]+$/, 'Database name must contain only alphanumeric characters, underscores, and hyphens'),
107
+ description: z.string().max(500, 'Description must be 500 characters or less').optional(),
108
+ storage_path: z.string().optional(),
109
+ });
110
+ /**
111
+ * Schema for listing databases
112
+ */
113
+ export const DatabaseListInput = z.object({
114
+ include_stats: z.boolean().default(false),
115
+ });
116
+ /**
117
+ * Schema for selecting a database
118
+ */
119
+ export const DatabaseSelectInput = z.object({
120
+ database_name: z.string().min(1, 'Database name is required'),
121
+ });
122
+ /**
123
+ * Schema for getting database statistics
124
+ */
125
+ export const DatabaseStatsInput = z.object({
126
+ database_name: z.string().optional(),
127
+ });
128
+ /**
129
+ * Schema for deleting a database
130
+ */
131
+ export const DatabaseDeleteInput = z.object({
132
+ database_name: z.string().min(1, 'Database name is required'),
133
+ confirm: z.literal(true, {
134
+ errorMap: () => ({ message: 'Confirm must be true to delete database' }),
135
+ }),
136
+ });
137
+ // ═══════════════════════════════════════════════════════════════════════════════
138
+ // DOCUMENT INGESTION SCHEMAS
139
+ // ═══════════════════════════════════════════════════════════════════════════════
140
+ /**
141
+ * Default supported file types for ingestion
142
+ */
143
+ export const DEFAULT_FILE_TYPES = [
144
+ // Documents
145
+ 'pdf',
146
+ 'docx',
147
+ 'doc',
148
+ 'pptx',
149
+ 'ppt',
150
+ 'xlsx',
151
+ 'xls',
152
+ // Images
153
+ 'png',
154
+ 'jpg',
155
+ 'jpeg',
156
+ 'tiff',
157
+ 'tif',
158
+ 'bmp',
159
+ 'gif',
160
+ 'webp',
161
+ // Text
162
+ 'txt',
163
+ 'csv',
164
+ 'md',
165
+ ];
166
+ /**
167
+ * Schema for ingesting a directory
168
+ */
169
+ export const IngestDirectoryInput = z.object({
170
+ directory_path: z.string().min(1, 'Directory path is required'),
171
+ recursive: z.boolean().default(true),
172
+ file_types: z.array(z.string()).optional().default(DEFAULT_FILE_TYPES),
173
+ });
174
+ /**
175
+ * Schema for ingesting specific files
176
+ */
177
+ export const IngestFilesInput = z.object({
178
+ file_paths: z
179
+ .array(z.string().min(1, 'File path cannot be empty'))
180
+ .min(1, 'At least one file path is required'),
181
+ });
182
+ /**
183
+ * Schema for processing pending documents
184
+ */
185
+ export const ProcessPendingInput = z.object({
186
+ max_concurrent: z.number().int().min(1).max(10).default(3),
187
+ ocr_mode: OCRMode.optional(),
188
+ // Datalab API parameters
189
+ max_pages: z
190
+ .number()
191
+ .int()
192
+ .min(1)
193
+ .max(7000)
194
+ .optional()
195
+ .describe('Maximum pages to process per document (Datalab limit: 7000)'),
196
+ page_range: z
197
+ .string()
198
+ .regex(/^[0-9,\-\s]+$/)
199
+ .optional()
200
+ .describe('Specific pages to process, 0-indexed (e.g., "0-5,10")'),
201
+ skip_cache: z.boolean().optional().describe('Force reprocessing, skip Datalab cache'),
202
+ disable_image_extraction: z
203
+ .boolean()
204
+ .optional()
205
+ .describe('Skip image extraction for text-only processing'),
206
+ extras: z
207
+ .array(z.enum([
208
+ 'track_changes',
209
+ 'chart_understanding',
210
+ 'extract_links',
211
+ 'table_row_bboxes',
212
+ 'infographic',
213
+ 'new_block_types',
214
+ ]))
215
+ .optional()
216
+ .describe('Extra Datalab features to enable'),
217
+ page_schema: z
218
+ .string()
219
+ .optional()
220
+ .describe('JSON schema string for structured data extraction per page'),
221
+ additional_config: z
222
+ .record(z.unknown())
223
+ .optional()
224
+ .describe('Additional Datalab config: keep_pageheader_in_output, keep_pagefooter_in_output, keep_spreadsheet_formatting'),
225
+ });
226
+ /**
227
+ * Schema for checking OCR status
228
+ */
229
+ export const OCRStatusInput = z.object({
230
+ document_id: z.string().optional(),
231
+ status_filter: z.enum(['pending', 'processing', 'complete', 'failed', 'all']).default('all'),
232
+ });
233
+ // ═══════════════════════════════════════════════════════════════════════════════
234
+ // SEARCH SCHEMAS
235
+ // ═══════════════════════════════════════════════════════════════════════════════
236
+ /**
237
+ * Metadata filter for filtering search results by document metadata
238
+ */
239
+ export const MetadataFilter = z
240
+ .object({
241
+ doc_title: z.string().optional(),
242
+ doc_author: z.string().optional(),
243
+ doc_subject: z.string().optional(),
244
+ })
245
+ .optional();
246
+ /**
247
+ * Page range filter for chunk-level filtering
248
+ */
249
+ export const PageRangeFilter = z
250
+ .object({
251
+ min_page: z.number().int().min(1).optional(),
252
+ max_page: z.number().int().min(1).optional(),
253
+ })
254
+ .optional();
255
+ /**
256
+ * Search filters sub-object schema.
257
+ * Groups all filter parameters into a single `filters` object to reduce
258
+ * the top-level parameter count and improve schema clarity.
259
+ */
260
+ export const SearchFilters = z.object({
261
+ document_filter: z.array(z.string()).optional()
262
+ .describe('Restrict results to specific document IDs'),
263
+ metadata_filter: MetadataFilter
264
+ .describe('Filter by document metadata (doc_title, doc_author, doc_subject)'),
265
+ cluster_id: z.string().optional()
266
+ .describe('Filter results to documents in this cluster'),
267
+ content_type_filter: z
268
+ .array(z.string())
269
+ .optional()
270
+ .describe('Filter by chunk content types (e.g., ["table", "code", "heading"])'),
271
+ section_path_filter: z
272
+ .string()
273
+ .optional()
274
+ .describe('Filter by section path prefix (e.g., "Section 3" matches "Section 3 > 3.1 > Definitions")'),
275
+ heading_filter: z
276
+ .string()
277
+ .optional()
278
+ .describe('Filter by heading context text (LIKE match)'),
279
+ page_range_filter: PageRangeFilter.describe('Filter results to specific page range'),
280
+ is_atomic_filter: z.boolean().optional()
281
+ .describe('When true, return only atomic chunks (complete tables, figures, code blocks). When false, exclude atomic chunks.'),
282
+ heading_level_filter: z.object({
283
+ min_level: z.number().int().min(1).max(6).optional(),
284
+ max_level: z.number().int().min(1).max(6).optional(),
285
+ }).optional().describe('Filter by heading level (1=h1 top-level, 6=h6 deepest)'),
286
+ min_page_count: z.number().int().min(1).optional()
287
+ .describe('Only include results from documents with at least this many pages'),
288
+ max_page_count: z.number().int().min(1).optional()
289
+ .describe('Only include results from documents with at most this many pages'),
290
+ table_columns_contain: z.string().optional()
291
+ .describe('Filter to table chunks whose column headers contain this text (case-insensitive match on stored table_columns in processing_params)'),
292
+ min_quality_score: z
293
+ .number()
294
+ .min(0.01)
295
+ .max(5)
296
+ .optional()
297
+ .describe('Minimum OCR quality score (0.01-5). Filters to documents with quality >= threshold. Use 0.01 for "all scored documents".'),
298
+ }).optional().default({});
299
+ /**
300
+ * Unified search schema - single schema for keyword, semantic, and hybrid search.
301
+ * Mode parameter selects the search strategy. Defaults that are always-on are
302
+ * hardcoded in the handler (quality_boost, expand_query, exclude_duplicate_chunks,
303
+ * exclude headers/footers, include cluster context).
304
+ *
305
+ * Filter parameters are grouped under `filters` to reduce top-level parameter count.
306
+ */
307
+ export const SearchUnifiedInput = z.object({
308
+ // ── Core parameters ─────────────────────────────────────────────────────
309
+ query: z.string().min(1, 'Query is required').max(1000, 'Query must be 1000 characters or less'),
310
+ mode: z.enum(['keyword', 'semantic', 'hybrid']).default('hybrid')
311
+ .describe('Search mode: keyword (BM25), semantic (vector), or hybrid (BM25+semantic fusion). Default: hybrid.'),
312
+ limit: z.number().int().min(1).max(100).default(10),
313
+ include_provenance: z.boolean().default(false),
314
+ rerank: z
315
+ .boolean()
316
+ .default(false)
317
+ .describe('Re-rank results using local cross-encoder model for contextual relevance scoring'),
318
+ include_context_chunks: z.number().int().min(0).max(3).default(0)
319
+ .describe('Number of neighboring chunks to include before and after each result (0=none, max 3). Adds context_before and context_after arrays.'),
320
+ group_by_document: z.boolean().default(false)
321
+ .describe('Group results by source document with document-level statistics'),
322
+ // ── Filters (grouped) ──────────────────────────────────────────────────
323
+ filters: SearchFilters,
324
+ // ── Keyword-mode specific ───────────────────────────────────────────────
325
+ phrase_search: z.boolean().default(false)
326
+ .describe('(keyword mode) Treat query as exact phrase'),
327
+ include_highlight: z.boolean().default(true)
328
+ .describe('(keyword mode) Include highlighted snippets'),
329
+ // ── Semantic-mode specific ──────────────────────────────────────────────
330
+ similarity_threshold: z.number().min(0).max(1).default(0.7)
331
+ .describe('(semantic mode) Minimum similarity score (0-1)'),
332
+ // ── Hybrid-mode specific ────────────────────────────────────────────────
333
+ bm25_weight: z.number().min(0).max(2).default(1.0)
334
+ .describe('(hybrid mode) BM25 result weight'),
335
+ semantic_weight: z.number().min(0).max(2).default(1.0)
336
+ .describe('(hybrid mode) Semantic result weight'),
337
+ rrf_k: z.number().int().min(1).max(100).default(60)
338
+ .describe('(hybrid mode) RRF smoothing constant'),
339
+ auto_route: z.boolean().default(true)
340
+ .describe('(hybrid mode) Auto-adjust BM25/semantic weights based on query classification'),
341
+ // ── V7 Intelligence Optimization ──────────────────────────────────────
342
+ compact: z.boolean().default(false)
343
+ .describe('When true, return only essential fields per result (document_id, chunk_id, original_text, source_file_name, page_number, score, result_type) for ~77% token reduction'),
344
+ include_provenance_summary: z.boolean().default(false)
345
+ .describe('When true, add a one-line provenance_summary string to each result showing the data lineage chain'),
346
+ });
347
+ /**
348
+ * Schema for FTS5 index management
349
+ */
350
+ export const FTSManageInput = z.object({
351
+ action: z.enum(['rebuild', 'status']),
352
+ });
353
+ // ═══════════════════════════════════════════════════════════════════════════════
354
+ // DOCUMENT MANAGEMENT SCHEMAS
355
+ // ═══════════════════════════════════════════════════════════════════════════════
356
+ /**
357
+ * Schema for listing documents
358
+ */
359
+ export const DocumentListInput = z.object({
360
+ status_filter: z.enum(['pending', 'processing', 'complete', 'failed']).optional(),
361
+ limit: z.number().int().min(1).max(1000).default(50),
362
+ offset: z.number().int().min(0).default(0),
363
+ created_after: z.string().datetime().optional()
364
+ .describe('Filter documents created after this ISO 8601 timestamp'),
365
+ created_before: z.string().datetime().optional()
366
+ .describe('Filter documents created before this ISO 8601 timestamp'),
367
+ file_type: z.string().optional()
368
+ .describe('Filter by file type (e.g., "pdf", "docx")'),
369
+ });
370
+ /**
371
+ * Schema for getting a specific document
372
+ */
373
+ export const DocumentGetInput = z.object({
374
+ document_id: z.string().min(1, 'Document ID is required'),
375
+ include_text: z.boolean().default(false),
376
+ include_chunks: z.boolean().default(false),
377
+ include_blocks: z.boolean().default(false),
378
+ include_full_provenance: z.boolean().default(false),
379
+ });
380
+ /**
381
+ * Schema for deleting a document
382
+ */
383
+ export const DocumentDeleteInput = z.object({
384
+ document_id: z.string().min(1, 'Document ID is required'),
385
+ confirm: z.literal(true, {
386
+ errorMap: () => ({ message: 'Confirm must be true to delete document' }),
387
+ }),
388
+ });
389
+ /**
390
+ * Schema for retrying failed documents
391
+ */
392
+ export const RetryFailedInput = z.object({
393
+ document_id: z.string().min(1).optional(),
394
+ });
395
+ // ═══════════════════════════════════════════════════════════════════════════════
396
+ // PROVENANCE SCHEMAS
397
+ // ═══════════════════════════════════════════════════════════════════════════════
398
+ /**
399
+ * Schema for getting provenance information
400
+ */
401
+ export const ProvenanceGetInput = z.object({
402
+ item_id: z.string().min(1, 'Item ID is required'),
403
+ item_type: ItemType.default('auto'),
404
+ });
405
+ /**
406
+ * Schema for verifying provenance integrity
407
+ */
408
+ export const ProvenanceVerifyInput = z.object({
409
+ item_id: z.string().min(1, 'Item ID is required'),
410
+ verify_content: z.boolean().default(true),
411
+ verify_chain: z.boolean().default(true),
412
+ });
413
+ /**
414
+ * Schema for exporting provenance data
415
+ */
416
+ export const ProvenanceExportInput = z
417
+ .object({
418
+ scope: ExportScope,
419
+ document_id: z.string().optional(),
420
+ format: ExportFormat.default('json'),
421
+ })
422
+ .refine((data) => data.scope !== 'document' || data.document_id !== undefined, {
423
+ message: 'document_id is required when scope is "document"',
424
+ path: ['document_id'],
425
+ });
426
+ // ═══════════════════════════════════════════════════════════════════════════════
427
+ // CONFIG SCHEMAS
428
+ // ═══════════════════════════════════════════════════════════════════════════════
429
+ /**
430
+ * Schema for getting configuration
431
+ */
432
+ export const ConfigGetInput = z.object({
433
+ key: ConfigKey.optional(),
434
+ });
435
+ /**
436
+ * Schema for setting configuration
437
+ */
438
+ export const ConfigSetInput = z.object({
439
+ key: ConfigKey,
440
+ value: z.union([z.string(), z.number(), z.boolean()]),
441
+ });
442
+ // ═══════════════════════════════════════════════════════════════════════════════
443
+ // PATH SANITIZATION
444
+ // ═══════════════════════════════════════════════════════════════════════════════
445
+ /**
446
+ * Build the default set of allowed base directories.
447
+ *
448
+ * SEC-002: Paths MUST always be validated against allowed directories.
449
+ * The default set covers all directories the system legitimately needs:
450
+ * - The storage path (database location) from server config
451
+ * - The user's home directory (documents live here)
452
+ * - /tmp for temporary files
453
+ * - The current working directory (project root)
454
+ *
455
+ * This function is called lazily so it picks up the current config at call time.
456
+ */
457
+ function getDefaultAllowedBaseDirs() {
458
+ // Inline the default storage path computation to avoid circular dependency and
459
+ // module resolution failures (M-8: createRequire fails during vitest because
460
+ // it resolves .js from src/ where only .ts files exist). This matches the
461
+ // value in src/services/storage/database/helpers.ts DEFAULT_STORAGE_PATH.
462
+ const storagePath = process.env.OCR_PROVENANCE_DATABASES_PATH
463
+ || path.join(homedir(), '.ocr-provenance', 'databases');
464
+ const dirs = [
465
+ path.resolve(storagePath),
466
+ path.resolve(homedir()),
467
+ path.resolve('/tmp'),
468
+ path.resolve(process.cwd()),
469
+ ];
470
+ // OCR_PROVENANCE_ALLOWED_DIRS: comma-separated list of additional allowed directories.
471
+ // Used in Docker to allow read-only host mounts (e.g., /host).
472
+ const extraDirs = process.env.OCR_PROVENANCE_ALLOWED_DIRS;
473
+ if (extraDirs) {
474
+ for (const d of extraDirs.split(',')) {
475
+ const trimmed = d.trim();
476
+ if (trimmed) {
477
+ dirs.push(path.resolve(trimmed));
478
+ }
479
+ }
480
+ }
481
+ return dirs;
482
+ }
483
+ /**
484
+ * Sanitize a file path to prevent directory traversal attacks.
485
+ *
486
+ * SEC-002 ENFORCEMENT: Paths are ALWAYS validated against allowed directories.
487
+ * When no allowedBaseDirs are provided, a default set is used that covers
488
+ * the storage path, home directory, /tmp, and the current working directory.
489
+ *
490
+ * - Rejects null bytes
491
+ * - Resolves the path fully via path.resolve() to eliminate '..' segments
492
+ * - Verifies the resolved path starts with one of the allowed base directories
493
+ *
494
+ * @param filePath - The file path to sanitize
495
+ * @param allowedBaseDirs - Optional array of allowed base directories. When omitted,
496
+ * defaults to [storagePath, homedir, /tmp, cwd] per SEC-002.
497
+ * @returns The resolved, safe path
498
+ * @throws ValidationError if the path contains null bytes or escapes allowed directories
499
+ */
500
+ export function sanitizePath(filePath, allowedBaseDirs) {
501
+ if (filePath.includes('\0')) {
502
+ throw new ValidationError('Path contains null bytes');
503
+ }
504
+ const resolved = path.resolve(filePath);
505
+ // SEC-002: ALWAYS enforce path restrictions. Use defaults when none provided.
506
+ const baseDirs = (allowedBaseDirs && allowedBaseDirs.length > 0)
507
+ ? allowedBaseDirs
508
+ : getDefaultAllowedBaseDirs();
509
+ const resolvedBases = baseDirs.map((d) => path.resolve(d));
510
+ const withinAllowed = resolvedBases.some((base) => resolved === base || resolved.startsWith(base + path.sep));
511
+ if (!withinAllowed) {
512
+ throw new ValidationError(`Path "${resolved}" is outside allowed directories: ${resolvedBases.join(', ')}`);
513
+ }
514
+ return resolved;
515
+ }
516
+ // ═══════════════════════════════════════════════════════════════════════════════
517
+ // SQL ESCAPING
518
+ // ═══════════════════════════════════════════════════════════════════════════════
519
+ /**
520
+ * Escape special characters for safe use in SQL LIKE clauses.
521
+ * Escapes '%', '_', and '\' characters.
522
+ *
523
+ * @param pattern - The raw string to escape
524
+ * @returns The escaped string safe for LIKE clause usage
525
+ */
526
+ export function escapeLikePattern(pattern) {
527
+ return pattern.replace(/\\/g, '\\\\').replace(/%/g, '\\%').replace(/_/g, '\\_');
528
+ }
529
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,96 @@
1
+ {
2
+ "name": "ocr-provenance-mcp",
3
+ "version": "1.0.0",
4
+ "description": "MCP server for document OCR processing, semantic search, document comparison, clustering, and provenance tracking",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "exports": {
8
+ ".": "./dist/index.js"
9
+ },
10
+ "bin": {
11
+ "ocr-provenance-mcp": "dist/bin.js",
12
+ "ocr-provenance-mcp-http": "dist/bin-http.js",
13
+ "ocr-provenance-mcp-setup": "dist/bin-setup.js"
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "python",
18
+ "!python/__pycache__",
19
+ "README.md",
20
+ "LICENSE",
21
+ ".env.example"
22
+ ],
23
+ "license": "SEE LICENSE IN LICENSE",
24
+ "author": "Chris Royse",
25
+ "homepage": "https://github.com/ChrisRoyse/OCR-Provenance#readme",
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "git+https://github.com/ChrisRoyse/OCR-Provenance.git"
29
+ },
30
+ "bugs": {
31
+ "url": "https://github.com/ChrisRoyse/OCR-Provenance/issues"
32
+ },
33
+ "keywords": [
34
+ "mcp",
35
+ "ocr",
36
+ "provenance",
37
+ "semantic-search",
38
+ "document-clustering",
39
+ "sqlite",
40
+ "vector-search",
41
+ "claude",
42
+ "model-context-protocol"
43
+ ],
44
+ "scripts": {
45
+ "build": "tsc",
46
+ "build:fast": "tsc --noCheck",
47
+ "start": "node --max-semi-space-size=64 dist/index.js",
48
+ "start:http": "MCP_TRANSPORT=http node --max-semi-space-size=64 dist/bin-http.js",
49
+ "start:docker": "node --max-semi-space-size=64 dist/bin-http.js",
50
+ "test": "vitest run",
51
+ "test:watch": "vitest",
52
+ "test:unit": "vitest run tests/unit",
53
+ "test:integration": "vitest run tests/integration",
54
+ "test:manual": "vitest run --config vitest.config.all.ts tests/manual/",
55
+ "test:gpu": "vitest run tests/unit/embedding tests/gpu",
56
+ "test:all": "vitest run --config vitest.config.all.ts",
57
+ "lint": "eslint src/ tests/",
58
+ "lint:fix": "eslint src/ tests/ --fix",
59
+ "format": "prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"",
60
+ "format:check": "prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"",
61
+ "typecheck": "tsc --noEmit --skipLibCheck",
62
+ "lint:py": "cd python && ruff check . && ruff format --check .",
63
+ "lint:py:fix": "cd python && ruff check --fix . && ruff format .",
64
+ "lint:all": "npm run lint && npm run format:check && npm run lint:py",
65
+ "lint:all:fix": "npm run lint:fix && npm run format && npm run lint:py:fix",
66
+ "check": "npm run typecheck && npm run lint:all && npm run test"
67
+ },
68
+ "dependencies": {
69
+ "@google/genai": "^1.41.0",
70
+ "@modelcontextprotocol/sdk": "^1.0.0",
71
+ "better-sqlite3": "^11.0.0",
72
+ "diff": "^8.0.3",
73
+ "dotenv": "^17.2.3",
74
+ "python-shell": "^5.0.0",
75
+ "sqlite-vec": "0.1.7-alpha.2",
76
+ "uuid": "^10.0.0",
77
+ "zod": "^3.25.0"
78
+ },
79
+ "devDependencies": {
80
+ "@eslint/js": "^9.0.0",
81
+ "@types/better-sqlite3": "^7.0.0",
82
+ "@types/node": "^20.0.0",
83
+ "@types/uuid": "^10.0.0",
84
+ "@typescript-eslint/eslint-plugin": "^8.0.0",
85
+ "@typescript-eslint/parser": "^8.0.0",
86
+ "eslint": "^9.0.0",
87
+ "globals": "^15.0.0",
88
+ "prettier": "^3.3.0",
89
+ "typescript": "^5.5.0",
90
+ "typescript-eslint": "^8.0.0",
91
+ "vitest": "^2.0.0"
92
+ },
93
+ "engines": {
94
+ "node": ">=20.0.0"
95
+ }
96
+ }
File without changes