@qvac/sdk 0.14.1 → 0.16.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/NOTICE +47 -45
- package/README.md +34 -35
- package/dist/client/api/batch-completion.d.ts +15 -0
- package/dist/client/api/batch-completion.js +332 -0
- package/dist/client/api/bci-transcribe.d.ts +1 -1
- package/dist/client/api/bci-transcribe.js +31 -31
- package/dist/client/api/cancel.d.ts +1 -1
- package/dist/client/api/cancel.js +18 -18
- package/dist/client/api/classify.d.ts +1 -1
- package/dist/client/api/classify.js +9 -6
- package/dist/client/api/client-request-id.js +1 -1
- package/dist/client/api/completion-stream.d.ts +3 -3
- package/dist/client/api/completion-stream.js +18 -18
- package/dist/client/api/delete-cache.js +9 -9
- package/dist/client/api/diffusion.d.ts +1 -1
- package/dist/client/api/diffusion.js +17 -11
- package/dist/client/api/download-asset.d.ts +1 -1
- package/dist/client/api/download-asset.js +11 -11
- package/dist/client/api/embed.d.ts +1 -1
- package/dist/client/api/embed.js +10 -10
- package/dist/client/api/finetune.d.ts +1 -1
- package/dist/client/api/finetune.js +25 -27
- package/dist/client/api/get-loaded-model-info.d.ts +2 -2
- package/dist/client/api/get-loaded-model-info.js +8 -8
- package/dist/client/api/get-model-info.d.ts +1 -1
- package/dist/client/api/get-model-info.js +7 -7
- package/dist/client/api/heartbeat.d.ts +2 -2
- package/dist/client/api/heartbeat.js +7 -7
- package/dist/client/api/index.d.ts +33 -32
- package/dist/client/api/index.js +33 -32
- package/dist/client/api/invoke-plugin.d.ts +1 -1
- package/dist/client/api/invoke-plugin.js +10 -10
- package/dist/client/api/load-model.d.ts +1 -1
- package/dist/client/api/load-model.js +32 -32
- package/dist/client/api/logging-stream.d.ts +1 -1
- package/dist/client/api/logging-stream.js +6 -6
- package/dist/client/api/ocr.d.ts +10 -1
- package/dist/client/api/ocr.js +20 -11
- package/dist/client/api/provide.d.ts +1 -1
- package/dist/client/api/provide.js +7 -7
- package/dist/client/api/rag.d.ts +1 -1
- package/dist/client/api/rag.js +65 -66
- package/dist/client/api/registry.d.ts +1 -1
- package/dist/client/api/registry.js +8 -8
- package/dist/client/api/resume.js +5 -5
- package/dist/client/api/state.d.ts +1 -1
- package/dist/client/api/state.js +5 -5
- package/dist/client/api/stop-provider.js +6 -6
- package/dist/client/api/subscribe-logs.d.ts +1 -1
- package/dist/client/api/subscribe-logs.js +3 -3
- package/dist/client/api/suspend.js +5 -5
- package/dist/client/api/text-to-speech.d.ts +1 -1
- package/dist/client/api/text-to-speech.js +37 -39
- package/dist/client/api/transcribe.d.ts +2 -2
- package/dist/client/api/transcribe.js +44 -45
- package/dist/client/api/translate.d.ts +1 -1
- package/dist/client/api/translate.js +14 -25
- package/dist/client/api/unload-model.d.ts +1 -1
- package/dist/client/api/unload-model.js +11 -11
- package/dist/client/api/upscale.d.ts +1 -1
- package/dist/client/api/upscale.js +9 -9
- package/dist/client/api/video.d.ts +8 -5
- package/dist/client/api/video.js +23 -18
- package/dist/client/api/vla-helpers.d.ts +2 -2
- package/dist/client/api/vla-helpers.js +6 -11
- package/dist/client/api/vla.d.ts +15 -11
- package/dist/client/api/vla.js +27 -23
- package/dist/client/config-loader/config-utils.d.ts +1 -1
- package/dist/client/config-loader/config-utils.js +3 -3
- package/dist/client/config-loader/resolve-config.bare.d.ts +1 -1
- package/dist/client/config-loader/resolve-config.bare.js +11 -11
- package/dist/client/config-loader/resolve-config.expo.d.ts +1 -1
- package/dist/client/config-loader/resolve-config.expo.js +6 -6
- package/dist/client/config-loader/resolve-config.node.d.ts +1 -1
- package/dist/client/config-loader/resolve-config.node.js +27 -27
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/init-hooks.d.ts +1 -1
- package/dist/client/init-hooks.js +12 -12
- package/dist/client/logging-stream-registry.d.ts +1 -1
- package/dist/client/logging-stream-registry.js +6 -6
- package/dist/client/parse-input.d.ts +1 -1
- package/dist/client/parse-input.js +3 -3
- package/dist/client/plugins-factory.d.ts +2 -2
- package/dist/client/plugins-factory.js +2 -2
- package/dist/client/rpc/bare-client.d.ts +2 -1
- package/dist/client/rpc/bare-client.js +37 -39
- package/dist/client/rpc/ensure-worker-ready.js +4 -4
- package/dist/client/rpc/expo-device-info.d.ts +1 -1
- package/dist/client/rpc/expo-device-info.js +11 -11
- package/dist/client/rpc/expo-rpc-client.d.ts +2 -1
- package/dist/client/rpc/expo-rpc-client.js +38 -47
- package/dist/client/rpc/node-rpc-client.d.ts +2 -1
- package/dist/client/rpc/node-rpc-client.js +103 -75
- package/dist/client/rpc/profiling/index.d.ts +1 -1
- package/dist/client/rpc/profiling/index.js +1 -1
- package/dist/client/rpc/profiling/profiler.d.ts +2 -2
- package/dist/client/rpc/profiling/profiler.js +31 -34
- package/dist/client/rpc/rpc-client.d.ts +2 -2
- package/dist/client/rpc/rpc-client.js +113 -72
- package/dist/client/rpc/rpc-error.d.ts +1 -1
- package/dist/client/rpc/rpc-error.js +19 -13
- package/dist/commands/bundle/bare-pack.d.ts +1 -1
- package/dist/commands/bundle/bare-pack.js +20 -20
- package/dist/commands/bundle/constants.js +21 -21
- package/dist/commands/bundle/entry-gen.js +4 -4
- package/dist/commands/bundle/index.js +45 -47
- package/dist/commands/bundle/manifest.d.ts +1 -1
- package/dist/commands/bundle/manifest.js +44 -46
- package/dist/commands/bundle/plugins.d.ts +2 -2
- package/dist/commands/bundle/plugins.js +7 -7
- package/dist/commands/bundle/resolve-sdk-import.js +6 -13
- package/dist/commands/index.d.ts +4 -4
- package/dist/commands/index.js +2 -2
- package/dist/commands/verify/abi.d.ts +9 -9
- package/dist/commands/verify/abi.js +31 -31
- package/dist/commands/verify/addon-source.d.ts +1 -1
- package/dist/commands/verify/addon-source.js +13 -14
- package/dist/commands/verify/bundle-source.d.ts +1 -1
- package/dist/commands/verify/bundle-source.js +7 -7
- package/dist/commands/verify/index.d.ts +3 -3
- package/dist/commands/verify/index.js +18 -17
- package/dist/commands/verify/node-modules-source.d.ts +1 -1
- package/dist/commands/verify/node-modules-source.js +11 -11
- package/dist/commands/verify/prebuilds.d.ts +3 -3
- package/dist/commands/verify/prebuilds.js +8 -8
- package/dist/constants/audio.d.ts +1 -1
- package/dist/constants/audio.js +1 -1
- package/dist/constants/index.d.ts +2 -2
- package/dist/constants/index.js +2 -2
- package/dist/constants/registry.js +1 -1
- package/dist/examples/audio/mic-input.d.ts +1 -1
- package/dist/examples/audio/mic-input.js +31 -31
- package/dist/examples/batch-completion.d.ts +38 -0
- package/dist/examples/batch-completion.js +100 -0
- package/dist/examples/bci/bci-filesystem-streaming.js +20 -20
- package/dist/examples/bci/bci-filesystem.js +17 -17
- package/dist/examples/cache-management.js +32 -32
- package/dist/examples/cancel-by-request-id.js +11 -11
- package/dist/examples/classification/classify-image.js +5 -5
- package/dist/examples/completion-events.js +16 -18
- package/dist/examples/completion-stop-reason.js +13 -13
- package/dist/examples/concurrent-completion-collision.js +20 -20
- package/dist/examples/config/blind-relay/blind-relay.config.js +4 -4
- package/dist/examples/config/default/default.config.js +2 -2
- package/dist/examples/config/plugins/plugins.config.js +2 -2
- package/dist/examples/config-reload.js +14 -14
- package/dist/examples/default-config-usage.js +10 -13
- package/dist/examples/delegated-inference/composite.js +23 -23
- package/dist/examples/delegated-inference/consumer-profiled.js +19 -19
- package/dist/examples/delegated-inference/consumer.js +11 -11
- package/dist/examples/delegated-inference/provider.js +24 -24
- package/dist/examples/diffusion-esrgan-upscale.js +19 -19
- package/dist/examples/diffusion-flux2-klein-img2img.js +17 -17
- package/dist/examples/diffusion-flux2-klein.js +14 -14
- package/dist/examples/diffusion-ideogram.d.ts +2 -0
- package/dist/examples/diffusion-ideogram.js +108 -0
- package/dist/examples/diffusion-img2img.js +13 -13
- package/dist/examples/diffusion-img2vid-ltx.d.ts +2 -0
- package/dist/examples/diffusion-img2vid-ltx.js +98 -0
- package/dist/examples/diffusion-img2vid.js +22 -23
- package/dist/examples/diffusion-simple.js +7 -7
- package/dist/examples/diffusion-txt2img.js +13 -14
- package/dist/examples/diffusion-txt2vid-ltx.d.ts +2 -0
- package/dist/examples/diffusion-txt2vid-ltx.js +92 -0
- package/dist/examples/diffusion-txt2vid.js +18 -18
- package/dist/examples/download-with-blind-relays.js +7 -8
- package/dist/examples/download-with-cancel.js +9 -9
- package/dist/examples/embed-multi-gpu.js +9 -9
- package/dist/examples/embed-p2p.js +24 -24
- package/dist/examples/finetune/llamacpp-finetune.js +21 -21
- package/dist/examples/kv-cache-cleanup.js +34 -34
- package/dist/examples/kv-cache-custom-key.js +30 -30
- package/dist/examples/kv-cache-example.js +18 -20
- package/dist/examples/llamacpp-cache.js +33 -33
- package/dist/examples/llamacpp-dynamic-tools.js +38 -38
- package/dist/examples/llamacpp-filesystem.js +13 -15
- package/dist/examples/llamacpp-http.js +12 -14
- package/dist/examples/llamacpp-multi-gpu.js +12 -12
- package/dist/examples/llamacpp-multimodal.js +16 -16
- package/dist/examples/llamacpp-p2p.js +11 -11
- package/dist/examples/llamacpp-sharded.js +12 -12
- package/dist/examples/llamacpp-structured-output.js +37 -37
- package/dist/examples/logging-file-transport.js +19 -21
- package/dist/examples/logging-global.js +8 -8
- package/dist/examples/logging-streaming.js +19 -17
- package/dist/examples/mcp-websearch.js +44 -44
- package/dist/examples/multi-model-demo.js +33 -33
- package/dist/examples/ocr-fasttext.js +17 -17
- package/dist/examples/parallel-download.js +11 -13
- package/dist/examples/plugins.js +43 -43
- package/dist/examples/profiling/basic.js +34 -36
- package/dist/examples/profiling/per-call.js +16 -16
- package/dist/examples/quickstart.bare.js +4 -6
- package/dist/examples/quickstart.js +7 -7
- package/dist/examples/rag/rag-chromadb.js +26 -26
- package/dist/examples/rag/rag-hyperdb/cancellation.js +19 -20
- package/dist/examples/rag/rag-hyperdb/ingest.js +19 -19
- package/dist/examples/rag/rag-hyperdb/pipeline.js +26 -26
- package/dist/examples/rag/rag-hyperdb/workspaces.js +46 -46
- package/dist/examples/rag/rag-lancedb.js +29 -32
- package/dist/examples/rag/rag-sqlite.js +25 -25
- package/dist/examples/registry-query.js +15 -15
- package/dist/examples/seed-p2p.js +8 -8
- package/dist/examples/suspend-resume.js +20 -20
- package/dist/examples/tools/llamacpp-native-tools.js +25 -25
- package/dist/examples/tools/llamacpp-tools-gemma4.js +14 -14
- package/dist/examples/tools/llamacpp-tools-harmony-multiturn.js +15 -15
- package/dist/examples/tools/llamacpp-tools-pythonic.js +15 -15
- package/dist/examples/tools/llamacpp-tools-qwen35.js +14 -14
- package/dist/examples/tools/shared.d.ts +2 -2
- package/dist/examples/tools/shared.js +17 -17
- package/dist/examples/transcription/parakeet-ctc-filesystem.js +12 -12
- package/dist/examples/transcription/parakeet-microphone-record.js +19 -19
- package/dist/examples/transcription/parakeet-microphone-stream.js +23 -23
- package/dist/examples/transcription/parakeet-sortformer-streaming.js +18 -28
- package/dist/examples/transcription/parakeet-sortformer.js +21 -21
- package/dist/examples/transcription/parakeet-tdt-filesystem-chunked.d.ts +2 -0
- package/dist/examples/transcription/parakeet-tdt-filesystem-chunked.js +203 -0
- package/dist/examples/transcription/parakeet-tdt-filesystem.js +13 -13
- package/dist/examples/transcription/whispercpp-filesystem-streaming.js +34 -34
- package/dist/examples/transcription/whispercpp-filesystem.js +19 -19
- package/dist/examples/transcription/whispercpp-microphone-conversation.js +27 -27
- package/dist/examples/transcription/whispercpp-microphone-record.js +21 -21
- package/dist/examples/transcription/whispercpp-prompt.js +18 -18
- package/dist/examples/translation/translation-bergamot-batch.js +17 -17
- package/dist/examples/translation/translation-bergamot-pivot.js +16 -16
- package/dist/examples/translation/translation-bergamot.js +11 -11
- package/dist/examples/translation/translation-indic.js +10 -10
- package/dist/examples/translation/translation-llm-afriquegemma.js +10 -10
- package/dist/examples/translation/translation-llm-context.js +10 -10
- package/dist/examples/translation/translation-llm.js +13 -13
- package/dist/examples/translation/translation-stream.js +11 -11
- package/dist/examples/tts/chatterbox-enhanced.d.ts +2 -0
- package/dist/examples/tts/chatterbox-enhanced.js +55 -0
- package/dist/examples/tts/chatterbox-multilingual.d.ts +2 -0
- package/dist/examples/tts/chatterbox-multilingual.js +54 -0
- package/dist/examples/tts/chatterbox.js +18 -18
- package/dist/examples/tts/llm-to-tts-streaming.js +30 -30
- package/dist/examples/tts/supertonic-enhanced.d.ts +2 -0
- package/dist/examples/tts/supertonic-enhanced.js +57 -0
- package/dist/examples/tts/supertonic-multilingual.js +19 -19
- package/dist/examples/tts/supertonic.js +18 -18
- package/dist/examples/tts/utils.js +24 -32
- package/dist/examples/vla-groot.d.ts +2 -0
- package/dist/examples/vla-groot.js +118 -0
- package/dist/examples/vla-pi05.js +14 -14
- package/dist/examples/vla-smolvla.js +14 -14
- package/dist/examples/voice-assistant/voice-assistant.js +46 -46
- package/dist/expo/plugins/find-in-ancestor-node-modules.js +3 -3
- package/dist/expo/plugins/get-project-root.d.ts +2 -2
- package/dist/expo/plugins/get-project-root.js +1 -1
- package/dist/expo/plugins/index.d.ts +11 -11
- package/dist/expo/plugins/index.js +10 -10
- package/dist/expo/plugins/resolve-sdk-package-dir.js +7 -11
- package/dist/expo/plugins/withAndroidArchitecture.d.ts +1 -1
- package/dist/expo/plugins/withAndroidArchitecture.js +12 -12
- package/dist/expo/plugins/withAndroidNdkVersion.d.ts +1 -1
- package/dist/expo/plugins/withAndroidNdkVersion.js +9 -9
- package/dist/expo/plugins/withDeviceInfo.d.ts +1 -1
- package/dist/expo/plugins/withDeviceInfo.js +13 -13
- package/dist/expo/plugins/withMobileBundle.d.ts +1 -1
- package/dist/expo/plugins/withMobileBundle.js +34 -42
- package/dist/expo/plugins/withOpenCL.d.ts +1 -1
- package/dist/expo/plugins/withOpenCL.js +14 -16
- package/dist/expo/plugins/withQvacSDK.d.ts +1 -1
- package/dist/expo/plugins/withQvacSDK.js +12 -12
- package/dist/index.d.ts +16 -16
- package/dist/index.js +16 -17
- package/dist/logging/addon.d.ts +1 -1
- package/dist/logging/addon.js +13 -13
- package/dist/logging/base-logger.d.ts +2 -2
- package/dist/logging/base-logger.js +6 -6
- package/dist/logging/client-logger.d.ts +1 -1
- package/dist/logging/client-logger.js +3 -3
- package/dist/logging/index.d.ts +9 -9
- package/dist/logging/index.js +8 -8
- package/dist/logging/logger.d.ts +1 -1
- package/dist/logging/logger.js +4 -4
- package/dist/logging/namespaces.d.ts +1 -1
- package/dist/logging/namespaces.js +5 -5
- package/dist/logging/registry.d.ts +2 -2
- package/dist/logging/registry.js +3 -3
- package/dist/logging/server-logger.d.ts +1 -1
- package/dist/logging/server-logger.js +2 -2
- package/dist/logging/stream-logger.d.ts +1 -1
- package/dist/logging/stream-logger.js +4 -4
- package/dist/logging/transport.d.ts +1 -1
- package/dist/logging/types.d.ts +1 -1
- package/dist/logging/utils.d.ts +2 -2
- package/dist/logging/utils.js +40 -41
- package/dist/models/registry/index.d.ts +1 -1
- package/dist/models/registry/index.js +5 -5
- package/dist/models/registry/models.d.ts +5622 -9241
- package/dist/models/registry/models.js +13215 -17030
- package/dist/models/update-models/codegen.d.ts +1 -1
- package/dist/models/update-models/codegen.js +8 -8
- package/dist/models/update-models/companions.d.ts +6 -1
- package/dist/models/update-models/companions.js +104 -39
- package/dist/models/update-models/history.d.ts +1 -1
- package/dist/models/update-models/history.js +11 -11
- package/dist/models/update-models/index.js +32 -34
- package/dist/models/update-models/naming.d.ts +2 -2
- package/dist/models/update-models/naming.js +181 -186
- package/dist/models/update-models/processing.d.ts +2 -2
- package/dist/models/update-models/processing.js +17 -19
- package/dist/models/update-models/registry.d.ts +2 -2
- package/dist/models/update-models/registry.js +9 -9
- package/dist/models/update-models/shards.d.ts +1 -1
- package/dist/models/update-models/shards.js +3 -3
- package/dist/models/update-models/types.d.ts +1 -1
- package/dist/models/update-models/utils.js +5 -5
- package/dist/pear/pre.js +84 -84
- package/dist/profiling/aggregator.d.ts +1 -1
- package/dist/profiling/aggregator.js +6 -6
- package/dist/profiling/clock.d.ts +1 -1
- package/dist/profiling/clock.js +10 -10
- package/dist/profiling/controller.d.ts +2 -2
- package/dist/profiling/controller.js +11 -12
- package/dist/profiling/envelope.d.ts +1 -1
- package/dist/profiling/envelope.js +4 -6
- package/dist/profiling/events.d.ts +2 -2
- package/dist/profiling/events.js +8 -10
- package/dist/profiling/exporters.d.ts +1 -1
- package/dist/profiling/exporters.js +81 -79
- package/dist/profiling/index.d.ts +8 -8
- package/dist/profiling/index.js +7 -7
- package/dist/profiling/model-execution.js +2 -1
- package/dist/profiling/ring-buffer.js +2 -2
- package/dist/profiling/types.d.ts +3 -3
- package/dist/schemas/archive.d.ts +1 -1
- package/dist/schemas/archive.js +8 -14
- package/dist/schemas/batch-completion-stream.d.ts +463 -0
- package/dist/schemas/batch-completion-stream.js +124 -0
- package/dist/schemas/bci-config.d.ts +1 -1
- package/dist/schemas/bci-config.js +7 -7
- package/dist/schemas/bci.d.ts +3 -3
- package/dist/schemas/bci.js +25 -31
- package/dist/schemas/cancel.d.ts +6 -1
- package/dist/schemas/cancel.js +33 -34
- package/dist/schemas/classification.d.ts +1 -1
- package/dist/schemas/classification.js +7 -7
- package/dist/schemas/common.d.ts +578 -28
- package/dist/schemas/common.js +42 -37
- package/dist/schemas/completion-event.d.ts +11 -8
- package/dist/schemas/completion-event.js +27 -26
- package/dist/schemas/completion-stream.d.ts +190 -5
- package/dist/schemas/completion-stream.js +118 -67
- package/dist/schemas/constants-registry.d.ts +67 -0
- package/dist/schemas/constants-registry.js +51 -0
- package/dist/schemas/delegate.d.ts +1 -1
- package/dist/schemas/delegate.js +7 -7
- package/dist/schemas/delete-cache.d.ts +1 -1
- package/dist/schemas/delete-cache.js +15 -11
- package/dist/schemas/download-asset.d.ts +2 -2
- package/dist/schemas/download-asset.js +21 -21
- package/dist/schemas/embed.d.ts +3 -3
- package/dist/schemas/embed.js +16 -27
- package/dist/schemas/engine-addon-map.d.ts +3 -2
- package/dist/schemas/engine-addon-map.js +25 -25
- package/dist/schemas/error.d.ts +1 -1
- package/dist/schemas/error.js +12 -13
- package/dist/schemas/finetune.d.ts +1 -1
- package/dist/schemas/finetune.js +41 -44
- package/dist/schemas/get-loaded-model-info.d.ts +17 -1
- package/dist/schemas/get-loaded-model-info.js +22 -14
- package/dist/schemas/get-model-info.d.ts +1 -1
- package/dist/schemas/get-model-info.js +48 -91
- package/dist/schemas/heartbeat.d.ts +1 -1
- package/dist/schemas/heartbeat.js +6 -6
- package/dist/schemas/index.d.ts +52 -51
- package/dist/schemas/index.js +52 -51
- package/dist/schemas/json-schema.d.ts +1 -1
- package/dist/schemas/llamacpp-config.d.ts +57 -29
- package/dist/schemas/llamacpp-config.js +43 -35
- package/dist/schemas/load-model.d.ts +1537 -185
- package/dist/schemas/load-model.js +126 -129
- package/dist/schemas/logging-stream.d.ts +1 -1
- package/dist/schemas/logging-stream.js +6 -12
- package/dist/schemas/mcp-adapter.d.ts +1 -1
- package/dist/schemas/model-src-utils.d.ts +1 -1
- package/dist/schemas/model-src-utils.js +13 -13
- package/dist/schemas/model-types.d.ts +1 -1
- package/dist/schemas/model-types.js +27 -27
- package/dist/schemas/ocr.d.ts +1 -1
- package/dist/schemas/ocr.js +18 -18
- package/dist/schemas/path-validation.d.ts +1 -1
- package/dist/schemas/path-validation.js +4 -4
- package/dist/schemas/plugin.d.ts +13 -14
- package/dist/schemas/plugin.js +51 -51
- package/dist/schemas/profiling.d.ts +1 -1
- package/dist/schemas/profiling.js +16 -16
- package/dist/schemas/provide.d.ts +1 -1
- package/dist/schemas/provide.js +8 -8
- package/dist/schemas/rag.d.ts +3 -3
- package/dist/schemas/rag.js +65 -70
- package/dist/schemas/registry.d.ts +1 -1
- package/dist/schemas/registry.js +44 -66
- package/dist/schemas/reload-config.d.ts +1 -1
- package/dist/schemas/reload-config.js +16 -18
- package/dist/schemas/resume.d.ts +1 -1
- package/dist/schemas/resume.js +3 -3
- package/dist/schemas/runtime-context.d.ts +1 -1
- package/dist/schemas/runtime-context.js +4 -4
- package/dist/schemas/sdcpp-config.d.ts +248 -9
- package/dist/schemas/sdcpp-config.js +395 -291
- package/dist/schemas/sdk-config.d.ts +833 -71
- package/dist/schemas/sdk-config.js +25 -29
- package/dist/schemas/sdk-errors-client.d.ts +1 -1
- package/dist/schemas/sdk-errors-client.js +80 -80
- package/dist/schemas/sdk-errors-registry.js +1 -1
- package/dist/schemas/sdk-errors-server.d.ts +1 -1
- package/dist/schemas/sdk-errors-server.js +202 -199
- package/dist/schemas/shard.d.ts +1 -1
- package/dist/schemas/shard.js +4 -4
- package/dist/schemas/state.d.ts +1 -1
- package/dist/schemas/state.js +5 -10
- package/dist/schemas/stop-provide.d.ts +1 -1
- package/dist/schemas/stop-provide.js +4 -4
- package/dist/schemas/suspend.d.ts +1 -1
- package/dist/schemas/suspend.js +3 -3
- package/dist/schemas/text-to-speech.d.ts +469 -3
- package/dist/schemas/text-to-speech.js +151 -109
- package/dist/schemas/tools.d.ts +2 -2
- package/dist/schemas/tools.js +18 -24
- package/dist/schemas/transcription-config.d.ts +1 -1
- package/dist/schemas/transcription-config.js +18 -18
- package/dist/schemas/transcription.d.ts +5 -5
- package/dist/schemas/transcription.js +31 -33
- package/dist/schemas/translate.d.ts +3 -3
- package/dist/schemas/translate.js +49 -72
- package/dist/schemas/translation-config.d.ts +1 -1
- package/dist/schemas/translation-config.js +116 -123
- package/dist/schemas/unload-model.d.ts +1 -1
- package/dist/schemas/unload-model.js +6 -6
- package/dist/schemas/vla.d.ts +11 -1
- package/dist/schemas/vla.js +52 -32
- package/dist/scripts/contract/build-contract.d.ts +38 -0
- package/dist/scripts/contract/build-contract.js +620 -0
- package/dist/scripts/contract/build-error-codes.d.ts +17 -0
- package/dist/scripts/contract/build-error-codes.js +17 -0
- package/dist/scripts/contract/build-model-type-maps.d.ts +22 -0
- package/dist/scripts/contract/build-model-type-maps.js +16 -0
- package/dist/scripts/contract/build-models-registry.d.ts +17 -0
- package/dist/scripts/contract/build-models-registry.js +31 -0
- package/dist/scripts/contract/plugin-contract.d.ts +23 -0
- package/dist/scripts/contract/plugin-contract.js +28 -0
- package/dist/scripts/export-contract.d.ts +2 -0
- package/dist/scripts/export-contract.js +27 -0
- package/dist/scripts/export-plugin-contract.d.ts +2 -0
- package/dist/scripts/export-plugin-contract.js +18 -0
- package/dist/scripts/run-security-tests.js +9 -10
- package/dist/scripts/run-unit-tests.js +11 -12
- package/dist/server/bare/delegate-connect-diagnostics.js +13 -19
- package/dist/server/bare/delegate-rpc-client.d.ts +2 -2
- package/dist/server/bare/delegate-rpc-client.js +32 -34
- package/dist/server/bare/hyperswarm.d.ts +3 -3
- package/dist/server/bare/hyperswarm.js +14 -14
- package/dist/server/bare/ops/bci-transcribe.d.ts +1 -1
- package/dist/server/bare/ops/bci-transcribe.js +44 -44
- package/dist/server/bare/ops/cancel.d.ts +2 -2
- package/dist/server/bare/ops/cancel.js +6 -6
- package/dist/server/bare/ops/embed.d.ts +1 -1
- package/dist/server/bare/ops/embed.js +26 -16
- package/dist/server/bare/ops/kv-cache-utils.d.ts +1 -1
- package/dist/server/bare/ops/kv-cache-utils.js +17 -19
- package/dist/server/bare/ops/load-model.d.ts +2 -2
- package/dist/server/bare/ops/load-model.js +14 -18
- package/dist/server/bare/ops/transcribe.d.ts +3 -3
- package/dist/server/bare/ops/transcribe.js +62 -62
- package/dist/server/bare/ops/translate.d.ts +1 -1
- package/dist/server/bare/ops/translate.js +53 -31
- package/dist/server/bare/ops/unload-model.d.ts +1 -1
- package/dist/server/bare/ops/unload-model.js +12 -12
- package/dist/server/bare/plugins/bci-whispercpp-transcription/args.d.ts +2 -2
- package/dist/server/bare/plugins/bci-whispercpp-transcription/args.js +3 -3
- package/dist/server/bare/plugins/bci-whispercpp-transcription/plugin.d.ts +4 -3
- package/dist/server/bare/plugins/bci-whispercpp-transcription/plugin.js +33 -33
- package/dist/server/bare/plugins/bci-whispercpp-transcription/resolve-config.d.ts +1 -1
- package/dist/server/bare/plugins/bci-whispercpp-transcription/resolve-config.js +1 -1
- package/dist/server/bare/plugins/ggml-classification/ops/classify.d.ts +1 -1
- package/dist/server/bare/plugins/ggml-classification/ops/classify.js +8 -8
- package/dist/server/bare/plugins/ggml-classification/plugin.d.ts +1 -1
- package/dist/server/bare/plugins/ggml-classification/plugin.js +14 -14
- package/dist/server/bare/plugins/ggml-ocr/ops/ocr-stream.d.ts +1 -1
- package/dist/server/bare/plugins/ggml-ocr/ops/ocr-stream.js +27 -26
- package/dist/server/bare/plugins/ggml-ocr/plugin.d.ts +1 -1
- package/dist/server/bare/plugins/ggml-ocr/plugin.js +33 -54
- package/dist/server/bare/plugins/ggml-ocr/resolve-config.d.ts +6 -0
- package/dist/server/bare/plugins/ggml-ocr/resolve-config.js +73 -0
- package/dist/server/bare/plugins/ggml-vla/ops/vla-hparams.d.ts +1 -1
- package/dist/server/bare/plugins/ggml-vla/ops/vla-hparams.js +3 -3
- package/dist/server/bare/plugins/ggml-vla/ops/vla-run.d.ts +1 -1
- package/dist/server/bare/plugins/ggml-vla/ops/vla-run.js +23 -23
- package/dist/server/bare/plugins/ggml-vla/plugin.d.ts +6 -1
- package/dist/server/bare/plugins/ggml-vla/plugin.js +15 -15
- package/dist/server/bare/plugins/index.d.ts +11 -11
- package/dist/server/bare/plugins/index.js +11 -11
- package/dist/server/bare/plugins/llamacpp-completion/ops/batch-cancelled.d.ts +23 -0
- package/dist/server/bare/plugins/llamacpp-completion/ops/batch-cancelled.js +30 -0
- package/dist/server/bare/plugins/llamacpp-completion/ops/batch-completion-stream.d.ts +32 -0
- package/dist/server/bare/plugins/llamacpp-completion/ops/batch-completion-stream.js +99 -0
- package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.d.ts +1 -1
- package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.js +8 -8
- package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stats.d.ts +3 -2
- package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stats.js +4 -1
- package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stream.d.ts +22 -4
- package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stream.js +65 -80
- package/dist/server/bare/plugins/llamacpp-completion/ops/context-overflow.js +5 -5
- package/dist/server/bare/plugins/llamacpp-completion/ops/finetune.d.ts +2 -2
- package/dist/server/bare/plugins/llamacpp-completion/ops/finetune.js +34 -34
- package/dist/server/bare/plugins/llamacpp-completion/ops/kv-cache-session.d.ts +7 -7
- package/dist/server/bare/plugins/llamacpp-completion/ops/kv-cache-session.js +19 -23
- package/dist/server/bare/plugins/llamacpp-completion/ops/kv-cache-state.d.ts +8 -0
- package/dist/server/bare/plugins/llamacpp-completion/ops/kv-cache-state.js +12 -6
- package/dist/server/bare/plugins/llamacpp-completion/plugin.d.ts +193 -19
- package/dist/server/bare/plugins/llamacpp-completion/plugin.js +235 -70
- package/dist/server/bare/plugins/llamacpp-completion/transform.d.ts +1 -1
- package/dist/server/bare/plugins/llamacpp-completion/transform.js +15 -15
- package/dist/server/bare/plugins/llamacpp-embedding/plugin.d.ts +9 -4
- package/dist/server/bare/plugins/llamacpp-embedding/plugin.js +27 -29
- package/dist/server/bare/plugins/nmtcpp-translation/plugin.d.ts +1 -1
- package/dist/server/bare/plugins/nmtcpp-translation/plugin.js +38 -39
- package/dist/server/bare/plugins/nmtcpp-translation/resolve-vocab.d.ts +1 -1
- package/dist/server/bare/plugins/nmtcpp-translation/resolve-vocab.js +19 -22
- package/dist/server/bare/plugins/parakeet-transcription/plugin.d.ts +1 -1
- package/dist/server/bare/plugins/parakeet-transcription/plugin.js +36 -36
- package/dist/server/bare/plugins/sdcpp-generation/ops/diffusion.d.ts +1 -1
- package/dist/server/bare/plugins/sdcpp-generation/ops/diffusion.js +15 -17
- package/dist/server/bare/plugins/sdcpp-generation/ops/upscale.d.ts +1 -1
- package/dist/server/bare/plugins/sdcpp-generation/ops/upscale.js +11 -11
- package/dist/server/bare/plugins/sdcpp-generation/ops/video.d.ts +3 -1
- package/dist/server/bare/plugins/sdcpp-generation/ops/video.js +71 -44
- package/dist/server/bare/plugins/sdcpp-generation/plugin.d.ts +132 -4
- package/dist/server/bare/plugins/sdcpp-generation/plugin.js +148 -70
- package/dist/server/bare/plugins/tts-ggml/ops/text-to-speech-stream.d.ts +2 -2
- package/dist/server/bare/plugins/tts-ggml/ops/text-to-speech-stream.js +19 -21
- package/dist/server/bare/plugins/tts-ggml/ops/text-to-speech.d.ts +2 -2
- package/dist/server/bare/plugins/tts-ggml/ops/text-to-speech.js +18 -34
- package/dist/server/bare/plugins/tts-ggml/plugin.d.ts +9 -2
- package/dist/server/bare/plugins/tts-ggml/plugin.js +97 -49
- package/dist/server/bare/plugins/whispercpp-transcription/plugin.d.ts +1 -1
- package/dist/server/bare/plugins/whispercpp-transcription/plugin.js +52 -52
- package/dist/server/bare/rag-hyperdb/handlers/chunk.d.ts +1 -1
- package/dist/server/bare/rag-hyperdb/handlers/chunk.js +2 -2
- package/dist/server/bare/rag-hyperdb/handlers/close-workspace.d.ts +1 -1
- package/dist/server/bare/rag-hyperdb/handlers/close-workspace.js +2 -2
- package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.d.ts +1 -1
- package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.js +4 -4
- package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.d.ts +1 -1
- package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.js +3 -3
- package/dist/server/bare/rag-hyperdb/handlers/ingest.d.ts +2 -2
- package/dist/server/bare/rag-hyperdb/handlers/ingest.js +4 -4
- package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.d.ts +1 -1
- package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.js +1 -1
- package/dist/server/bare/rag-hyperdb/handlers/reindex.d.ts +2 -2
- package/dist/server/bare/rag-hyperdb/handlers/reindex.js +5 -5
- package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.d.ts +2 -2
- package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.js +3 -3
- package/dist/server/bare/rag-hyperdb/handlers/search.d.ts +1 -1
- package/dist/server/bare/rag-hyperdb/handlers/search.js +3 -3
- package/dist/server/bare/rag-hyperdb/index.d.ts +11 -11
- package/dist/server/bare/rag-hyperdb/index.js +11 -11
- package/dist/server/bare/rag-hyperdb/rag-operation-manager.js +3 -3
- package/dist/server/bare/rag-hyperdb/rag-workspace-manager.d.ts +1 -1
- package/dist/server/bare/rag-hyperdb/rag-workspace-manager.js +20 -20
- package/dist/server/bare/registry/config-registry.d.ts +1 -1
- package/dist/server/bare/registry/config-registry.js +13 -16
- package/dist/server/bare/registry/logging-stream-registry.d.ts +1 -1
- package/dist/server/bare/registry/logging-stream-registry.js +2 -2
- package/dist/server/bare/registry/model-config-registry.d.ts +2 -2
- package/dist/server/bare/registry/model-config-registry.js +6 -6
- package/dist/server/bare/registry/model-config-utils.d.ts +2 -2
- package/dist/server/bare/registry/model-config-utils.js +35 -35
- package/dist/server/bare/registry/model-registry.d.ts +3 -3
- package/dist/server/bare/registry/model-registry.js +11 -11
- package/dist/server/bare/registry/registry-client.d.ts +1 -1
- package/dist/server/bare/registry/registry-client.js +18 -18
- package/dist/server/bare/registry/runtime-context-registry.d.ts +1 -1
- package/dist/server/bare/registry/runtime-context-registry.js +3 -3
- package/dist/server/bare/runtime/disposable-scope.js +3 -3
- package/dist/server/bare/runtime/index.d.ts +7 -7
- package/dist/server/bare/runtime/index.js +3 -3
- package/dist/server/bare/runtime/request-context.d.ts +4 -4
- package/dist/server/bare/runtime/request-id.js +1 -1
- package/dist/server/bare/runtime/request-registry-singleton.d.ts +1 -1
- package/dist/server/bare/runtime/request-registry-singleton.js +23 -4
- package/dist/server/bare/runtime/request-registry.d.ts +27 -12
- package/dist/server/bare/runtime/request-registry.js +39 -34
- package/dist/server/bare/runtime/with-request-context.d.ts +1 -1
- package/dist/server/bare/runtime/with-request-context.js +11 -11
- package/dist/server/bare/runtime-lifecycle.d.ts +1 -1
- package/dist/server/bare/runtime-lifecycle.js +27 -31
- package/dist/server/bare/types/addon-responses.d.ts +7 -4
- package/dist/server/bare/utils/audio-input.d.ts +2 -2
- package/dist/server/bare/utils/audio-input.js +7 -7
- package/dist/server/bare/utils/transcribe-metadata.d.ts +1 -1
- package/dist/server/bare/utils/transcribe-metadata.js +4 -4
- package/dist/server/bare/utils/tts-stats.d.ts +9 -5
- package/dist/server/bare/utils/tts-stats.js +8 -2
- package/dist/server/env.js +8 -8
- package/dist/server/error-handlers.d.ts +3 -3
- package/dist/server/error-handlers.js +11 -11
- package/dist/server/plugins/index.d.ts +1 -1
- package/dist/server/plugins/index.js +1 -1
- package/dist/server/plugins/registry.d.ts +1 -1
- package/dist/server/plugins/registry.js +12 -14
- package/dist/server/rpc/create-server.d.ts +1 -1
- package/dist/server/rpc/create-server.js +34 -13
- package/dist/server/rpc/delegate-transport.d.ts +3 -3
- package/dist/server/rpc/delegate-transport.js +43 -44
- package/dist/server/rpc/handle-request.d.ts +1 -1
- package/dist/server/rpc/handle-request.js +28 -30
- package/dist/server/rpc/handler-registry.d.ts +1 -1
- package/dist/server/rpc/handler-registry.js +102 -92
- package/dist/server/rpc/handler-selection.d.ts +3 -3
- package/dist/server/rpc/handler-selection.js +3 -3
- package/dist/server/rpc/handler-utils.d.ts +7 -7
- package/dist/server/rpc/handler-utils.js +32 -35
- package/dist/server/rpc/handlers/batch-completion-stream.d.ts +78 -0
- package/dist/server/rpc/handlers/batch-completion-stream.js +4 -0
- package/dist/server/rpc/handlers/bci-transcribe-stream.d.ts +1 -1
- package/dist/server/rpc/handlers/bci-transcribe-stream.js +2 -2
- package/dist/server/rpc/handlers/bci-transcribe.d.ts +1 -1
- package/dist/server/rpc/handlers/bci-transcribe.js +2 -2
- package/dist/server/rpc/handlers/cancel-delegated.d.ts +2 -2
- package/dist/server/rpc/handlers/cancel-delegated.js +13 -13
- package/dist/server/rpc/handlers/cancelHandler.d.ts +1 -1
- package/dist/server/rpc/handlers/cancelHandler.js +11 -11
- package/dist/server/rpc/handlers/classify.d.ts +1 -1
- package/dist/server/rpc/handlers/classify.js +2 -2
- package/dist/server/rpc/handlers/completion-orchestrate.d.ts +42 -0
- package/dist/server/rpc/handlers/completion-orchestrate.js +190 -0
- package/dist/server/rpc/handlers/completion-stream-delegated.d.ts +2 -2
- package/dist/server/rpc/handlers/completion-stream-delegated.js +14 -14
- package/dist/server/rpc/handlers/completion-stream.d.ts +1 -1
- package/dist/server/rpc/handlers/completion-stream.js +2 -2
- package/dist/server/rpc/handlers/delete-cache.d.ts +1 -1
- package/dist/server/rpc/handlers/delete-cache.js +10 -10
- package/dist/server/rpc/handlers/diffusion-stream.d.ts +1 -1
- package/dist/server/rpc/handlers/diffusion-stream.js +2 -2
- package/dist/server/rpc/handlers/download-asset.d.ts +1 -1
- package/dist/server/rpc/handlers/download-asset.js +20 -20
- package/dist/server/rpc/handlers/embed.d.ts +1 -1
- package/dist/server/rpc/handlers/embed.js +2 -2
- package/dist/server/rpc/handlers/finetune.d.ts +1 -1
- package/dist/server/rpc/handlers/finetune.js +8 -6
- package/dist/server/rpc/handlers/get-loaded-model-info.d.ts +1 -1
- package/dist/server/rpc/handlers/get-loaded-model-info.js +15 -9
- package/dist/server/rpc/handlers/get-model-info.d.ts +1 -1
- package/dist/server/rpc/handlers/get-model-info.js +20 -20
- package/dist/server/rpc/handlers/heartbeat-delegated.d.ts +2 -2
- package/dist/server/rpc/handlers/heartbeat-delegated.js +7 -7
- package/dist/server/rpc/handlers/heartbeat.d.ts +1 -1
- package/dist/server/rpc/handlers/heartbeat.js +1 -1
- package/dist/server/rpc/handlers/index.d.ts +35 -31
- package/dist/server/rpc/handlers/index.js +36 -32
- package/dist/server/rpc/handlers/load-model/download-manager.d.ts +4 -4
- package/dist/server/rpc/handlers/load-model/download-manager.js +19 -17
- package/dist/server/rpc/handlers/load-model/download-stats.d.ts +4 -3
- package/dist/server/rpc/handlers/load-model/download-stats.js +9 -11
- package/dist/server/rpc/handlers/load-model/handler.d.ts +1 -1
- package/dist/server/rpc/handlers/load-model/handler.js +42 -43
- package/dist/server/rpc/handlers/load-model/http.d.ts +2 -2
- package/dist/server/rpc/handlers/load-model/http.js +100 -107
- package/dist/server/rpc/handlers/load-model/hyperdrive.d.ts +2 -2
- package/dist/server/rpc/handlers/load-model/hyperdrive.js +72 -74
- 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/registry-client-options.d.ts +2 -2
- package/dist/server/rpc/handlers/load-model/registry-client-options.js +2 -3
- package/dist/server/rpc/handlers/load-model/registry-companion-set.d.ts +5 -5
- package/dist/server/rpc/handlers/load-model/registry-companion-set.js +19 -21
- package/dist/server/rpc/handlers/load-model/registry-download-utils.d.ts +6 -6
- package/dist/server/rpc/handlers/load-model/registry-download-utils.js +16 -18
- package/dist/server/rpc/handlers/load-model/registry-metadata.d.ts +11 -0
- package/dist/server/rpc/handlers/load-model/registry-metadata.js +23 -0
- package/dist/server/rpc/handlers/load-model/registry.d.ts +4 -3
- package/dist/server/rpc/handlers/load-model/registry.js +50 -56
- package/dist/server/rpc/handlers/load-model/resolve-session.d.ts +3 -3
- package/dist/server/rpc/handlers/load-model/resolve-session.js +7 -7
- package/dist/server/rpc/handlers/load-model/resolve.d.ts +3 -3
- package/dist/server/rpc/handlers/load-model/resolve.js +36 -35
- package/dist/server/rpc/handlers/load-model/types.d.ts +3 -3
- package/dist/server/rpc/handlers/load-model/types.js +7 -7
- package/dist/server/rpc/handlers/load-model-delegated.d.ts +2 -2
- package/dist/server/rpc/handlers/load-model-delegated.js +31 -30
- package/dist/server/rpc/handlers/logging-stream.d.ts +1 -1
- package/dist/server/rpc/handlers/logging-stream.js +3 -3
- package/dist/server/rpc/handlers/ocr-stream.d.ts +1 -1
- package/dist/server/rpc/handlers/ocr-stream.js +2 -2
- package/dist/server/rpc/handlers/plugin-dispatch.js +9 -9
- package/dist/server/rpc/handlers/plugin-invoke.d.ts +1 -1
- package/dist/server/rpc/handlers/plugin-invoke.js +16 -16
- package/dist/server/rpc/handlers/provideHandler/connection.d.ts +1 -1
- package/dist/server/rpc/handlers/provideHandler/connection.js +16 -16
- package/dist/server/rpc/handlers/provideHandler/handler.d.ts +1 -1
- package/dist/server/rpc/handlers/provideHandler/handler.js +18 -18
- package/dist/server/rpc/handlers/provideHandler/proxy.d.ts +1 -1
- package/dist/server/rpc/handlers/provideHandler/proxy.js +11 -11
- package/dist/server/rpc/handlers/provideHandler.d.ts +1 -1
- package/dist/server/rpc/handlers/provideHandler.js +1 -1
- package/dist/server/rpc/handlers/rag.d.ts +1 -1
- package/dist/server/rpc/handlers/rag.js +50 -50
- package/dist/server/rpc/handlers/registry.d.ts +1 -1
- package/dist/server/rpc/handlers/registry.js +34 -36
- package/dist/server/rpc/handlers/resume.d.ts +1 -1
- package/dist/server/rpc/handlers/resume.js +3 -3
- package/dist/server/rpc/handlers/state.d.ts +1 -1
- package/dist/server/rpc/handlers/state.js +3 -3
- package/dist/server/rpc/handlers/stopProvideHandler.d.ts +1 -1
- package/dist/server/rpc/handlers/stopProvideHandler.js +7 -7
- package/dist/server/rpc/handlers/suspend.d.ts +1 -1
- package/dist/server/rpc/handlers/suspend.js +3 -3
- package/dist/server/rpc/handlers/text-to-speech-stream.d.ts +1 -1
- package/dist/server/rpc/handlers/text-to-speech-stream.js +2 -2
- package/dist/server/rpc/handlers/text-to-speech.d.ts +1 -1
- package/dist/server/rpc/handlers/text-to-speech.js +2 -2
- package/dist/server/rpc/handlers/transcribe-stream.d.ts +1 -1
- package/dist/server/rpc/handlers/transcribe-stream.js +2 -2
- package/dist/server/rpc/handlers/transcribe.d.ts +1 -1
- package/dist/server/rpc/handlers/transcribe.js +2 -2
- package/dist/server/rpc/handlers/translate.d.ts +1 -1
- package/dist/server/rpc/handlers/translate.js +2 -2
- package/dist/server/rpc/handlers/unload-model-delegated.d.ts +1 -1
- package/dist/server/rpc/handlers/unload-model-delegated.js +10 -10
- package/dist/server/rpc/handlers/unload-model.d.ts +1 -1
- package/dist/server/rpc/handlers/unload-model.js +10 -10
- package/dist/server/rpc/handlers/upscale-stream.d.ts +1 -1
- package/dist/server/rpc/handlers/upscale-stream.js +2 -2
- package/dist/server/rpc/handlers/video-stream.d.ts +1 -1
- package/dist/server/rpc/handlers/video-stream.js +2 -2
- package/dist/server/rpc/index.d.ts +2 -2
- package/dist/server/rpc/index.js +2 -2
- package/dist/server/rpc/method-shapes.d.ts +51 -0
- package/dist/server/rpc/method-shapes.js +48 -0
- package/dist/server/rpc/profiling/context.d.ts +1 -1
- package/dist/server/rpc/profiling/context.js +9 -10
- package/dist/server/rpc/profiling/delegation-profiler.d.ts +2 -2
- package/dist/server/rpc/profiling/delegation-profiler.js +23 -24
- package/dist/server/rpc/profiling/index.d.ts +4 -4
- package/dist/server/rpc/profiling/index.js +4 -4
- package/dist/server/rpc/profiling/operation-metrics.d.ts +2 -2
- package/dist/server/rpc/profiling/operation-metrics.js +122 -102
- package/dist/server/rpc/profiling/operation-wrappers.d.ts +1 -1
- package/dist/server/rpc/profiling/operation-wrappers.js +16 -14
- package/dist/server/rpc/profiling/profiler.d.ts +2 -2
- package/dist/server/rpc/profiling/profiler.js +9 -13
- package/dist/server/rpc/rpc-utils.js +1 -4
- package/dist/server/rpc/transport-selector.d.ts +1 -1
- package/dist/server/rpc/transport-selector.js +4 -4
- package/dist/server/utils/archive.js +27 -29
- package/dist/server/utils/audio/decoder.d.ts +2 -2
- package/dist/server/utils/audio/decoder.js +11 -11
- package/dist/server/utils/cache/auto-history.d.ts +1 -1
- package/dist/server/utils/cache/auto-history.js +15 -11
- package/dist/server/utils/cache/paths.d.ts +2 -2
- package/dist/server/utils/cache/paths.js +14 -14
- package/dist/server/utils/checksum.d.ts +1 -1
- package/dist/server/utils/checksum.js +10 -12
- package/dist/server/utils/clear-storage.d.ts +1 -1
- package/dist/server/utils/clear-storage.js +8 -11
- package/dist/server/utils/completion-normalizer.d.ts +1 -1
- package/dist/server/utils/completion-normalizer.js +106 -113
- package/dist/server/utils/config-transform.d.ts +1 -1
- package/dist/server/utils/config-transform.js +2 -2
- package/dist/server/utils/expand-gguf-shards.js +4 -4
- package/dist/server/utils/formatting.js +6 -12
- package/dist/server/utils/gguf-tensor-extractor.js +17 -21
- package/dist/server/utils/index.d.ts +11 -11
- package/dist/server/utils/index.js +11 -11
- package/dist/server/utils/multi-gpu-mobile.js +1 -1
- package/dist/server/utils/path-security.d.ts +1 -1
- package/dist/server/utils/path-security.js +6 -6
- package/dist/server/utils/qvac-paths.js +3 -3
- package/dist/server/utils/response-format.d.ts +1 -1
- package/dist/server/utils/response-format.js +4 -4
- package/dist/server/utils/shard-utils.d.ts +1 -1
- package/dist/server/utils/shard-utils.js +14 -16
- package/dist/server/utils/tool-integration.d.ts +1 -1
- package/dist/server/utils/tool-integration.js +5 -9
- package/dist/server/utils/tools/dialect.d.ts +1 -1
- package/dist/server/utils/tools/dialect.js +7 -7
- package/dist/server/utils/tools/index.d.ts +2 -2
- package/dist/server/utils/tools/index.js +2 -2
- package/dist/server/utils/tools/parser.d.ts +1 -1
- package/dist/server/utils/tools/parser.js +14 -14
- package/dist/server/utils/tools/parsers/gemma4native.d.ts +2 -2
- package/dist/server/utils/tools/parsers/gemma4native.js +13 -8
- package/dist/server/utils/tools/parsers/harmony.d.ts +2 -2
- package/dist/server/utils/tools/parsers/harmony.js +9 -11
- package/dist/server/utils/tools/parsers/hermes.d.ts +2 -2
- package/dist/server/utils/tools/parsers/hermes.js +16 -16
- package/dist/server/utils/tools/parsers/json.d.ts +2 -2
- package/dist/server/utils/tools/parsers/json.js +14 -14
- package/dist/server/utils/tools/parsers/pythonic.d.ts +2 -2
- package/dist/server/utils/tools/parsers/pythonic.js +43 -43
- package/dist/server/utils/tools/parsers/qwen35.d.ts +2 -2
- package/dist/server/utils/tools/parsers/qwen35.js +20 -20
- package/dist/server/utils/tools/shared.d.ts +1 -1
- package/dist/server/utils/tools/shared.js +10 -12
- package/dist/server/utils/worker-lock.js +10 -10
- package/dist/server/worker-core.d.ts +1 -1
- package/dist/server/worker-core.js +44 -43
- package/dist/server/worker.js +9 -9
- package/dist/utils/aggregate-events.d.ts +2 -2
- package/dist/utils/aggregate-events.js +17 -19
- package/dist/utils/cache-normalize.js +1 -4
- package/dist/utils/encoding.js +1 -1
- package/dist/utils/errors-base.d.ts +1 -1
- package/dist/utils/errors-base.js +1 -1
- package/dist/utils/errors-client.d.ts +1 -1
- package/dist/utils/errors-client.js +5 -5
- package/dist/utils/errors-server.d.ts +3 -3
- package/dist/utils/errors-server.js +19 -18
- package/dist/utils/load-model-validation.js +3 -3
- package/dist/utils/mcp-adapter.d.ts +4 -4
- package/dist/utils/mcp-adapter.js +31 -38
- package/dist/utils/path-sanitize.js +14 -17
- package/dist/utils/tool-helpers.d.ts +2 -2
- package/dist/utils/tool-helpers.js +25 -26
- package/dist/utils/withTimeout.d.ts +7 -0
- package/dist/utils/withTimeout.js +11 -1
- package/dist/utils/zod-error.d.ts +1 -1
- package/dist/utils/zod-error.js +1 -1
- package/electron-forge/index.cjs +274 -317
- package/expo/plugins/patches/android-link.mjs +25 -30
- package/expo/plugins/patches/ios-link.mjs +25 -30
- package/package.json +21 -17
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import fs, { promises as fsPromises } from
|
|
2
|
-
import path from
|
|
3
|
-
import Corestore from
|
|
4
|
-
import Hyperswarm, {} from
|
|
5
|
-
import Hyperdrive from
|
|
6
|
-
import {} from
|
|
7
|
-
import { getQvacPath } from
|
|
8
|
-
import { getModelsCacheDir, generateShortHash, detectShardedModel, getShardedModelCacheDir, getShardPath, checkShardCompleteness, measureChecksum, extractTensorsFromShards, calculatePercentage
|
|
9
|
-
import { getModelBySrc } from
|
|
10
|
-
import { createHyperdriveDownloadKey, startOrJoinDownload, applyJoinedDownloadStats
|
|
11
|
-
import { getSDKConfig } from
|
|
12
|
-
import { FileNotFoundError, ChecksumValidationFailedError, DownloadCancelledError, HyperdriveDownloadFailedError, ModelLoadFailedError, NoBlobFoundError
|
|
13
|
-
import { getServerLogger } from
|
|
14
|
-
import { registerSwarm, unregisterSwarm, registerCorestore, unregisterCorestore
|
|
15
|
-
import { Buffer } from
|
|
1
|
+
import fs, { promises as fsPromises } from 'bare-fs';
|
|
2
|
+
import path from 'bare-path';
|
|
3
|
+
import Corestore from 'corestore';
|
|
4
|
+
import Hyperswarm, {} from 'hyperswarm';
|
|
5
|
+
import Hyperdrive from 'hyperdrive';
|
|
6
|
+
import {} from 'bare-stream';
|
|
7
|
+
import { getQvacPath } from '../../../utils/qvac-paths.js';
|
|
8
|
+
import { getModelsCacheDir, generateShortHash, detectShardedModel, getShardedModelCacheDir, getShardPath, checkShardCompleteness, measureChecksum, extractTensorsFromShards, calculatePercentage } from '../../../utils/index.js';
|
|
9
|
+
import { getModelBySrc } from '../../../../models/registry/index.js';
|
|
10
|
+
import { createHyperdriveDownloadKey, startOrJoinDownload, applyJoinedDownloadStats } from './download-manager.js';
|
|
11
|
+
import { getSDKConfig } from '../../../bare/registry/config-registry.js';
|
|
12
|
+
import { FileNotFoundError, ChecksumValidationFailedError, DownloadCancelledError, HyperdriveDownloadFailedError, ModelLoadFailedError, NoBlobFoundError } from '../../../../utils/errors-server.js';
|
|
13
|
+
import { getServerLogger } from '../../../../logging/index.js';
|
|
14
|
+
import { registerSwarm, unregisterSwarm, registerCorestore, unregisterCorestore } from '../../../bare/runtime-lifecycle.js';
|
|
15
|
+
import { Buffer } from 'bare-buffer';
|
|
16
16
|
const logger = getServerLogger();
|
|
17
17
|
function getCorestoreDir(hyperdriveKey) {
|
|
18
|
-
return getQvacPath(
|
|
18
|
+
return getQvacPath('corestore', hyperdriveKey);
|
|
19
19
|
}
|
|
20
20
|
async function setupHyperdrive(hyperdriveKey, corestoreDir) {
|
|
21
21
|
const corestore = new Corestore(corestoreDir);
|
|
22
22
|
await corestore.ready();
|
|
23
|
-
const drive = new Hyperdrive(corestore, Buffer.from(hyperdriveKey,
|
|
23
|
+
const drive = new Hyperdrive(corestore, Buffer.from(hyperdriveKey, 'hex'));
|
|
24
24
|
await drive.ready();
|
|
25
25
|
const getRelays = () => {
|
|
26
26
|
const config = getSDKConfig();
|
|
@@ -28,14 +28,14 @@ async function setupHyperdrive(hyperdriveKey, corestoreDir) {
|
|
|
28
28
|
if (!relayPublicKeys || relayPublicKeys.length === 0) {
|
|
29
29
|
return null;
|
|
30
30
|
}
|
|
31
|
-
return relayPublicKeys.map((key) => Buffer.from(key,
|
|
31
|
+
return relayPublicKeys.map((key) => Buffer.from(key, 'hex'));
|
|
32
32
|
};
|
|
33
33
|
const swarmOptions = {
|
|
34
|
-
relayThrough: getRelays
|
|
34
|
+
relayThrough: getRelays
|
|
35
35
|
};
|
|
36
36
|
const swarm = new Hyperswarm(swarmOptions);
|
|
37
37
|
const doneFindingPeers = drive.findingPeers();
|
|
38
|
-
swarm.on(
|
|
38
|
+
swarm.on('connection', (connection) => {
|
|
39
39
|
logger.debug(`🤝 Connected to peer for hyperdrive download`);
|
|
40
40
|
drive.replicate(connection);
|
|
41
41
|
});
|
|
@@ -43,23 +43,23 @@ async function setupHyperdrive(hyperdriveKey, corestoreDir) {
|
|
|
43
43
|
swarm.flush().then(doneFindingPeers, doneFindingPeers);
|
|
44
44
|
registerCorestore(corestore, {
|
|
45
45
|
label: `hyperdrive:${hyperdriveKey}`,
|
|
46
|
-
createdAt: Date.now()
|
|
46
|
+
createdAt: Date.now()
|
|
47
47
|
});
|
|
48
48
|
registerSwarm(swarm, {
|
|
49
49
|
label: `hyperdrive:${hyperdriveKey}`,
|
|
50
|
-
createdAt: Date.now()
|
|
50
|
+
createdAt: Date.now()
|
|
51
51
|
});
|
|
52
52
|
return { corestore, drive, swarm, corestoreDir };
|
|
53
53
|
}
|
|
54
54
|
async function cleanupHyperdrive(setup) {
|
|
55
|
-
logger.debug(
|
|
55
|
+
logger.debug('🧹 Cleaning up hyperdrive setup');
|
|
56
56
|
try {
|
|
57
57
|
if (!setup.swarm.suspended) {
|
|
58
58
|
try {
|
|
59
59
|
await setup.swarm.suspend();
|
|
60
60
|
}
|
|
61
61
|
catch (error) {
|
|
62
|
-
logger.debug(
|
|
62
|
+
logger.debug('⚠️ Swarm suspend failed during cleanup:', error instanceof Error ? error.message : String(error));
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
await setup.swarm.destroy();
|
|
@@ -102,7 +102,7 @@ async function findFileInHyperdrive(drive, modelFileName) {
|
|
|
102
102
|
const availableFiles = [];
|
|
103
103
|
try {
|
|
104
104
|
// Try both with and without leading slash
|
|
105
|
-
for (const prefix of [
|
|
105
|
+
for (const prefix of ['/', '']) {
|
|
106
106
|
const files = drive.list(prefix, { recursive: true, wait: true });
|
|
107
107
|
for await (const file of files) {
|
|
108
108
|
availableFiles.push(file.key);
|
|
@@ -115,8 +115,8 @@ async function findFileInHyperdrive(drive, modelFileName) {
|
|
|
115
115
|
// Ignore listing errors
|
|
116
116
|
}
|
|
117
117
|
const filesInfo = availableFiles.length > 0
|
|
118
|
-
? `Available files: ${availableFiles.join(
|
|
119
|
-
:
|
|
118
|
+
? `Available files: ${availableFiles.join(', ')}`
|
|
119
|
+
: 'Could not list available files';
|
|
120
120
|
throw new FileNotFoundError(`${modelFileName} in hyperdrive. ${filesInfo}`);
|
|
121
121
|
}
|
|
122
122
|
async function checkFileDownloaded(drive, entry) {
|
|
@@ -127,7 +127,7 @@ async function checkFileDownloaded(drive, entry) {
|
|
|
127
127
|
blobs,
|
|
128
128
|
blocksDownloaded: 0,
|
|
129
129
|
totalBlocks: 0,
|
|
130
|
-
totalBytes: 0
|
|
130
|
+
totalBytes: 0
|
|
131
131
|
};
|
|
132
132
|
}
|
|
133
133
|
// Check how many blocks are already downloaded
|
|
@@ -142,7 +142,7 @@ async function checkFileDownloaded(drive, entry) {
|
|
|
142
142
|
blobs,
|
|
143
143
|
blocksDownloaded,
|
|
144
144
|
totalBlocks: blob.blockLength,
|
|
145
|
-
totalBytes: blob.byteLength
|
|
145
|
+
totalBytes: blob.byteLength
|
|
146
146
|
};
|
|
147
147
|
}
|
|
148
148
|
async function validateFileExistence(drive, file) {
|
|
@@ -154,7 +154,7 @@ async function validateFileExistence(drive, file) {
|
|
|
154
154
|
targetPath,
|
|
155
155
|
blocksDownloaded,
|
|
156
156
|
totalBlocks,
|
|
157
|
-
totalBytes
|
|
157
|
+
totalBytes
|
|
158
158
|
};
|
|
159
159
|
}
|
|
160
160
|
async function validateCachedFile(modelPath, modelFileName, expectedSize, expectedChecksum, hooks) {
|
|
@@ -193,19 +193,19 @@ async function downloadSingleFileToFilesystem(modelPath, modelFileName, hyperdri
|
|
|
193
193
|
logger.info(`Downloading model from hyperdrive ${hyperdriveKey} to ${modelPath}`);
|
|
194
194
|
const setup = await setupHyperdrive(hyperdriveKey, corestoreDir);
|
|
195
195
|
const cleanup = () => {
|
|
196
|
-
logger.info(
|
|
196
|
+
logger.info('🛑 Aborting hyperdrive download...');
|
|
197
197
|
setup.swarm.suspended = true;
|
|
198
198
|
setup.swarm.suspend().catch(() => {
|
|
199
199
|
// Ignore errors during emergency suspend
|
|
200
200
|
});
|
|
201
201
|
};
|
|
202
|
-
signal?.addEventListener(
|
|
202
|
+
signal?.addEventListener('abort', cleanup);
|
|
203
203
|
let downloadSucceeded = false;
|
|
204
204
|
try {
|
|
205
205
|
const progressContext = progressCallback
|
|
206
206
|
? {
|
|
207
207
|
downloadKey,
|
|
208
|
-
callback: progressCallback
|
|
208
|
+
callback: progressCallback
|
|
209
209
|
}
|
|
210
210
|
: undefined;
|
|
211
211
|
await downloadAndValidateFile(setup.drive, modelFileName, modelPath, 0, // Size will be determined from drive
|
|
@@ -216,11 +216,11 @@ async function downloadSingleFileToFilesystem(modelPath, modelFileName, hyperdri
|
|
|
216
216
|
try {
|
|
217
217
|
const stats = await fsPromises.stat(modelPath);
|
|
218
218
|
progressCallback({
|
|
219
|
-
type:
|
|
219
|
+
type: 'modelProgress',
|
|
220
220
|
downloaded: stats.size,
|
|
221
221
|
total: stats.size,
|
|
222
222
|
percentage: 100,
|
|
223
|
-
downloadKey
|
|
223
|
+
downloadKey
|
|
224
224
|
});
|
|
225
225
|
}
|
|
226
226
|
catch {
|
|
@@ -230,14 +230,14 @@ async function downloadSingleFileToFilesystem(modelPath, modelFileName, hyperdri
|
|
|
230
230
|
downloadSucceeded = true;
|
|
231
231
|
}
|
|
232
232
|
catch (error) {
|
|
233
|
-
logger.error(
|
|
233
|
+
logger.error('❌ Error during hyperdrive download:', error instanceof Error ? error.message : String(error));
|
|
234
234
|
if (error instanceof DownloadCancelledError) {
|
|
235
235
|
throw error;
|
|
236
236
|
}
|
|
237
237
|
throw new HyperdriveDownloadFailedError(`Download failed for ${modelFileName} from hyperdrive: ${hyperdriveKey}`, error);
|
|
238
238
|
}
|
|
239
239
|
finally {
|
|
240
|
-
signal?.removeEventListener(
|
|
240
|
+
signal?.removeEventListener('abort', cleanup);
|
|
241
241
|
if (!seed) {
|
|
242
242
|
await cleanupHyperdrive(setup);
|
|
243
243
|
// Delete only after close - Windows EBUSY on LOCK if deleted before corestore.close()
|
|
@@ -251,9 +251,9 @@ async function downloadSingleFileToFilesystem(modelPath, modelFileName, hyperdri
|
|
|
251
251
|
await fsPromises.unlink(modelPath);
|
|
252
252
|
}
|
|
253
253
|
catch (cleanupError) {
|
|
254
|
-
logger.debug(
|
|
254
|
+
logger.debug('Failed to delete partial model file during cleanup', {
|
|
255
255
|
path: modelPath,
|
|
256
|
-
error: cleanupError
|
|
256
|
+
error: cleanupError
|
|
257
257
|
});
|
|
258
258
|
}
|
|
259
259
|
await deleteCorestoreDirectory(corestoreDir);
|
|
@@ -261,7 +261,7 @@ async function downloadSingleFileToFilesystem(modelPath, modelFileName, hyperdri
|
|
|
261
261
|
}
|
|
262
262
|
}
|
|
263
263
|
async function downloadAndValidateFile(drive, sourceFileName, targetFilePath, expectedSize, expectedChecksum, progressContext, signal, hooks) {
|
|
264
|
-
const { entry, blobs, targetPath, blocksDownloaded, totalBlocks, totalBytes
|
|
264
|
+
const { entry, blobs, targetPath, blocksDownloaded, totalBlocks, totalBytes } = await validateFileExistence(drive, sourceFileName);
|
|
265
265
|
const blob = entry?.value?.blob;
|
|
266
266
|
if (!blob) {
|
|
267
267
|
throw new NoBlobFoundError(sourceFileName);
|
|
@@ -274,17 +274,16 @@ async function downloadAndValidateFile(drive, sourceFileName, targetFilePath, ex
|
|
|
274
274
|
const initialBytes = Math.floor(blocksDownloaded * bytesPerBlock);
|
|
275
275
|
downloadedBytes = initialBytes;
|
|
276
276
|
const progressHandler = (index, bytes) => {
|
|
277
|
-
if (index >= blob.blockOffset &&
|
|
278
|
-
index < blob.blockOffset + blob.blockLength) {
|
|
277
|
+
if (index >= blob.blockOffset && index < blob.blockOffset + blob.blockLength) {
|
|
279
278
|
downloadedBytes += bytes;
|
|
280
279
|
const cappedDownloaded = Math.min(downloadedBytes, totalBytes);
|
|
281
280
|
if (progressContext) {
|
|
282
281
|
const baseProgress = {
|
|
283
|
-
type:
|
|
282
|
+
type: 'modelProgress',
|
|
284
283
|
downloaded: cappedDownloaded,
|
|
285
284
|
total: totalBytes,
|
|
286
285
|
percentage: calculatePercentage(cappedDownloaded, totalBytes),
|
|
287
|
-
downloadKey: progressContext.downloadKey
|
|
286
|
+
downloadKey: progressContext.downloadKey
|
|
288
287
|
};
|
|
289
288
|
if (progressContext.shardInfo) {
|
|
290
289
|
const currentOverall = progressContext.shardInfo.overallDownloaded + cappedDownloaded;
|
|
@@ -297,10 +296,9 @@ async function downloadAndValidateFile(drive, sourceFileName, targetFilePath, ex
|
|
|
297
296
|
overallDownloaded: currentOverall,
|
|
298
297
|
overallTotal: progressContext.shardInfo.overallTotal,
|
|
299
298
|
overallPercentage: progressContext.shardInfo.overallTotal > 0
|
|
300
|
-
? (currentOverall / progressContext.shardInfo.overallTotal) *
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
},
|
|
299
|
+
? (currentOverall / progressContext.shardInfo.overallTotal) * 100
|
|
300
|
+
: 0
|
|
301
|
+
}
|
|
304
302
|
});
|
|
305
303
|
}
|
|
306
304
|
else {
|
|
@@ -309,7 +307,7 @@ async function downloadAndValidateFile(drive, sourceFileName, targetFilePath, ex
|
|
|
309
307
|
}
|
|
310
308
|
}
|
|
311
309
|
};
|
|
312
|
-
blobs.core.on(
|
|
310
|
+
blobs.core.on('download', progressHandler);
|
|
313
311
|
let readStream;
|
|
314
312
|
let writeStream;
|
|
315
313
|
try {
|
|
@@ -319,12 +317,12 @@ async function downloadAndValidateFile(drive, sourceFileName, targetFilePath, ex
|
|
|
319
317
|
writeStream = fs.createWriteStream(targetFilePath);
|
|
320
318
|
readStream.pipe(writeStream);
|
|
321
319
|
await new Promise((resolve, reject) => {
|
|
322
|
-
writeStream.on(
|
|
323
|
-
writeStream.on(
|
|
324
|
-
readStream.on(
|
|
325
|
-
signal?.addEventListener(
|
|
320
|
+
writeStream.on('finish', resolve);
|
|
321
|
+
writeStream.on('error', reject);
|
|
322
|
+
readStream.on('error', reject);
|
|
323
|
+
signal?.addEventListener('abort', () => reject(new DownloadCancelledError()), { once: true });
|
|
326
324
|
});
|
|
327
|
-
blobs.core.off(
|
|
325
|
+
blobs.core.off('download', progressHandler);
|
|
328
326
|
// Validate file size
|
|
329
327
|
const stats = await fsPromises.stat(targetFilePath);
|
|
330
328
|
if (stats.size !== fileSizeToValidate) {
|
|
@@ -349,7 +347,7 @@ async function downloadAndValidateFile(drive, sourceFileName, targetFilePath, ex
|
|
|
349
347
|
if (writeStream) {
|
|
350
348
|
writeStream.destroy();
|
|
351
349
|
}
|
|
352
|
-
blobs.core.off(
|
|
350
|
+
blobs.core.off('download', progressHandler);
|
|
353
351
|
throw error;
|
|
354
352
|
}
|
|
355
353
|
}
|
|
@@ -374,7 +372,7 @@ async function downloadShardedFilesToFilesystem(hyperdriveKey, firstShardFileNam
|
|
|
374
372
|
const overallTotal = shardMetadata.reduce((sum, shard) => sum + shard.expectedSize, 0);
|
|
375
373
|
const lastFile = allFiles[allFiles.length - 1];
|
|
376
374
|
progressCallback({
|
|
377
|
-
type:
|
|
375
|
+
type: 'modelProgress',
|
|
378
376
|
downloaded: overallTotal,
|
|
379
377
|
total: overallTotal,
|
|
380
378
|
percentage: 100,
|
|
@@ -385,8 +383,8 @@ async function downloadShardedFilesToFilesystem(hyperdriveKey, firstShardFileNam
|
|
|
385
383
|
shardName: lastFile,
|
|
386
384
|
overallDownloaded: overallTotal,
|
|
387
385
|
overallTotal,
|
|
388
|
-
overallPercentage: 100
|
|
389
|
-
}
|
|
386
|
+
overallPercentage: 100
|
|
387
|
+
}
|
|
390
388
|
});
|
|
391
389
|
}
|
|
392
390
|
await extractTensorsFromShards(shardDir, firstShardFileName);
|
|
@@ -398,13 +396,13 @@ async function downloadShardedFilesToFilesystem(hyperdriveKey, firstShardFileNam
|
|
|
398
396
|
const corestoreDir = getCorestoreDir(hyperdriveKey);
|
|
399
397
|
const setup = await setupHyperdrive(hyperdriveKey, corestoreDir);
|
|
400
398
|
const cleanup = () => {
|
|
401
|
-
logger.info(
|
|
399
|
+
logger.info('🛑 Aborting sharded hyperdrive download...');
|
|
402
400
|
setup.swarm.suspended = true;
|
|
403
401
|
setup.swarm.suspend().catch(() => {
|
|
404
402
|
// Ignore errors during emergency suspend
|
|
405
403
|
});
|
|
406
404
|
};
|
|
407
|
-
signal?.addEventListener(
|
|
405
|
+
signal?.addEventListener('abort', cleanup);
|
|
408
406
|
let downloadSucceeded = false;
|
|
409
407
|
try {
|
|
410
408
|
// Calculate overall progress
|
|
@@ -425,7 +423,7 @@ async function downloadShardedFilesToFilesystem(hyperdriveKey, firstShardFileNam
|
|
|
425
423
|
// Report progress for skipped files
|
|
426
424
|
if (progressCallback) {
|
|
427
425
|
progressCallback({
|
|
428
|
-
type:
|
|
426
|
+
type: 'modelProgress',
|
|
429
427
|
downloaded: fileMeta.expectedSize,
|
|
430
428
|
total: fileMeta.expectedSize,
|
|
431
429
|
percentage: 100,
|
|
@@ -436,8 +434,8 @@ async function downloadShardedFilesToFilesystem(hyperdriveKey, firstShardFileNam
|
|
|
436
434
|
shardName: file,
|
|
437
435
|
overallDownloaded,
|
|
438
436
|
overallTotal,
|
|
439
|
-
overallPercentage: calculatePercentage(overallDownloaded, overallTotal)
|
|
440
|
-
}
|
|
437
|
+
overallPercentage: calculatePercentage(overallDownloaded, overallTotal)
|
|
438
|
+
}
|
|
441
439
|
});
|
|
442
440
|
}
|
|
443
441
|
continue;
|
|
@@ -452,8 +450,8 @@ async function downloadShardedFilesToFilesystem(hyperdriveKey, firstShardFileNam
|
|
|
452
450
|
totalShards: allFiles.length,
|
|
453
451
|
shardName: file,
|
|
454
452
|
overallDownloaded,
|
|
455
|
-
overallTotal
|
|
456
|
-
}
|
|
453
|
+
overallTotal
|
|
454
|
+
}
|
|
457
455
|
}
|
|
458
456
|
: undefined;
|
|
459
457
|
await downloadAndValidateFile(setup.drive, file, filePath, fileMeta.expectedSize, fileMeta.sha256Checksum, progressContext, signal, hooks);
|
|
@@ -466,7 +464,7 @@ async function downloadShardedFilesToFilesystem(hyperdriveKey, firstShardFileNam
|
|
|
466
464
|
if (progressCallback && overallDownloaded === overallTotal) {
|
|
467
465
|
const lastFile = allFiles[allFiles.length - 1];
|
|
468
466
|
progressCallback({
|
|
469
|
-
type:
|
|
467
|
+
type: 'modelProgress',
|
|
470
468
|
downloaded: overallTotal,
|
|
471
469
|
total: overallTotal,
|
|
472
470
|
percentage: 100,
|
|
@@ -477,15 +475,15 @@ async function downloadShardedFilesToFilesystem(hyperdriveKey, firstShardFileNam
|
|
|
477
475
|
shardName: lastFile,
|
|
478
476
|
overallDownloaded,
|
|
479
477
|
overallTotal,
|
|
480
|
-
overallPercentage: 100
|
|
481
|
-
}
|
|
478
|
+
overallPercentage: 100
|
|
479
|
+
}
|
|
482
480
|
});
|
|
483
481
|
}
|
|
484
482
|
await extractTensorsFromShards(shardDir, firstShardFileName);
|
|
485
483
|
downloadSucceeded = true;
|
|
486
484
|
}
|
|
487
485
|
catch (error) {
|
|
488
|
-
logger.error(
|
|
486
|
+
logger.error('❌ Error during sharded hyperdrive download:', error instanceof Error ? error.message : String(error));
|
|
489
487
|
// Preserve cancellation errors
|
|
490
488
|
if (error instanceof DownloadCancelledError) {
|
|
491
489
|
throw error;
|
|
@@ -493,7 +491,7 @@ async function downloadShardedFilesToFilesystem(hyperdriveKey, firstShardFileNam
|
|
|
493
491
|
throw new HyperdriveDownloadFailedError(`Sharded download failed for ${firstShardFileName} from hyperdrive: ${hyperdriveKey}`, error);
|
|
494
492
|
}
|
|
495
493
|
finally {
|
|
496
|
-
signal?.removeEventListener(
|
|
494
|
+
signal?.removeEventListener('abort', cleanup);
|
|
497
495
|
if (!seed) {
|
|
498
496
|
await cleanupHyperdrive(setup);
|
|
499
497
|
// Delete only after close - Windows EBUSY on LOCK if deleted before corestore.close()
|
|
@@ -524,7 +522,7 @@ export async function downloadModelFromHyperdrive(hyperdriveKey, modelFileName,
|
|
|
524
522
|
markCacheMiss: () => {
|
|
525
523
|
hooks?.markCacheMiss?.();
|
|
526
524
|
ctx.setCacheHit(false);
|
|
527
|
-
}
|
|
525
|
+
}
|
|
528
526
|
};
|
|
529
527
|
return downloadShardedFilesToFilesystem(hyperdriveKey, modelFileName, model.shardMetadata, ctx.broadcastProgress, seed, ctx.signal, hooksWithCacheHit, ctx.shouldClearCache);
|
|
530
528
|
}
|
|
@@ -540,11 +538,11 @@ export async function downloadModelFromHyperdrive(hyperdriveKey, modelFileName,
|
|
|
540
538
|
hooks?.markCacheHit?.();
|
|
541
539
|
ctx.setCacheHit(true);
|
|
542
540
|
ctx.broadcastProgress({
|
|
543
|
-
type:
|
|
541
|
+
type: 'modelProgress',
|
|
544
542
|
downloaded: model.expectedSize,
|
|
545
543
|
total: model.expectedSize,
|
|
546
544
|
percentage: 100,
|
|
547
|
-
downloadKey
|
|
545
|
+
downloadKey
|
|
548
546
|
});
|
|
549
547
|
// Delete any leftover corestore directory from previous runs (only when not seeding)
|
|
550
548
|
if (!seed) {
|
|
@@ -555,7 +553,7 @@ export async function downloadModelFromHyperdrive(hyperdriveKey, modelFileName,
|
|
|
555
553
|
}
|
|
556
554
|
hooks?.markCacheMiss?.();
|
|
557
555
|
ctx.setCacheHit(false);
|
|
558
|
-
const checksumToValidate = expectedChecksum || model?.sha256Checksum ||
|
|
556
|
+
const checksumToValidate = expectedChecksum || model?.sha256Checksum || '';
|
|
559
557
|
await downloadSingleFileToFilesystem(modelPath, modelFileName, hyperdriveKey, corestoreDir, downloadKey, checksumToValidate, ctx.broadcastProgress, seed, ctx.signal, hooks, ctx.shouldClearCache);
|
|
560
558
|
return modelPath;
|
|
561
559
|
}, progressCallback, hooks?.requestBinding);
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { handleLoadModel } from
|
|
2
|
-
export { resolveModelPath } from
|
|
1
|
+
export { handleLoadModel } from './handler';
|
|
2
|
+
export { resolveModelPath } from './resolve';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { handleLoadModel } from
|
|
2
|
-
export { resolveModelPath } from
|
|
1
|
+
export { handleLoadModel } from './handler.js';
|
|
2
|
+
export { resolveModelPath } from './resolve.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { QvacConfig } from
|
|
1
|
+
import type { QvacConfig } from '../../../../schemas/index';
|
|
2
2
|
export declare const DEFAULT_REGISTRY_STREAM_TIMEOUT_MS = 60000;
|
|
3
3
|
export interface RegistryClientDownloadOptions {
|
|
4
4
|
timeout: number;
|
|
@@ -16,7 +16,7 @@ export interface RegistryClientDownloadOptions {
|
|
|
16
16
|
* unit-tested without standing up a real registry client.
|
|
17
17
|
*/
|
|
18
18
|
export declare function buildRegistryClientOptions(params: {
|
|
19
|
-
sdkConfig: Pick<QvacConfig,
|
|
19
|
+
sdkConfig: Pick<QvacConfig, 'registryStreamTimeoutMs' | 'registryDownloadMaxRetries'>;
|
|
20
20
|
outputFile: string;
|
|
21
21
|
onProgress?: ((progress: {
|
|
22
22
|
downloaded: number;
|
|
@@ -6,14 +6,13 @@ export const DEFAULT_REGISTRY_STREAM_TIMEOUT_MS = 60_000;
|
|
|
6
6
|
*/
|
|
7
7
|
export function buildRegistryClientOptions(params) {
|
|
8
8
|
const { sdkConfig, outputFile, onProgress, signal } = params;
|
|
9
|
-
const timeout = sdkConfig.registryStreamTimeoutMs
|
|
10
|
-
?? DEFAULT_REGISTRY_STREAM_TIMEOUT_MS;
|
|
9
|
+
const timeout = sdkConfig.registryStreamTimeoutMs ?? DEFAULT_REGISTRY_STREAM_TIMEOUT_MS;
|
|
11
10
|
const maxRetries = sdkConfig.registryDownloadMaxRetries;
|
|
12
11
|
return {
|
|
13
12
|
timeout,
|
|
14
13
|
outputFile,
|
|
15
14
|
...(maxRetries !== undefined && { maxRetries }),
|
|
16
15
|
...(onProgress && { onProgress }),
|
|
17
|
-
...(signal && { signal: signal })
|
|
16
|
+
...(signal && { signal: signal })
|
|
18
17
|
};
|
|
19
18
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { ModelProgressUpdate } from
|
|
2
|
-
import type { RegistryItem } from
|
|
3
|
-
import type { AbortSignal } from
|
|
4
|
-
import type { DownloadHooks } from
|
|
5
|
-
type CompanionSetMetadata = NonNullable<RegistryItem[
|
|
1
|
+
import type { ModelProgressUpdate } from '../../../../schemas/index';
|
|
2
|
+
import type { RegistryItem } from '../../../../models/registry/index';
|
|
3
|
+
import type { AbortSignal } from 'bare-abort-controller';
|
|
4
|
+
import type { DownloadHooks } from './types';
|
|
5
|
+
type CompanionSetMetadata = NonNullable<RegistryItem['companionSet']>;
|
|
6
6
|
export interface DownloadCompanionSetOptions {
|
|
7
7
|
companionSet: CompanionSetMetadata;
|
|
8
8
|
downloadKey: string;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { promises as fsPromises } from
|
|
2
|
-
import { getModelsCacheDir, getCompanionSetPath, getCompanionSetCacheDir, getSingleFileCachePath, generateShortHash, calculatePercentage
|
|
3
|
-
import { measureChecksum } from
|
|
4
|
-
import { validateAndJoinPath } from
|
|
5
|
-
import { buildBlobBinding, downloadSingleFileFromRegistry, validateCachedFile
|
|
6
|
-
import { DownloadCancelledError, RegistryDownloadFailedError
|
|
7
|
-
import { getServerLogger } from
|
|
1
|
+
import { promises as fsPromises } from 'bare-fs';
|
|
2
|
+
import { getModelsCacheDir, getCompanionSetPath, getCompanionSetCacheDir, getSingleFileCachePath, generateShortHash, calculatePercentage } from '../../../utils/index.js';
|
|
3
|
+
import { measureChecksum } from '../../../utils/checksum.js';
|
|
4
|
+
import { validateAndJoinPath } from '../../../utils/path-security.js';
|
|
5
|
+
import { buildBlobBinding, downloadSingleFileFromRegistry, validateCachedFile } from './registry-download-utils.js';
|
|
6
|
+
import { DownloadCancelledError, RegistryDownloadFailedError } from '../../../../utils/errors-server.js';
|
|
7
|
+
import { getServerLogger } from '../../../../logging/index.js';
|
|
8
8
|
const logger = getServerLogger();
|
|
9
9
|
/**
|
|
10
10
|
* Download a companion set from the registry, placing files directly
|
|
@@ -13,7 +13,7 @@ const logger = getServerLogger();
|
|
|
13
13
|
* Returns the path to the primary file.
|
|
14
14
|
*/
|
|
15
15
|
export async function downloadCompanionSetFromRegistry(options) {
|
|
16
|
-
const { companionSet, downloadKey, allowLegacyFlatCache = false, progressCallback, signal, hooks, shouldClearCache
|
|
16
|
+
const { companionSet, downloadKey, allowLegacyFlatCache = false, progressCallback, signal, hooks, shouldClearCache } = options;
|
|
17
17
|
const { files, setKey, primaryKey } = companionSet;
|
|
18
18
|
validateCompanionSetMetadata(files, primaryKey);
|
|
19
19
|
const primaryEntry = files.find((f) => f.key === primaryKey);
|
|
@@ -79,14 +79,12 @@ export async function downloadCompanionSetFromRegistry(options) {
|
|
|
79
79
|
totalFiles: files.length,
|
|
80
80
|
overallDownloaded: currentOverall,
|
|
81
81
|
overallTotal,
|
|
82
|
-
overallPercentage: calculatePercentage(currentOverall, overallTotal)
|
|
83
|
-
}
|
|
82
|
+
overallPercentage: calculatePercentage(currentOverall, overallTotal)
|
|
83
|
+
}
|
|
84
84
|
});
|
|
85
85
|
}
|
|
86
86
|
: undefined;
|
|
87
|
-
const blobBinding = file.blobCoreKey
|
|
88
|
-
? buildBlobBinding(file)
|
|
89
|
-
: undefined;
|
|
87
|
+
const blobBinding = file.blobCoreKey ? buildBlobBinding(file) : undefined;
|
|
90
88
|
await downloadSingleFileFromRegistry(file.registryPath, file.registrySource, filePath, file.targetName, downloadKey, file.expectedSize, file.sha256Checksum, fileProgressCallback, signal, blobBinding, hooks);
|
|
91
89
|
overallDownloaded += file.expectedSize;
|
|
92
90
|
}
|
|
@@ -96,13 +94,13 @@ export async function downloadCompanionSetFromRegistry(options) {
|
|
|
96
94
|
try {
|
|
97
95
|
await fsPromises.rm(getCompanionSetCacheDir(setKey), {
|
|
98
96
|
recursive: true,
|
|
99
|
-
force: true
|
|
97
|
+
force: true
|
|
100
98
|
});
|
|
101
99
|
}
|
|
102
100
|
catch (cleanupError) {
|
|
103
|
-
logger.debug(
|
|
101
|
+
logger.debug('Failed to delete companion set cache during cleanup', {
|
|
104
102
|
setKey,
|
|
105
|
-
error: cleanupError
|
|
103
|
+
error: cleanupError
|
|
106
104
|
});
|
|
107
105
|
}
|
|
108
106
|
}
|
|
@@ -117,7 +115,7 @@ function emitFinalProgress(progressCallback, downloadKey, setKey, files) {
|
|
|
117
115
|
const overallTotal = files.reduce((sum, f) => sum + f.expectedSize, 0);
|
|
118
116
|
const lastFile = files[files.length - 1];
|
|
119
117
|
progressCallback({
|
|
120
|
-
type:
|
|
118
|
+
type: 'modelProgress',
|
|
121
119
|
downloaded: overallTotal,
|
|
122
120
|
total: overallTotal,
|
|
123
121
|
percentage: 100,
|
|
@@ -129,8 +127,8 @@ function emitFinalProgress(progressCallback, downloadKey, setKey, files) {
|
|
|
129
127
|
totalFiles: files.length,
|
|
130
128
|
overallDownloaded: overallTotal,
|
|
131
129
|
overallTotal,
|
|
132
|
-
overallPercentage: 100
|
|
133
|
-
}
|
|
130
|
+
overallPercentage: 100
|
|
131
|
+
}
|
|
134
132
|
});
|
|
135
133
|
}
|
|
136
134
|
function validateCompanionSetMetadata(files, primaryKey) {
|
|
@@ -146,7 +144,7 @@ function validateCompanionSetMetadata(files, primaryKey) {
|
|
|
146
144
|
}
|
|
147
145
|
}
|
|
148
146
|
function isLegacyOnnxSet(files) {
|
|
149
|
-
return files.some((f) => f.primary === true && f.targetName.endsWith(
|
|
147
|
+
return files.some((f) => f.primary === true && f.targetName.endsWith('.onnx'));
|
|
150
148
|
}
|
|
151
149
|
/**
|
|
152
150
|
* Check if a complete legacy ONNX cache exists for a companion set.
|
|
@@ -178,7 +176,7 @@ async function checkLegacyOnnxCache(primaryRegistryPath, files, hooks) {
|
|
|
178
176
|
}
|
|
179
177
|
function getLegacyOnnxPath(cacheKey, filename) {
|
|
180
178
|
const baseCache = getModelsCacheDir();
|
|
181
|
-
return validateAndJoinPath(baseCache,
|
|
179
|
+
return validateAndJoinPath(baseCache, 'onnx', cacheKey, filename);
|
|
182
180
|
}
|
|
183
181
|
/**
|
|
184
182
|
* Check if all companion files exist in the flat single-file cache.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { ModelProgressUpdate } from
|
|
2
|
-
import type { QVACBlobBinding } from
|
|
3
|
-
import type { AbortSignal } from
|
|
4
|
-
import type { DownloadHooks } from
|
|
5
|
-
export { DEFAULT_REGISTRY_STREAM_TIMEOUT_MS, buildRegistryClientOptions
|
|
6
|
-
export type { RegistryClientDownloadOptions } from
|
|
1
|
+
import type { ModelProgressUpdate } from '../../../../schemas/index';
|
|
2
|
+
import type { QVACBlobBinding } from '@qvac/registry-client';
|
|
3
|
+
import type { AbortSignal } from 'bare-abort-controller';
|
|
4
|
+
import type { DownloadHooks } from './types';
|
|
5
|
+
export { DEFAULT_REGISTRY_STREAM_TIMEOUT_MS, buildRegistryClientOptions } from './registry-client-options';
|
|
6
|
+
export type { RegistryClientDownloadOptions } from './registry-client-options';
|
|
7
7
|
export declare function buildBlobBinding(meta: {
|
|
8
8
|
blobCoreKey: string;
|
|
9
9
|
blobBlockOffset: number;
|