@qvac/sdk 0.9.1 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/NOTICE +15 -68
  2. package/dist/client/api/cancel.d.ts +1 -1
  3. package/dist/client/api/cancel.js +1 -1
  4. package/dist/client/api/completion-stream.d.ts +51 -12
  5. package/dist/client/api/completion-stream.js +129 -56
  6. package/dist/client/api/delete-cache.d.ts +1 -0
  7. package/dist/client/api/delete-cache.js +1 -0
  8. package/dist/client/api/diffusion.d.ts +17 -2
  9. package/dist/client/api/diffusion.js +21 -4
  10. package/dist/client/api/embed.d.ts +4 -0
  11. package/dist/client/api/finetune.d.ts +21 -0
  12. package/dist/client/api/get-loaded-model-info.d.ts +25 -0
  13. package/dist/client/api/get-loaded-model-info.js +36 -0
  14. package/dist/client/api/get-model-info.d.ts +9 -1
  15. package/dist/client/api/get-model-info.js +8 -0
  16. package/dist/client/api/heartbeat.d.ts +2 -2
  17. package/dist/client/api/heartbeat.js +2 -2
  18. package/dist/client/api/index.d.ts +3 -1
  19. package/dist/client/api/index.js +3 -1
  20. package/dist/client/api/invoke-plugin.d.ts +16 -0
  21. package/dist/client/api/invoke-plugin.js +16 -0
  22. package/dist/client/api/load-model.d.ts +36 -3
  23. package/dist/client/api/load-model.js +31 -10
  24. package/dist/client/api/provide.d.ts +11 -5
  25. package/dist/client/api/provide.js +11 -6
  26. package/dist/client/api/rag.d.ts +9 -0
  27. package/dist/client/api/rag.js +9 -0
  28. package/dist/client/api/registry.d.ts +26 -0
  29. package/dist/client/api/registry.js +26 -0
  30. package/dist/client/api/resume.d.ts +20 -4
  31. package/dist/client/api/resume.js +20 -4
  32. package/dist/client/api/state.d.ts +23 -0
  33. package/dist/client/api/state.js +29 -0
  34. package/dist/client/api/stop-provider.d.ts +11 -5
  35. package/dist/client/api/stop-provider.js +11 -5
  36. package/dist/client/api/suspend.d.ts +21 -3
  37. package/dist/client/api/suspend.js +21 -3
  38. package/dist/client/api/text-to-speech.d.ts +64 -6
  39. package/dist/client/api/text-to-speech.js +423 -47
  40. package/dist/client/api/transcribe.d.ts +29 -4
  41. package/dist/client/api/transcribe.js +86 -28
  42. package/dist/client/api/translate.d.ts +1 -0
  43. package/dist/client/api/translate.js +1 -0
  44. package/dist/client/rpc/bare-client.js +22 -1
  45. package/dist/client/rpc/expo-rpc-client.d.ts +1 -1
  46. package/dist/client/rpc/expo-rpc-client.js +96 -4
  47. package/dist/client/rpc/node-rpc-client.js +36 -0
  48. package/dist/examples/audio/mic-input.d.ts +9 -0
  49. package/dist/examples/audio/mic-input.js +111 -0
  50. package/dist/examples/completion-events.d.ts +18 -0
  51. package/dist/examples/completion-events.js +79 -0
  52. package/dist/examples/delegated-inference/composite.js +12 -18
  53. package/dist/examples/delegated-inference/consumer-profiled.js +4 -11
  54. package/dist/examples/delegated-inference/consumer.js +8 -13
  55. package/dist/examples/delegated-inference/provider.js +11 -16
  56. package/dist/examples/diffusion-flux2-klein-img2img.d.ts +2 -0
  57. package/dist/examples/diffusion-flux2-klein-img2img.js +60 -0
  58. package/dist/examples/diffusion-flux2-klein.js +1 -0
  59. package/dist/examples/diffusion-img2img.d.ts +2 -0
  60. package/dist/examples/diffusion-img2img.js +49 -0
  61. package/dist/examples/diffusion-txt2img.js +2 -1
  62. package/dist/examples/kv-cache-example.js +11 -12
  63. package/dist/examples/llamacpp-cache.d.ts +2 -0
  64. package/dist/examples/llamacpp-cache.js +107 -0
  65. package/dist/examples/llamacpp-dynamic-tools.d.ts +2 -0
  66. package/dist/examples/llamacpp-dynamic-tools.js +144 -0
  67. package/dist/examples/llamacpp-native-tools.js +2 -8
  68. package/dist/examples/llamacpp-structured-output.d.ts +2 -0
  69. package/dist/examples/llamacpp-structured-output.js +106 -0
  70. package/dist/examples/llamacpp-tools-pythonic.d.ts +2 -0
  71. package/dist/examples/llamacpp-tools-pythonic.js +69 -0
  72. package/dist/examples/plugins.js +4 -4
  73. package/dist/examples/suspend-resume.js +21 -4
  74. package/dist/examples/transcription/parakeet-microphone-record.js +6 -33
  75. package/dist/examples/transcription/whispercpp-filesystem-streaming.js +7 -5
  76. package/dist/examples/transcription/whispercpp-filesystem.js +12 -3
  77. package/dist/examples/transcription/whispercpp-microphone-record.js +6 -29
  78. package/dist/examples/translation/translation-stream.js +5 -5
  79. package/dist/examples/tts/llm-to-tts-streaming.d.ts +16 -0
  80. package/dist/examples/tts/llm-to-tts-streaming.js +143 -0
  81. package/dist/examples/tts/supertonic-multilingual.js +3 -3
  82. package/dist/examples/tts/supertonic.js +3 -3
  83. package/dist/examples/tts/utils.d.ts +11 -1
  84. package/dist/examples/tts/utils.js +70 -17
  85. package/dist/examples/voice-assistant/voice-assistant.d.ts +2 -0
  86. package/dist/examples/voice-assistant/voice-assistant.js +207 -0
  87. package/dist/expo/plugins/withMobileBundle.js +1 -1
  88. package/dist/index.d.ts +2 -2
  89. package/dist/index.js +2 -2
  90. package/dist/logging/logger.d.ts +11 -0
  91. package/dist/logging/logger.js +11 -0
  92. package/dist/logging/types.d.ts +18 -0
  93. package/dist/models/registry/models.d.ts +6620 -6185
  94. package/dist/models/registry/models.js +6296 -5318
  95. package/dist/models/update-models/codegen.js +84 -23
  96. package/dist/models/update-models/companions.d.ts +18 -0
  97. package/dist/models/update-models/companions.js +175 -0
  98. package/dist/models/update-models/naming.js +0 -25
  99. package/dist/models/update-models/registry.js +4 -2
  100. package/dist/models/update-models/types.d.ts +37 -9
  101. package/dist/profiling/index.d.ts +49 -0
  102. package/dist/profiling/index.js +49 -0
  103. package/dist/schemas/cancel.d.ts +6 -2
  104. package/dist/schemas/cancel.js +14 -7
  105. package/dist/schemas/common.d.ts +361 -279
  106. package/dist/schemas/common.js +26 -5
  107. package/dist/schemas/completion-event.d.ts +225 -0
  108. package/dist/schemas/completion-event.js +79 -0
  109. package/dist/schemas/completion-stream.d.ts +122 -31
  110. package/dist/schemas/completion-stream.js +137 -36
  111. package/dist/schemas/delegate.d.ts +0 -2
  112. package/dist/schemas/delegate.js +25 -6
  113. package/dist/schemas/download-asset.d.ts +5 -5
  114. package/dist/schemas/embed.js +21 -9
  115. package/dist/schemas/engine-addon-map.d.ts +11 -1
  116. package/dist/schemas/engine-addon-map.js +2 -2
  117. package/dist/schemas/finetune.d.ts +16 -16
  118. package/dist/schemas/finetune.js +8 -8
  119. package/dist/schemas/get-loaded-model-info.d.ts +52 -0
  120. package/dist/schemas/get-loaded-model-info.js +44 -0
  121. package/dist/schemas/get-model-info.d.ts +2 -2
  122. package/dist/schemas/get-model-info.js +103 -32
  123. package/dist/schemas/heartbeat.d.ts +0 -1
  124. package/dist/schemas/index.d.ts +4 -1
  125. package/dist/schemas/index.js +4 -1
  126. package/dist/schemas/llamacpp-config.d.ts +14 -4
  127. package/dist/schemas/llamacpp-config.js +5 -0
  128. package/dist/schemas/load-model.d.ts +3233 -1260
  129. package/dist/schemas/load-model.js +23 -16
  130. package/dist/schemas/model-src-utils.d.ts +7 -6
  131. package/dist/schemas/model-src-utils.js +27 -1
  132. package/dist/schemas/model-types.d.ts +4 -4
  133. package/dist/schemas/ocr.d.ts +1 -1
  134. package/dist/schemas/plugin.d.ts +27 -3
  135. package/dist/schemas/plugin.js +27 -2
  136. package/dist/schemas/profiling.js +11 -3
  137. package/dist/schemas/provide.d.ts +1 -3
  138. package/dist/schemas/provide.js +0 -3
  139. package/dist/schemas/rag.d.ts +4 -4
  140. package/dist/schemas/registry.d.ts +10 -10
  141. package/dist/schemas/registry.js +36 -14
  142. package/dist/schemas/reload-config.d.ts +73 -7
  143. package/dist/schemas/sdcpp-config.d.ts +16 -8
  144. package/dist/schemas/sdcpp-config.js +118 -25
  145. package/dist/schemas/sdk-config.d.ts +116 -90
  146. package/dist/schemas/sdk-config.js +16 -0
  147. package/dist/schemas/sdk-errors-client.d.ts +3 -0
  148. package/dist/schemas/sdk-errors-client.js +16 -1
  149. package/dist/schemas/sdk-errors-server.d.ts +3 -0
  150. package/dist/schemas/sdk-errors-server.js +23 -0
  151. package/dist/schemas/state.d.ts +23 -0
  152. package/dist/schemas/state.js +14 -0
  153. package/dist/schemas/stop-provide.d.ts +0 -5
  154. package/dist/schemas/stop-provide.js +2 -6
  155. package/dist/schemas/text-to-speech.d.ts +93 -27
  156. package/dist/schemas/text-to-speech.js +27 -0
  157. package/dist/schemas/tools.d.ts +16 -0
  158. package/dist/schemas/tools.js +15 -0
  159. package/dist/schemas/transcription-config.d.ts +8 -8
  160. package/dist/schemas/transcription.d.ts +33 -0
  161. package/dist/schemas/transcription.js +9 -0
  162. package/dist/schemas/translate.js +59 -19
  163. package/dist/schemas/translation-config.d.ts +157 -133
  164. package/dist/schemas/translation-config.js +34 -11
  165. package/dist/server/bare/delegate-rpc-client.d.ts +1 -1
  166. package/dist/server/bare/delegate-rpc-client.js +131 -122
  167. package/dist/server/bare/hyperswarm.d.ts +2 -2
  168. package/dist/server/bare/hyperswarm.js +12 -7
  169. package/dist/server/bare/ops/cancel.js +7 -0
  170. package/dist/server/bare/ops/kv-cache-utils.d.ts +7 -10
  171. package/dist/server/bare/ops/kv-cache-utils.js +31 -40
  172. package/dist/server/bare/ops/load-model.js +0 -1
  173. package/dist/server/bare/ops/transcribe.d.ts +11 -4
  174. package/dist/server/bare/ops/transcribe.js +25 -4
  175. package/dist/server/bare/ops/translate.js +42 -4
  176. package/dist/server/bare/ops/unload-model.js +21 -19
  177. package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.js +1 -2
  178. package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stream.d.ts +13 -8
  179. package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stream.js +257 -85
  180. package/dist/server/bare/plugins/llamacpp-completion/ops/kv-cache-state.d.ts +101 -0
  181. package/dist/server/bare/plugins/llamacpp-completion/ops/kv-cache-state.js +135 -0
  182. package/dist/server/bare/plugins/llamacpp-completion/plugin.d.ts +83 -26
  183. package/dist/server/bare/plugins/llamacpp-completion/plugin.js +57 -32
  184. package/dist/server/bare/plugins/llamacpp-embedding/plugin.js +10 -16
  185. package/dist/server/bare/plugins/nmtcpp-translation/plugin.d.ts +69 -44
  186. package/dist/server/bare/plugins/nmtcpp-translation/plugin.js +113 -94
  187. package/dist/server/bare/plugins/onnx-ocr/plugin.d.ts +1 -1
  188. package/dist/server/bare/plugins/onnx-ocr/plugin.js +1 -2
  189. package/dist/server/bare/plugins/onnx-tts/ops/text-to-speech-stream.d.ts +7 -0
  190. package/dist/server/bare/plugins/onnx-tts/ops/text-to-speech-stream.js +116 -0
  191. package/dist/server/bare/plugins/onnx-tts/ops/text-to-speech.d.ts +2 -3
  192. package/dist/server/bare/plugins/onnx-tts/ops/text-to-speech.js +71 -9
  193. package/dist/server/bare/plugins/onnx-tts/plugin.d.ts +41 -13
  194. package/dist/server/bare/plugins/onnx-tts/plugin.js +48 -3
  195. package/dist/server/bare/plugins/parakeet-transcription/plugin.d.ts +15 -7
  196. package/dist/server/bare/plugins/parakeet-transcription/plugin.js +5 -6
  197. package/dist/server/bare/plugins/sdcpp-generation/ops/diffusion.js +6 -0
  198. package/dist/server/bare/plugins/sdcpp-generation/plugin.d.ts +8 -5
  199. package/dist/server/bare/plugins/sdcpp-generation/plugin.js +13 -13
  200. package/dist/server/bare/plugins/whispercpp-transcription/plugin.d.ts +17 -1
  201. package/dist/server/bare/plugins/whispercpp-transcription/plugin.js +40 -17
  202. package/dist/server/bare/registry/config-registry.js +14 -3
  203. package/dist/server/bare/registry/model-registry.d.ts +8 -10
  204. package/dist/server/bare/registry/model-registry.js +17 -12
  205. package/dist/server/bare/registry/registry-client.js +79 -19
  206. package/dist/server/bare/runtime-lifecycle.d.ts +2 -1
  207. package/dist/server/bare/runtime-lifecycle.js +13 -2
  208. package/dist/server/bare/types/addon-responses.d.ts +8 -3
  209. package/dist/server/bare/utils/transcribe-metadata.d.ts +21 -0
  210. package/dist/server/bare/utils/transcribe-metadata.js +28 -0
  211. package/dist/server/bare/utils/tts-stats.d.ts +22 -0
  212. package/dist/server/bare/utils/tts-stats.js +10 -0
  213. package/dist/server/rpc/create-server.d.ts +4 -1
  214. package/dist/server/rpc/create-server.js +5 -1
  215. package/dist/server/rpc/delegate-transport.js +36 -29
  216. package/dist/server/rpc/handle-request.js +28 -3
  217. package/dist/server/rpc/handler-registry.js +7 -1
  218. package/dist/server/rpc/handler-utils.d.ts +5 -0
  219. package/dist/server/rpc/handler-utils.js +22 -0
  220. package/dist/server/rpc/handlers/cancel-delegated.js +3 -5
  221. package/dist/server/rpc/handlers/cancelHandler.js +4 -5
  222. package/dist/server/rpc/handlers/completion-stream-delegated.js +14 -5
  223. package/dist/server/rpc/handlers/delete-cache.js +8 -3
  224. package/dist/server/rpc/handlers/download-asset.js +3 -24
  225. package/dist/server/rpc/handlers/get-loaded-model-info.d.ts +3 -0
  226. package/dist/server/rpc/handlers/get-loaded-model-info.js +39 -0
  227. package/dist/server/rpc/handlers/get-model-info.js +93 -84
  228. package/dist/server/rpc/handlers/heartbeat-delegated.js +2 -2
  229. package/dist/server/rpc/handlers/index.d.ts +6 -0
  230. package/dist/server/rpc/handlers/index.js +6 -0
  231. package/dist/server/rpc/handlers/load-model/download-manager.d.ts +35 -9
  232. package/dist/server/rpc/handlers/load-model/download-manager.js +142 -38
  233. package/dist/server/rpc/handlers/load-model/download-stats.d.ts +5 -4
  234. package/dist/server/rpc/handlers/load-model/download-stats.js +49 -8
  235. package/dist/server/rpc/handlers/load-model/handler.js +31 -50
  236. package/dist/server/rpc/handlers/load-model/http.d.ts +2 -2
  237. package/dist/server/rpc/handlers/load-model/http.js +97 -142
  238. package/dist/server/rpc/handlers/load-model/hyperdrive.d.ts +2 -2
  239. package/dist/server/rpc/handlers/load-model/hyperdrive.js +55 -74
  240. package/dist/server/rpc/handlers/load-model/index.d.ts +0 -1
  241. package/dist/server/rpc/handlers/load-model/index.js +0 -1
  242. package/dist/server/rpc/handlers/load-model/registry-client-options.d.ts +27 -0
  243. package/dist/server/rpc/handlers/load-model/registry-client-options.js +19 -0
  244. package/dist/server/rpc/handlers/load-model/registry-companion-set.d.ts +22 -0
  245. package/dist/server/rpc/handlers/load-model/registry-companion-set.js +208 -0
  246. package/dist/server/rpc/handlers/load-model/registry-download-utils.d.ts +24 -0
  247. package/dist/server/rpc/handlers/load-model/registry-download-utils.js +114 -0
  248. package/dist/server/rpc/handlers/load-model/registry.d.ts +2 -20
  249. package/dist/server/rpc/handlers/load-model/registry.js +109 -381
  250. package/dist/server/rpc/handlers/load-model/resolve-session.d.ts +15 -0
  251. package/dist/server/rpc/handlers/load-model/resolve-session.js +61 -0
  252. package/dist/server/rpc/handlers/load-model/resolve.d.ts +3 -3
  253. package/dist/server/rpc/handlers/load-model/resolve.js +14 -23
  254. package/dist/server/rpc/handlers/load-model/types.d.ts +11 -4
  255. package/dist/server/rpc/handlers/load-model/types.js +28 -1
  256. package/dist/server/rpc/handlers/load-model-delegated.js +2 -4
  257. package/dist/server/rpc/handlers/plugin-dispatch.js +9 -5
  258. package/dist/server/rpc/handlers/plugin-invoke.js +1 -1
  259. package/dist/server/rpc/handlers/provideHandler/connection.js +13 -2
  260. package/dist/server/rpc/handlers/provideHandler/handler.js +42 -29
  261. package/dist/server/rpc/handlers/state.d.ts +3 -0
  262. package/dist/server/rpc/handlers/state.js +7 -0
  263. package/dist/server/rpc/handlers/stopProvideHandler.d.ts +2 -2
  264. package/dist/server/rpc/handlers/stopProvideHandler.js +12 -7
  265. package/dist/server/rpc/handlers/text-to-speech-stream.d.ts +3 -0
  266. package/dist/server/rpc/handlers/text-to-speech-stream.js +4 -0
  267. package/dist/server/rpc/handlers/unload-model-delegated.js +3 -3
  268. package/dist/server/rpc/profiling/operation-metrics.js +20 -0
  269. package/dist/server/rpc/rpc-utils.js +1 -1
  270. package/dist/server/rpc/transport-selector.d.ts +3 -0
  271. package/dist/server/rpc/transport-selector.js +18 -0
  272. package/dist/server/utils/cache/auto-history.d.ts +4 -0
  273. package/dist/server/utils/cache/auto-history.js +22 -0
  274. package/dist/server/utils/{cache.d.ts → cache/paths.d.ts} +22 -5
  275. package/dist/server/utils/{cache.js → cache/paths.js} +36 -20
  276. package/dist/server/utils/cache/types.d.ts +8 -0
  277. package/dist/server/utils/cache/types.js +1 -0
  278. package/dist/server/utils/checksum.d.ts +2 -2
  279. package/dist/server/utils/checksum.js +1 -1
  280. package/dist/server/utils/clear-storage.d.ts +5 -0
  281. package/dist/server/utils/clear-storage.js +17 -0
  282. package/dist/server/utils/completion-normalizer.d.ts +17 -0
  283. package/dist/server/utils/completion-normalizer.js +301 -0
  284. package/dist/server/utils/expand-gguf-shards.d.ts +3 -0
  285. package/dist/server/utils/expand-gguf-shards.js +22 -0
  286. package/dist/server/utils/formatting.js +1 -1
  287. package/dist/server/utils/index.d.ts +4 -2
  288. package/dist/server/utils/index.js +4 -2
  289. package/dist/server/utils/qvac-paths.d.ts +2 -0
  290. package/dist/server/utils/qvac-paths.js +5 -0
  291. package/dist/server/utils/response-format.d.ts +3 -0
  292. package/dist/server/utils/response-format.js +20 -0
  293. package/dist/server/utils/tool-integration.d.ts +15 -4
  294. package/dist/server/utils/tool-integration.js +21 -41
  295. package/dist/server/utils/tools/dialect.d.ts +8 -0
  296. package/dist/server/utils/tools/dialect.js +12 -0
  297. package/dist/server/utils/tools/index.d.ts +3 -0
  298. package/dist/server/utils/tools/index.js +2 -0
  299. package/dist/server/utils/tools/parser.d.ts +6 -0
  300. package/dist/server/utils/tools/parser.js +40 -0
  301. package/dist/server/utils/tools/parsers/hermes.d.ts +4 -0
  302. package/dist/server/utils/tools/parsers/hermes.js +100 -0
  303. package/dist/server/utils/tools/parsers/json.d.ts +6 -0
  304. package/dist/server/utils/tools/parsers/json.js +115 -0
  305. package/dist/server/utils/tools/parsers/pythonic.d.ts +4 -0
  306. package/dist/server/utils/tools/parsers/pythonic.js +267 -0
  307. package/dist/server/utils/tools/shared.d.ts +18 -0
  308. package/dist/server/utils/tools/shared.js +54 -0
  309. package/dist/server/utils/worker-lock.d.ts +3 -0
  310. package/dist/server/utils/worker-lock.js +67 -0
  311. package/dist/server/worker-core.d.ts +16 -1
  312. package/dist/server/worker-core.js +114 -14
  313. package/dist/utils/aggregate-events.d.ts +16 -0
  314. package/dist/utils/aggregate-events.js +52 -0
  315. package/dist/utils/cache-normalize.d.ts +10 -0
  316. package/dist/utils/cache-normalize.js +23 -0
  317. package/dist/utils/encoding.d.ts +8 -0
  318. package/dist/utils/encoding.js +13 -0
  319. package/dist/utils/errors-client.d.ts +12 -0
  320. package/dist/utils/errors-client.js +20 -0
  321. package/dist/utils/errors-server.d.ts +14 -0
  322. package/dist/utils/errors-server.js +31 -0
  323. package/dist/utils/load-model-validation.d.ts +7 -0
  324. package/dist/utils/load-model-validation.js +18 -0
  325. package/expo/plugins/patches/android-link.mjs +1 -1
  326. package/expo/plugins/patches/ios-link.mjs +1 -1
  327. package/package.json +15 -19
  328. package/dist/examples/translation/translation-opus.d.ts +0 -2
  329. package/dist/examples/translation/translation-opus.js +0 -33
  330. package/dist/server/bare/utils/loader-adapter.d.ts +0 -7
  331. package/dist/server/bare/utils/loader-adapter.js +0 -9
  332. package/dist/server/utils/model-path.d.ts +0 -5
  333. package/dist/server/utils/model-path.js +0 -7
  334. package/dist/server/utils/tool-parser.d.ts +0 -7
  335. package/dist/server/utils/tool-parser.js +0 -248
@@ -5,6 +5,8 @@ import { getServerLogger } from "../../../logging/index.js";
5
5
  import { TranscriptionFailedError } from "../../../utils/errors-server.js";
6
6
  import { nowMs } from "../../../profiling/index.js";
7
7
  import { buildStreamResult } from "../../../profiling/model-execution.js";
8
+ import { assertMetadataSupported, toTranscribeSegment, } from "../utils/transcribe-metadata.js";
9
+ export { assertMetadataSupported, toTranscribeSegment, };
8
10
  const logger = getServerLogger();
9
11
  function hasRunStreaming(model) {
10
12
  return "runStreaming" in model && typeof model.runStreaming === "function";
@@ -15,7 +17,9 @@ const SILENCE_MARKERS = {
15
17
  };
16
18
  function getEngineModelType(modelId) {
17
19
  const entry = getModelEntry(modelId);
18
- return entry?.local?.modelType ?? "";
20
+ if (!entry || entry.isDelegated)
21
+ return "";
22
+ return entry.local.modelType;
19
23
  }
20
24
  function getAudioFormat(modelId, engineType) {
21
25
  if (engineType === ModelType.whispercppTranscription) {
@@ -53,8 +57,9 @@ async function restorePrompt(modelId, originalConfig) {
53
57
  });
54
58
  }
55
59
  export async function* transcribe(params) {
56
- const { modelId } = params;
60
+ const { modelId, metadata } = params;
57
61
  const engineType = getEngineModelType(modelId);
62
+ assertMetadataSupported(modelId, engineType, metadata);
58
63
  const silenceMarker = SILENCE_MARKERS[engineType] ?? "";
59
64
  const audioFormat = getAudioFormat(modelId, engineType);
60
65
  const originalConfig = await applyPrompt(modelId, params.prompt, engineType);
@@ -67,7 +72,18 @@ export async function* transcribe(params) {
67
72
  response = (await model.run(audioStream));
68
73
  for await (const output of response.iterate()) {
69
74
  logger.debug("Streaming Transcription Update:", output);
70
- const text = output
75
+ const chunks = output;
76
+ if (metadata) {
77
+ for (const chunk of chunks) {
78
+ if (!chunk.text)
79
+ continue;
80
+ if (silenceMarker && chunk.text.includes(silenceMarker))
81
+ continue;
82
+ yield toTranscribeSegment(chunk);
83
+ }
84
+ continue;
85
+ }
86
+ const text = chunks
71
87
  .filter((chunk) => !silenceMarker || !chunk.text.includes(silenceMarker))
72
88
  .map((chunk) => chunk.text)
73
89
  .join("");
@@ -96,8 +112,9 @@ export async function* transcribe(params) {
96
112
  };
97
113
  return buildStreamResult(modelExecutionMs, stats);
98
114
  }
99
- export async function* transcribeStream(modelId, audioInputStream, prompt) {
115
+ export async function* transcribeStream(modelId, audioInputStream, prompt, metadata) {
100
116
  const engineType = getEngineModelType(modelId);
117
+ assertMetadataSupported(modelId, engineType, metadata);
101
118
  const silenceMarker = SILENCE_MARKERS[engineType] ?? "";
102
119
  const originalConfig = await applyPrompt(modelId, prompt, engineType);
103
120
  try {
@@ -113,6 +130,10 @@ export async function* transcribeStream(modelId, audioInputStream, prompt) {
113
130
  continue;
114
131
  if (silenceMarker && segment.text.includes(silenceMarker))
115
132
  continue;
133
+ if (metadata) {
134
+ yield toTranscribeSegment(segment);
135
+ continue;
136
+ }
116
137
  if (segment.text.trim()) {
117
138
  yield segment.text;
118
139
  }
@@ -1,8 +1,9 @@
1
- import { getModel } from "../registry/model-registry.js";
1
+ import { getModelEntry } from "../registry/model-registry.js";
2
2
  import { translateServerParamsSchema, normalizeModelType, ModelType, AFRICAN_LANGUAGES_MAP, } from "../../../schemas/index.js";
3
3
  import { getLangName } from "@qvac/langdetect-text";
4
4
  import { nowMs } from "../../../profiling/index.js";
5
5
  import { buildStreamResult } from "../../../profiling/model-execution.js";
6
+ import { ModelIsDelegatedError, ModelNotFoundError, ModelTypeMismatchError, } from "../../../utils/errors-server.js";
6
7
  export function getLanguage(code) {
7
8
  if (!code)
8
9
  return "";
@@ -14,16 +15,40 @@ export function getLanguage(code) {
14
15
  export function isAfrican(code) {
15
16
  return !!code && AFRICAN_LANGUAGES_MAP.has(code);
16
17
  }
18
+ const LLM_TRANSLATE_GENERATION_PARAMS = {
19
+ temp: 0,
20
+ top_k: 1,
21
+ top_p: 1,
22
+ repeat_penalty: 1.3,
23
+ seed: 42,
24
+ predict: 256,
25
+ };
26
+ function shouldSkipPerCallSampling(modelName) {
27
+ return !!modelName && modelName.startsWith("AFRICAN_");
28
+ }
17
29
  export async function* translate(params) {
18
30
  const { modelId, text, modelType: inputModelType } = params;
19
- const canonicalModelType = normalizeModelType(inputModelType);
31
+ const entry = getModelEntry(modelId);
32
+ if (!entry) {
33
+ throw new ModelNotFoundError(modelId);
34
+ }
35
+ if (entry.isDelegated) {
36
+ throw new ModelIsDelegatedError(modelId);
37
+ }
38
+ const canonicalModelType = entry.local.modelType;
39
+ const model = entry.local.model;
40
+ if (inputModelType !== undefined) {
41
+ const requestedCanonical = normalizeModelType(inputModelType);
42
+ if (requestedCanonical !== canonicalModelType) {
43
+ throw new ModelTypeMismatchError(canonicalModelType, requestedCanonical);
44
+ }
45
+ }
20
46
  const isLlm = canonicalModelType === ModelType.llamacppCompletion;
21
47
  const from = isLlm ? params.from : undefined;
22
48
  const to = isLlm ? params.to : undefined;
23
49
  const context = isLlm ? params.context : undefined;
24
50
  const afriquePrompt = isLlm && (isAfrican(from) || isAfrican(to));
25
51
  translateServerParamsSchema.parse(params);
26
- const model = getModel(modelId);
27
52
  const fromLanguage = getLanguage(from);
28
53
  const toLanguage = getLanguage(to);
29
54
  // Check if input is an array and model type is NMT
@@ -57,7 +82,20 @@ export async function* translate(params) {
57
82
  },
58
83
  ];
59
84
  const modelStart = nowMs();
60
- const response = await model.run(input);
85
+ let response;
86
+ if (canonicalModelType === ModelType.llamacppCompletion &&
87
+ !shouldSkipPerCallSampling(entry.local.name)) {
88
+ // AnyModel.run is intentionally erased to a single-arg signature in the
89
+ // registry layer (Omit<BaseInference, "addon">). Re-narrow to the engine
90
+ // shape so we get the same typing as @qvac/llm-llamacpp.run().
91
+ const llmRun = model.run.bind(model);
92
+ response = await llmRun(input, {
93
+ generationParams: LLM_TRANSLATE_GENERATION_PARAMS,
94
+ });
95
+ }
96
+ else {
97
+ response = await model.run(input);
98
+ }
61
99
  // Check if the response has an iterate method (like LLM models)
62
100
  if (canonicalModelType === ModelType.llamacppCompletion &&
63
101
  typeof response.iterate === "function") {
@@ -7,6 +7,7 @@ import { unregisterAddonLogger, getServerLogger } from "../../../logging/index.j
7
7
  import { unloadModelParamsSchema } from "../../../schemas/index.js";
8
8
  import { ModelNotLoadedError } from "../../../utils/errors-server.js";
9
9
  import { detectShardedModel } from "../../utils/index.js";
10
+ import { getClearStorageTarget } from "../../utils/cache/paths.js";
10
11
  const logger = getServerLogger();
11
12
  export async function unloadModel(params) {
12
13
  const { modelId, clearStorage } = unloadModelParamsSchema.parse(params);
@@ -15,26 +16,27 @@ export async function unloadModel(params) {
15
16
  throw new ModelNotLoadedError(modelId);
16
17
  }
17
18
  clearFinetuneRuntimeState(modelId);
18
- if (entry.local?.loader) {
19
- await entry.local.loader.close();
20
- }
21
- if (entry.local?.model && entry.local.model.unload) {
22
- await entry.local.model.unload();
23
- }
24
- if (clearStorage && entry.local?.path) {
25
- const modelPath = entry.local.path;
26
- const modelFileName = path.basename(modelPath);
27
- const shardInfo = detectShardedModel(modelFileName);
28
- if (shardInfo.isSharded) {
29
- // Delete entire shard directory
30
- const shardDir = path.dirname(modelPath);
31
- await fsPromises.rm(shardDir, { recursive: true, force: true });
32
- logger.info(`Sharded model storage cleared: ${shardDir}`);
19
+ if (!entry.isDelegated) {
20
+ if (entry.local.model.unload) {
21
+ await entry.local.model.unload();
33
22
  }
34
- else {
35
- // Delete single file
36
- await fsPromises.rm(modelPath, { recursive: true, force: true });
37
- logger.info(`Model storage cleared: ${modelPath}`);
23
+ if (clearStorage && entry.local.path) {
24
+ const modelPath = entry.local.path;
25
+ const modelFileName = path.basename(modelPath);
26
+ const shardInfo = detectShardedModel(modelFileName);
27
+ if (shardInfo.isSharded) {
28
+ const shardDir = path.dirname(modelPath);
29
+ await fsPromises.rm(shardDir, { recursive: true, force: true });
30
+ logger.info(`Sharded model storage cleared: ${shardDir}`);
31
+ }
32
+ else {
33
+ const target = getClearStorageTarget(modelPath);
34
+ await fsPromises.rm(target.path, {
35
+ recursive: target.kind === "directory",
36
+ force: true,
37
+ });
38
+ logger.info(`Model storage cleared (${target.kind}): ${target.path}`);
39
+ }
38
40
  }
39
41
  }
40
42
  unregisterAddonLogger(modelId);
@@ -23,8 +23,7 @@ export function logCacheInit(cacheKey, systemPrompt, toolCount) {
23
23
  }
24
24
  export function logMessagesToAddon(messages, phase = "PROMPT_SEND") {
25
25
  const typedMessages = messages;
26
- const nonSessionMsgs = typedMessages.filter((m) => m.role !== "session");
27
- logger.debug(`[kv-cache] [${phase}] Sending ${nonSessionMsgs.length} msg(s): [${formatMessages(nonSessionMsgs)}]`);
26
+ logger.debug(`[kv-cache] [${phase}] Sending ${typedMessages.length} msg(s): [${formatMessages(typedMessages)}]`);
28
27
  }
29
28
  export function logCacheDisabled() {
30
29
  logger.debug("[kv-cache] Cache disabled");
@@ -1,14 +1,19 @@
1
- import type { CompletionParams, CompletionStats, GenerationParams, Tool, ToolCall, ToolCallEvent } from "../../../../../schemas/index";
2
- export declare function clearCachedMessageCounts(cachePath?: string): void;
1
+ import type { CompletionParams, CompletionStats, GenerationParams, ResponseFormat, Tool, ToolCall, ToolDialect } from "../../../../../schemas/index";
2
+ import { noteCancelRequested as noteCancelRequestedFromState } from "./kv-cache-state";
3
+ interface CompletionResult {
4
+ modelExecutionMs: number;
5
+ stats?: CompletionStats;
6
+ toolCalls: ToolCall[];
7
+ }
8
+ export declare function clearCachedMessageCounts(prefix?: string): void;
9
+ export declare const noteCancelRequested: typeof noteCancelRequestedFromState;
3
10
  export declare function completion(params: CompletionParams & {
4
11
  tools?: Tool[];
5
12
  generationParams?: GenerationParams;
13
+ toolDialect?: ToolDialect;
14
+ responseFormat?: ResponseFormat;
6
15
  }): AsyncGenerator<{
7
16
  token: string;
8
- toolCallEvent?: ToolCallEvent;
9
- }, {
10
- modelExecutionMs: number;
11
- stats?: CompletionStats;
12
- toolCalls: ToolCall[];
13
- }, unknown>;
17
+ }, CompletionResult, unknown>;
18
+ export {};
14
19
  //# sourceMappingURL=completion-stream.d.ts.map