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,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool-Level Permission System
|
|
3
|
+
*
|
|
4
|
+
* 6 permission scopes, 4 roles.
|
|
5
|
+
* Each tool declares a required scope.
|
|
6
|
+
* Permission check runs before handler execution.
|
|
7
|
+
*
|
|
8
|
+
* FAIL FAST: Unauthorized access throws immediately.
|
|
9
|
+
*
|
|
10
|
+
* CRITICAL: NEVER use console.log() - stdout is reserved for JSON-RPC protocol.
|
|
11
|
+
*
|
|
12
|
+
* @module server/permissions
|
|
13
|
+
*/
|
|
14
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
15
|
+
// ROLE-SCOPE MAPPING
|
|
16
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
17
|
+
/** Role to scopes mapping */
|
|
18
|
+
const ROLE_SCOPES = {
|
|
19
|
+
viewer: new Set(['ocr:read']),
|
|
20
|
+
reviewer: new Set(['ocr:read', 'ocr:review']),
|
|
21
|
+
editor: new Set(['ocr:read', 'ocr:write', 'ocr:review']),
|
|
22
|
+
admin: new Set([
|
|
23
|
+
'ocr:read',
|
|
24
|
+
'ocr:write',
|
|
25
|
+
'ocr:review',
|
|
26
|
+
'ocr:configure',
|
|
27
|
+
'ocr:delete',
|
|
28
|
+
'ocr:admin',
|
|
29
|
+
]),
|
|
30
|
+
};
|
|
31
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
32
|
+
// PERMISSION CHECKS
|
|
33
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
34
|
+
/** Check if a role has a specific permission scope */
|
|
35
|
+
export function hasPermission(role, scope) {
|
|
36
|
+
return ROLE_SCOPES[role]?.has(scope) ?? false;
|
|
37
|
+
}
|
|
38
|
+
/** Get all scopes for a role */
|
|
39
|
+
export function getScopesForRole(role) {
|
|
40
|
+
return Array.from(ROLE_SCOPES[role] ?? []);
|
|
41
|
+
}
|
|
42
|
+
/** Validate that a role string is valid */
|
|
43
|
+
export function isValidRole(role) {
|
|
44
|
+
return role in ROLE_SCOPES;
|
|
45
|
+
}
|
|
46
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
47
|
+
// TOOL-SCOPE MAPPING
|
|
48
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
49
|
+
/** Tool name to required scope mapping */
|
|
50
|
+
export const TOOL_SCOPES = {
|
|
51
|
+
// ── Read tools ────────────────────────────────────────────────────────────
|
|
52
|
+
ocr_db_list: 'ocr:read',
|
|
53
|
+
ocr_db_stats: 'ocr:read',
|
|
54
|
+
ocr_search: 'ocr:read',
|
|
55
|
+
ocr_fts_manage: 'ocr:read',
|
|
56
|
+
ocr_search_export: 'ocr:read',
|
|
57
|
+
ocr_benchmark_compare: 'ocr:read',
|
|
58
|
+
ocr_rag_context: 'ocr:read',
|
|
59
|
+
ocr_search_saved: 'ocr:read',
|
|
60
|
+
ocr_search_cross_db: 'ocr:read',
|
|
61
|
+
ocr_document_list: 'ocr:read',
|
|
62
|
+
ocr_document_get: 'ocr:read',
|
|
63
|
+
ocr_document_find_similar: 'ocr:read',
|
|
64
|
+
ocr_document_structure: 'ocr:read',
|
|
65
|
+
ocr_document_duplicates: 'ocr:read',
|
|
66
|
+
ocr_document_versions: 'ocr:read',
|
|
67
|
+
ocr_document_page: 'ocr:read',
|
|
68
|
+
ocr_export: 'ocr:read',
|
|
69
|
+
ocr_provenance_get: 'ocr:read',
|
|
70
|
+
ocr_provenance_verify: 'ocr:read',
|
|
71
|
+
ocr_provenance_export: 'ocr:read',
|
|
72
|
+
ocr_provenance_query: 'ocr:read',
|
|
73
|
+
ocr_provenance_timeline: 'ocr:read',
|
|
74
|
+
ocr_provenance_processor_stats: 'ocr:read',
|
|
75
|
+
ocr_vlm_status: 'ocr:read',
|
|
76
|
+
ocr_image_list: 'ocr:read',
|
|
77
|
+
ocr_image_get: 'ocr:read',
|
|
78
|
+
ocr_image_stats: 'ocr:read',
|
|
79
|
+
ocr_image_pending: 'ocr:read',
|
|
80
|
+
ocr_image_search: 'ocr:read',
|
|
81
|
+
ocr_chunk_get: 'ocr:read',
|
|
82
|
+
ocr_chunk_list: 'ocr:read',
|
|
83
|
+
ocr_chunk_context: 'ocr:read',
|
|
84
|
+
ocr_embedding_list: 'ocr:read',
|
|
85
|
+
ocr_embedding_stats: 'ocr:read',
|
|
86
|
+
ocr_embedding_get: 'ocr:read',
|
|
87
|
+
ocr_tag_list: 'ocr:read',
|
|
88
|
+
ocr_tag_search: 'ocr:read',
|
|
89
|
+
ocr_document_tables: 'ocr:read',
|
|
90
|
+
ocr_document_recommend: 'ocr:read',
|
|
91
|
+
ocr_document_extras: 'ocr:read',
|
|
92
|
+
ocr_table_export: 'ocr:read',
|
|
93
|
+
ocr_config_get: 'ocr:read',
|
|
94
|
+
ocr_health_check: 'ocr:read',
|
|
95
|
+
ocr_guide: 'ocr:read',
|
|
96
|
+
ocr_report_overview: 'ocr:read',
|
|
97
|
+
ocr_report_performance: 'ocr:read',
|
|
98
|
+
ocr_document_report: 'ocr:read',
|
|
99
|
+
ocr_evaluation_report: 'ocr:read',
|
|
100
|
+
ocr_error_analytics: 'ocr:read',
|
|
101
|
+
ocr_trends: 'ocr:read',
|
|
102
|
+
ocr_cost_summary: 'ocr:read',
|
|
103
|
+
ocr_status: 'ocr:read',
|
|
104
|
+
ocr_comparison_list: 'ocr:read',
|
|
105
|
+
ocr_comparison_get: 'ocr:read',
|
|
106
|
+
ocr_cluster_list: 'ocr:read',
|
|
107
|
+
ocr_cluster_get: 'ocr:read',
|
|
108
|
+
ocr_extraction_list: 'ocr:read',
|
|
109
|
+
ocr_extraction_get: 'ocr:read',
|
|
110
|
+
ocr_file_list: 'ocr:read',
|
|
111
|
+
ocr_file_get: 'ocr:read',
|
|
112
|
+
ocr_form_fill_status: 'ocr:read',
|
|
113
|
+
// ── Write tools ───────────────────────────────────────────────────────────
|
|
114
|
+
ocr_db_create: 'ocr:write',
|
|
115
|
+
ocr_db_select: 'ocr:write',
|
|
116
|
+
ocr_ingest_files: 'ocr:write',
|
|
117
|
+
ocr_ingest_directory: 'ocr:write',
|
|
118
|
+
ocr_process_pending: 'ocr:write',
|
|
119
|
+
ocr_reprocess: 'ocr:write',
|
|
120
|
+
ocr_retry_failed: 'ocr:write',
|
|
121
|
+
ocr_convert_raw: 'ocr:write',
|
|
122
|
+
ocr_embedding_rebuild: 'ocr:write',
|
|
123
|
+
ocr_vlm_describe: 'ocr:write',
|
|
124
|
+
ocr_vlm_process: 'ocr:write',
|
|
125
|
+
ocr_vlm_analyze_pdf: 'ocr:write',
|
|
126
|
+
ocr_extract_images: 'ocr:write',
|
|
127
|
+
ocr_extract_structured: 'ocr:write',
|
|
128
|
+
ocr_form_fill: 'ocr:write',
|
|
129
|
+
ocr_file_upload: 'ocr:write',
|
|
130
|
+
ocr_file_download: 'ocr:write',
|
|
131
|
+
ocr_file_ingest_uploaded: 'ocr:write',
|
|
132
|
+
ocr_document_compare: 'ocr:write',
|
|
133
|
+
ocr_comparison_discover: 'ocr:write',
|
|
134
|
+
ocr_comparison_batch: 'ocr:write',
|
|
135
|
+
ocr_comparison_matrix: 'ocr:write',
|
|
136
|
+
ocr_cluster_documents: 'ocr:write',
|
|
137
|
+
ocr_cluster_assign: 'ocr:write',
|
|
138
|
+
ocr_cluster_merge: 'ocr:write',
|
|
139
|
+
ocr_cluster_reassign: 'ocr:write',
|
|
140
|
+
ocr_tag_create: 'ocr:write',
|
|
141
|
+
ocr_tag_apply: 'ocr:write',
|
|
142
|
+
ocr_tag_remove: 'ocr:write',
|
|
143
|
+
ocr_document_update_metadata: 'ocr:write',
|
|
144
|
+
ocr_image_reanalyze: 'ocr:write',
|
|
145
|
+
ocr_image_reset_failed: 'ocr:write',
|
|
146
|
+
ocr_evaluate: 'ocr:write',
|
|
147
|
+
// ── Review tools (future Phase 2/3) ───────────────────────────────────────
|
|
148
|
+
ocr_document_workflow: 'ocr:review',
|
|
149
|
+
ocr_annotation_create: 'ocr:review',
|
|
150
|
+
ocr_annotation_update: 'ocr:review',
|
|
151
|
+
ocr_annotation_list: 'ocr:read',
|
|
152
|
+
ocr_annotation_get: 'ocr:read',
|
|
153
|
+
ocr_annotation_summary: 'ocr:read',
|
|
154
|
+
ocr_workflow_submit: 'ocr:review',
|
|
155
|
+
ocr_workflow_review: 'ocr:review',
|
|
156
|
+
ocr_workflow_assign: 'ocr:review',
|
|
157
|
+
ocr_workflow_status: 'ocr:read',
|
|
158
|
+
ocr_workflow_queue: 'ocr:read',
|
|
159
|
+
// ── Configure tools ───────────────────────────────────────────────────────
|
|
160
|
+
ocr_config_set: 'ocr:configure',
|
|
161
|
+
// ── Delete tools ──────────────────────────────────────────────────────────
|
|
162
|
+
ocr_document_delete: 'ocr:delete',
|
|
163
|
+
ocr_db_delete: 'ocr:delete',
|
|
164
|
+
ocr_tag_delete: 'ocr:delete',
|
|
165
|
+
ocr_cluster_delete: 'ocr:delete',
|
|
166
|
+
ocr_image_delete: 'ocr:delete',
|
|
167
|
+
ocr_file_delete: 'ocr:delete',
|
|
168
|
+
ocr_annotation_delete: 'ocr:delete',
|
|
169
|
+
ocr_document_unlock: 'ocr:delete',
|
|
170
|
+
// ── Admin tools ───────────────────────────────────────────────────────────
|
|
171
|
+
ocr_user_info: 'ocr:admin',
|
|
172
|
+
ocr_audit_query: 'ocr:admin',
|
|
173
|
+
ocr_webhook_create: 'ocr:admin',
|
|
174
|
+
ocr_webhook_list: 'ocr:admin',
|
|
175
|
+
ocr_webhook_delete: 'ocr:admin',
|
|
176
|
+
ocr_compliance_report: 'ocr:admin',
|
|
177
|
+
ocr_compliance_hipaa: 'ocr:admin',
|
|
178
|
+
ocr_compliance_export: 'ocr:admin',
|
|
179
|
+
};
|
|
180
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
181
|
+
// PERMISSION CHECK
|
|
182
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
183
|
+
/** Check permission - returns true if allowed, false if denied. Admin always passes. */
|
|
184
|
+
export function checkToolPermission(toolName, userRole) {
|
|
185
|
+
// No user context = local mode = full access
|
|
186
|
+
if (userRole === null)
|
|
187
|
+
return true;
|
|
188
|
+
const requiredScope = TOOL_SCOPES[toolName];
|
|
189
|
+
// Tools not in the map are allowed (new tools default to accessible)
|
|
190
|
+
if (!requiredScope)
|
|
191
|
+
return true;
|
|
192
|
+
return hasPermission(userRole, requiredScope);
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=permissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/server/permissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Tool Registration
|
|
3
|
+
*
|
|
4
|
+
* Registers all MCP tools on a given McpServer instance.
|
|
5
|
+
* Used by both src/index.ts (stdio) and src/bin-http.ts (unified Docker entry).
|
|
6
|
+
*
|
|
7
|
+
* CRITICAL: NEVER use console.log() - stdout may be reserved for JSON-RPC protocol.
|
|
8
|
+
*
|
|
9
|
+
* @module server/register-tools
|
|
10
|
+
*/
|
|
11
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
12
|
+
/**
|
|
13
|
+
* Register all tools on the given MCP server instance.
|
|
14
|
+
*
|
|
15
|
+
* @param server - McpServer instance to register tools on
|
|
16
|
+
* @returns Number of tools registered
|
|
17
|
+
* @throws Exits process with code 1 if duplicate tool names are detected
|
|
18
|
+
*/
|
|
19
|
+
export declare function registerAllTools(server: McpServer): number;
|
|
20
|
+
/**
|
|
21
|
+
* Get total tool count without registering on a server instance.
|
|
22
|
+
* Used by HTTP mode health endpoint to avoid creating a throwaway McpServer.
|
|
23
|
+
*/
|
|
24
|
+
export declare function getToolCount(): number;
|
|
25
|
+
//# sourceMappingURL=register-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-tools.d.ts","sourceRoot":"","sources":["../../src/server/register-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA8DzE;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAmB1D;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAMrC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Tool Registration
|
|
3
|
+
*
|
|
4
|
+
* Registers all MCP tools on a given McpServer instance.
|
|
5
|
+
* Used by both src/index.ts (stdio) and src/bin-http.ts (unified Docker entry).
|
|
6
|
+
*
|
|
7
|
+
* CRITICAL: NEVER use console.log() - stdout may be reserved for JSON-RPC protocol.
|
|
8
|
+
*
|
|
9
|
+
* @module server/register-tools
|
|
10
|
+
*/
|
|
11
|
+
import { databaseTools } from '../tools/database.js';
|
|
12
|
+
import { ingestionTools } from '../tools/ingestion.js';
|
|
13
|
+
import { searchTools } from '../tools/search.js';
|
|
14
|
+
import { documentTools } from '../tools/documents.js';
|
|
15
|
+
import { provenanceTools } from '../tools/provenance.js';
|
|
16
|
+
import { configTools } from '../tools/config.js';
|
|
17
|
+
import { vlmTools } from '../tools/vlm.js';
|
|
18
|
+
import { imageTools } from '../tools/images.js';
|
|
19
|
+
import { evaluationTools } from '../tools/evaluation.js';
|
|
20
|
+
import { extractionTools } from '../tools/extraction.js';
|
|
21
|
+
import { reportTools } from '../tools/reports.js';
|
|
22
|
+
import { formFillTools } from '../tools/form-fill.js';
|
|
23
|
+
import { structuredExtractionTools } from '../tools/extraction-structured.js';
|
|
24
|
+
import { fileManagementTools } from '../tools/file-management.js';
|
|
25
|
+
import { comparisonTools } from '../tools/comparison.js';
|
|
26
|
+
import { clusteringTools } from '../tools/clustering.js';
|
|
27
|
+
import { chunkTools } from '../tools/chunks.js';
|
|
28
|
+
import { embeddingTools } from '../tools/embeddings.js';
|
|
29
|
+
import { tagTools } from '../tools/tags.js';
|
|
30
|
+
import { intelligenceTools } from '../tools/intelligence.js';
|
|
31
|
+
import { healthTools } from '../tools/health.js';
|
|
32
|
+
import { userTools } from '../tools/users.js';
|
|
33
|
+
import { collaborationTools } from '../tools/collaboration.js';
|
|
34
|
+
import { workflowTools } from '../tools/workflow.js';
|
|
35
|
+
import { eventTools } from '../tools/events.js';
|
|
36
|
+
import { clmTools } from '../tools/clm.js';
|
|
37
|
+
import { complianceTools } from '../tools/compliance.js';
|
|
38
|
+
/** All tool modules in registration order */
|
|
39
|
+
const allToolModules = [
|
|
40
|
+
databaseTools,
|
|
41
|
+
ingestionTools,
|
|
42
|
+
searchTools,
|
|
43
|
+
documentTools,
|
|
44
|
+
provenanceTools,
|
|
45
|
+
configTools,
|
|
46
|
+
vlmTools,
|
|
47
|
+
imageTools,
|
|
48
|
+
evaluationTools,
|
|
49
|
+
extractionTools,
|
|
50
|
+
reportTools,
|
|
51
|
+
formFillTools,
|
|
52
|
+
structuredExtractionTools,
|
|
53
|
+
fileManagementTools,
|
|
54
|
+
comparisonTools,
|
|
55
|
+
clusteringTools,
|
|
56
|
+
chunkTools,
|
|
57
|
+
embeddingTools,
|
|
58
|
+
tagTools,
|
|
59
|
+
intelligenceTools,
|
|
60
|
+
healthTools,
|
|
61
|
+
userTools,
|
|
62
|
+
collaborationTools,
|
|
63
|
+
workflowTools,
|
|
64
|
+
eventTools,
|
|
65
|
+
clmTools,
|
|
66
|
+
complianceTools,
|
|
67
|
+
];
|
|
68
|
+
/**
|
|
69
|
+
* Register all tools on the given MCP server instance.
|
|
70
|
+
*
|
|
71
|
+
* @param server - McpServer instance to register tools on
|
|
72
|
+
* @returns Number of tools registered
|
|
73
|
+
* @throws Exits process with code 1 if duplicate tool names are detected
|
|
74
|
+
*/
|
|
75
|
+
export function registerAllTools(server) {
|
|
76
|
+
const registeredToolNames = new Set();
|
|
77
|
+
let toolCount = 0;
|
|
78
|
+
for (const toolModule of allToolModules) {
|
|
79
|
+
for (const [name, tool] of Object.entries(toolModule)) {
|
|
80
|
+
if (registeredToolNames.has(name)) {
|
|
81
|
+
console.error(`[FATAL] Duplicate tool name detected: "${name}". Each tool must have a unique name.`);
|
|
82
|
+
process.exit(1);
|
|
83
|
+
}
|
|
84
|
+
registeredToolNames.add(name);
|
|
85
|
+
server.tool(name, tool.description, tool.inputSchema, tool.handler);
|
|
86
|
+
toolCount++;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return toolCount;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Get total tool count without registering on a server instance.
|
|
93
|
+
* Used by HTTP mode health endpoint to avoid creating a throwaway McpServer.
|
|
94
|
+
*/
|
|
95
|
+
export function getToolCount() {
|
|
96
|
+
let count = 0;
|
|
97
|
+
for (const toolModule of allToolModules) {
|
|
98
|
+
count += Object.keys(toolModule).length;
|
|
99
|
+
}
|
|
100
|
+
return count;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=register-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-tools.js","sourceRoot":"","sources":["../../src/server/register-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Startup Validation
|
|
3
|
+
*
|
|
4
|
+
* Validates startup dependencies and applies environment-driven config.
|
|
5
|
+
* Used by both src/index.ts (stdio) and src/bin-http.ts (unified Docker entry).
|
|
6
|
+
*
|
|
7
|
+
* CRITICAL: NEVER use console.log() - stdout may be reserved for JSON-RPC protocol.
|
|
8
|
+
*
|
|
9
|
+
* @module server/startup
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Validate startup dependencies and apply environment-driven config overrides.
|
|
13
|
+
* Warnings only: missing API keys prevent specific features, not the whole server.
|
|
14
|
+
*/
|
|
15
|
+
export declare function validateStartupDependencies(): void;
|
|
16
|
+
//# sourceMappingURL=startup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startup.d.ts","sourceRoot":"","sources":["../../src/server/startup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,IAAI,CA2BlD"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Startup Validation
|
|
3
|
+
*
|
|
4
|
+
* Validates startup dependencies and applies environment-driven config.
|
|
5
|
+
* Used by both src/index.ts (stdio) and src/bin-http.ts (unified Docker entry).
|
|
6
|
+
*
|
|
7
|
+
* CRITICAL: NEVER use console.log() - stdout may be reserved for JSON-RPC protocol.
|
|
8
|
+
*
|
|
9
|
+
* @module server/startup
|
|
10
|
+
*/
|
|
11
|
+
import { updateConfig } from './state.js';
|
|
12
|
+
/**
|
|
13
|
+
* Validate startup dependencies and apply environment-driven config overrides.
|
|
14
|
+
* Warnings only: missing API keys prevent specific features, not the whole server.
|
|
15
|
+
*/
|
|
16
|
+
export function validateStartupDependencies() {
|
|
17
|
+
const warnings = [];
|
|
18
|
+
if (!process.env.DATALAB_API_KEY) {
|
|
19
|
+
warnings.push('DATALAB_API_KEY is not set. OCR processing will fail. Get one at https://www.datalab.to');
|
|
20
|
+
}
|
|
21
|
+
if (!process.env.GEMINI_API_KEY) {
|
|
22
|
+
warnings.push('GEMINI_API_KEY is not set. VLM processing and evaluation will fail. Get one at https://aistudio.google.com/');
|
|
23
|
+
}
|
|
24
|
+
if (warnings.length > 0) {
|
|
25
|
+
console.error('=== STARTUP WARNINGS ===');
|
|
26
|
+
for (const w of warnings) {
|
|
27
|
+
console.error(` - ${w}`);
|
|
28
|
+
}
|
|
29
|
+
console.error('========================');
|
|
30
|
+
}
|
|
31
|
+
const embeddingDevice = process.env.EMBEDDING_DEVICE;
|
|
32
|
+
if (embeddingDevice) {
|
|
33
|
+
updateConfig({ embeddingDevice });
|
|
34
|
+
console.error(`[Config] EMBEDDING_DEVICE=${embeddingDevice}`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=startup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startup.js","sourceRoot":"","sources":["../../src/server/startup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;;GAGG;AACH,MAAM,UAAU,2BAA2B;IACzC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CACX,yFAAyF,CAC1F,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;QAChC,QAAQ,CAAC,IAAI,CACX,6GAA6G,CAC9G,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACrD,IAAI,eAAe,EAAE,CAAC;QACpB,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,6BAA6B,eAAe,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Server State Management
|
|
3
|
+
*
|
|
4
|
+
* Manages global server state including current database connection and configuration.
|
|
5
|
+
* FAIL FAST: All state access throws immediately if preconditions not met.
|
|
6
|
+
*
|
|
7
|
+
* @module server/state
|
|
8
|
+
*/
|
|
9
|
+
import { DatabaseService } from '../services/storage/database/index.js';
|
|
10
|
+
import { VectorService } from '../services/storage/vector.js';
|
|
11
|
+
import type { ServerState, ServerConfig } from './types.js';
|
|
12
|
+
/**
|
|
13
|
+
* Global server state
|
|
14
|
+
* Mutable state for current database and configuration
|
|
15
|
+
*/
|
|
16
|
+
export declare const state: ServerState;
|
|
17
|
+
/**
|
|
18
|
+
* Services returned from requireDatabase
|
|
19
|
+
*/
|
|
20
|
+
interface DatabaseServices {
|
|
21
|
+
db: DatabaseService;
|
|
22
|
+
vector: VectorService;
|
|
23
|
+
/** Generation counter for detecting stale references */
|
|
24
|
+
generation: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Require database to be selected - FAIL FAST if not
|
|
28
|
+
*
|
|
29
|
+
* @returns Database service, vector service, and generation counter
|
|
30
|
+
* @throws MCPError with DATABASE_NOT_SELECTED if no database is selected
|
|
31
|
+
*/
|
|
32
|
+
export declare function requireDatabase(): DatabaseServices;
|
|
33
|
+
/**
|
|
34
|
+
* Validate that the database generation matches the expected value.
|
|
35
|
+
*
|
|
36
|
+
* The generation counter increments on every database switch/clear. A mismatch
|
|
37
|
+
* means the database was switched between the time a caller obtained the
|
|
38
|
+
* generation and the time it validates -- indicating a race condition where
|
|
39
|
+
* the caller's database reference is stale.
|
|
40
|
+
*
|
|
41
|
+
* Callers can optionally use this at critical points (e.g., before writing
|
|
42
|
+
* results back to the database) to detect and fail fast on stale references.
|
|
43
|
+
*
|
|
44
|
+
* @param expectedGeneration - The generation value obtained from requireDatabase()
|
|
45
|
+
* @throws Error if the current generation does not match
|
|
46
|
+
*/
|
|
47
|
+
export declare function validateGeneration(expectedGeneration: number): void;
|
|
48
|
+
/**
|
|
49
|
+
* Begin tracking an in-flight database operation.
|
|
50
|
+
*
|
|
51
|
+
* Increments the active operation counter and returns the current generation.
|
|
52
|
+
* While any operations are active, selectDatabase() and clearDatabase() will
|
|
53
|
+
* throw to prevent database switches during async work.
|
|
54
|
+
*
|
|
55
|
+
* @returns Current database generation for later validation
|
|
56
|
+
* @throws MCPError if no database is selected
|
|
57
|
+
*/
|
|
58
|
+
export declare function beginDatabaseOperation(): number;
|
|
59
|
+
/**
|
|
60
|
+
* End tracking an in-flight database operation.
|
|
61
|
+
*
|
|
62
|
+
* Decrements the active operation counter. Counter never goes below 0.
|
|
63
|
+
*/
|
|
64
|
+
export declare function endDatabaseOperation(): void;
|
|
65
|
+
/**
|
|
66
|
+
* Get the number of active database operations (for diagnostics/testing).
|
|
67
|
+
*/
|
|
68
|
+
export declare function getActiveOperationCount(): number;
|
|
69
|
+
/**
|
|
70
|
+
* Execute an async function within a tracked database operation scope.
|
|
71
|
+
*
|
|
72
|
+
* Calls beginDatabaseOperation() before the function and endDatabaseOperation()
|
|
73
|
+
* in a finally block, guaranteeing the counter is decremented even on error.
|
|
74
|
+
* Also validates the generation after the function completes to detect any
|
|
75
|
+
* mid-operation database switch.
|
|
76
|
+
*
|
|
77
|
+
* Use this for async tool handlers that do database writes across multiple
|
|
78
|
+
* await points. Read-only synchronous handlers do not need this wrapper
|
|
79
|
+
* because the event loop does not yield.
|
|
80
|
+
*
|
|
81
|
+
* @param fn - Async function receiving DatabaseServices
|
|
82
|
+
* @returns The result of fn
|
|
83
|
+
* @throws MCPError if no database is selected
|
|
84
|
+
* @throws Error if the database was switched during the operation
|
|
85
|
+
*/
|
|
86
|
+
export declare function withDatabaseOperation<T>(fn: (services: DatabaseServices) => Promise<T>): Promise<T>;
|
|
87
|
+
/**
|
|
88
|
+
* Check if a database is currently selected
|
|
89
|
+
*/
|
|
90
|
+
export declare function hasDatabase(): boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Get current database name or null
|
|
93
|
+
*/
|
|
94
|
+
export declare function getCurrentDatabaseName(): string | null;
|
|
95
|
+
/**
|
|
96
|
+
* Select a database by name - opens connection and sets as current
|
|
97
|
+
*
|
|
98
|
+
* FAIL FAST: Throws immediately if database doesn't exist or if operations
|
|
99
|
+
* are in-flight (H-2 guard). Uses atomic swap (M-9 fix): opens new DB first,
|
|
100
|
+
* then swaps state, then closes old DB -- no null window.
|
|
101
|
+
*
|
|
102
|
+
* @param name - Database name to select
|
|
103
|
+
* @param storagePath - Optional storage path override
|
|
104
|
+
* @throws MCPError with DATABASE_NOT_FOUND if database doesn't exist
|
|
105
|
+
* @throws Error if database operations are in-flight
|
|
106
|
+
*/
|
|
107
|
+
export declare function selectDatabase(name: string, storagePath?: string): void;
|
|
108
|
+
/**
|
|
109
|
+
* Create a new database and optionally select it
|
|
110
|
+
*
|
|
111
|
+
* FAIL FAST: Throws immediately if database already exists
|
|
112
|
+
*
|
|
113
|
+
* @param name - Database name to create
|
|
114
|
+
* @param description - Optional description
|
|
115
|
+
* @param storagePath - Optional storage path override
|
|
116
|
+
* @param autoSelect - Whether to select the database after creation (default: true)
|
|
117
|
+
* @returns The created database service
|
|
118
|
+
* @throws MCPError with DATABASE_ALREADY_EXISTS if database exists
|
|
119
|
+
*/
|
|
120
|
+
export declare function createDatabase(name: string, description?: string, storagePath?: string, autoSelect?: boolean): DatabaseService;
|
|
121
|
+
/**
|
|
122
|
+
* Delete a database
|
|
123
|
+
*
|
|
124
|
+
* FAIL FAST: Throws if database doesn't exist
|
|
125
|
+
*
|
|
126
|
+
* @param name - Database name to delete
|
|
127
|
+
* @param storagePath - Optional storage path override
|
|
128
|
+
* @throws MCPError with DATABASE_NOT_FOUND if database doesn't exist
|
|
129
|
+
*/
|
|
130
|
+
export declare function deleteDatabase(name: string, storagePath?: string): void;
|
|
131
|
+
/**
|
|
132
|
+
* Clear current database selection - closes connection.
|
|
133
|
+
*
|
|
134
|
+
* FAIL FAST: Throws if async operations are in-flight (H-2 guard).
|
|
135
|
+
* The forceClose parameter bypasses the guard for internal use only
|
|
136
|
+
* (resetState in tests, process exit cleanup).
|
|
137
|
+
*
|
|
138
|
+
* @param forceClose - Skip operation guard (internal use only)
|
|
139
|
+
* @throws Error if database operations are in-flight and forceClose is false
|
|
140
|
+
*/
|
|
141
|
+
export declare function clearDatabase(forceClose?: boolean): void;
|
|
142
|
+
/**
|
|
143
|
+
* Get current server configuration
|
|
144
|
+
*/
|
|
145
|
+
export declare function getConfig(): ServerConfig;
|
|
146
|
+
/**
|
|
147
|
+
* Update server configuration (deep merges nested objects like imageOptimization)
|
|
148
|
+
*/
|
|
149
|
+
export declare function updateConfig(updates: Partial<ServerConfig>): void;
|
|
150
|
+
/**
|
|
151
|
+
* Reset configuration to defaults
|
|
152
|
+
*/
|
|
153
|
+
export declare function resetConfig(): void;
|
|
154
|
+
/**
|
|
155
|
+
* Get default storage path
|
|
156
|
+
*/
|
|
157
|
+
export declare function getDefaultStoragePath(): string;
|
|
158
|
+
/**
|
|
159
|
+
* Reset all server state - ONLY USE IN TESTS
|
|
160
|
+
*
|
|
161
|
+
* Uses forceClose=true to bypass the operation guard since tests
|
|
162
|
+
* need to reset state unconditionally between test cases.
|
|
163
|
+
*/
|
|
164
|
+
export declare function resetState(): void;
|
|
165
|
+
export {};
|
|
166
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/server/state.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAQ9D,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAmC5D;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,WAInB,CAAC;AAMF;;GAEG;AACH,UAAU,gBAAgB;IACxB,EAAE,EAAE,eAAe,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;CACpB;AAkBD;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,gBAAgB,CASlD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAOnE;AAMD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAM/C;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAI3C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,qBAAqB,CAAC,CAAC,EAC3C,EAAE,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,OAAO,CAAC,CAAC,CAAC,GAC7C,OAAO,CAAC,CAAC,CAAC,CAUZ;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAEtD;AAsDD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAoCvE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,EACpB,UAAU,GAAE,OAAc,GACzB,eAAe,CAmCjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAevE;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,UAAU,GAAE,OAAe,GAAG,IAAI,CAgB/D;AAMD;;GAEG;AACH,wBAAgB,SAAS,IAAI,YAAY,CAExC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAYjE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAMD;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAMjC"}
|