@qvac/sdk 0.4.1 → 0.6.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 (334) hide show
  1. package/README.md +365 -200
  2. package/bare-imports.json +35 -0
  3. package/dist/client/api/cancel.d.ts +12 -3
  4. package/dist/client/api/cancel.js +12 -3
  5. package/dist/client/api/completion-stream.d.ts +15 -5
  6. package/dist/client/api/completion-stream.js +50 -14
  7. package/dist/client/api/embed.d.ts +17 -3
  8. package/dist/client/api/embed.js +0 -8
  9. package/dist/client/api/get-model-info.d.ts +2 -2
  10. package/dist/client/api/get-model-info.js +2 -2
  11. package/dist/client/api/index.d.ts +2 -2
  12. package/dist/client/api/index.js +2 -2
  13. package/dist/client/api/load-model.d.ts +37 -11
  14. package/dist/client/api/load-model.js +34 -117
  15. package/dist/client/api/logging-stream.d.ts +6 -3
  16. package/dist/client/api/logging-stream.js +6 -3
  17. package/dist/client/api/ocr.d.ts +31 -0
  18. package/dist/client/api/ocr.js +88 -0
  19. package/dist/client/api/rag.d.ts +215 -20
  20. package/dist/client/api/rag.js +382 -23
  21. package/dist/client/api/translate.js +10 -11
  22. package/dist/client/api/unload-model.js +6 -3
  23. package/dist/client/config-loader/config-utils.d.ts +5 -0
  24. package/dist/client/config-loader/config-utils.js +20 -0
  25. package/dist/client/config-loader/resolve-config.bare.d.ts +9 -0
  26. package/dist/client/config-loader/resolve-config.bare.js +87 -0
  27. package/dist/client/config-loader/resolve-config.expo.d.ts +11 -0
  28. package/dist/client/config-loader/resolve-config.expo.js +62 -0
  29. package/dist/client/config-loader/resolve-config.node.d.ts +9 -0
  30. package/dist/client/config-loader/resolve-config.node.js +118 -0
  31. package/dist/client/init-hooks.d.ts +18 -3
  32. package/dist/client/init-hooks.js +57 -29
  33. package/dist/client/logging-stream-registry.d.ts +1 -1
  34. package/dist/client/logging-stream-registry.js +14 -13
  35. package/dist/client/rpc/bare-client.d.ts +3 -184
  36. package/dist/client/rpc/bare-client.js +67 -8
  37. package/dist/client/rpc/expo-rpc-client.d.ts +2 -2
  38. package/dist/client/rpc/expo-rpc-client.js +70 -12
  39. package/dist/client/rpc/node-rpc-client.d.ts +1 -1
  40. package/dist/client/rpc/node-rpc-client.js +14 -7
  41. package/dist/client/rpc/rpc-client.d.ts +1 -1
  42. package/dist/client/rpc/rpc-client.js +13 -58
  43. package/dist/examples/config/blind-relay/blind-relay.config.d.ts +5 -0
  44. package/dist/examples/config/blind-relay/blind-relay.config.js +7 -0
  45. package/dist/examples/config/default/default.config.d.ts +8 -0
  46. package/dist/examples/config/default/default.config.js +6 -0
  47. package/dist/examples/config-reload.d.ts +2 -0
  48. package/dist/examples/config-reload.js +49 -0
  49. package/dist/examples/default-config-usage.d.ts +17 -0
  50. package/dist/examples/default-config-usage.js +47 -0
  51. package/dist/examples/delegated-inference/consumer.js +1 -0
  52. package/dist/examples/download-with-blind-relays.js +22 -21
  53. package/dist/examples/embed-hyperdrive.js +39 -3
  54. package/dist/examples/kv-cache-cleanup.js +1 -1
  55. package/dist/examples/kv-cache-custom-key.js +16 -1
  56. package/dist/examples/kv-cache-example.js +1 -1
  57. package/dist/examples/llamacpp-hyperdrive.js +1 -1
  58. package/dist/examples/llamacpp-sharded.js +13 -4
  59. package/dist/examples/logging-file-transport.d.ts +2 -0
  60. package/dist/examples/{llamacpp-file-logging.js → logging-file-transport.js} +3 -7
  61. package/dist/examples/logging-streaming.d.ts +2 -0
  62. package/dist/examples/logging-streaming.js +75 -0
  63. package/dist/examples/mcp-websearch.d.ts +13 -0
  64. package/dist/examples/mcp-websearch.js +176 -0
  65. package/dist/examples/ocr-fasttext.d.ts +2 -0
  66. package/dist/examples/ocr-fasttext.js +52 -0
  67. package/dist/examples/quickstart.d.ts +2 -0
  68. package/dist/examples/quickstart.js +28 -0
  69. package/dist/examples/rag/rag-hyperdb/cancellation.d.ts +2 -0
  70. package/dist/examples/rag/rag-hyperdb/cancellation.js +75 -0
  71. package/dist/examples/rag/rag-hyperdb/ingest.d.ts +2 -0
  72. package/dist/examples/rag/{rag-hyperdb.js → rag-hyperdb/ingest.js} +10 -4
  73. package/dist/examples/rag/rag-hyperdb/pipeline.d.ts +2 -0
  74. package/dist/examples/rag/rag-hyperdb/pipeline.js +74 -0
  75. package/dist/examples/rag/rag-hyperdb/workspaces.d.ts +2 -0
  76. package/dist/examples/rag/rag-hyperdb/workspaces.js +178 -0
  77. package/dist/examples/translation/translation-bergamot-batch.d.ts +2 -0
  78. package/dist/examples/translation/translation-bergamot-batch.js +49 -0
  79. package/dist/examples/translation/translation-bergamot.d.ts +2 -0
  80. package/dist/examples/translation/translation-bergamot.js +39 -0
  81. package/dist/examples/translation/translation-indic.js +1 -0
  82. package/dist/examples/translation/translation-opus.js +1 -0
  83. package/dist/examples/translation/translation-stream.js +1 -0
  84. package/dist/expo/plugins/withMobileBundle.js +29 -10
  85. package/dist/index.d.ts +5 -4
  86. package/dist/index.js +4 -2
  87. package/dist/logging/addon.d.ts +6 -0
  88. package/dist/logging/addon.js +75 -0
  89. package/dist/logging/base-logger.js +26 -16
  90. package/dist/logging/client-logger.d.ts +3 -0
  91. package/dist/logging/client-logger.js +24 -0
  92. package/dist/logging/index.d.ts +7 -1
  93. package/dist/logging/index.js +7 -1
  94. package/dist/logging/logger.d.ts +0 -2
  95. package/dist/logging/logger.js +11 -6
  96. package/dist/logging/namespaces.d.ts +12 -0
  97. package/dist/logging/namespaces.js +12 -0
  98. package/dist/logging/registry.d.ts +31 -0
  99. package/dist/logging/registry.js +48 -0
  100. package/dist/logging/server-logger.d.ts +3 -0
  101. package/dist/logging/server-logger.js +16 -0
  102. package/dist/logging/stream-logger.d.ts +1 -1
  103. package/dist/logging/stream-logger.js +6 -3
  104. package/dist/logging/transport.js +2 -2
  105. package/dist/logging/types.d.ts +2 -0
  106. package/dist/logging/utils.d.ts +2 -0
  107. package/dist/logging/utils.js +62 -0
  108. package/dist/models/hyperdrive/models.d.ts +1886 -230
  109. package/dist/models/hyperdrive/models.js +2191 -443
  110. package/dist/schemas/archive.d.ts +9 -0
  111. package/dist/schemas/archive.js +17 -0
  112. package/dist/schemas/cancel.d.ts +6 -0
  113. package/dist/schemas/cancel.js +5 -0
  114. package/dist/schemas/common.d.ts +660 -92
  115. package/dist/schemas/common.js +6 -4
  116. package/dist/schemas/delegate.d.ts +1 -0
  117. package/dist/schemas/delegate.js +1 -0
  118. package/dist/schemas/download-asset.d.ts +21 -9
  119. package/dist/schemas/embed.d.ts +3 -3
  120. package/dist/schemas/embed.js +9 -2
  121. package/dist/schemas/get-model-info.d.ts +12 -10
  122. package/dist/schemas/get-model-info.js +9 -1
  123. package/dist/schemas/index.d.ts +9 -1
  124. package/dist/schemas/index.js +12 -1
  125. package/dist/schemas/json-schema.d.ts +16 -0
  126. package/dist/schemas/json-schema.js +2 -0
  127. package/dist/schemas/llamacpp-config.d.ts +117 -12
  128. package/dist/schemas/llamacpp-config.js +46 -12
  129. package/dist/schemas/load-model.d.ts +3669 -481
  130. package/dist/schemas/load-model.js +95 -34
  131. package/dist/schemas/logging-stream.d.ts +11 -4
  132. package/dist/schemas/logging-stream.js +4 -3
  133. package/dist/schemas/mcp-adapter.d.ts +47 -0
  134. package/dist/schemas/mcp-adapter.js +1 -0
  135. package/dist/schemas/model-src-utils.d.ts +38 -14
  136. package/dist/schemas/model-src-utils.js +4 -3
  137. package/dist/schemas/model-types.d.ts +154 -0
  138. package/dist/schemas/model-types.js +140 -0
  139. package/dist/schemas/ocr.d.ts +88 -0
  140. package/dist/schemas/ocr.js +52 -0
  141. package/dist/schemas/rag.d.ts +183 -52
  142. package/dist/schemas/rag.js +148 -23
  143. package/dist/schemas/reload-config.d.ts +356 -0
  144. package/dist/schemas/reload-config.js +44 -0
  145. package/dist/schemas/runtime-context.d.ts +19 -0
  146. package/dist/schemas/runtime-context.js +7 -0
  147. package/dist/schemas/sdk-config.d.ts +717 -0
  148. package/dist/schemas/sdk-config.js +131 -0
  149. package/dist/schemas/sdk-errors-client.d.ts +5 -0
  150. package/dist/schemas/sdk-errors-client.js +25 -0
  151. package/dist/schemas/sdk-errors-server.d.ts +17 -0
  152. package/dist/schemas/sdk-errors-server.js +85 -0
  153. package/dist/schemas/shard.d.ts +21 -0
  154. package/dist/schemas/shard.js +17 -0
  155. package/dist/schemas/tools.d.ts +3 -0
  156. package/dist/schemas/translate.d.ts +68 -23
  157. package/dist/schemas/translate.js +37 -11
  158. package/dist/schemas/translation-config.d.ts +337 -13
  159. package/dist/schemas/translation-config.js +65 -9
  160. package/dist/schemas/whispercpp-config.d.ts +9 -1
  161. package/dist/schemas/whispercpp-config.js +2 -1
  162. package/dist/scripts/run-unit-tests.d.ts +2 -0
  163. package/dist/scripts/run-unit-tests.js +17 -0
  164. package/dist/server/bare/addons/llamacpp-completion/cache-logger.d.ts +6 -0
  165. package/dist/server/bare/addons/llamacpp-completion/cache-logger.js +34 -0
  166. package/dist/server/bare/addons/{llamacpp → llamacpp-completion}/create-model.d.ts +1 -5
  167. package/dist/server/bare/addons/{llamacpp → llamacpp-completion}/create-model.js +6 -20
  168. package/dist/server/bare/addons/{llamacpp → llamacpp-completion}/handlers/completion-stream.js +26 -7
  169. package/dist/server/bare/addons/llamacpp-completion/index.d.ts +4 -0
  170. package/dist/server/bare/addons/llamacpp-completion/index.js +3 -0
  171. package/dist/server/bare/addons/{llamacpp → llamacpp-completion}/kv-cache-utils.d.ts +4 -1
  172. package/dist/server/bare/addons/{llamacpp → llamacpp-completion}/kv-cache-utils.js +49 -14
  173. package/dist/server/bare/addons/llamacpp-embedding/create-model.d.ts +8 -0
  174. package/dist/server/bare/addons/llamacpp-embedding/create-model.js +38 -0
  175. package/dist/server/bare/addons/llamacpp-embedding/handlers/embed.d.ts +12 -0
  176. package/dist/server/bare/addons/{llamacpp → llamacpp-embedding}/handlers/embed.js +18 -4
  177. package/dist/server/bare/addons/llamacpp-embedding/index.d.ts +3 -0
  178. package/dist/server/bare/addons/llamacpp-embedding/index.js +2 -0
  179. package/dist/server/bare/addons/load-model.js +38 -28
  180. package/dist/server/bare/addons/{translation → nmtcpp-translation}/create-model.js +23 -8
  181. package/dist/server/bare/addons/{translation → nmtcpp-translation}/handlers/translate.js +35 -11
  182. package/dist/server/bare/addons/onnx-ocr/create-model.d.ts +10 -0
  183. package/dist/server/bare/addons/onnx-ocr/create-model.js +39 -0
  184. package/dist/server/bare/addons/onnx-ocr/handlers/ocr-stream.d.ts +10 -0
  185. package/dist/server/bare/addons/onnx-ocr/handlers/ocr-stream.js +109 -0
  186. package/dist/server/bare/addons/onnx-ocr/index.d.ts +3 -0
  187. package/dist/server/bare/addons/onnx-ocr/index.js +2 -0
  188. package/dist/server/bare/addons/unload-model.js +6 -3
  189. package/dist/server/bare/addons/{whispercpp → whispercpp-transcription}/create-model.js +2 -1
  190. package/dist/server/bare/addons/whispercpp-transcription/handlers/transcribe-stream.js +82 -0
  191. package/dist/server/bare/delegate-rpc-client.js +31 -11
  192. package/dist/server/bare/hyperswarm.js +7 -5
  193. package/dist/server/bare/rag-hyperdb/handlers/chunk.d.ts +3 -0
  194. package/dist/server/bare/rag-hyperdb/handlers/chunk.js +7 -0
  195. package/dist/server/bare/rag-hyperdb/handlers/close-workspace.d.ts +3 -0
  196. package/dist/server/bare/rag-hyperdb/handlers/close-workspace.js +9 -0
  197. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.d.ts +1 -1
  198. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.js +9 -10
  199. package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.d.ts +3 -0
  200. package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.js +14 -0
  201. package/dist/server/bare/rag-hyperdb/handlers/ingest.d.ts +9 -0
  202. package/dist/server/bare/rag-hyperdb/handlers/ingest.js +18 -0
  203. package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.d.ts +3 -0
  204. package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.js +4 -0
  205. package/dist/server/bare/rag-hyperdb/handlers/reindex.d.ts +9 -0
  206. package/dist/server/bare/rag-hyperdb/handlers/reindex.js +16 -0
  207. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.d.ts +7 -4
  208. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.js +13 -14
  209. package/dist/server/bare/rag-hyperdb/handlers/search.js +10 -10
  210. package/dist/server/bare/rag-hyperdb/index.d.ts +8 -1
  211. package/dist/server/bare/rag-hyperdb/index.js +8 -1
  212. package/dist/server/bare/rag-hyperdb/rag-operation-manager.d.ts +7 -0
  213. package/dist/server/bare/rag-hyperdb/rag-operation-manager.js +39 -0
  214. package/dist/server/bare/rag-hyperdb/rag-workspace-manager.d.ts +15 -0
  215. package/dist/server/bare/rag-hyperdb/rag-workspace-manager.js +135 -0
  216. package/dist/server/bare/registry/config-registry.d.ts +13 -4
  217. package/dist/server/bare/registry/config-registry.js +53 -10
  218. package/dist/server/bare/registry/logging-stream-registry.d.ts +24 -7
  219. package/dist/server/bare/registry/logging-stream-registry.js +99 -20
  220. package/dist/server/bare/registry/model-config-registry.d.ts +4 -0
  221. package/dist/server/bare/registry/model-config-registry.js +15 -0
  222. package/dist/server/bare/registry/model-config-utils.d.ts +15 -0
  223. package/dist/server/bare/registry/model-config-utils.js +121 -0
  224. package/dist/server/bare/registry/model-registry.d.ts +6 -26
  225. package/dist/server/bare/registry/model-registry.js +9 -6
  226. package/dist/server/bare/registry/runtime-context-registry.d.ts +7 -0
  227. package/dist/server/bare/registry/runtime-context-registry.js +26 -0
  228. package/dist/server/bare/utils/loader-adapter.d.ts +7 -0
  229. package/dist/server/bare/utils/loader-adapter.js +9 -0
  230. package/dist/server/error-handlers.js +4 -2
  231. package/dist/server/rpc/create-server.js +5 -3
  232. package/dist/server/rpc/handle-request.js +115 -19
  233. package/dist/server/rpc/handlers/cancelHandler.js +13 -2
  234. package/dist/server/rpc/handlers/completion-stream-delegated.js +4 -2
  235. package/dist/server/rpc/handlers/completion-stream.js +1 -1
  236. package/dist/server/rpc/handlers/delete-cache.js +4 -2
  237. package/dist/server/rpc/handlers/download-asset.js +3 -1
  238. package/dist/server/rpc/handlers/embed.js +4 -2
  239. package/dist/server/rpc/handlers/get-model-info.d.ts +1 -1
  240. package/dist/server/rpc/handlers/get-model-info.js +22 -10
  241. package/dist/server/rpc/handlers/index.d.ts +4 -2
  242. package/dist/server/rpc/handlers/index.js +2 -2
  243. package/dist/server/rpc/handlers/load-model/download-manager.d.ts +11 -11
  244. package/dist/server/rpc/handlers/load-model/download-manager.js +40 -28
  245. package/dist/server/rpc/handlers/{load-model.d.ts → load-model/handler.d.ts} +2 -2
  246. package/dist/server/rpc/handlers/load-model/handler.js +179 -0
  247. package/dist/server/rpc/handlers/load-model/http.js +361 -50
  248. package/dist/server/rpc/handlers/load-model/hyperdrive.js +26 -22
  249. package/dist/server/rpc/handlers/load-model/index.d.ts +2 -2
  250. package/dist/server/rpc/handlers/load-model/index.js +2 -2
  251. package/dist/server/rpc/handlers/load-model/resolve.js +39 -8
  252. package/dist/server/rpc/handlers/load-model-delegated.d.ts +2 -2
  253. package/dist/server/rpc/handlers/load-model-delegated.js +15 -10
  254. package/dist/server/rpc/handlers/logging-stream.js +4 -4
  255. package/dist/server/rpc/handlers/ocr-stream.d.ts +3 -0
  256. package/dist/server/rpc/handlers/ocr-stream.js +39 -0
  257. package/dist/server/rpc/handlers/provideHandler/connection.js +12 -10
  258. package/dist/server/rpc/handlers/provideHandler/handler.js +18 -16
  259. package/dist/server/rpc/handlers/provideHandler/proxy.js +8 -6
  260. package/dist/server/rpc/handlers/rag.d.ts +2 -2
  261. package/dist/server/rpc/handlers/rag.js +107 -41
  262. package/dist/server/rpc/handlers/stopProvideHandler.js +3 -1
  263. package/dist/server/rpc/handlers/text-to-speech.js +1 -1
  264. package/dist/server/rpc/handlers/transcribe-stream.js +4 -2
  265. package/dist/server/rpc/handlers/translate.js +9 -16
  266. package/dist/server/rpc/handlers/unload-model.js +4 -2
  267. package/dist/server/utils/archive.d.ts +3 -0
  268. package/dist/server/utils/archive.js +171 -0
  269. package/dist/server/utils/audio/decoder.d.ts +2 -1
  270. package/dist/server/utils/audio/decoder.js +48 -11
  271. package/dist/server/utils/cache.d.ts +5 -5
  272. package/dist/server/utils/cache.js +13 -11
  273. package/dist/server/utils/config-transform.d.ts +3 -0
  274. package/dist/server/utils/config-transform.js +23 -0
  275. package/dist/server/utils/formatting.d.ts +13 -0
  276. package/dist/server/utils/formatting.js +26 -0
  277. package/dist/server/utils/gguf-tensor-extractor.d.ts +15 -0
  278. package/dist/server/utils/gguf-tensor-extractor.js +314 -0
  279. package/dist/server/utils/index.d.ts +4 -1
  280. package/dist/server/utils/index.js +4 -1
  281. package/dist/server/utils/shard-utils.d.ts +42 -16
  282. package/dist/server/utils/shard-utils.js +95 -7
  283. package/dist/server/worker.js +49 -19
  284. package/dist/utils/errors-base.d.ts +1 -1
  285. package/dist/utils/errors-base.js +2 -2
  286. package/dist/utils/errors-client.d.ts +24 -0
  287. package/dist/utils/errors-client.js +40 -0
  288. package/dist/utils/errors-server.d.ts +42 -0
  289. package/dist/utils/errors-server.js +71 -0
  290. package/dist/utils/mcp-adapter.d.ts +12 -0
  291. package/dist/utils/mcp-adapter.js +103 -0
  292. package/dist/utils/object.d.ts +2 -0
  293. package/dist/utils/object.js +3 -0
  294. package/dist/utils/tool-helpers.d.ts +10 -2
  295. package/dist/utils/tool-helpers.js +24 -11
  296. package/package.json +74 -36
  297. package/dist/client/api/set-config.d.ts +0 -7
  298. package/dist/client/api/set-config.js +0 -20
  299. package/dist/client/config-manager.d.ts +0 -4
  300. package/dist/client/config-manager.js +0 -8
  301. package/dist/client/rpc/bare-rpc-client.d.ts +0 -4
  302. package/dist/client/rpc/bare-rpc-client.js +0 -91
  303. package/dist/examples/llamacpp-file-logging.d.ts +0 -2
  304. package/dist/examples/rag/rag-hyperdb-workspaces.d.ts +0 -2
  305. package/dist/examples/rag/rag-hyperdb-workspaces.js +0 -106
  306. package/dist/examples/rag/rag-hyperdb.d.ts +0 -2
  307. package/dist/schemas/set-config.d.ts +0 -21
  308. package/dist/schemas/set-config.js +0 -14
  309. package/dist/server/bare/addons/llamacpp/handlers/embed.d.ts +0 -4
  310. package/dist/server/bare/addons/llamacpp/index.d.ts +0 -4
  311. package/dist/server/bare/addons/llamacpp/index.js +0 -3
  312. package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.js +0 -63
  313. package/dist/server/bare/rag-hyperdb/rag-manager.d.ts +0 -5
  314. package/dist/server/bare/rag-hyperdb/rag-manager.js +0 -64
  315. package/dist/server/rpc/handlers/load-model.js +0 -59
  316. package/dist/server/rpc/handlers/set-config.d.ts +0 -3
  317. package/dist/server/rpc/handlers/set-config.js +0 -18
  318. package/dist/server/utils/hash.d.ts +0 -5
  319. package/dist/server/utils/hash.js +0 -11
  320. /package/dist/server/bare/addons/{llamacpp → llamacpp-completion}/handlers/completion-stream.d.ts +0 -0
  321. /package/dist/server/bare/addons/{translation → nmtcpp-translation}/create-model.d.ts +0 -0
  322. /package/dist/server/bare/addons/{translation → nmtcpp-translation}/handlers/translate.d.ts +0 -0
  323. /package/dist/server/bare/addons/{translation → nmtcpp-translation}/index.d.ts +0 -0
  324. /package/dist/server/bare/addons/{translation → nmtcpp-translation}/index.js +0 -0
  325. /package/dist/server/bare/addons/{tts → onnx-tts}/create-model.d.ts +0 -0
  326. /package/dist/server/bare/addons/{tts → onnx-tts}/create-model.js +0 -0
  327. /package/dist/server/bare/addons/{tts → onnx-tts}/handlers/text-to-speech.d.ts +0 -0
  328. /package/dist/server/bare/addons/{tts → onnx-tts}/handlers/text-to-speech.js +0 -0
  329. /package/dist/server/bare/addons/{tts → onnx-tts}/index.d.ts +0 -0
  330. /package/dist/server/bare/addons/{tts → onnx-tts}/index.js +0 -0
  331. /package/dist/server/bare/addons/{whispercpp → whispercpp-transcription}/create-model.d.ts +0 -0
  332. /package/dist/server/bare/addons/{whispercpp → whispercpp-transcription}/handlers/transcribe-stream.d.ts +0 -0
  333. /package/dist/server/bare/addons/{whispercpp → whispercpp-transcription}/index.d.ts +0 -0
  334. /package/dist/server/bare/addons/{whispercpp → whispercpp-transcription}/index.js +0 -0
@@ -1,35 +1,13 @@
1
- import type EventEmitter from "events";
2
1
  import type FilesystemDL from "@qvac/dl-filesystem";
2
+ import type { CanonicalModelType } from "../../../schemas/index";
3
+ import type BaseInference from "@qvac/infer-base";
3
4
  interface AddonInterface {
4
5
  cancel(jobId?: string): Promise<void>;
5
6
  }
6
- export interface AnyModel {
7
- load(...args: unknown[]): Promise<void>;
8
- run(input: unknown): Promise<EventEmitter & {
9
- onUpdate(callback: (data: string) => void): {
10
- await: () => Promise<void>;
11
- };
12
- onUpdate(callback: (data: {
13
- outputArray: Int16Array;
14
- }) => void): {
15
- await: () => Promise<void>;
16
- };
17
- onError(callback: (error: Error) => void): void;
18
- onUpdate(callback: (data: Array<{
19
- text: string;
20
- }>) => void): {
21
- await: () => Promise<void>;
22
- };
23
- cancel(): Promise<void>;
24
- iterate(): AsyncIterableIterator<string | Array<{
25
- text: string;
26
- }>>;
27
- await(): Promise<void>;
28
- }>;
7
+ export type AnyModel = Omit<BaseInference, "addon"> & {
29
8
  reload?(config: unknown): Promise<void>;
30
- unload?(): Promise<void>;
31
9
  addon?: AddonInterface;
32
- }
10
+ };
33
11
  interface DelegateOptions {
34
12
  topic: string;
35
13
  providerPublicKey: string;
@@ -40,6 +18,7 @@ interface LocalOptions {
40
18
  path: string;
41
19
  loadedAt: Date;
42
20
  config: unknown;
21
+ modelType: CanonicalModelType;
43
22
  name?: string | undefined;
44
23
  loader: FilesystemDL;
45
24
  }
@@ -53,6 +32,7 @@ export declare function registerModel(id: string, options: {
53
32
  model: AnyModel;
54
33
  path: string;
55
34
  config: unknown;
35
+ modelType: CanonicalModelType;
56
36
  loader: FilesystemDL;
57
37
  name?: string | undefined;
58
38
  } | {
@@ -1,4 +1,6 @@
1
1
  import { ModelAlreadyRegisteredError, ModelNotFoundError, ModelIsDelegatedError, } from "../../../utils/errors-server.js";
2
+ import { getServerLogger } from "../../../logging/index.js";
3
+ const logger = getServerLogger();
2
4
  // Global registry state - using stateless functions to manage it
3
5
  const modelRegistry = new Map();
4
6
  export function registerModel(id, options) {
@@ -17,7 +19,7 @@ export function registerModel(id, options) {
17
19
  timeout,
18
20
  },
19
21
  });
20
- console.log(`Delegated model registered: ${id} -> topic: ${topic}, provider: ${providerPublicKey}, timeout: ${timeout}ms`);
22
+ logger.info(`Delegated model registered: ${id} -> topic: ${topic}, provider: ${providerPublicKey}, timeout: ${timeout}ms`);
21
23
  }
22
24
  else {
23
25
  modelRegistry.set(id, {
@@ -28,12 +30,13 @@ export function registerModel(id, options) {
28
30
  path: options.path,
29
31
  loadedAt: new Date(),
30
32
  config: options.config,
33
+ modelType: options.modelType,
31
34
  loader: options.loader,
32
35
  name: options.name,
33
36
  },
34
37
  });
35
38
  const nameStr = options.name ? ` (${options.name})` : "";
36
- console.log(`Local model registered: ${id}${nameStr} -> ${options.path}`);
39
+ logger.info(`Local model registered: ${id}${nameStr} -> ${options.path}`);
37
40
  }
38
41
  }
39
42
  export function getModelEntry(id) {
@@ -56,7 +59,7 @@ export function unregisterModel(id) {
56
59
  const entry = modelRegistry.get(id);
57
60
  if (entry) {
58
61
  modelRegistry.delete(id);
59
- console.log(`Model unregistered: ${id}`);
62
+ logger.debug(`Model unregistered: ${id}`);
60
63
  return entry;
61
64
  }
62
65
  return null;
@@ -99,7 +102,7 @@ export function updateModelConfig(id, config) {
99
102
  }
100
103
  export function clearRegistry() {
101
104
  modelRegistry.clear();
102
- console.log("Model registry cleared");
105
+ logger.info("Model registry cleared");
103
106
  }
104
107
  export function getRegistryStats() {
105
108
  return {
@@ -113,9 +116,9 @@ export async function unloadAllModels() {
113
116
  const entry = modelRegistry.get(modelId);
114
117
  if (entry?.local?.model && entry.local.model.unload) {
115
118
  await entry.local.model.unload();
116
- console.log(`Model unloaded: ${modelId}`);
119
+ logger.debug(`Model unloaded: ${modelId}`);
117
120
  }
118
121
  modelRegistry.delete(modelId);
119
122
  }
120
- console.log(`Unloaded ${modelIds.length} models`);
123
+ logger.info(`Unloaded ${modelIds.length} models`);
121
124
  }
@@ -0,0 +1,7 @@
1
+ import type { RuntimeContext } from "../../../schemas/index";
2
+ export declare function setRuntimeContext(ctx: RuntimeContext): void;
3
+ export declare function getRuntimeContext(): RuntimeContext;
4
+ export declare function isMobile(): boolean;
5
+ export declare function isAndroid(): boolean;
6
+ export declare function isIOS(): boolean;
7
+ //# sourceMappingURL=runtime-context-registry.d.ts.map
@@ -0,0 +1,26 @@
1
+ // ============================================
2
+ // Runtime context state
3
+ // ============================================
4
+ let context = {};
5
+ let isSet = false;
6
+ export function setRuntimeContext(ctx) {
7
+ if (isSet)
8
+ return;
9
+ context = ctx;
10
+ isSet = true;
11
+ }
12
+ export function getRuntimeContext() {
13
+ return context;
14
+ }
15
+ // ============================================
16
+ // Convenience helpers
17
+ // ============================================
18
+ export function isMobile() {
19
+ return context.runtime === "react-native";
20
+ }
21
+ export function isAndroid() {
22
+ return context.platform === "android";
23
+ }
24
+ export function isIOS() {
25
+ return context.platform === "ios";
26
+ }
@@ -0,0 +1,7 @@
1
+ import type FilesystemDL from "@qvac/dl-filesystem";
2
+ /**
3
+ * Adapts FilesystemDL to addon Loader interface by adding download stub.
4
+ * download() is never called when using filesystem loader.
5
+ */
6
+ export declare function asLoader<T>(loader: FilesystemDL): T;
7
+ //# sourceMappingURL=loader-adapter.d.ts.map
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Adapts FilesystemDL to addon Loader interface by adding download stub.
3
+ * download() is never called when using filesystem loader.
4
+ */
5
+ export function asLoader(loader) {
6
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access
7
+ loader.download = () => Promise.reject(new Error("download not supported"));
8
+ return loader;
9
+ }
@@ -1,4 +1,6 @@
1
1
  import { createErrorResponse, responseSchema } from "../schemas/index.js";
2
+ import { getServerLogger } from "../logging/index.js";
3
+ const logger = getServerLogger();
2
4
  export function sendErrorResponse(req, error) {
3
5
  try {
4
6
  const errorResponse = createErrorResponse(error);
@@ -6,7 +8,7 @@ export function sendErrorResponse(req, error) {
6
8
  req.reply(responseData, "utf-8");
7
9
  }
8
10
  catch (responseError) {
9
- console.error("Failed to create error response:", responseError);
11
+ logger.error("Failed to create error response:", responseError);
10
12
  const fallbackError = createErrorResponse(new Error("Internal server error"));
11
13
  req.reply(JSON.stringify(fallbackError), "utf-8");
12
14
  }
@@ -19,7 +21,7 @@ export function sendStreamErrorResponse(stream, error) {
19
21
  stream.end();
20
22
  }
21
23
  catch (responseError) {
22
- console.error("Failed to create stream error response:", responseError);
24
+ logger.error("Failed to create stream error response:", responseError);
23
25
  const fallbackError = createErrorResponse(new Error("Internal server error"));
24
26
  stream.write(JSON.stringify(fallbackError) + "\n", "utf-8");
25
27
  stream.end();
@@ -1,19 +1,21 @@
1
1
  import RPC from "bare-rpc";
2
2
  import { connect } from "bare-net";
3
3
  import { handleRequest } from "./handle-request.js";
4
+ import { getServerLogger } from "../../logging/index.js";
5
+ const logger = getServerLogger();
4
6
  export function createBareKitRPCServer() {
5
7
  const { IPC } = globalThis
6
8
  .BareKit;
7
9
  return new RPC(IPC, handleRequest);
8
10
  }
9
11
  export function createIPCClient(socketPath) {
10
- console.log(`Connecting to IPC socket at ${socketPath}`);
12
+ logger.info(`Connecting to IPC socket at ${socketPath}`);
11
13
  const socket = connect(socketPath);
12
14
  socket.on("connect", () => {
13
- console.log("Connected to IPC server");
15
+ logger.info("Connected to IPC server");
14
16
  });
15
17
  socket.on("error", (err) => {
16
- console.error("IPC client connection error:", err);
18
+ logger.error("IPC client connection error:", err);
17
19
  });
18
20
  return new RPC(socket, handleRequest);
19
21
  }
@@ -1,10 +1,12 @@
1
1
  import { requestSchema, responseSchema, } from "../../schemas/index.js";
2
2
  import { handleCompletionStream } from "./handlers/completion-stream.js";
3
3
  import { handleDownloadAsset } from "./handlers/download-asset.js";
4
- import { handleLoadModel } from "./handlers/load-model.js";
4
+ import { handleLoadModel } from "./handlers/load-model/index.js";
5
5
  import { handleLoadModelDelegated } from "./handlers/load-model-delegated.js";
6
6
  import { handleCompletionStreamDelegated } from "./handlers/completion-stream-delegated.js";
7
7
  import { getModelEntry } from "../bare/registry/model-registry.js";
8
+ import { setSDKConfig } from "../bare/registry/config-registry.js";
9
+ import { setRuntimeContext } from "../bare/registry/runtime-context-registry.js";
8
10
  import { handleUnloadModel } from "./handlers/unload-model.js";
9
11
  import { handleTranscribeStream } from "./handlers/transcribe-stream.js";
10
12
  import { handleEmbed } from "./handlers/embed.js";
@@ -16,10 +18,12 @@ import { stopProvideHandler } from "./handlers/stopProvideHandler.js";
16
18
  import { handleRag } from "./handlers/rag.js";
17
19
  import { handleDeleteCache } from "./handlers/delete-cache.js";
18
20
  import { handleTextToSpeech } from "./handlers/text-to-speech.js";
19
- import { handleSetConfig } from "./handlers/set-config.js";
20
21
  import { handleGetModelInfo } from "./handlers/get-model-info.js";
22
+ import { handleOCRStream } from "./handlers/ocr-stream.js";
21
23
  import { sendErrorResponse, sendStreamErrorResponse, } from "../error-handlers.js";
22
24
  import { NoDataReceivedError, UnknownRequestTypeError, } from "../../utils/errors-client.js";
25
+ import { normalizeModelType } from "../../schemas/index.js";
26
+ import { resolveModelConfig } from "../bare/registry/model-config-registry.js";
23
27
  export async function handleRequest(req) {
24
28
  try {
25
29
  const rawData = req.data?.toString();
@@ -27,7 +31,31 @@ export async function handleRequest(req) {
27
31
  throw new NoDataReceivedError();
28
32
  }
29
33
  const jsonData = JSON.parse(rawData);
30
- const request = requestSchema.parse(jsonData);
34
+ // Handle special internal config initialization message
35
+ if (jsonData &&
36
+ typeof jsonData === "object" &&
37
+ "type" in jsonData &&
38
+ jsonData.type === "__init_config") {
39
+ try {
40
+ const initData = jsonData;
41
+ if (initData.config) {
42
+ setSDKConfig(initData.config);
43
+ }
44
+ if (initData.runtimeContext) {
45
+ setRuntimeContext(initData.runtimeContext);
46
+ }
47
+ req.reply(JSON.stringify({ success: true }), "utf-8");
48
+ }
49
+ catch (error) {
50
+ req.reply(JSON.stringify({
51
+ success: false,
52
+ error: error instanceof Error ? error.message : String(error),
53
+ }), "utf-8");
54
+ }
55
+ return;
56
+ }
57
+ const processedData = applyDeviceDefaultsToRequest(jsonData);
58
+ const request = requestSchema.parse(processedData);
31
59
  switch (request.type) {
32
60
  case "downloadAsset": {
33
61
  if (request.withProgress) {
@@ -84,13 +112,19 @@ export async function handleRequest(req) {
84
112
  sendStreamErrorResponse(stream, error);
85
113
  }
86
114
  }
115
+ else if (request.delegate) {
116
+ try {
117
+ const response = await handleLoadModelDelegated(request);
118
+ req.reply(JSON.stringify(responseSchema.parse(response)), "utf-8");
119
+ }
120
+ catch (error) {
121
+ sendErrorResponse(req, error);
122
+ }
123
+ }
87
124
  else {
88
- // Route to appropriate handler based on delegation
125
+ // Load without progress/delegate, or reload config
89
126
  try {
90
- const handler = request.delegate
91
- ? handleLoadModelDelegated
92
- : handleLoadModel;
93
- const response = await handler(request);
127
+ const response = await handleLoadModel(request);
94
128
  req.reply(JSON.stringify(responseSchema.parse(response)), "utf-8");
95
129
  }
96
130
  catch (error) {
@@ -211,12 +245,35 @@ export async function handleRequest(req) {
211
245
  break;
212
246
  }
213
247
  case "rag": {
214
- try {
215
- const response = await handleRag(request);
216
- req.reply(JSON.stringify(responseSchema.parse(response)), "utf-8");
248
+ // Only ingest, saveEmbeddings, and reindex support progress
249
+ const supportsProgress = request.operation === "ingest" ||
250
+ request.operation === "saveEmbeddings" ||
251
+ request.operation === "reindex";
252
+ const withProgress = supportsProgress && request.withProgress;
253
+ if (withProgress) {
254
+ const stream = req.createResponseStream();
255
+ try {
256
+ const response = await handleRag(request, (update) => {
257
+ const data = JSON.stringify(responseSchema.parse(update));
258
+ stream.write(data + "\n", "utf-8");
259
+ });
260
+ // Send final response
261
+ const data = JSON.stringify(responseSchema.parse(response));
262
+ stream.write(data + "\n", "utf-8");
263
+ stream.end();
264
+ }
265
+ catch (error) {
266
+ sendStreamErrorResponse(stream, error);
267
+ }
217
268
  }
218
- catch (error) {
219
- sendErrorResponse(req, error);
269
+ else {
270
+ try {
271
+ const response = await handleRag(request);
272
+ req.reply(JSON.stringify(responseSchema.parse(response)), "utf-8");
273
+ }
274
+ catch (error) {
275
+ sendErrorResponse(req, error);
276
+ }
220
277
  }
221
278
  break;
222
279
  }
@@ -245,9 +302,9 @@ export async function handleRequest(req) {
245
302
  }
246
303
  break;
247
304
  }
248
- case "setConfig": {
305
+ case "getModelInfo": {
249
306
  try {
250
- const response = handleSetConfig(request);
307
+ const response = await handleGetModelInfo(request);
251
308
  req.reply(JSON.stringify(responseSchema.parse(response)), "utf-8");
252
309
  }
253
310
  catch (error) {
@@ -255,13 +312,18 @@ export async function handleRequest(req) {
255
312
  }
256
313
  break;
257
314
  }
258
- case "getModelInfo": {
315
+ case "ocrStream": {
316
+ const stream = req.createResponseStream();
259
317
  try {
260
- const response = await handleGetModelInfo(request);
261
- req.reply(JSON.stringify(responseSchema.parse(response)), "utf-8");
318
+ for await (const response of handleOCRStream(request)) {
319
+ const validatedResponse = responseSchema.parse(response);
320
+ const data = JSON.stringify(validatedResponse);
321
+ stream.write(data + "\n", "utf-8");
322
+ }
323
+ stream.end();
262
324
  }
263
325
  catch (error) {
264
- sendErrorResponse(req, error);
326
+ sendStreamErrorResponse(stream, error);
265
327
  }
266
328
  break;
267
329
  }
@@ -274,3 +336,37 @@ export async function handleRequest(req) {
274
336
  sendErrorResponse(req, error);
275
337
  }
276
338
  }
339
+ /**
340
+ * Apply device-specific config defaults to loadModel requests before schema parsing.
341
+ * This ensures device defaults are applied before schema defaults.
342
+ *
343
+ * Priority: User config > Device defaults > Schema defaults
344
+ */
345
+ function applyDeviceDefaultsToRequest(data) {
346
+ if (!data || typeof data !== "object")
347
+ return data;
348
+ const obj = data;
349
+ const requestType = obj["type"];
350
+ // Only process loadModel requests (not reload config which uses modelId)
351
+ if (requestType !== "loadModel" ||
352
+ !obj["modelType"] ||
353
+ !("modelSrc" in obj)) {
354
+ return data;
355
+ }
356
+ // Normalize model type to canonical form
357
+ let canonicalType;
358
+ try {
359
+ canonicalType = normalizeModelType(obj["modelType"]);
360
+ }
361
+ catch {
362
+ // Invalid model type, let schema validation handle it
363
+ return data;
364
+ }
365
+ // Apply device defaults and full schema defaults to modelConfig
366
+ const rawConfig = obj["modelConfig"] ?? {};
367
+ const configWithDefaults = resolveModelConfig(canonicalType, rawConfig);
368
+ return {
369
+ ...obj,
370
+ modelConfig: configWithDefaults,
371
+ };
372
+ }
@@ -1,15 +1,26 @@
1
1
  import { cancel } from "../../bare/addons/index.js";
2
2
  import { createCancelFunction } from "./load-model/download-manager.js";
3
+ import { cancelRagOperation, DEFAULT_WORKSPACE, } from "../../bare/rag-hyperdb/index.js";
4
+ import { getServerLogger } from "../../../logging/index.js";
5
+ const logger = getServerLogger();
3
6
  export async function cancelHandler(request) {
4
7
  try {
5
8
  switch (request.operation) {
6
9
  case "inference":
7
10
  await cancel({ modelId: request.modelId });
8
11
  break;
9
- case "downloadAsset":
12
+ case "downloadAsset": {
10
13
  const cancelDownload = createCancelFunction(request.downloadKey, request.clearCache);
11
14
  cancelDownload();
12
15
  break;
16
+ }
17
+ case "rag": {
18
+ const cancelled = cancelRagOperation(request.workspace);
19
+ if (!cancelled) {
20
+ logger.warn(`No active RAG operation to cancel for workspace: ${request.workspace ?? DEFAULT_WORKSPACE}`);
21
+ }
22
+ break;
23
+ }
13
24
  }
14
25
  return {
15
26
  type: "cancel",
@@ -17,7 +28,7 @@ export async function cancelHandler(request) {
17
28
  };
18
29
  }
19
30
  catch (error) {
20
- console.error("Error during cancellation:", error);
31
+ logger.error("Error during cancellation:", error);
21
32
  return {
22
33
  type: "cancel",
23
34
  success: false,
@@ -2,6 +2,8 @@ import { getModelEntry } from "../../bare/registry/model-registry.js";
2
2
  import { getRPC } from "../../bare/delegate-rpc-client.js";
3
3
  import { stream } from "../../../client/rpc/rpc-client.js";
4
4
  import { ModelIsDelegatedError } from "../../../utils/errors-server.js";
5
+ import { getServerLogger } from "../../../logging/index.js";
6
+ const logger = getServerLogger();
5
7
  export async function* handleCompletionStreamDelegated(request) {
6
8
  // Get delegation info from model registry
7
9
  const entry = getModelEntry(request.modelId);
@@ -10,7 +12,7 @@ export async function* handleCompletionStreamDelegated(request) {
10
12
  }
11
13
  const { topic, providerPublicKey, timeout } = entry.delegated;
12
14
  try {
13
- console.log(`📤 Sending delegated completionStream request to provider: ${providerPublicKey}${timeout ? `, timeout: ${timeout}ms` : ""}`);
15
+ logger.debug(`📤 Sending delegated completionStream request to provider: ${providerPublicKey}${timeout ? `, timeout: ${timeout}ms` : ""}`);
14
16
  // Create RPC instance for this HyperSwarm peer
15
17
  const rpc = await getRPC(topic, providerPublicKey, { timeout });
16
18
  // Use the regular stream function with the HyperSwarm RPC instance
@@ -21,7 +23,7 @@ export async function* handleCompletionStreamDelegated(request) {
21
23
  }
22
24
  }
23
25
  catch (error) {
24
- console.error("Error in delegated completion stream:", error);
26
+ logger.error("Error in delegated completion stream:", error);
25
27
  yield {
26
28
  type: "completionStream",
27
29
  token: `Error communicating with provider: ${error instanceof Error ? error.message : String(error)}`,
@@ -1,4 +1,4 @@
1
- import { completion } from "../../bare/addons/llamacpp/index.js";
1
+ import { completion } from "../../bare/addons/llamacpp-completion/index.js";
2
2
  export async function* handleCompletionStream(request) {
3
3
  const filteredHistory = request.history.map(({ role, content, attachments }) => ({
4
4
  role,
@@ -1,4 +1,6 @@
1
- import { deleteCache as deleteCacheUtil } from "../../bare/addons/llamacpp/kv-cache-utils.js";
1
+ import { deleteCache as deleteCacheUtil } from "../../bare/addons/llamacpp-completion/index.js";
2
+ import { getServerLogger } from "../../../logging/index.js";
3
+ const logger = getServerLogger();
2
4
  export async function handleDeleteCache(request) {
3
5
  try {
4
6
  if ("all" in request && request.all) {
@@ -19,7 +21,7 @@ export async function handleDeleteCache(request) {
19
21
  };
20
22
  }
21
23
  catch (error) {
22
- console.error("Error deleting cache:", error);
24
+ logger.error("Error deleting cache:", error);
23
25
  return {
24
26
  type: "deleteCache",
25
27
  success: false,
@@ -1,4 +1,6 @@
1
1
  import { resolveModelPath } from "./load-model/resolve.js";
2
+ import { getServerLogger } from "../../../logging/index.js";
3
+ const logger = getServerLogger();
2
4
  export async function handleDownloadAsset(request, progressCallback) {
3
5
  const { assetSrc, seed } = request;
4
6
  try {
@@ -10,7 +12,7 @@ export async function handleDownloadAsset(request, progressCallback) {
10
12
  };
11
13
  }
12
14
  catch (error) {
13
- console.error("Error downloading asset:", error);
15
+ logger.error("Error downloading asset:", error);
14
16
  return {
15
17
  type: "downloadAsset",
16
18
  success: false,
@@ -1,4 +1,6 @@
1
- import { embed } from "../../bare/addons/llamacpp/index.js";
1
+ import { embed } from "../../bare/addons/llamacpp-embedding/index.js";
2
+ import { getServerLogger } from "../../../logging/index.js";
3
+ const logger = getServerLogger();
2
4
  export async function handleEmbed(request) {
3
5
  const { modelId, text } = request;
4
6
  try {
@@ -10,7 +12,7 @@ export async function handleEmbed(request) {
10
12
  };
11
13
  }
12
14
  catch (error) {
13
- console.error("Error during embedding:", error);
15
+ logger.error("Error during embedding:", error);
14
16
  return {
15
17
  type: "embed",
16
18
  success: false,
@@ -1,3 +1,3 @@
1
1
  import type { GetModelInfoRequest, GetModelInfoResponse } from "../../../schemas/index";
2
- export declare const handleGetModelInfo: (request: GetModelInfoRequest) => Promise<GetModelInfoResponse>;
2
+ export declare function handleGetModelInfo(request: GetModelInfoRequest): Promise<GetModelInfoResponse>;
3
3
  //# sourceMappingURL=get-model-info.d.ts.map
@@ -6,7 +6,8 @@ import { promises as fsPromises } from "bare-fs";
6
6
  import path from "bare-path";
7
7
  import { getShardPath } from "../../utils/cache.js";
8
8
  import { ModelNotFoundError } from "../../../utils/errors-server.js";
9
- export const handleGetModelInfo = async (request) => {
9
+ import { normalizeModelType } from "../../../schemas/model-types.js";
10
+ export async function handleGetModelInfo(request) {
10
11
  const { name } = request;
11
12
  const catalogEntry = models.find((m) => m.name === name);
12
13
  if (!catalogEntry) {
@@ -34,6 +35,10 @@ export const handleGetModelInfo = async (request) => {
34
35
  }
35
36
  }
36
37
  const isLoaded = loadedInstances.length > 0;
38
+ // Normalize addon from alias to canonical (vad passes through as-is)
39
+ const normalizedAddon = catalogEntry.addon === "vad"
40
+ ? "vad"
41
+ : normalizeModelType(catalogEntry.addon);
37
42
  const modelInfo = {
38
43
  name: catalogEntry.name,
39
44
  modelId: catalogEntry.modelId,
@@ -41,7 +46,7 @@ export const handleGetModelInfo = async (request) => {
41
46
  hyperbeeKey: catalogEntry.hyperbeeKey,
42
47
  expectedSize: catalogEntry.expectedSize,
43
48
  sha256Checksum: catalogEntry.sha256Checksum,
44
- addon: catalogEntry.addon,
49
+ addon: normalizedAddon,
45
50
  isCached,
46
51
  isLoaded,
47
52
  cacheFiles,
@@ -53,7 +58,7 @@ export const handleGetModelInfo = async (request) => {
53
58
  type: "getModelInfo",
54
59
  modelInfo,
55
60
  };
56
- };
61
+ }
57
62
  async function handleShardedModel(hyperdriveKey, shardMetadata) {
58
63
  const cacheFiles = [];
59
64
  let allShardsCached = true;
@@ -66,13 +71,19 @@ async function handleShardedModel(hyperdriveKey, shardMetadata) {
66
71
  let shardCachedAt;
67
72
  try {
68
73
  const stats = await fsPromises.stat(shardPath);
69
- shardIsCached = stats.isFile();
70
- if (shardIsCached) {
74
+ const fileExists = stats.isFile();
75
+ if (fileExists) {
71
76
  shardActualSize = stats.size;
72
77
  shardCachedAt = stats.mtime;
73
- totalActualSize += stats.size;
74
- if (!latestCachedAt || stats.mtime > latestCachedAt) {
75
- latestCachedAt = stats.mtime;
78
+ shardIsCached = stats.size === shard.expectedSize;
79
+ if (shardIsCached) {
80
+ totalActualSize += stats.size;
81
+ if (!latestCachedAt || stats.mtime > latestCachedAt) {
82
+ latestCachedAt = stats.mtime;
83
+ }
84
+ }
85
+ else {
86
+ allShardsCached = false;
76
87
  }
77
88
  }
78
89
  else {
@@ -114,10 +125,11 @@ async function handleSingleFileModel(hyperdriveKey, modelId, expectedSize, sha25
114
125
  let fileCachedAt;
115
126
  try {
116
127
  const stats = await fsPromises.stat(filePath);
117
- fileIsCached = stats.isFile();
118
- if (fileIsCached) {
128
+ const fileExists = stats.isFile();
129
+ if (fileExists) {
119
130
  fileActualSize = stats.size;
120
131
  fileCachedAt = stats.mtime;
132
+ fileIsCached = stats.size === expectedSize;
121
133
  }
122
134
  }
123
135
  catch {
@@ -12,6 +12,8 @@ import { handleRag } from "./rag";
12
12
  import { cancelHandler } from "./cancelHandler";
13
13
  import { handleDeleteCache } from "./delete-cache";
14
14
  import { handleTextToSpeech } from "./text-to-speech";
15
+ import { handleGetModelInfo } from "./get-model-info";
16
+ import { handleOCRStream } from "./ocr-stream";
15
17
  export declare const handlers: {
16
18
  completionStream: typeof handleCompletionStream;
17
19
  downloadAsset: typeof handleDownloadAsset;
@@ -27,7 +29,7 @@ export declare const handlers: {
27
29
  rag: typeof handleRag;
28
30
  cancel: typeof cancelHandler;
29
31
  textToSpeech: typeof handleTextToSpeech;
30
- setConfig: (request: import("../../../schemas").SetConfigRequest) => import("../../../schemas").SetConfigResponse;
31
- getModelInfo: (request: import("../../../schemas").GetModelInfoRequest) => Promise<import("../../../schemas").GetModelInfoResponse>;
32
+ getModelInfo: typeof handleGetModelInfo;
33
+ ocrStream: typeof handleOCRStream;
32
34
  };
33
35
  //# sourceMappingURL=index.d.ts.map