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