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":"pipeline.js","sourceRoot":"","sources":["../../../src/services/vlm/pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,171 @@
1
+ /**
2
+ * VLM Prompts for Legal Document Image Analysis
3
+ *
4
+ * Optimized prompts for Gemini 3 multimodal analysis of images
5
+ * extracted from legal and medical documents.
6
+ *
7
+ * @module services/vlm/prompts
8
+ */
9
+ /**
10
+ * Legal document image description prompt optimized for Gemini 3.
11
+ * Returns structured JSON with detailed analysis.
12
+ */
13
+ export declare const LEGAL_IMAGE_PROMPT = "You are analyzing an image from a legal or medical document. Provide an extremely detailed, factual description.\n\nPARAGRAPH 1 - IDENTIFICATION:\nWhat type of image is this? (photograph, diagram, chart, table, form, signature, stamp, map, medical image, evidence photo, scan, screenshot, etc.)\nWhat is the primary subject or content?\n\nPARAGRAPH 2 - DETAILED CONTENT:\nDescribe ALL visible elements with precision:\n- For documents: headers, text, tables, dates, names, reference numbers\n- For photographs: subjects, objects, setting, conditions, visible text/labels\n- For charts/diagrams: axes, labels, data points, trends, relationships\n- For signatures/stamps: appearance, text, official markings\n- For medical images: anatomical structures, measurements, annotations\n- For forms: field labels, filled values, checkboxes, signatures\n\nPARAGRAPH 3 - LEGAL RELEVANCE:\nWhat information is relevant in a legal or medical context?\nNote any dates, names, amounts, identifiers, or official markings.\nDescribe anything that could serve as evidence or documentation.\n\nBe FACTUAL and PRECISE. Do not speculate beyond what is visible.\nIf text is unclear, indicate this explicitly.\n\nReturn as JSON:\n{\n \"imageType\": \"string\",\n \"primarySubject\": \"string\",\n \"paragraph1\": \"string (identification, 4-5 sentences)\",\n \"paragraph2\": \"string (detailed content, 6-8 sentences)\",\n \"paragraph3\": \"string (legal relevance, 4-5 sentences)\",\n \"extractedText\": [\"any visible text strings\"],\n \"dates\": [\"YYYY-MM-DD or original format\"],\n \"names\": [\"people, organizations\"],\n \"numbers\": [\"amounts, references, IDs\"],\n \"confidence\": 0.0-1.0\n}";
14
+ /**
15
+ * Context-aware prompt including surrounding text from the document.
16
+ *
17
+ * @param contextText - Text surrounding the image in the document
18
+ * @returns Complete prompt with context
19
+ */
20
+ export declare function createContextPrompt(contextText: string): string;
21
+ /**
22
+ * Simple classification prompt for quick categorization.
23
+ * Use for triage before detailed analysis.
24
+ */
25
+ export declare const CLASSIFY_IMAGE_PROMPT = "Classify this image from a legal or medical document.\n\nReturn JSON:\n{\n \"type\": \"photograph|diagram|chart|table|form|signature|stamp|map|medical|document|screenshot|other\",\n \"hasText\": true/false,\n \"textDensity\": \"none|sparse|moderate|dense\",\n \"complexity\": \"simple|medium|complex\",\n \"confidence\": 0.0-1.0\n}";
26
+ /**
27
+ * Deep analysis prompt using thinking mode.
28
+ * For complex images requiring extended reasoning.
29
+ */
30
+ export declare const DEEP_ANALYSIS_PROMPT = "You are a legal document analysis expert. Use extended reasoning to analyze this image thoroughly.\n\nStep through your analysis:\n1. Identify the image type and overall content\n2. Examine every visible element systematically\n3. Extract all text, numbers, dates, and names\n4. Consider the legal or medical significance of each element\n5. Note any uncertainties or ambiguities\n\nReturn as JSON:\n{\n \"thinkingSteps\": [\"step1\", \"step2\", ...],\n \"imageType\": \"string\",\n \"fullDescription\": \"string (comprehensive, 400+ words)\",\n \"extractedData\": {\n \"text\": [\"all visible text\"],\n \"dates\": [\"YYYY-MM-DD\"],\n \"amounts\": [\"with currency\"],\n \"names\": [\"people, organizations\"],\n \"references\": [\"IDs, case numbers, medical record numbers\"]\n },\n \"legalSignificance\": \"string\",\n \"medicalSignificance\": \"string (if applicable)\",\n \"uncertainties\": [\"anything unclear\"],\n \"confidence\": 0.0-1.0\n}";
31
+ /**
32
+ * JSON schema for structured output validation.
33
+ * Used with Gemini's structured output mode.
34
+ */
35
+ export declare const IMAGE_ANALYSIS_SCHEMA: {
36
+ type: string;
37
+ properties: {
38
+ imageType: {
39
+ type: string;
40
+ };
41
+ primarySubject: {
42
+ type: string;
43
+ };
44
+ paragraph1: {
45
+ type: string;
46
+ };
47
+ paragraph2: {
48
+ type: string;
49
+ };
50
+ paragraph3: {
51
+ type: string;
52
+ };
53
+ extractedText: {
54
+ type: string;
55
+ items: {
56
+ type: string;
57
+ };
58
+ };
59
+ dates: {
60
+ type: string;
61
+ items: {
62
+ type: string;
63
+ };
64
+ };
65
+ names: {
66
+ type: string;
67
+ items: {
68
+ type: string;
69
+ };
70
+ };
71
+ numbers: {
72
+ type: string;
73
+ items: {
74
+ type: string;
75
+ };
76
+ };
77
+ confidence: {
78
+ type: string;
79
+ };
80
+ };
81
+ required: string[];
82
+ };
83
+ /**
84
+ * JSON schema for classification output.
85
+ */
86
+ export declare const CLASSIFICATION_SCHEMA: {
87
+ type: string;
88
+ properties: {
89
+ type: {
90
+ type: string;
91
+ enum: string[];
92
+ };
93
+ hasText: {
94
+ type: string;
95
+ };
96
+ textDensity: {
97
+ type: string;
98
+ enum: string[];
99
+ };
100
+ complexity: {
101
+ type: string;
102
+ enum: string[];
103
+ };
104
+ confidence: {
105
+ type: string;
106
+ };
107
+ };
108
+ required: string[];
109
+ };
110
+ /**
111
+ * Universal Evaluation Prompt - NO CONTEXT
112
+ *
113
+ * Per Steve's requirement: "Give it a super good prompt that's universal,
114
+ * that describes the image in extreme detail. 3 paragraph minimum.
115
+ * Then embed those paragraphs so the VLM can see pictures."
116
+ *
117
+ * This prompt analyzes images in COMPLETE ISOLATION with no document context.
118
+ */
119
+ export declare const UNIVERSAL_EVALUATION_PROMPT = "You are describing an image to someone who cannot see it. Your description must be so detailed and vivid that a blind person could fully understand what this image shows.\n\nPARAGRAPH 1 - WHAT THE IMAGE IS:\nDescribe the overall nature and composition of this image. What type of image is this? (photograph, chart, form, medical image, diagram, table, signature, stamp, handwriting, logo, barcode, graph, flowchart, screenshot, etc.) Describe the color palette, lighting, orientation (portrait/landscape), image quality, and overall visual impression. If it is a photograph, describe the setting and atmosphere. If it is a document or form, describe the layout and structure. Give the reader a complete mental picture of what they would see at first glance. Minimum 6 sentences.\n\nPARAGRAPH 2 - WHAT THE IMAGE CONTAINS:\nDescribe every visible element systematically from top-left to bottom-right:\n- For photographs: subjects, their positions, expressions, clothing, objects, background elements, any text visible on signs/labels/packaging. Describe colors precisely (not \"red\" but \"deep crimson\" or \"bright cherry red\"). Describe textures (smooth, rough, granular, glistening, matte). Describe spatial relationships between elements.\n- For medical/clinical images: tissue characteristics, wound bed appearance, surrounding skin condition, any medical devices or supplies visible, measurements if rulers or scales are present, staging indicators, color variations in tissue.\n- For documents/forms: transcribe ALL visible text verbatim. Describe headers, fields, checkboxes, signatures, stamps, logos. Note handwritten vs printed text.\n- For charts/graphs: axis labels, units, data values, trends, colors of data series, legends, title, scale markings.\n- For diagrams: components, connections, labels, flow direction, hierarchy.\nMinimum 8 sentences.\n\nPARAGRAPH 3 - WHAT THE IMAGE COMMUNICATES:\nExplain what this image conveys to a viewer. What is its purpose in the document? What story does it tell? What would a person seeing this image understand immediately that the description alone might not capture? Note any details that stand out as particularly significant \u2014 anomalies, changes over time, concerning findings, key data points, or important identifiers. If this is part of a series, describe what stage or progression it might represent. Minimum 6 sentences.\n\nRULES:\n1. Describe ONLY what you can directly observe \u2014 never hallucinate or assume\n2. If text is unclear, note it as \"[illegible]\" or \"[partially visible: ...]\"\n3. Use precise measurements when scales/rulers are visible\n4. Describe colors with specificity (e.g., \"pale yellow-green\" not just \"light colored\")\n5. Note spatial positions (top-left, center, lower-right, etc.)\n6. Minimum 3 substantial paragraphs, each 6-10 sentences\n7. The description must be self-contained \u2014 a reader should understand the image without seeing it or reading any other document\n\nReturn as JSON:\n{\n \"imageType\": \"string\",\n \"primarySubject\": \"Brief one-line description of main content\",\n \"paragraph1\": \"Detailed visual overview (6-10 sentences)\",\n \"paragraph2\": \"Comprehensive element-by-element description (8-12 sentences)\",\n \"paragraph3\": \"Communication and significance (6-10 sentences)\",\n \"extractedText\": [\"Array of all visible text strings\"],\n \"dates\": [\"Any dates found in any format\"],\n \"names\": [\"People names, organization names, product names\"],\n \"numbers\": [\"Significant numbers, amounts, measurements, IDs\"],\n \"confidence\": 0.0-1.0\n}";
120
+ /**
121
+ * JSON schema for universal evaluation output.
122
+ */
123
+ export declare const UNIVERSAL_EVALUATION_SCHEMA: {
124
+ type: string;
125
+ properties: {
126
+ imageType: {
127
+ type: string;
128
+ };
129
+ primarySubject: {
130
+ type: string;
131
+ };
132
+ paragraph1: {
133
+ type: string;
134
+ };
135
+ paragraph2: {
136
+ type: string;
137
+ };
138
+ paragraph3: {
139
+ type: string;
140
+ };
141
+ extractedText: {
142
+ type: string;
143
+ items: {
144
+ type: string;
145
+ };
146
+ };
147
+ dates: {
148
+ type: string;
149
+ items: {
150
+ type: string;
151
+ };
152
+ };
153
+ names: {
154
+ type: string;
155
+ items: {
156
+ type: string;
157
+ };
158
+ };
159
+ numbers: {
160
+ type: string;
161
+ items: {
162
+ type: string;
163
+ };
164
+ };
165
+ confidence: {
166
+ type: string;
167
+ };
168
+ };
169
+ required: string[];
170
+ };
171
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/services/vlm/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB,iqDAmC7B,CAAC;AAEH;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAY/D;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,qVAShC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,oBAAoB,i9BAyB/B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAejC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;CA0BjC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,4hHAsCtC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAevC,CAAC"}
@@ -0,0 +1,229 @@
1
+ /**
2
+ * VLM Prompts for Legal Document Image Analysis
3
+ *
4
+ * Optimized prompts for Gemini 3 multimodal analysis of images
5
+ * extracted from legal and medical documents.
6
+ *
7
+ * @module services/vlm/prompts
8
+ */
9
+ /**
10
+ * Legal document image description prompt optimized for Gemini 3.
11
+ * Returns structured JSON with detailed analysis.
12
+ */
13
+ export const LEGAL_IMAGE_PROMPT = `You are analyzing an image from a legal or medical document. Provide an extremely detailed, factual description.
14
+
15
+ PARAGRAPH 1 - IDENTIFICATION:
16
+ What type of image is this? (photograph, diagram, chart, table, form, signature, stamp, map, medical image, evidence photo, scan, screenshot, etc.)
17
+ What is the primary subject or content?
18
+
19
+ PARAGRAPH 2 - DETAILED CONTENT:
20
+ Describe ALL visible elements with precision:
21
+ - For documents: headers, text, tables, dates, names, reference numbers
22
+ - For photographs: subjects, objects, setting, conditions, visible text/labels
23
+ - For charts/diagrams: axes, labels, data points, trends, relationships
24
+ - For signatures/stamps: appearance, text, official markings
25
+ - For medical images: anatomical structures, measurements, annotations
26
+ - For forms: field labels, filled values, checkboxes, signatures
27
+
28
+ PARAGRAPH 3 - LEGAL RELEVANCE:
29
+ What information is relevant in a legal or medical context?
30
+ Note any dates, names, amounts, identifiers, or official markings.
31
+ Describe anything that could serve as evidence or documentation.
32
+
33
+ Be FACTUAL and PRECISE. Do not speculate beyond what is visible.
34
+ If text is unclear, indicate this explicitly.
35
+
36
+ Return as JSON:
37
+ {
38
+ "imageType": "string",
39
+ "primarySubject": "string",
40
+ "paragraph1": "string (identification, 4-5 sentences)",
41
+ "paragraph2": "string (detailed content, 6-8 sentences)",
42
+ "paragraph3": "string (legal relevance, 4-5 sentences)",
43
+ "extractedText": ["any visible text strings"],
44
+ "dates": ["YYYY-MM-DD or original format"],
45
+ "names": ["people, organizations"],
46
+ "numbers": ["amounts, references, IDs"],
47
+ "confidence": 0.0-1.0
48
+ }`;
49
+ /**
50
+ * Context-aware prompt including surrounding text from the document.
51
+ *
52
+ * @param contextText - Text surrounding the image in the document
53
+ * @returns Complete prompt with context
54
+ */
55
+ export function createContextPrompt(contextText) {
56
+ const truncatedContext = contextText.slice(0, 2000);
57
+ return `You are analyzing an image from a legal or medical document.
58
+
59
+ SURROUNDING TEXT CONTEXT:
60
+ """
61
+ ${truncatedContext}
62
+ """
63
+
64
+ Relate your description to this context where relevant. The context may help identify what the image represents.
65
+
66
+ ${LEGAL_IMAGE_PROMPT}`;
67
+ }
68
+ /**
69
+ * Simple classification prompt for quick categorization.
70
+ * Use for triage before detailed analysis.
71
+ */
72
+ export const CLASSIFY_IMAGE_PROMPT = `Classify this image from a legal or medical document.
73
+
74
+ Return JSON:
75
+ {
76
+ "type": "photograph|diagram|chart|table|form|signature|stamp|map|medical|document|screenshot|other",
77
+ "hasText": true/false,
78
+ "textDensity": "none|sparse|moderate|dense",
79
+ "complexity": "simple|medium|complex",
80
+ "confidence": 0.0-1.0
81
+ }`;
82
+ /**
83
+ * Deep analysis prompt using thinking mode.
84
+ * For complex images requiring extended reasoning.
85
+ */
86
+ export const DEEP_ANALYSIS_PROMPT = `You are a legal document analysis expert. Use extended reasoning to analyze this image thoroughly.
87
+
88
+ Step through your analysis:
89
+ 1. Identify the image type and overall content
90
+ 2. Examine every visible element systematically
91
+ 3. Extract all text, numbers, dates, and names
92
+ 4. Consider the legal or medical significance of each element
93
+ 5. Note any uncertainties or ambiguities
94
+
95
+ Return as JSON:
96
+ {
97
+ "thinkingSteps": ["step1", "step2", ...],
98
+ "imageType": "string",
99
+ "fullDescription": "string (comprehensive, 400+ words)",
100
+ "extractedData": {
101
+ "text": ["all visible text"],
102
+ "dates": ["YYYY-MM-DD"],
103
+ "amounts": ["with currency"],
104
+ "names": ["people, organizations"],
105
+ "references": ["IDs, case numbers, medical record numbers"]
106
+ },
107
+ "legalSignificance": "string",
108
+ "medicalSignificance": "string (if applicable)",
109
+ "uncertainties": ["anything unclear"],
110
+ "confidence": 0.0-1.0
111
+ }`;
112
+ /**
113
+ * JSON schema for structured output validation.
114
+ * Used with Gemini's structured output mode.
115
+ */
116
+ export const IMAGE_ANALYSIS_SCHEMA = {
117
+ type: 'object',
118
+ properties: {
119
+ imageType: { type: 'string' },
120
+ primarySubject: { type: 'string' },
121
+ paragraph1: { type: 'string' },
122
+ paragraph2: { type: 'string' },
123
+ paragraph3: { type: 'string' },
124
+ extractedText: { type: 'array', items: { type: 'string' } },
125
+ dates: { type: 'array', items: { type: 'string' } },
126
+ names: { type: 'array', items: { type: 'string' } },
127
+ numbers: { type: 'array', items: { type: 'string' } },
128
+ confidence: { type: 'number' },
129
+ },
130
+ required: ['imageType', 'paragraph1', 'paragraph2', 'paragraph3', 'confidence'],
131
+ };
132
+ /**
133
+ * JSON schema for classification output.
134
+ */
135
+ export const CLASSIFICATION_SCHEMA = {
136
+ type: 'object',
137
+ properties: {
138
+ type: {
139
+ type: 'string',
140
+ enum: [
141
+ 'photograph',
142
+ 'diagram',
143
+ 'chart',
144
+ 'table',
145
+ 'form',
146
+ 'signature',
147
+ 'stamp',
148
+ 'map',
149
+ 'medical',
150
+ 'document',
151
+ 'screenshot',
152
+ 'other',
153
+ ],
154
+ },
155
+ hasText: { type: 'boolean' },
156
+ textDensity: { type: 'string', enum: ['none', 'sparse', 'moderate', 'dense'] },
157
+ complexity: { type: 'string', enum: ['simple', 'medium', 'complex'] },
158
+ confidence: { type: 'number' },
159
+ },
160
+ required: ['type', 'hasText', 'textDensity', 'complexity', 'confidence'],
161
+ };
162
+ /**
163
+ * Universal Evaluation Prompt - NO CONTEXT
164
+ *
165
+ * Per Steve's requirement: "Give it a super good prompt that's universal,
166
+ * that describes the image in extreme detail. 3 paragraph minimum.
167
+ * Then embed those paragraphs so the VLM can see pictures."
168
+ *
169
+ * This prompt analyzes images in COMPLETE ISOLATION with no document context.
170
+ */
171
+ export const UNIVERSAL_EVALUATION_PROMPT = `You are describing an image to someone who cannot see it. Your description must be so detailed and vivid that a blind person could fully understand what this image shows.
172
+
173
+ PARAGRAPH 1 - WHAT THE IMAGE IS:
174
+ Describe the overall nature and composition of this image. What type of image is this? (photograph, chart, form, medical image, diagram, table, signature, stamp, handwriting, logo, barcode, graph, flowchart, screenshot, etc.) Describe the color palette, lighting, orientation (portrait/landscape), image quality, and overall visual impression. If it is a photograph, describe the setting and atmosphere. If it is a document or form, describe the layout and structure. Give the reader a complete mental picture of what they would see at first glance. Minimum 6 sentences.
175
+
176
+ PARAGRAPH 2 - WHAT THE IMAGE CONTAINS:
177
+ Describe every visible element systematically from top-left to bottom-right:
178
+ - For photographs: subjects, their positions, expressions, clothing, objects, background elements, any text visible on signs/labels/packaging. Describe colors precisely (not "red" but "deep crimson" or "bright cherry red"). Describe textures (smooth, rough, granular, glistening, matte). Describe spatial relationships between elements.
179
+ - For medical/clinical images: tissue characteristics, wound bed appearance, surrounding skin condition, any medical devices or supplies visible, measurements if rulers or scales are present, staging indicators, color variations in tissue.
180
+ - For documents/forms: transcribe ALL visible text verbatim. Describe headers, fields, checkboxes, signatures, stamps, logos. Note handwritten vs printed text.
181
+ - For charts/graphs: axis labels, units, data values, trends, colors of data series, legends, title, scale markings.
182
+ - For diagrams: components, connections, labels, flow direction, hierarchy.
183
+ Minimum 8 sentences.
184
+
185
+ PARAGRAPH 3 - WHAT THE IMAGE COMMUNICATES:
186
+ Explain what this image conveys to a viewer. What is its purpose in the document? What story does it tell? What would a person seeing this image understand immediately that the description alone might not capture? Note any details that stand out as particularly significant — anomalies, changes over time, concerning findings, key data points, or important identifiers. If this is part of a series, describe what stage or progression it might represent. Minimum 6 sentences.
187
+
188
+ RULES:
189
+ 1. Describe ONLY what you can directly observe — never hallucinate or assume
190
+ 2. If text is unclear, note it as "[illegible]" or "[partially visible: ...]"
191
+ 3. Use precise measurements when scales/rulers are visible
192
+ 4. Describe colors with specificity (e.g., "pale yellow-green" not just "light colored")
193
+ 5. Note spatial positions (top-left, center, lower-right, etc.)
194
+ 6. Minimum 3 substantial paragraphs, each 6-10 sentences
195
+ 7. The description must be self-contained — a reader should understand the image without seeing it or reading any other document
196
+
197
+ Return as JSON:
198
+ {
199
+ "imageType": "string",
200
+ "primarySubject": "Brief one-line description of main content",
201
+ "paragraph1": "Detailed visual overview (6-10 sentences)",
202
+ "paragraph2": "Comprehensive element-by-element description (8-12 sentences)",
203
+ "paragraph3": "Communication and significance (6-10 sentences)",
204
+ "extractedText": ["Array of all visible text strings"],
205
+ "dates": ["Any dates found in any format"],
206
+ "names": ["People names, organization names, product names"],
207
+ "numbers": ["Significant numbers, amounts, measurements, IDs"],
208
+ "confidence": 0.0-1.0
209
+ }`;
210
+ /**
211
+ * JSON schema for universal evaluation output.
212
+ */
213
+ export const UNIVERSAL_EVALUATION_SCHEMA = {
214
+ type: 'object',
215
+ properties: {
216
+ imageType: { type: 'string' },
217
+ primarySubject: { type: 'string' },
218
+ paragraph1: { type: 'string' },
219
+ paragraph2: { type: 'string' },
220
+ paragraph3: { type: 'string' },
221
+ extractedText: { type: 'array', items: { type: 'string' } },
222
+ dates: { type: 'array', items: { type: 'string' } },
223
+ names: { type: 'array', items: { type: 'string' } },
224
+ numbers: { type: 'array', items: { type: 'string' } },
225
+ confidence: { type: 'number' },
226
+ },
227
+ required: ['imageType', 'primarySubject', 'paragraph1', 'paragraph2', 'paragraph3', 'confidence'],
228
+ };
229
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/services/vlm/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmChC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,MAAM,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO;;;;EAIP,gBAAgB;;;;;EAKhB,kBAAkB,EAAE,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;EASnC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;EAyBlC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAClC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAC3D,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACnD,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACnD,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACrD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC/B;IACD,QAAQ,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC;CAChF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE;gBACJ,YAAY;gBACZ,SAAS;gBACT,OAAO;gBACP,OAAO;gBACP,MAAM;gBACN,WAAW;gBACX,OAAO;gBACP,KAAK;gBACL,SAAS;gBACT,UAAU;gBACV,YAAY;gBACZ,OAAO;aACR;SACF;QACD,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC5B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE;QAC9E,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE;QACrE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC/B;IACD,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,CAAC;CACzE,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsCzC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAClC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAC3D,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACnD,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACnD,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACrD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC/B;IACD,QAAQ,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC;CAClG,CAAC"}
@@ -0,0 +1,174 @@
1
+ /**
2
+ * VLM Service - Gemini 3 Multimodal Image Analysis
3
+ *
4
+ * Provides high-level API for analyzing images from legal and medical documents
5
+ * using Google Gemini 3 Flash multimodal capabilities.
6
+ *
7
+ * @module services/vlm/service
8
+ */
9
+ import { GeminiClient, type FileRef } from '../gemini/index.js';
10
+ /**
11
+ * Structured analysis result from VLM
12
+ */
13
+ export interface ImageAnalysis {
14
+ imageType: string;
15
+ primarySubject: string;
16
+ paragraph1: string;
17
+ paragraph2: string;
18
+ paragraph3: string;
19
+ extractedText: string[];
20
+ dates: string[];
21
+ names: string[];
22
+ numbers: string[];
23
+ confidence: number;
24
+ }
25
+ /**
26
+ * Complete VLM result with metadata
27
+ */
28
+ export interface VLMAnalysisResult {
29
+ /** Combined description paragraphs */
30
+ description: string;
31
+ /** Structured analysis data */
32
+ analysis: ImageAnalysis;
33
+ /** Model used for analysis */
34
+ model: string;
35
+ /** Processing time in milliseconds */
36
+ processingTimeMs: number;
37
+ /** Total tokens used */
38
+ tokensUsed: number;
39
+ }
40
+ /**
41
+ * Quick classification result
42
+ */
43
+ export interface ImageClassification {
44
+ type: string;
45
+ hasText: boolean;
46
+ textDensity: string;
47
+ complexity: string;
48
+ confidence: number;
49
+ }
50
+ /**
51
+ * Deep analysis result with reasoning steps
52
+ */
53
+ export interface DeepAnalysisResult {
54
+ thinkingSteps: string[];
55
+ imageType: string;
56
+ fullDescription: string;
57
+ extractedData: {
58
+ text: string[];
59
+ dates: string[];
60
+ amounts: string[];
61
+ names: string[];
62
+ references: string[];
63
+ };
64
+ legalSignificance: string;
65
+ medicalSignificance?: string;
66
+ uncertainties: string[];
67
+ confidence: number;
68
+ }
69
+ /**
70
+ * Options for image description
71
+ */
72
+ export interface DescribeImageOptions {
73
+ /** Surrounding text context from document */
74
+ contextText?: string;
75
+ /** Use high resolution mode */
76
+ highResolution?: boolean;
77
+ /** Use universal blind-person-detail prompt (default: true) */
78
+ useUniversalPrompt?: boolean;
79
+ }
80
+ /**
81
+ * VLMService - High-level Gemini multimodal image analysis
82
+ *
83
+ * Provides methods for:
84
+ * - describeImage: Detailed legal/medical image analysis
85
+ * - classifyImage: Quick categorization
86
+ * - analyzeDeep: Extended reasoning analysis
87
+ * - batch operations for multiple images
88
+ */
89
+ export declare class VLMService {
90
+ private readonly client;
91
+ constructor(client?: GeminiClient);
92
+ /**
93
+ * Generate detailed description of an image from a legal/medical document.
94
+ *
95
+ * @param imagePath - Path to the image file
96
+ * @param options - Analysis options
97
+ * @returns VLMAnalysisResult with description and structured data
98
+ */
99
+ describeImage(imagePath: string, options?: DescribeImageOptions): Promise<VLMAnalysisResult>;
100
+ /**
101
+ * Analyze image from a FileRef (already loaded buffer).
102
+ *
103
+ * @param fileRef - Pre-loaded file reference
104
+ * @param options - Analysis options
105
+ * @returns VLMAnalysisResult
106
+ */
107
+ describeImageFromRef(fileRef: FileRef, options?: DescribeImageOptions): Promise<VLMAnalysisResult>;
108
+ /**
109
+ * Core analysis logic shared by describeImage and describeImageFromRef.
110
+ */
111
+ private analyzeFileRef;
112
+ /**
113
+ * Select prompt and schema based on analysis options.
114
+ * Universal prompt is the default for all images.
115
+ */
116
+ private selectPromptAndSchema;
117
+ /**
118
+ * Quick classification of an image.
119
+ *
120
+ * @param imagePath - Path to the image file
121
+ * @returns ImageClassification with type and complexity
122
+ */
123
+ classifyImage(imagePath: string): Promise<ImageClassification>;
124
+ /**
125
+ * Deep analysis using extended reasoning.
126
+ *
127
+ * @param imagePath - Path to the image file
128
+ * @returns DeepAnalysisResult with reasoning steps
129
+ */
130
+ analyzeDeep(imagePath: string): Promise<VLMAnalysisResult>;
131
+ /**
132
+ * Get service status including Gemini client status.
133
+ */
134
+ getStatus(): {
135
+ model: string;
136
+ rateLimiter: import("../gemini/rate-limiter.js").RateLimiterStatus;
137
+ circuitBreaker: import("../gemini/circuit-breaker.js").CircuitBreakerStatus;
138
+ };
139
+ /**
140
+ * Parse a VLM JSON response, stripping markdown fences.
141
+ *
142
+ * When thinking mode is enabled, responseMimeType: 'application/json' is incompatible,
143
+ * so Gemini may include reasoning preamble before the JSON block. This method handles
144
+ * that by: (0) rejecting empty/blank responses immediately, (1) stripping code fences,
145
+ * (2) trying full text parse, (3) extracting the outermost JSON object from mixed text,
146
+ * (4) throwing with diagnostics on failure.
147
+ */
148
+ private parseVLMJson;
149
+ /**
150
+ * Parse JSON response into ImageAnalysis structure.
151
+ */
152
+ private parseAnalysis;
153
+ /**
154
+ * Parse classification response.
155
+ */
156
+ private parseClassification;
157
+ /**
158
+ * Parse deep analysis response.
159
+ */
160
+ private parseDeepAnalysis;
161
+ /**
162
+ * Convert deep analysis to standard ImageAnalysis format.
163
+ */
164
+ private convertDeepToStandardAnalysis;
165
+ }
166
+ /**
167
+ * Get or create VLMService singleton.
168
+ */
169
+ export declare function getVLMService(): VLMService;
170
+ /**
171
+ * Reset singleton for testing.
172
+ */
173
+ export declare function resetVLMService(): void;
174
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/services/vlm/service.ts"],"names":[],"mappings":"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"}