@qvac/sdk 0.16.0 → 0.17.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.
Files changed (581) hide show
  1. package/NOTICE +118 -96
  2. package/README.md +65 -0
  3. package/dist/client/api/audio-gen-result.d.ts +4 -0
  4. package/dist/client/api/audio-gen-result.js +132 -0
  5. package/dist/client/api/audio-gen.d.ts +29 -0
  6. package/dist/client/api/audio-gen.js +31 -0
  7. package/dist/client/api/batch-completion.d.ts +2 -2
  8. package/dist/client/api/batch-completion.js +2 -2
  9. package/dist/client/api/bci-transcribe.d.ts +1 -1
  10. package/dist/client/api/bci-transcribe.js +3 -3
  11. package/dist/client/api/cancel.d.ts +1 -1
  12. package/dist/client/api/cancel.js +1 -1
  13. package/dist/client/api/classify.d.ts +1 -1
  14. package/dist/client/api/classify.js +1 -1
  15. package/dist/client/api/completion-stream.d.ts +3 -3
  16. package/dist/client/api/completion-stream.js +3 -3
  17. package/dist/client/api/delete-cache.js +1 -1
  18. package/dist/client/api/diffusion.d.ts +1 -1
  19. package/dist/client/api/diffusion.js +1 -1
  20. package/dist/client/api/download-asset.d.ts +1 -1
  21. package/dist/client/api/download-asset.js +3 -3
  22. package/dist/client/api/embed.d.ts +1 -1
  23. package/dist/client/api/embed.js +2 -2
  24. package/dist/client/api/finetune.d.ts +1 -1
  25. package/dist/client/api/finetune.js +2 -2
  26. package/dist/client/api/get-loaded-model-info.d.ts +2 -2
  27. package/dist/client/api/get-loaded-model-info.js +1 -1
  28. package/dist/client/api/get-model-info.d.ts +2 -2
  29. package/dist/client/api/get-model-info.js +1 -1
  30. package/dist/client/api/get-system-resources.d.ts +3 -0
  31. package/dist/client/api/get-system-resources.js +16 -0
  32. package/dist/client/api/heartbeat.d.ts +2 -2
  33. package/dist/client/api/heartbeat.js +1 -1
  34. package/dist/client/api/index.d.ts +35 -33
  35. package/dist/client/api/index.js +2 -0
  36. package/dist/client/api/invoke-plugin.d.ts +1 -1
  37. package/dist/client/api/invoke-plugin.js +1 -1
  38. package/dist/client/api/load-model.d.ts +2 -2
  39. package/dist/client/api/load-model.js +4 -4
  40. package/dist/client/api/logging-stream.d.ts +1 -1
  41. package/dist/client/api/logging-stream.js +1 -1
  42. package/dist/client/api/ocr.d.ts +1 -1
  43. package/dist/client/api/ocr.js +1 -1
  44. package/dist/client/api/provide.d.ts +1 -1
  45. package/dist/client/api/provide.js +1 -1
  46. package/dist/client/api/rag.d.ts +1 -1
  47. package/dist/client/api/rag.js +2 -2
  48. package/dist/client/api/registry.d.ts +1 -1
  49. package/dist/client/api/registry.js +1 -1
  50. package/dist/client/api/resume.js +1 -1
  51. package/dist/client/api/state.d.ts +1 -1
  52. package/dist/client/api/state.js +1 -1
  53. package/dist/client/api/stop-provider.js +1 -1
  54. package/dist/client/api/subscribe-logs.d.ts +1 -1
  55. package/dist/client/api/suspend.js +1 -1
  56. package/dist/client/api/text-to-speech.d.ts +3 -2
  57. package/dist/client/api/text-to-speech.js +31 -9
  58. package/dist/client/api/transcribe.d.ts +1 -1
  59. package/dist/client/api/transcribe.js +2 -2
  60. package/dist/client/api/translate.d.ts +3 -3
  61. package/dist/client/api/translate.js +3 -3
  62. package/dist/client/api/unload-model.d.ts +1 -1
  63. package/dist/client/api/unload-model.js +2 -2
  64. package/dist/client/api/upscale.d.ts +1 -1
  65. package/dist/client/api/upscale.js +1 -1
  66. package/dist/client/api/video.d.ts +1 -1
  67. package/dist/client/api/video.js +2 -2
  68. package/dist/client/api/vla.d.ts +1 -1
  69. package/dist/client/config-loader/config-utils.d.ts +1 -1
  70. package/dist/client/config-loader/resolve-config.bare.d.ts +1 -1
  71. package/dist/client/config-loader/resolve-config.expo.d.ts +1 -1
  72. package/dist/client/config-loader/resolve-config.node.d.ts +1 -1
  73. package/dist/client/index.d.ts +1 -1
  74. package/dist/client/init-hooks.d.ts +1 -1
  75. package/dist/client/logging-stream-registry.d.ts +1 -1
  76. package/dist/client/plugins-factory.d.ts +2 -2
  77. package/dist/client/plugins-factory.js +1 -1
  78. package/dist/client/rpc/bare-client.d.ts +1 -1
  79. package/dist/client/rpc/bare-client.js +3 -3
  80. package/dist/client/rpc/expo-rpc-client.js +3 -3
  81. package/dist/client/rpc/node-rpc-client.js +2 -2
  82. package/dist/client/rpc/profiling/index.d.ts +1 -1
  83. package/dist/client/rpc/profiling/profiler.d.ts +2 -2
  84. package/dist/client/rpc/profiling/profiler.js +4 -0
  85. package/dist/client/rpc/rpc-client.d.ts +1 -1
  86. package/dist/client/rpc/rpc-client.js +7 -4
  87. package/dist/client/rpc/rpc-error.d.ts +1 -1
  88. package/dist/commands/bundle/bare-pack.d.ts +1 -1
  89. package/dist/commands/bundle/constants.js +1 -0
  90. package/dist/commands/bundle/entry-gen.js +1 -1
  91. package/dist/commands/bundle/index.js +6 -6
  92. package/dist/commands/bundle/manifest.d.ts +1 -1
  93. package/dist/commands/bundle/plugins.d.ts +2 -2
  94. package/dist/commands/bundle/plugins.js +1 -1
  95. package/dist/commands/index.d.ts +4 -4
  96. package/dist/commands/index.js +2 -2
  97. package/dist/commands/verify/abi.d.ts +1 -1
  98. package/dist/commands/verify/abi.js +1 -1
  99. package/dist/commands/verify/bundle-source.d.ts +1 -1
  100. package/dist/commands/verify/bundle-source.js +2 -2
  101. package/dist/commands/verify/index.d.ts +3 -3
  102. package/dist/commands/verify/index.js +5 -5
  103. package/dist/commands/verify/node-modules-source.d.ts +1 -1
  104. package/dist/commands/verify/node-modules-source.js +1 -1
  105. package/dist/commands/verify/prebuilds.d.ts +2 -1
  106. package/dist/commands/verify/prebuilds.js +8 -11
  107. package/dist/commands/verify/resource-collectors.d.ts +88 -0
  108. package/dist/commands/verify/resource-collectors.js +261 -0
  109. package/dist/constants/audio.js +1 -1
  110. package/dist/constants/index.d.ts +2 -2
  111. package/dist/examples/{transcription → asr}/parakeet-ctc-filesystem.js +2 -3
  112. package/dist/examples/{transcription → asr}/parakeet-microphone-record.js +2 -2
  113. package/dist/examples/{transcription → asr}/parakeet-microphone-stream.js +2 -2
  114. package/dist/examples/{transcription → asr}/parakeet-sortformer-streaming.js +2 -2
  115. package/dist/examples/{transcription → asr}/parakeet-sortformer.js +1 -1
  116. package/dist/examples/{transcription → asr}/parakeet-tdt-filesystem-chunked.js +2 -2
  117. package/dist/examples/{transcription → asr}/parakeet-tdt-filesystem.js +2 -2
  118. package/dist/examples/{transcription → asr}/whispercpp-filesystem-streaming.js +1 -1
  119. package/dist/examples/{transcription → asr}/whispercpp-filesystem.js +1 -1
  120. package/dist/examples/{transcription → asr}/whispercpp-microphone-conversation.js +1 -1
  121. package/dist/examples/{transcription → asr}/whispercpp-microphone-record.js +2 -2
  122. package/dist/examples/{transcription → asr}/whispercpp-prompt.js +1 -1
  123. package/dist/examples/audiogen/generate-music.d.ts +2 -0
  124. package/dist/examples/audiogen/generate-music.js +112 -0
  125. package/dist/examples/cache-management.js +1 -1
  126. package/dist/examples/config-reload.js +1 -1
  127. package/dist/examples/diffusion-txt2vid-wan22.d.ts +2 -0
  128. package/dist/examples/diffusion-txt2vid-wan22.js +96 -0
  129. package/dist/examples/quickstart.bare.js +1 -1
  130. package/dist/examples/rag/rag-mongodb.d.ts +2 -0
  131. package/dist/examples/rag/rag-mongodb.js +180 -0
  132. package/dist/examples/tools/llamacpp-tools-auto-dialect.d.ts +2 -0
  133. package/dist/examples/tools/llamacpp-tools-auto-dialect.js +77 -0
  134. package/dist/examples/tts/parler.d.ts +2 -0
  135. package/dist/examples/tts/parler.js +51 -0
  136. package/dist/examples/vla-groot.js +6 -4
  137. package/dist/examples/voice-assistant/voice-assistant.js +2 -2
  138. package/dist/expo/plugins/index.d.ts +11 -11
  139. package/dist/expo/plugins/withDeviceInfo.js +2 -2
  140. package/dist/expo/plugins/withMobileBundle.js +3 -3
  141. package/dist/index.d.ts +16 -16
  142. package/dist/index.js +4 -4
  143. package/dist/logging/addon.d.ts +1 -1
  144. package/dist/logging/base-logger.d.ts +1 -1
  145. package/dist/logging/base-logger.js +1 -1
  146. package/dist/logging/client-logger.d.ts +1 -1
  147. package/dist/logging/index.d.ts +9 -9
  148. package/dist/logging/logger.d.ts +1 -1
  149. package/dist/logging/namespaces.d.ts +1 -1
  150. package/dist/logging/registry.d.ts +1 -1
  151. package/dist/logging/server-logger.d.ts +1 -1
  152. package/dist/logging/stream-logger.d.ts +1 -1
  153. package/dist/logging/transport.d.ts +1 -1
  154. package/dist/logging/utils.d.ts +1 -1
  155. package/dist/logging/utils.js +1 -1
  156. package/dist/models/registry/index.d.ts +1 -1
  157. package/dist/models/registry/models.d.ts +1226 -689
  158. package/dist/models/registry/models.js +3114 -2557
  159. package/dist/models/update-models/codegen.d.ts +1 -1
  160. package/dist/models/update-models/companions.d.ts +1 -1
  161. package/dist/models/update-models/history.d.ts +1 -1
  162. package/dist/models/update-models/history.js +4 -4
  163. package/dist/models/update-models/naming.d.ts +1 -1
  164. package/dist/models/update-models/naming.js +7 -1
  165. package/dist/models/update-models/processing.d.ts +1 -1
  166. package/dist/models/update-models/processing.js +1 -1
  167. package/dist/models/update-models/registry.d.ts +2 -2
  168. package/dist/models/update-models/shards.d.ts +1 -1
  169. package/dist/models/update-models/types.d.ts +1 -1
  170. package/dist/pear/pre.js +2 -0
  171. package/dist/profiling/aggregator.d.ts +1 -1
  172. package/dist/profiling/backend-diagnostics.d.ts +8 -0
  173. package/dist/profiling/backend-diagnostics.js +21 -0
  174. package/dist/profiling/controller.d.ts +4 -2
  175. package/dist/profiling/controller.js +8 -0
  176. package/dist/profiling/envelope.d.ts +3 -2
  177. package/dist/profiling/envelope.js +13 -2
  178. package/dist/profiling/events.d.ts +2 -2
  179. package/dist/profiling/exporters.d.ts +1 -1
  180. package/dist/profiling/index.d.ts +9 -8
  181. package/dist/profiling/index.js +3 -2
  182. package/dist/profiling/types.d.ts +6 -0
  183. package/dist/schemas/audio-gen.d.ts +253 -0
  184. package/dist/schemas/audio-gen.js +69 -0
  185. package/dist/schemas/batch-completion-stream.d.ts +7 -2
  186. package/dist/schemas/bci-config.d.ts +2 -0
  187. package/dist/schemas/bci.d.ts +1 -1
  188. package/dist/schemas/cancel.d.ts +5 -0
  189. package/dist/schemas/cancel.js +1 -0
  190. package/dist/schemas/common.d.ts +1553 -54
  191. package/dist/schemas/common.js +6 -0
  192. package/dist/schemas/completion-event.d.ts +5 -2
  193. package/dist/schemas/completion-event.js +3 -0
  194. package/dist/schemas/completion-stream.d.ts +9 -1
  195. package/dist/schemas/completion-stream.js +5 -2
  196. package/dist/schemas/constants-registry.d.ts +2 -0
  197. package/dist/schemas/constants-registry.js +2 -1
  198. package/dist/schemas/download-asset.d.ts +8 -4
  199. package/dist/schemas/engine-addon-map.d.ts +2 -1
  200. package/dist/schemas/engine-addon-map.js +5 -1
  201. package/dist/schemas/get-loaded-model-info.d.ts +2 -0
  202. package/dist/schemas/get-model-info.d.ts +2 -0
  203. package/dist/schemas/get-model-info.js +1 -0
  204. package/dist/schemas/index.d.ts +53 -51
  205. package/dist/schemas/index.js +4 -2
  206. package/dist/schemas/llamacpp-config.d.ts +6 -2
  207. package/dist/schemas/load-model.d.ts +6178 -2763
  208. package/dist/schemas/load-model.js +39 -3
  209. package/dist/schemas/mcp-adapter.d.ts +1 -1
  210. package/dist/schemas/model-src-utils.d.ts +10 -2
  211. package/dist/schemas/model-types.d.ts +19 -1
  212. package/dist/schemas/model-types.js +11 -0
  213. package/dist/schemas/ocr.d.ts +2 -0
  214. package/dist/schemas/plugin.d.ts +13 -4
  215. package/dist/schemas/plugin.js +12 -2
  216. package/dist/schemas/profiling.d.ts +587 -0
  217. package/dist/schemas/profiling.js +22 -0
  218. package/dist/schemas/registry.d.ts +18 -0
  219. package/dist/schemas/registry.js +2 -0
  220. package/dist/schemas/reload-config.d.ts +10 -2
  221. package/dist/schemas/sdcpp-config.d.ts +57 -0
  222. package/dist/schemas/sdcpp-config.js +53 -11
  223. package/dist/schemas/sdk-config.d.ts +168 -0
  224. package/dist/schemas/system-resources.d.ts +3967 -0
  225. package/dist/schemas/system-resources.js +149 -0
  226. package/dist/schemas/text-to-speech.d.ts +326 -6
  227. package/dist/schemas/text-to-speech.js +126 -13
  228. package/dist/schemas/transcription-config.d.ts +2 -0
  229. package/dist/schemas/translate.d.ts +2 -2
  230. package/dist/schemas/translation-config.d.ts +30 -10
  231. package/dist/scripts/check-resource-collectors-packaging.d.ts +33 -0
  232. package/dist/scripts/check-resource-collectors-packaging.js +136 -0
  233. package/dist/scripts/contract/build-contract.d.ts +1 -1
  234. package/dist/scripts/contract/build-models-registry.d.ts +1 -1
  235. package/dist/scripts/contract/plugin-contract.d.ts +1 -1
  236. package/dist/scripts/contract/plugin-contract.js +1 -1
  237. package/dist/scripts/export-contract.js +1 -1
  238. package/dist/scripts/export-plugin-contract.js +1 -1
  239. package/dist/server/bare/delegate-rpc-client.d.ts +1 -1
  240. package/dist/server/bare/delegate-rpc-client.js +3 -3
  241. package/dist/server/bare/hyperswarm.d.ts +1 -1
  242. package/dist/server/bare/hyperswarm.js +2 -2
  243. package/dist/server/bare/ops/bci-transcribe.d.ts +1 -1
  244. package/dist/server/bare/ops/bci-transcribe.js +4 -4
  245. package/dist/server/bare/ops/cancel.d.ts +2 -2
  246. package/dist/server/bare/ops/cancel.js +2 -2
  247. package/dist/server/bare/ops/embed.d.ts +1 -1
  248. package/dist/server/bare/ops/embed.js +3 -3
  249. package/dist/server/bare/ops/kv-cache-retention.d.ts +12 -0
  250. package/dist/server/bare/ops/kv-cache-retention.js +121 -0
  251. package/dist/server/bare/ops/kv-cache-utils.d.ts +2 -1
  252. package/dist/server/bare/ops/kv-cache-utils.js +26 -5
  253. package/dist/server/bare/ops/load-model.d.ts +2 -2
  254. package/dist/server/bare/ops/load-model.js +7 -5
  255. package/dist/server/bare/ops/transcribe.d.ts +2 -2
  256. package/dist/server/bare/ops/transcribe.js +20 -40
  257. package/dist/server/bare/ops/translate.d.ts +1 -1
  258. package/dist/server/bare/ops/translate.js +5 -9
  259. package/dist/server/bare/ops/unload-model.d.ts +1 -1
  260. package/dist/server/bare/ops/unload-model.js +5 -5
  261. package/dist/server/bare/plugins/asr-ggml/config.d.ts +32 -0
  262. package/dist/server/bare/plugins/asr-ggml/config.js +46 -0
  263. package/dist/server/bare/plugins/asr-ggml/logging.d.ts +11 -0
  264. package/dist/server/bare/plugins/asr-ggml/logging.js +12 -0
  265. package/dist/server/bare/plugins/audiogen-ggml/config.d.ts +18 -0
  266. package/dist/server/bare/plugins/audiogen-ggml/config.js +23 -0
  267. package/dist/server/bare/plugins/audiogen-ggml/ops/audio-gen-stream.d.ts +3 -0
  268. package/dist/server/bare/plugins/audiogen-ggml/ops/audio-gen-stream.js +162 -0
  269. package/dist/server/bare/plugins/audiogen-ggml/plugin.d.ts +213 -0
  270. package/dist/server/bare/plugins/audiogen-ggml/plugin.js +58 -0
  271. package/dist/server/bare/plugins/bci-whispercpp-transcription/plugin.d.ts +6 -4
  272. package/dist/server/bare/plugins/bci-whispercpp-transcription/plugin.js +4 -4
  273. package/dist/server/bare/plugins/bci-whispercpp-transcription/resolve-config.d.ts +1 -1
  274. package/dist/server/bare/plugins/ggml-classification/ops/classify.d.ts +1 -1
  275. package/dist/server/bare/plugins/ggml-classification/ops/classify.js +1 -1
  276. package/dist/server/bare/plugins/ggml-classification/plugin.d.ts +2 -2
  277. package/dist/server/bare/plugins/ggml-classification/plugin.js +1 -1
  278. package/dist/server/bare/plugins/ggml-ocr/ops/ocr-stream.d.ts +1 -1
  279. package/dist/server/bare/plugins/ggml-ocr/ops/ocr-stream.js +2 -2
  280. package/dist/server/bare/plugins/ggml-ocr/plugin.d.ts +4 -2
  281. package/dist/server/bare/plugins/ggml-ocr/plugin.js +3 -3
  282. package/dist/server/bare/plugins/ggml-ocr/resolve-config.d.ts +1 -1
  283. package/dist/server/bare/plugins/ggml-vla/ops/vla-hparams.d.ts +1 -1
  284. package/dist/server/bare/plugins/ggml-vla/ops/vla-hparams.js +1 -1
  285. package/dist/server/bare/plugins/ggml-vla/ops/vla-run.d.ts +1 -1
  286. package/dist/server/bare/plugins/ggml-vla/ops/vla-run.js +1 -1
  287. package/dist/server/bare/plugins/ggml-vla/plugin.d.ts +3 -3
  288. package/dist/server/bare/plugins/index.d.ts +12 -11
  289. package/dist/server/bare/plugins/index.js +1 -0
  290. package/dist/server/bare/plugins/llamacpp-completion/ops/batch-completion-stream.d.ts +3 -3
  291. package/dist/server/bare/plugins/llamacpp-completion/ops/batch-completion-stream.js +5 -5
  292. package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stats.d.ts +11 -1
  293. package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stats.js +16 -0
  294. package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stream.d.ts +3 -3
  295. package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stream.js +16 -14
  296. package/dist/server/bare/plugins/llamacpp-completion/ops/finetune.d.ts +1 -1
  297. package/dist/server/bare/plugins/llamacpp-completion/ops/finetune.js +3 -3
  298. package/dist/server/bare/plugins/llamacpp-completion/ops/kv-cache-session.d.ts +20 -10
  299. package/dist/server/bare/plugins/llamacpp-completion/ops/kv-cache-session.js +217 -80
  300. package/dist/server/bare/plugins/llamacpp-completion/plugin.d.ts +12 -5
  301. package/dist/server/bare/plugins/llamacpp-completion/plugin.js +16 -16
  302. package/dist/server/bare/plugins/llamacpp-completion/transform.d.ts +1 -1
  303. package/dist/server/bare/plugins/llamacpp-embedding/plugin.d.ts +2 -2
  304. package/dist/server/bare/plugins/llamacpp-embedding/plugin.js +5 -5
  305. package/dist/server/bare/plugins/nmtcpp-translation/plugin.d.ts +12 -2
  306. package/dist/server/bare/plugins/nmtcpp-translation/plugin.js +3 -3
  307. package/dist/server/bare/plugins/nmtcpp-translation/resolve-vocab.d.ts +1 -1
  308. package/dist/server/bare/plugins/parakeet-transcription/plugin.d.ts +6 -6
  309. package/dist/server/bare/plugins/parakeet-transcription/plugin.js +13 -20
  310. package/dist/server/bare/plugins/sdcpp-generation/ops/diffusion.d.ts +1 -1
  311. package/dist/server/bare/plugins/sdcpp-generation/ops/diffusion.js +1 -1
  312. package/dist/server/bare/plugins/sdcpp-generation/ops/upscale.d.ts +1 -1
  313. package/dist/server/bare/plugins/sdcpp-generation/ops/upscale.js +1 -1
  314. package/dist/server/bare/plugins/sdcpp-generation/ops/video.d.ts +2 -1
  315. package/dist/server/bare/plugins/sdcpp-generation/ops/video.js +13 -7
  316. package/dist/server/bare/plugins/sdcpp-generation/plugin.d.ts +26 -4
  317. package/dist/server/bare/plugins/sdcpp-generation/plugin.js +18 -4
  318. package/dist/server/bare/plugins/tts-ggml/ops/parler-options.d.ts +7 -0
  319. package/dist/server/bare/plugins/tts-ggml/ops/parler-options.js +30 -0
  320. package/dist/server/bare/plugins/tts-ggml/ops/text-to-speech-stream.d.ts +2 -2
  321. package/dist/server/bare/plugins/tts-ggml/ops/text-to-speech-stream.js +8 -5
  322. package/dist/server/bare/plugins/tts-ggml/ops/text-to-speech.d.ts +2 -2
  323. package/dist/server/bare/plugins/tts-ggml/ops/text-to-speech.js +14 -6
  324. package/dist/server/bare/plugins/tts-ggml/plugin.d.ts +114 -5
  325. package/dist/server/bare/plugins/tts-ggml/plugin.js +61 -5
  326. package/dist/server/bare/plugins/whispercpp-transcription/plugin.d.ts +8 -6
  327. package/dist/server/bare/plugins/whispercpp-transcription/plugin.js +17 -25
  328. package/dist/server/bare/rag-hyperdb/handlers/chunk.d.ts +1 -1
  329. package/dist/server/bare/rag-hyperdb/handlers/close-workspace.d.ts +1 -1
  330. package/dist/server/bare/rag-hyperdb/handlers/close-workspace.js +1 -1
  331. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.d.ts +1 -1
  332. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.js +1 -1
  333. package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.d.ts +1 -1
  334. package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.js +1 -1
  335. package/dist/server/bare/rag-hyperdb/handlers/ingest.d.ts +1 -1
  336. package/dist/server/bare/rag-hyperdb/handlers/ingest.js +2 -2
  337. package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.d.ts +1 -1
  338. package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.js +1 -1
  339. package/dist/server/bare/rag-hyperdb/handlers/reindex.d.ts +1 -1
  340. package/dist/server/bare/rag-hyperdb/handlers/reindex.js +1 -1
  341. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.d.ts +1 -1
  342. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.js +1 -1
  343. package/dist/server/bare/rag-hyperdb/handlers/search.d.ts +1 -1
  344. package/dist/server/bare/rag-hyperdb/handlers/search.js +2 -2
  345. package/dist/server/bare/rag-hyperdb/index.d.ts +11 -11
  346. package/dist/server/bare/rag-hyperdb/index.js +11 -11
  347. package/dist/server/bare/rag-hyperdb/rag-operation-manager.js +1 -1
  348. package/dist/server/bare/rag-hyperdb/rag-workspace-manager.js +4 -4
  349. package/dist/server/bare/registry/config-registry.d.ts +1 -1
  350. package/dist/server/bare/registry/config-registry.js +1 -1
  351. package/dist/server/bare/registry/model-config-registry.d.ts +2 -2
  352. package/dist/server/bare/registry/model-config-registry.js +4 -4
  353. package/dist/server/bare/registry/model-config-utils.d.ts +1 -1
  354. package/dist/server/bare/registry/model-config-utils.js +3 -0
  355. package/dist/server/bare/registry/model-registry.d.ts +15 -4
  356. package/dist/server/bare/registry/registry-client.js +2 -2
  357. package/dist/server/bare/registry/runtime-context-registry.d.ts +1 -1
  358. package/dist/server/bare/resources/collector.d.ts +644 -0
  359. package/dist/server/bare/resources/collector.js +226 -0
  360. package/dist/server/bare/resources/native.d.ts +3 -0
  361. package/dist/server/bare/resources/native.js +35 -0
  362. package/dist/server/bare/resources/normalize.d.ts +13 -0
  363. package/dist/server/bare/resources/normalize.js +73 -0
  364. package/dist/server/bare/resources/types.d.ts +66 -0
  365. package/dist/server/bare/resources/types.js +1 -0
  366. package/dist/server/bare/resources/worker-collector.d.ts +5 -0
  367. package/dist/server/bare/resources/worker-collector.js +15 -0
  368. package/dist/server/bare/runtime/index.d.ts +7 -7
  369. package/dist/server/bare/runtime/index.js +3 -3
  370. package/dist/server/bare/runtime/request-context.d.ts +2 -2
  371. package/dist/server/bare/runtime/request-registry-singleton.d.ts +1 -1
  372. package/dist/server/bare/runtime/request-registry-singleton.js +11 -1
  373. package/dist/server/bare/runtime/request-registry.d.ts +2 -2
  374. package/dist/server/bare/runtime/request-registry.js +1 -1
  375. package/dist/server/bare/runtime/with-request-context.d.ts +1 -1
  376. package/dist/server/bare/runtime-lifecycle.d.ts +1 -1
  377. package/dist/server/bare/types/addon-responses.d.ts +6 -34
  378. package/dist/server/bare/utils/asr-events.d.ts +15 -0
  379. package/dist/server/bare/utils/asr-events.js +30 -0
  380. package/dist/server/bare/utils/audio-input.d.ts +1 -1
  381. package/dist/server/bare/utils/audio-input.js +1 -1
  382. package/dist/server/bare/utils/transcribe-metadata.d.ts +1 -1
  383. package/dist/server/bare/utils/tts-stats.d.ts +1 -1
  384. package/dist/server/error-handlers.d.ts +1 -1
  385. package/dist/server/plugins/index.d.ts +1 -1
  386. package/dist/server/plugins/registry.d.ts +1 -1
  387. package/dist/server/plugins/registry.js +35 -8
  388. package/dist/server/rpc/delegate-transport.d.ts +2 -2
  389. package/dist/server/rpc/delegate-transport.js +5 -10
  390. package/dist/server/rpc/handle-request.js +3 -3
  391. package/dist/server/rpc/handler-registry.d.ts +1 -1
  392. package/dist/server/rpc/handler-registry.js +41 -37
  393. package/dist/server/rpc/handler-selection.d.ts +2 -2
  394. package/dist/server/rpc/handler-utils.d.ts +2 -2
  395. package/dist/server/rpc/handler-utils.js +5 -5
  396. package/dist/server/rpc/handlers/audio-gen-stream.d.ts +3 -0
  397. package/dist/server/rpc/handlers/audio-gen-stream.js +4 -0
  398. package/dist/server/rpc/handlers/batch-completion-stream.d.ts +3 -1
  399. package/dist/server/rpc/handlers/batch-completion-stream.js +1 -1
  400. package/dist/server/rpc/handlers/bci-transcribe-stream.d.ts +1 -1
  401. package/dist/server/rpc/handlers/bci-transcribe-stream.js +1 -1
  402. package/dist/server/rpc/handlers/bci-transcribe.d.ts +1 -1
  403. package/dist/server/rpc/handlers/bci-transcribe.js +1 -1
  404. package/dist/server/rpc/handlers/cancel-delegated.d.ts +2 -2
  405. package/dist/server/rpc/handlers/cancel-delegated.js +3 -3
  406. package/dist/server/rpc/handlers/cancelHandler.d.ts +1 -1
  407. package/dist/server/rpc/handlers/cancelHandler.js +3 -3
  408. package/dist/server/rpc/handlers/classify.d.ts +1 -1
  409. package/dist/server/rpc/handlers/classify.js +1 -1
  410. package/dist/server/rpc/handlers/completion-orchestrate.d.ts +2 -2
  411. package/dist/server/rpc/handlers/completion-orchestrate.js +1 -1
  412. package/dist/server/rpc/handlers/completion-stream-delegated.d.ts +2 -2
  413. package/dist/server/rpc/handlers/completion-stream-delegated.js +3 -3
  414. package/dist/server/rpc/handlers/completion-stream.d.ts +1 -1
  415. package/dist/server/rpc/handlers/completion-stream.js +1 -1
  416. package/dist/server/rpc/handlers/delete-cache.d.ts +1 -1
  417. package/dist/server/rpc/handlers/delete-cache.js +1 -1
  418. package/dist/server/rpc/handlers/diffusion-stream.d.ts +1 -1
  419. package/dist/server/rpc/handlers/diffusion-stream.js +1 -1
  420. package/dist/server/rpc/handlers/download-asset.d.ts +1 -1
  421. package/dist/server/rpc/handlers/download-asset.js +4 -4
  422. package/dist/server/rpc/handlers/embed.d.ts +1 -1
  423. package/dist/server/rpc/handlers/embed.js +1 -1
  424. package/dist/server/rpc/handlers/finetune.d.ts +1 -1
  425. package/dist/server/rpc/handlers/finetune.js +2 -2
  426. package/dist/server/rpc/handlers/get-loaded-model-info.d.ts +1 -1
  427. package/dist/server/rpc/handlers/get-loaded-model-info.js +3 -3
  428. package/dist/server/rpc/handlers/get-model-info.d.ts +1 -1
  429. package/dist/server/rpc/handlers/get-model-info.js +4 -4
  430. package/dist/server/rpc/handlers/get-system-resources.d.ts +3 -0
  431. package/dist/server/rpc/handlers/get-system-resources.js +53 -0
  432. package/dist/server/rpc/handlers/heartbeat-delegated.d.ts +2 -2
  433. package/dist/server/rpc/handlers/heartbeat-delegated.js +2 -2
  434. package/dist/server/rpc/handlers/heartbeat.d.ts +1 -1
  435. package/dist/server/rpc/handlers/index.d.ts +37 -33
  436. package/dist/server/rpc/handlers/index.js +4 -0
  437. package/dist/server/rpc/handlers/load-model/download-manager.d.ts +3 -3
  438. package/dist/server/rpc/handlers/load-model/download-manager.js +1 -1
  439. package/dist/server/rpc/handlers/load-model/download-stats.d.ts +3 -3
  440. package/dist/server/rpc/handlers/load-model/handler.d.ts +1 -1
  441. package/dist/server/rpc/handlers/load-model/handler.js +12 -8
  442. package/dist/server/rpc/handlers/load-model/http.d.ts +2 -2
  443. package/dist/server/rpc/handlers/load-model/http.js +4 -4
  444. package/dist/server/rpc/handlers/load-model/hyperdrive.d.ts +2 -2
  445. package/dist/server/rpc/handlers/load-model/hyperdrive.js +5 -5
  446. package/dist/server/rpc/handlers/load-model/index.d.ts +2 -2
  447. package/dist/server/rpc/handlers/load-model/registry-client-options.d.ts +1 -1
  448. package/dist/server/rpc/handlers/load-model/registry-companion-set.d.ts +3 -3
  449. package/dist/server/rpc/handlers/load-model/registry-companion-set.js +3 -3
  450. package/dist/server/rpc/handlers/load-model/registry-download-utils.d.ts +4 -4
  451. package/dist/server/rpc/handlers/load-model/registry-download-utils.js +3 -3
  452. package/dist/server/rpc/handlers/load-model/registry-metadata.d.ts +1 -1
  453. package/dist/server/rpc/handlers/load-model/registry.d.ts +3 -3
  454. package/dist/server/rpc/handlers/load-model/registry.js +6 -6
  455. package/dist/server/rpc/handlers/load-model/resolve-session.d.ts +2 -2
  456. package/dist/server/rpc/handlers/load-model/resolve-session.js +3 -3
  457. package/dist/server/rpc/handlers/load-model/resolve.d.ts +2 -2
  458. package/dist/server/rpc/handlers/load-model/resolve.js +2 -2
  459. package/dist/server/rpc/handlers/load-model/types.d.ts +2 -2
  460. package/dist/server/rpc/handlers/load-model-delegated.d.ts +2 -2
  461. package/dist/server/rpc/handlers/load-model-delegated.js +3 -3
  462. package/dist/server/rpc/handlers/logging-stream.d.ts +1 -1
  463. package/dist/server/rpc/handlers/logging-stream.js +1 -1
  464. package/dist/server/rpc/handlers/ocr-stream.d.ts +1 -1
  465. package/dist/server/rpc/handlers/ocr-stream.js +1 -1
  466. package/dist/server/rpc/handlers/plugin-dispatch.js +3 -3
  467. package/dist/server/rpc/handlers/plugin-invoke.d.ts +1 -1
  468. package/dist/server/rpc/handlers/plugin-invoke.js +3 -3
  469. package/dist/server/rpc/handlers/provideHandler/connection.js +1 -1
  470. package/dist/server/rpc/handlers/provideHandler/handler.d.ts +1 -1
  471. package/dist/server/rpc/handlers/provideHandler/handler.js +1 -1
  472. package/dist/server/rpc/handlers/provideHandler/proxy.js +1 -1
  473. package/dist/server/rpc/handlers/provideHandler.d.ts +1 -1
  474. package/dist/server/rpc/handlers/rag.d.ts +1 -1
  475. package/dist/server/rpc/handlers/rag.js +4 -4
  476. package/dist/server/rpc/handlers/registry.d.ts +1 -1
  477. package/dist/server/rpc/handlers/registry.js +1 -1
  478. package/dist/server/rpc/handlers/resume.d.ts +1 -1
  479. package/dist/server/rpc/handlers/resume.js +1 -1
  480. package/dist/server/rpc/handlers/state.d.ts +1 -1
  481. package/dist/server/rpc/handlers/state.js +1 -1
  482. package/dist/server/rpc/handlers/stopProvideHandler.d.ts +1 -1
  483. package/dist/server/rpc/handlers/stopProvideHandler.js +1 -1
  484. package/dist/server/rpc/handlers/suspend.d.ts +1 -1
  485. package/dist/server/rpc/handlers/suspend.js +1 -1
  486. package/dist/server/rpc/handlers/text-to-speech-stream.d.ts +1 -1
  487. package/dist/server/rpc/handlers/text-to-speech-stream.js +1 -1
  488. package/dist/server/rpc/handlers/text-to-speech.d.ts +1 -1
  489. package/dist/server/rpc/handlers/text-to-speech.js +1 -1
  490. package/dist/server/rpc/handlers/transcribe-stream.d.ts +1 -1
  491. package/dist/server/rpc/handlers/transcribe-stream.js +1 -1
  492. package/dist/server/rpc/handlers/transcribe.d.ts +1 -1
  493. package/dist/server/rpc/handlers/transcribe.js +1 -1
  494. package/dist/server/rpc/handlers/translate.d.ts +1 -1
  495. package/dist/server/rpc/handlers/translate.js +1 -1
  496. package/dist/server/rpc/handlers/unload-model-delegated.d.ts +1 -1
  497. package/dist/server/rpc/handlers/unload-model-delegated.js +5 -5
  498. package/dist/server/rpc/handlers/unload-model.d.ts +1 -1
  499. package/dist/server/rpc/handlers/unload-model.js +3 -3
  500. package/dist/server/rpc/handlers/upscale-stream.d.ts +1 -1
  501. package/dist/server/rpc/handlers/upscale-stream.js +1 -1
  502. package/dist/server/rpc/handlers/video-stream.d.ts +1 -1
  503. package/dist/server/rpc/handlers/video-stream.js +1 -1
  504. package/dist/server/rpc/index.d.ts +2 -2
  505. package/dist/server/rpc/method-shapes.d.ts +2 -0
  506. package/dist/server/rpc/method-shapes.js +2 -0
  507. package/dist/server/rpc/profiling/backend-diagnostics.d.ts +3 -0
  508. package/dist/server/rpc/profiling/backend-diagnostics.js +16 -0
  509. package/dist/server/rpc/profiling/context.d.ts +1 -1
  510. package/dist/server/rpc/profiling/delegation-profiler.d.ts +2 -2
  511. package/dist/server/rpc/profiling/index.d.ts +4 -4
  512. package/dist/server/rpc/profiling/operation-metrics.d.ts +2 -2
  513. package/dist/server/rpc/profiling/operation-metrics.js +9 -1
  514. package/dist/server/rpc/profiling/operation-wrappers.d.ts +1 -1
  515. package/dist/server/rpc/profiling/operation-wrappers.js +51 -13
  516. package/dist/server/rpc/profiling/profiler.d.ts +2 -2
  517. package/dist/server/rpc/transport-selector.d.ts +1 -1
  518. package/dist/server/utils/archive.js +1 -1
  519. package/dist/server/utils/audio/decoder.d.ts +1 -1
  520. package/dist/server/utils/audio/decoder.js +1 -1
  521. package/dist/server/utils/cache/auto-history.d.ts +1 -1
  522. package/dist/server/utils/cache/paths.d.ts +1 -1
  523. package/dist/server/utils/cache/paths.js +6 -6
  524. package/dist/server/utils/checksum.d.ts +1 -1
  525. package/dist/server/utils/completion-normalizer.d.ts +2 -1
  526. package/dist/server/utils/completion-normalizer.js +31 -1
  527. package/dist/server/utils/config-transform.d.ts +1 -1
  528. package/dist/server/utils/config-transform.js +5 -7
  529. package/dist/server/utils/index.d.ts +11 -11
  530. package/dist/server/utils/path-security.d.ts +1 -1
  531. package/dist/server/utils/qvac-paths.js +1 -1
  532. package/dist/server/utils/response-format.d.ts +1 -1
  533. package/dist/server/utils/shard-utils.d.ts +1 -1
  534. package/dist/server/utils/tool-integration.d.ts +1 -1
  535. package/dist/server/utils/tool-integration.js +2 -2
  536. package/dist/server/utils/tools/dialect.d.ts +1 -1
  537. package/dist/server/utils/tools/dialect.js +2 -0
  538. package/dist/server/utils/tools/index.d.ts +2 -2
  539. package/dist/server/utils/tools/parser.d.ts +1 -1
  540. package/dist/server/utils/tools/parser.js +16 -8
  541. package/dist/server/utils/tools/parsers/dsml.d.ts +4 -0
  542. package/dist/server/utils/tools/parsers/dsml.js +176 -0
  543. package/dist/server/utils/tools/parsers/gemma4native.d.ts +2 -2
  544. package/dist/server/utils/tools/parsers/gemma4native.js +1 -1
  545. package/dist/server/utils/tools/parsers/harmony.d.ts +2 -2
  546. package/dist/server/utils/tools/parsers/harmony.js +1 -1
  547. package/dist/server/utils/tools/parsers/hermes.d.ts +2 -2
  548. package/dist/server/utils/tools/parsers/hermes.js +1 -1
  549. package/dist/server/utils/tools/parsers/json.d.ts +2 -2
  550. package/dist/server/utils/tools/parsers/json.js +1 -1
  551. package/dist/server/utils/tools/parsers/pythonic.d.ts +2 -2
  552. package/dist/server/utils/tools/parsers/pythonic.js +1 -1
  553. package/dist/server/utils/tools/parsers/qwen35.d.ts +2 -2
  554. package/dist/server/utils/tools/parsers/qwen35.js +1 -1
  555. package/dist/server/utils/tools/shared.d.ts +1 -1
  556. package/dist/server/utils/worker-lock.js +1 -1
  557. package/dist/server/worker-core.js +14 -10
  558. package/dist/server/worker.js +4 -3
  559. package/dist/utils/aggregate-events.d.ts +2 -2
  560. package/dist/utils/aggregate-events.js +2 -2
  561. package/dist/utils/errors-client.d.ts +0 -3
  562. package/dist/utils/errors-client.js +0 -5
  563. package/dist/utils/errors-server.d.ts +1 -1
  564. package/dist/utils/mcp-adapter.d.ts +4 -4
  565. package/dist/utils/mcp-adapter.js +1 -1
  566. package/dist/utils/tool-helpers.d.ts +1 -1
  567. package/dist/utils/tool-helpers.js +1 -1
  568. package/docs/system-resources-support-matrix.md +103 -0
  569. package/package.json +33 -18
  570. /package/dist/examples/{transcription → asr}/parakeet-ctc-filesystem.d.ts +0 -0
  571. /package/dist/examples/{transcription → asr}/parakeet-microphone-record.d.ts +0 -0
  572. /package/dist/examples/{transcription → asr}/parakeet-microphone-stream.d.ts +0 -0
  573. /package/dist/examples/{transcription → asr}/parakeet-sortformer-streaming.d.ts +0 -0
  574. /package/dist/examples/{transcription → asr}/parakeet-sortformer.d.ts +0 -0
  575. /package/dist/examples/{transcription → asr}/parakeet-tdt-filesystem-chunked.d.ts +0 -0
  576. /package/dist/examples/{transcription → asr}/parakeet-tdt-filesystem.d.ts +0 -0
  577. /package/dist/examples/{transcription → asr}/whispercpp-filesystem-streaming.d.ts +0 -0
  578. /package/dist/examples/{transcription → asr}/whispercpp-filesystem.d.ts +0 -0
  579. /package/dist/examples/{transcription → asr}/whispercpp-microphone-conversation.d.ts +0 -0
  580. /package/dist/examples/{transcription → asr}/whispercpp-microphone-record.d.ts +0 -0
  581. /package/dist/examples/{transcription → asr}/whispercpp-prompt.d.ts +0 -0
@@ -2,7 +2,7 @@
2
2
  * Test script: pipes a WAV file through transcribeStream to verify
3
3
  * the bidirectional streaming + addon processing works end-to-end.
4
4
  *
5
- * Usage: bun run examples/transcription/whispercpp-filesystem-streaming.ts
5
+ * Usage: bun run examples/asr/whispercpp-filesystem-streaming.ts
6
6
  *
7
7
  * Uses FFmpeg to convert the WAV to raw f32le and streams chunks
8
8
  * through the duplex RPC session to the whisper addon.
@@ -2,7 +2,7 @@ import { loadModel, unloadModel, transcribe, WHISPER_TINY } from '@qvac/sdk';
2
2
  // Parse command line arguments
3
3
  const args = process.argv.slice(2);
4
4
  if (!args[0]) {
5
- console.error('Usage: bun run examples/whispercpp-filesystem.ts <wav-file-path>');
5
+ console.error('Usage: bun run examples/asr/whispercpp-filesystem.ts <wav-file-path>');
6
6
  process.exit(1);
7
7
  }
8
8
  const audioFilePath = args[0];
@@ -18,7 +18,7 @@
18
18
  */
19
19
  import { loadModel, unloadModel, transcribeStream, WHISPER_TINY, VAD_SILERO_5_1_2 } from '@qvac/sdk';
20
20
  import { spawnSync } from 'child_process';
21
- import { startMicrophone } from '../audio/mic-input';
21
+ import { startMicrophone } from '../audio/mic-input.js';
22
22
  const SAMPLE_RATE = 16000;
23
23
  try {
24
24
  const r = spawnSync('ffmpeg', ['-version'], { stdio: 'ignore' });
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Microphone → Whisper streaming transcription with native VAD.
3
3
  *
4
- * Usage: bun run examples/transcription/whispercpp-microphone-record.ts
4
+ * Usage: bun run examples/asr/whispercpp-microphone-record.ts
5
5
  *
6
6
  * Speak into your mic; transcriptions appear automatically when you pause.
7
7
  * Press Ctrl+C to quit.
@@ -10,7 +10,7 @@
10
10
  */
11
11
  import { loadModel, unloadModel, transcribeStream, WHISPER_TINY, VAD_SILERO_5_1_2 } from '@qvac/sdk';
12
12
  import { spawnSync } from 'child_process';
13
- import { startMicrophone } from '../audio/mic-input';
13
+ import { startMicrophone } from '../audio/mic-input.js';
14
14
  const SAMPLE_RATE = 16000;
15
15
  // ── Main ──
16
16
  try {
@@ -2,7 +2,7 @@
2
2
  * Whisper transcription with prompt example.
3
3
  *
4
4
  * Usage:
5
- * bun examples/transcription/whispercpp-prompt.ts
5
+ * bun examples/asr/whispercpp-prompt.ts
6
6
  *
7
7
  * This example requires a test audio file (default: examples/audio/sample-16khz.wav).
8
8
  * Sample audio files are available in the QVAC source repository, but not included in the published npm package.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=generate-music.d.ts.map
@@ -0,0 +1,112 @@
1
+ import { writeFileSync } from 'node:fs';
2
+ import { AUDIOGEN_ACESTEP_5HZ_LM_0_6B_Q8_0, AUDIOGEN_ACESTEP_V15_TURBO_Q4_K_M, AUDIOGEN_QWEN3_EMBEDDING_0_6B_Q8_0, AUDIOGEN_VAE_BF16, audioGen, loadModel, unloadModel } from '@qvac/sdk';
3
+ // Usage:
4
+ // bun examples/audiogen/generate-music.ts "lo-fi hip hop, mellow piano" output.wav
5
+ const caption = process.argv[2] ?? 'Lo-fi hip hop with mellow piano, soft drums, and a warm bass line';
6
+ const outputPath = process.argv[3] ?? 'audiogen-output.wav';
7
+ let modelId;
8
+ const lastLoggedPercentageByDownload = new Map();
9
+ const completedDownloads = new Set();
10
+ try {
11
+ console.log('▸ Loading ACE-Step AudioGen models...');
12
+ modelId = await loadModel({
13
+ modelType: 'audiogen',
14
+ modelConfig: {
15
+ textEncModelSrc: AUDIOGEN_QWEN3_EMBEDDING_0_6B_Q8_0,
16
+ lmModelSrc: AUDIOGEN_ACESTEP_5HZ_LM_0_6B_Q8_0,
17
+ ditModelSrc: AUDIOGEN_ACESTEP_V15_TURBO_Q4_K_M,
18
+ vaeModelSrc: AUDIOGEN_VAE_BF16,
19
+ useGPU: true,
20
+ inferenceSteps: 8
21
+ },
22
+ onProgress: (progress) => {
23
+ const mb = (bytes) => (bytes / 1e6).toFixed(1);
24
+ const label = getDownloadLabel(progress.downloadKey);
25
+ const line = `▸ Downloading ${label}: ${progress.percentage.toFixed(0)}% ` +
26
+ `(${mb(progress.downloaded)}/${mb(progress.total)} MB)`;
27
+ if (process.stderr.isTTY) {
28
+ process.stderr.write(`\r${line}`);
29
+ if (progress.percentage >= 100 && !completedDownloads.has(progress.downloadKey)) {
30
+ completedDownloads.add(progress.downloadKey);
31
+ process.stderr.write('\n');
32
+ }
33
+ return;
34
+ }
35
+ const percentageBucket = Math.floor(progress.percentage / 5) * 5;
36
+ const lastLogged = lastLoggedPercentageByDownload.get(progress.downloadKey);
37
+ const isNewCompletion = progress.percentage >= 100 && lastLogged !== 100;
38
+ if (lastLogged === undefined || percentageBucket > lastLogged || isNewCompletion) {
39
+ lastLoggedPercentageByDownload.set(progress.downloadKey, percentageBucket);
40
+ process.stderr.write(`${line}\n`);
41
+ }
42
+ }
43
+ });
44
+ console.log(`▸ Model loaded: ${modelId}`);
45
+ console.log(`▸ Generating: ${caption}`);
46
+ const run = audioGen({
47
+ modelId,
48
+ caption,
49
+ lyrics: '[Instrumental]',
50
+ seed: 42,
51
+ duration: 10
52
+ });
53
+ console.log(`▸ requestId: ${run.requestId}`);
54
+ for await (const progress of run.progressStream) {
55
+ console.log(`▸ ${progress.stage}: ${progress.step}/${progress.total}`);
56
+ }
57
+ const [audio, stats] = await Promise.all([run.audio, run.stats]);
58
+ const wav = createWav(audio.pcm, audio.sampleRate, audio.channels, audio.bitsPerSample);
59
+ writeFileSync(outputPath, wav);
60
+ const samplesPerChannel = audio.pcm.byteLength / (audio.bitsPerSample / 8) / audio.channels;
61
+ console.log(`▸ Generated ${samplesPerChannel} samples per channel at ` +
62
+ `${audio.sampleRate} Hz (${audio.channels} channels)`);
63
+ if (stats)
64
+ console.log(`▸ Stats: ${JSON.stringify(stats)}`);
65
+ console.log(`▸ Saved ${outputPath}`);
66
+ await unloadModel({ modelId });
67
+ modelId = undefined;
68
+ console.log('▸ Model unloaded');
69
+ process.exit(0);
70
+ }
71
+ catch (error) {
72
+ if (modelId !== undefined) {
73
+ try {
74
+ await unloadModel({ modelId });
75
+ }
76
+ catch {
77
+ // Preserve the generation error as the primary failure.
78
+ }
79
+ }
80
+ console.error('✖', error);
81
+ process.exit(1);
82
+ }
83
+ function getDownloadLabel(downloadKey) {
84
+ return downloadKey.split('/').pop() ?? downloadKey;
85
+ }
86
+ function createWav(pcm, sampleRate, channels, bitsPerSample) {
87
+ const header = new ArrayBuffer(44);
88
+ const view = new DataView(header);
89
+ const blockAlign = channels * (bitsPerSample / 8);
90
+ writeAscii(view, 0, 'RIFF');
91
+ view.setUint32(4, 36 + pcm.byteLength, true);
92
+ writeAscii(view, 8, 'WAVE');
93
+ writeAscii(view, 12, 'fmt ');
94
+ view.setUint32(16, 16, true);
95
+ view.setUint16(20, 1, true);
96
+ view.setUint16(22, channels, true);
97
+ view.setUint32(24, sampleRate, true);
98
+ view.setUint32(28, sampleRate * blockAlign, true);
99
+ view.setUint16(32, blockAlign, true);
100
+ view.setUint16(34, bitsPerSample, true);
101
+ writeAscii(view, 36, 'data');
102
+ view.setUint32(40, pcm.byteLength, true);
103
+ const wav = new Uint8Array(44 + pcm.byteLength);
104
+ wav.set(new Uint8Array(header));
105
+ wav.set(pcm, 44);
106
+ return wav;
107
+ }
108
+ function writeAscii(view, offset, value) {
109
+ for (let index = 0; index < value.length; index++) {
110
+ view.setUint8(offset + index, value.charCodeAt(index));
111
+ }
112
+ }
@@ -1,5 +1,5 @@
1
1
  import { WHISPER_TINY } from '../models/registry/index.js';
2
- import { downloadAsset, getModelInfo, loadModel, unloadModel } from '..';
2
+ import { downloadAsset, getModelInfo, loadModel, unloadModel } from '../index.js';
3
3
  const printModelStatus = (info, label) => {
4
4
  console.log(`\n▸ ${label}`);
5
5
  console.log(`▸ Model Name: ${info.name}`);
@@ -1,4 +1,4 @@
1
- import { WHISPER_TINY, loadModel, transcribe, unloadModel } from '../index';
1
+ import { WHISPER_TINY, loadModel, transcribe, unloadModel } from '../index.js';
2
2
  // Parse command line arguments
3
3
  const args = process.argv.slice(2);
4
4
  if (!args[0]) {
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=diffusion-txt2vid-wan22.d.ts.map
@@ -0,0 +1,96 @@
1
+ import { loadModel, unloadModel, video, WAN2_2_TI2V_5B_Q5_K_S, UMT5_XXL_FP16, WAN_2_2_COMFYUI_REPACKAGED_VAE } from '@qvac/sdk';
2
+ import fs from 'fs';
3
+ import path from 'path';
4
+ // Text-to-video with Wan 2.2 TI2V-5B Turbo (Q5_K_S). Like Wan 2.1 this is a
5
+ // split layout — diffusion model + UMT5-XXL text encoder + VAE — but it needs
6
+ // the Wan 2.2 VAE specifically: its 16x spatial compression is what gives
7
+ // TI2V its 32-pixel grid, and the Wan 2.1 VAE is not interchangeable.
8
+ //
9
+ // TI2V-5B is a single-expert model. The high_noise_* / moe_boundary fields
10
+ // belong to the two-expert Wan 2.2 A14B layout and are rejected here.
11
+ //
12
+ // Budget at least 16 GB of video memory or 20 GB of unified memory. The
13
+ // artifacts total roughly 16.4 GB, dominated by the fp16 text encoder.
14
+ //
15
+ // The text encoder is byte-identical to the Wan 2.1 repackage, so both
16
+ // generations share the one UMT5_XXL_FP16 registry entry.
17
+ const diffusionModelSrc = process.argv[2] || WAN2_2_TI2V_5B_Q5_K_S;
18
+ const t5XxlModelSrc = process.argv[3] || UMT5_XXL_FP16;
19
+ const vaeModelSrc = process.argv[4] || WAN_2_2_COMFYUI_REPACKAGED_VAE;
20
+ // Prompt tip: Turbo responds well to explicit camera and lighting direction.
21
+ // Describe continuous motion rather than a pose, or the clip reads as a still.
22
+ const prompt = process.argv[5] ||
23
+ 'A single white porcelain espresso cup on a dark walnut table beside a sunlit window, ' +
24
+ 'delicate steam curling upward, slow circular camera move, warm morning light, ' +
25
+ 'sharp ceramic texture, realistic continuous motion';
26
+ const outputDir = process.argv[6] || '.';
27
+ try {
28
+ console.log('▸ Loading Wan 2.2 TI2V-5B Turbo model (diffusion + UMT5-XXL + Wan 2.2 VAE)...');
29
+ const modelId = await loadModel({
30
+ modelSrc: diffusionModelSrc,
31
+ modelType: 'sdcpp-generation',
32
+ modelConfig: {
33
+ mode: 'video',
34
+ device: 'gpu',
35
+ threads: 4,
36
+ t5XxlModelSrc,
37
+ vaeModelSrc,
38
+ diffusion_fa: true,
39
+ offload_to_cpu: true,
40
+ vae_tiling: true
41
+ },
42
+ onProgress: (p) => {
43
+ const mb = (n) => (n / 1e6).toFixed(1);
44
+ const line = `▸ Downloading ${p.percentage.toFixed(0)}% (${mb(p.downloaded)}/${mb(p.total)} MB)`;
45
+ process.stderr.write(process.stderr.isTTY ? `\r${line}` : `${line}\n`);
46
+ if (p.percentage >= 100)
47
+ process.stderr.write('\n');
48
+ }
49
+ });
50
+ console.log(`▸ Model loaded: ${modelId}`);
51
+ console.log(`\n▸ Generating video for: "${prompt}"`);
52
+ const { progressStream, outputs, stats } = video({
53
+ modelId,
54
+ mode: 'txt2vid',
55
+ prompt,
56
+ negative_prompt: 'flickering, temporal jitter, morphing, duplicated subject, warped geometry, ' +
57
+ 'distorted anatomy, blurry details, low resolution, text, watermark, logo',
58
+ // TI2V-5B requires width and height to be multiples of 32 — stricter than
59
+ // the multiple of 16 the schema enforces for Wan generally. Native
60
+ // validation derives this from the loaded GGUF, so a non-conforming size
61
+ // fails at generation time rather than at load.
62
+ // Turbo was trained on this 720p, 24 fps, five-second shape; 640x352 with
63
+ // 49 frames is a much cheaper way to smoke-test the pipeline.
64
+ width: 1280,
65
+ height: 704,
66
+ // Frame count must satisfy (4*k + 1), k >= 1. At 24 fps: 49 ≈ 2s,
67
+ // 121 ≈ 5s (the trained length).
68
+ video_frames: 121,
69
+ fps: 24,
70
+ // Turbo is distilled for very short schedules: 4 steps with guidance
71
+ // effectively disabled. The non-distilled TI2V-5B wants steps >= 30 and
72
+ // cfg ~5.0 instead.
73
+ steps: 4,
74
+ cfg_scale: 1.0,
75
+ flow_shift: 5.0,
76
+ seed: 42,
77
+ vae_tiling: true
78
+ });
79
+ for await (const { step, totalSteps } of progressStream) {
80
+ console.log(`▸ step ${step}/${totalSteps}`);
81
+ }
82
+ const buffers = await outputs;
83
+ for (let i = 0; i < buffers.length; i++) {
84
+ const outputPath = path.join(outputDir, `wan22_ti2v_t2v_${i}.avi`);
85
+ fs.writeFileSync(outputPath, buffers[i]);
86
+ console.log(`▸ Saved ${outputPath}`);
87
+ }
88
+ console.log('\n▸ Stats:', await stats);
89
+ await unloadModel({ modelId, clearStorage: false });
90
+ console.log('▸ Done.');
91
+ process.exit(0);
92
+ }
93
+ catch (error) {
94
+ console.error('✖', error);
95
+ process.exit(1);
96
+ }
@@ -3,7 +3,7 @@
3
3
  // then register the plugins this example uses via `plugins([...])`.
4
4
  import bareProcess from 'bare-process';
5
5
  import { plugins, LLAMA_3_2_1B_INST_Q4_0 } from '@qvac/sdk';
6
- import { llmPlugin } from '@qvac/sdk/llamacpp-completion/plugin.js';
6
+ import { llmPlugin } from '@qvac/sdk/llamacpp-completion/plugin';
7
7
  globalThis.process = bareProcess;
8
8
  const { loadModel, completion, unloadModel } = plugins([llmPlugin]);
9
9
  // From here it is the same as the Node quickstart.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=rag-mongodb.d.ts.map
@@ -0,0 +1,180 @@
1
+ import { embed, loadModel, unloadModel, GTE_LARGE_FP16 } from '@qvac/sdk';
2
+ import { MongoClient } from 'mongodb';
3
+ const INDEX_NAME = 'documents_vector_index';
4
+ const MONGODB_SETUP_INSTRUCTIONS = `
5
+ ▸ This example needs a MongoDB deployment with Atlas Vector Search.
6
+
7
+ One way to get one is to run it in Docker:
8
+
9
+ docker run -p 27017:27017 --name atlas-local mongodb/mongodb-atlas-local
10
+
11
+ For more details, visit: https://www.mongodb.com/docs/atlas/cli/current/atlas-cli-deploy-docker/
12
+ `;
13
+ async function initializeMongoClient() {
14
+ // Replace with your own deployment's connection string if it is not the Docker one
15
+ // https://www.mongodb.com/docs/manual/reference/connection-string/
16
+ const client = new MongoClient('mongodb://localhost:27017/?directConnection=true');
17
+ try {
18
+ await client.connect();
19
+ await client.db('admin').command({ ping: 1 });
20
+ console.log('▸ Connected to MongoDB server');
21
+ return client;
22
+ }
23
+ catch {
24
+ console.error('✖ Failed to connect to MongoDB server');
25
+ console.error('▸ Please ensure the server is running on localhost:27017');
26
+ console.error(MONGODB_SETUP_INSTRUCTIONS);
27
+ process.exit(1);
28
+ }
29
+ }
30
+ function wait(ms) {
31
+ return new Promise((resolve) => setTimeout(resolve, ms));
32
+ }
33
+ try {
34
+ // Get query and category from command line or use defaults
35
+ const query = process.argv[2] || 'machine learning algorithms';
36
+ const category = process.argv[3] || 'ai';
37
+ console.log(`▸ Query: "${query}" (category: "${category}")`);
38
+ const client = await initializeMongoClient();
39
+ const collection = client.db('qvac').collection('documents');
40
+ const modelId = await loadModel({
41
+ modelSrc: GTE_LARGE_FP16,
42
+ onProgress: (p) => {
43
+ const mb = (n) => (n / 1e6).toFixed(1);
44
+ const line = `▸ Downloading ${p.percentage.toFixed(0)}% (${mb(p.downloaded)}/${mb(p.total)} MB)`;
45
+ process.stderr.write(process.stderr.isTTY ? `\r${line}` : `${line}\n`);
46
+ if (p.percentage >= 100)
47
+ process.stderr.write('\n');
48
+ }
49
+ });
50
+ // Sample corpus, each document tagged with a category to filter on
51
+ const samples = [
52
+ {
53
+ id: 1,
54
+ category: 'ai',
55
+ text: 'Machine learning is a subset of artificial intelligence that focuses on algorithms that can learn and make predictions from data without being explicitly programmed for every task.'
56
+ },
57
+ {
58
+ id: 2,
59
+ category: 'ai',
60
+ text: 'Deep learning uses neural networks with multiple layers to process and learn from complex data patterns, enabling breakthroughs in image recognition and natural language processing.'
61
+ },
62
+ {
63
+ id: 3,
64
+ category: 'ai',
65
+ text: 'Natural language processing combines computational linguistics with machine learning to help computers understand, interpret, and generate human language in a meaningful way.'
66
+ },
67
+ {
68
+ id: 4,
69
+ category: 'ai',
70
+ text: 'Computer vision enables machines to interpret and understand visual information from the world, using techniques like image classification, object detection, and facial recognition.'
71
+ },
72
+ {
73
+ id: 5,
74
+ category: 'computing',
75
+ text: 'Quantum computing leverages quantum mechanical phenomena to process information in fundamentally different ways than classical computers, potentially solving certain problems exponentially faster.'
76
+ },
77
+ {
78
+ id: 6,
79
+ category: 'security',
80
+ text: 'Blockchain technology creates decentralized, immutable ledgers that enable secure peer-to-peer transactions without requiring a central authority or intermediary.'
81
+ },
82
+ {
83
+ id: 7,
84
+ category: 'computing',
85
+ text: 'Cloud computing delivers computing services over the internet, allowing users to access resources like storage, processing power, and applications on-demand from anywhere.'
86
+ },
87
+ {
88
+ id: 8,
89
+ category: 'security',
90
+ text: 'Cybersecurity protects digital systems, networks, and data from malicious attacks, unauthorized access, and various forms of cyber threats through multiple layers of defense.'
91
+ }
92
+ ];
93
+ // (Re)create the collection
94
+ try {
95
+ await collection.drop();
96
+ }
97
+ catch (e) {
98
+ console.warn(`▸ Collection didn't exist, no need to drop: ${String(e)}`);
99
+ }
100
+ // Embed and store documents
101
+ console.log('▸ Embedding documents...');
102
+ const documents = [];
103
+ for (const sample of samples) {
104
+ const { embedding } = await embed({ modelId, text: sample.text });
105
+ documents.push({
106
+ id: sample.id,
107
+ category: sample.category,
108
+ text: sample.text,
109
+ embedding
110
+ });
111
+ }
112
+ await collection.insertMany(documents);
113
+ // numDimensions is fixed at index creation and must match the model: GTE Large is 1024
114
+ console.log('▸ Creating vector search index...');
115
+ await collection.createSearchIndex({
116
+ name: INDEX_NAME,
117
+ type: 'vectorSearch',
118
+ definition: {
119
+ fields: [
120
+ {
121
+ type: 'vector',
122
+ path: 'embedding',
123
+ numDimensions: 1024,
124
+ similarity: 'cosine'
125
+ },
126
+ // A field must be indexed as a filter to be usable in a $vectorSearch filter
127
+ {
128
+ type: 'filter',
129
+ path: 'category'
130
+ }
131
+ ]
132
+ }
133
+ });
134
+ // Index builds are asynchronous; querying too early returns no matches
135
+ for (let attempt = 0; attempt < 60; attempt++) {
136
+ const [index] = (await collection.listSearchIndexes(INDEX_NAME).toArray());
137
+ if (index?.queryable)
138
+ break;
139
+ if (attempt === 59)
140
+ throw new Error(`Index ${INDEX_NAME} did not become queryable`);
141
+ await wait(1000);
142
+ }
143
+ console.log('▸ Searching for similar documents...');
144
+ const { embedding: queryEmbedding } = await embed({ modelId, text: query });
145
+ const results = await collection
146
+ .aggregate([
147
+ {
148
+ $vectorSearch: {
149
+ index: INDEX_NAME,
150
+ path: 'embedding',
151
+ queryVector: queryEmbedding,
152
+ filter: { category: { $eq: category } },
153
+ numCandidates: 100,
154
+ limit: 3
155
+ }
156
+ },
157
+ {
158
+ $project: {
159
+ _id: 0,
160
+ id: 1,
161
+ category: 1,
162
+ text: 1,
163
+ score: { $meta: 'vectorSearchScore' }
164
+ }
165
+ }
166
+ ])
167
+ .toArray();
168
+ console.log('▸ Top 3 most similar documents:');
169
+ results.forEach((result, index) => {
170
+ console.log(`${index + 1}. (Score: ${result.score.toFixed(4)}, Category: ${result.category})`);
171
+ console.log(` ${result.text}`);
172
+ console.log();
173
+ });
174
+ await unloadModel({ modelId });
175
+ await client.close();
176
+ }
177
+ catch (error) {
178
+ console.error('✖', error);
179
+ process.exit(1);
180
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=llamacpp-tools-auto-dialect.d.ts.map
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Tool-calling example with automatic dialect detection.
3
+ *
4
+ * The SDK infers the tool-call format from the model name/path. It supports
5
+ * model families such as Qwen3.5/3.6, Gemma4, GPT-OSS, DeepSeek V3.2/V4, and
6
+ * LFM without requiring a toolDialect override.
7
+ *
8
+ * Usage:
9
+ * bun run bare:example dist/examples/tools/llamacpp-tools-auto-dialect.js <model-src>
10
+ */
11
+ import { completion, loadModel, unloadModel } from '@qvac/sdk';
12
+ import { tools, mockExecute } from './shared.js';
13
+ const modelSrc = process.argv[2];
14
+ if (!modelSrc) {
15
+ console.error('✖ Missing model source: pass a tool-capable GGUF path or URL');
16
+ process.exit(1);
17
+ }
18
+ let modelId;
19
+ try {
20
+ modelId = await loadModel({
21
+ modelSrc,
22
+ modelType: 'llamacpp-completion',
23
+ modelConfig: { ctx_size: 4096, tools: true },
24
+ onProgress: (p) => {
25
+ const mb = (n) => (n / 1e6).toFixed(1);
26
+ const line = `▸ Downloading ${p.percentage.toFixed(0)}% (${mb(p.downloaded)}/${mb(p.total)} MB)`;
27
+ process.stderr.write(process.stderr.isTTY ? `\r${line}` : `${line}\n`);
28
+ if (p.percentage >= 100)
29
+ process.stderr.write('\n');
30
+ }
31
+ });
32
+ console.log(`▸ Model loaded: ${modelId}`);
33
+ const history = [
34
+ {
35
+ role: 'system',
36
+ content: 'You are a helpful assistant that can call tools to look up weather and horoscopes.'
37
+ },
38
+ {
39
+ role: 'user',
40
+ content: "What's the weather in Tokyo and my horoscope for Aquarius?"
41
+ }
42
+ ];
43
+ const result = completion({ modelId, history, stream: true, tools });
44
+ const tokensTask = (async () => {
45
+ for await (const token of result.tokenStream) {
46
+ process.stdout.write(token);
47
+ }
48
+ })();
49
+ const toolsTask = (async () => {
50
+ for await (const evt of result.toolCallStream) {
51
+ if (evt.type === 'toolCall') {
52
+ console.log(`\n▸ ${evt.call.name}(${JSON.stringify(evt.call.arguments)})`);
53
+ }
54
+ }
55
+ })();
56
+ await Promise.all([tokensTask, toolsTask]);
57
+ const toolCalls = await result.toolCalls;
58
+ console.log('\n\n▸ Final tool calls:');
59
+ if (toolCalls.length > 0) {
60
+ for (const call of toolCalls) {
61
+ console.log(`▸ ${call.name}(${JSON.stringify(call.arguments)})`);
62
+ const toolResult = mockExecute(call.name, call.arguments);
63
+ console.log(`▸ result: ${toolResult}`);
64
+ }
65
+ }
66
+ else {
67
+ console.log('▸ (none)');
68
+ }
69
+ await unloadModel({ modelId, clearStorage: false });
70
+ process.exit(0);
71
+ }
72
+ catch (error) {
73
+ console.error('✖', error);
74
+ if (modelId)
75
+ await unloadModel({ modelId, clearStorage: false }).catch(() => { });
76
+ process.exit(1);
77
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=parler.d.ts.map
@@ -0,0 +1,51 @@
1
+ import { loadModel, textToSpeech, unloadModel, TTS_MINI_V1_EN_PARLER_TTS_Q8_0 } from '@qvac/sdk';
2
+ import { createWav, playAudio, int16ArrayToBuffer, createWavHeader } from './utils.js';
3
+ // Parler-TTS (GGML): description-conditioned speech with per-call voice controls.
4
+ // Uses the registry-hosted Mini v1 Q8_0 model and its native 44.1 kHz output.
5
+ const PARLER_SAMPLE_RATE = 44100;
6
+ try {
7
+ const modelId = await loadModel({
8
+ modelSrc: TTS_MINI_V1_EN_PARLER_TTS_Q8_0,
9
+ modelConfig: {
10
+ ttsEngine: 'parler',
11
+ voice: 'Laura',
12
+ seed: 42
13
+ },
14
+ onProgress: (p) => {
15
+ const mb = (n) => (n / 1e6).toFixed(1);
16
+ const line = `▸ Downloading ${p.percentage.toFixed(0)}% (${mb(p.downloaded)}/${mb(p.total)} MB)`;
17
+ process.stderr.write(process.stderr.isTTY ? `\r${line}` : `${line}\n`);
18
+ if (p.percentage >= 100)
19
+ process.stderr.write('\n');
20
+ }
21
+ });
22
+ console.log(`▸ Model loaded: ${modelId}`);
23
+ console.log('▸ Testing Parler Text-to-Speech...');
24
+ const result = textToSpeech({
25
+ modelId,
26
+ text: 'Hey, how are you doing today?',
27
+ inputType: 'text',
28
+ stream: false,
29
+ emotion: 'happy'
30
+ });
31
+ const audioBuffer = await result.buffer;
32
+ console.log(`▸ TTS complete. Total samples: ${audioBuffer.length}`);
33
+ console.log('▸ Saving audio to file...');
34
+ createWav(audioBuffer, PARLER_SAMPLE_RATE, 'parler-output.wav');
35
+ console.log('▸ Audio saved to parler-output.wav');
36
+ console.log('▸ Playing audio...');
37
+ const audioData = int16ArrayToBuffer(audioBuffer);
38
+ const wavBuffer = Buffer.concat([
39
+ createWavHeader(audioData.length, PARLER_SAMPLE_RATE),
40
+ audioData
41
+ ]);
42
+ playAudio(wavBuffer);
43
+ console.log('▸ Audio playback complete');
44
+ await unloadModel({ modelId });
45
+ console.log('▸ Model unloaded');
46
+ process.exit(0);
47
+ }
48
+ catch (error) {
49
+ console.error('✖', error);
50
+ process.exit(1);
51
+ }
@@ -8,8 +8,9 @@
8
8
  * `vlaHparams()`:
9
9
  * - `imageInputMode: 'patches'` — each `images` entry is a pre-patchified
10
10
  * buffer of `hparams.imagePatchElems` floats, NOT a `3·w·h` pixel plane.
11
- * A real consumer runs the model's own vision patch-embed over each camera
12
- * frame; here we feed synthetic patch buffers of the right length.
11
+ * A real consumer patchifies each camera frame the way `Gr00tPolicy` does
12
+ * (the model's learned patch-embed runs inside the addon); here we feed
13
+ * synthetic patch buffers of the right length.
13
14
  * - `stateInputMode: 'continuous'` — the robot state is projected by an
14
15
  * in-model linear layer; pad it to `hparams.maxStateDim` with `vlaPadState`.
15
16
  * - `noise` is REQUIRED. GR00T is a flow-matching model that does not sample
@@ -66,8 +67,9 @@ try {
66
67
  }
67
68
  const numCameras = hparams.numCameras ?? 2;
68
69
  // Patch-input model: each camera is a pre-patchified buffer of exactly
69
- // `imagePatchElems` floats. A real consumer fills these from the model's
70
- // vision patch-embed over the camera frame; we use small synthetic values.
70
+ // `imagePatchElems` floats. A real consumer patchifies each camera frame the
71
+ // way `Gr00tPolicy` does (the model's learned patch-embed runs inside the
72
+ // addon); we use small synthetic values.
71
73
  const images = Array.from({ length: numCameras }, () => new Float32Array(patchElems).fill(0.02));
72
74
  // Continuous-state model: pad the robot state to `maxStateDim`.
73
75
  const state = vlaPadState([0, 0, 0, 0, 0, 0], hparams.maxStateDim);
@@ -12,8 +12,8 @@
12
12
  */
13
13
  import { loadModel, unloadModel, transcribeStream, completion, textToSpeech, WHISPER_TINY, VAD_SILERO_5_1_2, LLAMA_3_2_1B_INST_Q4_0, TTS_EN_SUPERTONIC_Q8_0 } from '@qvac/sdk';
14
14
  import { spawnSync } from 'child_process';
15
- import { startMicrophone } from '../audio/mic-input';
16
- import { createWavHeader, int16ArrayToBuffer, playAudio } from '../tts/utils';
15
+ import { startMicrophone } from '../audio/mic-input.js';
16
+ import { createWavHeader, int16ArrayToBuffer, playAudio } from '../tts/utils.js';
17
17
  const MIC_SAMPLE_RATE = 16000;
18
18
  const TTS_SAMPLE_RATE = 44100;
19
19
  const SYSTEM_PROMPT = 'You are a concise, friendly voice assistant. Keep responses under two sentences. ' +