@qvac/sdk 0.19.1 → 0.20.1
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 +78 -55
- package/README.md +3 -1
- package/dist/examples/abot-world.js +3 -3
- package/dist/examples/advisory-model-fit.d.ts +59 -0
- package/dist/examples/advisory-model-fit.js +156 -0
- package/dist/examples/asr/parakeet-nemotron-filesystem.d.ts +2 -0
- package/dist/examples/asr/parakeet-nemotron-filesystem.js +170 -0
- package/dist/examples/audiogen/edit-music.d.ts +2 -0
- package/dist/examples/audiogen/edit-music.js +121 -0
- package/dist/examples/audiogen/understand-music.d.ts +2 -0
- package/dist/examples/audiogen/understand-music.js +73 -0
- package/dist/examples/diffusion-ic-lora-ltx.js +3 -3
- package/dist/examples/diffusion-img2vid.js +1 -1
- package/dist/examples/diffusion-txt2vid-minimax-h3.d.ts +2 -0
- package/dist/examples/diffusion-txt2vid-minimax-h3.js +64 -0
- package/dist/examples/diffusion-txt2vid.js +1 -1
- package/dist/examples/rag/rag-turbovec.d.ts +2 -0
- package/dist/examples/rag/rag-turbovec.js +58 -0
- package/dist/examples/tts/audio8.js +5 -5
- package/dist/examples/tts/chatterbox-enhanced.js +4 -5
- package/dist/examples/tts/chatterbox-multilingual.js +5 -5
- package/dist/examples/tts/chatterbox.js +5 -5
- package/dist/examples/tts/cosyvoice3.js +5 -5
- package/dist/examples/tts/llm-to-tts-streaming.js +12 -2
- package/dist/examples/tts/parler.js +5 -5
- package/dist/examples/tts/supertonic-enhanced.js +4 -5
- package/dist/examples/tts/supertonic-multilingual.js +5 -5
- package/dist/examples/tts/supertonic.js +5 -5
- package/dist/scripts/contract/build-contract.d.ts +1 -1
- package/dist/scripts/contract/constants-registry.d.ts +31 -0
- package/dist/scripts/contract/constants-registry.js +13 -2
- package/dist/scripts/contract/method-shapes.d.ts +3 -0
- package/dist/scripts/contract/method-shapes.js +3 -0
- package/dist/src/client/api/assess-model-fit.d.ts +9 -4
- package/dist/src/client/api/assess-model-fit.js +9 -4
- package/dist/src/client/api/audio-edit.d.ts +36 -0
- package/dist/src/client/api/audio-edit.js +38 -0
- package/dist/src/client/api/audio-gen-result.d.ts +5 -1
- package/dist/src/client/api/audio-gen-result.js +105 -52
- package/dist/src/client/api/audio-gen.d.ts +38 -1
- package/dist/src/client/api/audio-gen.js +38 -1
- package/dist/src/client/api/audio-understand.d.ts +25 -0
- package/dist/src/client/api/audio-understand.js +27 -0
- package/dist/src/client/api/index.d.ts +3 -0
- package/dist/src/client/api/index.js +3 -0
- package/dist/src/client/api/text-to-speech.d.ts +31 -4
- package/dist/src/client/api/text-to-speech.js +118 -21
- package/dist/src/client/api/vector-index.d.ts +143 -0
- package/dist/src/client/api/vector-index.js +168 -0
- package/dist/src/client/api/world.d.ts +2 -2
- package/dist/src/commands/bundle/manifest.d.ts +2 -0
- package/dist/src/commands/verify/addon-source.d.ts +6 -0
- package/dist/src/commands/verify/bundle-source.d.ts +2 -0
- package/dist/src/commands/verify/bundle-source.js +155 -1
- package/dist/src/commands/verify/index.js +1 -0
- package/dist/src/commands/verify/prebuilds.d.ts +23 -0
- package/dist/src/commands/verify/prebuilds.js +129 -13
- package/dist/src/commands/verify/resource-collectors.js +2 -1
- package/dist/src/expo/plugins/patches/qvac-platform-addons.d.ts +23 -0
- package/dist/src/expo/plugins/patches/qvac-platform-addons.js +94 -0
- package/dist/src/expo/plugins/withMobileBundle.d.ts +9 -6
- package/dist/src/expo/plugins/withMobileBundle.js +54 -34
- package/dist/src/index.d.ts +3 -3
- package/dist/src/index.js +7 -3
- package/dist/src/schemas/sdk-errors-server.d.ts +4 -0
- package/dist/src/schemas/sdk-errors-server.js +22 -0
- package/dist/src/utils/aggregate-events.d.ts +3 -1
- package/dist/src/utils/aggregate-events.js +7 -1
- package/dist/src/utils/errors-server.d.ts +12 -0
- package/dist/src/utils/errors-server.js +21 -0
- package/package.json +23 -17
- package/src/electron-forge/index.cjs +86 -14
- package/src/expo/plugins/patches/android-link.mjs +18 -9
- package/src/expo/plugins/patches/ios-link.mjs +18 -9
- package/src/expo/plugins/patches/qvac-platform-addons.ts +124 -0
package/NOTICE
CHANGED
|
@@ -73,12 +73,16 @@ Third-Party Model Licenses
|
|
|
73
73
|
https://github.com/tetherto/qvac/releases/download/bci-test-assets-v0.1.0/bci-embedder.bin
|
|
74
74
|
cosyvoice3-campplus-f32
|
|
75
75
|
https://huggingface.co/FunAudioLLM/Fun-CosyVoice3-0.5B-2512
|
|
76
|
+
cosyvoice3-flow-bf16
|
|
77
|
+
https://huggingface.co/FunAudioLLM/Fun-CosyVoice3-0.5B-2512
|
|
76
78
|
cosyvoice3-flow-f32
|
|
77
79
|
https://huggingface.co/FunAudioLLM/Fun-CosyVoice3-0.5B-2512
|
|
78
80
|
cosyvoice3-hift-f32
|
|
79
81
|
https://huggingface.co/FunAudioLLM/Fun-CosyVoice3-0.5B-2512
|
|
80
82
|
cosyvoice3-llm-q8_0
|
|
81
83
|
https://huggingface.co/FunAudioLLM/Fun-CosyVoice3-0.5B-2512
|
|
84
|
+
cosyvoice3-llm-q8_0-fused
|
|
85
|
+
https://huggingface.co/FunAudioLLM/Fun-CosyVoice3-0.5B-2512
|
|
82
86
|
cosyvoice3-s3tok-f16
|
|
83
87
|
https://huggingface.co/FunAudioLLM/Fun-CosyVoice3-0.5B-2512
|
|
84
88
|
craft_mlt_25k
|
|
@@ -207,6 +211,18 @@ Third-Party Model Licenses
|
|
|
207
211
|
https://huggingface.co/HuggingFaceVLA/smolvla_libero
|
|
208
212
|
SmolVLM2-500M-Video-Instruct-GGUF
|
|
209
213
|
https://huggingface.co/ggml-org/SmolVLM2-500M-Video-Instruct-GGUF
|
|
214
|
+
TranslatePsy-AfriSLM-0.8B-Q4-GGUF
|
|
215
|
+
https://huggingface.co/qvac/TranslatePsy-AfriSLM-0.8B-Q4-GGUF
|
|
216
|
+
TranslatePsy-AfriSLM-0.8B-Q8-GGUF
|
|
217
|
+
https://huggingface.co/qvac/TranslatePsy-AfriSLM-0.8B-Q8-GGUF
|
|
218
|
+
TranslatePsy-AfriSLM-2B-Q4-GGUF
|
|
219
|
+
https://huggingface.co/qvac/TranslatePsy-AfriSLM-2B-Q4-GGUF
|
|
220
|
+
TranslatePsy-AfriSLM-2B-Q8-GGUF
|
|
221
|
+
https://huggingface.co/qvac/TranslatePsy-AfriSLM-2B-Q8-GGUF
|
|
222
|
+
TranslatePsy-AfriSLM-4B-Q4-GGUF
|
|
223
|
+
https://huggingface.co/qvac/TranslatePsy-AfriSLM-4B-Q4-GGUF
|
|
224
|
+
TranslatePsy-AfriSLM-4B-Q8-GGUF
|
|
225
|
+
https://huggingface.co/qvac/TranslatePsy-AfriSLM-4B-Q8-GGUF
|
|
210
226
|
umt5-xxl-enc-q8_0
|
|
211
227
|
https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged
|
|
212
228
|
unlimited-ocr-gguf
|
|
@@ -318,8 +334,12 @@ Third-Party Model Licenses
|
|
|
318
334
|
|
|
319
335
|
--- mit (MIT License) ---
|
|
320
336
|
|
|
337
|
+
acestep-5Hz-lm-0.6B-BF16
|
|
338
|
+
https://huggingface.co/ACE-Step/acestep-5Hz-lm-0.6B
|
|
321
339
|
acestep-5Hz-lm-0.6B-Q8_0
|
|
322
340
|
https://huggingface.co/ACE-Step/acestep-5Hz-lm-0.6B
|
|
341
|
+
acestep-v15-base-Q4_K_M
|
|
342
|
+
https://huggingface.co/ACE-Step/acestep-v15-base
|
|
323
343
|
acestep-v15-sft-Q8_0
|
|
324
344
|
https://huggingface.co/ACE-Step/acestep-v15-sft
|
|
325
345
|
acestep-v15-turbo-Q4_K_M
|
|
@@ -608,6 +628,12 @@ Third-Party Model Licenses
|
|
|
608
628
|
https://huggingface.co/nvidia/GR00T-N1.7-LIBERO
|
|
609
629
|
groot-q8_vf16
|
|
610
630
|
https://huggingface.co/nvidia/GR00T-N1.7-3B
|
|
631
|
+
nemotron-3.5-asr-streaming-0.6b.f16
|
|
632
|
+
https://huggingface.co/nvidia/nemotron-3.5-asr-streaming-0.6b
|
|
633
|
+
nemotron-3.5-asr-streaming-0.6b.q4_0
|
|
634
|
+
https://huggingface.co/nvidia/nemotron-3.5-asr-streaming-0.6b
|
|
635
|
+
nemotron-3.5-asr-streaming-0.6b.q8_0
|
|
636
|
+
https://huggingface.co/nvidia/nemotron-3.5-asr-streaming-0.6b
|
|
611
637
|
parakeet-unified-en-0.6b.f16
|
|
612
638
|
https://huggingface.co/nvidia/parakeet-unified-en-0.6b
|
|
613
639
|
parakeet-unified-en-0.6b.q4_0
|
|
@@ -663,54 +689,60 @@ JavaScript Dependencies
|
|
|
663
689
|
|
|
664
690
|
--- apache-2.0 (Apache License 2.0) ---
|
|
665
691
|
|
|
666
|
-
@hyperswarm/secret-stream@6.9.
|
|
692
|
+
@hyperswarm/secret-stream@6.9.2
|
|
667
693
|
https://github.com/holepunchto/hyperswarm-secret-stream
|
|
668
|
-
@qvac/asr-ggml@0.
|
|
694
|
+
@qvac/asr-ggml@0.5.3
|
|
669
695
|
https://github.com/tetherto/qvac
|
|
670
|
-
@qvac/
|
|
696
|
+
@qvac/asr-ggml-darwin-arm64@0.5.3
|
|
671
697
|
https://github.com/tetherto/qvac
|
|
672
|
-
@qvac/
|
|
698
|
+
@qvac/audiogen-ggml@0.4.1
|
|
673
699
|
https://github.com/tetherto/qvac
|
|
674
|
-
@qvac/
|
|
700
|
+
@qvac/audiogen-ggml-darwin-arm64@0.4.1
|
|
675
701
|
https://github.com/tetherto/qvac
|
|
676
|
-
@qvac/
|
|
702
|
+
@qvac/bci-whispercpp@0.9.1
|
|
677
703
|
https://github.com/tetherto/qvac
|
|
678
|
-
@qvac/
|
|
704
|
+
@qvac/classification-ggml@0.26.3
|
|
679
705
|
https://github.com/tetherto/qvac
|
|
680
|
-
@qvac/
|
|
706
|
+
@qvac/decoder-audio@0.6.0
|
|
681
707
|
https://github.com/tetherto/qvac
|
|
682
|
-
@qvac/
|
|
708
|
+
@qvac/diffusion-cpp@0.24.0
|
|
683
709
|
https://github.com/tetherto/qvac
|
|
684
|
-
@qvac/
|
|
685
|
-
@qvac/fabric@0.10.0
|
|
710
|
+
@qvac/embed-llamacpp@0.41.3
|
|
686
711
|
https://github.com/tetherto/qvac
|
|
687
|
-
@qvac/
|
|
712
|
+
@qvac/error@0.1.1
|
|
713
|
+
@qvac/fabric@0.16.1
|
|
688
714
|
https://github.com/tetherto/qvac
|
|
689
715
|
@qvac/infer-base@0.6.2
|
|
690
716
|
https://github.com/tetherto/qvac
|
|
691
|
-
@qvac/inference@0.
|
|
717
|
+
@qvac/inference@0.20.0
|
|
692
718
|
https://github.com/tetherto/qvac
|
|
693
719
|
@qvac/langdetect-text@0.1.2
|
|
694
720
|
https://github.com/tetherto/qvac
|
|
695
|
-
@qvac/llm-llamacpp@0.
|
|
721
|
+
@qvac/llm-llamacpp@0.53.2
|
|
696
722
|
https://github.com/tetherto/qvac
|
|
697
723
|
@qvac/logging@0.1.1
|
|
698
724
|
https://github.com/tetherto/qvac
|
|
699
|
-
@qvac/
|
|
725
|
+
@qvac/model-fit@0.12.2
|
|
726
|
+
https://github.com/tetherto/qvac
|
|
727
|
+
@qvac/ocr-ggml@0.24.3
|
|
728
|
+
https://github.com/tetherto/qvac
|
|
729
|
+
@qvac/rag@0.8.1
|
|
700
730
|
https://github.com/tetherto/qvac
|
|
701
731
|
@qvac/registry-client@0.6.1
|
|
702
732
|
https://github.com/tetherto/qvac
|
|
703
733
|
@qvac/registry-schema@0.3.0
|
|
704
734
|
https://github.com/tetherto/qvac
|
|
705
|
-
@qvac/translation-nmtcpp@0.
|
|
735
|
+
@qvac/translation-nmtcpp@0.16.4
|
|
706
736
|
https://github.com/tetherto/qvac
|
|
707
|
-
@qvac/tts-ggml@0.
|
|
737
|
+
@qvac/tts-ggml@0.9.2
|
|
708
738
|
https://github.com/tetherto/qvac
|
|
709
|
-
@qvac/
|
|
739
|
+
@qvac/tts-ggml-darwin-arm64@0.9.2
|
|
740
|
+
https://github.com/tetherto/qvac
|
|
741
|
+
@qvac/vla-ggml@0.27.3
|
|
710
742
|
https://github.com/tetherto/qvac
|
|
711
743
|
adaptive-timeout@1.0.1
|
|
712
744
|
https://github.com/holepunchto/adaptive-timeout
|
|
713
|
-
b4a@1.
|
|
745
|
+
b4a@1.9.0
|
|
714
746
|
https://github.com/holepunchto/b4a
|
|
715
747
|
bare-abort@2.0.13
|
|
716
748
|
https://github.com/holepunchto/bare-abort
|
|
@@ -728,7 +760,7 @@ JavaScript Dependencies
|
|
|
728
760
|
https://github.com/holepunchto/bare-bundle
|
|
729
761
|
bare-bundle-id@1.0.2
|
|
730
762
|
https://github.com/holepunchto/bare-bundle-id
|
|
731
|
-
bare-cov@1.2.
|
|
763
|
+
bare-cov@1.2.3
|
|
732
764
|
https://github.com/holepunchto/bare-cov
|
|
733
765
|
bare-cpu-info@0.1.1
|
|
734
766
|
https://github.com/holepunchto/bare-cpu-info
|
|
@@ -736,7 +768,7 @@ JavaScript Dependencies
|
|
|
736
768
|
https://github.com/holepunchto/bare-crypto
|
|
737
769
|
bare-debug-log@2.0.0
|
|
738
770
|
https://github.com/holepunchto/bare-debug-log
|
|
739
|
-
bare-dns@2.2.
|
|
771
|
+
bare-dns@2.2.1
|
|
740
772
|
https://github.com/holepunchto/bare-dns
|
|
741
773
|
bare-encoding@1.0.3
|
|
742
774
|
https://github.com/holepunchto/bare-encoding
|
|
@@ -744,9 +776,9 @@ JavaScript Dependencies
|
|
|
744
776
|
https://github.com/holepunchto/bare-env
|
|
745
777
|
bare-events@2.9.2
|
|
746
778
|
https://github.com/holepunchto/bare-events
|
|
747
|
-
bare-fetch@3.
|
|
779
|
+
bare-fetch@3.4.0
|
|
748
780
|
https://github.com/holepunchto/bare-fetch
|
|
749
|
-
bare-ffmpeg@1.
|
|
781
|
+
bare-ffmpeg@1.6.0
|
|
750
782
|
https://github.com/holepunchto/bare-ffmpeg
|
|
751
783
|
bare-form-data@1.2.2
|
|
752
784
|
https://github.com/holepunchto/bare-form-data
|
|
@@ -760,7 +792,7 @@ JavaScript Dependencies
|
|
|
760
792
|
https://github.com/holepunchto/bare-hrtime
|
|
761
793
|
bare-http-parser@2.1.4
|
|
762
794
|
https://github.com/holepunchto/bare-http-parser
|
|
763
|
-
bare-http1@4.6.
|
|
795
|
+
bare-http1@4.6.2
|
|
764
796
|
https://github.com/holepunchto/bare-http1
|
|
765
797
|
bare-https@3.1.0
|
|
766
798
|
https://github.com/holepunchto/bare-https
|
|
@@ -768,19 +800,15 @@ JavaScript Dependencies
|
|
|
768
800
|
https://github.com/holepunchto/bare-inspect
|
|
769
801
|
bare-inspector@6.1.0
|
|
770
802
|
https://github.com/holepunchto/bare-inspector
|
|
771
|
-
bare-lief@0.2.7
|
|
772
|
-
https://github.com/holepunchto/bare-lief
|
|
773
|
-
bare-link@3.3.0
|
|
774
|
-
https://github.com/holepunchto/bare-link
|
|
775
803
|
bare-mime@1.0.0
|
|
776
804
|
https://github.com/holepunchto/bare-mime
|
|
777
805
|
bare-module@6.4.0
|
|
778
806
|
https://github.com/holepunchto/bare-module
|
|
779
|
-
bare-module-lexer@1.6.
|
|
807
|
+
bare-module-lexer@1.6.7
|
|
780
808
|
https://github.com/holepunchto/bare-module-lexer
|
|
781
809
|
bare-module-resolve@1.12.5
|
|
782
810
|
https://github.com/holepunchto/bare-module-resolve
|
|
783
|
-
bare-module-traverse@2.5.
|
|
811
|
+
bare-module-traverse@2.5.6
|
|
784
812
|
https://github.com/holepunchto/bare-module-traverse
|
|
785
813
|
bare-net@2.3.3
|
|
786
814
|
https://github.com/holepunchto/bare-net
|
|
@@ -800,12 +828,10 @@ JavaScript Dependencies
|
|
|
800
828
|
https://github.com/holepunchto/bare-process
|
|
801
829
|
bare-rpc@1.3.8
|
|
802
830
|
https://github.com/holepunchto/bare-rpc
|
|
803
|
-
bare-runtime@1.
|
|
831
|
+
bare-runtime@1.33.4
|
|
804
832
|
https://github.com/holepunchto/bare-runtime
|
|
805
|
-
bare-runtime-darwin-arm64@1.
|
|
833
|
+
bare-runtime-darwin-arm64@1.33.4
|
|
806
834
|
https://github.com/holepunchto/bare-runtime
|
|
807
|
-
bare-semver@1.1.0
|
|
808
|
-
https://github.com/holepunchto/bare-semver
|
|
809
835
|
bare-signals@4.2.0
|
|
810
836
|
https://github.com/holepunchto/bare-signals
|
|
811
837
|
bare-signals@5.0.0
|
|
@@ -814,13 +840,11 @@ JavaScript Dependencies
|
|
|
814
840
|
https://github.com/holepunchto/bare-stdio
|
|
815
841
|
bare-stream@2.13.4
|
|
816
842
|
https://github.com/holepunchto/bare-stream
|
|
817
|
-
bare-structured-clone@1.6.0
|
|
818
|
-
https://github.com/holepunchto/bare-structured-clone
|
|
819
843
|
bare-stylize@0.0.1
|
|
820
844
|
https://github.com/holepunchto/bare-stylize
|
|
821
845
|
bare-subprocess@5.2.3
|
|
822
846
|
https://github.com/holepunchto/bare-subprocess
|
|
823
|
-
bare-subprocess@6.
|
|
847
|
+
bare-subprocess@6.2.0
|
|
824
848
|
https://github.com/holepunchto/bare-subprocess
|
|
825
849
|
bare-tcp@2.6.1
|
|
826
850
|
https://github.com/holepunchto/bare-tcp
|
|
@@ -828,16 +852,17 @@ JavaScript Dependencies
|
|
|
828
852
|
https://github.com/holepunchto/bare-tls
|
|
829
853
|
bare-tty@5.2.1
|
|
830
854
|
https://github.com/holepunchto/bare-tty
|
|
831
|
-
bare-type@1.
|
|
855
|
+
bare-type@1.4.0
|
|
832
856
|
https://github.com/holepunchto/bare-type
|
|
833
|
-
bare-type-stripper@0.1.
|
|
857
|
+
bare-type-stripper@0.1.7
|
|
834
858
|
https://github.com/holepunchto/bare-type-stripper
|
|
835
859
|
bare-url@2.5.4
|
|
836
860
|
https://github.com/holepunchto/bare-url
|
|
837
861
|
bare-utils@1.6.0
|
|
838
862
|
https://github.com/holepunchto/bare-utils
|
|
839
|
-
bare-v8-to-istanbul@1.0.
|
|
840
|
-
|
|
863
|
+
bare-v8-to-istanbul@1.0.4
|
|
864
|
+
https://github.com/holepunchto/bare-v8-to-istanbul
|
|
865
|
+
bare-ws@3.2.0
|
|
841
866
|
https://github.com/holepunchto/bare-ws
|
|
842
867
|
bare-zlib@1.4.1
|
|
843
868
|
https://github.com/holepunchto/bare-zlib
|
|
@@ -869,7 +894,7 @@ JavaScript Dependencies
|
|
|
869
894
|
https://github.com/holepunchto/hypercore-id-encoding
|
|
870
895
|
hypercore-stats@2.5.1
|
|
871
896
|
https://github.com/holepunchto/hypercore-stats
|
|
872
|
-
hypercore-storage@3.
|
|
897
|
+
hypercore-storage@3.3.1
|
|
873
898
|
https://github.com/holepunchto/hypercore-storage
|
|
874
899
|
hyperdb@6.9.0
|
|
875
900
|
https://github.com/holepunchto/hyperdb
|
|
@@ -879,9 +904,9 @@ JavaScript Dependencies
|
|
|
879
904
|
https://github.com/holepunchto/hyperdht-stats
|
|
880
905
|
hyperdispatch@1.6.0
|
|
881
906
|
https://github.com/holepunchto/hyperdispatch
|
|
882
|
-
hyperdrive@13.3.
|
|
907
|
+
hyperdrive@13.3.4
|
|
883
908
|
https://github.com/holepunchto/hyperdrive
|
|
884
|
-
hyperschema@1.
|
|
909
|
+
hyperschema@1.26.2
|
|
885
910
|
https://github.com/holepunchto/hyperschema
|
|
886
911
|
hyperswarm-stats@1.3.1
|
|
887
912
|
https://github.com/holepunchto/hyperswarm-stats
|
|
@@ -907,11 +932,11 @@ JavaScript Dependencies
|
|
|
907
932
|
https://github.com/holepunchto/refcounter
|
|
908
933
|
require-addon@1.3.0
|
|
909
934
|
https://github.com/holepunchto/require-addon
|
|
910
|
-
require-asset@1.2.
|
|
935
|
+
require-asset@1.2.4
|
|
911
936
|
https://github.com/holepunchto/require-asset
|
|
912
937
|
resource-on-exit@1.0.0
|
|
913
938
|
https://github.com/holepunchto/bare-teardown
|
|
914
|
-
rocksdb-native@3.
|
|
939
|
+
rocksdb-native@3.18.1
|
|
915
940
|
https://github.com/holepunchto/rocksdb-native
|
|
916
941
|
scope-lock@1.2.4
|
|
917
942
|
https://github.com/holepunchto/scope-lock
|
|
@@ -921,7 +946,7 @@ JavaScript Dependencies
|
|
|
921
946
|
https://github.com/holepunchto/sub-encoder
|
|
922
947
|
text-decoder@1.2.7
|
|
923
948
|
https://github.com/holepunchto/text-decoder
|
|
924
|
-
udx-native@1.21.
|
|
949
|
+
udx-native@1.21.3
|
|
925
950
|
https://github.com/holepunchto/udx-native
|
|
926
951
|
unslab@1.3.0
|
|
927
952
|
https://github.com/holepunchto/unslab
|
|
@@ -949,10 +974,6 @@ JavaScript Dependencies
|
|
|
949
974
|
|
|
950
975
|
--- mit (MIT License) ---
|
|
951
976
|
|
|
952
|
-
@jridgewell/resolve-uri@3.1.2
|
|
953
|
-
https://github.com/jridgewell/resolve-uri
|
|
954
|
-
@jridgewell/sourcemap-codec@1.6.0
|
|
955
|
-
https://github.com/jridgewell/sourcemaps
|
|
956
977
|
@jridgewell/trace-mapping@0.3.31
|
|
957
978
|
https://github.com/jridgewell/sourcemaps
|
|
958
979
|
@types/istanbul-lib-coverage@2.0.6
|
|
@@ -967,7 +988,7 @@ JavaScript Dependencies
|
|
|
967
988
|
https://github.com/mafintosh/codecs
|
|
968
989
|
convert-source-map@2.0.0
|
|
969
990
|
https://github.com/thlorenz/convert-source-map
|
|
970
|
-
corestore@7.12.
|
|
991
|
+
corestore@7.12.5
|
|
971
992
|
https://github.com/holepunchto/corestore
|
|
972
993
|
debounceify@1.1.0
|
|
973
994
|
https://github.com/mafintosh/debounceify
|
|
@@ -987,13 +1008,13 @@ JavaScript Dependencies
|
|
|
987
1008
|
https://github.com/mafintosh/generate-string
|
|
988
1009
|
hyperbee@2.27.3
|
|
989
1010
|
https://github.com/holepunchto/hyperbee
|
|
990
|
-
hypercore@11.
|
|
1011
|
+
hypercore@11.36.1
|
|
991
1012
|
https://github.com/holepunchto/hypercore
|
|
992
1013
|
hypercore-crypto@3.7.0
|
|
993
1014
|
https://github.com/mafintosh/hypercore-crypto
|
|
994
1015
|
hyperdht@6.34.0
|
|
995
1016
|
https://github.com/holepunchto/hyperdht
|
|
996
|
-
hyperswarm@4.17.
|
|
1017
|
+
hyperswarm@4.17.2
|
|
997
1018
|
https://github.com/holepunchto/hyperswarm
|
|
998
1019
|
is-options@1.0.2
|
|
999
1020
|
https://github.com/mafintosh/is-options
|
|
@@ -1001,6 +1022,8 @@ JavaScript Dependencies
|
|
|
1001
1022
|
https://github.com/mikolalysenko/is-property
|
|
1002
1023
|
kademlia-routing-table@1.0.6
|
|
1003
1024
|
https://github.com/mafintosh/kademlia-routing-table
|
|
1025
|
+
llm-splitter@0.2.0
|
|
1026
|
+
https://github.com/nearform/llm-splitter
|
|
1004
1027
|
mutexify@1.4.0
|
|
1005
1028
|
https://github.com/mafintosh/mutexify
|
|
1006
1029
|
nat-sampler@1.0.1
|
|
@@ -1071,6 +1094,6 @@ JavaScript Dependencies
|
|
|
1071
1094
|
https://github.com/mafintosh/xache
|
|
1072
1095
|
z32@1.1.0
|
|
1073
1096
|
https://github.com/mafintosh/z32
|
|
1074
|
-
zod@4.6.
|
|
1097
|
+
zod@4.6.5
|
|
1075
1098
|
https://github.com/colinhacks/zod
|
|
1076
1099
|
|
package/README.md
CHANGED
|
@@ -144,7 +144,9 @@ initialized, the event omits the resource block.
|
|
|
144
144
|
|
|
145
145
|
Use `assessModelFit` to check, before downloading anything, whether models are
|
|
146
146
|
likely to fit in this device's memory. It reads generated catalog metadata plus a
|
|
147
|
-
fresh memory sample
|
|
147
|
+
fresh memory sample, and for a single candidate the registry's weightless
|
|
148
|
+
description of the artifact, so the engine's own fitter can answer — no weights,
|
|
149
|
+
no load:
|
|
148
150
|
|
|
149
151
|
```ts
|
|
150
152
|
import { assessModelFit, QWEN3_8B_INST_Q4_K_M } from '@qvac/sdk'
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cancel, loadModel, unloadModel, worldCreateScene, worldStep, ABOT_WORLD_0_5B_Q8_0,
|
|
1
|
+
import { cancel, loadModel, unloadModel, worldCreateScene, worldStep, ABOT_WORLD_0_5B_Q8_0, ABOT_WORLD_0_5B_LF_TAEHV_VAE, ABOT_WORLD_0_5B_LF_WAN_VAE, UMT5_XXL_ENC_Q8_0 } from '@qvac/sdk';
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
import path from 'path';
|
|
4
4
|
// ABot-World: build a world from a single image, then walk it. Each step
|
|
@@ -38,9 +38,9 @@ try {
|
|
|
38
38
|
// vaeModelSrc — the full-precision Wan2.2 VAE. ENCODES the first frame
|
|
39
39
|
// during worldCreateScene, and is not touched again after that.
|
|
40
40
|
// Swapping them loads at first and fails once the walk starts.
|
|
41
|
-
taehvModelSrc:
|
|
41
|
+
taehvModelSrc: ABOT_WORLD_0_5B_LF_TAEHV_VAE,
|
|
42
42
|
t5XxlModelSrc: UMT5_XXL_ENC_Q8_0,
|
|
43
|
-
vaeModelSrc:
|
|
43
|
+
vaeModelSrc: ABOT_WORLD_0_5B_LF_WAN_VAE,
|
|
44
44
|
world: {
|
|
45
45
|
seed: 42,
|
|
46
46
|
// ~3.7x fewer frame-passes per block. Without it, block times ramp from
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Advisory llama.cpp fit check (QVAC-22629).
|
|
3
|
+
*
|
|
4
|
+
* Before a completion or embedding load, the SDK runs `@qvac/model-fit` in one
|
|
5
|
+
* disposable Bare child and projects whether the exact configuration it is
|
|
6
|
+
* about to load will fit in device memory.
|
|
7
|
+
*
|
|
8
|
+
* The result is ADVISORY. It never blocks a load. `does-not-fit` is logged and
|
|
9
|
+
* the ordinary load path runs unchanged. Crashes, timeouts, malformed
|
|
10
|
+
* responses, unsupported configurations, and internal errors all resolve to
|
|
11
|
+
* "no evidence" and are equally non-blocking. Nothing consumes the verdict
|
|
12
|
+
* yet — this PR only produces it.
|
|
13
|
+
*
|
|
14
|
+
* The verdict is emitted on the SDK server log stream, not to stdout, so this
|
|
15
|
+
* example subscribes to `loggingStream({ id: SDK_LOG_ID })` and reprints the
|
|
16
|
+
* `[advisory-fit:…]` lines.
|
|
17
|
+
*
|
|
18
|
+
* ---------------------------------------------------------------------------
|
|
19
|
+
* What fits on this machine (Apple M4 Pro, 24 GiB unified memory)
|
|
20
|
+
* ---------------------------------------------------------------------------
|
|
21
|
+
*
|
|
22
|
+
* Measured with `@qvac/model-fit@0.8.0` (the first release carrying the
|
|
23
|
+
* qvac-fabric#214 memory-reporting fix) at the default 1024 MiB margin. The
|
|
24
|
+
* fitter budgets against what the machine can actually keep resident
|
|
25
|
+
* (total − wired − compressor: 17.4 GiB on this machine at idle), not the raw
|
|
26
|
+
* RAM figure.
|
|
27
|
+
*
|
|
28
|
+
* PROJECTED TO FIT — all layers on GPU
|
|
29
|
+
* Qwen3.5 0.8B Q4_K_M 0.5 GiB @ 4k ctx
|
|
30
|
+
* gpt-oss-20B Q4_K_M 10.8 GiB @ 32k ctx
|
|
31
|
+
* gte-large fp16 0.6 GiB (embedding, context pinned to 512)
|
|
32
|
+
*
|
|
33
|
+
* PROJECTED NOT TO FIT — try any of these to see a `does-not-fit` verdict
|
|
34
|
+
* gpt-oss-20B Q4_K_M 10.8 GiB @ 128k ctx with an f32 KV cache ← below
|
|
35
|
+
* Gemma 4 31B Q4_K_M 18.3 GiB @ 1k ctx ← the weights alone do not
|
|
36
|
+
* fit with gpu_layers: 99
|
|
37
|
+
*
|
|
38
|
+
* gpt-oss-20B at 128k context FITS with the default KV cache and DOES NOT FIT
|
|
39
|
+
* once `cache-type-k`/`cache-type-v` are set to `f32`. Same model, same
|
|
40
|
+
* context, same machine — the verdict tracks the configuration, not the file
|
|
41
|
+
* size.
|
|
42
|
+
*
|
|
43
|
+
* Two boundaries worth understanding when reading verdicts:
|
|
44
|
+
*
|
|
45
|
+
* 1. The verdict answers for a PLACEMENT, not a model. The SDK's schema
|
|
46
|
+
* default is `gpu_layers: 99` ("everything on the GPU"), so `does-not-fit`
|
|
47
|
+
* means "not at this placement". Omit `gpu_layers` and the fitter is free
|
|
48
|
+
* to move layers to the CPU side instead.
|
|
49
|
+
* 2. A `does-not-fit` configuration can still RUN on macOS when the OS
|
|
50
|
+
* compresses and pages hard enough — and a `fits` configuration right at
|
|
51
|
+
* the boundary can still fail at first decode under memory pressure.
|
|
52
|
+
* Prediction cannot separate those cases from a snapshot; the addon-side
|
|
53
|
+
* probe decode (QVAC-24114) is the runtime check that catches the
|
|
54
|
+
* remainder. The verdict here is the honest working-set budget, and the
|
|
55
|
+
* measured failure modes punish over-committing, so treat `does-not-fit`
|
|
56
|
+
* as "expect degradation or decode failure", not "the load will error".
|
|
57
|
+
*/
|
|
58
|
+
export {};
|
|
59
|
+
//# sourceMappingURL=advisory-model-fit.d.ts.map
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Advisory llama.cpp fit check (QVAC-22629).
|
|
3
|
+
*
|
|
4
|
+
* Before a completion or embedding load, the SDK runs `@qvac/model-fit` in one
|
|
5
|
+
* disposable Bare child and projects whether the exact configuration it is
|
|
6
|
+
* about to load will fit in device memory.
|
|
7
|
+
*
|
|
8
|
+
* The result is ADVISORY. It never blocks a load. `does-not-fit` is logged and
|
|
9
|
+
* the ordinary load path runs unchanged. Crashes, timeouts, malformed
|
|
10
|
+
* responses, unsupported configurations, and internal errors all resolve to
|
|
11
|
+
* "no evidence" and are equally non-blocking. Nothing consumes the verdict
|
|
12
|
+
* yet — this PR only produces it.
|
|
13
|
+
*
|
|
14
|
+
* The verdict is emitted on the SDK server log stream, not to stdout, so this
|
|
15
|
+
* example subscribes to `loggingStream({ id: SDK_LOG_ID })` and reprints the
|
|
16
|
+
* `[advisory-fit:…]` lines.
|
|
17
|
+
*
|
|
18
|
+
* ---------------------------------------------------------------------------
|
|
19
|
+
* What fits on this machine (Apple M4 Pro, 24 GiB unified memory)
|
|
20
|
+
* ---------------------------------------------------------------------------
|
|
21
|
+
*
|
|
22
|
+
* Measured with `@qvac/model-fit@0.8.0` (the first release carrying the
|
|
23
|
+
* qvac-fabric#214 memory-reporting fix) at the default 1024 MiB margin. The
|
|
24
|
+
* fitter budgets against what the machine can actually keep resident
|
|
25
|
+
* (total − wired − compressor: 17.4 GiB on this machine at idle), not the raw
|
|
26
|
+
* RAM figure.
|
|
27
|
+
*
|
|
28
|
+
* PROJECTED TO FIT — all layers on GPU
|
|
29
|
+
* Qwen3.5 0.8B Q4_K_M 0.5 GiB @ 4k ctx
|
|
30
|
+
* gpt-oss-20B Q4_K_M 10.8 GiB @ 32k ctx
|
|
31
|
+
* gte-large fp16 0.6 GiB (embedding, context pinned to 512)
|
|
32
|
+
*
|
|
33
|
+
* PROJECTED NOT TO FIT — try any of these to see a `does-not-fit` verdict
|
|
34
|
+
* gpt-oss-20B Q4_K_M 10.8 GiB @ 128k ctx with an f32 KV cache ← below
|
|
35
|
+
* Gemma 4 31B Q4_K_M 18.3 GiB @ 1k ctx ← the weights alone do not
|
|
36
|
+
* fit with gpu_layers: 99
|
|
37
|
+
*
|
|
38
|
+
* gpt-oss-20B at 128k context FITS with the default KV cache and DOES NOT FIT
|
|
39
|
+
* once `cache-type-k`/`cache-type-v` are set to `f32`. Same model, same
|
|
40
|
+
* context, same machine — the verdict tracks the configuration, not the file
|
|
41
|
+
* size.
|
|
42
|
+
*
|
|
43
|
+
* Two boundaries worth understanding when reading verdicts:
|
|
44
|
+
*
|
|
45
|
+
* 1. The verdict answers for a PLACEMENT, not a model. The SDK's schema
|
|
46
|
+
* default is `gpu_layers: 99` ("everything on the GPU"), so `does-not-fit`
|
|
47
|
+
* means "not at this placement". Omit `gpu_layers` and the fitter is free
|
|
48
|
+
* to move layers to the CPU side instead.
|
|
49
|
+
* 2. A `does-not-fit` configuration can still RUN on macOS when the OS
|
|
50
|
+
* compresses and pages hard enough — and a `fits` configuration right at
|
|
51
|
+
* the boundary can still fail at first decode under memory pressure.
|
|
52
|
+
* Prediction cannot separate those cases from a snapshot; the addon-side
|
|
53
|
+
* probe decode (QVAC-24114) is the runtime check that catches the
|
|
54
|
+
* remainder. The verdict here is the honest working-set budget, and the
|
|
55
|
+
* measured failure modes punish over-committing, so treat `does-not-fit`
|
|
56
|
+
* as "expect degradation or decode failure", not "the load will error".
|
|
57
|
+
*/
|
|
58
|
+
import { completion, loadModel, unloadModel, loggingStream, SDK_LOG_ID, QWEN3_5_0_8B_MULTIMODAL_Q4_K_M, GPT_OSS_20B_INST_Q4_K_M } from '@qvac/sdk';
|
|
59
|
+
// The oversized load below is expected to be reported as `does-not-fit` and
|
|
60
|
+
// then attempted anyway, because the check is advisory. It really does try to
|
|
61
|
+
// allocate ~11 GiB, so it stays opt-in.
|
|
62
|
+
const ATTEMPT_OVERSIZED = process.env['QVAC_FIT_DEMO_ATTEMPT_OVERSIZED'] === '1';
|
|
63
|
+
// Reprint the worker's advisory verdicts. They arrive on the SDK server log
|
|
64
|
+
// stream; everything else on that stream is filtered out to keep this readable.
|
|
65
|
+
//
|
|
66
|
+
// Called once per phase rather than once for the process: a subscription
|
|
67
|
+
// currently stops delivering after any `unloadModel`, so a single one would go
|
|
68
|
+
// silent before the second verdict. Resubscribing after the unload works.
|
|
69
|
+
function watchVerdicts() {
|
|
70
|
+
void (async () => {
|
|
71
|
+
for await (const log of loggingStream({ id: SDK_LOG_ID })) {
|
|
72
|
+
if (log.message.includes('[advisory-fit:')) {
|
|
73
|
+
console.log(`▸ [${log.level.toUpperCase()}] ${log.message}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
})().catch(() => {
|
|
77
|
+
// Stream terminated — normal on shutdown.
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
watchVerdicts();
|
|
81
|
+
try {
|
|
82
|
+
// 1. A load the fitter projects to fit. The verdict carries the plan it
|
|
83
|
+
// projected: resolved context, offloaded layers, and GPU device count.
|
|
84
|
+
console.log('▸ Loading Qwen3.5 0.8B @ 4k — expected verdict: projected to fit');
|
|
85
|
+
const smallModelId = await loadModel({
|
|
86
|
+
modelSrc: QWEN3_5_0_8B_MULTIMODAL_Q4_K_M,
|
|
87
|
+
modelConfig: { ctx_size: 4096 }
|
|
88
|
+
});
|
|
89
|
+
console.log(`▸ Loaded ${smallModelId}\n`);
|
|
90
|
+
const result = completion({
|
|
91
|
+
modelId: smallModelId,
|
|
92
|
+
history: [{ role: 'user', content: 'Say hello in five words.' }],
|
|
93
|
+
stream: false,
|
|
94
|
+
generationParams: { predict: 48 }
|
|
95
|
+
});
|
|
96
|
+
const final = await result.final;
|
|
97
|
+
console.log(`▸ Completion still works normally: ${final.contentText.trim().slice(0, 120)}\n`);
|
|
98
|
+
// Unloaded before the next phase, so the second verdict is measured on an
|
|
99
|
+
// idle machine and stays comparable to the fixture tables above. Leaving it
|
|
100
|
+
// loaded would shift the verdict: the check reserves resident weight bytes
|
|
101
|
+
// through the fit margin, and since model-fit 0.8.0 the fit child also sees
|
|
102
|
+
// system-wide wired memory.
|
|
103
|
+
await unloadModel({ modelId: smallModelId, clearStorage: false });
|
|
104
|
+
watchVerdicts();
|
|
105
|
+
// 2. A load the fitter projects NOT to fit. The point of this example is that
|
|
106
|
+
// the SDK reports the verdict and then loads anyway — the check is
|
|
107
|
+
// evidence, not admission control.
|
|
108
|
+
if (!ATTEMPT_OVERSIZED) {
|
|
109
|
+
console.log('▸ Skipping the oversized gpt-oss-20B load.');
|
|
110
|
+
console.log('▸ Set QVAC_FIT_DEMO_ATTEMPT_OVERSIZED=1 to let it run and watch the');
|
|
111
|
+
console.log(' load proceed past a `does-not-fit` verdict (allocates ~11 GiB).');
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
console.log('▸ Loading gpt-oss-20B @ 128k with an f32 KV cache');
|
|
115
|
+
console.log('▸ Expected verdict: projected NOT to fit');
|
|
116
|
+
console.log('▸ The load is attempted regardless. That is the fail-open contract:');
|
|
117
|
+
console.log(' the verdict is evidence, not admission control.\n');
|
|
118
|
+
const bigModelId = await loadModel({
|
|
119
|
+
modelSrc: GPT_OSS_20B_INST_Q4_K_M,
|
|
120
|
+
modelConfig: {
|
|
121
|
+
ctx_size: 131072,
|
|
122
|
+
'cache-type-k': 'f32',
|
|
123
|
+
'cache-type-v': 'f32'
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
console.log(`▸ Load returned ${bigModelId} — the advisory verdict did not block it`);
|
|
127
|
+
// Loading is not the same as being usable: a model can load and then fail
|
|
128
|
+
// at decode time. Gemma 4 31B does exactly that on this machine. So run a
|
|
129
|
+
// real completion and report throughput rather than trusting the load.
|
|
130
|
+
try {
|
|
131
|
+
const check = completion({
|
|
132
|
+
modelId: bigModelId,
|
|
133
|
+
history: [{ role: 'user', content: 'Name three colours. Answer briefly.' }],
|
|
134
|
+
stream: false,
|
|
135
|
+
generationParams: { predict: 40 }
|
|
136
|
+
});
|
|
137
|
+
const checkFinal = await check.final;
|
|
138
|
+
console.log(`▸ ...and it actually runs: ${checkFinal.stats?.tokensPerSecond?.toFixed(1) ?? '?'} tok/s ` +
|
|
139
|
+
`— the OS compressed and paged its way past the working-set budget`);
|
|
140
|
+
}
|
|
141
|
+
catch (inferenceError) {
|
|
142
|
+
console.log(`▸ ...but it cannot run: ${inferenceError instanceof Error ? inferenceError.message : String(inferenceError)}`);
|
|
143
|
+
console.log('▸ The verdict was right, and `loadModel` succeeding did not mean usable.');
|
|
144
|
+
}
|
|
145
|
+
await unloadModel({ modelId: bigModelId, clearStorage: false });
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
// A failing load here is the native loader's own error, not the fit check.
|
|
150
|
+
// The check never throws and never converts a verdict into a load failure.
|
|
151
|
+
console.error('✖', error instanceof Error ? error.message : error);
|
|
152
|
+
process.exitCode = 1;
|
|
153
|
+
}
|
|
154
|
+
// The log subscription is an open stream and would otherwise keep the process
|
|
155
|
+
// alive after the work is done.
|
|
156
|
+
process.exit(process.exitCode ?? 0);
|