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":"document-operations.js","sourceRoot":"","sources":["../../../../src/services/storage/database/document-operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Embedding operations for DatabaseService
3
+ *
4
+ * Handles all CRUD operations for embeddings including batch inserts.
5
+ * Note: Vector data is stored separately in vec_embeddings by VectorService.
6
+ */
7
+ import Database from 'better-sqlite3';
8
+ import { Embedding } from '../../../models/embedding.js';
9
+ /**
10
+ * Insert an embedding (vector stored separately in vec_embeddings by VectorService)
11
+ *
12
+ * @param db - Database connection
13
+ * @param embedding - Embedding data (created_at will be generated, vector excluded)
14
+ * @param updateMetadataCounts - Callback to update metadata counts
15
+ * @returns string - The embedding ID
16
+ */
17
+ export declare function insertEmbedding(db: Database.Database, embedding: Omit<Embedding, 'created_at' | 'vector'>, updateMetadataCounts: () => void): string;
18
+ /**
19
+ * Insert multiple embeddings in a batch transaction
20
+ *
21
+ * @param db - Database connection
22
+ * @param embeddings - Array of embedding data
23
+ * @param updateMetadataCounts - Callback to update metadata counts
24
+ * @param transaction - Transaction wrapper function
25
+ * @returns string[] - Array of embedding IDs
26
+ */
27
+ export declare function insertEmbeddings(db: Database.Database, embeddings: Omit<Embedding, 'created_at' | 'vector'>[], updateMetadataCounts: () => void, transaction: <T>(fn: () => T) => T): string[];
28
+ /**
29
+ * Get an embedding by ID (without vector)
30
+ *
31
+ * @param db - Database connection
32
+ * @param id - Embedding ID
33
+ * @returns Omit<Embedding, 'vector'> | null - The embedding or null if not found
34
+ */
35
+ export declare function getEmbedding(db: Database.Database, id: string): Omit<Embedding, 'vector'> | null;
36
+ /**
37
+ * Get embedding by chunk ID (without vector)
38
+ *
39
+ * @param db - Database connection
40
+ * @param chunkId - Chunk ID
41
+ * @returns Omit<Embedding, 'vector'> | null - The embedding or null if not found
42
+ */
43
+ export declare function getEmbeddingByChunkId(db: Database.Database, chunkId: string): Omit<Embedding, 'vector'> | null;
44
+ /**
45
+ * Get embedding by extraction ID (without vector)
46
+ *
47
+ * @param db - Database connection
48
+ * @param extractionId - Extraction ID
49
+ * @returns Omit<Embedding, 'vector'> | null
50
+ */
51
+ export declare function getEmbeddingByExtractionId(db: Database.Database, extractionId: string): Omit<Embedding, 'vector'> | null;
52
+ /**
53
+ * Get all embeddings for a document (without vectors)
54
+ *
55
+ * @param db - Database connection
56
+ * @param documentId - Document ID
57
+ * @returns Omit<Embedding, 'vector'>[] - Array of embeddings
58
+ */
59
+ export declare function getEmbeddingsByDocumentId(db: Database.Database, documentId: string, options?: {
60
+ limit?: number;
61
+ offset?: number;
62
+ }): Omit<Embedding, 'vector'>[];
63
+ /**
64
+ * Filter options for getEmbeddingsFiltered
65
+ */
66
+ export interface EmbeddingFilterOptions {
67
+ document_id?: string;
68
+ source_type?: 'chunk' | 'image' | 'extraction';
69
+ model_name?: string;
70
+ limit?: number;
71
+ offset?: number;
72
+ }
73
+ /**
74
+ * Get embeddings with dynamic filtering by document, source type, model.
75
+ * Does NOT select the vector column (it's huge binary data in vec_embeddings).
76
+ *
77
+ * @param db - Database connection
78
+ * @param filters - Filter options
79
+ * @returns Array of embeddings (without vector) and total count
80
+ */
81
+ export declare function getEmbeddingsFiltered(db: Database.Database, filters: EmbeddingFilterOptions): {
82
+ embeddings: Array<Omit<Embedding, 'vector'>>;
83
+ total: number;
84
+ };
85
+ /**
86
+ * Embedding statistics result
87
+ */
88
+ export interface EmbeddingStatsResult {
89
+ total_embeddings: number;
90
+ by_source_type: Record<string, {
91
+ count: number;
92
+ avg_duration_ms: number;
93
+ }>;
94
+ by_device: Record<string, number>;
95
+ unembedded_chunks: number;
96
+ unembedded_images: number;
97
+ }
98
+ /**
99
+ * Get embedding statistics with optional document-level scoping.
100
+ *
101
+ * @param db - Database connection
102
+ * @param documentId - Optional document ID to scope stats
103
+ * @returns EmbeddingStatsResult
104
+ */
105
+ export declare function getEmbeddingStats(db: Database.Database, documentId?: string): EmbeddingStatsResult;
106
+ /**
107
+ * Delete all embeddings for a specific chunk
108
+ *
109
+ * @param db - Database connection
110
+ * @param chunkId - Chunk ID
111
+ * @returns number of embeddings deleted
112
+ */
113
+ export declare function deleteEmbeddingsByChunkId(db: Database.Database, chunkId: string): number;
114
+ /**
115
+ * Delete all embeddings for a specific image
116
+ *
117
+ * @param db - Database connection
118
+ * @param imageId - Image ID
119
+ * @returns number of embeddings deleted
120
+ */
121
+ export declare function deleteEmbeddingsByImageId(db: Database.Database, imageId: string): number;
122
+ /**
123
+ * Delete all embeddings for a document
124
+ *
125
+ * @param db - Database connection
126
+ * @param documentId - Document ID
127
+ * @returns number of embeddings deleted
128
+ */
129
+ export declare function deleteEmbeddingsByDocumentId(db: Database.Database, documentId: string): number;
130
+ //# sourceMappingURL=embedding-operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding-operations.d.ts","sourceRoot":"","sources":["../../../../src/services/storage/database/embedding-operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,315 @@
1
+ /**
2
+ * Embedding operations for DatabaseService
3
+ *
4
+ * Handles all CRUD operations for embeddings including batch inserts.
5
+ * Note: Vector data is stored separately in vec_embeddings by VectorService.
6
+ */
7
+ import { runWithForeignKeyCheck } from './helpers.js';
8
+ import { rowToEmbedding } from './converters.js';
9
+ /**
10
+ * Insert an embedding (vector stored separately in vec_embeddings by VectorService)
11
+ *
12
+ * @param db - Database connection
13
+ * @param embedding - Embedding data (created_at will be generated, vector excluded)
14
+ * @param updateMetadataCounts - Callback to update metadata counts
15
+ * @returns string - The embedding ID
16
+ */
17
+ export function insertEmbedding(db, embedding, updateMetadataCounts) {
18
+ const created_at = new Date().toISOString();
19
+ const stmt = db.prepare(`
20
+ INSERT INTO embeddings (
21
+ id, chunk_id, image_id, extraction_id, document_id, original_text, original_text_length,
22
+ source_file_path, source_file_name, source_file_hash,
23
+ page_number, page_range, character_start, character_end,
24
+ chunk_index, total_chunks, model_name, model_version,
25
+ task_type, inference_mode, gpu_device, provenance_id,
26
+ content_hash, created_at, generation_duration_ms
27
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
28
+ `);
29
+ runWithForeignKeyCheck(stmt, [
30
+ embedding.id,
31
+ embedding.chunk_id,
32
+ embedding.image_id,
33
+ embedding.extraction_id,
34
+ embedding.document_id,
35
+ embedding.original_text,
36
+ embedding.original_text_length,
37
+ embedding.source_file_path,
38
+ embedding.source_file_name,
39
+ embedding.source_file_hash,
40
+ embedding.page_number,
41
+ embedding.page_range,
42
+ embedding.character_start,
43
+ embedding.character_end,
44
+ embedding.chunk_index,
45
+ embedding.total_chunks,
46
+ embedding.model_name,
47
+ embedding.model_version,
48
+ embedding.task_type,
49
+ embedding.inference_mode,
50
+ embedding.gpu_device,
51
+ embedding.provenance_id,
52
+ embedding.content_hash,
53
+ created_at,
54
+ embedding.generation_duration_ms,
55
+ ], 'inserting embedding: chunk_id/image_id/extraction_id, document_id, or provenance_id does not exist');
56
+ updateMetadataCounts();
57
+ return embedding.id;
58
+ }
59
+ /**
60
+ * Insert multiple embeddings in a batch transaction
61
+ *
62
+ * @param db - Database connection
63
+ * @param embeddings - Array of embedding data
64
+ * @param updateMetadataCounts - Callback to update metadata counts
65
+ * @param transaction - Transaction wrapper function
66
+ * @returns string[] - Array of embedding IDs
67
+ */
68
+ export function insertEmbeddings(db, embeddings, updateMetadataCounts, transaction) {
69
+ if (embeddings.length === 0) {
70
+ return [];
71
+ }
72
+ return transaction(() => {
73
+ const created_at = new Date().toISOString();
74
+ const ids = [];
75
+ const stmt = db.prepare(`
76
+ INSERT INTO embeddings (
77
+ id, chunk_id, image_id, extraction_id, document_id, original_text, original_text_length,
78
+ source_file_path, source_file_name, source_file_hash,
79
+ page_number, page_range, character_start, character_end,
80
+ chunk_index, total_chunks, model_name, model_version,
81
+ task_type, inference_mode, gpu_device, provenance_id,
82
+ content_hash, created_at, generation_duration_ms
83
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
84
+ `);
85
+ for (const embedding of embeddings) {
86
+ runWithForeignKeyCheck(stmt, [
87
+ embedding.id,
88
+ embedding.chunk_id,
89
+ embedding.image_id,
90
+ embedding.extraction_id,
91
+ embedding.document_id,
92
+ embedding.original_text,
93
+ embedding.original_text_length,
94
+ embedding.source_file_path,
95
+ embedding.source_file_name,
96
+ embedding.source_file_hash,
97
+ embedding.page_number,
98
+ embedding.page_range,
99
+ embedding.character_start,
100
+ embedding.character_end,
101
+ embedding.chunk_index,
102
+ embedding.total_chunks,
103
+ embedding.model_name,
104
+ embedding.model_version,
105
+ embedding.task_type,
106
+ embedding.inference_mode,
107
+ embedding.gpu_device,
108
+ embedding.provenance_id,
109
+ embedding.content_hash,
110
+ created_at,
111
+ embedding.generation_duration_ms,
112
+ ], `inserting embedding "${embedding.id}"`);
113
+ ids.push(embedding.id);
114
+ }
115
+ updateMetadataCounts();
116
+ return ids;
117
+ });
118
+ }
119
+ /**
120
+ * Get an embedding by ID (without vector)
121
+ *
122
+ * @param db - Database connection
123
+ * @param id - Embedding ID
124
+ * @returns Omit<Embedding, 'vector'> | null - The embedding or null if not found
125
+ */
126
+ export function getEmbedding(db, id) {
127
+ const stmt = db.prepare('SELECT * FROM embeddings WHERE id = ?');
128
+ const row = stmt.get(id);
129
+ return row ? rowToEmbedding(row) : null;
130
+ }
131
+ /**
132
+ * Get embedding by chunk ID (without vector)
133
+ *
134
+ * @param db - Database connection
135
+ * @param chunkId - Chunk ID
136
+ * @returns Omit<Embedding, 'vector'> | null - The embedding or null if not found
137
+ */
138
+ export function getEmbeddingByChunkId(db, chunkId) {
139
+ const stmt = db.prepare('SELECT * FROM embeddings WHERE chunk_id = ?');
140
+ const row = stmt.get(chunkId);
141
+ return row ? rowToEmbedding(row) : null;
142
+ }
143
+ /**
144
+ * Get embedding by extraction ID (without vector)
145
+ *
146
+ * @param db - Database connection
147
+ * @param extractionId - Extraction ID
148
+ * @returns Omit<Embedding, 'vector'> | null
149
+ */
150
+ export function getEmbeddingByExtractionId(db, extractionId) {
151
+ const stmt = db.prepare('SELECT * FROM embeddings WHERE extraction_id = ?');
152
+ const row = stmt.get(extractionId);
153
+ return row ? rowToEmbedding(row) : null;
154
+ }
155
+ /**
156
+ * Get all embeddings for a document (without vectors)
157
+ *
158
+ * @param db - Database connection
159
+ * @param documentId - Document ID
160
+ * @returns Omit<Embedding, 'vector'>[] - Array of embeddings
161
+ */
162
+ export function getEmbeddingsByDocumentId(db, documentId, options) {
163
+ let sql = 'SELECT * FROM embeddings WHERE document_id = ? ORDER BY chunk_index';
164
+ const params = [documentId];
165
+ const limit = options?.limit ?? 10000;
166
+ sql += ' LIMIT ?';
167
+ params.push(limit);
168
+ if (options?.offset !== undefined) {
169
+ sql += ' OFFSET ?';
170
+ params.push(options.offset);
171
+ }
172
+ const stmt = db.prepare(sql);
173
+ const rows = stmt.all(...params);
174
+ return rows.map(rowToEmbedding);
175
+ }
176
+ /**
177
+ * Get embeddings with dynamic filtering by document, source type, model.
178
+ * Does NOT select the vector column (it's huge binary data in vec_embeddings).
179
+ *
180
+ * @param db - Database connection
181
+ * @param filters - Filter options
182
+ * @returns Array of embeddings (without vector) and total count
183
+ */
184
+ export function getEmbeddingsFiltered(db, filters) {
185
+ const conditions = [];
186
+ const params = [];
187
+ if (filters.document_id) {
188
+ conditions.push('e.document_id = ?');
189
+ params.push(filters.document_id);
190
+ }
191
+ if (filters.source_type === 'chunk') {
192
+ conditions.push('e.chunk_id IS NOT NULL AND e.image_id IS NULL AND e.extraction_id IS NULL');
193
+ }
194
+ else if (filters.source_type === 'image') {
195
+ conditions.push('e.image_id IS NOT NULL');
196
+ }
197
+ else if (filters.source_type === 'extraction') {
198
+ conditions.push('e.extraction_id IS NOT NULL');
199
+ }
200
+ if (filters.model_name) {
201
+ conditions.push('e.model_name = ?');
202
+ params.push(filters.model_name);
203
+ }
204
+ const whereClause = conditions.length > 0
205
+ ? 'WHERE ' + conditions.join(' AND ')
206
+ : '';
207
+ // Get total count
208
+ const countRow = db.prepare(`SELECT COUNT(*) as total FROM embeddings e ${whereClause}`).get(...params);
209
+ const limit = filters.limit ?? 50;
210
+ const offset = filters.offset ?? 0;
211
+ const rows = db.prepare(`SELECT e.* FROM embeddings e ${whereClause} ORDER BY e.created_at DESC LIMIT ? OFFSET ?`).all(...params, limit, offset);
212
+ return {
213
+ embeddings: rows.map(rowToEmbedding),
214
+ total: countRow.total,
215
+ };
216
+ }
217
+ /**
218
+ * Get embedding statistics with optional document-level scoping.
219
+ *
220
+ * @param db - Database connection
221
+ * @param documentId - Optional document ID to scope stats
222
+ * @returns EmbeddingStatsResult
223
+ */
224
+ export function getEmbeddingStats(db, documentId) {
225
+ const docFilter = documentId ? ' WHERE document_id = ?' : '';
226
+ const docParams = documentId ? [documentId] : [];
227
+ // Total embeddings
228
+ const totalRow = db.prepare(`SELECT COUNT(*) as total FROM embeddings${docFilter}`).get(...docParams);
229
+ // By source type
230
+ const sourceTypeRows = db.prepare(`
231
+ SELECT
232
+ CASE
233
+ WHEN chunk_id IS NOT NULL AND image_id IS NULL AND extraction_id IS NULL THEN 'chunk'
234
+ WHEN image_id IS NOT NULL THEN 'image'
235
+ WHEN extraction_id IS NOT NULL THEN 'extraction'
236
+ ELSE 'unknown'
237
+ END as source_type,
238
+ COUNT(*) as count,
239
+ COALESCE(AVG(generation_duration_ms), 0) as avg_duration_ms
240
+ FROM embeddings${docFilter}
241
+ GROUP BY source_type
242
+ `).all(...docParams);
243
+ const by_source_type = {};
244
+ for (const row of sourceTypeRows) {
245
+ by_source_type[row.source_type] = {
246
+ count: row.count,
247
+ avg_duration_ms: Math.round(row.avg_duration_ms),
248
+ };
249
+ }
250
+ // By device (from provenance processor field)
251
+ const deviceRows = db.prepare(`
252
+ SELECT
253
+ COALESCE(e.gpu_device, 'unknown') as device,
254
+ COUNT(*) as count
255
+ FROM embeddings e${docFilter}
256
+ GROUP BY device
257
+ `).all(...docParams);
258
+ const by_device = {};
259
+ for (const row of deviceRows) {
260
+ by_device[row.device] = row.count;
261
+ }
262
+ // Unembedded chunks: chunks with embedding_status != 'complete'
263
+ const unembeddedChunksRow = db.prepare(`
264
+ SELECT COUNT(*) as count FROM chunks
265
+ WHERE embedding_status != 'complete'${documentId ? ' AND document_id = ?' : ''}
266
+ `).get(...docParams);
267
+ // Unembedded images: images with vlm_status='complete' but no VLM embedding
268
+ const unembeddedImagesRow = db.prepare(`
269
+ SELECT COUNT(*) as count FROM images i
270
+ WHERE i.vlm_status = 'complete'
271
+ AND i.vlm_embedding_id IS NULL
272
+ ${documentId ? 'AND i.document_id = ?' : ''}
273
+ `).get(...docParams);
274
+ return {
275
+ total_embeddings: totalRow.total,
276
+ by_source_type,
277
+ by_device,
278
+ unembedded_chunks: unembeddedChunksRow.count,
279
+ unembedded_images: unembeddedImagesRow.count,
280
+ };
281
+ }
282
+ /**
283
+ * Delete all embeddings for a specific chunk
284
+ *
285
+ * @param db - Database connection
286
+ * @param chunkId - Chunk ID
287
+ * @returns number of embeddings deleted
288
+ */
289
+ export function deleteEmbeddingsByChunkId(db, chunkId) {
290
+ const result = db.prepare('DELETE FROM embeddings WHERE chunk_id = ?').run(chunkId);
291
+ return result.changes;
292
+ }
293
+ /**
294
+ * Delete all embeddings for a specific image
295
+ *
296
+ * @param db - Database connection
297
+ * @param imageId - Image ID
298
+ * @returns number of embeddings deleted
299
+ */
300
+ export function deleteEmbeddingsByImageId(db, imageId) {
301
+ const result = db.prepare('DELETE FROM embeddings WHERE image_id = ?').run(imageId);
302
+ return result.changes;
303
+ }
304
+ /**
305
+ * Delete all embeddings for a document
306
+ *
307
+ * @param db - Database connection
308
+ * @param documentId - Document ID
309
+ * @returns number of embeddings deleted
310
+ */
311
+ export function deleteEmbeddingsByDocumentId(db, documentId) {
312
+ const result = db.prepare('DELETE FROM embeddings WHERE document_id = ?').run(documentId);
313
+ return result.changes;
314
+ }
315
+ //# sourceMappingURL=embedding-operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding-operations.js","sourceRoot":"","sources":["../../../../src/services/storage/database/embedding-operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Extraction operations for DatabaseService
3
+ *
4
+ * Handles all CRUD operations for structured extractions
5
+ * from page_schema processing.
6
+ */
7
+ import Database from 'better-sqlite3';
8
+ import { Extraction } from '../../../models/extraction.js';
9
+ /**
10
+ * Insert an extraction record
11
+ *
12
+ * @param db - Database connection
13
+ * @param extraction - Extraction data
14
+ * @param updateMetadataCounts - Callback to update metadata counts
15
+ * @returns string - The extraction ID
16
+ */
17
+ export declare function insertExtraction(db: Database.Database, extraction: Extraction, updateMetadataCounts: () => void): string;
18
+ /**
19
+ * Get all extractions for a document
20
+ *
21
+ * @param db - Database connection
22
+ * @param documentId - Document ID
23
+ * @returns Extraction[] - Array of extractions ordered by created_at DESC
24
+ */
25
+ export declare function getExtractionsByDocument(db: Database.Database, documentId: string): Extraction[];
26
+ /**
27
+ * Get a single extraction by ID
28
+ *
29
+ * @param db - Database connection
30
+ * @param id - Extraction ID
31
+ * @returns Extraction or null if not found
32
+ */
33
+ export declare function getExtraction(db: Database.Database, id: string): Extraction | null;
34
+ /**
35
+ * Search extractions by text matching within extraction_json content.
36
+ * Uses LIKE for simple text matching (no FTS5 for extractions).
37
+ *
38
+ * @param db - Database connection
39
+ * @param query - Search query string
40
+ * @param filters - Optional filters (document_filter, limit)
41
+ * @returns Extraction[] - Matching extractions ordered by created_at DESC
42
+ */
43
+ export declare function searchExtractions(db: Database.Database, query: string, filters?: {
44
+ document_filter?: string[];
45
+ limit?: number;
46
+ }): Extraction[];
47
+ //# sourceMappingURL=extraction-operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extraction-operations.d.ts","sourceRoot":"","sources":["../../../../src/services/storage/database/extraction-operations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,MAAM,IAAI,GAC/B,MAAM,CAuBR;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,EAAE,CAIhG;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAKlF;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACvD,UAAU,EAAE,CAmBd"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Extraction operations for DatabaseService
3
+ *
4
+ * Handles all CRUD operations for structured extractions
5
+ * from page_schema processing.
6
+ */
7
+ import { runWithForeignKeyCheck } from './helpers.js';
8
+ /**
9
+ * Insert an extraction record
10
+ *
11
+ * @param db - Database connection
12
+ * @param extraction - Extraction data
13
+ * @param updateMetadataCounts - Callback to update metadata counts
14
+ * @returns string - The extraction ID
15
+ */
16
+ export function insertExtraction(db, extraction, updateMetadataCounts) {
17
+ const stmt = db.prepare(`
18
+ INSERT INTO extractions (id, document_id, ocr_result_id, schema_json, extraction_json, content_hash, provenance_id, created_at)
19
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
20
+ `);
21
+ runWithForeignKeyCheck(stmt, [
22
+ extraction.id,
23
+ extraction.document_id,
24
+ extraction.ocr_result_id,
25
+ extraction.schema_json,
26
+ extraction.extraction_json,
27
+ extraction.content_hash,
28
+ extraction.provenance_id,
29
+ extraction.created_at,
30
+ ], `inserting extraction: FK violation for document_id="${extraction.document_id}"`);
31
+ updateMetadataCounts();
32
+ return extraction.id;
33
+ }
34
+ /**
35
+ * Get all extractions for a document
36
+ *
37
+ * @param db - Database connection
38
+ * @param documentId - Document ID
39
+ * @returns Extraction[] - Array of extractions ordered by created_at DESC
40
+ */
41
+ export function getExtractionsByDocument(db, documentId) {
42
+ return db
43
+ .prepare('SELECT * FROM extractions WHERE document_id = ? ORDER BY created_at DESC LIMIT 1000')
44
+ .all(documentId);
45
+ }
46
+ /**
47
+ * Get a single extraction by ID
48
+ *
49
+ * @param db - Database connection
50
+ * @param id - Extraction ID
51
+ * @returns Extraction or null if not found
52
+ */
53
+ export function getExtraction(db, id) {
54
+ const row = db
55
+ .prepare('SELECT * FROM extractions WHERE id = ?')
56
+ .get(id);
57
+ return row ?? null;
58
+ }
59
+ /**
60
+ * Search extractions by text matching within extraction_json content.
61
+ * Uses LIKE for simple text matching (no FTS5 for extractions).
62
+ *
63
+ * @param db - Database connection
64
+ * @param query - Search query string
65
+ * @param filters - Optional filters (document_filter, limit)
66
+ * @returns Extraction[] - Matching extractions ordered by created_at DESC
67
+ */
68
+ export function searchExtractions(db, query, filters) {
69
+ const limit = filters?.limit ?? 10;
70
+ const conditions = ['extraction_json LIKE ? ESCAPE \'\\\''];
71
+ // Escape special LIKE characters in the query
72
+ const escapedQuery = query.replace(/[%_\\]/g, (ch) => `\\${ch}`);
73
+ const params = [`%${escapedQuery}%`];
74
+ if (filters?.document_filter && filters.document_filter.length > 0) {
75
+ const placeholders = filters.document_filter.map(() => '?').join(', ');
76
+ conditions.push(`document_id IN (${placeholders})`);
77
+ params.push(...filters.document_filter);
78
+ }
79
+ const whereClause = conditions.join(' AND ');
80
+ params.push(limit);
81
+ return db
82
+ .prepare(`SELECT * FROM extractions WHERE ${whereClause} ORDER BY created_at DESC LIMIT ?`)
83
+ .all(...params);
84
+ }
85
+ //# sourceMappingURL=extraction-operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extraction-operations.js","sourceRoot":"","sources":["../../../../src/services/storage/database/extraction-operations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,EAAqB,EACrB,UAAsB,EACtB,oBAAgC;IAEhC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;GAGvB,CAAC,CAAC;IAEH,sBAAsB,CACpB,IAAI,EACJ;QACE,UAAU,CAAC,EAAE;QACb,UAAU,CAAC,WAAW;QACtB,UAAU,CAAC,aAAa;QACxB,UAAU,CAAC,WAAW;QACtB,UAAU,CAAC,eAAe;QAC1B,UAAU,CAAC,YAAY;QACvB,UAAU,CAAC,aAAa;QACxB,UAAU,CAAC,UAAU;KACtB,EACD,uDAAuD,UAAU,CAAC,WAAW,GAAG,CACjF,CAAC;IAEF,oBAAoB,EAAE,CAAC;IACvB,OAAO,UAAU,CAAC,EAAE,CAAC;AACvB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,EAAqB,EAAE,UAAkB;IAChF,OAAO,EAAE;SACN,OAAO,CAAC,qFAAqF,CAAC;SAC9F,GAAG,CAAC,UAAU,CAAiB,CAAC;AACrC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,EAAqB,EAAE,EAAU;IAC7D,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CAAC,wCAAwC,CAAC;SACjD,GAAG,CAAC,EAAE,CAA2B,CAAC;IACrC,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,EAAqB,EACrB,KAAa,EACb,OAAwD;IAExD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;IACnC,MAAM,UAAU,GAAa,CAAC,sCAAsC,CAAC,CAAC;IACtE,8CAA8C;IAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACjE,MAAM,MAAM,GAAc,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC;IAEhD,IAAI,OAAO,EAAE,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnE,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvE,UAAU,CAAC,IAAI,CAAC,mBAAmB,YAAY,GAAG,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEnB,OAAO,EAAE;SACN,OAAO,CAAC,mCAAmC,WAAW,mCAAmC,CAAC;SAC1F,GAAG,CAAC,GAAG,MAAM,CAAiB,CAAC;AACpC,CAAC"}