@qvac/sdk 0.1.0-dev.1760648187.328e967

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 (287) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +301 -0
  3. package/dist/client/api/cancel.d.ts +25 -0
  4. package/dist/client/api/cancel.js +37 -0
  5. package/dist/client/api/completion-stream.d.ts +50 -0
  6. package/dist/client/api/completion-stream.js +103 -0
  7. package/dist/client/api/download-asset.d.ts +39 -0
  8. package/dist/client/api/download-asset.js +72 -0
  9. package/dist/client/api/embed.d.ts +11 -0
  10. package/dist/client/api/embed.js +24 -0
  11. package/dist/client/api/index.d.ts +13 -0
  12. package/dist/client/api/index.js +12 -0
  13. package/dist/client/api/load-model.d.ts +98 -0
  14. package/dist/client/api/load-model.js +154 -0
  15. package/dist/client/api/logging-stream.d.ts +21 -0
  16. package/dist/client/api/logging-stream.js +32 -0
  17. package/dist/client/api/ping.d.ts +11 -0
  18. package/dist/client/api/ping.js +18 -0
  19. package/dist/client/api/provide.d.ts +18 -0
  20. package/dist/client/api/provide.js +27 -0
  21. package/dist/client/api/rag.d.ts +42 -0
  22. package/dist/client/api/rag.js +97 -0
  23. package/dist/client/api/transcribe.d.ts +24 -0
  24. package/dist/client/api/transcribe.js +52 -0
  25. package/dist/client/api/translate.d.ts +47 -0
  26. package/dist/client/api/translate.js +114 -0
  27. package/dist/client/api/unload-model.d.ts +11 -0
  28. package/dist/client/api/unload-model.js +26 -0
  29. package/dist/client/index.d.ts +2 -0
  30. package/dist/client/index.js +1 -0
  31. package/dist/client/logging-stream-registry.d.ts +5 -0
  32. package/dist/client/logging-stream-registry.js +60 -0
  33. package/dist/client/rpc/bare-client.d.ts +112 -0
  34. package/dist/client/rpc/bare-client.js +82 -0
  35. package/dist/client/rpc/bare-rpc-client.d.ts +4 -0
  36. package/dist/client/rpc/bare-rpc-client.js +87 -0
  37. package/dist/client/rpc/expo-rpc-client.d.ts +3 -0
  38. package/dist/client/rpc/expo-rpc-client.js +57 -0
  39. package/dist/client/rpc/node-rpc-client.d.ts +9 -0
  40. package/dist/client/rpc/node-rpc-client.js +99 -0
  41. package/dist/client/rpc/rpc-client.d.ts +5 -0
  42. package/dist/client/rpc/rpc-client.js +91 -0
  43. package/dist/client/rpc/rpc-error.d.ts +19 -0
  44. package/dist/client/rpc/rpc-error.js +39 -0
  45. package/dist/constants/audio.d.ts +3 -0
  46. package/dist/constants/audio.js +17 -0
  47. package/dist/constants/index.d.ts +2 -0
  48. package/dist/constants/index.js +1 -0
  49. package/dist/examples/delegated-inference/consumer.d.ts +2 -0
  50. package/dist/examples/delegated-inference/consumer.js +56 -0
  51. package/dist/examples/delegated-inference/provider.d.ts +2 -0
  52. package/dist/examples/delegated-inference/provider.js +57 -0
  53. package/dist/examples/download-with-cancel.d.ts +2 -0
  54. package/dist/examples/download-with-cancel.js +46 -0
  55. package/dist/examples/embed-hyperdrive.d.ts +2 -0
  56. package/dist/examples/embed-hyperdrive.js +19 -0
  57. package/dist/examples/kv-cache-example.d.ts +2 -0
  58. package/dist/examples/kv-cache-example.js +74 -0
  59. package/dist/examples/llamacpp-file-logging.d.ts +2 -0
  60. package/dist/examples/llamacpp-file-logging.js +62 -0
  61. package/dist/examples/llamacpp-filesystem.d.ts +2 -0
  62. package/dist/examples/llamacpp-filesystem.js +40 -0
  63. package/dist/examples/llamacpp-http.d.ts +2 -0
  64. package/dist/examples/llamacpp-http.js +41 -0
  65. package/dist/examples/llamacpp-hyperdrive.d.ts +2 -0
  66. package/dist/examples/llamacpp-hyperdrive.js +39 -0
  67. package/dist/examples/llamacpp-multimodal.d.ts +2 -0
  68. package/dist/examples/llamacpp-multimodal.js +62 -0
  69. package/dist/examples/llamacpp-native-tools.d.ts +2 -0
  70. package/dist/examples/llamacpp-native-tools.js +64 -0
  71. package/dist/examples/llamacpp-tools-routing.d.ts +2 -0
  72. package/dist/examples/llamacpp-tools-routing.js +364 -0
  73. package/dist/examples/llamacpp-tools.d.ts +2 -0
  74. package/dist/examples/llamacpp-tools.js +81 -0
  75. package/dist/examples/multi-model-demo.d.ts +2 -0
  76. package/dist/examples/multi-model-demo.js +75 -0
  77. package/dist/examples/parallel-download.d.ts +2 -0
  78. package/dist/examples/parallel-download.js +21 -0
  79. package/dist/examples/rag/rag-chromadb.d.ts +2 -0
  80. package/dist/examples/rag/rag-chromadb.js +130 -0
  81. package/dist/examples/rag/rag-hyperdb-workspaces.d.ts +2 -0
  82. package/dist/examples/rag/rag-hyperdb-workspaces.js +106 -0
  83. package/dist/examples/rag/rag-hyperdb.d.ts +2 -0
  84. package/dist/examples/rag/rag-hyperdb.js +50 -0
  85. package/dist/examples/rag/rag-lancedb.d.ts +2 -0
  86. package/dist/examples/rag/rag-lancedb.js +95 -0
  87. package/dist/examples/rag/rag-sqlite.d.ts +2 -0
  88. package/dist/examples/rag/rag-sqlite.js +107 -0
  89. package/dist/examples/seed-hyperdrive.d.ts +2 -0
  90. package/dist/examples/seed-hyperdrive.js +21 -0
  91. package/dist/examples/translation/translation-indic.d.ts +2 -0
  92. package/dist/examples/translation/translation-indic.js +30 -0
  93. package/dist/examples/translation/translation-llm-context.d.ts +2 -0
  94. package/dist/examples/translation/translation-llm-context.js +30 -0
  95. package/dist/examples/translation/translation-llm.d.ts +2 -0
  96. package/dist/examples/translation/translation-llm.js +38 -0
  97. package/dist/examples/translation/translation-opus.d.ts +2 -0
  98. package/dist/examples/translation/translation-opus.js +30 -0
  99. package/dist/examples/translation/translation-stream.d.ts +2 -0
  100. package/dist/examples/translation/translation-stream.js +35 -0
  101. package/dist/examples/whispercpp-filesystem.d.ts +2 -0
  102. package/dist/examples/whispercpp-filesystem.js +43 -0
  103. package/dist/examples/whispercpp-microphone-record.d.ts +2 -0
  104. package/dist/examples/whispercpp-microphone-record.js +311 -0
  105. package/dist/expo/plugins/index.d.ts +5 -0
  106. package/dist/expo/plugins/index.js +5 -0
  107. package/dist/expo/plugins/withMobileBundle.d.ts +8 -0
  108. package/dist/expo/plugins/withMobileBundle.js +60 -0
  109. package/dist/expo/plugins/withOpenCL.d.ts +9 -0
  110. package/dist/expo/plugins/withOpenCL.js +118 -0
  111. package/dist/expo/plugins/withQvacSDK.d.ts +9 -0
  112. package/dist/expo/plugins/withQvacSDK.js +13 -0
  113. package/dist/index.d.ts +7 -0
  114. package/dist/index.js +8 -0
  115. package/dist/logging/base-logger.d.ts +7 -0
  116. package/dist/logging/base-logger.js +55 -0
  117. package/dist/logging/index.d.ts +4 -0
  118. package/dist/logging/index.js +2 -0
  119. package/dist/logging/logger.d.ts +5 -0
  120. package/dist/logging/logger.js +28 -0
  121. package/dist/logging/stream-logger.d.ts +3 -0
  122. package/dist/logging/stream-logger.js +9 -0
  123. package/dist/logging/transport.d.ts +3 -0
  124. package/dist/logging/transport.js +15 -0
  125. package/dist/logging/types.d.ts +18 -0
  126. package/dist/logging/types.js +1 -0
  127. package/dist/logging/utils.d.ts +4 -0
  128. package/dist/logging/utils.js +47 -0
  129. package/dist/models/hyperdrive/index.d.ts +2 -0
  130. package/dist/models/hyperdrive/index.js +2 -0
  131. package/dist/models/hyperdrive/models.d.ts +475 -0
  132. package/dist/models/hyperdrive/models.js +534 -0
  133. package/dist/schemas/cancel.d.ts +33 -0
  134. package/dist/schemas/cancel.js +25 -0
  135. package/dist/schemas/common.d.ts +626 -0
  136. package/dist/schemas/common.js +47 -0
  137. package/dist/schemas/completion-stream.d.ts +125 -0
  138. package/dist/schemas/completion-stream.js +53 -0
  139. package/dist/schemas/delegate.d.ts +9 -0
  140. package/dist/schemas/delegate.js +9 -0
  141. package/dist/schemas/download-asset.d.ts +75 -0
  142. package/dist/schemas/download-asset.js +43 -0
  143. package/dist/schemas/embed.d.ts +20 -0
  144. package/dist/schemas/embed.js +14 -0
  145. package/dist/schemas/error.d.ts +13 -0
  146. package/dist/schemas/error.js +35 -0
  147. package/dist/schemas/index.d.ts +19 -0
  148. package/dist/schemas/index.js +19 -0
  149. package/dist/schemas/llamacpp-config.d.ts +30 -0
  150. package/dist/schemas/llamacpp-config.js +39 -0
  151. package/dist/schemas/load-model.d.ts +1259 -0
  152. package/dist/schemas/load-model.js +108 -0
  153. package/dist/schemas/logging-stream.d.ts +27 -0
  154. package/dist/schemas/logging-stream.js +16 -0
  155. package/dist/schemas/ping.d.ts +11 -0
  156. package/dist/schemas/ping.js +8 -0
  157. package/dist/schemas/provide.d.ts +43 -0
  158. package/dist/schemas/provide.js +25 -0
  159. package/dist/schemas/rag.d.ts +159 -0
  160. package/dist/schemas/rag.js +78 -0
  161. package/dist/schemas/transcription.d.ts +24 -0
  162. package/dist/schemas/transcription.js +15 -0
  163. package/dist/schemas/translate.d.ts +82 -0
  164. package/dist/schemas/translate.js +42 -0
  165. package/dist/schemas/translation-config.d.ts +83 -0
  166. package/dist/schemas/translation-config.js +46 -0
  167. package/dist/schemas/unload-model.d.ts +19 -0
  168. package/dist/schemas/unload-model.js +13 -0
  169. package/dist/schemas/whispercpp-config.d.ts +25 -0
  170. package/dist/schemas/whispercpp-config.js +18 -0
  171. package/dist/server/bare/addons/cancel.d.ts +3 -0
  172. package/dist/server/bare/addons/cancel.js +12 -0
  173. package/dist/server/bare/addons/index.d.ts +4 -0
  174. package/dist/server/bare/addons/index.js +3 -0
  175. package/dist/server/bare/addons/llamacpp/create-model.d.ts +5 -0
  176. package/dist/server/bare/addons/llamacpp/create-model.js +57 -0
  177. package/dist/server/bare/addons/llamacpp/handlers/completion-stream.d.ts +3 -0
  178. package/dist/server/bare/addons/llamacpp/handlers/completion-stream.js +65 -0
  179. package/dist/server/bare/addons/llamacpp/handlers/embed.d.ts +4 -0
  180. package/dist/server/bare/addons/llamacpp/handlers/embed.js +40 -0
  181. package/dist/server/bare/addons/llamacpp/index.d.ts +4 -0
  182. package/dist/server/bare/addons/llamacpp/index.js +3 -0
  183. package/dist/server/bare/addons/llamacpp/kv-cache-utils.d.ts +19 -0
  184. package/dist/server/bare/addons/llamacpp/kv-cache-utils.js +46 -0
  185. package/dist/server/bare/addons/load-model.d.ts +3 -0
  186. package/dist/server/bare/addons/load-model.js +55 -0
  187. package/dist/server/bare/addons/translation/create-model.d.ts +4 -0
  188. package/dist/server/bare/addons/translation/create-model.js +45 -0
  189. package/dist/server/bare/addons/translation/handlers/translate.d.ts +3 -0
  190. package/dist/server/bare/addons/translation/handlers/translate.js +86 -0
  191. package/dist/server/bare/addons/translation/index.d.ts +3 -0
  192. package/dist/server/bare/addons/translation/index.js +2 -0
  193. package/dist/server/bare/addons/unload-model.d.ts +3 -0
  194. package/dist/server/bare/addons/unload-model.js +20 -0
  195. package/dist/server/bare/addons/whispercpp/create-model.d.ts +6 -0
  196. package/dist/server/bare/addons/whispercpp/create-model.js +55 -0
  197. package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.d.ts +3 -0
  198. package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.js +42 -0
  199. package/dist/server/bare/addons/whispercpp/index.d.ts +3 -0
  200. package/dist/server/bare/addons/whispercpp/index.js +2 -0
  201. package/dist/server/bare/delegate-rpc-client.d.ts +4 -0
  202. package/dist/server/bare/delegate-rpc-client.js +70 -0
  203. package/dist/server/bare/hyperswarm.d.ts +7 -0
  204. package/dist/server/bare/hyperswarm.js +62 -0
  205. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.d.ts +3 -0
  206. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.js +12 -0
  207. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.d.ts +6 -0
  208. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.js +16 -0
  209. package/dist/server/bare/rag-hyperdb/handlers/search.d.ts +3 -0
  210. package/dist/server/bare/rag-hyperdb/handlers/search.js +15 -0
  211. package/dist/server/bare/rag-hyperdb/index.d.ts +5 -0
  212. package/dist/server/bare/rag-hyperdb/index.js +4 -0
  213. package/dist/server/bare/rag-hyperdb/rag-manager.d.ts +5 -0
  214. package/dist/server/bare/rag-hyperdb/rag-manager.js +61 -0
  215. package/dist/server/bare/registry/logging-stream-registry.d.ts +12 -0
  216. package/dist/server/bare/registry/logging-stream-registry.js +46 -0
  217. package/dist/server/bare/registry/model-registry.d.ts +64 -0
  218. package/dist/server/bare/registry/model-registry.js +95 -0
  219. package/dist/server/error-handlers.d.ts +4 -0
  220. package/dist/server/error-handlers.js +27 -0
  221. package/dist/server/http-server.d.ts +2 -0
  222. package/dist/server/http-server.js +189 -0
  223. package/dist/server/rpc/create-server.d.ts +4 -0
  224. package/dist/server/rpc/create-server.js +19 -0
  225. package/dist/server/rpc/handle-request.d.ts +12 -0
  226. package/dist/server/rpc/handle-request.js +220 -0
  227. package/dist/server/rpc/handlers/cancelHandler.d.ts +3 -0
  228. package/dist/server/rpc/handlers/cancelHandler.js +27 -0
  229. package/dist/server/rpc/handlers/completion-stream-delegated.d.ts +3 -0
  230. package/dist/server/rpc/handlers/completion-stream-delegated.js +30 -0
  231. package/dist/server/rpc/handlers/completion-stream.d.ts +3 -0
  232. package/dist/server/rpc/handlers/completion-stream.js +52 -0
  233. package/dist/server/rpc/handlers/download-asset.d.ts +3 -0
  234. package/dist/server/rpc/handlers/download-asset.js +21 -0
  235. package/dist/server/rpc/handlers/embed.d.ts +3 -0
  236. package/dist/server/rpc/handlers/embed.js +21 -0
  237. package/dist/server/rpc/handlers/index.d.ts +23 -0
  238. package/dist/server/rpc/handlers/index.js +22 -0
  239. package/dist/server/rpc/handlers/load-model/download-manager.d.ts +31 -0
  240. package/dist/server/rpc/handlers/load-model/download-manager.js +88 -0
  241. package/dist/server/rpc/handlers/load-model/http.d.ts +3 -0
  242. package/dist/server/rpc/handlers/load-model/http.js +337 -0
  243. package/dist/server/rpc/handlers/load-model/hyperdrive.d.ts +4 -0
  244. package/dist/server/rpc/handlers/load-model/hyperdrive.js +332 -0
  245. package/dist/server/rpc/handlers/load-model/index.d.ts +4 -0
  246. package/dist/server/rpc/handlers/load-model/index.js +3 -0
  247. package/dist/server/rpc/handlers/load-model/resolve.d.ts +3 -0
  248. package/dist/server/rpc/handlers/load-model/resolve.js +121 -0
  249. package/dist/server/rpc/handlers/load-model-delegated.d.ts +3 -0
  250. package/dist/server/rpc/handlers/load-model-delegated.js +93 -0
  251. package/dist/server/rpc/handlers/load-model.d.ts +3 -0
  252. package/dist/server/rpc/handlers/load-model.js +41 -0
  253. package/dist/server/rpc/handlers/logging-stream.d.ts +3 -0
  254. package/dist/server/rpc/handlers/logging-stream.js +37 -0
  255. package/dist/server/rpc/handlers/provideHandler/connection.d.ts +3 -0
  256. package/dist/server/rpc/handlers/provideHandler/connection.js +25 -0
  257. package/dist/server/rpc/handlers/provideHandler/handler.d.ts +3 -0
  258. package/dist/server/rpc/handlers/provideHandler/handler.js +50 -0
  259. package/dist/server/rpc/handlers/provideHandler/proxy.d.ts +3 -0
  260. package/dist/server/rpc/handlers/provideHandler/proxy.js +22 -0
  261. package/dist/server/rpc/handlers/provideHandler.d.ts +2 -0
  262. package/dist/server/rpc/handlers/provideHandler.js +2 -0
  263. package/dist/server/rpc/handlers/rag.d.ts +3 -0
  264. package/dist/server/rpc/handlers/rag.js +67 -0
  265. package/dist/server/rpc/handlers/transcribe-stream.d.ts +3 -0
  266. package/dist/server/rpc/handlers/transcribe-stream.js +26 -0
  267. package/dist/server/rpc/handlers/translate.d.ts +3 -0
  268. package/dist/server/rpc/handlers/translate.js +51 -0
  269. package/dist/server/rpc/handlers/unload-model.d.ts +3 -0
  270. package/dist/server/rpc/handlers/unload-model.js +20 -0
  271. package/dist/server/rpc/index.d.ts +3 -0
  272. package/dist/server/rpc/index.js +2 -0
  273. package/dist/server/utils/audio/decoder.d.ts +4 -0
  274. package/dist/server/utils/audio/decoder.js +41 -0
  275. package/dist/server/utils/cache.d.ts +15 -0
  276. package/dist/server/utils/cache.js +32 -0
  277. package/dist/server/utils/hash.d.ts +5 -0
  278. package/dist/server/utils/hash.js +11 -0
  279. package/dist/server/utils/index.d.ts +5 -0
  280. package/dist/server/utils/index.js +4 -0
  281. package/dist/server/utils/model-path.d.ts +5 -0
  282. package/dist/server/utils/model-path.js +7 -0
  283. package/dist/server/worker.d.ts +6 -0
  284. package/dist/server/worker.js +77 -0
  285. package/dist/utils/withTimeout.d.ts +11 -0
  286. package/dist/utils/withTimeout.js +37 -0
  287. package/package.json +129 -0
@@ -0,0 +1,83 @@
1
+ import { z } from "zod";
2
+ export declare const INDICTRANS_LANGUAGES: readonly ["asm_Beng", "ben_Beng", "brx_Deva", "doi_Deva", "eng_Latn", "gom_Deva", "guj_Gujr", "hin_Deva", "kan_Knda", "kas_Arab", "kas_Deva", "mai_Deva", "mal_Mlym", "mar_Deva", "mni_Beng", "mni_Mtei", "npi_Deva", "ory_Orya", "pan_Guru", "san_Deva", "sat_Olck", "snd_Arab", "snd_Deva", "tam_Taml", "tel_Telu", "urd_Arab"];
3
+ export declare const NMT_LANGUAGES: readonly ["en", "de", "es", "it", "asm_Beng", "ben_Beng", "brx_Deva", "doi_Deva", "eng_Latn", "gom_Deva", "guj_Gujr", "hin_Deva", "kan_Knda", "kas_Arab", "kas_Deva", "mai_Deva", "mal_Mlym", "mar_Deva", "mni_Beng", "mni_Mtei", "npi_Deva", "ory_Orya", "pan_Guru", "san_Deva", "sat_Olck", "snd_Arab", "snd_Deva", "tam_Taml", "tel_Telu", "urd_Arab"];
4
+ export declare const nmtConfigSchema: z.ZodPipe<z.ZodObject<{
5
+ mode: z.ZodOptional<z.ZodEnum<{
6
+ full: "full";
7
+ }>>;
8
+ from: z.ZodEnum<{
9
+ en: "en";
10
+ de: "de";
11
+ es: "es";
12
+ it: "it";
13
+ asm_Beng: "asm_Beng";
14
+ ben_Beng: "ben_Beng";
15
+ brx_Deva: "brx_Deva";
16
+ doi_Deva: "doi_Deva";
17
+ eng_Latn: "eng_Latn";
18
+ gom_Deva: "gom_Deva";
19
+ guj_Gujr: "guj_Gujr";
20
+ hin_Deva: "hin_Deva";
21
+ kan_Knda: "kan_Knda";
22
+ kas_Arab: "kas_Arab";
23
+ kas_Deva: "kas_Deva";
24
+ mai_Deva: "mai_Deva";
25
+ mal_Mlym: "mal_Mlym";
26
+ mar_Deva: "mar_Deva";
27
+ mni_Beng: "mni_Beng";
28
+ mni_Mtei: "mni_Mtei";
29
+ npi_Deva: "npi_Deva";
30
+ ory_Orya: "ory_Orya";
31
+ pan_Guru: "pan_Guru";
32
+ san_Deva: "san_Deva";
33
+ sat_Olck: "sat_Olck";
34
+ snd_Arab: "snd_Arab";
35
+ snd_Deva: "snd_Deva";
36
+ tam_Taml: "tam_Taml";
37
+ tel_Telu: "tel_Telu";
38
+ urd_Arab: "urd_Arab";
39
+ }>;
40
+ to: z.ZodEnum<{
41
+ en: "en";
42
+ de: "de";
43
+ es: "es";
44
+ it: "it";
45
+ asm_Beng: "asm_Beng";
46
+ ben_Beng: "ben_Beng";
47
+ brx_Deva: "brx_Deva";
48
+ doi_Deva: "doi_Deva";
49
+ eng_Latn: "eng_Latn";
50
+ gom_Deva: "gom_Deva";
51
+ guj_Gujr: "guj_Gujr";
52
+ hin_Deva: "hin_Deva";
53
+ kan_Knda: "kan_Knda";
54
+ kas_Arab: "kas_Arab";
55
+ kas_Deva: "kas_Deva";
56
+ mai_Deva: "mai_Deva";
57
+ mal_Mlym: "mal_Mlym";
58
+ mar_Deva: "mar_Deva";
59
+ mni_Beng: "mni_Beng";
60
+ mni_Mtei: "mni_Mtei";
61
+ npi_Deva: "npi_Deva";
62
+ ory_Orya: "ory_Orya";
63
+ pan_Guru: "pan_Guru";
64
+ san_Deva: "san_Deva";
65
+ sat_Olck: "sat_Olck";
66
+ snd_Arab: "snd_Arab";
67
+ snd_Deva: "snd_Deva";
68
+ tam_Taml: "tam_Taml";
69
+ tel_Telu: "tel_Telu";
70
+ urd_Arab: "urd_Arab";
71
+ }>;
72
+ }, z.core.$strip>, z.ZodTransform<{
73
+ mode: "full";
74
+ from: "en" | "de" | "es" | "it" | "asm_Beng" | "ben_Beng" | "brx_Deva" | "doi_Deva" | "eng_Latn" | "gom_Deva" | "guj_Gujr" | "hin_Deva" | "kan_Knda" | "kas_Arab" | "kas_Deva" | "mai_Deva" | "mal_Mlym" | "mar_Deva" | "mni_Beng" | "mni_Mtei" | "npi_Deva" | "ory_Orya" | "pan_Guru" | "san_Deva" | "sat_Olck" | "snd_Arab" | "snd_Deva" | "tam_Taml" | "tel_Telu" | "urd_Arab";
75
+ to: "en" | "de" | "es" | "it" | "asm_Beng" | "ben_Beng" | "brx_Deva" | "doi_Deva" | "eng_Latn" | "gom_Deva" | "guj_Gujr" | "hin_Deva" | "kan_Knda" | "kas_Arab" | "kas_Deva" | "mai_Deva" | "mal_Mlym" | "mar_Deva" | "mni_Beng" | "mni_Mtei" | "npi_Deva" | "ory_Orya" | "pan_Guru" | "san_Deva" | "sat_Olck" | "snd_Arab" | "snd_Deva" | "tam_Taml" | "tel_Telu" | "urd_Arab";
76
+ }, {
77
+ from: "en" | "de" | "es" | "it" | "asm_Beng" | "ben_Beng" | "brx_Deva" | "doi_Deva" | "eng_Latn" | "gom_Deva" | "guj_Gujr" | "hin_Deva" | "kan_Knda" | "kas_Arab" | "kas_Deva" | "mai_Deva" | "mal_Mlym" | "mar_Deva" | "mni_Beng" | "mni_Mtei" | "npi_Deva" | "ory_Orya" | "pan_Guru" | "san_Deva" | "sat_Olck" | "snd_Arab" | "snd_Deva" | "tam_Taml" | "tel_Telu" | "urd_Arab";
78
+ to: "en" | "de" | "es" | "it" | "asm_Beng" | "ben_Beng" | "brx_Deva" | "doi_Deva" | "eng_Latn" | "gom_Deva" | "guj_Gujr" | "hin_Deva" | "kan_Knda" | "kas_Arab" | "kas_Deva" | "mai_Deva" | "mal_Mlym" | "mar_Deva" | "mni_Beng" | "mni_Mtei" | "npi_Deva" | "ory_Orya" | "pan_Guru" | "san_Deva" | "sat_Olck" | "snd_Arab" | "snd_Deva" | "tam_Taml" | "tel_Telu" | "urd_Arab";
79
+ mode?: "full" | undefined;
80
+ }>>;
81
+ export type NmtLanguage = (typeof NMT_LANGUAGES)[number];
82
+ export type NmtConfig = z.infer<typeof nmtConfigSchema>;
83
+ //# sourceMappingURL=translation-config.d.ts.map
@@ -0,0 +1,46 @@
1
+ import { z } from "zod";
2
+ // Marian model languages
3
+ const MARIAN_LANGUAGES = ["en", "de", "es", "it"];
4
+ // IndicTrans2 model languages
5
+ export const INDICTRANS_LANGUAGES = [
6
+ "asm_Beng", // Assamese
7
+ "ben_Beng", // Bengali
8
+ "brx_Deva", // Bodo
9
+ "doi_Deva", // Dogri
10
+ "eng_Latn", // English
11
+ "gom_Deva", // Konkani
12
+ "guj_Gujr", // Gujarati
13
+ "hin_Deva", // Hindi
14
+ "kan_Knda", // Kannada
15
+ "kas_Arab", // Kashmiri (Arabic)
16
+ "kas_Deva", // Kashmiri (Devanagari)
17
+ "mai_Deva", // Maithili
18
+ "mal_Mlym", // Malayalam
19
+ "mar_Deva", // Marathi
20
+ "mni_Beng", // Manipuri (Bengali)
21
+ "mni_Mtei", // Manipuri (Meitei)
22
+ "npi_Deva", // Nepali
23
+ "ory_Orya", // Odia
24
+ "pan_Guru", // Punjabi
25
+ "san_Deva", // Sanskrit
26
+ "sat_Olck", // Santali
27
+ "snd_Arab", // Sindhi (Arabic)
28
+ "snd_Deva", // Sindhi (Devanagari)
29
+ "tam_Taml", // Tamil
30
+ "tel_Telu", // Telugu
31
+ "urd_Arab", // Urdu
32
+ ];
33
+ export const NMT_LANGUAGES = [
34
+ ...MARIAN_LANGUAGES,
35
+ ...INDICTRANS_LANGUAGES,
36
+ ];
37
+ export const nmtConfigSchema = z
38
+ .object({
39
+ mode: z.enum(["full"]).optional(),
40
+ from: z.enum(NMT_LANGUAGES),
41
+ to: z.enum(NMT_LANGUAGES),
42
+ })
43
+ .transform((data) => ({
44
+ ...data,
45
+ mode: data.mode ?? "full",
46
+ }));
@@ -0,0 +1,19 @@
1
+ import { z } from "zod";
2
+ export declare const unloadModelParamsSchema: z.ZodObject<{
3
+ modelId: z.ZodString;
4
+ clearStorage: z.ZodDefault<z.ZodBoolean>;
5
+ }, z.core.$strip>;
6
+ export declare const unloadModelRequestSchema: z.ZodObject<{
7
+ modelId: z.ZodString;
8
+ clearStorage: z.ZodDefault<z.ZodBoolean>;
9
+ type: z.ZodLiteral<"unloadModel">;
10
+ }, z.core.$strip>;
11
+ export declare const unloadModelResponseSchema: z.ZodObject<{
12
+ type: z.ZodLiteral<"unloadModel">;
13
+ success: z.ZodBoolean;
14
+ error: z.ZodOptional<z.ZodString>;
15
+ }, z.core.$strip>;
16
+ export type UnloadModelParams = z.input<typeof unloadModelParamsSchema>;
17
+ export type UnloadModelRequest = z.infer<typeof unloadModelRequestSchema>;
18
+ export type UnloadModelResponse = z.infer<typeof unloadModelResponseSchema>;
19
+ //# sourceMappingURL=unload-model.d.ts.map
@@ -0,0 +1,13 @@
1
+ import { z } from "zod";
2
+ export const unloadModelParamsSchema = z.object({
3
+ modelId: z.string(),
4
+ clearStorage: z.boolean().default(false),
5
+ });
6
+ export const unloadModelRequestSchema = unloadModelParamsSchema.extend({
7
+ type: z.literal("unloadModel"),
8
+ });
9
+ export const unloadModelResponseSchema = z.object({
10
+ type: z.literal("unloadModel"),
11
+ success: z.boolean(),
12
+ error: z.string().optional(),
13
+ });
@@ -0,0 +1,25 @@
1
+ import { z } from "zod";
2
+ export declare const whisperConfigSchema: z.ZodObject<{
3
+ mode: z.ZodDefault<z.ZodEnum<{
4
+ caption: "caption";
5
+ batch: "batch";
6
+ }>>;
7
+ output_format: z.ZodDefault<z.ZodEnum<{
8
+ plaintext: "plaintext";
9
+ json: "json";
10
+ }>>;
11
+ min_seconds: z.ZodDefault<z.ZodNumber>;
12
+ max_seconds: z.ZodDefault<z.ZodNumber>;
13
+ audio_format: z.ZodDefault<z.ZodString>;
14
+ update_frequency: z.ZodDefault<z.ZodString>;
15
+ vadConfig: z.ZodOptional<z.ZodObject<{
16
+ vad_threshold: z.ZodOptional<z.ZodNumber>;
17
+ vad_min_speech_duration_ms: z.ZodOptional<z.ZodNumber>;
18
+ vad_min_silence_duration_ms: z.ZodOptional<z.ZodNumber>;
19
+ vad_max_speech_duration_s: z.ZodOptional<z.ZodNumber>;
20
+ vad_speech_pad_ms: z.ZodOptional<z.ZodNumber>;
21
+ vad_samples_overlap: z.ZodOptional<z.ZodNumber>;
22
+ }, z.core.$strip>>;
23
+ }, z.core.$strip>;
24
+ export type WhisperConfig = z.infer<typeof whisperConfigSchema>;
25
+ //# sourceMappingURL=whispercpp-config.d.ts.map
@@ -0,0 +1,18 @@
1
+ import { z } from "zod";
2
+ const vadConfigSchema = z.object({
3
+ vad_threshold: z.number().optional(),
4
+ vad_min_speech_duration_ms: z.number().optional(),
5
+ vad_min_silence_duration_ms: z.number().optional(),
6
+ vad_max_speech_duration_s: z.number().optional(),
7
+ vad_speech_pad_ms: z.number().optional(),
8
+ vad_samples_overlap: z.number().optional(),
9
+ });
10
+ export const whisperConfigSchema = z.object({
11
+ mode: z.enum(["caption", "batch"]).default("caption"),
12
+ output_format: z.enum(["plaintext", "json"]).default("plaintext"),
13
+ min_seconds: z.number().default(1),
14
+ max_seconds: z.number().default(30),
15
+ audio_format: z.string().default("wav"),
16
+ update_frequency: z.string().default("on_end"),
17
+ vadConfig: vadConfigSchema.optional(),
18
+ });
@@ -0,0 +1,3 @@
1
+ import { type CancelInferenceBaseParams } from "../../../schemas/index";
2
+ export declare function cancel(params: CancelInferenceBaseParams): Promise<void>;
3
+ //# sourceMappingURL=cancel.d.ts.map
@@ -0,0 +1,12 @@
1
+ import { getModel } from "../registry/model-registry.js";
2
+ import { cancelInferenceBaseSchema, } from "../../../schemas/index.js";
3
+ export async function cancel(params) {
4
+ const { modelId } = cancelInferenceBaseSchema.parse(params);
5
+ const model = getModel(modelId);
6
+ if (!model) {
7
+ throw new Error(`Model with ID "${modelId}" is not loaded`);
8
+ }
9
+ if (model.addon && model.addon.cancel) {
10
+ await model.addon.cancel();
11
+ }
12
+ }
@@ -0,0 +1,4 @@
1
+ export { loadModel } from "./load-model";
2
+ export { unloadModel } from "./unload-model";
3
+ export { cancel } from "./cancel";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,3 @@
1
+ export { loadModel } from "./load-model.js";
2
+ export { unloadModel } from "./unload-model.js";
3
+ export { cancel } from "./cancel.js";
@@ -0,0 +1,5 @@
1
+ import type { AnyModel } from "../../registry/model-registry";
2
+ import type { EmbedConfig, LlmConfig } from "../../../../schemas/index";
3
+ export declare function createLlmModel(modelId: string, modelPath: string, llmConfig: LlmConfig, projectionModelPath?: string): AnyModel;
4
+ export declare function createEmbeddingsModel(modelId: string, modelPath: string, embedConfig: EmbedConfig): AnyModel;
5
+ //# sourceMappingURL=create-model.d.ts.map
@@ -0,0 +1,57 @@
1
+ import LlmLlamacpp from "@qvac/llm-llamacpp";
2
+ import EmbedLlamacpp from "@qvac/embed-llamacpp";
3
+ import { Readable } from "bare-stream";
4
+ import { createStreamLogger } from "../../../../logging/index.js";
5
+ import { parseModelPath } from "../../../utils/index.js";
6
+ // Mimic qvac-lib-dl-filesystem functionality
7
+ function createFilesystemDLMimic() {
8
+ return {
9
+ dirPath: "./",
10
+ getStream: () => Promise.resolve(Readable.from([])),
11
+ ready: () => Promise.resolve(),
12
+ close: () => Promise.resolve(),
13
+ destroy: () => Promise.resolve(),
14
+ start: () => Promise.resolve(),
15
+ stop: () => Promise.resolve(),
16
+ };
17
+ }
18
+ function transformLlmConfig(llmConfig) {
19
+ return JSON.parse(JSON.stringify(llmConfig, (key, v) => key === "modelType"
20
+ ? undefined
21
+ : typeof v === "number" || typeof v === "boolean"
22
+ ? String(v)
23
+ : v).replace(/"([a-z][A-Za-z]*)":/g, (_, key) => `"${key.replace(/[A-Z]/g, (l) => `_${l.toLowerCase()}`)}":`));
24
+ }
25
+ export function createLlmModel(modelId, modelPath, llmConfig, projectionModelPath) {
26
+ const { dirPath, basePath } = parseModelPath(modelPath);
27
+ const dl = createFilesystemDLMimic();
28
+ const logger = createStreamLogger(modelId, "llamacpp:llm");
29
+ const llmConfigStrings = transformLlmConfig(llmConfig);
30
+ const args = {
31
+ loader: dl,
32
+ opts: { stats: true },
33
+ logger,
34
+ diskPath: dirPath,
35
+ modelName: basePath,
36
+ projectionModel: projectionModelPath
37
+ ? parseModelPath(projectionModelPath).basePath
38
+ : "",
39
+ modelPath,
40
+ modelConfig: llmConfigStrings,
41
+ };
42
+ return new LlmLlamacpp(args, llmConfigStrings);
43
+ }
44
+ export function createEmbeddingsModel(modelId, modelPath, embedConfig) {
45
+ const { dirPath, basePath } = parseModelPath(modelPath);
46
+ const dl = createFilesystemDLMimic();
47
+ const logger = createStreamLogger(modelId, "llamacpp:embed");
48
+ const args = {
49
+ loader: dl,
50
+ opts: { stats: true },
51
+ logger,
52
+ diskPath: dirPath,
53
+ modelName: basePath,
54
+ modelPath,
55
+ };
56
+ return new EmbedLlamacpp(args, embedConfig.config);
57
+ }
@@ -0,0 +1,3 @@
1
+ import { type CompletionStats, type CompletionParams } from "../../../../../schemas/index";
2
+ export declare function completion(params: CompletionParams): AsyncGenerator<string, CompletionStats, unknown>;
3
+ //# sourceMappingURL=completion-stream.d.ts.map
@@ -0,0 +1,65 @@
1
+ import { completionParamsSchema, } from "../../../../../schemas/index.js";
2
+ import { getModel } from "../../../registry/model-registry.js";
3
+ import { findMatchingCache, getCurrentCacheInfo, renameCacheFile, } from "../kv-cache-utils";
4
+ export async function* completion(params) {
5
+ const { history, modelId, kvCache } = completionParamsSchema.parse(params);
6
+ const transformedHistory = [];
7
+ for (const message of history) {
8
+ if (message.attachments && message.attachments.length > 0) {
9
+ for (const attachment of message.attachments) {
10
+ transformedHistory.push({
11
+ role: message.role,
12
+ content: attachment.path,
13
+ type: "media",
14
+ });
15
+ }
16
+ }
17
+ transformedHistory.push({
18
+ role: message.role,
19
+ content: message.content,
20
+ });
21
+ }
22
+ const model = getModel(modelId);
23
+ if (kvCache) {
24
+ const cacheMessages = history.map((msg) => ({
25
+ role: msg.role,
26
+ content: msg.content,
27
+ attachments: msg.attachments ?? undefined,
28
+ }));
29
+ const existingCache = await findMatchingCache(cacheMessages);
30
+ const currentCacheInfo = getCurrentCacheInfo(cacheMessages);
31
+ const cachePathToUse = existingCache !== null
32
+ ? existingCache.cachePath
33
+ : currentCacheInfo.cachePath;
34
+ const messagesWithCache = [
35
+ { role: "session", content: cachePathToUse },
36
+ ...transformedHistory,
37
+ ];
38
+ const response = await model.run(messagesWithCache);
39
+ for await (const token of response.iterate()) {
40
+ yield token;
41
+ }
42
+ await model.run([{ role: "session", content: "save" }]);
43
+ //If there was an existing cache, we rename it with new hash that includes the current message
44
+ if (existingCache !== null &&
45
+ existingCache.cachePath !== currentCacheInfo.cachePath) {
46
+ await renameCacheFile(existingCache.cachePath, currentCacheInfo.cachePath);
47
+ }
48
+ const responseWithStats = response;
49
+ return {
50
+ timeToFirstToken: responseWithStats.stats?.TTFT ?? 0,
51
+ tokensPerSecond: responseWithStats.stats?.TPS ?? 0,
52
+ };
53
+ }
54
+ else {
55
+ const response = await model.run(transformedHistory);
56
+ for await (const token of response.iterate()) {
57
+ yield token;
58
+ }
59
+ const responseWithStats = response;
60
+ return {
61
+ timeToFirstToken: responseWithStats.stats?.TTFT ?? 0,
62
+ tokensPerSecond: responseWithStats.stats?.TPS ?? 0,
63
+ };
64
+ }
65
+ }
@@ -0,0 +1,4 @@
1
+ import { type EmbedParams } from "../../../../../schemas/index";
2
+ export declare function embed(params: EmbedParams): Promise<number[]>;
3
+ export declare function normalizeVector(vector: Float32Array): number[];
4
+ //# sourceMappingURL=embed.d.ts.map
@@ -0,0 +1,40 @@
1
+ import { getModel } from "../../../registry/model-registry.js";
2
+ import { embedParamsSchema } from "../../../../../schemas/index.js";
3
+ export async function embed(params) {
4
+ const { modelId, text } = embedParamsSchema.parse(params);
5
+ const model = getModel(modelId);
6
+ const response = await model.run(text);
7
+ const rawEmbeddings = (await response.await());
8
+ const embeddingVector = rawEmbeddings?.[0]?.[0];
9
+ if (!embeddingVector || embeddingVector.length === 0) {
10
+ throw new Error("No embeddings returned");
11
+ }
12
+ return normalizeVector(embeddingVector);
13
+ }
14
+ export function normalizeVector(vector) {
15
+ let sumOfSquares = 0;
16
+ for (let i = 0; i < vector.length; i++) {
17
+ const value = vector[i];
18
+ if (!Number.isFinite(value)) {
19
+ throw new Error(`NormalizeVector: non-finite value at index ${i}: ${value}`);
20
+ }
21
+ sumOfSquares += value * value;
22
+ }
23
+ const magnitude = Math.sqrt(sumOfSquares);
24
+ const EPS_ZERO = 1e-12;
25
+ const UNIT_TOL = 1e-4;
26
+ // Handle bad norms
27
+ if (!Number.isFinite(magnitude) || magnitude < EPS_ZERO) {
28
+ return new Array(vector.length).fill(0);
29
+ }
30
+ // Early exit: already ~unit length
31
+ if (Math.abs(magnitude - 1) <= UNIT_TOL) {
32
+ return Array.from(vector);
33
+ }
34
+ const inverseMagnitude = 1 / magnitude;
35
+ const normalizedVector = new Array(vector.length);
36
+ for (let i = 0; i < vector.length; i++) {
37
+ normalizedVector[i] = vector[i] * inverseMagnitude;
38
+ }
39
+ return normalizedVector;
40
+ }
@@ -0,0 +1,4 @@
1
+ export { completion } from "./handlers/completion-stream";
2
+ export { embed } from "./handlers/embed";
3
+ export { createLlmModel, createEmbeddingsModel } from "./create-model";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,3 @@
1
+ export { completion } from "./handlers/completion-stream.js";
2
+ export { embed } from "./handlers/embed.js";
3
+ export { createLlmModel, createEmbeddingsModel } from "./create-model.js";
@@ -0,0 +1,19 @@
1
+ export interface CacheMessage {
2
+ role: string;
3
+ content: string;
4
+ attachments?: {
5
+ path: string;
6
+ }[] | undefined;
7
+ }
8
+ export declare function generateCacheKey(messages: CacheMessage[]): string;
9
+ export declare function getCacheFilePath(cacheKey: string): string;
10
+ export declare function findMatchingCache(currentHistory: CacheMessage[]): Promise<{
11
+ cacheKey: string;
12
+ cachePath: string;
13
+ } | null>;
14
+ export declare function getCurrentCacheInfo(currentHistory: CacheMessage[]): {
15
+ cacheKey: string;
16
+ cachePath: string;
17
+ };
18
+ export declare function renameCacheFile(oldPath: string, newPath: string): Promise<void>;
19
+ //# sourceMappingURL=kv-cache-utils.d.ts.map
@@ -0,0 +1,46 @@
1
+ import crypto from "bare-crypto";
2
+ import { promises as fsPromises } from "bare-fs";
3
+ import path from "bare-path";
4
+ import { getKVCacheDir } from "../../../utils/index.js";
5
+ export function generateCacheKey(messages) {
6
+ const hash = crypto.createHash("sha256");
7
+ const historyString = JSON.stringify(messages);
8
+ const historyBuffer = Buffer.from(historyString, "utf8");
9
+ hash.update(historyBuffer);
10
+ const hashString = hash.digest("hex");
11
+ return hashString.substring(0, 16);
12
+ }
13
+ export function getCacheFilePath(cacheKey) {
14
+ const cacheDir = getKVCacheDir();
15
+ return path.join(cacheDir, `kvcache${cacheKey}.bin`);
16
+ }
17
+ export async function findMatchingCache(currentHistory) {
18
+ if (currentHistory.length <= 1) {
19
+ return null;
20
+ }
21
+ // Generate cache key for history minus the last message
22
+ const previousHistory = currentHistory.slice(0, -1);
23
+ const cacheKey = generateCacheKey(previousHistory);
24
+ const cachePath = getCacheFilePath(cacheKey);
25
+ try {
26
+ await fsPromises.access(cachePath);
27
+ return { cacheKey, cachePath };
28
+ }
29
+ catch {
30
+ return null;
31
+ }
32
+ }
33
+ export function getCurrentCacheInfo(currentHistory) {
34
+ // Generate cache path for the current conversation state
35
+ const cacheKey = generateCacheKey(currentHistory);
36
+ const cachePath = getCacheFilePath(cacheKey);
37
+ return { cacheKey, cachePath };
38
+ }
39
+ export async function renameCacheFile(oldPath, newPath) {
40
+ try {
41
+ await fsPromises.rename(oldPath, newPath);
42
+ }
43
+ catch (error) {
44
+ console.error("Error renaming cache file:", error instanceof Error ? error.message : String(error));
45
+ }
46
+ }
@@ -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,55 @@
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
+ export async function loadModel(params) {
11
+ const { modelId, modelPath, options, projectionModelPath, vadModelPath } = loadModelServerParamsSchema.parse(params);
12
+ const { modelConfig, modelType } = options;
13
+ // Check if model is already loaded
14
+ if (isModelLoaded(modelId)) {
15
+ console.log(`${modelType} model ${modelId} is already loaded`);
16
+ return;
17
+ }
18
+ // Validate the file exists
19
+ console.log("cwd", process.cwd());
20
+ try {
21
+ const modelDir = path.dirname(modelPath);
22
+ const modelFile = path.basename(modelPath);
23
+ const files = (await fsPromises.readdir(modelDir));
24
+ if (!files.includes(modelFile)) {
25
+ throw new Error(`${modelType} model file ${modelFile} not found in directory ${modelDir}`);
26
+ }
27
+ // File exists, continue
28
+ }
29
+ catch (error) {
30
+ console.error(`Error reading ${modelType} model directory:`, error instanceof Error ? error.message : String(error));
31
+ throw new Error(`Failed to locate ${modelType} model file: ${modelPath}`);
32
+ }
33
+ let model;
34
+ switch (modelType) {
35
+ case "llm":
36
+ model = createLlmModel(modelId, modelPath, modelConfig, projectionModelPath);
37
+ break;
38
+ case "whisper":
39
+ model = createWhisperModel(modelId, modelPath, modelConfig, vadModelPath);
40
+ break;
41
+ case "embeddings":
42
+ model = createEmbeddingsModel(modelId, modelPath, modelConfig);
43
+ break;
44
+ case "nmt":
45
+ model = createNmtModel(modelId, modelPath, modelConfig);
46
+ break;
47
+ default:
48
+ // Should never happen
49
+ throw new Error(`Unknown model type`);
50
+ }
51
+ console.log(`${modelType}: Loading model ${modelId}...`);
52
+ await model.load(false);
53
+ console.log(`${modelType} model ${modelId} loaded`);
54
+ registerModel(modelId, { model, path: modelPath });
55
+ }
@@ -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