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,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM Runtime Module
|
|
3
|
+
*
|
|
4
|
+
* Provides LLMRuntime for executing LLM prompts as part of the PTR polyglot runtime system.
|
|
5
|
+
* Replicates mcard.ptr.core.llm.runtime.LLMRuntime
|
|
6
|
+
*/
|
|
7
|
+
import { LLMConfig, DEFAULT_PROVIDER } from './Config.js';
|
|
8
|
+
import { OllamaProvider } from './providers/OllamaProvider.js';
|
|
9
|
+
import { WebLLMProvider } from './providers/WebLLMProvider.js';
|
|
10
|
+
import { MLCLLMProvider } from './providers/MLCLLMProvider.js';
|
|
11
|
+
import { IO } from '../../monads/IO.js';
|
|
12
|
+
import { Either } from '../../monads/Either.js';
|
|
13
|
+
export function get_provider(provider_name = DEFAULT_PROVIDER, base_url = null, timeout = 120) {
|
|
14
|
+
if (provider_name === 'ollama') {
|
|
15
|
+
return new OllamaProvider(base_url, timeout);
|
|
16
|
+
}
|
|
17
|
+
if (provider_name === 'webllm') {
|
|
18
|
+
return new WebLLMProvider();
|
|
19
|
+
}
|
|
20
|
+
if (provider_name === 'mlc-llm') {
|
|
21
|
+
return new MLCLLMProvider(base_url, timeout);
|
|
22
|
+
}
|
|
23
|
+
// Future: lmstudio, openai
|
|
24
|
+
throw new Error(`Unknown provider: ${provider_name}`);
|
|
25
|
+
}
|
|
26
|
+
export class LLMRuntime {
|
|
27
|
+
provider_name;
|
|
28
|
+
_provider = null;
|
|
29
|
+
constructor(provider_name = DEFAULT_PROVIDER) {
|
|
30
|
+
this.provider_name = provider_name;
|
|
31
|
+
}
|
|
32
|
+
get provider() {
|
|
33
|
+
if (!this._provider) {
|
|
34
|
+
this._provider = get_provider(this.provider_name);
|
|
35
|
+
}
|
|
36
|
+
return this._provider;
|
|
37
|
+
}
|
|
38
|
+
async execute(codeOrPath, context, config, chapterDir) {
|
|
39
|
+
// In Python, execute signature is (concrete_impl, target, context)
|
|
40
|
+
// In JS, it is (codeOrPath, context, config, chapterDir)
|
|
41
|
+
// If context is a string, it's the prompt, not config overrides.
|
|
42
|
+
let configCtx = {};
|
|
43
|
+
if (typeof context === 'object' && context !== null) {
|
|
44
|
+
configCtx = context;
|
|
45
|
+
}
|
|
46
|
+
const concrete = config;
|
|
47
|
+
// Build configuration
|
|
48
|
+
const llmConfig = LLMConfig.from_concrete(concrete, configCtx);
|
|
49
|
+
// Update provider if different
|
|
50
|
+
if (llmConfig.provider !== this.provider_name) {
|
|
51
|
+
this._provider = get_provider(llmConfig.provider, llmConfig.endpoint_url, llmConfig.timeout);
|
|
52
|
+
}
|
|
53
|
+
// Get prompt from target (context/input)
|
|
54
|
+
let prompt = '';
|
|
55
|
+
if (typeof context === 'string') {
|
|
56
|
+
prompt = context;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
// If it's an object, we use it as JSON
|
|
60
|
+
// Future: support extracting specific field like 'question' or 'prompt' if defined in CLM inputs?
|
|
61
|
+
// For now, just dump it.
|
|
62
|
+
prompt = JSON.stringify(context);
|
|
63
|
+
}
|
|
64
|
+
// Execute
|
|
65
|
+
let result;
|
|
66
|
+
if (llmConfig.system_prompt) {
|
|
67
|
+
result = await this._execute_chat(prompt, llmConfig);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
result = await this._execute_completion(prompt, llmConfig);
|
|
71
|
+
}
|
|
72
|
+
if (result.isLeft) {
|
|
73
|
+
return `Error: ${result.left}`;
|
|
74
|
+
}
|
|
75
|
+
return this._format_response(result.right, llmConfig);
|
|
76
|
+
}
|
|
77
|
+
async _execute_completion(prompt, config) {
|
|
78
|
+
const params = config.to_provider_params();
|
|
79
|
+
return this.provider.complete(prompt, params);
|
|
80
|
+
}
|
|
81
|
+
async _execute_chat(prompt, config) {
|
|
82
|
+
const messages = [];
|
|
83
|
+
if (config.system_prompt) {
|
|
84
|
+
messages.push({ role: 'system', content: config.system_prompt });
|
|
85
|
+
}
|
|
86
|
+
messages.push({ role: 'user', content: prompt });
|
|
87
|
+
if (config.assistant_instruction) {
|
|
88
|
+
messages.push({ role: 'assistant', content: config.assistant_instruction });
|
|
89
|
+
}
|
|
90
|
+
const params = config.to_provider_params();
|
|
91
|
+
return this.provider.chat(messages, params);
|
|
92
|
+
}
|
|
93
|
+
_format_response(response, config) {
|
|
94
|
+
let content = response;
|
|
95
|
+
if (response && typeof response === 'object' && 'content' in response) {
|
|
96
|
+
content = response.content;
|
|
97
|
+
}
|
|
98
|
+
if (config.response_format === 'json') {
|
|
99
|
+
try {
|
|
100
|
+
if (typeof content === 'string') {
|
|
101
|
+
const start = content.indexOf('{');
|
|
102
|
+
const end = content.lastIndexOf('}') + 1;
|
|
103
|
+
if (start >= 0 && end > start) {
|
|
104
|
+
return JSON.parse(content.substring(start, end));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return content;
|
|
108
|
+
}
|
|
109
|
+
catch (e) {
|
|
110
|
+
return content;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return content;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
117
|
+
// Monadic Interface Functions
|
|
118
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
119
|
+
/**
|
|
120
|
+
* Create a monadic LLM completion execution.
|
|
121
|
+
*
|
|
122
|
+
* Returns IO<Either<string, any>> for functional composition.
|
|
123
|
+
*/
|
|
124
|
+
export function promptMonad(prompt, config = {}) {
|
|
125
|
+
return IO.of(async () => {
|
|
126
|
+
try {
|
|
127
|
+
// Instantiate config to get provider and defaults
|
|
128
|
+
// We cast config to any because LLMConfig constructor expects Partial<LLMConfig>
|
|
129
|
+
// but our partial might miss some index signature stuff if any.
|
|
130
|
+
// Actually config is Partial<LLMConfig> so it's fine.
|
|
131
|
+
const llmConfig = new LLMConfig(config);
|
|
132
|
+
const runtime = new LLMRuntime(llmConfig.provider);
|
|
133
|
+
const params = llmConfig.to_provider_params();
|
|
134
|
+
return runtime.provider.complete(prompt, params);
|
|
135
|
+
}
|
|
136
|
+
catch (e) {
|
|
137
|
+
return Either.left(`LLM execution failed: ${e}`);
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Create a monadic LLM chat execution.
|
|
143
|
+
*
|
|
144
|
+
* Returns IO<Either<string, any>> for functional composition.
|
|
145
|
+
*/
|
|
146
|
+
export function chatMonad(messages = null, prompt = null, system_prompt = "", config = {}) {
|
|
147
|
+
return IO.of(async () => {
|
|
148
|
+
try {
|
|
149
|
+
// Merge system prompt into config if provided
|
|
150
|
+
const configData = { ...config };
|
|
151
|
+
if (system_prompt)
|
|
152
|
+
configData.system_prompt = system_prompt;
|
|
153
|
+
const llmConfig = new LLMConfig(configData);
|
|
154
|
+
const runtime = new LLMRuntime(llmConfig.provider);
|
|
155
|
+
// Build messages if not provided
|
|
156
|
+
const msgs = messages ? [...messages] : [];
|
|
157
|
+
if (msgs.length === 0) {
|
|
158
|
+
if (llmConfig.system_prompt) {
|
|
159
|
+
msgs.push({ role: 'system', content: llmConfig.system_prompt });
|
|
160
|
+
}
|
|
161
|
+
if (prompt) {
|
|
162
|
+
msgs.push({ role: 'user', content: prompt });
|
|
163
|
+
}
|
|
164
|
+
if (llmConfig.assistant_instruction) {
|
|
165
|
+
msgs.push({ role: 'assistant', content: llmConfig.assistant_instruction });
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
const params = llmConfig.to_provider_params();
|
|
169
|
+
return runtime.provider.chat(msgs, params);
|
|
170
|
+
}
|
|
171
|
+
catch (e) {
|
|
172
|
+
return Either.left(`LLM chat failed: ${e}`);
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=LLMRuntime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LLMRuntime.js","sourceRoot":"","sources":["../../../src/ptr/llm/LLMRuntime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,MAAM,UAAU,YAAY,CACxB,gBAAwB,gBAAgB,EACxC,WAA0B,IAAI,EAC9B,UAAkB,GAAG;IAErB,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,cAAc,EAAE,CAAC;IAChC,CAAC;IACD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,IAAI,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IACD,2BAA2B;IAC3B,MAAM,IAAI,KAAK,CAAC,qBAAqB,aAAa,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,OAAO,UAAU;IACnB,aAAa,CAAS;IACd,SAAS,GAAuB,IAAI,CAAC;IAE7C,YAAY,gBAAwB,gBAAgB;QAChD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;IAED,IAAI,QAAQ;QACR,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,OAAgB,EAAE,MAAW,EAAE,UAAkB;QAC/E,mEAAmE;QACnE,yDAAyD;QAEzD,iEAAiE;QACjE,IAAI,SAAS,GAAwB,EAAE,CAAC;QACxC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YAClD,SAAS,GAAG,OAA8B,CAAC;QAC/C,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC;QAExB,sBAAsB;QACtB,MAAM,SAAS,GAAG,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAE/D,+BAA+B;QAC/B,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;YAC5C,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;QACjG,CAAC;QAED,yCAAyC;QACzC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,GAAG,OAAO,CAAC;QACrB,CAAC;aAAM,CAAC;YACJ,uCAAuC;YACvC,kGAAkG;YAClG,yBAAyB;YACzB,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QAED,UAAU;QACV,IAAI,MAAM,CAAC;QACX,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;YAC1B,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,UAAU,MAAM,CAAC,IAAI,EAAE,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,MAAc,EAAE,MAAiB;QAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,MAAiB;QACzD,MAAM,QAAQ,GAAU,EAAE,CAAC;QAE3B,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAEjD,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAEO,gBAAgB,CAAC,QAAa,EAAE,MAAiB;QACrD,IAAI,OAAO,GAAG,QAAQ,CAAC;QACvB,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;YACpE,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC/B,CAAC;QAED,IAAI,MAAM,CAAC,eAAe,KAAK,MAAM,EAAE,CAAC;YACpC,IAAI,CAAC;gBACD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACnC,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACzC,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;wBAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;oBACrD,CAAC;gBACL,CAAC;gBACD,OAAO,OAAO,CAAC;YACnB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,OAAO,CAAC;YACnB,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AAED,gFAAgF;AAChF,8BAA8B;AAC9B,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACvB,MAAc,EACd,SAA6B,EAAE;IAE/B,OAAO,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE;QACpB,IAAI,CAAC;YACD,kDAAkD;YAClD,kFAAkF;YAClF,gEAAgE;YAChE,sDAAsD;YACtD,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,MAAa,CAAC,CAAC;YAE/C,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,SAAS,CAAC,kBAAkB,EAAE,CAAC;YAE9C,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAErD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,MAAM,CAAC,IAAI,CAAc,yBAAyB,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CACrB,WAAyB,IAAI,EAC7B,SAAwB,IAAI,EAC5B,gBAAwB,EAAE,EAC1B,SAA6B,EAAE;IAG/B,OAAO,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE;QACpB,IAAI,CAAC;YACD,8CAA8C;YAC9C,MAAM,UAAU,GAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;YACtC,IAAI,aAAa;gBAAE,UAAU,CAAC,aAAa,GAAG,aAAa,CAAC;YAE5D,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAEnD,iCAAiC;YACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpB,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;oBAC1B,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC;gBACpE,CAAC;gBACD,IAAI,MAAM,EAAE,CAAC;oBACT,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;gBACjD,CAAC;gBACD,IAAI,SAAS,CAAC,qBAAqB,EAAE,CAAC;oBAClC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,qBAAqB,EAAE,CAAC,CAAC;gBAC/E,CAAC;YACL,CAAC;YAED,MAAM,MAAM,GAAG,SAAS,CAAC,kBAAkB,EAAE,CAAC;YAC9C,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE/C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,MAAM,CAAC,IAAI,CAAc,oBAAoB,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM Provider Interface
|
|
3
|
+
*
|
|
4
|
+
* Abstract interface for LLM providers.
|
|
5
|
+
* Replicates mcard.ptr.core.llm.providers.base.LLMProvider
|
|
6
|
+
*/
|
|
7
|
+
import { Either } from '../../../monads/Either';
|
|
8
|
+
export interface ChatMessage {
|
|
9
|
+
role: string;
|
|
10
|
+
content: string;
|
|
11
|
+
}
|
|
12
|
+
export interface LLMProvider {
|
|
13
|
+
provider_name: string;
|
|
14
|
+
/**
|
|
15
|
+
* Generate text completion for a prompt.
|
|
16
|
+
*/
|
|
17
|
+
complete(prompt: string, params: Record<string, any>): Promise<Either<string, string>>;
|
|
18
|
+
/**
|
|
19
|
+
* Generate chat completion from messages.
|
|
20
|
+
*/
|
|
21
|
+
chat(messages: ChatMessage[], params: Record<string, any>): Promise<Either<string, Record<string, any>>>;
|
|
22
|
+
/**
|
|
23
|
+
* Check if the provider service is available.
|
|
24
|
+
*/
|
|
25
|
+
validate_connection(): Promise<boolean>;
|
|
26
|
+
/**
|
|
27
|
+
* List available models from the provider.
|
|
28
|
+
*/
|
|
29
|
+
list_models(): Promise<Either<string, string[]>>;
|
|
30
|
+
/**
|
|
31
|
+
* Get provider status information.
|
|
32
|
+
*/
|
|
33
|
+
get_status(): Promise<Record<string, any>>;
|
|
34
|
+
}
|
|
35
|
+
export declare abstract class BaseLLMProvider implements LLMProvider {
|
|
36
|
+
abstract provider_name: string;
|
|
37
|
+
abstract complete(prompt: string, params: Record<string, any>): Promise<Either<string, string>>;
|
|
38
|
+
abstract chat(messages: ChatMessage[], params: Record<string, any>): Promise<Either<string, Record<string, any>>>;
|
|
39
|
+
abstract validate_connection(): Promise<boolean>;
|
|
40
|
+
abstract list_models(): Promise<Either<string, string[]>>;
|
|
41
|
+
get_status(): Promise<Record<string, any>>;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=LLMProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LLMProvider.d.ts","sourceRoot":"","sources":["../../../../src/ptr/llm/providers/LLMProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IACxB,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAEvF;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAEzG;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAExC;;OAEG;IACH,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAEjD;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;CAC9C;AAED,8BAAsB,eAAgB,YAAW,WAAW;IACxD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/F,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACjH,QAAQ,CAAC,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAChD,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAEnD,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAsBnD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM Provider Interface
|
|
3
|
+
*
|
|
4
|
+
* Abstract interface for LLM providers.
|
|
5
|
+
* Replicates mcard.ptr.core.llm.providers.base.LLMProvider
|
|
6
|
+
*/
|
|
7
|
+
export class BaseLLMProvider {
|
|
8
|
+
async get_status() {
|
|
9
|
+
const available = await this.validate_connection();
|
|
10
|
+
let models = [];
|
|
11
|
+
if (available) {
|
|
12
|
+
const result = await this.list_models();
|
|
13
|
+
if (result.isRight) {
|
|
14
|
+
models = result.right;
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
models = result.left; // Error message
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
models = "Not connected";
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
provider: this.provider_name,
|
|
25
|
+
available,
|
|
26
|
+
models: Array.isArray(models) ? models : [],
|
|
27
|
+
error: typeof models === 'string' ? models : null
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=LLMProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LLMProvider.js","sourceRoot":"","sources":["../../../../src/ptr/llm/providers/LLMProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAsCH,MAAM,OAAgB,eAAe;IAQjC,KAAK,CAAC,UAAU;QACZ,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACnD,IAAI,MAAM,GAAsB,EAAE,CAAC;QAEnC,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACxC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,gBAAgB;YAC1C,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,eAAe,CAAC;QAC7B,CAAC;QAED,OAAO;YACH,QAAQ,EAAE,IAAI,CAAC,aAAa;YAC5B,SAAS;YACT,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAC3C,KAAK,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;SACpD,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MLC LLM Provider Implementation
|
|
3
|
+
*
|
|
4
|
+
* Provider for the MLC LLM REST API (OpenAI compatible).
|
|
5
|
+
* Typically running via `mlc_llm serve`.
|
|
6
|
+
*/
|
|
7
|
+
import { BaseLLMProvider, ChatMessage } from './LLMProvider.js';
|
|
8
|
+
import { Either } from '../../../monads/Either.js';
|
|
9
|
+
export declare class MLCLLMProvider extends BaseLLMProvider {
|
|
10
|
+
provider_name: string;
|
|
11
|
+
private base_url;
|
|
12
|
+
private timeout;
|
|
13
|
+
private config;
|
|
14
|
+
constructor(base_url?: string | null, timeout?: number);
|
|
15
|
+
private _fetch_json;
|
|
16
|
+
private _node_request;
|
|
17
|
+
complete(prompt: string, params: Record<string, any>): Promise<Either<string, string>>;
|
|
18
|
+
chat(messages: ChatMessage[], params: Record<string, any>): Promise<Either<string, Record<string, any>>>;
|
|
19
|
+
validate_connection(): Promise<boolean>;
|
|
20
|
+
list_models(): Promise<Either<string, string[]>>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=MLCLLMProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MLCLLMProvider.d.ts","sourceRoot":"","sources":["../../../../src/ptr/llm/providers/MLCLLMProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAKnD,qBAAa,cAAe,SAAQ,eAAe;IAC/C,aAAa,SAAa;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAM;gBAER,QAAQ,GAAE,MAAM,GAAG,IAAW,EAAE,OAAO,GAAE,MAAY;YAOnD,WAAW;IA2BzB,OAAO,CAAC,aAAa;IA0Cf,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IA2BtF,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAgCxG,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAKvC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAWzD"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MLC LLM Provider Implementation
|
|
3
|
+
*
|
|
4
|
+
* Provider for the MLC LLM REST API (OpenAI compatible).
|
|
5
|
+
* Typically running via `mlc_llm serve`.
|
|
6
|
+
*/
|
|
7
|
+
import { BaseLLMProvider } from './LLMProvider.js';
|
|
8
|
+
import { Either } from '../../../monads/Either.js';
|
|
9
|
+
import { LLM_PROVIDERS } from '../Config.js';
|
|
10
|
+
import * as http from 'http';
|
|
11
|
+
import * as https from 'https';
|
|
12
|
+
export class MLCLLMProvider extends BaseLLMProvider {
|
|
13
|
+
provider_name = 'mlc-llm';
|
|
14
|
+
base_url;
|
|
15
|
+
timeout;
|
|
16
|
+
config;
|
|
17
|
+
constructor(base_url = null, timeout = 120) {
|
|
18
|
+
super();
|
|
19
|
+
this.config = LLM_PROVIDERS['mlc-llm'];
|
|
20
|
+
this.base_url = (base_url || this.config.base_url).replace(/\/$/, '');
|
|
21
|
+
this.timeout = timeout * 1000;
|
|
22
|
+
}
|
|
23
|
+
async _fetch_json(endpoint, options) {
|
|
24
|
+
// Prefer native fetch if available (Node 18+, Browser)
|
|
25
|
+
if (typeof globalThis.fetch === 'function') {
|
|
26
|
+
try {
|
|
27
|
+
const controller = new AbortController();
|
|
28
|
+
const id = setTimeout(() => controller.abort(), this.timeout);
|
|
29
|
+
const response = await fetch(`${this.base_url}${endpoint}`, {
|
|
30
|
+
...options,
|
|
31
|
+
signal: controller.signal
|
|
32
|
+
});
|
|
33
|
+
clearTimeout(id);
|
|
34
|
+
if (!response.ok) {
|
|
35
|
+
return Either.left(`HTTP error ${response.status}: ${await response.text()}`);
|
|
36
|
+
}
|
|
37
|
+
const data = await response.json();
|
|
38
|
+
return Either.right(data);
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
return Either.left(`Connection error: ${e.message}`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// Fallback to http/https module for older environments (unlikely given engine constraint but safe)
|
|
45
|
+
return this._node_request(endpoint, options);
|
|
46
|
+
}
|
|
47
|
+
_node_request(endpoint, options) {
|
|
48
|
+
const urlStr = `${this.base_url}${endpoint}`;
|
|
49
|
+
const url = new URL(urlStr);
|
|
50
|
+
const isHttps = url.protocol === 'https:';
|
|
51
|
+
const client = isHttps ? https : http;
|
|
52
|
+
const reqOptions = {
|
|
53
|
+
method: options.method || 'GET',
|
|
54
|
+
headers: options.headers || {},
|
|
55
|
+
timeout: this.timeout,
|
|
56
|
+
};
|
|
57
|
+
return new Promise((resolve) => {
|
|
58
|
+
const req = client.request(url, reqOptions, (res) => {
|
|
59
|
+
let body = '';
|
|
60
|
+
res.on('data', (chunk) => body += chunk);
|
|
61
|
+
res.on('end', () => {
|
|
62
|
+
if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {
|
|
63
|
+
try {
|
|
64
|
+
resolve(Either.right(JSON.parse(body)));
|
|
65
|
+
}
|
|
66
|
+
catch (e) {
|
|
67
|
+
resolve(Either.left(`Parse error: ${e}`));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
resolve(Either.left(`HTTP Error ${res.statusCode}: ${body}`));
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
req.on('error', (e) => resolve(Either.left(e.message)));
|
|
76
|
+
req.on('timeout', () => {
|
|
77
|
+
req.destroy();
|
|
78
|
+
resolve(Either.left('Request timed out'));
|
|
79
|
+
});
|
|
80
|
+
if (options.body) {
|
|
81
|
+
req.write(options.body);
|
|
82
|
+
}
|
|
83
|
+
req.end();
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
async complete(prompt, params) {
|
|
87
|
+
// MLC LLM / OpenAI 'completions' endpoint
|
|
88
|
+
const data = {
|
|
89
|
+
model: params.model || this.config.default_model,
|
|
90
|
+
prompt: prompt,
|
|
91
|
+
max_tokens: params.max_tokens,
|
|
92
|
+
temperature: params.temperature,
|
|
93
|
+
top_p: params.top_p,
|
|
94
|
+
stream: false
|
|
95
|
+
};
|
|
96
|
+
const result = await this._fetch_json(this.config.api_path, {
|
|
97
|
+
method: 'POST',
|
|
98
|
+
headers: { 'Content-Type': 'application/json' },
|
|
99
|
+
body: JSON.stringify(data)
|
|
100
|
+
});
|
|
101
|
+
if (result.isLeft)
|
|
102
|
+
return Either.left(result.left);
|
|
103
|
+
const response = result.right;
|
|
104
|
+
// OpenAI format: choices[0].text
|
|
105
|
+
if (response.choices && response.choices.length > 0) {
|
|
106
|
+
return Either.right(response.choices[0].text || '');
|
|
107
|
+
}
|
|
108
|
+
return Either.left(`Unexpected response format: ${JSON.stringify(response)}`);
|
|
109
|
+
}
|
|
110
|
+
async chat(messages, params) {
|
|
111
|
+
const data = {
|
|
112
|
+
model: params.model || this.config.default_model,
|
|
113
|
+
messages: messages,
|
|
114
|
+
max_tokens: params.max_tokens,
|
|
115
|
+
temperature: params.temperature,
|
|
116
|
+
top_p: params.top_p,
|
|
117
|
+
stream: false
|
|
118
|
+
};
|
|
119
|
+
const result = await this._fetch_json(this.config.chat_path, {
|
|
120
|
+
method: 'POST',
|
|
121
|
+
headers: { 'Content-Type': 'application/json' },
|
|
122
|
+
body: JSON.stringify(data)
|
|
123
|
+
});
|
|
124
|
+
if (result.isLeft)
|
|
125
|
+
return Either.left(result.left);
|
|
126
|
+
const response = result.right;
|
|
127
|
+
// OpenAI format: choices[0].message
|
|
128
|
+
if (response.choices && response.choices.length > 0) {
|
|
129
|
+
const message = response.choices[0].message;
|
|
130
|
+
return Either.right({
|
|
131
|
+
content: message.content,
|
|
132
|
+
role: message.role,
|
|
133
|
+
model: response.model,
|
|
134
|
+
usage: response.usage
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
return Either.left(`Unexpected response format: ${JSON.stringify(response)}`);
|
|
138
|
+
}
|
|
139
|
+
async validate_connection() {
|
|
140
|
+
const result = await this._fetch_json(this.config.models_path, { method: 'GET' });
|
|
141
|
+
return result.isRight;
|
|
142
|
+
}
|
|
143
|
+
async list_models() {
|
|
144
|
+
const result = await this._fetch_json(this.config.models_path, { method: 'GET' });
|
|
145
|
+
if (result.isLeft)
|
|
146
|
+
return Either.left(result.left);
|
|
147
|
+
const response = result.right;
|
|
148
|
+
// OpenAI format: { data: [{ id: 'model-id', ... }] }
|
|
149
|
+
if (response.data && Array.isArray(response.data)) {
|
|
150
|
+
return Either.right(response.data.map((m) => m.id));
|
|
151
|
+
}
|
|
152
|
+
return Either.left('Invalid models response');
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=MLCLLMProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MLCLLMProvider.js","sourceRoot":"","sources":["../../../../src/ptr/llm/providers/MLCLLMProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ollama Embedding Provider
|
|
3
|
+
*
|
|
4
|
+
* Generates embeddings using Ollama models (e.g., nomic-embed-text).
|
|
5
|
+
*/
|
|
6
|
+
import { EmbeddingProvider } from '../../../storage/VectorStore';
|
|
7
|
+
export declare class OllamaEmbeddingProvider implements EmbeddingProvider {
|
|
8
|
+
readonly modelName: string;
|
|
9
|
+
private baseUrl;
|
|
10
|
+
constructor(modelName?: string, baseUrl?: string);
|
|
11
|
+
/**
|
|
12
|
+
* Generate embedding for a single text string
|
|
13
|
+
*/
|
|
14
|
+
embed(text: string): Promise<number[]>;
|
|
15
|
+
/**
|
|
16
|
+
* Generate embeddings for a batch of texts
|
|
17
|
+
*/
|
|
18
|
+
embedBatch(texts: string[]): Promise<number[][]>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=OllamaEmbeddingProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OllamaEmbeddingProvider.d.ts","sourceRoot":"","sources":["../../../../src/ptr/llm/providers/OllamaEmbeddingProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,qBAAa,uBAAwB,YAAW,iBAAiB;IAC7D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,OAAO,CAAS;gBAEZ,SAAS,GAAE,MAA2B,EAAE,OAAO,GAAE,MAAiC;IAK9F;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAkB5C;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;CAOzD"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ollama Embedding Provider
|
|
3
|
+
*
|
|
4
|
+
* Generates embeddings using Ollama models (e.g., nomic-embed-text).
|
|
5
|
+
*/
|
|
6
|
+
export class OllamaEmbeddingProvider {
|
|
7
|
+
modelName;
|
|
8
|
+
baseUrl;
|
|
9
|
+
constructor(modelName = 'nomic-embed-text', baseUrl = 'http://localhost:11434') {
|
|
10
|
+
this.modelName = modelName;
|
|
11
|
+
this.baseUrl = baseUrl.replace(/\/$/, '');
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Generate embedding for a single text string
|
|
15
|
+
*/
|
|
16
|
+
async embed(text) {
|
|
17
|
+
const response = await fetch(`${this.baseUrl}/api/embeddings`, {
|
|
18
|
+
method: 'POST',
|
|
19
|
+
headers: { 'Content-Type': 'application/json' },
|
|
20
|
+
body: JSON.stringify({
|
|
21
|
+
model: this.modelName,
|
|
22
|
+
prompt: text,
|
|
23
|
+
}),
|
|
24
|
+
});
|
|
25
|
+
if (!response.ok) {
|
|
26
|
+
throw new Error(`Ollama embedding failed: ${response.status} ${response.statusText}`);
|
|
27
|
+
}
|
|
28
|
+
const data = await response.json();
|
|
29
|
+
return data.embedding;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Generate embeddings for a batch of texts
|
|
33
|
+
*/
|
|
34
|
+
async embedBatch(texts) {
|
|
35
|
+
const embeddings = [];
|
|
36
|
+
for (const text of texts) {
|
|
37
|
+
embeddings.push(await this.embed(text));
|
|
38
|
+
}
|
|
39
|
+
return embeddings;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=OllamaEmbeddingProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OllamaEmbeddingProvider.js","sourceRoot":"","sources":["../../../../src/ptr/llm/providers/OllamaEmbeddingProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,OAAO,uBAAuB;IACvB,SAAS,CAAS;IACnB,OAAO,CAAS;IAExB,YAAY,YAAoB,kBAAkB,EAAE,UAAkB,wBAAwB;QAC1F,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,IAAY;QACpB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,iBAAiB,EAAE;YAC3D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACjB,KAAK,EAAE,IAAI,CAAC,SAAS;gBACrB,MAAM,EAAE,IAAI;aACf,CAAC;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1F,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA6B,CAAC;QAC9D,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,KAAe;QAC5B,MAAM,UAAU,GAAe,EAAE,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,UAAU,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ollama Provider Implementation
|
|
3
|
+
*
|
|
4
|
+
* Provider for the Ollama local LLM service.
|
|
5
|
+
* Replicates mcard.ptr.core.llm.providers.ollama.OllamaProvider
|
|
6
|
+
*/
|
|
7
|
+
import { BaseLLMProvider, ChatMessage } from './LLMProvider.js';
|
|
8
|
+
import { Either } from '../../../monads/Either.js';
|
|
9
|
+
export declare class OllamaProvider extends BaseLLMProvider {
|
|
10
|
+
provider_name: string;
|
|
11
|
+
private base_url;
|
|
12
|
+
private timeout;
|
|
13
|
+
private config;
|
|
14
|
+
constructor(base_url?: string | null, timeout?: number);
|
|
15
|
+
private _make_request;
|
|
16
|
+
complete(prompt: string, params: Record<string, any>): Promise<Either<string, string>>;
|
|
17
|
+
chat(messages: ChatMessage[], params: Record<string, any>): Promise<Either<string, Record<string, any>>>;
|
|
18
|
+
validate_connection(): Promise<boolean>;
|
|
19
|
+
list_models(): Promise<Either<string, string[]>>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=OllamaProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OllamaProvider.d.ts","sourceRoot":"","sources":["../../../../src/ptr/llm/providers/OllamaProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAKnD,qBAAa,cAAe,SAAQ,eAAe;IAC/C,aAAa,SAAY;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAM;gBAER,QAAQ,GAAE,MAAM,GAAG,IAAW,EAAE,OAAO,GAAE,MAAY;YAOnD,aAAa;IAgErB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IA2BtF,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAkCxG,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAKvC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAezD"}
|