@qvac/sdk 0.8.0 → 1.0.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 (588) hide show
  1. package/LICENSE +24 -1
  2. package/README.md +191 -373
  3. package/dist/client/api/cancel.d.ts +4 -13
  4. package/dist/client/api/cancel.js +6 -16
  5. package/dist/client/api/completion-stream.d.ts +30 -24
  6. package/dist/client/api/completion-stream.js +70 -121
  7. package/dist/client/api/delete-cache.js +2 -3
  8. package/dist/client/api/download-asset.d.ts +5 -6
  9. package/dist/client/api/download-asset.js +20 -16
  10. package/dist/client/api/embed.d.ts +4 -21
  11. package/dist/client/api/embed.js +14 -4
  12. package/dist/client/api/index.d.ts +1 -5
  13. package/dist/client/api/index.js +1 -5
  14. package/dist/client/api/load-model.d.ts +21 -49
  15. package/dist/client/api/load-model.js +134 -40
  16. package/dist/client/api/logging-stream.d.ts +4 -7
  17. package/dist/client/api/logging-stream.js +5 -9
  18. package/dist/client/api/ping.d.ts +1 -1
  19. package/dist/client/api/ping.js +2 -3
  20. package/dist/client/api/provide.d.ts +1 -1
  21. package/dist/client/api/provide.js +3 -4
  22. package/dist/client/api/rag.d.ts +21 -216
  23. package/dist/client/api/rag.js +36 -396
  24. package/dist/client/api/stop-provider.d.ts +1 -1
  25. package/dist/client/api/stop-provider.js +3 -4
  26. package/dist/client/api/text-to-speech.d.ts +2 -2
  27. package/dist/client/api/text-to-speech.js +3 -3
  28. package/dist/client/api/transcribe.d.ts +5 -9
  29. package/dist/client/api/transcribe.js +9 -11
  30. package/dist/client/api/translate.d.ts +3 -3
  31. package/dist/client/api/translate.js +15 -15
  32. package/dist/client/api/unload-model.d.ts +1 -5
  33. package/dist/client/api/unload-model.js +4 -17
  34. package/dist/client/index.d.ts +1 -1
  35. package/dist/client/index.js +1 -1
  36. package/dist/client/logging-stream-registry.d.ts +1 -1
  37. package/dist/client/logging-stream-registry.js +13 -14
  38. package/dist/client/rpc/bare-client.d.ts +139 -3
  39. package/dist/client/rpc/bare-client.js +16 -117
  40. package/dist/client/rpc/bare-rpc-client.d.ts +4 -0
  41. package/dist/client/rpc/bare-rpc-client.js +87 -0
  42. package/dist/client/rpc/expo-rpc-client.d.ts +1 -2
  43. package/dist/client/rpc/expo-rpc-client.js +14 -57
  44. package/dist/client/rpc/node-rpc-client.d.ts +8 -3
  45. package/dist/client/rpc/node-rpc-client.js +62 -218
  46. package/dist/client/rpc/rpc-client.d.ts +2 -3
  47. package/dist/client/rpc/rpc-client.js +49 -184
  48. package/dist/constants/audio.d.ts +2 -1
  49. package/dist/constants/audio.js +17 -1
  50. package/dist/constants/index.d.ts +0 -1
  51. package/dist/constants/index.js +0 -1
  52. package/dist/examples/delegated-inference/consumer.js +2 -3
  53. package/dist/examples/download-with-cancel.js +4 -3
  54. package/dist/examples/embed-hyperdrive.js +4 -39
  55. package/dist/examples/kv-cache-cleanup.js +2 -1
  56. package/dist/examples/kv-cache-custom-key.js +2 -16
  57. package/dist/examples/kv-cache-example.js +2 -1
  58. package/dist/examples/llamacpp-file-logging.d.ts +2 -0
  59. package/dist/examples/{logging-file-transport.js → llamacpp-file-logging.js} +8 -3
  60. package/dist/examples/llamacpp-filesystem.js +2 -2
  61. package/dist/examples/llamacpp-http.js +1 -0
  62. package/dist/examples/llamacpp-hyperdrive.js +2 -1
  63. package/dist/examples/llamacpp-multimodal.js +4 -3
  64. package/dist/examples/llamacpp-native-tools.js +30 -72
  65. package/dist/examples/multi-model-demo.js +3 -2
  66. package/dist/examples/parallel-download.js +14 -46
  67. package/dist/examples/rag/rag-chromadb.js +1 -0
  68. package/dist/examples/rag/rag-hyperdb-workspaces.d.ts +2 -0
  69. package/dist/examples/rag/rag-hyperdb-workspaces.js +107 -0
  70. package/dist/examples/rag/rag-hyperdb.d.ts +2 -0
  71. package/dist/examples/rag/{rag-hyperdb/ingest.js → rag-hyperdb.js} +5 -10
  72. package/dist/examples/rag/rag-lancedb.js +1 -0
  73. package/dist/examples/rag/rag-sqlite.js +1 -0
  74. package/dist/examples/text-to-speech.d.ts +3 -0
  75. package/dist/examples/{tts/utils.js → text-to-speech.js} +63 -18
  76. package/dist/examples/translation/translation-indic.js +1 -4
  77. package/dist/examples/translation/translation-llm-context.js +1 -0
  78. package/dist/examples/translation/translation-llm.js +2 -2
  79. package/dist/examples/translation/translation-opus.js +3 -6
  80. package/dist/examples/translation/translation-stream.js +3 -3
  81. package/dist/examples/whispercpp-filesystem.js +43 -0
  82. package/dist/examples/{transcription/whispercpp-microphone-record.js → whispercpp-microphone-record.js} +9 -8
  83. package/dist/expo/plugins/index.d.ts +0 -3
  84. package/dist/expo/plugins/index.js +0 -3
  85. package/dist/expo/plugins/withMobileBundle.d.ts +2 -5
  86. package/dist/expo/plugins/withMobileBundle.js +40 -121
  87. package/dist/expo/plugins/withQvacSDK.d.ts +0 -4
  88. package/dist/expo/plugins/withQvacSDK.js +1 -26
  89. package/dist/index.d.ts +4 -9
  90. package/dist/index.js +5 -11
  91. package/dist/logging/base-logger.js +16 -26
  92. package/dist/logging/index.d.ts +1 -7
  93. package/dist/logging/index.js +1 -7
  94. package/dist/logging/logger.d.ts +2 -0
  95. package/dist/logging/logger.js +6 -11
  96. package/dist/logging/stream-logger.d.ts +1 -1
  97. package/dist/logging/stream-logger.js +3 -6
  98. package/dist/logging/transport.js +2 -2
  99. package/dist/logging/types.d.ts +0 -2
  100. package/dist/logging/utils.d.ts +0 -2
  101. package/dist/logging/utils.js +0 -62
  102. package/dist/models/{registry → hyperdrive}/index.js +1 -1
  103. package/dist/models/hyperdrive/models.d.ts +619 -0
  104. package/dist/models/hyperdrive/models.js +693 -0
  105. package/dist/schemas/cancel.d.ts +0 -6
  106. package/dist/schemas/cancel.js +0 -5
  107. package/dist/schemas/common.d.ts +164 -2973
  108. package/dist/schemas/common.js +1 -23
  109. package/dist/schemas/completion-stream.d.ts +60 -31
  110. package/dist/schemas/completion-stream.js +44 -20
  111. package/dist/schemas/delegate.d.ts +0 -1
  112. package/dist/schemas/delegate.js +0 -1
  113. package/dist/schemas/download-asset.d.ts +3 -125
  114. package/dist/schemas/download-asset.js +5 -22
  115. package/dist/schemas/embed.d.ts +3 -3
  116. package/dist/schemas/embed.js +2 -9
  117. package/dist/schemas/index.d.ts +1 -19
  118. package/dist/schemas/index.js +1 -19
  119. package/dist/schemas/llamacpp-config.d.ts +12 -243
  120. package/dist/schemas/llamacpp-config.js +14 -50
  121. package/dist/schemas/load-model.d.ts +893 -14358
  122. package/dist/schemas/load-model.js +72 -325
  123. package/dist/schemas/logging-stream.d.ts +4 -11
  124. package/dist/schemas/logging-stream.js +3 -4
  125. package/dist/schemas/rag.d.ts +52 -183
  126. package/dist/schemas/rag.js +23 -152
  127. package/dist/schemas/text-to-speech.d.ts +1 -692
  128. package/dist/schemas/text-to-speech.js +3 -35
  129. package/dist/schemas/transcription.d.ts +0 -3
  130. package/dist/schemas/transcription.js +0 -1
  131. package/dist/schemas/translate.d.ts +23 -68
  132. package/dist/schemas/translate.js +11 -37
  133. package/dist/schemas/translation-config.d.ts +7 -810
  134. package/dist/schemas/translation-config.js +7 -113
  135. package/dist/schemas/unload-model.d.ts +0 -2
  136. package/dist/schemas/unload-model.js +0 -2
  137. package/dist/schemas/whispercpp-config.d.ts +25 -0
  138. package/dist/schemas/whispercpp-config.js +18 -0
  139. package/dist/server/bare/{ops → addons}/cancel.js +1 -2
  140. package/dist/server/bare/addons/index.d.ts +4 -0
  141. package/dist/server/bare/addons/index.js +3 -0
  142. package/dist/server/bare/addons/llamacpp/create-model.d.ts +5 -0
  143. package/dist/server/bare/addons/llamacpp/create-model.js +67 -0
  144. package/dist/server/bare/{plugins/llamacpp-completion/ops → addons/llamacpp/handlers}/completion-stream.d.ts +1 -2
  145. package/dist/server/bare/{plugins/llamacpp-completion/ops → addons/llamacpp/handlers}/completion-stream.js +87 -54
  146. package/dist/server/bare/addons/llamacpp/handlers/embed.d.ts +4 -0
  147. package/dist/server/bare/{ops → addons/llamacpp/handlers}/embed.js +7 -22
  148. package/dist/server/bare/addons/llamacpp/index.d.ts +4 -0
  149. package/dist/server/bare/addons/llamacpp/index.js +3 -0
  150. package/dist/server/bare/{ops → addons/llamacpp}/kv-cache-utils.d.ts +1 -4
  151. package/dist/server/bare/{ops → addons/llamacpp}/kv-cache-utils.js +19 -54
  152. package/dist/server/bare/addons/load-model.d.ts +3 -0
  153. package/dist/server/bare/addons/load-model.js +62 -0
  154. package/dist/server/bare/addons/translation/create-model.d.ts +4 -0
  155. package/dist/server/bare/addons/translation/create-model.js +45 -0
  156. package/dist/server/bare/addons/translation/handlers/translate.d.ts +3 -0
  157. package/dist/server/bare/{ops → addons/translation/handlers}/translate.js +14 -47
  158. package/dist/server/bare/addons/translation/index.d.ts +3 -0
  159. package/dist/server/bare/addons/translation/index.js +2 -0
  160. package/dist/server/bare/addons/tts/create-model.d.ts +6 -0
  161. package/dist/server/bare/addons/tts/create-model.js +40 -0
  162. package/dist/server/bare/{plugins/onnx-tts/ops → addons/tts/handlers}/text-to-speech.js +3 -25
  163. package/dist/server/bare/addons/tts/index.d.ts +3 -0
  164. package/dist/server/bare/addons/tts/index.js +2 -0
  165. package/dist/server/bare/addons/unload-model.js +20 -0
  166. package/dist/server/bare/addons/whispercpp/create-model.d.ts +6 -0
  167. package/dist/server/bare/addons/whispercpp/create-model.js +55 -0
  168. package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.d.ts +3 -0
  169. package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.js +48 -0
  170. package/dist/server/bare/addons/whispercpp/index.d.ts +3 -0
  171. package/dist/server/bare/addons/whispercpp/index.js +2 -0
  172. package/dist/server/bare/delegate-rpc-client.d.ts +0 -6
  173. package/dist/server/bare/delegate-rpc-client.js +46 -157
  174. package/dist/server/bare/hyperswarm.d.ts +0 -3
  175. package/dist/server/bare/hyperswarm.js +6 -29
  176. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.d.ts +1 -1
  177. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.js +10 -9
  178. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.d.ts +4 -7
  179. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.js +14 -13
  180. package/dist/server/bare/rag-hyperdb/handlers/search.js +10 -10
  181. package/dist/server/bare/rag-hyperdb/index.d.ts +1 -8
  182. package/dist/server/bare/rag-hyperdb/index.js +1 -8
  183. package/dist/server/bare/rag-hyperdb/rag-manager.d.ts +5 -0
  184. package/dist/server/bare/rag-hyperdb/rag-manager.js +65 -0
  185. package/dist/server/bare/registry/logging-stream-registry.d.ts +7 -24
  186. package/dist/server/bare/registry/logging-stream-registry.js +20 -99
  187. package/dist/server/bare/registry/model-registry.d.ts +26 -14
  188. package/dist/server/bare/registry/model-registry.js +12 -32
  189. package/dist/server/error-handlers.d.ts +2 -3
  190. package/dist/server/error-handlers.js +10 -15
  191. package/dist/server/http-server.d.ts +2 -0
  192. package/dist/server/http-server.js +189 -0
  193. package/dist/server/rpc/create-server.js +3 -5
  194. package/dist/server/rpc/handle-request.d.ts +9 -0
  195. package/dist/server/rpc/handle-request.js +242 -92
  196. package/dist/server/rpc/handlers/cancelHandler.js +3 -14
  197. package/dist/server/rpc/handlers/completion-stream-delegated.d.ts +1 -3
  198. package/dist/server/rpc/handlers/completion-stream-delegated.js +6 -18
  199. package/dist/server/rpc/handlers/completion-stream.js +41 -2
  200. package/dist/server/rpc/handlers/delete-cache.js +2 -4
  201. package/dist/server/rpc/handlers/download-asset.js +6 -59
  202. package/dist/server/rpc/handlers/embed.js +19 -2
  203. package/dist/server/rpc/handlers/index.d.ts +0 -13
  204. package/dist/server/rpc/handlers/index.js +0 -13
  205. package/dist/server/rpc/handlers/load-model/download-manager.d.ts +11 -12
  206. package/dist/server/rpc/handlers/load-model/download-manager.js +28 -43
  207. package/dist/server/rpc/handlers/load-model/http.d.ts +1 -2
  208. package/dist/server/rpc/handlers/load-model/http.js +55 -424
  209. package/dist/server/rpc/handlers/load-model/hyperdrive.d.ts +1 -2
  210. package/dist/server/rpc/handlers/load-model/hyperdrive.js +171 -364
  211. package/dist/server/rpc/handlers/load-model/index.d.ts +2 -2
  212. package/dist/server/rpc/handlers/load-model/index.js +2 -2
  213. package/dist/server/rpc/handlers/load-model/resolve.d.ts +1 -3
  214. package/dist/server/rpc/handlers/load-model/resolve.js +29 -110
  215. package/dist/server/rpc/handlers/load-model-delegated.d.ts +2 -6
  216. package/dist/server/rpc/handlers/load-model-delegated.js +21 -59
  217. package/dist/server/rpc/handlers/{load-model/handler.d.ts → load-model.d.ts} +2 -2
  218. package/dist/server/rpc/handlers/load-model.js +57 -0
  219. package/dist/server/rpc/handlers/logging-stream.js +4 -4
  220. package/dist/server/rpc/handlers/provideHandler/connection.js +10 -12
  221. package/dist/server/rpc/handlers/provideHandler/handler.js +17 -20
  222. package/dist/server/rpc/handlers/provideHandler/proxy.js +6 -8
  223. package/dist/server/rpc/handlers/rag.d.ts +2 -2
  224. package/dist/server/rpc/handlers/rag.js +43 -130
  225. package/dist/server/rpc/handlers/stopProvideHandler.js +2 -6
  226. package/dist/server/rpc/handlers/text-to-speech.js +5 -2
  227. package/dist/server/rpc/handlers/transcribe-stream.js +24 -2
  228. package/dist/server/rpc/handlers/translate.js +49 -2
  229. package/dist/server/rpc/handlers/unload-model.js +3 -12
  230. package/dist/server/rpc/index.d.ts +1 -1
  231. package/dist/server/utils/audio/decoder.d.ts +1 -2
  232. package/dist/server/utils/audio/decoder.js +12 -49
  233. package/dist/server/utils/cache.d.ts +8 -19
  234. package/dist/server/utils/cache.js +15 -100
  235. package/dist/server/utils/hash.d.ts +5 -0
  236. package/dist/server/utils/hash.js +11 -0
  237. package/dist/server/utils/index.d.ts +2 -7
  238. package/dist/server/utils/index.js +2 -7
  239. package/dist/server/utils/tool-parser.js +14 -28
  240. package/dist/server/worker.d.ts +5 -4
  241. package/dist/server/worker.js +89 -22
  242. package/package.json +41 -141
  243. package/NOTICE +0 -358
  244. package/bare-imports.json +0 -44
  245. package/dist/client/api/get-model-info.d.ts +0 -36
  246. package/dist/client/api/get-model-info.js +0 -14
  247. package/dist/client/api/invoke-plugin.d.ts +0 -15
  248. package/dist/client/api/invoke-plugin.js +0 -38
  249. package/dist/client/api/ocr.d.ts +0 -31
  250. package/dist/client/api/ocr.js +0 -88
  251. package/dist/client/api/registry.d.ts +0 -14
  252. package/dist/client/api/registry.js +0 -37
  253. package/dist/client/config-loader/config-utils.d.ts +0 -5
  254. package/dist/client/config-loader/config-utils.js +0 -20
  255. package/dist/client/config-loader/resolve-config.bare.d.ts +0 -9
  256. package/dist/client/config-loader/resolve-config.bare.js +0 -87
  257. package/dist/client/config-loader/resolve-config.expo.d.ts +0 -11
  258. package/dist/client/config-loader/resolve-config.expo.js +0 -62
  259. package/dist/client/config-loader/resolve-config.node.d.ts +0 -10
  260. package/dist/client/config-loader/resolve-config.node.js +0 -145
  261. package/dist/client/init-hooks.d.ts +0 -21
  262. package/dist/client/init-hooks.js +0 -66
  263. package/dist/client/rpc/expo-device-info.d.ts +0 -6
  264. package/dist/client/rpc/expo-device-info.js +0 -32
  265. package/dist/client/rpc/profiling/index.d.ts +0 -2
  266. package/dist/client/rpc/profiling/index.js +0 -1
  267. package/dist/client/rpc/profiling/profiler.d.ts +0 -27
  268. package/dist/client/rpc/profiling/profiler.js +0 -139
  269. package/dist/constants/registry.d.ts +0 -2
  270. package/dist/constants/registry.js +0 -1
  271. package/dist/examples/cache-management.d.ts +0 -2
  272. package/dist/examples/cache-management.js +0 -97
  273. package/dist/examples/config/blind-relay/blind-relay.config.d.ts +0 -5
  274. package/dist/examples/config/blind-relay/blind-relay.config.js +0 -7
  275. package/dist/examples/config/default/default.config.d.ts +0 -8
  276. package/dist/examples/config/default/default.config.js +0 -6
  277. package/dist/examples/config/plugins/plugins.config.d.ts +0 -5
  278. package/dist/examples/config/plugins/plugins.config.js +0 -4
  279. package/dist/examples/config-reload.d.ts +0 -2
  280. package/dist/examples/config-reload.js +0 -49
  281. package/dist/examples/default-config-usage.d.ts +0 -17
  282. package/dist/examples/default-config-usage.js +0 -47
  283. package/dist/examples/delegated-inference/consumer-profiled.d.ts +0 -2
  284. package/dist/examples/delegated-inference/consumer-profiled.js +0 -67
  285. package/dist/examples/download-with-blind-relays.d.ts +0 -2
  286. package/dist/examples/download-with-blind-relays.js +0 -49
  287. package/dist/examples/llamacpp-sharded.d.ts +0 -2
  288. package/dist/examples/llamacpp-sharded.js +0 -53
  289. package/dist/examples/logging-file-transport.d.ts +0 -2
  290. package/dist/examples/logging-streaming.d.ts +0 -2
  291. package/dist/examples/logging-streaming.js +0 -75
  292. package/dist/examples/mcp-websearch.d.ts +0 -13
  293. package/dist/examples/mcp-websearch.js +0 -176
  294. package/dist/examples/ocr-fasttext.d.ts +0 -2
  295. package/dist/examples/ocr-fasttext.js +0 -52
  296. package/dist/examples/plugins.d.ts +0 -14
  297. package/dist/examples/plugins.js +0 -129
  298. package/dist/examples/profiling/basic.d.ts +0 -2
  299. package/dist/examples/profiling/basic.js +0 -71
  300. package/dist/examples/profiling/per-call.d.ts +0 -2
  301. package/dist/examples/profiling/per-call.js +0 -30
  302. package/dist/examples/quickstart.d.ts +0 -2
  303. package/dist/examples/quickstart.js +0 -28
  304. package/dist/examples/rag/rag-hyperdb/cancellation.d.ts +0 -2
  305. package/dist/examples/rag/rag-hyperdb/cancellation.js +0 -75
  306. package/dist/examples/rag/rag-hyperdb/ingest.d.ts +0 -2
  307. package/dist/examples/rag/rag-hyperdb/pipeline.d.ts +0 -2
  308. package/dist/examples/rag/rag-hyperdb/pipeline.js +0 -74
  309. package/dist/examples/rag/rag-hyperdb/workspaces.d.ts +0 -2
  310. package/dist/examples/rag/rag-hyperdb/workspaces.js +0 -178
  311. package/dist/examples/registry-query.d.ts +0 -2
  312. package/dist/examples/registry-query.js +0 -87
  313. package/dist/examples/transcription/parakeet-ctc-filesystem.d.ts +0 -2
  314. package/dist/examples/transcription/parakeet-ctc-filesystem.js +0 -40
  315. package/dist/examples/transcription/parakeet-microphone-record.d.ts +0 -2
  316. package/dist/examples/transcription/parakeet-microphone-record.js +0 -95
  317. package/dist/examples/transcription/parakeet-sortformer.d.ts +0 -2
  318. package/dist/examples/transcription/parakeet-sortformer.js +0 -115
  319. package/dist/examples/transcription/parakeet-tdt-filesystem.d.ts +0 -2
  320. package/dist/examples/transcription/parakeet-tdt-filesystem.js +0 -44
  321. package/dist/examples/transcription/whispercpp-filesystem.js +0 -69
  322. package/dist/examples/transcription/whispercpp-prompt.d.ts +0 -2
  323. package/dist/examples/transcription/whispercpp-prompt.js +0 -67
  324. package/dist/examples/translation/translation-bergamot-batch.d.ts +0 -2
  325. package/dist/examples/translation/translation-bergamot-batch.js +0 -49
  326. package/dist/examples/translation/translation-bergamot-pivot.d.ts +0 -2
  327. package/dist/examples/translation/translation-bergamot-pivot.js +0 -73
  328. package/dist/examples/translation/translation-bergamot.d.ts +0 -2
  329. package/dist/examples/translation/translation-bergamot.js +0 -39
  330. package/dist/examples/translation/translation-llm-afriquegemma.d.ts +0 -2
  331. package/dist/examples/translation/translation-llm-afriquegemma.js +0 -39
  332. package/dist/examples/tts/chatterbox.d.ts +0 -2
  333. package/dist/examples/tts/chatterbox.js +0 -59
  334. package/dist/examples/tts/supertonic.d.ts +0 -2
  335. package/dist/examples/tts/supertonic.js +0 -51
  336. package/dist/examples/tts/utils.d.ts +0 -17
  337. package/dist/expo/plugins/resolve-sdk-package-dir.d.ts +0 -15
  338. package/dist/expo/plugins/resolve-sdk-package-dir.js +0 -31
  339. package/dist/expo/plugins/withAndroidArchitecture.d.ts +0 -8
  340. package/dist/expo/plugins/withAndroidArchitecture.js +0 -52
  341. package/dist/expo/plugins/withAndroidNdkVersion.d.ts +0 -8
  342. package/dist/expo/plugins/withAndroidNdkVersion.js +0 -31
  343. package/dist/expo/plugins/withDeviceInfo.d.ts +0 -10
  344. package/dist/expo/plugins/withDeviceInfo.js +0 -48
  345. package/dist/logging/addon.d.ts +0 -6
  346. package/dist/logging/addon.js +0 -75
  347. package/dist/logging/client-logger.d.ts +0 -3
  348. package/dist/logging/client-logger.js +0 -24
  349. package/dist/logging/namespaces.d.ts +0 -6
  350. package/dist/logging/namespaces.js +0 -6
  351. package/dist/logging/registry.d.ts +0 -31
  352. package/dist/logging/registry.js +0 -62
  353. package/dist/logging/server-logger.d.ts +0 -3
  354. package/dist/logging/server-logger.js +0 -16
  355. package/dist/models/registry/models.d.ts +0 -10417
  356. package/dist/models/registry/models.js +0 -10757
  357. package/dist/models/update-models/codegen.d.ts +0 -3
  358. package/dist/models/update-models/codegen.js +0 -135
  359. package/dist/models/update-models/history.d.ts +0 -24
  360. package/dist/models/update-models/history.js +0 -107
  361. package/dist/models/update-models/index.d.ts +0 -2
  362. package/dist/models/update-models/index.js +0 -125
  363. package/dist/models/update-models/naming.d.ts +0 -4
  364. package/dist/models/update-models/naming.js +0 -370
  365. package/dist/models/update-models/processing.d.ts +0 -8
  366. package/dist/models/update-models/processing.js +0 -67
  367. package/dist/models/update-models/registry.d.ts +0 -4
  368. package/dist/models/update-models/registry.js +0 -67
  369. package/dist/models/update-models/shards.d.ts +0 -4
  370. package/dist/models/update-models/shards.js +0 -57
  371. package/dist/models/update-models/types.d.ts +0 -60
  372. package/dist/models/update-models/types.js +0 -1
  373. package/dist/models/update-models/utils.d.ts +0 -3
  374. package/dist/models/update-models/utils.js +0 -21
  375. package/dist/pear/pre.d.ts +0 -18
  376. package/dist/pear/pre.js +0 -433
  377. package/dist/profiling/aggregator.d.ts +0 -15
  378. package/dist/profiling/aggregator.js +0 -100
  379. package/dist/profiling/clock.d.ts +0 -12
  380. package/dist/profiling/clock.js +0 -51
  381. package/dist/profiling/controller.d.ts +0 -33
  382. package/dist/profiling/controller.js +0 -123
  383. package/dist/profiling/envelope.d.ts +0 -10
  384. package/dist/profiling/envelope.js +0 -36
  385. package/dist/profiling/events.d.ts +0 -20
  386. package/dist/profiling/events.js +0 -37
  387. package/dist/profiling/exporters.d.ts +0 -10
  388. package/dist/profiling/exporters.js +0 -236
  389. package/dist/profiling/index.d.ts +0 -36
  390. package/dist/profiling/index.js +0 -31
  391. package/dist/profiling/ring-buffer.d.ts +0 -19
  392. package/dist/profiling/ring-buffer.js +0 -83
  393. package/dist/profiling/types.d.ts +0 -47
  394. package/dist/profiling/types.js +0 -1
  395. package/dist/schemas/archive.d.ts +0 -9
  396. package/dist/schemas/archive.js +0 -17
  397. package/dist/schemas/engine-addon-map.d.ts +0 -5
  398. package/dist/schemas/engine-addon-map.js +0 -52
  399. package/dist/schemas/get-model-info.d.ts +0 -120
  400. package/dist/schemas/get-model-info.js +0 -58
  401. package/dist/schemas/json-schema.d.ts +0 -16
  402. package/dist/schemas/json-schema.js +0 -2
  403. package/dist/schemas/mcp-adapter.d.ts +0 -47
  404. package/dist/schemas/mcp-adapter.js +0 -1
  405. package/dist/schemas/model-src-utils.d.ts +0 -148
  406. package/dist/schemas/model-src-utils.js +0 -35
  407. package/dist/schemas/model-types.d.ts +0 -183
  408. package/dist/schemas/model-types.js +0 -168
  409. package/dist/schemas/ocr.d.ts +0 -125
  410. package/dist/schemas/ocr.js +0 -57
  411. package/dist/schemas/path-validation.d.ts +0 -10
  412. package/dist/schemas/path-validation.js +0 -22
  413. package/dist/schemas/plugin.d.ts +0 -226
  414. package/dist/schemas/plugin.js +0 -158
  415. package/dist/schemas/profiling.d.ts +0 -105
  416. package/dist/schemas/profiling.js +0 -66
  417. package/dist/schemas/registry.d.ts +0 -356
  418. package/dist/schemas/registry.js +0 -93
  419. package/dist/schemas/reload-config.d.ts +0 -476
  420. package/dist/schemas/reload-config.js +0 -44
  421. package/dist/schemas/runtime-context.d.ts +0 -19
  422. package/dist/schemas/runtime-context.js +0 -7
  423. package/dist/schemas/sdk-config.d.ts +0 -2973
  424. package/dist/schemas/sdk-config.js +0 -136
  425. package/dist/schemas/sdk-errors-client.d.ts +0 -31
  426. package/dist/schemas/sdk-errors-client.js +0 -143
  427. package/dist/schemas/sdk-errors-registry.d.ts +0 -6
  428. package/dist/schemas/sdk-errors-registry.js +0 -8
  429. package/dist/schemas/sdk-errors-server.d.ts +0 -89
  430. package/dist/schemas/sdk-errors-server.js +0 -451
  431. package/dist/schemas/shard.d.ts +0 -21
  432. package/dist/schemas/shard.js +0 -17
  433. package/dist/schemas/tools.d.ts +0 -65
  434. package/dist/schemas/tools.js +0 -43
  435. package/dist/schemas/transcription-config.d.ts +0 -383
  436. package/dist/schemas/transcription-config.js +0 -95
  437. package/dist/scripts/run-security-tests-bare.d.ts +0 -2
  438. package/dist/scripts/run-security-tests-bare.js +0 -78
  439. package/dist/scripts/run-security-tests.d.ts +0 -2
  440. package/dist/scripts/run-security-tests.js +0 -22
  441. package/dist/scripts/run-unit-tests.d.ts +0 -2
  442. package/dist/scripts/run-unit-tests.js +0 -17
  443. package/dist/server/bare/ops/embed.d.ts +0 -12
  444. package/dist/server/bare/ops/load-model.d.ts +0 -9
  445. package/dist/server/bare/ops/load-model.js +0 -85
  446. package/dist/server/bare/ops/transcribe.d.ts +0 -3
  447. package/dist/server/bare/ops/transcribe.js +0 -75
  448. package/dist/server/bare/ops/translate.d.ts +0 -5
  449. package/dist/server/bare/ops/unload-model.js +0 -41
  450. package/dist/server/bare/plugins/index.d.ts +0 -8
  451. package/dist/server/bare/plugins/index.js +0 -7
  452. package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.d.ts +0 -6
  453. package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.js +0 -34
  454. package/dist/server/bare/plugins/llamacpp-completion/plugin.d.ts +0 -220
  455. package/dist/server/bare/plugins/llamacpp-completion/plugin.js +0 -155
  456. package/dist/server/bare/plugins/llamacpp-embedding/plugin.d.ts +0 -54
  457. package/dist/server/bare/plugins/llamacpp-embedding/plugin.js +0 -87
  458. package/dist/server/bare/plugins/nmtcpp-translation/plugin.d.ts +0 -367
  459. package/dist/server/bare/plugins/nmtcpp-translation/plugin.js +0 -204
  460. package/dist/server/bare/plugins/onnx-ocr/ops/ocr-stream.d.ts +0 -10
  461. package/dist/server/bare/plugins/onnx-ocr/ops/ocr-stream.js +0 -110
  462. package/dist/server/bare/plugins/onnx-ocr/plugin.d.ts +0 -86
  463. package/dist/server/bare/plugins/onnx-ocr/plugin.js +0 -117
  464. package/dist/server/bare/plugins/onnx-tts/plugin.d.ts +0 -373
  465. package/dist/server/bare/plugins/onnx-tts/plugin.js +0 -182
  466. package/dist/server/bare/plugins/onnx-tts/wav-helper.d.ts +0 -14
  467. package/dist/server/bare/plugins/onnx-tts/wav-helper.js +0 -107
  468. package/dist/server/bare/plugins/parakeet-transcription/plugin.d.ts +0 -317
  469. package/dist/server/bare/plugins/parakeet-transcription/plugin.js +0 -154
  470. package/dist/server/bare/plugins/whispercpp-transcription/plugin.d.ts +0 -237
  471. package/dist/server/bare/plugins/whispercpp-transcription/plugin.js +0 -86
  472. package/dist/server/bare/rag-hyperdb/handlers/chunk.d.ts +0 -3
  473. package/dist/server/bare/rag-hyperdb/handlers/chunk.js +0 -7
  474. package/dist/server/bare/rag-hyperdb/handlers/close-workspace.d.ts +0 -3
  475. package/dist/server/bare/rag-hyperdb/handlers/close-workspace.js +0 -9
  476. package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.d.ts +0 -3
  477. package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.js +0 -14
  478. package/dist/server/bare/rag-hyperdb/handlers/ingest.d.ts +0 -9
  479. package/dist/server/bare/rag-hyperdb/handlers/ingest.js +0 -18
  480. package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.d.ts +0 -3
  481. package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.js +0 -4
  482. package/dist/server/bare/rag-hyperdb/handlers/reindex.d.ts +0 -9
  483. package/dist/server/bare/rag-hyperdb/handlers/reindex.js +0 -16
  484. package/dist/server/bare/rag-hyperdb/rag-operation-manager.d.ts +0 -7
  485. package/dist/server/bare/rag-hyperdb/rag-operation-manager.js +0 -39
  486. package/dist/server/bare/rag-hyperdb/rag-workspace-manager.d.ts +0 -15
  487. package/dist/server/bare/rag-hyperdb/rag-workspace-manager.js +0 -136
  488. package/dist/server/bare/registry/config-registry.d.ts +0 -14
  489. package/dist/server/bare/registry/config-registry.js +0 -82
  490. package/dist/server/bare/registry/model-config-registry.d.ts +0 -4
  491. package/dist/server/bare/registry/model-config-registry.js +0 -15
  492. package/dist/server/bare/registry/model-config-utils.d.ts +0 -15
  493. package/dist/server/bare/registry/model-config-utils.js +0 -112
  494. package/dist/server/bare/registry/registry-client.d.ts +0 -5
  495. package/dist/server/bare/registry/registry-client.js +0 -37
  496. package/dist/server/bare/registry/runtime-context-registry.d.ts +0 -7
  497. package/dist/server/bare/registry/runtime-context-registry.js +0 -26
  498. package/dist/server/bare/utils/audio-input.d.ts +0 -10
  499. package/dist/server/bare/utils/audio-input.js +0 -33
  500. package/dist/server/bare/utils/loader-adapter.d.ts +0 -7
  501. package/dist/server/bare/utils/loader-adapter.js +0 -9
  502. package/dist/server/env.d.ts +0 -22
  503. package/dist/server/env.js +0 -57
  504. package/dist/server/plugins/index.d.ts +0 -2
  505. package/dist/server/plugins/index.js +0 -1
  506. package/dist/server/plugins/registry.d.ts +0 -9
  507. package/dist/server/plugins/registry.js +0 -79
  508. package/dist/server/rpc/delegate-transport.d.ts +0 -19
  509. package/dist/server/rpc/delegate-transport.js +0 -215
  510. package/dist/server/rpc/handler-registry.d.ts +0 -3
  511. package/dist/server/rpc/handler-registry.js +0 -90
  512. package/dist/server/rpc/handler-utils.d.ts +0 -23
  513. package/dist/server/rpc/handler-utils.js +0 -128
  514. package/dist/server/rpc/handlers/get-model-info.d.ts +0 -3
  515. package/dist/server/rpc/handlers/get-model-info.js +0 -164
  516. package/dist/server/rpc/handlers/load-model/download-stats.d.ts +0 -6
  517. package/dist/server/rpc/handlers/load-model/download-stats.js +0 -87
  518. package/dist/server/rpc/handlers/load-model/handler.js +0 -187
  519. package/dist/server/rpc/handlers/load-model/registry.d.ts +0 -11
  520. package/dist/server/rpc/handlers/load-model/registry.js +0 -564
  521. package/dist/server/rpc/handlers/load-model/types.d.ts +0 -29
  522. package/dist/server/rpc/handlers/load-model/types.js +0 -1
  523. package/dist/server/rpc/handlers/ocr-stream.d.ts +0 -3
  524. package/dist/server/rpc/handlers/ocr-stream.js +0 -4
  525. package/dist/server/rpc/handlers/ping.d.ts +0 -3
  526. package/dist/server/rpc/handlers/ping.js +0 -3
  527. package/dist/server/rpc/handlers/plugin-dispatch.d.ts +0 -15
  528. package/dist/server/rpc/handlers/plugin-dispatch.js +0 -59
  529. package/dist/server/rpc/handlers/plugin-invoke.d.ts +0 -4
  530. package/dist/server/rpc/handlers/plugin-invoke.js +0 -92
  531. package/dist/server/rpc/handlers/registry.d.ts +0 -5
  532. package/dist/server/rpc/handlers/registry.js +0 -157
  533. package/dist/server/rpc/handlers/unload-model-delegated.d.ts +0 -3
  534. package/dist/server/rpc/handlers/unload-model-delegated.js +0 -32
  535. package/dist/server/rpc/profiling/context.d.ts +0 -18
  536. package/dist/server/rpc/profiling/context.js +0 -38
  537. package/dist/server/rpc/profiling/delegation-profiler.d.ts +0 -32
  538. package/dist/server/rpc/profiling/delegation-profiler.js +0 -154
  539. package/dist/server/rpc/profiling/index.d.ts +0 -5
  540. package/dist/server/rpc/profiling/index.js +0 -4
  541. package/dist/server/rpc/profiling/operation-metrics.d.ts +0 -25
  542. package/dist/server/rpc/profiling/operation-metrics.js +0 -199
  543. package/dist/server/rpc/profiling/operation-wrappers.d.ts +0 -18
  544. package/dist/server/rpc/profiling/operation-wrappers.js +0 -124
  545. package/dist/server/rpc/profiling/profiler.d.ts +0 -13
  546. package/dist/server/rpc/profiling/profiler.js +0 -97
  547. package/dist/server/utils/archive.d.ts +0 -4
  548. package/dist/server/utils/archive.js +0 -179
  549. package/dist/server/utils/checksum.d.ts +0 -4
  550. package/dist/server/utils/checksum.js +0 -31
  551. package/dist/server/utils/config-transform.d.ts +0 -3
  552. package/dist/server/utils/config-transform.js +0 -23
  553. package/dist/server/utils/formatting.d.ts +0 -19
  554. package/dist/server/utils/formatting.js +0 -61
  555. package/dist/server/utils/gguf-tensor-extractor.d.ts +0 -15
  556. package/dist/server/utils/gguf-tensor-extractor.js +0 -314
  557. package/dist/server/utils/path-security.d.ts +0 -12
  558. package/dist/server/utils/path-security.js +0 -25
  559. package/dist/server/utils/shard-utils.d.ts +0 -48
  560. package/dist/server/utils/shard-utils.js +0 -125
  561. package/dist/server/utils/tool-integration.d.ts +0 -13
  562. package/dist/server/utils/tool-integration.js +0 -43
  563. package/dist/server/worker-core.d.ts +0 -6
  564. package/dist/server/worker-core.js +0 -88
  565. package/dist/utils/errors-base.d.ts +0 -3
  566. package/dist/utils/errors-base.js +0 -13
  567. package/dist/utils/errors-client.d.ts +0 -137
  568. package/dist/utils/errors-client.js +0 -240
  569. package/dist/utils/errors-server.d.ts +0 -236
  570. package/dist/utils/errors-server.js +0 -412
  571. package/dist/utils/global-singleton.d.ts +0 -2
  572. package/dist/utils/global-singleton.js +0 -10
  573. package/dist/utils/mcp-adapter.d.ts +0 -12
  574. package/dist/utils/mcp-adapter.js +0 -103
  575. package/dist/utils/object.d.ts +0 -2
  576. package/dist/utils/object.js +0 -3
  577. package/dist/utils/path-sanitize.d.ts +0 -17
  578. package/dist/utils/path-sanitize.js +0 -54
  579. package/dist/utils/tool-helpers.d.ts +0 -25
  580. package/dist/utils/tool-helpers.js +0 -112
  581. package/expo/plugins/patches/android-link.mjs +0 -63
  582. package/expo/plugins/patches/ios-link.mjs +0 -63
  583. /package/dist/examples/{transcription/whispercpp-filesystem.d.ts → whispercpp-filesystem.d.ts} +0 -0
  584. /package/dist/examples/{transcription/whispercpp-microphone-record.d.ts → whispercpp-microphone-record.d.ts} +0 -0
  585. /package/dist/models/{registry → hyperdrive}/index.d.ts +0 -0
  586. /package/dist/server/bare/{ops → addons}/cancel.d.ts +0 -0
  587. /package/dist/server/bare/{plugins/onnx-tts/ops → addons/tts/handlers}/text-to-speech.d.ts +0 -0
  588. /package/dist/server/bare/{ops → addons}/unload-model.d.ts +0 -0
@@ -1,51 +1,22 @@
1
1
  import crypto from "bare-crypto";
2
2
  import { promises as fsPromises } from "bare-fs";
3
3
  import path from "bare-path";
4
- import { getKVCacheDir, validateAndJoinPath } from "../../utils/index.js";
5
- import { getServerLogger } from "../../../logging/index.js";
6
- const logger = getServerLogger();
7
- // In-memory registry tracks caches initialized this session (addon defers disk writes)
8
- const initializedCaches = new Set();
9
- function getCacheRegistryKey(modelId, configHash, cacheKey) {
10
- return `${modelId}:${configHash}:${cacheKey}`;
11
- }
12
- export function markCacheInitialized(modelId, configHash, cacheKey) {
13
- initializedCaches.add(getCacheRegistryKey(modelId, configHash, cacheKey));
14
- }
15
- export function isCacheInitialized(modelId, configHash, cacheKey) {
16
- return initializedCaches.has(getCacheRegistryKey(modelId, configHash, cacheKey));
17
- }
18
- export function clearCacheRegistry(cacheKey) {
19
- if (cacheKey) {
20
- for (const key of initializedCaches) {
21
- if (key.includes(`:${cacheKey}`)) {
22
- initializedCaches.delete(key);
23
- }
24
- }
25
- }
26
- else {
27
- initializedCaches.clear();
28
- }
29
- }
4
+ import { getKVCacheDir } from "../../../utils/index.js";
30
5
  export function extractSystemPrompt(messages) {
31
6
  const systemMessage = messages.find((msg) => msg.role === "system");
32
7
  return systemMessage ? systemMessage.content : null;
33
8
  }
34
- function getToolNamesForHash(tools) {
35
- if (!Array.isArray(tools))
36
- return [];
37
- return tools
38
- .map((t) => t.name)
39
- .filter((n) => typeof n === "string")
40
- .sort();
41
- }
42
- // Cache hash based on system prompt + tool names
43
- // Different tools = different cache (tools anchored in first message, protected from n_discarded)
44
- export function generateConfigHash(systemPrompt, tools) {
9
+ export function generateConfigHash(modelConfig, systemPrompt, tools) {
45
10
  const hash = crypto.createHash("sha256");
46
- const toolNames = getToolNamesForHash(tools);
47
- hash.update(Buffer.from(JSON.stringify({ systemPrompt, toolNames }), "utf8"));
48
- return hash.digest("hex").substring(0, 16);
11
+ const configStr = JSON.stringify({
12
+ config: modelConfig,
13
+ systemPrompt,
14
+ tools,
15
+ });
16
+ const configBuffer = Buffer.from(configStr, "utf8");
17
+ hash.update(configBuffer);
18
+ const hashString = hash.digest("hex");
19
+ return hashString.substring(0, 16);
49
20
  }
50
21
  export function generateCacheKey(messages) {
51
22
  const hash = crypto.createHash("sha256");
@@ -57,8 +28,8 @@ export function generateCacheKey(messages) {
57
28
  }
58
29
  export async function getCacheFilePath(modelId, configHash, cacheKey) {
59
30
  const cacheDir = getKVCacheDir();
60
- const sessionCacheDir = validateAndJoinPath(cacheDir, cacheKey);
61
- const modelCacheDir = validateAndJoinPath(sessionCacheDir, modelId);
31
+ const sessionCacheDir = path.join(cacheDir, cacheKey);
32
+ const modelCacheDir = path.join(sessionCacheDir, modelId);
62
33
  try {
63
34
  await fsPromises.mkdir(sessionCacheDir, { recursive: true });
64
35
  await fsPromises.mkdir(modelCacheDir, { recursive: true });
@@ -95,19 +66,13 @@ export async function renameCacheFile(oldPath, newPath) {
95
66
  await fsPromises.rename(oldPath, newPath);
96
67
  }
97
68
  catch (error) {
98
- logger.error("Error renaming cache file:", error instanceof Error ? error.message : String(error));
69
+ console.error("Error renaming cache file:", error instanceof Error ? error.message : String(error));
99
70
  }
100
71
  }
101
72
  export async function customCacheExists(modelId, configHash, cacheKey) {
102
- // Check in-memory registry first (addon defers disk writes)
103
- if (isCacheInitialized(modelId, configHash, cacheKey)) {
104
- return true;
105
- }
106
- // Then check file system (for caches from previous runs)
107
73
  const cachePath = await getCacheFilePath(modelId, configHash, cacheKey);
108
74
  try {
109
75
  await fsPromises.access(cachePath);
110
- markCacheInitialized(modelId, configHash, cacheKey);
111
76
  return true;
112
77
  }
113
78
  catch {
@@ -122,18 +87,18 @@ export async function deleteCache(options) {
122
87
  await fsPromises.mkdir(cacheDir, { recursive: true });
123
88
  }
124
89
  catch (error) {
125
- logger.error("Error deleting all caches:", error instanceof Error ? error.message : String(error));
90
+ console.error("Error deleting all caches:", error instanceof Error ? error.message : String(error));
126
91
  }
127
92
  }
128
93
  else if ("kvCacheKey" in options) {
129
- const kvCacheDir = validateAndJoinPath(cacheDir, options.kvCacheKey);
94
+ const kvCacheDir = path.join(cacheDir, options.kvCacheKey);
130
95
  if (options.modelId) {
131
- const modelCacheDir = validateAndJoinPath(kvCacheDir, options.modelId);
96
+ const modelCacheDir = path.join(kvCacheDir, options.modelId);
132
97
  try {
133
98
  await fsPromises.rm(modelCacheDir, { recursive: true });
134
99
  }
135
100
  catch (error) {
136
- logger.error(`Error deleting model cache ${options.kvCacheKey}/${options.modelId}:`, error instanceof Error ? error.message : String(error));
101
+ console.error(`Error deleting model cache ${options.kvCacheKey}/${options.modelId}:`, error instanceof Error ? error.message : String(error));
137
102
  }
138
103
  }
139
104
  else {
@@ -141,7 +106,7 @@ export async function deleteCache(options) {
141
106
  await fsPromises.rm(kvCacheDir, { recursive: true });
142
107
  }
143
108
  catch (error) {
144
- logger.error(`Error deleting cache ${options.kvCacheKey}:`, error instanceof Error ? error.message : String(error));
109
+ console.error(`Error deleting cache ${options.kvCacheKey}:`, error instanceof Error ? error.message : String(error));
145
110
  }
146
111
  }
147
112
  }
@@ -0,0 +1,3 @@
1
+ import { type LoadModelServerParams } from "../../../schemas/index";
2
+ export declare function loadModel(params: LoadModelServerParams): Promise<void>;
3
+ //# sourceMappingURL=load-model.d.ts.map
@@ -0,0 +1,62 @@
1
+ import { promises as fsPromises } from "bare-fs";
2
+ import path from "bare-path";
3
+ import process from "bare-process";
4
+ import { registerModel, isModelLoaded, } from "../registry/model-registry.js";
5
+ import { loadModelServerParamsSchema, } from "../../../schemas/index.js";
6
+ import { createWhisperModel } from "./whispercpp/index.js";
7
+ import { createLlmModel } from "./llamacpp/index.js";
8
+ import { createEmbeddingsModel } from "./llamacpp/index.js";
9
+ import { createNmtModel } from "./translation/index.js";
10
+ import { createTtsModel } from "./tts/index.js";
11
+ export async function loadModel(params) {
12
+ const { modelId, modelPath, options, projectionModelPath, vadModelPath, ttsConfigModelPath, eSpeakDataPath, } = loadModelServerParamsSchema.parse(params);
13
+ const { modelConfig, modelType } = options;
14
+ // Check if model is already loaded
15
+ if (isModelLoaded(modelId)) {
16
+ console.log(`${modelType} model ${modelId} is already loaded`);
17
+ return;
18
+ }
19
+ // Validate the file exists
20
+ console.log("cwd", process.cwd());
21
+ try {
22
+ const modelDir = path.dirname(modelPath);
23
+ const modelFile = path.basename(modelPath);
24
+ const files = (await fsPromises.readdir(modelDir));
25
+ if (!files.includes(modelFile)) {
26
+ throw new Error(`${modelType} model file ${modelFile} not found in directory ${modelDir}`);
27
+ }
28
+ // File exists, continue
29
+ }
30
+ catch (error) {
31
+ console.error(`Error reading ${modelType} model directory:`, error instanceof Error ? error.message : String(error));
32
+ throw new Error(`Failed to locate ${modelType} model file: ${modelPath}`);
33
+ }
34
+ let model;
35
+ switch (modelType) {
36
+ case "llm":
37
+ model = createLlmModel(modelId, modelPath, modelConfig, projectionModelPath);
38
+ break;
39
+ case "whisper":
40
+ model = createWhisperModel(modelId, modelPath, modelConfig, vadModelPath);
41
+ break;
42
+ case "embeddings":
43
+ model = createEmbeddingsModel(modelId, modelPath, modelConfig);
44
+ break;
45
+ case "nmt":
46
+ model = createNmtModel(modelId, modelPath, modelConfig);
47
+ break;
48
+ case "tts":
49
+ if (!eSpeakDataPath) {
50
+ throw new Error("eSpeakDataPath is required for TTS models");
51
+ }
52
+ model = createTtsModel(modelId, modelPath, modelConfig, ttsConfigModelPath, eSpeakDataPath);
53
+ break;
54
+ default:
55
+ // Should never happen
56
+ throw new Error(`Unknown model type`);
57
+ }
58
+ console.log(`${modelType}: Loading model ${modelId}...`);
59
+ await model.load(false);
60
+ console.log(`${modelType} model ${modelId} loaded`);
61
+ registerModel(modelId, { model, path: modelPath, config: modelConfig });
62
+ }
@@ -0,0 +1,4 @@
1
+ import { type AnyModel } from "../../registry/model-registry";
2
+ import { type NmtConfig } from "../../../../schemas/index";
3
+ export declare function createNmtModel(modelId: string, modelPath: string, nmtConfig: NmtConfig): AnyModel;
4
+ //# sourceMappingURL=create-model.d.ts.map
@@ -0,0 +1,45 @@
1
+ import TranslationNmtcpp from "@qvac/translation-nmtcpp";
2
+ import { Readable } from "bare-stream";
3
+ import {} from "../../registry/model-registry.js";
4
+ import { INDICTRANS_LANGUAGES } from "../../../../schemas/index.js";
5
+ import { createStreamLogger } from "../../../../logging/index.js";
6
+ import { parseModelPath } from "../../../utils/index.js";
7
+ // Mimic qvac-lib-dl-filesystem functionality
8
+ function createFilesystemDLMimic(options) {
9
+ return {
10
+ dirPath: options.dirPath,
11
+ getStream: () => {
12
+ return Promise.resolve(Readable.from([]));
13
+ },
14
+ ready: () => Promise.resolve(),
15
+ close: () => Promise.resolve(),
16
+ destroy: () => Promise.resolve(),
17
+ start: () => Promise.resolve(),
18
+ stop: () => Promise.resolve(),
19
+ };
20
+ }
21
+ export function createNmtModel(modelId, modelPath, nmtConfig) {
22
+ const { dirPath, basePath } = parseModelPath(modelPath);
23
+ const dl = createFilesystemDLMimic({
24
+ dirPath: "./",
25
+ });
26
+ const logger = createStreamLogger(modelId, "nmtcpp");
27
+ const args = {
28
+ loader: dl,
29
+ logger,
30
+ modelName: basePath,
31
+ diskPath: dirPath,
32
+ params: {
33
+ mode: nmtConfig.mode,
34
+ srcLang: nmtConfig.from,
35
+ dstLang: nmtConfig.to,
36
+ },
37
+ };
38
+ const config = {
39
+ modelType: INDICTRANS_LANGUAGES.includes(nmtConfig.from) &&
40
+ INDICTRANS_LANGUAGES.includes(nmtConfig.to)
41
+ ? TranslationNmtcpp.ModelTypes.IndicTrans
42
+ : TranslationNmtcpp.ModelTypes.Opus,
43
+ };
44
+ return new TranslationNmtcpp(args, config);
45
+ }
@@ -0,0 +1,3 @@
1
+ import { type TranslateParams, type TranslationStats } from "../../../../../schemas/index";
2
+ export declare function translate(params: TranslateParams): AsyncGenerator<string, TranslationStats | undefined, unknown>;
3
+ //# sourceMappingURL=translate.d.ts.map
@@ -1,68 +1,35 @@
1
- import { getModel } from "../registry/model-registry.js";
2
- import { translateServerParamsSchema, normalizeModelType, ModelType, AFRICAN_LANGUAGES_MAP, } from "../../../schemas/index.js";
1
+ import { getModel } from "../../../registry/model-registry.js";
2
+ import { translateServerParamsSchema, } from "../../../../../schemas/index.js";
3
3
  import { getLangName } from "@qvac/langdetect-text";
4
- export function getLanguage(code) {
4
+ function getLanguage(code) {
5
5
  if (!code)
6
6
  return "";
7
- if (AFRICAN_LANGUAGES_MAP.has(code))
8
- return AFRICAN_LANGUAGES_MAP.get(code);
9
7
  const fullName = getLangName(code);
10
8
  return fullName ?? code.toUpperCase();
11
9
  }
12
- export function isAfrican(code) {
13
- return !!code && AFRICAN_LANGUAGES_MAP.has(code);
14
- }
15
10
  export async function* translate(params) {
16
- const { modelId, text, modelType: inputModelType } = params;
17
- const canonicalModelType = normalizeModelType(inputModelType);
18
- const isLlm = canonicalModelType === ModelType.llamacppCompletion;
19
- const from = isLlm ? params.from : undefined;
20
- const to = isLlm ? params.to : undefined;
21
- const context = isLlm ? params.context : undefined;
22
- const afriquePrompt = isLlm && (isAfrican(from) || isAfrican(to));
11
+ const { modelId, text, modelType } = params;
12
+ const from = params.modelType === "llm" ? params.from : undefined;
13
+ const to = params.modelType === "llm" ? params.to : undefined;
14
+ const context = params.modelType === "llm" ? params.context : undefined;
23
15
  translateServerParamsSchema.parse(params);
24
16
  const model = getModel(modelId);
25
17
  const fromLanguage = getLanguage(from);
26
18
  const toLanguage = getLanguage(to);
27
- const startTime = Date.now();
28
- let processedTokens = 0;
29
- // Check if input is an array and model type is NMT
30
- if (Array.isArray(text) &&
31
- canonicalModelType === ModelType.nmtcppTranslation) {
32
- // Use runBatch for batch processing
33
- const translations = await model.runBatch(text);
34
- // Yield each translation with a newline separator
35
- for (let i = 0; i < translations.length; i++) {
36
- const translation = translations[i];
37
- processedTokens++;
38
- yield translation;
39
- if (i < translations.length - 1) {
40
- yield "\n";
41
- }
42
- }
43
- const endTime = Date.now();
44
- return {
45
- processedTokens,
46
- processingTime: endTime - startTime,
47
- };
48
- }
49
- // Single text processing (for NMT or LLM)
50
- const singleText = Array.isArray(text) ? text[0] : text;
51
19
  // Prepare input based on model type
52
- const input = canonicalModelType === ModelType.nmtcppTranslation
53
- ? singleText
20
+ const input = modelType === "nmt"
21
+ ? text
54
22
  : [
55
23
  {
56
- role: afriquePrompt ? "user" : "system",
57
- content: afriquePrompt
58
- ? `Translate ${fromLanguage} to ${toLanguage}.\n${fromLanguage}: ${singleText}\n${toLanguage}:`
59
- : `${context ? `${context}. ` : ""}Translate the following text from ${fromLanguage} into ${toLanguage}. Only output the translation, nothing else.\n\n${fromLanguage}: ${singleText}\n${toLanguage}:`,
24
+ role: "system",
25
+ content: `${context ? `${context}. ` : ""}Translate the following text from ${fromLanguage} into ${toLanguage}. Only output the translation, nothing else.\n\n${fromLanguage}: ${text}\n${toLanguage}:`,
60
26
  },
61
27
  ];
28
+ const startTime = Date.now();
29
+ let processedTokens = 0;
62
30
  const response = await model.run(input);
63
31
  // Check if the response has an iterate method (like LLM models)
64
- if (canonicalModelType === ModelType.llamacppCompletion &&
65
- typeof response.iterate === "function") {
32
+ if (modelType === "llm" && typeof response.iterate === "function") {
66
33
  for await (const token of response.iterate()) {
67
34
  processedTokens++;
68
35
  yield token;
@@ -0,0 +1,3 @@
1
+ export { createNmtModel } from "./create-model";
2
+ export { translate } from "./handlers/translate";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,2 @@
1
+ export { createNmtModel } from "./create-model.js";
2
+ export { translate } from "./handlers/translate.js";
@@ -0,0 +1,6 @@
1
+ import ONNXTTS from "@qvac/tts-onnx";
2
+ import { type AnyModel } from "../../registry/model-registry";
3
+ import { type TtsConfig } from "../../../../schemas/index";
4
+ export type TtsModel = ONNXTTS;
5
+ export declare function createTtsModel(modelId: string, modelPath: string, ttsConfig: TtsConfig, ttsConfigModelPath: string, eSpeakDataPath: string): AnyModel;
6
+ //# sourceMappingURL=create-model.d.ts.map
@@ -0,0 +1,40 @@
1
+ import ONNXTTS from "@qvac/tts-onnx";
2
+ import {} from "../../registry/model-registry.js";
3
+ import {} from "../../../../schemas/index.js";
4
+ import { createStreamLogger } from "../../../../logging/index.js";
5
+ import { parseModelPath } from "../../../utils/index.js";
6
+ // Mimic qvac-lib-dl-filesystem functionality
7
+ function createFilesystemDLMimic(options) {
8
+ return {
9
+ dirPath: options.dirPath,
10
+ getStream: () => {
11
+ return Promise.resolve({
12
+ async *[Symbol.asyncIterator]() {
13
+ await Promise.resolve();
14
+ yield Buffer.alloc(0);
15
+ },
16
+ });
17
+ },
18
+ ready: () => Promise.resolve(),
19
+ };
20
+ }
21
+ export function createTtsModel(modelId, modelPath, ttsConfig, ttsConfigModelPath, eSpeakDataPath) {
22
+ const { dirPath, basePath: fileName } = parseModelPath(modelPath);
23
+ const dl = createFilesystemDLMimic({
24
+ dirPath: "./",
25
+ });
26
+ const logger = createStreamLogger(modelId, "tts");
27
+ const args = {
28
+ loader: dl,
29
+ logger,
30
+ mainModelUrl: fileName,
31
+ configJsonPath: parseModelPath(ttsConfigModelPath).basePath,
32
+ cache: dirPath,
33
+ eSpeakDataPath: eSpeakDataPath,
34
+ opts: { stats: true },
35
+ };
36
+ const config = {
37
+ language: ttsConfig.language,
38
+ };
39
+ return new ONNXTTS(args, config);
40
+ }
@@ -6,10 +6,10 @@ export async function* textToSpeech(params) {
6
6
  const response = await model.run({ input: text, inputType });
7
7
  if (!stream) {
8
8
  // Non-streaming mode: wait for complete response and yield once
9
- let completeBuffer = [];
9
+ const completeBuffer = [];
10
10
  await response
11
11
  .onUpdate((data) => {
12
- completeBuffer = completeBuffer.concat(Array.from(data.outputArray));
12
+ completeBuffer.push(...Array.from(data.outputArray));
13
13
  })
14
14
  .await();
15
15
  yield {
@@ -22,9 +22,7 @@ export async function* textToSpeech(params) {
22
22
  // Streaming mode: use async iterator pattern
23
23
  const outputQueue = [];
24
24
  let isComplete = false;
25
- let streamError = null;
26
25
  let resolveNext = null;
27
- let rejectNext = null;
28
26
  // Start the response processing
29
27
  const responsePromise = response
30
28
  .onUpdate((data) => {
@@ -39,7 +37,6 @@ export async function* textToSpeech(params) {
39
37
  done: false,
40
38
  });
41
39
  resolveNext = null;
42
- rejectNext = null;
43
40
  }
44
41
  else {
45
42
  // Otherwise, queue the output
@@ -52,29 +49,11 @@ export async function* textToSpeech(params) {
52
49
  if (resolveNext) {
53
50
  resolveNext({ value: undefined, done: true });
54
51
  resolveNext = null;
55
- rejectNext = null;
56
- }
57
- })
58
- .catch((err) => {
59
- streamError = err;
60
- isComplete = true;
61
- if (rejectNext) {
62
- rejectNext(err);
63
- resolveNext = null;
64
- rejectNext = null;
65
52
  }
66
53
  });
67
54
  // Create an async iterator
68
55
  const asyncIterator = {
69
56
  async next() {
70
- if (streamError) {
71
- if (streamError instanceof Error)
72
- throw streamError;
73
- const message = typeof streamError === "string"
74
- ? streamError
75
- : JSON.stringify(streamError);
76
- throw new Error(message);
77
- }
78
57
  if (outputQueue.length > 0) {
79
58
  const data = outputQueue.shift();
80
59
  return {
@@ -90,9 +69,8 @@ export async function* textToSpeech(params) {
90
69
  return { value: undefined, done: true };
91
70
  }
92
71
  // Wait for the next output
93
- return new Promise((resolve, reject) => {
72
+ return new Promise((resolve) => {
94
73
  resolveNext = resolve;
95
- rejectNext = reject;
96
74
  });
97
75
  },
98
76
  [Symbol.asyncIterator]() {
@@ -0,0 +1,3 @@
1
+ export { createTtsModel } from "./create-model";
2
+ export { textToSpeech } from "./handlers/text-to-speech";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,2 @@
1
+ export { createTtsModel } from "./create-model.js";
2
+ export { textToSpeech } from "./handlers/text-to-speech.js";
@@ -0,0 +1,20 @@
1
+ import { promises as fsPromises } from "bare-fs";
2
+ import { unregisterModel } from "../registry/model-registry.js";
3
+ import { unregisterAllLoggingStreams } from "../registry/logging-stream-registry.js";
4
+ import { unloadModelParamsSchema } from "../../../schemas/index.js";
5
+ export async function unloadModel(params) {
6
+ const { modelId, clearStorage } = unloadModelParamsSchema.parse(params);
7
+ const entry = unregisterModel(modelId);
8
+ if (!entry) {
9
+ throw new Error(`Model with ID "${modelId}" is not loaded`);
10
+ }
11
+ if (entry.local?.model && entry.local.model.unload) {
12
+ await entry.local.model.unload();
13
+ }
14
+ if (clearStorage && entry.local?.path) {
15
+ await fsPromises.rm(entry.local.path, { recursive: true, force: true });
16
+ console.log(`Model storage cleared: ${entry.local.path}`);
17
+ }
18
+ unregisterAllLoggingStreams(modelId);
19
+ console.log(`Model ${modelId} unloaded`);
20
+ }
@@ -0,0 +1,6 @@
1
+ import TranscriptionWhispercpp from "@qvac/transcription-whispercpp";
2
+ import { type AnyModel } from "../../registry/model-registry";
3
+ import { type WhisperConfig } from "../../../../schemas/index";
4
+ export type WhispercppModel = TranscriptionWhispercpp;
5
+ export declare function createWhisperModel(modelId: string, modelPath: string, whisperConfig: WhisperConfig, vadModelPath?: string): AnyModel;
6
+ //# sourceMappingURL=create-model.d.ts.map
@@ -0,0 +1,55 @@
1
+ import TranscriptionWhispercpp from "@qvac/transcription-whispercpp";
2
+ import { Readable } from "bare-stream";
3
+ import {} from "../../registry/model-registry.js";
4
+ import {} from "../../../../schemas/index.js";
5
+ import { createStreamLogger } from "../../../../logging/index.js";
6
+ import { parseModelPath } from "../../../utils/index.js";
7
+ // Mimic qvac-lib-dl-filesystem functionality
8
+ function createFilesystemDLMimic(options) {
9
+ return {
10
+ dirPath: options.dirPath,
11
+ getStream: () => {
12
+ return Readable.from([]);
13
+ },
14
+ ready: () => Promise.resolve(),
15
+ close: () => Promise.resolve(),
16
+ destroy: () => Promise.resolve(),
17
+ getFileSize: () => Promise.resolve(0),
18
+ download: () => Promise.resolve({
19
+ await: () => Promise.resolve(),
20
+ }),
21
+ downloadFiles: () => Promise.resolve([]),
22
+ };
23
+ }
24
+ export function createWhisperModel(modelId, modelPath, whisperConfig, vadModelPath) {
25
+ const { dirPath, basePath } = parseModelPath(modelPath);
26
+ // Handle VAD model path - now uses vadModelPath parameter for consistency
27
+ let vadModelName = "";
28
+ let vadDirPath = "./";
29
+ if (vadModelPath) {
30
+ const vadParsed = parseModelPath(vadModelPath);
31
+ vadDirPath = vadParsed.dirPath;
32
+ vadModelName = vadParsed.basePath;
33
+ }
34
+ const dl = createFilesystemDLMimic({
35
+ dirPath: vadDirPath,
36
+ });
37
+ const logger = createStreamLogger(modelId, "whispercpp");
38
+ const args = {
39
+ loader: dl,
40
+ logger,
41
+ modelName: basePath,
42
+ diskPath: dirPath,
43
+ vadModelName,
44
+ opts: {
45
+ stats: false,
46
+ },
47
+ };
48
+ const config = {
49
+ whisperConfig: {
50
+ ...whisperConfig,
51
+ vad_model: vadModelPath || "",
52
+ },
53
+ };
54
+ return new TranscriptionWhispercpp(args, config);
55
+ }
@@ -0,0 +1,3 @@
1
+ import { type TranscribeParams } from "../../../../../schemas/index";
2
+ export declare function transcribe(params: TranscribeParams): AsyncGenerator<string, void, void>;
3
+ //# sourceMappingURL=transcribe-stream.d.ts.map
@@ -0,0 +1,48 @@
1
+ import { getModel } from "../../../registry/model-registry.js";
2
+ import { Readable } from "bare-stream";
3
+ import fs from "bare-fs";
4
+ import { needsDecoding, decodeAudioToStream } from "../../../../utils/index.js";
5
+ import {} from "../../../../../schemas/index.js";
6
+ export async function* transcribe(params) {
7
+ const model = getModel(params.modelId);
8
+ let audioStream;
9
+ const audioChunk = params.audioChunk;
10
+ switch (audioChunk.type) {
11
+ case "base64": {
12
+ const audioBuffer = Buffer.from(audioChunk.value, "base64");
13
+ audioStream = Readable.from([audioBuffer]);
14
+ break;
15
+ }
16
+ case "filePath": {
17
+ const filePath = audioChunk.value;
18
+ try {
19
+ fs.accessSync(filePath);
20
+ }
21
+ catch {
22
+ throw new Error(`Audio file not found or not accessible: ${filePath}`);
23
+ }
24
+ if (needsDecoding(filePath)) {
25
+ audioStream = await decodeAudioToStream(filePath);
26
+ }
27
+ else {
28
+ audioStream = fs.createReadStream(filePath);
29
+ }
30
+ break;
31
+ }
32
+ default:
33
+ throw new Error(`Invalid audio chunk type`);
34
+ }
35
+ // Run transcription with streaming enabled
36
+ const response = await model.run(audioStream);
37
+ for await (const output of response.iterate()) {
38
+ console.log("Streaming Transcription Update:", output);
39
+ // Filter out blank audio chunks and process the text
40
+ const text = output
41
+ .filter((chunk) => !chunk.text.includes("[BLANK_AUDIO]"))
42
+ .map((chunk) => chunk.text)
43
+ .join("");
44
+ if (text.trim()) {
45
+ yield text;
46
+ }
47
+ }
48
+ }
@@ -0,0 +1,3 @@
1
+ export { transcribe as transcribeStream } from "./handlers/transcribe-stream";
2
+ export { createWhisperModel } from "./create-model";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,2 @@
1
+ export { transcribe as transcribeStream } from "./handlers/transcribe-stream.js";
2
+ export { createWhisperModel } from "./create-model.js";
@@ -1,10 +1,4 @@
1
1
  import RPC from "bare-rpc";
2
2
  import type { RPCOptions } from "../../schemas/index";
3
3
  export declare function getRPC(topic: string, publicKey: string, options?: RPCOptions): Promise<RPC>;
4
- /**
5
- * Remove a stale RPC connection for a peer.
6
- * Called when a delegation request fails (e.g., timeout) so the next
7
- * attempt creates a fresh connection instead of reusing a dead RPC.
8
- */
9
- export declare function cleanupStaleConnection(publicKey: string): void;
10
4
  //# sourceMappingURL=delegate-rpc-client.d.ts.map