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