mcard-js 2.1.12 → 2.1.13
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.
- package/README.md +14 -0
- package/dist/hash/HashValidator.d.ts +14 -0
- package/dist/hash/HashValidator.d.ts.map +1 -0
- package/dist/hash/HashValidator.js +57 -0
- package/dist/hash/HashValidator.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -0
- package/dist/model/CardCollection.d.ts +92 -0
- package/dist/model/CardCollection.d.ts.map +1 -0
- package/dist/model/CardCollection.js +217 -0
- package/dist/model/CardCollection.js.map +1 -0
- package/dist/model/ContentTypeInterpreter.d.ts +23 -0
- package/dist/model/ContentTypeInterpreter.d.ts.map +1 -0
- package/dist/model/ContentTypeInterpreter.js +140 -0
- package/dist/model/ContentTypeInterpreter.js.map +1 -0
- package/dist/model/EventProducer.d.ts +10 -0
- package/dist/model/EventProducer.d.ts.map +1 -0
- package/dist/model/EventProducer.js +46 -0
- package/dist/model/EventProducer.js.map +1 -0
- package/dist/model/GTime.d.ts +44 -0
- package/dist/model/GTime.d.ts.map +1 -0
- package/dist/model/GTime.js +91 -0
- package/dist/model/GTime.js.map +1 -0
- package/dist/model/Handle.d.ts +37 -0
- package/dist/model/Handle.d.ts.map +1 -0
- package/dist/model/Handle.js +90 -0
- package/dist/model/Handle.js.map +1 -0
- package/dist/model/MCard.d.ts +43 -0
- package/dist/model/MCard.d.ts.map +1 -0
- package/dist/model/MCard.js +76 -0
- package/dist/model/MCard.js.map +1 -0
- package/dist/model/constants.d.ts +45 -0
- package/dist/model/constants.d.ts.map +1 -0
- package/dist/model/constants.js +27 -0
- package/dist/model/constants.js.map +1 -0
- package/dist/model/detectors/BaseDetector.d.ts +26 -0
- package/dist/model/detectors/BaseDetector.d.ts.map +1 -0
- package/dist/model/detectors/BaseDetector.js +5 -0
- package/dist/model/detectors/BaseDetector.js.map +1 -0
- package/dist/model/detectors/BinaryDetector.d.ts +12 -0
- package/dist/model/detectors/BinaryDetector.d.ts.map +1 -0
- package/dist/model/detectors/BinaryDetector.js +82 -0
- package/dist/model/detectors/BinaryDetector.js.map +1 -0
- package/dist/model/detectors/ContentTypeInterpreter.d.ts +11 -0
- package/dist/model/detectors/ContentTypeInterpreter.d.ts.map +1 -0
- package/dist/model/detectors/ContentTypeInterpreter.js +51 -0
- package/dist/model/detectors/ContentTypeInterpreter.js.map +1 -0
- package/dist/model/detectors/DataFormatDetectors.d.ts +29 -0
- package/dist/model/detectors/DataFormatDetectors.d.ts.map +1 -0
- package/dist/model/detectors/DataFormatDetectors.js +223 -0
- package/dist/model/detectors/DataFormatDetectors.js.map +1 -0
- package/dist/model/detectors/LanguageDetector.d.ts +11 -0
- package/dist/model/detectors/LanguageDetector.d.ts.map +1 -0
- package/dist/model/detectors/LanguageDetector.js +148 -0
- package/dist/model/detectors/LanguageDetector.js.map +1 -0
- package/dist/model/detectors/MarkupDetectors.d.ts +22 -0
- package/dist/model/detectors/MarkupDetectors.d.ts.map +1 -0
- package/dist/model/detectors/MarkupDetectors.js +132 -0
- package/dist/model/detectors/MarkupDetectors.js.map +1 -0
- package/dist/model/detectors/OBJDetector.d.ts +8 -0
- package/dist/model/detectors/OBJDetector.d.ts.map +1 -0
- package/dist/model/detectors/OBJDetector.js +48 -0
- package/dist/model/detectors/OBJDetector.js.map +1 -0
- package/dist/model/detectors/registry.d.ts +13 -0
- package/dist/model/detectors/registry.d.ts.map +1 -0
- package/dist/model/detectors/registry.js +67 -0
- package/dist/model/detectors/registry.js.map +1 -0
- package/dist/monads/Either.d.ts +51 -0
- package/dist/monads/Either.d.ts.map +1 -0
- package/dist/monads/Either.js +82 -0
- package/dist/monads/Either.js.map +1 -0
- package/dist/monads/IO.d.ts +38 -0
- package/dist/monads/IO.d.ts.map +1 -0
- package/dist/monads/IO.js +66 -0
- package/dist/monads/IO.js.map +1 -0
- package/dist/monads/Maybe.d.ts +45 -0
- package/dist/monads/Maybe.d.ts.map +1 -0
- package/dist/monads/Maybe.js +73 -0
- package/dist/monads/Maybe.js.map +1 -0
- package/dist/monads/Reader.d.ts +29 -0
- package/dist/monads/Reader.d.ts.map +1 -0
- package/dist/monads/Reader.js +44 -0
- package/dist/monads/Reader.js.map +1 -0
- package/dist/monads/State.d.ts +33 -0
- package/dist/monads/State.d.ts.map +1 -0
- package/dist/monads/State.js +50 -0
- package/dist/monads/State.js.map +1 -0
- package/dist/monads/Writer.d.ts +29 -0
- package/dist/monads/Writer.d.ts.map +1 -0
- package/dist/monads/Writer.js +46 -0
- package/dist/monads/Writer.js.map +1 -0
- package/dist/ptr/FaroSidecar.d.ts +56 -0
- package/dist/ptr/FaroSidecar.d.ts.map +1 -0
- package/dist/ptr/FaroSidecar.js +102 -0
- package/dist/ptr/FaroSidecar.js.map +1 -0
- package/dist/ptr/LensProtocol.d.ts +84 -0
- package/dist/ptr/LensProtocol.d.ts.map +1 -0
- package/dist/ptr/LensProtocol.js +98 -0
- package/dist/ptr/LensProtocol.js.map +1 -0
- package/dist/ptr/SandboxWorker.d.ts +54 -0
- package/dist/ptr/SandboxWorker.d.ts.map +1 -0
- package/dist/ptr/SandboxWorker.js +172 -0
- package/dist/ptr/SandboxWorker.js.map +1 -0
- package/dist/ptr/common_types.d.ts +39 -0
- package/dist/ptr/common_types.d.ts.map +1 -0
- package/dist/ptr/common_types.js +12 -0
- package/dist/ptr/common_types.js.map +1 -0
- package/dist/ptr/lambda/AlphaConversion.d.ts +42 -0
- package/dist/ptr/lambda/AlphaConversion.d.ts.map +1 -0
- package/dist/ptr/lambda/AlphaConversion.js +244 -0
- package/dist/ptr/lambda/AlphaConversion.js.map +1 -0
- package/dist/ptr/lambda/BetaReduction.d.ts +73 -0
- package/dist/ptr/lambda/BetaReduction.d.ts.map +1 -0
- package/dist/ptr/lambda/BetaReduction.js +322 -0
- package/dist/ptr/lambda/BetaReduction.js.map +1 -0
- package/dist/ptr/lambda/EtaConversion.d.ts +65 -0
- package/dist/ptr/lambda/EtaConversion.d.ts.map +1 -0
- package/dist/ptr/lambda/EtaConversion.js +228 -0
- package/dist/ptr/lambda/EtaConversion.js.map +1 -0
- package/dist/ptr/lambda/FreeVariables.d.ts +44 -0
- package/dist/ptr/lambda/FreeVariables.d.ts.map +1 -0
- package/dist/ptr/lambda/FreeVariables.js +207 -0
- package/dist/ptr/lambda/FreeVariables.js.map +1 -0
- package/dist/ptr/lambda/LambdaRuntime.d.ts +80 -0
- package/dist/ptr/lambda/LambdaRuntime.d.ts.map +1 -0
- package/dist/ptr/lambda/LambdaRuntime.js +433 -0
- package/dist/ptr/lambda/LambdaRuntime.js.map +1 -0
- package/dist/ptr/lambda/LambdaTerm.d.ts +95 -0
- package/dist/ptr/lambda/LambdaTerm.d.ts.map +1 -0
- package/dist/ptr/lambda/LambdaTerm.js +159 -0
- package/dist/ptr/lambda/LambdaTerm.js.map +1 -0
- package/dist/ptr/lambda/index.d.ts +24 -0
- package/dist/ptr/lambda/index.d.ts.map +1 -0
- package/dist/ptr/lambda/index.js +34 -0
- package/dist/ptr/lambda/index.js.map +1 -0
- package/dist/ptr/llm/Config.d.ts +57 -0
- package/dist/ptr/llm/Config.d.ts.map +1 -0
- package/dist/ptr/llm/Config.js +183 -0
- package/dist/ptr/llm/Config.js.map +1 -0
- package/dist/ptr/llm/LLMRuntime.d.ts +35 -0
- package/dist/ptr/llm/LLMRuntime.d.ts.map +1 -0
- package/dist/ptr/llm/LLMRuntime.js +176 -0
- package/dist/ptr/llm/LLMRuntime.js.map +1 -0
- package/dist/ptr/llm/providers/LLMProvider.d.ts +43 -0
- package/dist/ptr/llm/providers/LLMProvider.d.ts.map +1 -0
- package/dist/ptr/llm/providers/LLMProvider.js +31 -0
- package/dist/ptr/llm/providers/LLMProvider.js.map +1 -0
- package/dist/ptr/llm/providers/MLCLLMProvider.d.ts +22 -0
- package/dist/ptr/llm/providers/MLCLLMProvider.d.ts.map +1 -0
- package/dist/ptr/llm/providers/MLCLLMProvider.js +155 -0
- package/dist/ptr/llm/providers/MLCLLMProvider.js.map +1 -0
- package/dist/ptr/llm/providers/OllamaEmbeddingProvider.d.ts +20 -0
- package/dist/ptr/llm/providers/OllamaEmbeddingProvider.d.ts.map +1 -0
- package/dist/ptr/llm/providers/OllamaEmbeddingProvider.js +42 -0
- package/dist/ptr/llm/providers/OllamaEmbeddingProvider.js.map +1 -0
- package/dist/ptr/llm/providers/OllamaProvider.d.ts +21 -0
- package/dist/ptr/llm/providers/OllamaProvider.d.ts.map +1 -0
- package/dist/ptr/llm/providers/OllamaProvider.js +158 -0
- package/dist/ptr/llm/providers/OllamaProvider.js.map +1 -0
- package/dist/ptr/llm/providers/WebLLMProvider.d.ts +22 -0
- package/dist/ptr/llm/providers/WebLLMProvider.d.ts.map +1 -0
- package/dist/ptr/llm/providers/WebLLMProvider.js +151 -0
- package/dist/ptr/llm/providers/WebLLMProvider.js.map +1 -0
- package/dist/ptr/node/Action.d.ts +426 -0
- package/dist/ptr/node/Action.d.ts.map +1 -0
- package/dist/ptr/node/Action.js +711 -0
- package/dist/ptr/node/Action.js.map +1 -0
- package/dist/ptr/node/CLMLoader.d.ts +18 -0
- package/dist/ptr/node/CLMLoader.d.ts.map +1 -0
- package/dist/ptr/node/CLMLoader.js +18 -0
- package/dist/ptr/node/CLMLoader.js.map +1 -0
- package/dist/ptr/node/CLMRunner.d.ts +34 -0
- package/dist/ptr/node/CLMRunner.d.ts.map +1 -0
- package/dist/ptr/node/CLMRunner.js +36 -0
- package/dist/ptr/node/CLMRunner.js.map +1 -0
- package/dist/ptr/node/FileSystemUtils.d.ts +40 -0
- package/dist/ptr/node/FileSystemUtils.d.ts.map +1 -0
- package/dist/ptr/node/FileSystemUtils.js +170 -0
- package/dist/ptr/node/FileSystemUtils.js.map +1 -0
- package/dist/ptr/node/NetworkConfig.d.ts +191 -0
- package/dist/ptr/node/NetworkConfig.d.ts.map +1 -0
- package/dist/ptr/node/NetworkConfig.js +8 -0
- package/dist/ptr/node/NetworkConfig.js.map +1 -0
- package/dist/ptr/node/NetworkRuntime.d.ts +38 -0
- package/dist/ptr/node/NetworkRuntime.d.ts.map +1 -0
- package/dist/ptr/node/NetworkRuntime.js +871 -0
- package/dist/ptr/node/NetworkRuntime.js.map +1 -0
- package/dist/ptr/node/P2PChatSession.d.ts +53 -0
- package/dist/ptr/node/P2PChatSession.d.ts.map +1 -0
- package/dist/ptr/node/P2PChatSession.js +154 -0
- package/dist/ptr/node/P2PChatSession.js.map +1 -0
- package/dist/ptr/node/RuntimeInterface.d.ts +4 -0
- package/dist/ptr/node/RuntimeInterface.d.ts.map +1 -0
- package/dist/ptr/node/RuntimeInterface.js +2 -0
- package/dist/ptr/node/RuntimeInterface.js.map +1 -0
- package/dist/ptr/node/Runtimes.d.ts +34 -0
- package/dist/ptr/node/Runtimes.d.ts.map +1 -0
- package/dist/ptr/node/Runtimes.js +38 -0
- package/dist/ptr/node/Runtimes.js.map +1 -0
- package/dist/ptr/node/SignalingServer.d.ts +37 -0
- package/dist/ptr/node/SignalingServer.d.ts.map +1 -0
- package/dist/ptr/node/SignalingServer.js +218 -0
- package/dist/ptr/node/SignalingServer.js.map +1 -0
- package/dist/ptr/node/cli.d.ts +3 -0
- package/dist/ptr/node/cli.d.ts.map +1 -0
- package/dist/ptr/node/cli.js +266 -0
- package/dist/ptr/node/cli.js.map +1 -0
- package/dist/ptr/node/clm/builtins/handle.d.ts +14 -0
- package/dist/ptr/node/clm/builtins/handle.d.ts.map +1 -0
- package/dist/ptr/node/clm/builtins/handle.js +177 -0
- package/dist/ptr/node/clm/builtins/handle.js.map +1 -0
- package/dist/ptr/node/clm/builtins/index.d.ts +20 -0
- package/dist/ptr/node/clm/builtins/index.d.ts.map +1 -0
- package/dist/ptr/node/clm/builtins/index.js +60 -0
- package/dist/ptr/node/clm/builtins/index.js.map +1 -0
- package/dist/ptr/node/clm/index.d.ts +25 -0
- package/dist/ptr/node/clm/index.d.ts.map +1 -0
- package/dist/ptr/node/clm/index.js +28 -0
- package/dist/ptr/node/clm/index.js.map +1 -0
- package/dist/ptr/node/clm/loader.d.ts +25 -0
- package/dist/ptr/node/clm/loader.d.ts.map +1 -0
- package/dist/ptr/node/clm/loader.js +146 -0
- package/dist/ptr/node/clm/loader.js.map +1 -0
- package/dist/ptr/node/clm/multiruntime.d.ts +9 -0
- package/dist/ptr/node/clm/multiruntime.d.ts.map +1 -0
- package/dist/ptr/node/clm/multiruntime.js +121 -0
- package/dist/ptr/node/clm/multiruntime.js.map +1 -0
- package/dist/ptr/node/clm/runner.d.ts +70 -0
- package/dist/ptr/node/clm/runner.d.ts.map +1 -0
- package/dist/ptr/node/clm/runner.js +324 -0
- package/dist/ptr/node/clm/runner.js.map +1 -0
- package/dist/ptr/node/clm/types.d.ts +166 -0
- package/dist/ptr/node/clm/types.d.ts.map +1 -0
- package/dist/ptr/node/clm/types.js +5 -0
- package/dist/ptr/node/clm/types.js.map +1 -0
- package/dist/ptr/node/clm/utils.d.ts +29 -0
- package/dist/ptr/node/clm/utils.d.ts.map +1 -0
- package/dist/ptr/node/clm/utils.js +88 -0
- package/dist/ptr/node/clm/utils.js.map +1 -0
- package/dist/ptr/node/network/HttpClient.d.ts +14 -0
- package/dist/ptr/node/network/HttpClient.d.ts.map +1 -0
- package/dist/ptr/node/network/HttpClient.js +139 -0
- package/dist/ptr/node/network/HttpClient.js.map +1 -0
- package/dist/ptr/node/network/MCardSerialization.d.ts +19 -0
- package/dist/ptr/node/network/MCardSerialization.d.ts.map +1 -0
- package/dist/ptr/node/network/MCardSerialization.js +41 -0
- package/dist/ptr/node/network/MCardSerialization.js.map +1 -0
- package/dist/ptr/node/network/NetworkInfrastructure.d.ts +37 -0
- package/dist/ptr/node/network/NetworkInfrastructure.d.ts.map +1 -0
- package/dist/ptr/node/network/NetworkInfrastructure.js +121 -0
- package/dist/ptr/node/network/NetworkInfrastructure.js.map +1 -0
- package/dist/ptr/node/network/NetworkSecurity.d.ts +24 -0
- package/dist/ptr/node/network/NetworkSecurity.d.ts.map +1 -0
- package/dist/ptr/node/network/NetworkSecurity.js +104 -0
- package/dist/ptr/node/network/NetworkSecurity.js.map +1 -0
- package/dist/ptr/node/runtimes/base.d.ts +31 -0
- package/dist/ptr/node/runtimes/base.d.ts.map +1 -0
- package/dist/ptr/node/runtimes/base.js +33 -0
- package/dist/ptr/node/runtimes/base.js.map +1 -0
- package/dist/ptr/node/runtimes/binary.d.ts +10 -0
- package/dist/ptr/node/runtimes/binary.d.ts.map +1 -0
- package/dist/ptr/node/runtimes/binary.js +16 -0
- package/dist/ptr/node/runtimes/binary.js.map +1 -0
- package/dist/ptr/node/runtimes/factory.d.ts +22 -0
- package/dist/ptr/node/runtimes/factory.d.ts.map +1 -0
- package/dist/ptr/node/runtimes/factory.js +152 -0
- package/dist/ptr/node/runtimes/factory.js.map +1 -0
- package/dist/ptr/node/runtimes/index.d.ts +28 -0
- package/dist/ptr/node/runtimes/index.d.ts.map +1 -0
- package/dist/ptr/node/runtimes/index.js +30 -0
- package/dist/ptr/node/runtimes/index.js.map +1 -0
- package/dist/ptr/node/runtimes/javascript.d.ts +22 -0
- package/dist/ptr/node/runtimes/javascript.d.ts.map +1 -0
- package/dist/ptr/node/runtimes/javascript.js +125 -0
- package/dist/ptr/node/runtimes/javascript.js.map +1 -0
- package/dist/ptr/node/runtimes/lean.d.ts +10 -0
- package/dist/ptr/node/runtimes/lean.d.ts.map +1 -0
- package/dist/ptr/node/runtimes/lean.js +60 -0
- package/dist/ptr/node/runtimes/lean.js.map +1 -0
- package/dist/ptr/node/runtimes/loader.d.ts +21 -0
- package/dist/ptr/node/runtimes/loader.d.ts.map +1 -0
- package/dist/ptr/node/runtimes/loader.js +126 -0
- package/dist/ptr/node/runtimes/loader.js.map +1 -0
- package/dist/ptr/node/runtimes/python.d.ts +14 -0
- package/dist/ptr/node/runtimes/python.d.ts.map +1 -0
- package/dist/ptr/node/runtimes/python.js +100 -0
- package/dist/ptr/node/runtimes/python.js.map +1 -0
- package/dist/ptr/node/runtimes/wasm.d.ts +10 -0
- package/dist/ptr/node/runtimes/wasm.d.ts.map +1 -0
- package/dist/ptr/node/runtimes/wasm.js +55 -0
- package/dist/ptr/node/runtimes/wasm.js.map +1 -0
- package/dist/rag/GraphRAGEngine.d.ts +26 -0
- package/dist/rag/GraphRAGEngine.d.ts.map +1 -0
- package/dist/rag/GraphRAGEngine.js +166 -0
- package/dist/rag/GraphRAGEngine.js.map +1 -0
- package/dist/rag/HandleVectorStore.d.ts +201 -0
- package/dist/rag/HandleVectorStore.d.ts.map +1 -0
- package/dist/rag/HandleVectorStore.js +527 -0
- package/dist/rag/HandleVectorStore.js.map +1 -0
- package/dist/rag/PersistentIndexer.d.ts +148 -0
- package/dist/rag/PersistentIndexer.d.ts.map +1 -0
- package/dist/rag/PersistentIndexer.js +302 -0
- package/dist/rag/PersistentIndexer.js.map +1 -0
- package/dist/rag/embeddings/VisionEmbeddingProvider.d.ts +87 -0
- package/dist/rag/embeddings/VisionEmbeddingProvider.d.ts.map +1 -0
- package/dist/rag/embeddings/VisionEmbeddingProvider.js +164 -0
- package/dist/rag/embeddings/VisionEmbeddingProvider.js.map +1 -0
- package/dist/rag/graph/community.d.ts +56 -0
- package/dist/rag/graph/community.d.ts.map +1 -0
- package/dist/rag/graph/community.js +247 -0
- package/dist/rag/graph/community.js.map +1 -0
- package/dist/rag/graph/extractor.d.ts +99 -0
- package/dist/rag/graph/extractor.d.ts.map +1 -0
- package/dist/rag/graph/extractor.js +210 -0
- package/dist/rag/graph/extractor.js.map +1 -0
- package/dist/rag/graph/store.d.ts +176 -0
- package/dist/rag/graph/store.d.ts.map +1 -0
- package/dist/rag/graph/store.js +504 -0
- package/dist/rag/graph/store.js.map +1 -0
- package/dist/rag/index.d.ts +20 -0
- package/dist/rag/index.d.ts.map +1 -0
- package/dist/rag/index.js +26 -0
- package/dist/rag/index.js.map +1 -0
- package/dist/rag/semanticVersioning.d.ts +187 -0
- package/dist/rag/semanticVersioning.d.ts.map +1 -0
- package/dist/rag/semanticVersioning.js +253 -0
- package/dist/rag/semanticVersioning.js.map +1 -0
- package/dist/storage/IndexedDBEngine.d.ts +33 -0
- package/dist/storage/IndexedDBEngine.d.ts.map +1 -0
- package/dist/storage/IndexedDBEngine.js +198 -0
- package/dist/storage/IndexedDBEngine.js.map +1 -0
- package/dist/storage/SqliteNodeEngine.d.ts +123 -0
- package/dist/storage/SqliteNodeEngine.d.ts.map +1 -0
- package/dist/storage/SqliteNodeEngine.js +385 -0
- package/dist/storage/SqliteNodeEngine.js.map +1 -0
- package/dist/storage/SqliteWasmEngine.d.ts +60 -0
- package/dist/storage/SqliteWasmEngine.d.ts.map +1 -0
- package/dist/storage/SqliteWasmEngine.js +193 -0
- package/dist/storage/SqliteWasmEngine.js.map +1 -0
- package/dist/storage/StorageAdapter.d.ts +42 -0
- package/dist/storage/StorageAdapter.d.ts.map +1 -0
- package/dist/storage/StorageAdapter.js +2 -0
- package/dist/storage/StorageAdapter.js.map +1 -0
- package/dist/storage/VectorStore.d.ts +202 -0
- package/dist/storage/VectorStore.d.ts.map +1 -0
- package/dist/storage/VectorStore.js +557 -0
- package/dist/storage/VectorStore.js.map +1 -0
- package/dist/storage/schema.d.ts +162 -0
- package/dist/storage/schema.d.ts.map +1 -0
- package/dist/storage/schema.js +373 -0
- package/dist/storage/schema.js.map +1 -0
- package/dist/util/FileIO.d.ts +44 -0
- package/dist/util/FileIO.d.ts.map +1 -0
- package/dist/util/FileIO.js +203 -0
- package/dist/util/FileIO.js.map +1 -0
- package/dist/util/Loader.d.ts +34 -0
- package/dist/util/Loader.d.ts.map +1 -0
- package/dist/util/Loader.js +168 -0
- package/dist/util/Loader.js.map +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1,557 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCard Vector Store for JavaScript
|
|
3
|
+
*
|
|
4
|
+
* SQLite-based vector storage for semantic search using sqlite-vec extension.
|
|
5
|
+
* Compatible with the Python MCardVectorStore implementation.
|
|
6
|
+
*/
|
|
7
|
+
import Database from 'better-sqlite3';
|
|
8
|
+
import { createRequire } from 'module';
|
|
9
|
+
import { MCardSchema, getVec0Schema, VECTOR_METADATA_SCHEMA, VECTOR_METADATA_INDEX, VECTOR_EMBEDDINGS_SCHEMA, VECTOR_FTS_SCHEMA } from './schema';
|
|
10
|
+
const require = createRequire(import.meta.url);
|
|
11
|
+
// Adapter for better-sqlite3 in Node.js
|
|
12
|
+
export class BetterSqliteAdapter {
|
|
13
|
+
db;
|
|
14
|
+
constructor(db) {
|
|
15
|
+
this.db = db;
|
|
16
|
+
}
|
|
17
|
+
exec(sql) {
|
|
18
|
+
this.db.exec(sql);
|
|
19
|
+
}
|
|
20
|
+
prepare(sql) {
|
|
21
|
+
const stmt = this.db.prepare(sql);
|
|
22
|
+
return {
|
|
23
|
+
run: (...params) => stmt.run(...params),
|
|
24
|
+
all: (...params) => stmt.all(...params),
|
|
25
|
+
get: (...params) => stmt.get(...params),
|
|
26
|
+
loadVecExtension: (dimensions) => {
|
|
27
|
+
try {
|
|
28
|
+
// Dynamic import of sqlite-vec so browser bundles are unaffected.
|
|
29
|
+
// This is Node-only.
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
31
|
+
const sqliteVec = require('sqlite-vec');
|
|
32
|
+
sqliteVec.load(this.db);
|
|
33
|
+
// Create vec0 table using schema helper
|
|
34
|
+
// Note: This is dynamically generated because dimensions are runtime-determined
|
|
35
|
+
const schema = getVec0Schema(dimensions);
|
|
36
|
+
this.db.exec(schema);
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
catch (e) {
|
|
40
|
+
console.warn(`[VectorStore] sqlite-vec not available in Node adapter: ${e}`);
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export const DEFAULT_VECTOR_CONFIG = {
|
|
48
|
+
embeddingModel: 'nomic-embed-text',
|
|
49
|
+
dimensions: 768,
|
|
50
|
+
ollamaBaseUrl: 'http://localhost:11434',
|
|
51
|
+
chunkSize: 512,
|
|
52
|
+
chunkOverlap: 50,
|
|
53
|
+
enableHybridSearch: true,
|
|
54
|
+
};
|
|
55
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
56
|
+
// Vector Utilities
|
|
57
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
58
|
+
/**
|
|
59
|
+
* Serialize a float array to bytes (little-endian float32).
|
|
60
|
+
*/
|
|
61
|
+
export function serializeVector(vector) {
|
|
62
|
+
const buffer = Buffer.alloc(vector.length * 4);
|
|
63
|
+
for (let i = 0; i < vector.length; i++) {
|
|
64
|
+
buffer.writeFloatLE(vector[i], i * 4);
|
|
65
|
+
}
|
|
66
|
+
return buffer;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Deserialize bytes to a float array.
|
|
70
|
+
*/
|
|
71
|
+
export function deserializeVector(buffer) {
|
|
72
|
+
const count = buffer.length / 4;
|
|
73
|
+
const vector = [];
|
|
74
|
+
for (let i = 0; i < count; i++) {
|
|
75
|
+
vector.push(buffer.readFloatLE(i * 4));
|
|
76
|
+
}
|
|
77
|
+
return vector;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Calculate cosine similarity between two vectors.
|
|
81
|
+
*/
|
|
82
|
+
export function cosineSimilarity(a, b) {
|
|
83
|
+
if (a.length !== b.length) {
|
|
84
|
+
throw new Error(`Vector length mismatch: ${a.length} vs ${b.length}`);
|
|
85
|
+
}
|
|
86
|
+
let dotProduct = 0;
|
|
87
|
+
let normA = 0;
|
|
88
|
+
let normB = 0;
|
|
89
|
+
for (let i = 0; i < a.length; i++) {
|
|
90
|
+
dotProduct += a[i] * b[i];
|
|
91
|
+
normA += a[i] * a[i];
|
|
92
|
+
normB += b[i] * b[i];
|
|
93
|
+
}
|
|
94
|
+
normA = Math.sqrt(normA);
|
|
95
|
+
normB = Math.sqrt(normB);
|
|
96
|
+
if (normA === 0 || normB === 0)
|
|
97
|
+
return 0;
|
|
98
|
+
return dotProduct / (normA * normB);
|
|
99
|
+
}
|
|
100
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
101
|
+
// Vector Store
|
|
102
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
103
|
+
export class MCardVectorStore {
|
|
104
|
+
db;
|
|
105
|
+
config;
|
|
106
|
+
hasVecExtension = false;
|
|
107
|
+
/**
|
|
108
|
+
* Construct a vector store.
|
|
109
|
+
*
|
|
110
|
+
* - Node.js: pass a string path (uses better-sqlite3 under the hood)
|
|
111
|
+
* - Advanced: pass a VectorDb adapter (e.g., SqlJsVectorAdapter for WASM)
|
|
112
|
+
*/
|
|
113
|
+
constructor(dbOrPath = ':memory:', config) {
|
|
114
|
+
this.config = { ...DEFAULT_VECTOR_CONFIG, ...config };
|
|
115
|
+
if (typeof dbOrPath === 'string') {
|
|
116
|
+
const raw = new Database(dbOrPath);
|
|
117
|
+
this.db = new BetterSqliteAdapter(raw);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
this.db = dbOrPath;
|
|
121
|
+
}
|
|
122
|
+
this.initDatabase();
|
|
123
|
+
this.tryLoadVecExtension();
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Initialize database tables.
|
|
127
|
+
* Uses schema from the unified MCardSchema singleton (schema/mcard_schema.sql).
|
|
128
|
+
*/
|
|
129
|
+
initDatabase() {
|
|
130
|
+
// Import from singleton schema loader
|
|
131
|
+
// This ensures all SQL comes from schema/mcard_schema.sql
|
|
132
|
+
try {
|
|
133
|
+
// Try to use singleton if running in Node.js with file access
|
|
134
|
+
const schema = MCardSchema.getInstance();
|
|
135
|
+
// Vector metadata table
|
|
136
|
+
const metadataSchema = schema.getTable('mcard_vector_metadata');
|
|
137
|
+
if (metadataSchema) {
|
|
138
|
+
this.db.exec(metadataSchema);
|
|
139
|
+
}
|
|
140
|
+
// Metadata index
|
|
141
|
+
const metadataIndex = schema.getIndex('idx_vector_metadata_hash');
|
|
142
|
+
if (metadataIndex) {
|
|
143
|
+
this.db.exec(metadataIndex);
|
|
144
|
+
}
|
|
145
|
+
// Embeddings fallback table
|
|
146
|
+
const embeddingsSchema = schema.getTable('mcard_embeddings');
|
|
147
|
+
if (embeddingsSchema) {
|
|
148
|
+
this.db.exec(embeddingsSchema);
|
|
149
|
+
}
|
|
150
|
+
// FTS table for hybrid search
|
|
151
|
+
if (this.config.enableHybridSearch) {
|
|
152
|
+
const ftsSchema = schema.getTable('mcard_fts');
|
|
153
|
+
if (ftsSchema) {
|
|
154
|
+
this.db.exec(ftsSchema);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
catch (e) {
|
|
159
|
+
// Fallback for browser/WASM environments where file access isn't available
|
|
160
|
+
// In this case, we use the exported constants from schema.ts
|
|
161
|
+
console.warn('[VectorStore] Could not load MCardSchema directly, using fallback');
|
|
162
|
+
this.initDatabaseFallback();
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Fallback initialization for browser/WASM environments.
|
|
167
|
+
* Uses exported constants from schema.ts which are loaded from the SQL file.
|
|
168
|
+
*/
|
|
169
|
+
initDatabaseFallback() {
|
|
170
|
+
try {
|
|
171
|
+
if (VECTOR_METADATA_SCHEMA) {
|
|
172
|
+
this.db.exec(VECTOR_METADATA_SCHEMA);
|
|
173
|
+
}
|
|
174
|
+
if (VECTOR_METADATA_INDEX) {
|
|
175
|
+
this.db.exec(VECTOR_METADATA_INDEX);
|
|
176
|
+
}
|
|
177
|
+
if (VECTOR_EMBEDDINGS_SCHEMA) {
|
|
178
|
+
this.db.exec(VECTOR_EMBEDDINGS_SCHEMA);
|
|
179
|
+
}
|
|
180
|
+
if (this.config.enableHybridSearch && VECTOR_FTS_SCHEMA) {
|
|
181
|
+
this.db.exec(VECTOR_FTS_SCHEMA);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
catch (e) {
|
|
185
|
+
console.error('[VectorStore] Failed to initialize database from schema:', e);
|
|
186
|
+
throw e;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Try to load sqlite-vec extension.
|
|
191
|
+
*/
|
|
192
|
+
tryLoadVecExtension() {
|
|
193
|
+
try {
|
|
194
|
+
const anyDb = this.db;
|
|
195
|
+
if (typeof anyDb.prepare === 'function') {
|
|
196
|
+
// If the adapter exposes a loadVecExtension hook (Node or WASM), use it.
|
|
197
|
+
const prepared = anyDb.prepare('SELECT 1');
|
|
198
|
+
if (typeof prepared.loadVecExtension === 'function') {
|
|
199
|
+
const ok = prepared.loadVecExtension(this.config.dimensions);
|
|
200
|
+
this.hasVecExtension = ok;
|
|
201
|
+
return ok;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
// No extension hook available; fallback mode only.
|
|
205
|
+
this.hasVecExtension = false;
|
|
206
|
+
return false;
|
|
207
|
+
}
|
|
208
|
+
catch (e) {
|
|
209
|
+
console.warn(`[VectorStore] Failed to load sqlite-vec extension: ${e}. Using fallback.`);
|
|
210
|
+
this.hasVecExtension = false;
|
|
211
|
+
return false;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Generate embedding using Ollama.
|
|
216
|
+
*/
|
|
217
|
+
async embed(text) {
|
|
218
|
+
const response = await fetch(`${this.config.ollamaBaseUrl}/api/embeddings`, {
|
|
219
|
+
method: 'POST',
|
|
220
|
+
headers: { 'Content-Type': 'application/json' },
|
|
221
|
+
body: JSON.stringify({
|
|
222
|
+
model: this.config.embeddingModel,
|
|
223
|
+
prompt: text
|
|
224
|
+
})
|
|
225
|
+
});
|
|
226
|
+
if (!response.ok) {
|
|
227
|
+
throw new Error(`Ollama embedding failed: ${response.statusText}`);
|
|
228
|
+
}
|
|
229
|
+
const data = await response.json();
|
|
230
|
+
return data.embedding;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Index content with its embedding.
|
|
234
|
+
*/
|
|
235
|
+
async index(hash, content, metadata, chunk = true) {
|
|
236
|
+
const chunks = chunk ? this.chunkText(content) : [content];
|
|
237
|
+
let indexed = 0;
|
|
238
|
+
for (let i = 0; i < chunks.length; i++) {
|
|
239
|
+
const chunkContent = chunks[i];
|
|
240
|
+
const preview = chunkContent.substring(0, 200);
|
|
241
|
+
try {
|
|
242
|
+
// Generate embedding
|
|
243
|
+
const embedding = await this.embed(chunkContent);
|
|
244
|
+
// Insert metadata (matches Python mcard_vector_metadata schema)
|
|
245
|
+
const insertMeta = this.db.prepare(`
|
|
246
|
+
INSERT OR REPLACE INTO mcard_vector_metadata
|
|
247
|
+
(hash, model_name, dimensions, chunk_index, chunk_total, chunk_text, created_at)
|
|
248
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
249
|
+
`);
|
|
250
|
+
const result = insertMeta.run(hash, this.config.embeddingModel, this.config.dimensions, i, chunks.length, preview, new Date().toISOString());
|
|
251
|
+
const lastId = result.lastInsertRowid;
|
|
252
|
+
if (lastId === undefined) {
|
|
253
|
+
throw new Error("Vector metadata insert failed: no rowid returned");
|
|
254
|
+
}
|
|
255
|
+
const rowId = BigInt(lastId);
|
|
256
|
+
// Store embedding
|
|
257
|
+
if (this.hasVecExtension) {
|
|
258
|
+
// Use vec0 virtual table (matches Python mcard_vec)
|
|
259
|
+
const insertVec = this.db.prepare(`
|
|
260
|
+
INSERT INTO mcard_vec (metadata_id, embedding)
|
|
261
|
+
VALUES (?, ?)
|
|
262
|
+
`);
|
|
263
|
+
insertVec.run(rowId, serializeVector(embedding));
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
// Use fallback embeddings table (matches Python mcard_embeddings)
|
|
267
|
+
const insertEmb = this.db.prepare(`
|
|
268
|
+
INSERT OR REPLACE INTO mcard_embeddings (metadata_id, embedding)
|
|
269
|
+
VALUES (?, ?)
|
|
270
|
+
`);
|
|
271
|
+
insertEmb.run(rowId, serializeVector(embedding));
|
|
272
|
+
}
|
|
273
|
+
// Update FTS (matches Python mcard_fts)
|
|
274
|
+
if (this.config.enableHybridSearch) {
|
|
275
|
+
const insertFts = this.db.prepare(`
|
|
276
|
+
INSERT INTO mcard_fts (hash, content)
|
|
277
|
+
VALUES (?, ?)
|
|
278
|
+
`);
|
|
279
|
+
insertFts.run(hash, chunkContent);
|
|
280
|
+
}
|
|
281
|
+
indexed++;
|
|
282
|
+
}
|
|
283
|
+
catch (e) {
|
|
284
|
+
console.error(`[VectorStore] Failed to index chunk ${i}: ${e}`);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
return indexed;
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Search for similar content.
|
|
291
|
+
*/
|
|
292
|
+
async search(query, k = 5) {
|
|
293
|
+
const queryEmbedding = await this.embed(query);
|
|
294
|
+
if (this.hasVecExtension) {
|
|
295
|
+
return this.searchWithVec(queryEmbedding, k);
|
|
296
|
+
}
|
|
297
|
+
else {
|
|
298
|
+
return this.searchFallback(queryEmbedding, k);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Search using sqlite-vec KNN.
|
|
303
|
+
*/
|
|
304
|
+
searchWithVec(queryEmbedding, k) {
|
|
305
|
+
const stmt = this.db.prepare(`
|
|
306
|
+
SELECT
|
|
307
|
+
m.hash,
|
|
308
|
+
m.chunk_index,
|
|
309
|
+
m.chunk_text,
|
|
310
|
+
v.distance
|
|
311
|
+
FROM (
|
|
312
|
+
SELECT metadata_id, distance
|
|
313
|
+
FROM mcard_vec
|
|
314
|
+
WHERE embedding MATCH ?
|
|
315
|
+
ORDER BY distance
|
|
316
|
+
LIMIT ${k}
|
|
317
|
+
) v
|
|
318
|
+
JOIN mcard_vector_metadata m ON v.metadata_id = m.id
|
|
319
|
+
ORDER BY v.distance
|
|
320
|
+
`);
|
|
321
|
+
// Serialize vector and pass as BLOB
|
|
322
|
+
const rows = stmt.all(serializeVector(queryEmbedding));
|
|
323
|
+
return rows.map(row => ({
|
|
324
|
+
hash: row.hash,
|
|
325
|
+
score: 1 - row.distance, // Convert distance to similarity
|
|
326
|
+
content: row.chunk_text || undefined,
|
|
327
|
+
chunkIndex: row.chunk_index
|
|
328
|
+
}));
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Fallback brute-force similarity search.
|
|
332
|
+
*/
|
|
333
|
+
searchFallback(queryEmbedding, k) {
|
|
334
|
+
const stmt = this.db.prepare(`
|
|
335
|
+
SELECT m.id, m.hash, m.chunk_index, m.chunk_text, e.embedding
|
|
336
|
+
FROM mcard_vector_metadata m
|
|
337
|
+
JOIN mcard_embeddings e ON m.id = e.metadata_id
|
|
338
|
+
`);
|
|
339
|
+
const rows = stmt.all();
|
|
340
|
+
// Calculate similarities
|
|
341
|
+
const scored = rows.map(row => ({
|
|
342
|
+
hash: row.hash,
|
|
343
|
+
chunkIndex: row.chunk_index,
|
|
344
|
+
content: row.chunk_text || undefined,
|
|
345
|
+
score: cosineSimilarity(queryEmbedding, deserializeVector(row.embedding))
|
|
346
|
+
}));
|
|
347
|
+
// Sort by score descending
|
|
348
|
+
scored.sort((a, b) => b.score - a.score);
|
|
349
|
+
return scored.slice(0, k);
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Hybrid search combining vector and FTS.
|
|
353
|
+
*/
|
|
354
|
+
async hybridSearch(query, k = 5, vectorWeight = 0.7) {
|
|
355
|
+
if (!this.config.enableHybridSearch) {
|
|
356
|
+
return this.search(query, k);
|
|
357
|
+
}
|
|
358
|
+
// Get vector results
|
|
359
|
+
const vectorResults = await this.search(query, k * 2);
|
|
360
|
+
// Get FTS results
|
|
361
|
+
const ftsStmt = this.db.prepare(`
|
|
362
|
+
SELECT hash, rank
|
|
363
|
+
FROM mcard_fts
|
|
364
|
+
WHERE mcard_fts MATCH ?
|
|
365
|
+
ORDER BY rank
|
|
366
|
+
LIMIT ?
|
|
367
|
+
`);
|
|
368
|
+
const ftsRows = ftsStmt.all(query, k * 2);
|
|
369
|
+
// Merge results with weighted scoring
|
|
370
|
+
const merged = new Map();
|
|
371
|
+
for (const result of vectorResults) {
|
|
372
|
+
merged.set(result.hash, {
|
|
373
|
+
...result,
|
|
374
|
+
score: result.score * vectorWeight
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
const ftsWeight = 1 - vectorWeight;
|
|
378
|
+
const maxFtsRank = Math.max(...ftsRows.map(r => Math.abs(r.rank)), 1);
|
|
379
|
+
for (const row of ftsRows) {
|
|
380
|
+
const ftsScore = (1 - Math.abs(row.rank) / maxFtsRank) * ftsWeight;
|
|
381
|
+
const existing = merged.get(row.hash);
|
|
382
|
+
if (existing) {
|
|
383
|
+
existing.score += ftsScore;
|
|
384
|
+
}
|
|
385
|
+
else {
|
|
386
|
+
merged.set(row.hash, {
|
|
387
|
+
hash: row.hash,
|
|
388
|
+
score: ftsScore
|
|
389
|
+
});
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
// Sort and return top k
|
|
393
|
+
const results = Array.from(merged.values());
|
|
394
|
+
results.sort((a, b) => b.score - a.score);
|
|
395
|
+
return results.slice(0, k);
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Split text into overlapping chunks.
|
|
399
|
+
*/
|
|
400
|
+
chunkText(text) {
|
|
401
|
+
const { chunkSize, chunkOverlap } = this.config;
|
|
402
|
+
if (text.length <= chunkSize) {
|
|
403
|
+
return [text];
|
|
404
|
+
}
|
|
405
|
+
const chunks = [];
|
|
406
|
+
let start = 0;
|
|
407
|
+
while (start < text.length) {
|
|
408
|
+
const end = Math.min(start + chunkSize, text.length);
|
|
409
|
+
chunks.push(text.slice(start, end));
|
|
410
|
+
start += chunkSize - chunkOverlap;
|
|
411
|
+
}
|
|
412
|
+
return chunks;
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* Get count of indexed vectors.
|
|
416
|
+
*/
|
|
417
|
+
count() {
|
|
418
|
+
const stmt = this.db.prepare('SELECT COUNT(*) as count FROM mcard_vector_metadata');
|
|
419
|
+
const row = stmt.get?.();
|
|
420
|
+
return row?.count ?? 0;
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Get list of all indexed hashes (distinct)
|
|
424
|
+
*/
|
|
425
|
+
async getIndexedHashes() {
|
|
426
|
+
const stmt = this.db.prepare('SELECT DISTINCT hash FROM mcard_vector_metadata');
|
|
427
|
+
const rows = stmt.all();
|
|
428
|
+
return rows.map(r => r.hash);
|
|
429
|
+
}
|
|
430
|
+
/**
|
|
431
|
+
* Count unique indexed cards
|
|
432
|
+
*/
|
|
433
|
+
countUnique() {
|
|
434
|
+
const stmt = this.db.prepare('SELECT COUNT(DISTINCT hash) as count FROM mcard_vector_metadata');
|
|
435
|
+
const row = stmt.get();
|
|
436
|
+
return row?.count ?? 0;
|
|
437
|
+
}
|
|
438
|
+
/**
|
|
439
|
+
* Delete vectors for a hash.
|
|
440
|
+
*/
|
|
441
|
+
delete(hash) {
|
|
442
|
+
const getIds = this.db.prepare('SELECT id FROM mcard_vector_metadata WHERE hash = ?');
|
|
443
|
+
const ids = getIds.all(hash);
|
|
444
|
+
for (const { id } of ids) {
|
|
445
|
+
if (this.hasVecExtension) {
|
|
446
|
+
this.db.prepare('DELETE FROM mcard_vec WHERE metadata_id = ?').run(id);
|
|
447
|
+
}
|
|
448
|
+
else {
|
|
449
|
+
this.db.prepare('DELETE FROM mcard_embeddings WHERE metadata_id = ?').run(id);
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
const deleteMeta = this.db.prepare('DELETE FROM mcard_vector_metadata WHERE hash = ?');
|
|
453
|
+
const result = deleteMeta.run(hash);
|
|
454
|
+
if (this.config.enableHybridSearch) {
|
|
455
|
+
this.db.prepare('DELETE FROM mcard_fts WHERE hash = ?').run(hash);
|
|
456
|
+
}
|
|
457
|
+
return result.changes ?? 0;
|
|
458
|
+
}
|
|
459
|
+
/**
|
|
460
|
+
* Clear all vectors.
|
|
461
|
+
*/
|
|
462
|
+
clear() {
|
|
463
|
+
if (this.hasVecExtension) {
|
|
464
|
+
this.db.exec('DELETE FROM mcard_vec');
|
|
465
|
+
}
|
|
466
|
+
else {
|
|
467
|
+
this.db.exec('DELETE FROM mcard_embeddings');
|
|
468
|
+
}
|
|
469
|
+
this.db.exec('DELETE FROM mcard_vector_metadata');
|
|
470
|
+
if (this.config.enableHybridSearch) {
|
|
471
|
+
this.db.exec('DELETE FROM mcard_fts');
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
/**
|
|
475
|
+
* Check if sqlite-vec extension is available.
|
|
476
|
+
*/
|
|
477
|
+
hasVectorExtension() {
|
|
478
|
+
return this.hasVecExtension;
|
|
479
|
+
}
|
|
480
|
+
/**
|
|
481
|
+
* Get information about the vector store.
|
|
482
|
+
*/
|
|
483
|
+
getInfo() {
|
|
484
|
+
const count = this.count();
|
|
485
|
+
return {
|
|
486
|
+
vectorCount: count,
|
|
487
|
+
embeddingModel: this.config.embeddingModel,
|
|
488
|
+
dimensions: this.config.dimensions,
|
|
489
|
+
hasVecExtension: this.hasVecExtension,
|
|
490
|
+
enableHybridSearch: this.config.enableHybridSearch,
|
|
491
|
+
};
|
|
492
|
+
}
|
|
493
|
+
/**
|
|
494
|
+
* Close the database connection.
|
|
495
|
+
*/
|
|
496
|
+
close() {
|
|
497
|
+
// VectorDb interface does not require close; for better-sqlite3 this is
|
|
498
|
+
// handled by the adapter's underlying instance lifecycle.
|
|
499
|
+
const anyDb = this.db;
|
|
500
|
+
if (typeof anyDb.close === 'function') {
|
|
501
|
+
anyDb.close();
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
/**
|
|
506
|
+
* Adapter for sql.js / SQLite WASM so VectorStore can run in the browser.
|
|
507
|
+
*
|
|
508
|
+
* NOTE: Parameter binding and stepping are left as a TODO because the exact
|
|
509
|
+
* sql.js API usage (bind/step/getAsObject) depends on how you want to map
|
|
510
|
+
* VectorDb semantics to sql.js. For now, this adapter is scaffolding that
|
|
511
|
+
* shows where to integrate sql.js.
|
|
512
|
+
*/
|
|
513
|
+
export class SqlJsVectorAdapter {
|
|
514
|
+
db;
|
|
515
|
+
constructor(db) {
|
|
516
|
+
this.db = db;
|
|
517
|
+
}
|
|
518
|
+
exec(sql) {
|
|
519
|
+
this.db.run(sql);
|
|
520
|
+
}
|
|
521
|
+
prepare(_sql) {
|
|
522
|
+
// TODO: Implement proper sql.js Statement handling here, including:
|
|
523
|
+
// - stmt = this.db.prepare(sql)
|
|
524
|
+
// - stmt.bind(params)
|
|
525
|
+
// - stmt.step()/getAsObject() loops for all()/get()
|
|
526
|
+
// - stmt.free() when done
|
|
527
|
+
// For now, this is a stub so the TypeScript wiring compiles; you
|
|
528
|
+
// should replace this with a real implementation once you decide on
|
|
529
|
+
// the exact sql.js usage pattern.
|
|
530
|
+
return {
|
|
531
|
+
run: (..._params) => ({}),
|
|
532
|
+
all: (..._params) => [],
|
|
533
|
+
get: (..._params) => undefined,
|
|
534
|
+
loadVecExtension: (_dimensions) => {
|
|
535
|
+
// TODO: Load sqlite-vec WASM extension for sql.js here.
|
|
536
|
+
// This will depend on which build of sqlite-vec WASM you use
|
|
537
|
+
// (Alex Garcia's official builds, CR-SQLite integration, etc.).
|
|
538
|
+
// For now, return false so the VectorStore stays in fallback mode.
|
|
539
|
+
return false;
|
|
540
|
+
},
|
|
541
|
+
};
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
/**
|
|
545
|
+
* Factory to create a VectorStore backed by SqliteWasmEngine/sql.js.
|
|
546
|
+
*
|
|
547
|
+
* Example usage (browser):
|
|
548
|
+
*
|
|
549
|
+
* const engine = new SqliteWasmEngine();
|
|
550
|
+
* await engine.init(wasmUrl, existingData);
|
|
551
|
+
* const vecStore = createWasmVectorStore(engine.getRawDb());
|
|
552
|
+
*/
|
|
553
|
+
export function createWasmVectorStore(wasmDb, config) {
|
|
554
|
+
const adapter = new SqlJsVectorAdapter(wasmDb);
|
|
555
|
+
return new MCardVectorStore(adapter, config);
|
|
556
|
+
}
|
|
557
|
+
//# sourceMappingURL=VectorStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VectorStore.js","sourceRoot":"","sources":["../../src/storage/VectorStore.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EACH,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,EACpB,MAAM,UAAU,CAAC;AAElB,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAqB/C,wCAAwC;AACxC,MAAM,OAAO,mBAAmB;IACR;IAApB,YAAoB,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAI,CAAC;IAE9C,IAAI,CAAC,GAAW;QACZ,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,CAAC,GAAW;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO;YACH,GAAG,EAAE,CAAC,GAAG,MAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YAClD,GAAG,EAAE,CAAC,GAAG,MAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YAClD,GAAG,EAAE,CAAC,GAAG,MAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YAClD,gBAAgB,EAAE,CAAC,UAAkB,EAAE,EAAE;gBACrC,IAAI,CAAC;oBACD,kEAAkE;oBAClE,qBAAqB;oBACrB,8DAA8D;oBAC9D,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;oBACxC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAExB,wCAAwC;oBACxC,gFAAgF;oBAChF,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;oBACzC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACrB,OAAO,IAAI,CAAC;gBAChB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,EAAE,CAAC,CAAC;oBAC7E,OAAO,KAAK,CAAC;gBACjB,CAAC;YACL,CAAC;SACJ,CAAC;IACN,CAAC;CACJ;AAqBD,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACpD,cAAc,EAAE,kBAAkB;IAClC,UAAU,EAAE,GAAG;IACf,aAAa,EAAE,wBAAwB;IACvC,SAAS,EAAE,GAAG;IACd,YAAY,EAAE,EAAE;IAChB,kBAAkB,EAAE,IAAI;CAC3B,CAAC;AAaF,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAgB;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAW,EAAE,CAAW;IACrD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEzB,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACzC,OAAO,UAAU,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;AACxC,CAAC;AAcD,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,MAAM,OAAO,gBAAgB;IACf,EAAE,CAAW;IACb,MAAM,CAAoB;IAC1B,eAAe,GAAY,KAAK,CAAC;IAE3C;;;;;OAKG;IACH,YAAY,WAA8B,UAAU,EAAE,MAAmC;QACrF,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,qBAAqB,EAAE,GAAG,MAAM,EAAE,CAAC;QAEtD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,CAAC,EAAE,GAAG,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACK,YAAY;QAChB,sCAAsC;QACtC,0DAA0D;QAC1D,IAAI,CAAC;YACD,8DAA8D;YAC9D,MAAM,MAAM,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;YAEzC,wBAAwB;YACxB,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;YAChE,IAAI,cAAc,EAAE,CAAC;gBACjB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACjC,CAAC;YAED,iBAAiB;YACjB,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,aAAa,EAAE,CAAC;gBAChB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAChC,CAAC;YAED,4BAA4B;YAC5B,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;YAC7D,IAAI,gBAAgB,EAAE,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACnC,CAAC;YAED,8BAA8B;YAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;gBACjC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAC/C,IAAI,SAAS,EAAE,CAAC;oBACZ,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC5B,CAAC;YACL,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,2EAA2E;YAC3E,6DAA6D;YAC7D,OAAO,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;YAClF,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAChC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,oBAAoB;QACxB,IAAI,CAAC;YAED,IAAI,sBAAsB,EAAE,CAAC;gBACzB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,qBAAqB,EAAE,CAAC;gBACxB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,wBAAwB,EAAE,CAAC;gBAC3B,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,iBAAiB,EAAE,CAAC;gBACtD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACpC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,0DAA0D,EAAE,CAAC,CAAC,CAAC;YAC7E,MAAM,CAAC,CAAC;QACZ,CAAC;IACL,CAAC;IAED;;OAEG;IACK,mBAAmB;QACvB,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,EAAS,CAAC;YAC7B,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBACtC,yEAAyE;gBACzE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC3C,IAAI,OAAO,QAAQ,CAAC,gBAAgB,KAAK,UAAU,EAAE,CAAC;oBAClD,MAAM,EAAE,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBAC7D,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;oBAC1B,OAAO,EAAE,CAAC;gBACd,CAAC;YACL,CAAC;YAED,mDAAmD;YACnD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,OAAO,KAAK,CAAC;QACjB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,sDAAsD,CAAC,mBAAmB,CAAC,CAAC;YACzF,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,IAAY;QACpB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,iBAAiB,EAAE;YACxE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACjB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;gBACjC,MAAM,EAAE,IAAI;aACf,CAAC;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA6B,CAAC;QAC9D,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CACP,IAAY,EACZ,OAAe,EACf,QAAkC,EAClC,QAAiB,IAAI;QAErB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAE/C,IAAI,CAAC;gBACD,qBAAqB;gBACrB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAEjD,gEAAgE;gBAChE,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;iBAIlC,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CACzB,IAAI,EACJ,IAAI,CAAC,MAAM,CAAC,cAAc,EAC1B,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,CAAC,EACD,MAAM,CAAC,MAAM,EACb,OAAO,EACP,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAC3B,CAAC;gBAEF,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC;gBACtC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;gBACxE,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE7B,kBAAkB;gBAClB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;oBACvB,oDAAoD;oBACpD,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;qBAGjC,CAAC,CAAC;oBACH,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;gBACrD,CAAC;qBAAM,CAAC;oBACJ,kEAAkE;oBAClE,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;qBAGjC,CAAC,CAAC;oBACH,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;gBACrD,CAAC;gBAED,wCAAwC;gBACxC,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;oBACjC,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;qBAGjC,CAAC,CAAC;oBACH,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBACtC,CAAC;gBAED,OAAO,EAAE,CAAC;YACd,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpE,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,IAAY,CAAC;QACrC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE/C,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,cAAwB,EAAE,CAAS;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;wBAWb,CAAC;;;;SAIhB,CAAC,CAAC;QAEH,oCAAoC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,cAAc,CAAC,CAKnD,CAAC;QAEH,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,iCAAiC;YAC1D,OAAO,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;YACpC,UAAU,EAAE,GAAG,CAAC,WAAW;SAC9B,CAAC,CAAC,CAAC;IACR,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,cAAwB,EAAE,CAAS;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;SAI5B,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAMnB,CAAC;QAEH,yBAAyB;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,UAAU,EAAE,GAAG,CAAC,WAAW;YAC3B,OAAO,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;YACpC,KAAK,EAAE,gBAAgB,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SAC5E,CAAC,CAAC,CAAC;QAEJ,2BAA2B;QAC3B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAEzC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CACd,KAAa,EACb,IAAY,CAAC,EACb,eAAuB,GAAG;QAE1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;QAED,qBAAqB;QACrB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAEtD,kBAAkB;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;SAM/B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAGtC,CAAC;QAEH,sCAAsC;QACtC,MAAM,MAAM,GAAG,IAAI,GAAG,EAA8B,CAAC;QAErD,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE;gBACpB,GAAG,MAAM;gBACT,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,YAAY;aACrC,CAAC,CAAC;QACP,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,GAAG,YAAY,CAAC;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEtE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,SAAS,CAAC;YACnE,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEtC,IAAI,QAAQ,EAAE,CAAC;gBACX,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE;oBACjB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,KAAK,EAAE,QAAQ;iBAClB,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,wBAAwB;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,IAAY;QAC1B,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAEhD,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YACpC,KAAK,IAAI,SAAS,GAAG,YAAY,CAAC;QACtC,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC;QACpF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAmC,CAAC;QAC1D,OAAO,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC;QAChF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAA6B,CAAC;QACnD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,WAAW;QACP,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,iEAAiE,CAAC,CAAC;QAChG,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAmC,CAAC;QACxD,OAAO,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAY;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC;QACtF,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAA0B,CAAC;QAEtD,KAAK,MAAM,EAAE,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC3E,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClF,CAAC;QACL,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;QACvF,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEpC,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACjC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtE,CAAC;QAED,OAAO,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK;QACD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAElD,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACjC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;IAED;;OAEG;IACH,kBAAkB;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,OAAO;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,OAAO;YACH,WAAW,EAAE,KAAK;YAClB,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;YAC1C,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAClC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB;SACrD,CAAC;IACN,CAAC;IAED;;OAEG;IACH,KAAK;QACD,wEAAwE;QACxE,0DAA0D;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,EAAS,CAAC;QAC7B,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YACpC,KAAK,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;IACL,CAAC;CACJ;AAgBD;;;;;;;GAOG;AACH,MAAM,OAAO,kBAAkB;IACP;IAApB,YAAoB,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAI,CAAC;IAE9C,IAAI,CAAC,GAAW;QACZ,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,IAAY;QAChB,oEAAoE;QACpE,kCAAkC;QAClC,wBAAwB;QACxB,sDAAsD;QACtD,4BAA4B;QAC5B,iEAAiE;QACjE,oEAAoE;QACpE,kCAAkC;QAClC,OAAO;YACH,GAAG,EAAE,CAAC,GAAG,OAAkB,EAAE,EAAE,CAAC,CAAC,EAAqD,CAAA;YACtF,GAAG,EAAE,CAAC,GAAG,OAAkB,EAAE,EAAE,CAAC,EAAW;YAC3C,GAAG,EAAE,CAAC,GAAG,OAAkB,EAAE,EAAE,CAAC,SAAgB;YAChD,gBAAgB,EAAE,CAAC,WAAmB,EAAE,EAAE;gBACtC,wDAAwD;gBACxD,6DAA6D;gBAC7D,gEAAgE;gBAChE,mEAAmE;gBACnE,OAAO,KAAK,CAAC;YACjB,CAAC;SACJ,CAAC;IACN,CAAC;CACJ;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACjC,MAAyB,EACzB,MAAmC;IAEnC,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC/C,OAAO,IAAI,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC"}
|