@qvac/sdk 0.4.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +365 -200
- package/bare-imports.json +35 -0
- package/dist/client/api/cancel.d.ts +12 -3
- package/dist/client/api/cancel.js +12 -3
- package/dist/client/api/completion-stream.d.ts +15 -5
- package/dist/client/api/completion-stream.js +50 -14
- package/dist/client/api/embed.d.ts +17 -3
- package/dist/client/api/embed.js +0 -8
- package/dist/client/api/get-model-info.d.ts +2 -2
- package/dist/client/api/get-model-info.js +2 -2
- package/dist/client/api/index.d.ts +2 -2
- package/dist/client/api/index.js +2 -2
- package/dist/client/api/load-model.d.ts +37 -11
- package/dist/client/api/load-model.js +34 -117
- package/dist/client/api/logging-stream.d.ts +6 -3
- package/dist/client/api/logging-stream.js +6 -3
- package/dist/client/api/ocr.d.ts +31 -0
- package/dist/client/api/ocr.js +88 -0
- package/dist/client/api/rag.d.ts +215 -20
- package/dist/client/api/rag.js +382 -23
- package/dist/client/api/translate.js +10 -11
- package/dist/client/api/unload-model.js +6 -3
- package/dist/client/config-loader/config-utils.d.ts +5 -0
- package/dist/client/config-loader/config-utils.js +20 -0
- package/dist/client/config-loader/resolve-config.bare.d.ts +9 -0
- package/dist/client/config-loader/resolve-config.bare.js +87 -0
- package/dist/client/config-loader/resolve-config.expo.d.ts +11 -0
- package/dist/client/config-loader/resolve-config.expo.js +62 -0
- package/dist/client/config-loader/resolve-config.node.d.ts +9 -0
- package/dist/client/config-loader/resolve-config.node.js +118 -0
- package/dist/client/init-hooks.d.ts +18 -3
- package/dist/client/init-hooks.js +57 -29
- package/dist/client/logging-stream-registry.d.ts +1 -1
- package/dist/client/logging-stream-registry.js +14 -13
- package/dist/client/rpc/bare-client.d.ts +3 -184
- package/dist/client/rpc/bare-client.js +67 -8
- package/dist/client/rpc/expo-rpc-client.d.ts +2 -2
- package/dist/client/rpc/expo-rpc-client.js +70 -12
- package/dist/client/rpc/node-rpc-client.d.ts +1 -1
- package/dist/client/rpc/node-rpc-client.js +14 -7
- package/dist/client/rpc/rpc-client.d.ts +1 -1
- package/dist/client/rpc/rpc-client.js +13 -58
- package/dist/examples/config/blind-relay/blind-relay.config.d.ts +5 -0
- package/dist/examples/config/blind-relay/blind-relay.config.js +7 -0
- package/dist/examples/config/default/default.config.d.ts +8 -0
- package/dist/examples/config/default/default.config.js +6 -0
- package/dist/examples/config-reload.d.ts +2 -0
- package/dist/examples/config-reload.js +49 -0
- package/dist/examples/default-config-usage.d.ts +17 -0
- package/dist/examples/default-config-usage.js +47 -0
- package/dist/examples/delegated-inference/consumer.js +1 -0
- package/dist/examples/download-with-blind-relays.js +22 -21
- package/dist/examples/embed-hyperdrive.js +39 -3
- package/dist/examples/kv-cache-cleanup.js +1 -1
- package/dist/examples/kv-cache-custom-key.js +16 -1
- package/dist/examples/kv-cache-example.js +1 -1
- package/dist/examples/llamacpp-hyperdrive.js +1 -1
- package/dist/examples/llamacpp-sharded.js +13 -4
- package/dist/examples/logging-file-transport.d.ts +2 -0
- package/dist/examples/{llamacpp-file-logging.js → logging-file-transport.js} +3 -7
- package/dist/examples/logging-streaming.d.ts +2 -0
- package/dist/examples/logging-streaming.js +75 -0
- package/dist/examples/mcp-websearch.d.ts +13 -0
- package/dist/examples/mcp-websearch.js +176 -0
- package/dist/examples/ocr-fasttext.d.ts +2 -0
- package/dist/examples/ocr-fasttext.js +52 -0
- package/dist/examples/quickstart.d.ts +2 -0
- package/dist/examples/quickstart.js +28 -0
- package/dist/examples/rag/rag-hyperdb/cancellation.d.ts +2 -0
- package/dist/examples/rag/rag-hyperdb/cancellation.js +75 -0
- package/dist/examples/rag/rag-hyperdb/ingest.d.ts +2 -0
- package/dist/examples/rag/{rag-hyperdb.js → rag-hyperdb/ingest.js} +10 -4
- package/dist/examples/rag/rag-hyperdb/pipeline.d.ts +2 -0
- package/dist/examples/rag/rag-hyperdb/pipeline.js +74 -0
- package/dist/examples/rag/rag-hyperdb/workspaces.d.ts +2 -0
- package/dist/examples/rag/rag-hyperdb/workspaces.js +178 -0
- package/dist/examples/translation/translation-bergamot-batch.d.ts +2 -0
- package/dist/examples/translation/translation-bergamot-batch.js +49 -0
- package/dist/examples/translation/translation-bergamot.d.ts +2 -0
- package/dist/examples/translation/translation-bergamot.js +39 -0
- package/dist/examples/translation/translation-indic.js +1 -0
- package/dist/examples/translation/translation-opus.js +1 -0
- package/dist/examples/translation/translation-stream.js +1 -0
- package/dist/expo/plugins/withMobileBundle.js +29 -10
- package/dist/index.d.ts +5 -4
- package/dist/index.js +4 -2
- package/dist/logging/addon.d.ts +6 -0
- package/dist/logging/addon.js +75 -0
- package/dist/logging/base-logger.js +26 -16
- package/dist/logging/client-logger.d.ts +3 -0
- package/dist/logging/client-logger.js +24 -0
- package/dist/logging/index.d.ts +7 -1
- package/dist/logging/index.js +7 -1
- package/dist/logging/logger.d.ts +0 -2
- package/dist/logging/logger.js +11 -6
- package/dist/logging/namespaces.d.ts +12 -0
- package/dist/logging/namespaces.js +12 -0
- package/dist/logging/registry.d.ts +31 -0
- package/dist/logging/registry.js +48 -0
- package/dist/logging/server-logger.d.ts +3 -0
- package/dist/logging/server-logger.js +16 -0
- package/dist/logging/stream-logger.d.ts +1 -1
- package/dist/logging/stream-logger.js +6 -3
- package/dist/logging/transport.js +2 -2
- package/dist/logging/types.d.ts +2 -0
- package/dist/logging/utils.d.ts +2 -0
- package/dist/logging/utils.js +62 -0
- package/dist/models/hyperdrive/models.d.ts +1886 -230
- package/dist/models/hyperdrive/models.js +2191 -443
- package/dist/schemas/archive.d.ts +9 -0
- package/dist/schemas/archive.js +17 -0
- package/dist/schemas/cancel.d.ts +6 -0
- package/dist/schemas/cancel.js +5 -0
- package/dist/schemas/common.d.ts +660 -92
- package/dist/schemas/common.js +6 -4
- package/dist/schemas/delegate.d.ts +1 -0
- package/dist/schemas/delegate.js +1 -0
- package/dist/schemas/download-asset.d.ts +21 -9
- package/dist/schemas/embed.d.ts +3 -3
- package/dist/schemas/embed.js +9 -2
- package/dist/schemas/get-model-info.d.ts +12 -10
- package/dist/schemas/get-model-info.js +9 -1
- package/dist/schemas/index.d.ts +9 -1
- package/dist/schemas/index.js +12 -1
- package/dist/schemas/json-schema.d.ts +16 -0
- package/dist/schemas/json-schema.js +2 -0
- package/dist/schemas/llamacpp-config.d.ts +117 -12
- package/dist/schemas/llamacpp-config.js +46 -12
- package/dist/schemas/load-model.d.ts +3669 -481
- package/dist/schemas/load-model.js +95 -34
- package/dist/schemas/logging-stream.d.ts +11 -4
- package/dist/schemas/logging-stream.js +4 -3
- package/dist/schemas/mcp-adapter.d.ts +47 -0
- package/dist/schemas/mcp-adapter.js +1 -0
- package/dist/schemas/model-src-utils.d.ts +38 -14
- package/dist/schemas/model-src-utils.js +4 -3
- package/dist/schemas/model-types.d.ts +154 -0
- package/dist/schemas/model-types.js +140 -0
- package/dist/schemas/ocr.d.ts +88 -0
- package/dist/schemas/ocr.js +52 -0
- package/dist/schemas/rag.d.ts +183 -52
- package/dist/schemas/rag.js +148 -23
- package/dist/schemas/reload-config.d.ts +356 -0
- package/dist/schemas/reload-config.js +44 -0
- package/dist/schemas/runtime-context.d.ts +19 -0
- package/dist/schemas/runtime-context.js +7 -0
- package/dist/schemas/sdk-config.d.ts +717 -0
- package/dist/schemas/sdk-config.js +131 -0
- package/dist/schemas/sdk-errors-client.d.ts +5 -0
- package/dist/schemas/sdk-errors-client.js +25 -0
- package/dist/schemas/sdk-errors-server.d.ts +17 -0
- package/dist/schemas/sdk-errors-server.js +85 -0
- package/dist/schemas/shard.d.ts +21 -0
- package/dist/schemas/shard.js +17 -0
- package/dist/schemas/tools.d.ts +3 -0
- package/dist/schemas/translate.d.ts +68 -23
- package/dist/schemas/translate.js +37 -11
- package/dist/schemas/translation-config.d.ts +337 -13
- package/dist/schemas/translation-config.js +65 -9
- package/dist/schemas/whispercpp-config.d.ts +9 -1
- package/dist/schemas/whispercpp-config.js +2 -1
- package/dist/scripts/run-unit-tests.d.ts +2 -0
- package/dist/scripts/run-unit-tests.js +17 -0
- package/dist/server/bare/addons/llamacpp-completion/cache-logger.d.ts +6 -0
- package/dist/server/bare/addons/llamacpp-completion/cache-logger.js +34 -0
- package/dist/server/bare/addons/{llamacpp → llamacpp-completion}/create-model.d.ts +1 -5
- package/dist/server/bare/addons/{llamacpp → llamacpp-completion}/create-model.js +6 -20
- package/dist/server/bare/addons/{llamacpp → llamacpp-completion}/handlers/completion-stream.js +26 -7
- package/dist/server/bare/addons/llamacpp-completion/index.d.ts +4 -0
- package/dist/server/bare/addons/llamacpp-completion/index.js +3 -0
- package/dist/server/bare/addons/{llamacpp → llamacpp-completion}/kv-cache-utils.d.ts +4 -1
- package/dist/server/bare/addons/{llamacpp → llamacpp-completion}/kv-cache-utils.js +49 -14
- package/dist/server/bare/addons/llamacpp-embedding/create-model.d.ts +8 -0
- package/dist/server/bare/addons/llamacpp-embedding/create-model.js +38 -0
- package/dist/server/bare/addons/llamacpp-embedding/handlers/embed.d.ts +12 -0
- package/dist/server/bare/addons/{llamacpp → llamacpp-embedding}/handlers/embed.js +18 -4
- package/dist/server/bare/addons/llamacpp-embedding/index.d.ts +3 -0
- package/dist/server/bare/addons/llamacpp-embedding/index.js +2 -0
- package/dist/server/bare/addons/load-model.js +38 -28
- package/dist/server/bare/addons/{translation → nmtcpp-translation}/create-model.js +23 -8
- package/dist/server/bare/addons/{translation → nmtcpp-translation}/handlers/translate.js +35 -11
- package/dist/server/bare/addons/onnx-ocr/create-model.d.ts +10 -0
- package/dist/server/bare/addons/onnx-ocr/create-model.js +39 -0
- package/dist/server/bare/addons/onnx-ocr/handlers/ocr-stream.d.ts +10 -0
- package/dist/server/bare/addons/onnx-ocr/handlers/ocr-stream.js +109 -0
- package/dist/server/bare/addons/onnx-ocr/index.d.ts +3 -0
- package/dist/server/bare/addons/onnx-ocr/index.js +2 -0
- package/dist/server/bare/addons/unload-model.js +6 -3
- package/dist/server/bare/addons/{whispercpp → whispercpp-transcription}/create-model.js +2 -1
- package/dist/server/bare/addons/whispercpp-transcription/handlers/transcribe-stream.js +82 -0
- package/dist/server/bare/delegate-rpc-client.js +31 -11
- package/dist/server/bare/hyperswarm.js +7 -5
- package/dist/server/bare/rag-hyperdb/handlers/chunk.d.ts +3 -0
- package/dist/server/bare/rag-hyperdb/handlers/chunk.js +7 -0
- package/dist/server/bare/rag-hyperdb/handlers/close-workspace.d.ts +3 -0
- package/dist/server/bare/rag-hyperdb/handlers/close-workspace.js +9 -0
- package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.d.ts +1 -1
- package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.js +9 -10
- package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.d.ts +3 -0
- package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.js +14 -0
- package/dist/server/bare/rag-hyperdb/handlers/ingest.d.ts +9 -0
- package/dist/server/bare/rag-hyperdb/handlers/ingest.js +18 -0
- package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.d.ts +3 -0
- package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.js +4 -0
- package/dist/server/bare/rag-hyperdb/handlers/reindex.d.ts +9 -0
- package/dist/server/bare/rag-hyperdb/handlers/reindex.js +16 -0
- package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.d.ts +7 -4
- package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.js +13 -14
- package/dist/server/bare/rag-hyperdb/handlers/search.js +10 -10
- package/dist/server/bare/rag-hyperdb/index.d.ts +8 -1
- package/dist/server/bare/rag-hyperdb/index.js +8 -1
- package/dist/server/bare/rag-hyperdb/rag-operation-manager.d.ts +7 -0
- package/dist/server/bare/rag-hyperdb/rag-operation-manager.js +39 -0
- package/dist/server/bare/rag-hyperdb/rag-workspace-manager.d.ts +15 -0
- package/dist/server/bare/rag-hyperdb/rag-workspace-manager.js +135 -0
- package/dist/server/bare/registry/config-registry.d.ts +13 -4
- package/dist/server/bare/registry/config-registry.js +53 -10
- package/dist/server/bare/registry/logging-stream-registry.d.ts +24 -7
- package/dist/server/bare/registry/logging-stream-registry.js +99 -20
- package/dist/server/bare/registry/model-config-registry.d.ts +4 -0
- package/dist/server/bare/registry/model-config-registry.js +15 -0
- package/dist/server/bare/registry/model-config-utils.d.ts +15 -0
- package/dist/server/bare/registry/model-config-utils.js +121 -0
- package/dist/server/bare/registry/model-registry.d.ts +6 -26
- package/dist/server/bare/registry/model-registry.js +9 -6
- package/dist/server/bare/registry/runtime-context-registry.d.ts +7 -0
- package/dist/server/bare/registry/runtime-context-registry.js +26 -0
- package/dist/server/bare/utils/loader-adapter.d.ts +7 -0
- package/dist/server/bare/utils/loader-adapter.js +9 -0
- package/dist/server/error-handlers.js +4 -2
- package/dist/server/rpc/create-server.js +5 -3
- package/dist/server/rpc/handle-request.js +115 -19
- package/dist/server/rpc/handlers/cancelHandler.js +13 -2
- package/dist/server/rpc/handlers/completion-stream-delegated.js +4 -2
- package/dist/server/rpc/handlers/completion-stream.js +1 -1
- package/dist/server/rpc/handlers/delete-cache.js +4 -2
- package/dist/server/rpc/handlers/download-asset.js +3 -1
- package/dist/server/rpc/handlers/embed.js +4 -2
- package/dist/server/rpc/handlers/get-model-info.d.ts +1 -1
- package/dist/server/rpc/handlers/get-model-info.js +22 -10
- package/dist/server/rpc/handlers/index.d.ts +4 -2
- package/dist/server/rpc/handlers/index.js +2 -2
- package/dist/server/rpc/handlers/load-model/download-manager.d.ts +11 -11
- package/dist/server/rpc/handlers/load-model/download-manager.js +40 -28
- package/dist/server/rpc/handlers/{load-model.d.ts → load-model/handler.d.ts} +2 -2
- package/dist/server/rpc/handlers/load-model/handler.js +179 -0
- package/dist/server/rpc/handlers/load-model/http.js +361 -50
- package/dist/server/rpc/handlers/load-model/hyperdrive.js +26 -22
- package/dist/server/rpc/handlers/load-model/index.d.ts +2 -2
- package/dist/server/rpc/handlers/load-model/index.js +2 -2
- package/dist/server/rpc/handlers/load-model/resolve.js +39 -8
- package/dist/server/rpc/handlers/load-model-delegated.d.ts +2 -2
- package/dist/server/rpc/handlers/load-model-delegated.js +15 -10
- package/dist/server/rpc/handlers/logging-stream.js +4 -4
- package/dist/server/rpc/handlers/ocr-stream.d.ts +3 -0
- package/dist/server/rpc/handlers/ocr-stream.js +39 -0
- package/dist/server/rpc/handlers/provideHandler/connection.js +12 -10
- package/dist/server/rpc/handlers/provideHandler/handler.js +18 -16
- package/dist/server/rpc/handlers/provideHandler/proxy.js +8 -6
- package/dist/server/rpc/handlers/rag.d.ts +2 -2
- package/dist/server/rpc/handlers/rag.js +107 -41
- package/dist/server/rpc/handlers/stopProvideHandler.js +3 -1
- package/dist/server/rpc/handlers/text-to-speech.js +1 -1
- package/dist/server/rpc/handlers/transcribe-stream.js +4 -2
- package/dist/server/rpc/handlers/translate.js +9 -16
- package/dist/server/rpc/handlers/unload-model.js +4 -2
- package/dist/server/utils/archive.d.ts +3 -0
- package/dist/server/utils/archive.js +171 -0
- package/dist/server/utils/audio/decoder.d.ts +2 -1
- package/dist/server/utils/audio/decoder.js +48 -11
- package/dist/server/utils/cache.d.ts +5 -5
- package/dist/server/utils/cache.js +13 -11
- package/dist/server/utils/config-transform.d.ts +3 -0
- package/dist/server/utils/config-transform.js +23 -0
- package/dist/server/utils/formatting.d.ts +13 -0
- package/dist/server/utils/formatting.js +26 -0
- package/dist/server/utils/gguf-tensor-extractor.d.ts +15 -0
- package/dist/server/utils/gguf-tensor-extractor.js +314 -0
- package/dist/server/utils/index.d.ts +4 -1
- package/dist/server/utils/index.js +4 -1
- package/dist/server/utils/shard-utils.d.ts +42 -16
- package/dist/server/utils/shard-utils.js +95 -7
- package/dist/server/worker.js +49 -19
- package/dist/utils/errors-base.d.ts +1 -1
- package/dist/utils/errors-base.js +2 -2
- package/dist/utils/errors-client.d.ts +24 -0
- package/dist/utils/errors-client.js +40 -0
- package/dist/utils/errors-server.d.ts +42 -0
- package/dist/utils/errors-server.js +71 -0
- package/dist/utils/mcp-adapter.d.ts +12 -0
- package/dist/utils/mcp-adapter.js +103 -0
- package/dist/utils/object.d.ts +2 -0
- package/dist/utils/object.js +3 -0
- package/dist/utils/tool-helpers.d.ts +10 -2
- package/dist/utils/tool-helpers.js +24 -11
- package/package.json +74 -36
- package/dist/client/api/set-config.d.ts +0 -7
- package/dist/client/api/set-config.js +0 -20
- package/dist/client/config-manager.d.ts +0 -4
- package/dist/client/config-manager.js +0 -8
- package/dist/client/rpc/bare-rpc-client.d.ts +0 -4
- package/dist/client/rpc/bare-rpc-client.js +0 -91
- package/dist/examples/llamacpp-file-logging.d.ts +0 -2
- package/dist/examples/rag/rag-hyperdb-workspaces.d.ts +0 -2
- package/dist/examples/rag/rag-hyperdb-workspaces.js +0 -106
- package/dist/examples/rag/rag-hyperdb.d.ts +0 -2
- package/dist/schemas/set-config.d.ts +0 -21
- package/dist/schemas/set-config.js +0 -14
- package/dist/server/bare/addons/llamacpp/handlers/embed.d.ts +0 -4
- package/dist/server/bare/addons/llamacpp/index.d.ts +0 -4
- package/dist/server/bare/addons/llamacpp/index.js +0 -3
- package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.js +0 -63
- package/dist/server/bare/rag-hyperdb/rag-manager.d.ts +0 -5
- package/dist/server/bare/rag-hyperdb/rag-manager.js +0 -64
- package/dist/server/rpc/handlers/load-model.js +0 -59
- package/dist/server/rpc/handlers/set-config.d.ts +0 -3
- package/dist/server/rpc/handlers/set-config.js +0 -18
- package/dist/server/utils/hash.d.ts +0 -5
- package/dist/server/utils/hash.js +0 -11
- /package/dist/server/bare/addons/{llamacpp → llamacpp-completion}/handlers/completion-stream.d.ts +0 -0
- /package/dist/server/bare/addons/{translation → nmtcpp-translation}/create-model.d.ts +0 -0
- /package/dist/server/bare/addons/{translation → nmtcpp-translation}/handlers/translate.d.ts +0 -0
- /package/dist/server/bare/addons/{translation → nmtcpp-translation}/index.d.ts +0 -0
- /package/dist/server/bare/addons/{translation → nmtcpp-translation}/index.js +0 -0
- /package/dist/server/bare/addons/{tts → onnx-tts}/create-model.d.ts +0 -0
- /package/dist/server/bare/addons/{tts → onnx-tts}/create-model.js +0 -0
- /package/dist/server/bare/addons/{tts → onnx-tts}/handlers/text-to-speech.d.ts +0 -0
- /package/dist/server/bare/addons/{tts → onnx-tts}/handlers/text-to-speech.js +0 -0
- /package/dist/server/bare/addons/{tts → onnx-tts}/index.d.ts +0 -0
- /package/dist/server/bare/addons/{tts → onnx-tts}/index.js +0 -0
- /package/dist/server/bare/addons/{whispercpp → whispercpp-transcription}/create-model.d.ts +0 -0
- /package/dist/server/bare/addons/{whispercpp → whispercpp-transcription}/handlers/transcribe-stream.d.ts +0 -0
- /package/dist/server/bare/addons/{whispercpp → whispercpp-transcription}/index.d.ts +0 -0
- /package/dist/server/bare/addons/{whispercpp → whispercpp-transcription}/index.js +0 -0
|
@@ -12,8 +12,8 @@ import { handleRag } from "./rag.js";
|
|
|
12
12
|
import { cancelHandler } from "./cancelHandler.js";
|
|
13
13
|
import { handleDeleteCache } from "./delete-cache.js";
|
|
14
14
|
import { handleTextToSpeech } from "./text-to-speech.js";
|
|
15
|
-
import { handleSetConfig } from "./set-config.js";
|
|
16
15
|
import { handleGetModelInfo } from "./get-model-info.js";
|
|
16
|
+
import { handleOCRStream } from "./ocr-stream.js";
|
|
17
17
|
export const handlers = {
|
|
18
18
|
completionStream: handleCompletionStream,
|
|
19
19
|
downloadAsset: handleDownloadAsset,
|
|
@@ -29,6 +29,6 @@ export const handlers = {
|
|
|
29
29
|
rag: handleRag,
|
|
30
30
|
cancel: cancelHandler,
|
|
31
31
|
textToSpeech: handleTextToSpeech,
|
|
32
|
-
setConfig: handleSetConfig,
|
|
33
32
|
getModelInfo: handleGetModelInfo,
|
|
33
|
+
ocrStream: handleOCRStream,
|
|
34
34
|
};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { type DownloadEntry } from "../../../../schemas/index";
|
|
2
|
-
export declare
|
|
3
|
-
export declare
|
|
4
|
-
export declare
|
|
5
|
-
export declare
|
|
6
|
-
export declare
|
|
7
|
-
export declare
|
|
8
|
-
export declare
|
|
9
|
-
export declare
|
|
10
|
-
export declare
|
|
11
|
-
export declare
|
|
12
|
-
export declare
|
|
2
|
+
export declare function getActiveDownload(key: string): DownloadEntry | undefined;
|
|
3
|
+
export declare function registerDownload(key: string, entry: DownloadEntry): void;
|
|
4
|
+
export declare function unregisterDownload(key: string): void;
|
|
5
|
+
export declare function createHyperdriveDownloadKey(hyperdriveKey: string, modelFileName: string): string;
|
|
6
|
+
export declare function createHttpDownloadKey(url: string): string;
|
|
7
|
+
export declare function setClearCacheFlag(downloadKey: string, clearCache: boolean): void;
|
|
8
|
+
export declare function shouldClearCache(downloadKey: string): boolean;
|
|
9
|
+
export declare function clearClearCacheFlag(downloadKey: string): void;
|
|
10
|
+
export declare function createCancelFunction(downloadKey: string, clearCache?: boolean): () => void;
|
|
11
|
+
export declare function cancelAllDownloads(): void;
|
|
12
|
+
export declare function cleanupDownloads(): Promise<void>;
|
|
13
13
|
//# sourceMappingURL=download-manager.d.ts.map
|
|
@@ -1,43 +1,55 @@
|
|
|
1
1
|
import {} from "../../../../schemas/index.js";
|
|
2
|
+
import { getServerLogger } from "../../../../logging/index.js";
|
|
3
|
+
const logger = getServerLogger();
|
|
2
4
|
const activeDownloads = new Map();
|
|
3
5
|
const clearCacheFlags = new Map();
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
+
export function getActiveDownload(key) {
|
|
7
|
+
return activeDownloads.get(key);
|
|
8
|
+
}
|
|
9
|
+
export function registerDownload(key, entry) {
|
|
6
10
|
activeDownloads.set(key, entry);
|
|
7
|
-
}
|
|
8
|
-
export
|
|
11
|
+
}
|
|
12
|
+
export function unregisterDownload(key) {
|
|
9
13
|
activeDownloads.delete(key);
|
|
10
|
-
}
|
|
11
|
-
export
|
|
12
|
-
|
|
13
|
-
|
|
14
|
+
}
|
|
15
|
+
export function createHyperdriveDownloadKey(hyperdriveKey, modelFileName) {
|
|
16
|
+
return `${hyperdriveKey}:${modelFileName}`;
|
|
17
|
+
}
|
|
18
|
+
export function createHttpDownloadKey(url) {
|
|
19
|
+
return `http:${url}`;
|
|
20
|
+
}
|
|
21
|
+
export function setClearCacheFlag(downloadKey, clearCache) {
|
|
14
22
|
if (clearCache) {
|
|
15
23
|
clearCacheFlags.set(downloadKey, true);
|
|
16
24
|
}
|
|
17
25
|
else {
|
|
18
26
|
clearCacheFlags.delete(downloadKey);
|
|
19
27
|
}
|
|
20
|
-
}
|
|
21
|
-
export
|
|
22
|
-
|
|
28
|
+
}
|
|
29
|
+
export function shouldClearCache(downloadKey) {
|
|
30
|
+
return clearCacheFlags.get(downloadKey) ?? false;
|
|
31
|
+
}
|
|
32
|
+
export function clearClearCacheFlag(downloadKey) {
|
|
23
33
|
clearCacheFlags.delete(downloadKey);
|
|
24
|
-
}
|
|
25
|
-
export
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
}
|
|
35
|
+
export function createCancelFunction(downloadKey, clearCache = false) {
|
|
36
|
+
return () => {
|
|
37
|
+
const entry = getActiveDownload(downloadKey);
|
|
38
|
+
if (!entry) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
// Set flag for the download handlers to check
|
|
42
|
+
setClearCacheFlag(downloadKey, clearCache);
|
|
43
|
+
entry.abortController.abort();
|
|
44
|
+
unregisterDownload(downloadKey);
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export function cancelAllDownloads() {
|
|
48
|
+
logger.info(`🧹 Cancelling ${activeDownloads.size} active downloads`);
|
|
37
49
|
Array.from(activeDownloads.keys()).forEach((key) => createCancelFunction(key)());
|
|
38
|
-
}
|
|
50
|
+
}
|
|
39
51
|
let isCleaningUp = false;
|
|
40
|
-
export
|
|
52
|
+
export async function cleanupDownloads() {
|
|
41
53
|
if (isCleaningUp)
|
|
42
54
|
return;
|
|
43
55
|
isCleaningUp = true;
|
|
@@ -49,6 +61,6 @@ export const cleanupDownloads = async () => {
|
|
|
49
61
|
}
|
|
50
62
|
}
|
|
51
63
|
catch (error) {
|
|
52
|
-
|
|
64
|
+
logger.error("❌ Error during download cleanup:", error);
|
|
53
65
|
}
|
|
54
|
-
}
|
|
66
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { LoadModelRequest, LoadModelResponse, ModelProgressUpdate } from "
|
|
1
|
+
import type { LoadModelRequest, LoadModelResponse, ModelProgressUpdate } from "../../../../schemas/index";
|
|
2
2
|
export declare function handleLoadModel(request: LoadModelRequest, progressCallback?: (update: ModelProgressUpdate) => void): Promise<LoadModelResponse>;
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { normalizeModelType, ModelType } from "../../../../schemas/index.js";
|
|
2
|
+
import { hyperdriveUrlSchema } from "../../../../schemas/load-model.js";
|
|
3
|
+
import { loadModel } from "../../../bare/addons/index.js";
|
|
4
|
+
import { resolveModelPath } from "./resolve.js";
|
|
5
|
+
import { getModelEntry, updateModelConfig, } from "../../../bare/registry/model-registry.js";
|
|
6
|
+
import { generateShortHash, transformConfigForReload } from "../../../utils/index.js";
|
|
7
|
+
import { TTSConfigModelRequiredError, ESpeakDataPathRequiredError, ConfigReloadNotSupportedError, ModelTypeMismatchError, ModelIsDelegatedError, ModelNotFoundError, } from "../../../../utils/errors-server.js";
|
|
8
|
+
import { getServerLogger } from "../../../../logging/index.js";
|
|
9
|
+
const logger = getServerLogger();
|
|
10
|
+
const OCR_DETECTOR_FILENAME = "detector_craft.onnx";
|
|
11
|
+
export async function handleLoadModel(request, progressCallback) {
|
|
12
|
+
// Handle reload config
|
|
13
|
+
if (isReloadConfigRequest(request)) {
|
|
14
|
+
return handleConfigReload(request);
|
|
15
|
+
}
|
|
16
|
+
// Handle load new model from source
|
|
17
|
+
const { modelSrc, modelName, seed, projectionModelSrc, vadModelSrc, configSrc, } = request;
|
|
18
|
+
const canonicalModelType = normalizeModelType(request.modelType);
|
|
19
|
+
const srcVocabSrc = canonicalModelType === ModelType.nmtcppTranslation
|
|
20
|
+
? request.srcVocabSrc
|
|
21
|
+
: undefined;
|
|
22
|
+
const dstVocabSrc = canonicalModelType === ModelType.nmtcppTranslation
|
|
23
|
+
? request.dstVocabSrc
|
|
24
|
+
: undefined;
|
|
25
|
+
const eSpeakDataPath = canonicalModelType === ModelType.onnxTts
|
|
26
|
+
? request.eSpeakDataPath
|
|
27
|
+
: undefined;
|
|
28
|
+
const detectorModelSrc = canonicalModelType === ModelType.onnxOcr
|
|
29
|
+
? request.detectorModelSrc
|
|
30
|
+
: undefined;
|
|
31
|
+
try {
|
|
32
|
+
const modelPath = await resolveModelPath(modelSrc, progressCallback, seed);
|
|
33
|
+
let projectionModelPath;
|
|
34
|
+
if (projectionModelSrc) {
|
|
35
|
+
projectionModelPath = await resolveModelPath(projectionModelSrc, progressCallback, seed);
|
|
36
|
+
}
|
|
37
|
+
let vadModelPath;
|
|
38
|
+
if (vadModelSrc) {
|
|
39
|
+
vadModelPath = await resolveModelPath(vadModelSrc, progressCallback, seed);
|
|
40
|
+
}
|
|
41
|
+
let ttsConfigModelPath;
|
|
42
|
+
if (configSrc) {
|
|
43
|
+
ttsConfigModelPath = await resolveModelPath(configSrc, progressCallback, seed);
|
|
44
|
+
}
|
|
45
|
+
// For OCR models: use provided detectorModelSrc or auto-derive from same hyperdrive key
|
|
46
|
+
let detectorModelPath;
|
|
47
|
+
if (canonicalModelType === ModelType.onnxOcr) {
|
|
48
|
+
if (detectorModelSrc) {
|
|
49
|
+
detectorModelPath = await resolveModelPath(detectorModelSrc, progressCallback, seed);
|
|
50
|
+
}
|
|
51
|
+
else if (modelSrc.startsWith("pear://")) {
|
|
52
|
+
const { key } = hyperdriveUrlSchema.parse(modelSrc);
|
|
53
|
+
const derivedDetectorSrc = `pear://${key}/${OCR_DETECTOR_FILENAME}`;
|
|
54
|
+
detectorModelPath = await resolveModelPath(derivedDetectorSrc, progressCallback, seed);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// For TTS models, ttsConfigModelPath and eSpeakDataPath are required
|
|
58
|
+
if (canonicalModelType === ModelType.onnxTts && !ttsConfigModelPath) {
|
|
59
|
+
throw new TTSConfigModelRequiredError();
|
|
60
|
+
}
|
|
61
|
+
if (canonicalModelType === ModelType.onnxTts && !eSpeakDataPath) {
|
|
62
|
+
throw new ESpeakDataPathRequiredError();
|
|
63
|
+
}
|
|
64
|
+
// For Bergamot models, resolve vocabulary sources to local paths
|
|
65
|
+
if (canonicalModelType === ModelType.nmtcppTranslation &&
|
|
66
|
+
request.modelConfig) {
|
|
67
|
+
const nmtConfig = request.modelConfig;
|
|
68
|
+
if (nmtConfig.engine === "Bergamot") {
|
|
69
|
+
let resolvedSrcVocabSrc = srcVocabSrc;
|
|
70
|
+
let resolvedDstVocabSrc = dstVocabSrc;
|
|
71
|
+
if ((!srcVocabSrc || !dstVocabSrc) && modelSrc.startsWith("pear://")) {
|
|
72
|
+
const derivedVocabSrcs = deriveBergamotVocabSources(modelSrc);
|
|
73
|
+
if (derivedVocabSrcs) {
|
|
74
|
+
resolvedSrcVocabSrc = srcVocabSrc ?? derivedVocabSrcs.srcVocabSrc;
|
|
75
|
+
resolvedDstVocabSrc = dstVocabSrc ?? derivedVocabSrcs.dstVocabSrc;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (resolvedSrcVocabSrc) {
|
|
79
|
+
nmtConfig.srcVocabPath = await resolveModelPath(resolvedSrcVocabSrc, progressCallback, seed);
|
|
80
|
+
}
|
|
81
|
+
if (resolvedDstVocabSrc) {
|
|
82
|
+
nmtConfig.dstVocabPath = await resolveModelPath(resolvedDstVocabSrc, progressCallback, seed);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// Generate hash-based modelId
|
|
87
|
+
const configStr = JSON.stringify(request.modelConfig, Object.keys(request.modelConfig).sort());
|
|
88
|
+
const modelHashInput = `${request.modelType}:${modelSrc}:${configStr}`;
|
|
89
|
+
const modelId = generateShortHash(modelHashInput);
|
|
90
|
+
await loadModel({
|
|
91
|
+
modelId,
|
|
92
|
+
modelPath,
|
|
93
|
+
options: request,
|
|
94
|
+
projectionModelPath,
|
|
95
|
+
vadModelPath,
|
|
96
|
+
ttsConfigModelPath,
|
|
97
|
+
eSpeakDataPath,
|
|
98
|
+
detectorModelPath,
|
|
99
|
+
modelName,
|
|
100
|
+
});
|
|
101
|
+
return {
|
|
102
|
+
type: "loadModel",
|
|
103
|
+
success: true,
|
|
104
|
+
modelId,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
logger.error("Error loading model:", error);
|
|
109
|
+
return {
|
|
110
|
+
type: "loadModel",
|
|
111
|
+
success: false,
|
|
112
|
+
error: error instanceof Error ? error.message : "Unknown error",
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
async function handleConfigReload(request) {
|
|
117
|
+
const { modelId, modelType, modelConfig } = request;
|
|
118
|
+
try {
|
|
119
|
+
const entry = getModelEntry(modelId);
|
|
120
|
+
if (!entry) {
|
|
121
|
+
throw new ModelNotFoundError(modelId);
|
|
122
|
+
}
|
|
123
|
+
if (entry.isDelegated) {
|
|
124
|
+
throw new ModelIsDelegatedError(modelId);
|
|
125
|
+
}
|
|
126
|
+
const storedModelType = entry.local.modelType;
|
|
127
|
+
const normalizedRequestType = normalizeModelType(modelType);
|
|
128
|
+
if (storedModelType !== normalizedRequestType) {
|
|
129
|
+
throw new ModelTypeMismatchError(storedModelType, normalizedRequestType);
|
|
130
|
+
}
|
|
131
|
+
const model = entry.local.model;
|
|
132
|
+
const currentConfig = entry.local.config;
|
|
133
|
+
if (typeof model.reload !== "function") {
|
|
134
|
+
throw new ConfigReloadNotSupportedError(modelId);
|
|
135
|
+
}
|
|
136
|
+
const mergedConfig = {
|
|
137
|
+
...currentConfig,
|
|
138
|
+
...modelConfig,
|
|
139
|
+
};
|
|
140
|
+
const reloadConfig = transformConfigForReload(storedModelType, mergedConfig);
|
|
141
|
+
await model.reload(reloadConfig);
|
|
142
|
+
updateModelConfig(modelId, mergedConfig);
|
|
143
|
+
return {
|
|
144
|
+
type: "loadModel",
|
|
145
|
+
success: true,
|
|
146
|
+
modelId,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
logger.error("Error reloading config:", error);
|
|
151
|
+
return {
|
|
152
|
+
type: "loadModel",
|
|
153
|
+
success: false,
|
|
154
|
+
error: error instanceof Error ? error.message : "Unknown error",
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
function isReloadConfigRequest(request) {
|
|
159
|
+
return "modelId" in request && !("modelSrc" in request);
|
|
160
|
+
}
|
|
161
|
+
const BERGAMOT_CJK_LANG_PAIRS = ["enja", "enko", "enzh"];
|
|
162
|
+
function deriveBergamotVocabSources(modelSrc) {
|
|
163
|
+
const match = modelSrc.match(/^pear:\/\/([a-f0-9]+)\/model\.([a-z]+)\.intgemm\.alphas\.bin$/);
|
|
164
|
+
if (!match || !match[1] || !match[2])
|
|
165
|
+
return null;
|
|
166
|
+
const key = match[1];
|
|
167
|
+
const langPair = match[2];
|
|
168
|
+
if (BERGAMOT_CJK_LANG_PAIRS.includes(langPair)) {
|
|
169
|
+
return {
|
|
170
|
+
srcVocabSrc: `pear://${key}/srcvocab.${langPair}.spm`,
|
|
171
|
+
dstVocabSrc: `pear://${key}/trgvocab.${langPair}.spm`,
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
const sharedVocab = `pear://${key}/vocab.${langPair}.spm`;
|
|
175
|
+
return {
|
|
176
|
+
srcVocabSrc: sharedVocab,
|
|
177
|
+
dstVocabSrc: sharedVocab,
|
|
178
|
+
};
|
|
179
|
+
}
|