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":"json-block-analyzer.js","sourceRoot":"","sources":["../../../src/services/chunking/json-block-analyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Markdown Parser for Section-Aware Chunking
3
+ *
4
+ * Parses Datalab markdown output into structural blocks with section hierarchy,
5
+ * enabling the hybrid chunker to make intelligent split decisions.
6
+ *
7
+ * @module services/chunking/markdown-parser
8
+ */
9
+ import { PageOffset } from '../../models/document.js';
10
+ /** Classification of a markdown text block */
11
+ export type MarkdownBlockType = 'heading' | 'table' | 'code' | 'list' | 'paragraph' | 'page_marker' | 'empty';
12
+ /** A single structural block parsed from markdown */
13
+ export interface MarkdownBlock {
14
+ type: MarkdownBlockType;
15
+ text: string;
16
+ startOffset: number;
17
+ endOffset: number;
18
+ headingLevel: number | null;
19
+ headingText: string | null;
20
+ pageNumber: number | null;
21
+ }
22
+ /** Section hierarchy node */
23
+ export interface SectionNode {
24
+ level: number;
25
+ text: string;
26
+ path: string;
27
+ }
28
+ /**
29
+ * Parse markdown text into structural blocks.
30
+ *
31
+ * Splits text by double-newline separators, classifies each segment by type
32
+ * (heading, table, code, list, paragraph, page_marker, empty), and tracks
33
+ * character offsets and page numbers.
34
+ *
35
+ * @param text - The full markdown text from Datalab OCR output
36
+ * @param pageOffsets - Page offset information for page number assignment
37
+ * @returns Array of MarkdownBlock with type, offsets, and page info
38
+ */
39
+ export declare function parseMarkdownBlocks(text: string, pageOffsets: PageOffset[]): MarkdownBlock[];
40
+ /**
41
+ * Build a section hierarchy map from parsed markdown blocks.
42
+ *
43
+ * Walks the blocks in order, maintaining a heading stack. Each block
44
+ * (heading or content) is mapped to its SectionNode, which includes
45
+ * the heading level, text, and full path (e.g., "Intro > Background > History").
46
+ *
47
+ * @param blocks - Array of MarkdownBlock from parseMarkdownBlocks
48
+ * @returns Map from block index to SectionNode. Blocks before any heading
49
+ * will not have an entry in the map.
50
+ */
51
+ export declare function buildSectionHierarchy(blocks: MarkdownBlock[]): Map<number, SectionNode>;
52
+ /**
53
+ * Find the page number for a given character offset using binary search.
54
+ *
55
+ * @param charOffset - The character offset to look up
56
+ * @param pageOffsets - Sorted array of page offset ranges
57
+ * @returns The 1-indexed page number, or null if pageOffsets is empty
58
+ */
59
+ export declare function getPageNumberForOffset(charOffset: number, pageOffsets: PageOffset[]): number | null;
60
+ /**
61
+ * Check if a segment is a markdown table
62
+ */
63
+ /**
64
+ * Extract page offsets from markdown text by scanning for Datalab page markers.
65
+ *
66
+ * This is used when re-chunking already-OCR'd documents where the original
67
+ * pageOffsets from Datalab are no longer available.
68
+ * The function reconstructs page boundaries from the `---\n<!-- Page N -->`
69
+ * markers embedded in the markdown text.
70
+ *
71
+ * @param text - The full markdown text containing Datalab page markers
72
+ * @returns Array of PageOffset sorted by page number, or empty array if no markers found
73
+ */
74
+ export declare function extractPageOffsetsFromText(text: string): PageOffset[];
75
+ //# sourceMappingURL=markdown-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-parser.d.ts","sourceRoot":"","sources":["../../../src/services/chunking/markdown-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,8CAA8C;AAC9C,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,aAAa,GAAG,OAAO,CAAC;AAE9G,qDAAqD;AACrD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,6BAA6B;AAC7B,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAgCD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE,CA4D5F;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAgDvF;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,GAAG,IAAI,CAwCnG;AA2LD;;GAEG;AACH;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,CAwDrE"}
@@ -0,0 +1,428 @@
1
+ /**
2
+ * Markdown Parser for Section-Aware Chunking
3
+ *
4
+ * Parses Datalab markdown output into structural blocks with section hierarchy,
5
+ * enabling the hybrid chunker to make intelligent split decisions.
6
+ *
7
+ * @module services/chunking/markdown-parser
8
+ */
9
+ /**
10
+ * Page marker pattern used by Datalab to denote page boundaries.
11
+ * Matches patterns like:
12
+ * ---\n<!-- Page 3 -->
13
+ * with optional surrounding whitespace.
14
+ */
15
+ const PAGE_MARKER_REGEX = /^\s*---\s*\n\s*<!--\s*Page\s+\d+\s*-->\s*$/;
16
+ /**
17
+ * Datalab page separator pattern.
18
+ * Matches: {0}------------------------------------------------
19
+ * Format: {digits} followed by 10+ dashes, optionally followed by whitespace.
20
+ */
21
+ const DATALAB_PAGE_SEPARATOR_REGEX = /^\s*\{\d+\}-{10,}\s*$/;
22
+ /**
23
+ * Heading pattern: 1-6 hash marks followed by a space and text
24
+ */
25
+ const HEADING_REGEX = /^(#{1,6})\s+(.+)/;
26
+ /**
27
+ * Table separator line pattern: line with pipes and dashes/colons
28
+ */
29
+ const TABLE_SEPARATOR_REGEX = /^\|[\s\-:|]+\|$/;
30
+ /**
31
+ * List item pattern: unordered (- * +) or ordered (digits.)
32
+ */
33
+ const LIST_ITEM_REGEX = /^(\s*[-*+]\s|\s*\d+\.\s)/;
34
+ /**
35
+ * Parse markdown text into structural blocks.
36
+ *
37
+ * Splits text by double-newline separators, classifies each segment by type
38
+ * (heading, table, code, list, paragraph, page_marker, empty), and tracks
39
+ * character offsets and page numbers.
40
+ *
41
+ * @param text - The full markdown text from Datalab OCR output
42
+ * @param pageOffsets - Page offset information for page number assignment
43
+ * @returns Array of MarkdownBlock with type, offsets, and page info
44
+ */
45
+ export function parseMarkdownBlocks(text, pageOffsets) {
46
+ if (text.length === 0) {
47
+ return [];
48
+ }
49
+ // Split by double newline to get raw segments
50
+ const rawSegments = text.split('\n\n');
51
+ const blocks = [];
52
+ let currentOffset = 0;
53
+ let i = 0;
54
+ while (i < rawSegments.length) {
55
+ const segment = rawSegments[i];
56
+ // Check if this segment starts a code fence - may need to merge segments
57
+ if (isCodeFenceOpen(segment)) {
58
+ // Scan forward to find the closing fence
59
+ const merged = mergeCodeFenceSegments(rawSegments, i);
60
+ const mergedText = merged.text;
61
+ const mergedCount = merged.segmentCount;
62
+ const startOffset = currentOffset;
63
+ const endOffset = startOffset + mergedText.length;
64
+ blocks.push({
65
+ type: 'code',
66
+ text: mergedText,
67
+ startOffset,
68
+ endOffset,
69
+ headingLevel: null,
70
+ headingText: null,
71
+ pageNumber: getPageNumberForOffset(startOffset, pageOffsets),
72
+ });
73
+ // Advance offset past the merged text plus the \n\n separators between segments
74
+ currentOffset = endOffset;
75
+ // Account for \n\n separators after all but the last merged segment
76
+ if (i + mergedCount < rawSegments.length) {
77
+ currentOffset += 2; // The \n\n after the code block
78
+ }
79
+ i += mergedCount;
80
+ continue;
81
+ }
82
+ const startOffset = currentOffset;
83
+ const endOffset = startOffset + segment.length;
84
+ const block = classifySegment(segment, startOffset, endOffset, pageOffsets);
85
+ blocks.push(block);
86
+ // Advance offset: segment length + 2 for the \n\n separator (unless last segment)
87
+ currentOffset = endOffset;
88
+ if (i < rawSegments.length - 1) {
89
+ currentOffset += 2; // \n\n separator
90
+ }
91
+ i++;
92
+ }
93
+ return blocks;
94
+ }
95
+ /**
96
+ * Build a section hierarchy map from parsed markdown blocks.
97
+ *
98
+ * Walks the blocks in order, maintaining a heading stack. Each block
99
+ * (heading or content) is mapped to its SectionNode, which includes
100
+ * the heading level, text, and full path (e.g., "Intro > Background > History").
101
+ *
102
+ * @param blocks - Array of MarkdownBlock from parseMarkdownBlocks
103
+ * @returns Map from block index to SectionNode. Blocks before any heading
104
+ * will not have an entry in the map.
105
+ */
106
+ export function buildSectionHierarchy(blocks) {
107
+ const result = new Map();
108
+ // Stack of headings: index = heading level (1-6), value = heading text
109
+ // We use indices 1-6, ignore index 0
110
+ const headingStack = [null, null, null, null, null, null, null];
111
+ let currentNode = null;
112
+ for (let blockIdx = 0; blockIdx < blocks.length; blockIdx++) {
113
+ const block = blocks[blockIdx];
114
+ if (block.type === 'heading' && block.headingLevel !== null && block.headingText !== null) {
115
+ const level = block.headingLevel;
116
+ // Clear all entries at levels >= this heading's level
117
+ for (let l = level; l <= 6; l++) {
118
+ headingStack[l] = null;
119
+ }
120
+ // Push this heading onto the stack at its level
121
+ headingStack[level] = block.headingText;
122
+ // Build path by joining all stack entries that are non-null
123
+ const pathParts = [];
124
+ for (let l = 1; l <= 6; l++) {
125
+ if (headingStack[l] !== null) {
126
+ pathParts.push(headingStack[l]);
127
+ }
128
+ }
129
+ currentNode = {
130
+ level,
131
+ text: block.headingText,
132
+ path: pathParts.join(' > '),
133
+ };
134
+ result.set(blockIdx, currentNode);
135
+ }
136
+ else {
137
+ // Non-heading blocks inherit the section from the most recent heading
138
+ if (currentNode !== null) {
139
+ result.set(blockIdx, currentNode);
140
+ }
141
+ // If no heading seen yet, don't add an entry
142
+ }
143
+ }
144
+ return result;
145
+ }
146
+ /**
147
+ * Find the page number for a given character offset using binary search.
148
+ *
149
+ * @param charOffset - The character offset to look up
150
+ * @param pageOffsets - Sorted array of page offset ranges
151
+ * @returns The 1-indexed page number, or null if pageOffsets is empty
152
+ */
153
+ export function getPageNumberForOffset(charOffset, pageOffsets) {
154
+ if (pageOffsets.length === 0) {
155
+ return null;
156
+ }
157
+ // If offset is before the first page start, return first page number
158
+ if (charOffset < pageOffsets[0].charStart) {
159
+ return pageOffsets[0].page;
160
+ }
161
+ // If offset is at or after the last page's end, return last page number
162
+ const lastPage = pageOffsets[pageOffsets.length - 1];
163
+ if (charOffset >= lastPage.charEnd) {
164
+ return lastPage.page;
165
+ }
166
+ // Binary search for the page containing this offset
167
+ let low = 0;
168
+ let high = pageOffsets.length - 1;
169
+ while (low <= high) {
170
+ const mid = Math.floor((low + high) / 2);
171
+ const page = pageOffsets[mid];
172
+ if (charOffset < page.charStart) {
173
+ high = mid - 1;
174
+ }
175
+ else if (charOffset >= page.charEnd) {
176
+ low = mid + 1;
177
+ }
178
+ else {
179
+ // charOffset >= page.charStart && charOffset < page.charEnd
180
+ return page.page;
181
+ }
182
+ }
183
+ // Should not reach here if pageOffsets covers the full text,
184
+ // but fall back to the nearest page
185
+ if (low >= pageOffsets.length) {
186
+ return pageOffsets[pageOffsets.length - 1].page;
187
+ }
188
+ return pageOffsets[low].page;
189
+ }
190
+ // ---------------------------------------------------------------------------
191
+ // Internal helpers
192
+ // ---------------------------------------------------------------------------
193
+ /**
194
+ * Check if a segment opens a code fence (starts with ``` but doesn't close it)
195
+ */
196
+ function isCodeFenceOpen(segment) {
197
+ const trimmed = segment.trimStart();
198
+ if (!trimmed.startsWith('```')) {
199
+ return false;
200
+ }
201
+ // Count occurrences of ``` in the segment
202
+ // A self-contained code block has both opening and closing fences
203
+ const fenceMatches = segment.match(/^```/gm);
204
+ if (!fenceMatches) {
205
+ return false;
206
+ }
207
+ // If there's an odd number of fence markers, the block is not self-contained
208
+ // (opening without closing, or includes nested fences that are unbalanced)
209
+ // More precisely: check if there's a closing ``` on its own line after the opening
210
+ const lines = segment.split('\n');
211
+ let openCount = 0;
212
+ for (const line of lines) {
213
+ if (line.trimStart().startsWith('```')) {
214
+ openCount++;
215
+ }
216
+ }
217
+ // Odd count means the fence is unclosed within this segment
218
+ return openCount % 2 !== 0;
219
+ }
220
+ /**
221
+ * Merge segments that are part of a code fence block split by \n\n.
222
+ * Returns the merged text and the number of segments consumed.
223
+ */
224
+ function mergeCodeFenceSegments(segments, startIdx) {
225
+ const parts = [segments[startIdx]];
226
+ let idx = startIdx + 1;
227
+ while (idx < segments.length) {
228
+ parts.push(segments[idx]);
229
+ // Check if this segment contains the closing fence
230
+ const lines = segments[idx].split('\n');
231
+ let hasClosingFence = false;
232
+ for (const line of lines) {
233
+ if (line.trimStart().startsWith('```')) {
234
+ hasClosingFence = true;
235
+ break;
236
+ }
237
+ }
238
+ idx++;
239
+ if (hasClosingFence) {
240
+ break;
241
+ }
242
+ }
243
+ // Join with \n\n since that's what was used to split
244
+ return {
245
+ text: parts.join('\n\n'),
246
+ segmentCount: idx - startIdx,
247
+ };
248
+ }
249
+ /**
250
+ * Classify a single text segment into a MarkdownBlock
251
+ */
252
+ function classifySegment(segment, startOffset, endOffset, pageOffsets) {
253
+ // Validate offsets
254
+ if (startOffset < 0) {
255
+ throw new Error(`Invalid negative startOffset: ${startOffset}`);
256
+ }
257
+ if (endOffset < startOffset) {
258
+ throw new Error(`endOffset (${endOffset}) is less than startOffset (${startOffset})`);
259
+ }
260
+ const trimmed = segment.trim();
261
+ // Empty block
262
+ if (trimmed.length === 0) {
263
+ return {
264
+ type: 'empty',
265
+ text: segment,
266
+ startOffset,
267
+ endOffset,
268
+ headingLevel: null,
269
+ headingText: null,
270
+ pageNumber: getPageNumberForOffset(startOffset, pageOffsets),
271
+ };
272
+ }
273
+ // Page marker (HTML comment format or Datalab {N}--- format)
274
+ if (PAGE_MARKER_REGEX.test(segment) || DATALAB_PAGE_SEPARATOR_REGEX.test(segment)) {
275
+ return {
276
+ type: 'page_marker',
277
+ text: segment,
278
+ startOffset,
279
+ endOffset,
280
+ headingLevel: null,
281
+ headingText: null,
282
+ pageNumber: getPageNumberForOffset(startOffset, pageOffsets),
283
+ };
284
+ }
285
+ // Heading: first line starts with #{1,6} followed by space
286
+ const firstLine = segment.split('\n')[0];
287
+ const headingMatch = HEADING_REGEX.exec(firstLine);
288
+ if (headingMatch) {
289
+ return {
290
+ type: 'heading',
291
+ text: segment,
292
+ startOffset,
293
+ endOffset,
294
+ headingLevel: headingMatch[1].length,
295
+ headingText: headingMatch[2].trim(),
296
+ pageNumber: getPageNumberForOffset(startOffset, pageOffsets),
297
+ };
298
+ }
299
+ // Table: has at least 2 lines, at least one line with | at start and end,
300
+ // and a separator line matching the table separator pattern
301
+ if (isTable(segment)) {
302
+ return {
303
+ type: 'table',
304
+ text: segment,
305
+ startOffset,
306
+ endOffset,
307
+ headingLevel: null,
308
+ headingText: null,
309
+ pageNumber: getPageNumberForOffset(startOffset, pageOffsets),
310
+ };
311
+ }
312
+ // Code fence (self-contained - both open and close in same segment)
313
+ if (trimmed.startsWith('```')) {
314
+ return {
315
+ type: 'code',
316
+ text: segment,
317
+ startOffset,
318
+ endOffset,
319
+ headingLevel: null,
320
+ headingText: null,
321
+ pageNumber: getPageNumberForOffset(startOffset, pageOffsets),
322
+ };
323
+ }
324
+ // List: first line starts with list marker
325
+ if (LIST_ITEM_REGEX.test(firstLine)) {
326
+ return {
327
+ type: 'list',
328
+ text: segment,
329
+ startOffset,
330
+ endOffset,
331
+ headingLevel: null,
332
+ headingText: null,
333
+ pageNumber: getPageNumberForOffset(startOffset, pageOffsets),
334
+ };
335
+ }
336
+ // Default: paragraph
337
+ return {
338
+ type: 'paragraph',
339
+ text: segment,
340
+ startOffset,
341
+ endOffset,
342
+ headingLevel: null,
343
+ headingText: null,
344
+ pageNumber: getPageNumberForOffset(startOffset, pageOffsets),
345
+ };
346
+ }
347
+ /**
348
+ * Check if a segment is a markdown table
349
+ */
350
+ /**
351
+ * Extract page offsets from markdown text by scanning for Datalab page markers.
352
+ *
353
+ * This is used when re-chunking already-OCR'd documents where the original
354
+ * pageOffsets from Datalab are no longer available.
355
+ * The function reconstructs page boundaries from the `---\n<!-- Page N -->`
356
+ * markers embedded in the markdown text.
357
+ *
358
+ * @param text - The full markdown text containing Datalab page markers
359
+ * @returns Array of PageOffset sorted by page number, or empty array if no markers found
360
+ */
361
+ export function extractPageOffsetsFromText(text) {
362
+ // Match Datalab page markers in both formats:
363
+ // Format 1 (HTML comment): ---\n<!-- Page N -->
364
+ // Format 2 (Datalab separator): {N}------------------------------------------------
365
+ const htmlMarkerRegex = /---\n<!--\s*Page\s+(\d+)\s*-->/g;
366
+ const datalabMarkerRegex = /\{(\d+)\}-{10,}/g;
367
+ const markers = [];
368
+ let match;
369
+ while ((match = htmlMarkerRegex.exec(text)) !== null) {
370
+ markers.push({
371
+ page: parseInt(match[1], 10),
372
+ markerStart: match.index,
373
+ });
374
+ }
375
+ // Also check Datalab {N}--- format (page numbers are 0-based, convert to 1-based)
376
+ while ((match = datalabMarkerRegex.exec(text)) !== null) {
377
+ const pageNum = parseInt(match[1], 10);
378
+ // Only add if this position wasn't already captured by the HTML format
379
+ const alreadyCaptured = markers.some(m => Math.abs(m.markerStart - match.index) < 10);
380
+ if (!alreadyCaptured) {
381
+ markers.push({
382
+ page: pageNum + 1, // Convert 0-based to 1-based
383
+ markerStart: match.index,
384
+ });
385
+ }
386
+ }
387
+ // Sort by position in text
388
+ markers.sort((a, b) => a.markerStart - b.markerStart);
389
+ if (markers.length === 0) {
390
+ return [];
391
+ }
392
+ const offsets = [];
393
+ // Page 1 starts at offset 0 (content before the first marker belongs to page 1
394
+ // or the page number of the first marker if it's not page 1)
395
+ // Each subsequent page starts after the previous marker
396
+ for (let i = 0; i < markers.length; i++) {
397
+ const charStart = i === 0 ? 0 : markers[i].markerStart;
398
+ const charEnd = i < markers.length - 1 ? markers[i + 1].markerStart : text.length;
399
+ offsets.push({
400
+ page: markers[i].page,
401
+ charStart,
402
+ charEnd,
403
+ });
404
+ }
405
+ // Sort by page number (should already be sorted, but be safe)
406
+ offsets.sort((a, b) => a.page - b.page);
407
+ return offsets;
408
+ }
409
+ function isTable(segment) {
410
+ const lines = segment.split('\n').filter((l) => l.trim().length > 0);
411
+ if (lines.length < 2) {
412
+ return false;
413
+ }
414
+ // Check if at least one line has | at start and end (trimmed)
415
+ let hasPipeRow = false;
416
+ let hasSeparatorLine = false;
417
+ for (const line of lines) {
418
+ const trimmedLine = line.trim();
419
+ if (trimmedLine.startsWith('|') && trimmedLine.endsWith('|')) {
420
+ hasPipeRow = true;
421
+ }
422
+ if (TABLE_SEPARATOR_REGEX.test(trimmedLine)) {
423
+ hasSeparatorLine = true;
424
+ }
425
+ }
426
+ return hasPipeRow && hasSeparatorLine;
427
+ }
428
+ //# sourceMappingURL=markdown-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-parser.js","sourceRoot":"","sources":["../../../src/services/chunking/markdown-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Text Normalizer for Embedding Input
3
+ *
4
+ * Strips OCR artifacts (like leading line numbers from PDF rendering)
5
+ * from chunk text before sending to the embedding model. The raw text
6
+ * is preserved in the database for provenance and display.
7
+ *
8
+ * @module services/chunking/text-normalizer
9
+ */
10
+ /**
11
+ * Normalize text for embedding by stripping OCR artifacts.
12
+ *
13
+ * Currently strips leading line numbers that pollute embedding vectors.
14
+ * The original text is preserved in the database for provenance.
15
+ *
16
+ * @param text - Raw chunk text from OCR output
17
+ * @returns Cleaned text suitable for embedding
18
+ */
19
+ export declare function normalizeForEmbedding(text: string): string;
20
+ //# sourceMappingURL=text-normalizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-normalizer.d.ts","sourceRoot":"","sources":["../../../src/services/chunking/text-normalizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK1D"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Text Normalizer for Embedding Input
3
+ *
4
+ * Strips OCR artifacts (like leading line numbers from PDF rendering)
5
+ * from chunk text before sending to the embedding model. The raw text
6
+ * is preserved in the database for provenance and display.
7
+ *
8
+ * @module services/chunking/text-normalizer
9
+ */
10
+ /**
11
+ * Leading line number pattern from PDF OCR output.
12
+ *
13
+ * Matches lines starting with one or more digits followed by 2+ spaces.
14
+ * PDFs with line numbering typically use 6-8 trailing spaces. The 2+ space
15
+ * requirement avoids false positives with:
16
+ * - Ordered lists: "1. Item" (dot after number)
17
+ * - Section numbers: "1.2 Title" (dot separator)
18
+ * - Year references: "2024 was..." (single space)
19
+ */
20
+ const LINE_NUMBER_REGEX = /^\d+\s{2,}/gm;
21
+ /**
22
+ * Normalize text for embedding by stripping OCR artifacts.
23
+ *
24
+ * Currently strips leading line numbers that pollute embedding vectors.
25
+ * The original text is preserved in the database for provenance.
26
+ *
27
+ * @param text - Raw chunk text from OCR output
28
+ * @returns Cleaned text suitable for embedding
29
+ */
30
+ export function normalizeForEmbedding(text) {
31
+ if (text.length === 0) {
32
+ return text;
33
+ }
34
+ return text.replace(LINE_NUMBER_REGEX, '');
35
+ }
36
+ //# sourceMappingURL=text-normalizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-normalizer.js","sourceRoot":"","sources":["../../../src/services/chunking/text-normalizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;GASG;AACH,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAEzC;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC"}