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.
- package/.env.example +55 -0
- package/LICENSE +78 -0
- package/README.md +1154 -0
- package/dist/bin-http.d.ts +24 -0
- package/dist/bin-http.d.ts.map +1 -0
- package/dist/bin-http.js +275 -0
- package/dist/bin-http.js.map +1 -0
- package/dist/bin-setup.d.ts +11 -0
- package/dist/bin-setup.d.ts.map +1 -0
- package/dist/bin-setup.js +610 -0
- package/dist/bin-setup.js.map +1 -0
- package/dist/bin.d.ts +16 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +16 -0
- package/dist/bin.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +90 -0
- package/dist/index.js.map +1 -0
- package/dist/models/chunk.d.ts +136 -0
- package/dist/models/chunk.d.ts.map +1 -0
- package/dist/models/chunk.js +27 -0
- package/dist/models/chunk.js.map +1 -0
- package/dist/models/cluster.d.ts +79 -0
- package/dist/models/cluster.d.ts.map +1 -0
- package/dist/models/cluster.js +10 -0
- package/dist/models/cluster.js.map +1 -0
- package/dist/models/comparison.d.ts +62 -0
- package/dist/models/comparison.d.ts.map +1 -0
- package/dist/models/comparison.js +8 -0
- package/dist/models/comparison.js.map +1 -0
- package/dist/models/document.d.ts +104 -0
- package/dist/models/document.d.ts.map +1 -0
- package/dist/models/document.js +15 -0
- package/dist/models/document.js.map +1 -0
- package/dist/models/embedding.d.ts +87 -0
- package/dist/models/embedding.d.ts.map +1 -0
- package/dist/models/embedding.js +23 -0
- package/dist/models/embedding.js.map +1 -0
- package/dist/models/extraction.d.ts +15 -0
- package/dist/models/extraction.d.ts.map +1 -0
- package/dist/models/extraction.js +2 -0
- package/dist/models/extraction.js.map +1 -0
- package/dist/models/form-fill.d.ts +23 -0
- package/dist/models/form-fill.d.ts.map +1 -0
- package/dist/models/form-fill.js +2 -0
- package/dist/models/form-fill.js.map +1 -0
- package/dist/models/image.d.ts +177 -0
- package/dist/models/image.d.ts.map +1 -0
- package/dist/models/image.js +8 -0
- package/dist/models/image.js.map +1 -0
- package/dist/models/index.d.ts +14 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +22 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/provenance.d.ts +174 -0
- package/dist/models/provenance.d.ts.map +1 -0
- package/dist/models/provenance.js +53 -0
- package/dist/models/provenance.js.map +1 -0
- package/dist/models/uploaded-file.d.ts +20 -0
- package/dist/models/uploaded-file.d.ts.map +1 -0
- package/dist/models/uploaded-file.js +2 -0
- package/dist/models/uploaded-file.js.map +1 -0
- package/dist/server/errors.d.ts +93 -0
- package/dist/server/errors.d.ts.map +1 -0
- package/dist/server/errors.js +256 -0
- package/dist/server/errors.js.map +1 -0
- package/dist/server/events.d.ts +36 -0
- package/dist/server/events.d.ts.map +1 -0
- package/dist/server/events.js +48 -0
- package/dist/server/events.js.map +1 -0
- package/dist/server/permissions.d.ts +26 -0
- package/dist/server/permissions.d.ts.map +1 -0
- package/dist/server/permissions.js +194 -0
- package/dist/server/permissions.js.map +1 -0
- package/dist/server/register-tools.d.ts +25 -0
- package/dist/server/register-tools.d.ts.map +1 -0
- package/dist/server/register-tools.js +102 -0
- package/dist/server/register-tools.js.map +1 -0
- package/dist/server/startup.d.ts +16 -0
- package/dist/server/startup.d.ts.map +1 -0
- package/dist/server/startup.js +37 -0
- package/dist/server/startup.js.map +1 -0
- package/dist/server/state.d.ts +166 -0
- package/dist/server/state.d.ts.map +1 -0
- package/dist/server/state.js +424 -0
- package/dist/server/state.js.map +1 -0
- package/dist/server/transports/http-transport.d.ts +37 -0
- package/dist/server/transports/http-transport.d.ts.map +1 -0
- package/dist/server/transports/http-transport.js +204 -0
- package/dist/server/transports/http-transport.js.map +1 -0
- package/dist/server/transports/index.d.ts +9 -0
- package/dist/server/transports/index.d.ts.map +1 -0
- package/dist/server/transports/index.js +9 -0
- package/dist/server/transports/index.js.map +1 -0
- package/dist/server/transports/session-manager.d.ts +40 -0
- package/dist/server/transports/session-manager.d.ts.map +1 -0
- package/dist/server/transports/session-manager.js +74 -0
- package/dist/server/transports/session-manager.js.map +1 -0
- package/dist/server/types.d.ts +82 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/server/types.js +14 -0
- package/dist/server/types.js.map +1 -0
- package/dist/services/audit.d.ts +26 -0
- package/dist/services/audit.d.ts.map +1 -0
- package/dist/services/audit.js +43 -0
- package/dist/services/audit.js.map +1 -0
- package/dist/services/chunking/chunk-deduplicator.d.ts +33 -0
- package/dist/services/chunking/chunk-deduplicator.d.ts.map +1 -0
- package/dist/services/chunking/chunk-deduplicator.js +46 -0
- package/dist/services/chunking/chunk-deduplicator.js.map +1 -0
- package/dist/services/chunking/chunk-merger.d.ts +26 -0
- package/dist/services/chunking/chunk-merger.d.ts.map +1 -0
- package/dist/services/chunking/chunk-merger.js +94 -0
- package/dist/services/chunking/chunk-merger.js.map +1 -0
- package/dist/services/chunking/chunker.d.ts +62 -0
- package/dist/services/chunking/chunker.d.ts.map +1 -0
- package/dist/services/chunking/chunker.js +566 -0
- package/dist/services/chunking/chunker.js.map +1 -0
- package/dist/services/chunking/heading-normalizer.d.ts +33 -0
- package/dist/services/chunking/heading-normalizer.d.ts.map +1 -0
- package/dist/services/chunking/heading-normalizer.js +101 -0
- package/dist/services/chunking/heading-normalizer.js.map +1 -0
- package/dist/services/chunking/json-block-analyzer.d.ts +163 -0
- package/dist/services/chunking/json-block-analyzer.d.ts.map +1 -0
- package/dist/services/chunking/json-block-analyzer.js +1033 -0
- package/dist/services/chunking/json-block-analyzer.js.map +1 -0
- package/dist/services/chunking/markdown-parser.d.ts +75 -0
- package/dist/services/chunking/markdown-parser.d.ts.map +1 -0
- package/dist/services/chunking/markdown-parser.js +428 -0
- package/dist/services/chunking/markdown-parser.js.map +1 -0
- package/dist/services/chunking/text-normalizer.d.ts +20 -0
- package/dist/services/chunking/text-normalizer.d.ts.map +1 -0
- package/dist/services/chunking/text-normalizer.js +36 -0
- package/dist/services/chunking/text-normalizer.js.map +1 -0
- package/dist/services/clm/contract-schemas.d.ts +36 -0
- package/dist/services/clm/contract-schemas.d.ts.map +1 -0
- package/dist/services/clm/contract-schemas.js +92 -0
- package/dist/services/clm/contract-schemas.js.map +1 -0
- package/dist/services/clm/summarization.d.ts +46 -0
- package/dist/services/clm/summarization.d.ts.map +1 -0
- package/dist/services/clm/summarization.js +61 -0
- package/dist/services/clm/summarization.js.map +1 -0
- package/dist/services/clustering/clustering-service.d.ts +58 -0
- package/dist/services/clustering/clustering-service.d.ts.map +1 -0
- package/dist/services/clustering/clustering-service.js +467 -0
- package/dist/services/clustering/clustering-service.js.map +1 -0
- package/dist/services/comparison/diff-service.d.ts +41 -0
- package/dist/services/comparison/diff-service.d.ts.map +1 -0
- package/dist/services/comparison/diff-service.js +120 -0
- package/dist/services/comparison/diff-service.js.map +1 -0
- package/dist/services/embedding/embedder.d.ts +55 -0
- package/dist/services/embedding/embedder.d.ts.map +1 -0
- package/dist/services/embedding/embedder.js +202 -0
- package/dist/services/embedding/embedder.js.map +1 -0
- package/dist/services/embedding/nomic.d.ts +67 -0
- package/dist/services/embedding/nomic.d.ts.map +1 -0
- package/dist/services/embedding/nomic.js +280 -0
- package/dist/services/embedding/nomic.js.map +1 -0
- package/dist/services/gemini/circuit-breaker.d.ts +106 -0
- package/dist/services/gemini/circuit-breaker.d.ts.map +1 -0
- package/dist/services/gemini/circuit-breaker.js +237 -0
- package/dist/services/gemini/circuit-breaker.js.map +1 -0
- package/dist/services/gemini/client.d.ts +173 -0
- package/dist/services/gemini/client.d.ts.map +1 -0
- package/dist/services/gemini/client.js +483 -0
- package/dist/services/gemini/client.js.map +1 -0
- package/dist/services/gemini/config.d.ts +116 -0
- package/dist/services/gemini/config.d.ts.map +1 -0
- package/dist/services/gemini/config.js +118 -0
- package/dist/services/gemini/config.js.map +1 -0
- package/dist/services/gemini/index.d.ts +9 -0
- package/dist/services/gemini/index.d.ts.map +1 -0
- package/dist/services/gemini/index.js +13 -0
- package/dist/services/gemini/index.js.map +1 -0
- package/dist/services/gemini/rate-limiter.d.ts +62 -0
- package/dist/services/gemini/rate-limiter.d.ts.map +1 -0
- package/dist/services/gemini/rate-limiter.js +120 -0
- package/dist/services/gemini/rate-limiter.js.map +1 -0
- package/dist/services/images/extractor.d.ts +88 -0
- package/dist/services/images/extractor.d.ts.map +1 -0
- package/dist/services/images/extractor.js +340 -0
- package/dist/services/images/extractor.js.map +1 -0
- package/dist/services/images/optimizer.d.ts +130 -0
- package/dist/services/images/optimizer.d.ts.map +1 -0
- package/dist/services/images/optimizer.js +228 -0
- package/dist/services/images/optimizer.js.map +1 -0
- package/dist/services/ocr/datalab.d.ts +64 -0
- package/dist/services/ocr/datalab.d.ts.map +1 -0
- package/dist/services/ocr/datalab.js +425 -0
- package/dist/services/ocr/datalab.js.map +1 -0
- package/dist/services/ocr/errors.d.ts +38 -0
- package/dist/services/ocr/errors.d.ts.map +1 -0
- package/dist/services/ocr/errors.js +83 -0
- package/dist/services/ocr/errors.js.map +1 -0
- package/dist/services/ocr/file-manager.d.ts +76 -0
- package/dist/services/ocr/file-manager.d.ts.map +1 -0
- package/dist/services/ocr/file-manager.js +238 -0
- package/dist/services/ocr/file-manager.js.map +1 -0
- package/dist/services/ocr/form-fill.d.ts +48 -0
- package/dist/services/ocr/form-fill.d.ts.map +1 -0
- package/dist/services/ocr/form-fill.js +213 -0
- package/dist/services/ocr/form-fill.js.map +1 -0
- package/dist/services/ocr/processor.d.ts +95 -0
- package/dist/services/ocr/processor.d.ts.map +1 -0
- package/dist/services/ocr/processor.js +259 -0
- package/dist/services/ocr/processor.js.map +1 -0
- package/dist/services/provenance/agent-metadata.d.ts +82 -0
- package/dist/services/provenance/agent-metadata.d.ts.map +1 -0
- package/dist/services/provenance/agent-metadata.js +106 -0
- package/dist/services/provenance/agent-metadata.js.map +1 -0
- package/dist/services/provenance/chain-hash.d.ts +57 -0
- package/dist/services/provenance/chain-hash.d.ts.map +1 -0
- package/dist/services/provenance/chain-hash.js +131 -0
- package/dist/services/provenance/chain-hash.js.map +1 -0
- package/dist/services/provenance/exporter.d.ts +202 -0
- package/dist/services/provenance/exporter.d.ts.map +1 -0
- package/dist/services/provenance/exporter.js +457 -0
- package/dist/services/provenance/exporter.js.map +1 -0
- package/dist/services/provenance/index.d.ts +15 -0
- package/dist/services/provenance/index.d.ts.map +1 -0
- package/dist/services/provenance/index.js +17 -0
- package/dist/services/provenance/index.js.map +1 -0
- package/dist/services/provenance/tracker.d.ts +138 -0
- package/dist/services/provenance/tracker.d.ts.map +1 -0
- package/dist/services/provenance/tracker.js +293 -0
- package/dist/services/provenance/tracker.js.map +1 -0
- package/dist/services/provenance/verifier.d.ts +153 -0
- package/dist/services/provenance/verifier.d.ts.map +1 -0
- package/dist/services/provenance/verifier.js +536 -0
- package/dist/services/provenance/verifier.js.map +1 -0
- package/dist/services/python-pool.d.ts +70 -0
- package/dist/services/python-pool.d.ts.map +1 -0
- package/dist/services/python-pool.js +265 -0
- package/dist/services/python-pool.js.map +1 -0
- package/dist/services/search/bm25.d.ts +180 -0
- package/dist/services/search/bm25.d.ts.map +1 -0
- package/dist/services/search/bm25.js +656 -0
- package/dist/services/search/bm25.js.map +1 -0
- package/dist/services/search/fusion.d.ts +103 -0
- package/dist/services/search/fusion.d.ts.map +1 -0
- package/dist/services/search/fusion.js +122 -0
- package/dist/services/search/fusion.js.map +1 -0
- package/dist/services/search/local-reranker.d.ts +30 -0
- package/dist/services/search/local-reranker.d.ts.map +1 -0
- package/dist/services/search/local-reranker.js +123 -0
- package/dist/services/search/local-reranker.js.map +1 -0
- package/dist/services/search/quality.d.ts +11 -0
- package/dist/services/search/quality.d.ts.map +1 -0
- package/dist/services/search/quality.js +17 -0
- package/dist/services/search/quality.js.map +1 -0
- package/dist/services/search/query-classifier.d.ts +34 -0
- package/dist/services/search/query-classifier.d.ts.map +1 -0
- package/dist/services/search/query-classifier.js +114 -0
- package/dist/services/search/query-classifier.js.map +1 -0
- package/dist/services/search/query-expander.d.ts +73 -0
- package/dist/services/search/query-expander.d.ts.map +1 -0
- package/dist/services/search/query-expander.js +281 -0
- package/dist/services/search/query-expander.js.map +1 -0
- package/dist/services/search/reranker.d.ts +44 -0
- package/dist/services/search/reranker.d.ts.map +1 -0
- package/dist/services/search/reranker.js +101 -0
- package/dist/services/search/reranker.js.map +1 -0
- package/dist/services/storage/database/annotation-operations.d.ts +113 -0
- package/dist/services/storage/database/annotation-operations.d.ts.map +1 -0
- package/dist/services/storage/database/annotation-operations.js +177 -0
- package/dist/services/storage/database/annotation-operations.js.map +1 -0
- package/dist/services/storage/database/approval-operations.d.ts +132 -0
- package/dist/services/storage/database/approval-operations.d.ts.map +1 -0
- package/dist/services/storage/database/approval-operations.js +206 -0
- package/dist/services/storage/database/approval-operations.js.map +1 -0
- package/dist/services/storage/database/chunk-operations.d.ts +132 -0
- package/dist/services/storage/database/chunk-operations.d.ts.map +1 -0
- package/dist/services/storage/database/chunk-operations.js +306 -0
- package/dist/services/storage/database/chunk-operations.js.map +1 -0
- package/dist/services/storage/database/cluster-operations.d.ts +97 -0
- package/dist/services/storage/database/cluster-operations.d.ts.map +1 -0
- package/dist/services/storage/database/cluster-operations.js +258 -0
- package/dist/services/storage/database/cluster-operations.js.map +1 -0
- package/dist/services/storage/database/comparison-operations.d.ts +41 -0
- package/dist/services/storage/database/comparison-operations.d.ts.map +1 -0
- package/dist/services/storage/database/comparison-operations.js +65 -0
- package/dist/services/storage/database/comparison-operations.js.map +1 -0
- package/dist/services/storage/database/converters.d.ts +36 -0
- package/dist/services/storage/database/converters.d.ts.map +1 -0
- package/dist/services/storage/database/converters.js +244 -0
- package/dist/services/storage/database/converters.js.map +1 -0
- package/dist/services/storage/database/document-operations.d.ts +145 -0
- package/dist/services/storage/database/document-operations.d.ts.map +1 -0
- package/dist/services/storage/database/document-operations.js +498 -0
- package/dist/services/storage/database/document-operations.js.map +1 -0
- package/dist/services/storage/database/embedding-operations.d.ts +130 -0
- package/dist/services/storage/database/embedding-operations.d.ts.map +1 -0
- package/dist/services/storage/database/embedding-operations.js +315 -0
- package/dist/services/storage/database/embedding-operations.js.map +1 -0
- package/dist/services/storage/database/extraction-operations.d.ts +47 -0
- package/dist/services/storage/database/extraction-operations.d.ts.map +1 -0
- package/dist/services/storage/database/extraction-operations.js +85 -0
- package/dist/services/storage/database/extraction-operations.js.map +1 -0
- package/dist/services/storage/database/form-fill-operations.d.ts +58 -0
- package/dist/services/storage/database/form-fill-operations.d.ts.map +1 -0
- package/dist/services/storage/database/form-fill-operations.js +116 -0
- package/dist/services/storage/database/form-fill-operations.js.map +1 -0
- package/dist/services/storage/database/helpers.d.ts +29 -0
- package/dist/services/storage/database/helpers.d.ts.map +1 -0
- package/dist/services/storage/database/helpers.js +55 -0
- package/dist/services/storage/database/helpers.js.map +1 -0
- package/dist/services/storage/database/image-operations.d.ts +202 -0
- package/dist/services/storage/database/image-operations.d.ts.map +1 -0
- package/dist/services/storage/database/image-operations.js +484 -0
- package/dist/services/storage/database/image-operations.js.map +1 -0
- package/dist/services/storage/database/index.d.ts +13 -0
- package/dist/services/storage/database/index.d.ts.map +1 -0
- package/dist/services/storage/database/index.js +16 -0
- package/dist/services/storage/database/index.js.map +1 -0
- package/dist/services/storage/database/lock-operations.d.ts +59 -0
- package/dist/services/storage/database/lock-operations.d.ts.map +1 -0
- package/dist/services/storage/database/lock-operations.js +89 -0
- package/dist/services/storage/database/lock-operations.js.map +1 -0
- package/dist/services/storage/database/obligation-operations.d.ts +88 -0
- package/dist/services/storage/database/obligation-operations.d.ts.map +1 -0
- package/dist/services/storage/database/obligation-operations.js +206 -0
- package/dist/services/storage/database/obligation-operations.js.map +1 -0
- package/dist/services/storage/database/ocr-operations.d.ts +33 -0
- package/dist/services/storage/database/ocr-operations.d.ts.map +1 -0
- package/dist/services/storage/database/ocr-operations.js +70 -0
- package/dist/services/storage/database/ocr-operations.js.map +1 -0
- package/dist/services/storage/database/playbook-operations.d.ts +72 -0
- package/dist/services/storage/database/playbook-operations.d.ts.map +1 -0
- package/dist/services/storage/database/playbook-operations.js +247 -0
- package/dist/services/storage/database/playbook-operations.js.map +1 -0
- package/dist/services/storage/database/provenance-operations.d.ts +112 -0
- package/dist/services/storage/database/provenance-operations.d.ts.map +1 -0
- package/dist/services/storage/database/provenance-operations.js +251 -0
- package/dist/services/storage/database/provenance-operations.js.map +1 -0
- package/dist/services/storage/database/service.d.ts +142 -0
- package/dist/services/storage/database/service.d.ts.map +1 -0
- package/dist/services/storage/database/service.js +310 -0
- package/dist/services/storage/database/service.js.map +1 -0
- package/dist/services/storage/database/static-operations.d.ts +30 -0
- package/dist/services/storage/database/static-operations.d.ts.map +1 -0
- package/dist/services/storage/database/static-operations.js +218 -0
- package/dist/services/storage/database/static-operations.js.map +1 -0
- package/dist/services/storage/database/stats-operations.d.ts +101 -0
- package/dist/services/storage/database/stats-operations.d.ts.map +1 -0
- package/dist/services/storage/database/stats-operations.js +394 -0
- package/dist/services/storage/database/stats-operations.js.map +1 -0
- package/dist/services/storage/database/tag-operations.d.ts +76 -0
- package/dist/services/storage/database/tag-operations.d.ts.map +1 -0
- package/dist/services/storage/database/tag-operations.js +178 -0
- package/dist/services/storage/database/tag-operations.js.map +1 -0
- package/dist/services/storage/database/types.d.ts +286 -0
- package/dist/services/storage/database/types.d.ts.map +1 -0
- package/dist/services/storage/database/types.js +39 -0
- package/dist/services/storage/database/types.js.map +1 -0
- package/dist/services/storage/database/upload-operations.d.ts +71 -0
- package/dist/services/storage/database/upload-operations.d.ts.map +1 -0
- package/dist/services/storage/database/upload-operations.js +124 -0
- package/dist/services/storage/database/upload-operations.js.map +1 -0
- package/dist/services/storage/database/user-operations.d.ts +102 -0
- package/dist/services/storage/database/user-operations.d.ts.map +1 -0
- package/dist/services/storage/database/user-operations.js +151 -0
- package/dist/services/storage/database/user-operations.js.map +1 -0
- package/dist/services/storage/database/workflow-operations.d.ts +98 -0
- package/dist/services/storage/database/workflow-operations.d.ts.map +1 -0
- package/dist/services/storage/database/workflow-operations.js +157 -0
- package/dist/services/storage/database/workflow-operations.js.map +1 -0
- package/dist/services/storage/database.d.ts +16 -0
- package/dist/services/storage/database.d.ts.map +1 -0
- package/dist/services/storage/database.js +15 -0
- package/dist/services/storage/database.js.map +1 -0
- package/dist/services/storage/index.d.ts +10 -0
- package/dist/services/storage/index.d.ts.map +1 -0
- package/dist/services/storage/index.js +10 -0
- package/dist/services/storage/index.js.map +1 -0
- package/dist/services/storage/migrations/index.d.ts +16 -0
- package/dist/services/storage/migrations/index.d.ts.map +1 -0
- package/dist/services/storage/migrations/index.js +20 -0
- package/dist/services/storage/migrations/index.js.map +1 -0
- package/dist/services/storage/migrations/operations.d.ts +40 -0
- package/dist/services/storage/migrations/operations.d.ts.map +1 -0
- package/dist/services/storage/migrations/operations.js +2910 -0
- package/dist/services/storage/migrations/operations.js.map +1 -0
- package/dist/services/storage/migrations/schema-definitions.d.ts +306 -0
- package/dist/services/storage/migrations/schema-definitions.d.ts.map +1 -0
- package/dist/services/storage/migrations/schema-definitions.js +1006 -0
- package/dist/services/storage/migrations/schema-definitions.js.map +1 -0
- package/dist/services/storage/migrations/schema-helpers.d.ts +50 -0
- package/dist/services/storage/migrations/schema-helpers.d.ts.map +1 -0
- package/dist/services/storage/migrations/schema-helpers.js +176 -0
- package/dist/services/storage/migrations/schema-helpers.js.map +1 -0
- package/dist/services/storage/migrations/types.d.ts +15 -0
- package/dist/services/storage/migrations/types.d.ts.map +1 -0
- package/dist/services/storage/migrations/types.js +21 -0
- package/dist/services/storage/migrations/types.js.map +1 -0
- package/dist/services/storage/migrations/verification.d.ts +20 -0
- package/dist/services/storage/migrations/verification.d.ts.map +1 -0
- package/dist/services/storage/migrations/verification.js +78 -0
- package/dist/services/storage/migrations/verification.js.map +1 -0
- package/dist/services/storage/migrations.d.ts +16 -0
- package/dist/services/storage/migrations.d.ts.map +1 -0
- package/dist/services/storage/migrations.js +17 -0
- package/dist/services/storage/migrations.js.map +1 -0
- package/dist/services/storage/types.d.ts +12 -0
- package/dist/services/storage/types.d.ts.map +1 -0
- package/dist/services/storage/types.js +5 -0
- package/dist/services/storage/types.js.map +1 -0
- package/dist/services/storage/vector.d.ts +208 -0
- package/dist/services/storage/vector.d.ts.map +1 -0
- package/dist/services/storage/vector.js +526 -0
- package/dist/services/storage/vector.js.map +1 -0
- package/dist/services/vlm/pipeline.d.ts +194 -0
- package/dist/services/vlm/pipeline.d.ts.map +1 -0
- package/dist/services/vlm/pipeline.js +800 -0
- package/dist/services/vlm/pipeline.js.map +1 -0
- package/dist/services/vlm/prompts.d.ts +171 -0
- package/dist/services/vlm/prompts.d.ts.map +1 -0
- package/dist/services/vlm/prompts.js +229 -0
- package/dist/services/vlm/prompts.js.map +1 -0
- package/dist/services/vlm/service.d.ts +174 -0
- package/dist/services/vlm/service.d.ts.map +1 -0
- package/dist/services/vlm/service.js +256 -0
- package/dist/services/vlm/service.js.map +1 -0
- package/dist/services/webhook-delivery.d.ts +4 -0
- package/dist/services/webhook-delivery.d.ts.map +1 -0
- package/dist/services/webhook-delivery.js +140 -0
- package/dist/services/webhook-delivery.js.map +1 -0
- package/dist/tools/chunks.d.ts +19 -0
- package/dist/tools/chunks.d.ts.map +1 -0
- package/dist/tools/chunks.js +392 -0
- package/dist/tools/chunks.js.map +1 -0
- package/dist/tools/clm.d.ts +16 -0
- package/dist/tools/clm.d.ts.map +1 -0
- package/dist/tools/clm.js +668 -0
- package/dist/tools/clm.js.map +1 -0
- package/dist/tools/clustering.d.ts +13 -0
- package/dist/tools/clustering.d.ts.map +1 -0
- package/dist/tools/clustering.js +498 -0
- package/dist/tools/clustering.js.map +1 -0
- package/dist/tools/collaboration.d.ts +15 -0
- package/dist/tools/collaboration.d.ts.map +1 -0
- package/dist/tools/collaboration.js +516 -0
- package/dist/tools/collaboration.js.map +1 -0
- package/dist/tools/comparison.d.ts +13 -0
- package/dist/tools/comparison.d.ts.map +1 -0
- package/dist/tools/comparison.js +735 -0
- package/dist/tools/comparison.js.map +1 -0
- package/dist/tools/compliance.d.ts +15 -0
- package/dist/tools/compliance.d.ts.map +1 -0
- package/dist/tools/compliance.js +640 -0
- package/dist/tools/compliance.js.map +1 -0
- package/dist/tools/config.d.ts +19 -0
- package/dist/tools/config.d.ts.map +1 -0
- package/dist/tools/config.js +213 -0
- package/dist/tools/config.js.map +1 -0
- package/dist/tools/database.d.ts +62 -0
- package/dist/tools/database.d.ts.map +1 -0
- package/dist/tools/database.js +288 -0
- package/dist/tools/database.js.map +1 -0
- package/dist/tools/documents.d.ts +61 -0
- package/dist/tools/documents.d.ts.map +1 -0
- package/dist/tools/documents.js +1624 -0
- package/dist/tools/documents.js.map +1 -0
- package/dist/tools/embeddings.d.ts +14 -0
- package/dist/tools/embeddings.d.ts.map +1 -0
- package/dist/tools/embeddings.js +626 -0
- package/dist/tools/embeddings.js.map +1 -0
- package/dist/tools/evaluation.d.ts +25 -0
- package/dist/tools/evaluation.d.ts.map +1 -0
- package/dist/tools/evaluation.js +523 -0
- package/dist/tools/evaluation.js.map +1 -0
- package/dist/tools/events.d.ts +16 -0
- package/dist/tools/events.d.ts.map +1 -0
- package/dist/tools/events.js +493 -0
- package/dist/tools/events.js.map +1 -0
- package/dist/tools/extraction-structured.d.ts +13 -0
- package/dist/tools/extraction-structured.d.ts.map +1 -0
- package/dist/tools/extraction-structured.js +390 -0
- package/dist/tools/extraction-structured.js.map +1 -0
- package/dist/tools/extraction.d.ts +24 -0
- package/dist/tools/extraction.d.ts.map +1 -0
- package/dist/tools/extraction.js +424 -0
- package/dist/tools/extraction.js.map +1 -0
- package/dist/tools/file-management.d.ts +14 -0
- package/dist/tools/file-management.d.ts.map +1 -0
- package/dist/tools/file-management.js +523 -0
- package/dist/tools/file-management.js.map +1 -0
- package/dist/tools/form-fill.d.ts +13 -0
- package/dist/tools/form-fill.d.ts.map +1 -0
- package/dist/tools/form-fill.js +250 -0
- package/dist/tools/form-fill.js.map +1 -0
- package/dist/tools/health.d.ts +19 -0
- package/dist/tools/health.d.ts.map +1 -0
- package/dist/tools/health.js +229 -0
- package/dist/tools/health.js.map +1 -0
- package/dist/tools/images.d.ts +54 -0
- package/dist/tools/images.d.ts.map +1 -0
- package/dist/tools/images.js +787 -0
- package/dist/tools/images.js.map +1 -0
- package/dist/tools/ingestion.d.ts +94 -0
- package/dist/tools/ingestion.d.ts.map +1 -0
- package/dist/tools/ingestion.js +1659 -0
- package/dist/tools/ingestion.js.map +1 -0
- package/dist/tools/intelligence.d.ts +18 -0
- package/dist/tools/intelligence.d.ts.map +1 -0
- package/dist/tools/intelligence.js +1039 -0
- package/dist/tools/intelligence.js.map +1 -0
- package/dist/tools/provenance.d.ts +51 -0
- package/dist/tools/provenance.d.ts.map +1 -0
- package/dist/tools/provenance.js +691 -0
- package/dist/tools/provenance.js.map +1 -0
- package/dist/tools/reports.d.ts +41 -0
- package/dist/tools/reports.d.ts.map +1 -0
- package/dist/tools/reports.js +1394 -0
- package/dist/tools/reports.js.map +1 -0
- package/dist/tools/search.d.ts +35 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +2528 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/shared.d.ts +52 -0
- package/dist/tools/shared.d.ts.map +1 -0
- package/dist/tools/shared.js +54 -0
- package/dist/tools/shared.js.map +1 -0
- package/dist/tools/tags.d.ts +15 -0
- package/dist/tools/tags.d.ts.map +1 -0
- package/dist/tools/tags.js +287 -0
- package/dist/tools/tags.js.map +1 -0
- package/dist/tools/timeline.d.ts +15 -0
- package/dist/tools/timeline.d.ts.map +1 -0
- package/dist/tools/timeline.js +14 -0
- package/dist/tools/timeline.js.map +1 -0
- package/dist/tools/users.d.ts +14 -0
- package/dist/tools/users.d.ts.map +1 -0
- package/dist/tools/users.js +257 -0
- package/dist/tools/users.js.map +1 -0
- package/dist/tools/vlm.d.ts +40 -0
- package/dist/tools/vlm.d.ts.map +1 -0
- package/dist/tools/vlm.js +475 -0
- package/dist/tools/vlm.js.map +1 -0
- package/dist/tools/workflow.d.ts +16 -0
- package/dist/tools/workflow.d.ts.map +1 -0
- package/dist/tools/workflow.js +495 -0
- package/dist/tools/workflow.js.map +1 -0
- package/dist/utils/backoff.d.ts +53 -0
- package/dist/utils/backoff.d.ts.map +1 -0
- package/dist/utils/backoff.js +78 -0
- package/dist/utils/backoff.js.map +1 -0
- package/dist/utils/config-persistence.d.ts +33 -0
- package/dist/utils/config-persistence.d.ts.map +1 -0
- package/dist/utils/config-persistence.js +61 -0
- package/dist/utils/config-persistence.js.map +1 -0
- package/dist/utils/hash.d.ts +65 -0
- package/dist/utils/hash.d.ts.map +1 -0
- package/dist/utils/hash.js +146 -0
- package/dist/utils/hash.js.map +1 -0
- package/dist/utils/math.d.ts +21 -0
- package/dist/utils/math.d.ts.map +1 -0
- package/dist/utils/math.js +39 -0
- package/dist/utils/math.js.map +1 -0
- package/dist/utils/validation.d.ts +697 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +529 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +96 -0
- package/python/.gitkeep +0 -0
- package/python/__init__.py +104 -0
- package/python/clustering_worker.py +440 -0
- package/python/docx_image_extractor.py +524 -0
- package/python/embedding_worker.py +552 -0
- package/python/file_manager_worker.py +564 -0
- package/python/form_fill_worker.py +399 -0
- package/python/gpu_utils.py +582 -0
- package/python/image_extractor.py +317 -0
- package/python/image_optimizer.py +444 -0
- package/python/ocr_worker.py +712 -0
- package/python/pyproject.toml +76 -0
- package/python/requirements.txt +51 -0
- package/python/reranker_worker.py +87 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gemini API Configuration
|
|
3
|
+
* Based on gemini-flash-3-dev-guide.md patterns
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
// Model IDs - gemini-3-flash-preview is the required model for ALL Gemini tasks.
|
|
7
|
+
// NEVER use gemini-2.0-flash or gemini-2.5-flash — constitution mandates gemini-3-flash only.
|
|
8
|
+
export const GEMINI_MODELS = {
|
|
9
|
+
FLASH_3: 'gemini-3-flash-preview', // Required: 1M input, 65K output, thinking mode
|
|
10
|
+
};
|
|
11
|
+
// Fixed rate limits for Gemini Flash API
|
|
12
|
+
export const GEMINI_RATE_LIMIT = {
|
|
13
|
+
RPM: 1_000,
|
|
14
|
+
TPM: 4_000_000,
|
|
15
|
+
};
|
|
16
|
+
// Allowed MIME types for FileRef
|
|
17
|
+
export const ALLOWED_MIME_TYPES = [
|
|
18
|
+
'image/jpeg',
|
|
19
|
+
'image/png',
|
|
20
|
+
'image/webp',
|
|
21
|
+
'image/gif',
|
|
22
|
+
'application/pdf',
|
|
23
|
+
];
|
|
24
|
+
// Max file size: 20MB
|
|
25
|
+
export const MAX_FILE_SIZE = 20 * 1024 * 1024;
|
|
26
|
+
// Configuration schema
|
|
27
|
+
export const GeminiConfigSchema = z.object({
|
|
28
|
+
apiKey: z.string().min(1, 'GEMINI_API_KEY is required'),
|
|
29
|
+
model: z.string().default(GEMINI_MODELS.FLASH_3),
|
|
30
|
+
// Generation defaults
|
|
31
|
+
maxOutputTokens: z.number().default(8192),
|
|
32
|
+
temperature: z.number().min(0).max(2).default(0.0),
|
|
33
|
+
mediaResolution: z
|
|
34
|
+
.enum(['MEDIA_RESOLUTION_HIGH', 'MEDIA_RESOLUTION_LOW'])
|
|
35
|
+
.default('MEDIA_RESOLUTION_HIGH'),
|
|
36
|
+
// Retry configuration (from guide: 3 retries, 500ms base)
|
|
37
|
+
retry: z
|
|
38
|
+
.object({
|
|
39
|
+
maxAttempts: z.number().default(3),
|
|
40
|
+
baseDelayMs: z.number().default(500),
|
|
41
|
+
maxDelayMs: z.number().default(10000),
|
|
42
|
+
})
|
|
43
|
+
.default({}),
|
|
44
|
+
// Circuit breaker (from guide: 5 failures, 60s recovery)
|
|
45
|
+
circuitBreaker: z
|
|
46
|
+
.object({
|
|
47
|
+
failureThreshold: z.number().default(5),
|
|
48
|
+
recoveryTimeMs: z.number().default(60000),
|
|
49
|
+
})
|
|
50
|
+
.default({}),
|
|
51
|
+
});
|
|
52
|
+
/**
|
|
53
|
+
* Parse and validate a numeric environment variable.
|
|
54
|
+
* Throws with a clear message if the value is not a valid integer.
|
|
55
|
+
*/
|
|
56
|
+
function parseIntEnv(name, fallback) {
|
|
57
|
+
const raw = process.env[name];
|
|
58
|
+
if (raw === undefined || raw === '')
|
|
59
|
+
return fallback;
|
|
60
|
+
const parsed = parseInt(raw, 10);
|
|
61
|
+
if (Number.isNaN(parsed)) {
|
|
62
|
+
throw new Error(`Invalid numeric env var ${name}: "${raw}"`);
|
|
63
|
+
}
|
|
64
|
+
return parsed;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Load configuration from environment variables.
|
|
68
|
+
*
|
|
69
|
+
* Checks for GEMINI_API_KEY before Zod validation to provide a clear,
|
|
70
|
+
* actionable error message instead of a cryptic Zod validation failure.
|
|
71
|
+
*/
|
|
72
|
+
export function loadGeminiConfig(overrides) {
|
|
73
|
+
const apiKey = overrides?.apiKey ?? process.env.GEMINI_API_KEY;
|
|
74
|
+
if (!apiKey || apiKey.trim().length === 0) {
|
|
75
|
+
throw new Error('GEMINI_API_KEY environment variable is not set. ' +
|
|
76
|
+
'Set it in .env or environment to use Gemini VLM features (image analysis, PDF analysis, evaluation).');
|
|
77
|
+
}
|
|
78
|
+
const envConfig = {
|
|
79
|
+
apiKey,
|
|
80
|
+
model: process.env.GEMINI_MODEL || GEMINI_MODELS.FLASH_3,
|
|
81
|
+
maxOutputTokens: parseIntEnv('GEMINI_MAX_OUTPUT_TOKENS', 8192),
|
|
82
|
+
temperature: process.env.GEMINI_TEMPERATURE ? parseFloat(process.env.GEMINI_TEMPERATURE) : 0.0,
|
|
83
|
+
mediaResolution: process.env.GEMINI_MEDIA_RESOLUTION || 'MEDIA_RESOLUTION_HIGH',
|
|
84
|
+
};
|
|
85
|
+
return GeminiConfigSchema.parse({ ...envConfig, ...overrides });
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Generation config presets from the guide
|
|
89
|
+
*/
|
|
90
|
+
export const GENERATION_PRESETS = {
|
|
91
|
+
// Fast mode: <2s target, temperature 0.0, JSON output
|
|
92
|
+
// Gemini 3 Flash defaults to HIGH thinking - must set MINIMAL when using JSON mode
|
|
93
|
+
fast: {
|
|
94
|
+
temperature: 0.0,
|
|
95
|
+
maxOutputTokens: 8192,
|
|
96
|
+
responseMimeType: 'application/json',
|
|
97
|
+
thinkingConfig: { thinkingLevel: 'MINIMAL' },
|
|
98
|
+
},
|
|
99
|
+
// Thinking mode: <8s target, extended reasoning
|
|
100
|
+
thinking: (level = 'HIGH') => ({
|
|
101
|
+
temperature: 0.0,
|
|
102
|
+
maxOutputTokens: 16384,
|
|
103
|
+
thinkingConfig: { thinkingLevel: level },
|
|
104
|
+
}),
|
|
105
|
+
// Multimodal mode: 5-15s target
|
|
106
|
+
// Gemini 3 Flash defaults to HIGH thinking which is incompatible with
|
|
107
|
+
// responseMimeType: 'application/json', causing intermittent empty responses.
|
|
108
|
+
// Explicitly set MINIMAL thinking to prevent this known API issue.
|
|
109
|
+
multimodal: {
|
|
110
|
+
temperature: 0.3,
|
|
111
|
+
maxOutputTokens: 8192,
|
|
112
|
+
responseMimeType: 'application/json',
|
|
113
|
+
thinkingConfig: { thinkingLevel: 'MINIMAL' },
|
|
114
|
+
},
|
|
115
|
+
// Fast mode also needs MINIMAL thinking to avoid empty JSON responses
|
|
116
|
+
// from Gemini 3 Flash's default HIGH thinking conflicting with JSON output.
|
|
117
|
+
};
|
|
118
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/services/gemini/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gemini API Service
|
|
3
|
+
* Exports client and configuration for Gemini API integration
|
|
4
|
+
*/
|
|
5
|
+
export { GeminiClient, getSharedClient, resetSharedClient, type GeminiResponse, type FileRef, CircuitBreakerOpenError, } from './client.js';
|
|
6
|
+
export { type GeminiConfig, loadGeminiConfig, GEMINI_MODELS, GEMINI_RATE_LIMIT, GENERATION_PRESETS, ALLOWED_MIME_TYPES, MAX_FILE_SIZE, type ThinkingLevel, } from './config.js';
|
|
7
|
+
export { GeminiRateLimiter, estimateTokens } from './rate-limiter.js';
|
|
8
|
+
export { CircuitBreaker } from './circuit-breaker.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/gemini/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,OAAO,EACZ,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,KAAK,YAAY,EACjB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGtE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gemini API Service
|
|
3
|
+
* Exports client and configuration for Gemini API integration
|
|
4
|
+
*/
|
|
5
|
+
// Client
|
|
6
|
+
export { GeminiClient, getSharedClient, resetSharedClient, CircuitBreakerOpenError, } from './client.js';
|
|
7
|
+
// Configuration
|
|
8
|
+
export { loadGeminiConfig, GEMINI_MODELS, GEMINI_RATE_LIMIT, GENERATION_PRESETS, ALLOWED_MIME_TYPES, MAX_FILE_SIZE, } from './config.js';
|
|
9
|
+
// Rate Limiter
|
|
10
|
+
export { GeminiRateLimiter, estimateTokens } from './rate-limiter.js';
|
|
11
|
+
// Circuit Breaker
|
|
12
|
+
export { CircuitBreaker } from './circuit-breaker.js';
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/gemini/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,SAAS;AACT,OAAO,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,EAGjB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,gBAAgB;AAChB,OAAO,EAEL,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,GAEd,MAAM,aAAa,CAAC;AAErB,eAAe;AACf,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtE,kBAAkB;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rate Limiter for Gemini API
|
|
3
|
+
* Implements RPM (requests per minute) and TPM (tokens per minute) limits
|
|
4
|
+
*/
|
|
5
|
+
export interface RateLimiterStatus {
|
|
6
|
+
requestsRemaining: number;
|
|
7
|
+
tokensRemaining: number;
|
|
8
|
+
resetInMs: number;
|
|
9
|
+
}
|
|
10
|
+
export declare class GeminiRateLimiter {
|
|
11
|
+
private requestCount;
|
|
12
|
+
private tokenCount;
|
|
13
|
+
private windowStart;
|
|
14
|
+
private readonly windowMs;
|
|
15
|
+
private readonly maxRPM;
|
|
16
|
+
private readonly maxTPM;
|
|
17
|
+
/**
|
|
18
|
+
* Mutex queue to serialize acquire() calls.
|
|
19
|
+
* Prevents race conditions where multiple concurrent callers
|
|
20
|
+
* all pass the rate limit check before any increment the count.
|
|
21
|
+
*/
|
|
22
|
+
private _acquireQueue;
|
|
23
|
+
/**
|
|
24
|
+
* Check if we need to reset the window
|
|
25
|
+
*/
|
|
26
|
+
private checkWindow;
|
|
27
|
+
/**
|
|
28
|
+
* Acquire permission to make a request.
|
|
29
|
+
* Serialized via promise queue to prevent race conditions:
|
|
30
|
+
* each caller waits for the previous acquire() to complete
|
|
31
|
+
* before checking and incrementing the counters.
|
|
32
|
+
*/
|
|
33
|
+
acquire(estimatedTokens?: number): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Internal acquire logic - must only be called from the serialized queue.
|
|
36
|
+
*/
|
|
37
|
+
private _doAcquire;
|
|
38
|
+
/**
|
|
39
|
+
* Record actual token usage after a request completes
|
|
40
|
+
* Adjusts the count if estimate was wrong
|
|
41
|
+
*/
|
|
42
|
+
recordUsage(estimatedTokens: number, actualTokens: number): void;
|
|
43
|
+
/**
|
|
44
|
+
* Get current rate limiter status
|
|
45
|
+
*/
|
|
46
|
+
getStatus(): RateLimiterStatus;
|
|
47
|
+
/**
|
|
48
|
+
* Check if currently rate limited
|
|
49
|
+
*/
|
|
50
|
+
isLimited(): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Reset the rate limiter (for testing)
|
|
53
|
+
*/
|
|
54
|
+
reset(): void;
|
|
55
|
+
private sleep;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Estimate tokens for a request
|
|
59
|
+
* Rough estimate: ~4 characters per token for text, 280 tokens per image (HIGH res)
|
|
60
|
+
*/
|
|
61
|
+
export declare function estimateTokens(textLength: number, imageCount?: number, highResolution?: boolean): number;
|
|
62
|
+
//# sourceMappingURL=rate-limiter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../../src/services/gemini/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAE1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IACxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IAExD;;;;OAIG;IACH,OAAO,CAAC,aAAa,CAAoC;IAEzD;;OAEG;IACH,OAAO,CAAC,WAAW;IASnB;;;;;OAKG;IACG,OAAO,CAAC,eAAe,GAAE,MAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB5D;;OAEG;YACW,UAAU;IAqBxB;;;OAGG;IACH,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAKhE;;OAEG;IACH,SAAS,IAAI,iBAAiB;IAS9B;;OAEG;IACH,SAAS,IAAI,OAAO;IAKpB;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,KAAK;CAGd;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,UAAU,GAAE,MAAU,EACtB,cAAc,GAAE,OAAc,GAC7B,MAAM,CAIR"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rate Limiter for Gemini API
|
|
3
|
+
* Implements RPM (requests per minute) and TPM (tokens per minute) limits
|
|
4
|
+
*/
|
|
5
|
+
import { GEMINI_RATE_LIMIT } from './config.js';
|
|
6
|
+
export class GeminiRateLimiter {
|
|
7
|
+
requestCount = 0;
|
|
8
|
+
tokenCount = 0;
|
|
9
|
+
windowStart = Date.now();
|
|
10
|
+
windowMs = 60000; // 1 minute window
|
|
11
|
+
maxRPM = GEMINI_RATE_LIMIT.RPM;
|
|
12
|
+
maxTPM = GEMINI_RATE_LIMIT.TPM;
|
|
13
|
+
/**
|
|
14
|
+
* Mutex queue to serialize acquire() calls.
|
|
15
|
+
* Prevents race conditions where multiple concurrent callers
|
|
16
|
+
* all pass the rate limit check before any increment the count.
|
|
17
|
+
*/
|
|
18
|
+
_acquireQueue = Promise.resolve();
|
|
19
|
+
/**
|
|
20
|
+
* Check if we need to reset the window
|
|
21
|
+
*/
|
|
22
|
+
checkWindow() {
|
|
23
|
+
const now = Date.now();
|
|
24
|
+
if (now - this.windowStart >= this.windowMs) {
|
|
25
|
+
this.requestCount = 0;
|
|
26
|
+
this.tokenCount = 0;
|
|
27
|
+
this.windowStart = now;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Acquire permission to make a request.
|
|
32
|
+
* Serialized via promise queue to prevent race conditions:
|
|
33
|
+
* each caller waits for the previous acquire() to complete
|
|
34
|
+
* before checking and incrementing the counters.
|
|
35
|
+
*/
|
|
36
|
+
async acquire(estimatedTokens = 1000) {
|
|
37
|
+
// Chain this acquire onto the queue so callers are serialized.
|
|
38
|
+
// Each caller awaits the previous one before executing _doAcquire.
|
|
39
|
+
const prev = this._acquireQueue;
|
|
40
|
+
let resolve;
|
|
41
|
+
this._acquireQueue = new Promise((r) => {
|
|
42
|
+
resolve = r;
|
|
43
|
+
});
|
|
44
|
+
try {
|
|
45
|
+
await prev;
|
|
46
|
+
await this._doAcquire(estimatedTokens);
|
|
47
|
+
}
|
|
48
|
+
finally {
|
|
49
|
+
resolve();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Internal acquire logic - must only be called from the serialized queue.
|
|
54
|
+
*/
|
|
55
|
+
async _doAcquire(estimatedTokens) {
|
|
56
|
+
this.checkWindow();
|
|
57
|
+
// Check if we would exceed limits
|
|
58
|
+
if (this.requestCount >= this.maxRPM || this.tokenCount + estimatedTokens > this.maxTPM) {
|
|
59
|
+
const waitTime = this.windowMs - (Date.now() - this.windowStart);
|
|
60
|
+
if (waitTime > 0) {
|
|
61
|
+
console.error(`[RateLimiter] Rate limit reached, waiting ${waitTime}ms`);
|
|
62
|
+
await this.sleep(waitTime);
|
|
63
|
+
// Reset after waiting
|
|
64
|
+
this.requestCount = 0;
|
|
65
|
+
this.tokenCount = 0;
|
|
66
|
+
this.windowStart = Date.now();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Reserve the request and tokens
|
|
70
|
+
this.requestCount++;
|
|
71
|
+
this.tokenCount += estimatedTokens;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Record actual token usage after a request completes
|
|
75
|
+
* Adjusts the count if estimate was wrong
|
|
76
|
+
*/
|
|
77
|
+
recordUsage(estimatedTokens, actualTokens) {
|
|
78
|
+
const diff = actualTokens - estimatedTokens;
|
|
79
|
+
this.tokenCount = Math.max(0, this.tokenCount + diff);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Get current rate limiter status
|
|
83
|
+
*/
|
|
84
|
+
getStatus() {
|
|
85
|
+
this.checkWindow();
|
|
86
|
+
return {
|
|
87
|
+
requestsRemaining: Math.max(0, this.maxRPM - this.requestCount),
|
|
88
|
+
tokensRemaining: Math.max(0, this.maxTPM - this.tokenCount),
|
|
89
|
+
resetInMs: Math.max(0, this.windowMs - (Date.now() - this.windowStart)),
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Check if currently rate limited
|
|
94
|
+
*/
|
|
95
|
+
isLimited() {
|
|
96
|
+
this.checkWindow();
|
|
97
|
+
return this.requestCount >= this.maxRPM;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Reset the rate limiter (for testing)
|
|
101
|
+
*/
|
|
102
|
+
reset() {
|
|
103
|
+
this.requestCount = 0;
|
|
104
|
+
this.tokenCount = 0;
|
|
105
|
+
this.windowStart = Date.now();
|
|
106
|
+
}
|
|
107
|
+
sleep(ms) {
|
|
108
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Estimate tokens for a request
|
|
113
|
+
* Rough estimate: ~4 characters per token for text, 280 tokens per image (HIGH res)
|
|
114
|
+
*/
|
|
115
|
+
export function estimateTokens(textLength, imageCount = 0, highResolution = true) {
|
|
116
|
+
const textTokens = Math.ceil(textLength / 4);
|
|
117
|
+
const imageTokens = imageCount * (highResolution ? 280 : 70);
|
|
118
|
+
return textTokens + imageTokens;
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=rate-limiter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../../src/services/gemini/rate-limiter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Image Extractor Service
|
|
3
|
+
*
|
|
4
|
+
* TypeScript wrapper for Python image extraction scripts.
|
|
5
|
+
* Extracts images from PDF and DOCX documents for VLM analysis.
|
|
6
|
+
*/
|
|
7
|
+
import { ExtractedImage, ImageExtractionOptions } from '../../models/image.js';
|
|
8
|
+
/**
|
|
9
|
+
* Result from image extraction
|
|
10
|
+
*/
|
|
11
|
+
export interface ExtractionResult {
|
|
12
|
+
success: boolean;
|
|
13
|
+
count: number;
|
|
14
|
+
images: ExtractedImage[];
|
|
15
|
+
warnings?: string[];
|
|
16
|
+
error?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Configuration for the image extractor
|
|
20
|
+
*/
|
|
21
|
+
export interface ExtractorConfig {
|
|
22
|
+
/** Path to Python executable */
|
|
23
|
+
pythonPath: string;
|
|
24
|
+
/** Path to the extraction script (defaults to python/image_extractor.py) */
|
|
25
|
+
scriptPath?: string;
|
|
26
|
+
/** Timeout in milliseconds (default: 120000 = 2 minutes) */
|
|
27
|
+
timeout?: number;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Service for extracting images from PDF documents
|
|
31
|
+
*/
|
|
32
|
+
export declare class ImageExtractor {
|
|
33
|
+
private readonly config;
|
|
34
|
+
private readonly pdfScriptPath;
|
|
35
|
+
private readonly docxScriptPath;
|
|
36
|
+
constructor(config?: Partial<ExtractorConfig>);
|
|
37
|
+
/**
|
|
38
|
+
* Extract images from any supported document type.
|
|
39
|
+
* Routes to the correct extractor based on file extension.
|
|
40
|
+
*
|
|
41
|
+
* @param filePath - Path to the document file
|
|
42
|
+
* @param options - Extraction options
|
|
43
|
+
* @returns Promise<ExtractedImage[]> - Array of extracted images
|
|
44
|
+
* @throws Error if file type is unsupported or extraction fails
|
|
45
|
+
*/
|
|
46
|
+
extractImages(filePath: string, options: ImageExtractionOptions): Promise<ExtractedImage[]>;
|
|
47
|
+
/**
|
|
48
|
+
* Check if a file type is supported for image extraction.
|
|
49
|
+
*/
|
|
50
|
+
static isSupported(filePath: string): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Extract images from a PDF document
|
|
53
|
+
*
|
|
54
|
+
* @param pdfPath - Path to the PDF file
|
|
55
|
+
* @param options - Extraction options
|
|
56
|
+
* @returns Promise<ExtractedImage[]> - Array of extracted images
|
|
57
|
+
* @throws Error if extraction fails
|
|
58
|
+
*/
|
|
59
|
+
extractFromPDF(pdfPath: string, options: ImageExtractionOptions): Promise<ExtractedImage[]>;
|
|
60
|
+
/**
|
|
61
|
+
* Extract images from a DOCX document
|
|
62
|
+
*
|
|
63
|
+
* @param docxPath - Path to the DOCX file
|
|
64
|
+
* @param options - Extraction options
|
|
65
|
+
* @returns Promise<ExtractedImage[]> - Array of extracted images
|
|
66
|
+
* @throws Error if extraction fails
|
|
67
|
+
*/
|
|
68
|
+
extractFromDOCX(docxPath: string, options: ImageExtractionOptions): Promise<ExtractedImage[]>;
|
|
69
|
+
/**
|
|
70
|
+
* Check if the Python environment is properly configured
|
|
71
|
+
*
|
|
72
|
+
* @returns Promise<boolean> - True if Python and dependencies are available
|
|
73
|
+
*/
|
|
74
|
+
checkEnvironment(): Promise<{
|
|
75
|
+
available: boolean;
|
|
76
|
+
pythonVersion?: string;
|
|
77
|
+
missingDependencies: string[];
|
|
78
|
+
}>;
|
|
79
|
+
/**
|
|
80
|
+
* Run a Python extraction script (works for both PDF and DOCX extractors)
|
|
81
|
+
*/
|
|
82
|
+
private runPythonExtractorScript;
|
|
83
|
+
/**
|
|
84
|
+
* Run a simple command and return output
|
|
85
|
+
*/
|
|
86
|
+
private runCommand;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=extractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../../src/services/images/extractor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAI/E;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAaD;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAE5B,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM;IAOjD;;;;;;;;OAQG;IACG,aAAa,CACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,cAAc,EAAE,CAAC;IAgB5B;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI7C;;;;;;;OAOG;IACG,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,cAAc,EAAE,CAAC;IAkC5B;;;;;;;OAOG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,cAAc,EAAE,CAAC;IA+B5B;;;;OAIG;IACG,gBAAgB,IAAI,OAAO,CAAC;QAChC,SAAS,EAAE,OAAO,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,mBAAmB,EAAE,MAAM,EAAE,CAAC;KAC/B,CAAC;IA+CF;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAwIhC;;OAEG;IACH,OAAO,CAAC,UAAU;CAqEnB"}
|