@qvac/sdk 0.8.1 → 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 (608) hide show
  1. package/LICENSE +24 -1
  2. package/README.md +191 -373
  3. package/dist/client/api/cancel.d.ts +4 -22
  4. package/dist/client/api/cancel.js +6 -25
  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 +2 -6
  13. package/dist/client/api/index.js +2 -6
  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 +11 -0
  19. package/dist/client/api/ping.js +18 -0
  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.d.ts +2 -0
  55. package/dist/examples/embed-hyperdrive.js +19 -0
  56. package/dist/examples/kv-cache-cleanup.js +2 -1
  57. package/dist/examples/kv-cache-custom-key.js +2 -16
  58. package/dist/examples/kv-cache-example.js +2 -1
  59. package/dist/examples/llamacpp-file-logging.d.ts +2 -0
  60. package/dist/examples/{logging-file-transport.js → llamacpp-file-logging.js} +8 -3
  61. package/dist/examples/llamacpp-filesystem.js +2 -2
  62. package/dist/examples/llamacpp-http.js +1 -0
  63. package/dist/examples/llamacpp-hyperdrive.d.ts +2 -0
  64. package/dist/examples/{llamacpp-p2p.js → llamacpp-hyperdrive.js} +2 -1
  65. package/dist/examples/llamacpp-multimodal.js +4 -3
  66. package/dist/examples/llamacpp-native-tools.js +30 -72
  67. package/dist/examples/multi-model-demo.js +3 -2
  68. package/dist/examples/parallel-download.js +14 -46
  69. package/dist/examples/rag/rag-chromadb.js +1 -0
  70. package/dist/examples/rag/rag-hyperdb-workspaces.d.ts +2 -0
  71. package/dist/examples/rag/rag-hyperdb-workspaces.js +107 -0
  72. package/dist/examples/rag/rag-hyperdb.d.ts +2 -0
  73. package/dist/examples/rag/{rag-hyperdb/ingest.js → rag-hyperdb.js} +5 -10
  74. package/dist/examples/rag/rag-lancedb.js +1 -0
  75. package/dist/examples/rag/rag-sqlite.js +1 -0
  76. package/dist/examples/seed-hyperdrive.d.ts +2 -0
  77. package/dist/examples/text-to-speech.d.ts +3 -0
  78. package/dist/examples/{tts/utils.js → text-to-speech.js} +63 -18
  79. package/dist/examples/translation/translation-indic.js +1 -4
  80. package/dist/examples/translation/translation-llm-context.js +1 -0
  81. package/dist/examples/translation/translation-llm.js +2 -2
  82. package/dist/examples/translation/translation-opus.js +3 -6
  83. package/dist/examples/translation/translation-stream.js +3 -3
  84. package/dist/examples/whispercpp-filesystem.js +43 -0
  85. package/dist/examples/{transcription/whispercpp-microphone-record.js → whispercpp-microphone-record.js} +9 -8
  86. package/dist/expo/plugins/index.d.ts +0 -3
  87. package/dist/expo/plugins/index.js +0 -3
  88. package/dist/expo/plugins/withMobileBundle.d.ts +2 -5
  89. package/dist/expo/plugins/withMobileBundle.js +40 -121
  90. package/dist/expo/plugins/withQvacSDK.d.ts +0 -4
  91. package/dist/expo/plugins/withQvacSDK.js +1 -26
  92. package/dist/index.d.ts +4 -9
  93. package/dist/index.js +5 -11
  94. package/dist/logging/base-logger.js +16 -26
  95. package/dist/logging/index.d.ts +1 -7
  96. package/dist/logging/index.js +1 -7
  97. package/dist/logging/logger.d.ts +2 -0
  98. package/dist/logging/logger.js +6 -11
  99. package/dist/logging/stream-logger.d.ts +1 -1
  100. package/dist/logging/stream-logger.js +3 -6
  101. package/dist/logging/transport.js +2 -2
  102. package/dist/logging/types.d.ts +0 -2
  103. package/dist/logging/utils.d.ts +0 -2
  104. package/dist/logging/utils.js +0 -62
  105. package/dist/models/{registry → hyperdrive}/index.js +1 -1
  106. package/dist/models/hyperdrive/models.d.ts +619 -0
  107. package/dist/models/hyperdrive/models.js +693 -0
  108. package/dist/schemas/cancel.d.ts +0 -18
  109. package/dist/schemas/cancel.js +0 -7
  110. package/dist/schemas/common.d.ts +166 -3012
  111. package/dist/schemas/common.js +4 -27
  112. package/dist/schemas/completion-stream.d.ts +60 -31
  113. package/dist/schemas/completion-stream.js +44 -20
  114. package/dist/schemas/delegate.d.ts +0 -9
  115. package/dist/schemas/delegate.js +2 -6
  116. package/dist/schemas/download-asset.d.ts +3 -125
  117. package/dist/schemas/download-asset.js +5 -22
  118. package/dist/schemas/embed.d.ts +3 -3
  119. package/dist/schemas/embed.js +2 -9
  120. package/dist/schemas/index.d.ts +2 -20
  121. package/dist/schemas/index.js +2 -20
  122. package/dist/schemas/llamacpp-config.d.ts +12 -243
  123. package/dist/schemas/llamacpp-config.js +14 -50
  124. package/dist/schemas/load-model.d.ts +893 -14471
  125. package/dist/schemas/load-model.js +72 -325
  126. package/dist/schemas/logging-stream.d.ts +4 -11
  127. package/dist/schemas/logging-stream.js +3 -4
  128. package/dist/schemas/ping.d.ts +11 -0
  129. package/dist/schemas/ping.js +8 -0
  130. package/dist/schemas/rag.d.ts +52 -183
  131. package/dist/schemas/rag.js +23 -152
  132. package/dist/schemas/text-to-speech.d.ts +1 -692
  133. package/dist/schemas/text-to-speech.js +3 -35
  134. package/dist/schemas/transcription.d.ts +0 -3
  135. package/dist/schemas/transcription.js +0 -1
  136. package/dist/schemas/translate.d.ts +23 -68
  137. package/dist/schemas/translate.js +11 -37
  138. package/dist/schemas/translation-config.d.ts +7 -810
  139. package/dist/schemas/translation-config.js +7 -113
  140. package/dist/schemas/unload-model.d.ts +0 -2
  141. package/dist/schemas/unload-model.js +0 -2
  142. package/dist/schemas/whispercpp-config.d.ts +25 -0
  143. package/dist/schemas/whispercpp-config.js +18 -0
  144. package/dist/server/bare/{ops → addons}/cancel.js +1 -2
  145. package/dist/server/bare/addons/index.d.ts +4 -0
  146. package/dist/server/bare/addons/index.js +3 -0
  147. package/dist/server/bare/addons/llamacpp/create-model.d.ts +5 -0
  148. package/dist/server/bare/addons/llamacpp/create-model.js +67 -0
  149. package/dist/server/bare/{plugins/llamacpp-completion/ops → addons/llamacpp/handlers}/completion-stream.d.ts +1 -2
  150. package/dist/server/bare/{plugins/llamacpp-completion/ops → addons/llamacpp/handlers}/completion-stream.js +87 -54
  151. package/dist/server/bare/addons/llamacpp/handlers/embed.d.ts +4 -0
  152. package/dist/server/bare/{ops → addons/llamacpp/handlers}/embed.js +7 -22
  153. package/dist/server/bare/addons/llamacpp/index.d.ts +4 -0
  154. package/dist/server/bare/addons/llamacpp/index.js +3 -0
  155. package/dist/server/bare/{ops → addons/llamacpp}/kv-cache-utils.d.ts +1 -4
  156. package/dist/server/bare/{ops → addons/llamacpp}/kv-cache-utils.js +19 -54
  157. package/dist/server/bare/addons/load-model.d.ts +3 -0
  158. package/dist/server/bare/addons/load-model.js +62 -0
  159. package/dist/server/bare/addons/translation/create-model.d.ts +4 -0
  160. package/dist/server/bare/addons/translation/create-model.js +45 -0
  161. package/dist/server/bare/addons/translation/handlers/translate.d.ts +3 -0
  162. package/dist/server/bare/{ops → addons/translation/handlers}/translate.js +14 -47
  163. package/dist/server/bare/addons/translation/index.d.ts +3 -0
  164. package/dist/server/bare/addons/translation/index.js +2 -0
  165. package/dist/server/bare/addons/tts/create-model.d.ts +6 -0
  166. package/dist/server/bare/addons/tts/create-model.js +40 -0
  167. package/dist/server/bare/{plugins/onnx-tts/ops → addons/tts/handlers}/text-to-speech.js +3 -25
  168. package/dist/server/bare/addons/tts/index.d.ts +3 -0
  169. package/dist/server/bare/addons/tts/index.js +2 -0
  170. package/dist/server/bare/addons/unload-model.js +20 -0
  171. package/dist/server/bare/addons/whispercpp/create-model.d.ts +6 -0
  172. package/dist/server/bare/addons/whispercpp/create-model.js +55 -0
  173. package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.d.ts +3 -0
  174. package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.js +48 -0
  175. package/dist/server/bare/addons/whispercpp/index.d.ts +3 -0
  176. package/dist/server/bare/addons/whispercpp/index.js +2 -0
  177. package/dist/server/bare/delegate-rpc-client.d.ts +0 -6
  178. package/dist/server/bare/delegate-rpc-client.js +45 -187
  179. package/dist/server/bare/hyperswarm.d.ts +0 -3
  180. package/dist/server/bare/hyperswarm.js +6 -29
  181. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.d.ts +1 -1
  182. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.js +10 -9
  183. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.d.ts +4 -7
  184. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.js +14 -13
  185. package/dist/server/bare/rag-hyperdb/handlers/search.js +10 -10
  186. package/dist/server/bare/rag-hyperdb/index.d.ts +1 -8
  187. package/dist/server/bare/rag-hyperdb/index.js +1 -8
  188. package/dist/server/bare/rag-hyperdb/rag-manager.d.ts +5 -0
  189. package/dist/server/bare/rag-hyperdb/rag-manager.js +65 -0
  190. package/dist/server/bare/registry/logging-stream-registry.d.ts +7 -24
  191. package/dist/server/bare/registry/logging-stream-registry.js +20 -99
  192. package/dist/server/bare/registry/model-registry.d.ts +26 -16
  193. package/dist/server/bare/registry/model-registry.js +13 -34
  194. package/dist/server/error-handlers.d.ts +2 -3
  195. package/dist/server/error-handlers.js +10 -15
  196. package/dist/server/http-server.d.ts +2 -0
  197. package/dist/server/http-server.js +189 -0
  198. package/dist/server/rpc/create-server.js +3 -5
  199. package/dist/server/rpc/handle-request.d.ts +9 -0
  200. package/dist/server/rpc/handle-request.js +242 -92
  201. package/dist/server/rpc/handlers/cancelHandler.js +3 -14
  202. package/dist/server/rpc/handlers/completion-stream-delegated.d.ts +1 -3
  203. package/dist/server/rpc/handlers/completion-stream-delegated.js +8 -20
  204. package/dist/server/rpc/handlers/completion-stream.js +41 -2
  205. package/dist/server/rpc/handlers/delete-cache.js +2 -4
  206. package/dist/server/rpc/handlers/download-asset.js +6 -59
  207. package/dist/server/rpc/handlers/embed.js +19 -2
  208. package/dist/server/rpc/handlers/index.d.ts +0 -13
  209. package/dist/server/rpc/handlers/index.js +0 -13
  210. package/dist/server/rpc/handlers/load-model/download-manager.d.ts +11 -12
  211. package/dist/server/rpc/handlers/load-model/download-manager.js +28 -43
  212. package/dist/server/rpc/handlers/load-model/http.d.ts +1 -2
  213. package/dist/server/rpc/handlers/load-model/http.js +55 -424
  214. package/dist/server/rpc/handlers/load-model/hyperdrive.d.ts +1 -2
  215. package/dist/server/rpc/handlers/load-model/hyperdrive.js +171 -364
  216. package/dist/server/rpc/handlers/load-model/index.d.ts +2 -2
  217. package/dist/server/rpc/handlers/load-model/index.js +2 -2
  218. package/dist/server/rpc/handlers/load-model/resolve.d.ts +1 -3
  219. package/dist/server/rpc/handlers/load-model/resolve.js +29 -110
  220. package/dist/server/rpc/handlers/load-model-delegated.d.ts +2 -6
  221. package/dist/server/rpc/handlers/load-model-delegated.js +20 -60
  222. package/dist/server/rpc/handlers/{load-model/handler.d.ts → load-model.d.ts} +2 -2
  223. package/dist/server/rpc/handlers/load-model.js +57 -0
  224. package/dist/server/rpc/handlers/logging-stream.js +4 -4
  225. package/dist/server/rpc/handlers/provideHandler/connection.js +10 -12
  226. package/dist/server/rpc/handlers/provideHandler/handler.js +17 -20
  227. package/dist/server/rpc/handlers/provideHandler/proxy.js +6 -8
  228. package/dist/server/rpc/handlers/rag.d.ts +2 -2
  229. package/dist/server/rpc/handlers/rag.js +43 -130
  230. package/dist/server/rpc/handlers/stopProvideHandler.js +2 -6
  231. package/dist/server/rpc/handlers/text-to-speech.js +5 -2
  232. package/dist/server/rpc/handlers/transcribe-stream.js +24 -2
  233. package/dist/server/rpc/handlers/translate.js +49 -2
  234. package/dist/server/rpc/handlers/unload-model.js +3 -12
  235. package/dist/server/rpc/index.d.ts +1 -1
  236. package/dist/server/utils/audio/decoder.d.ts +1 -2
  237. package/dist/server/utils/audio/decoder.js +12 -49
  238. package/dist/server/utils/cache.d.ts +8 -19
  239. package/dist/server/utils/cache.js +15 -100
  240. package/dist/server/utils/hash.d.ts +5 -0
  241. package/dist/server/utils/hash.js +11 -0
  242. package/dist/server/utils/index.d.ts +2 -7
  243. package/dist/server/utils/index.js +2 -7
  244. package/dist/server/utils/tool-parser.js +14 -28
  245. package/dist/server/worker.d.ts +5 -4
  246. package/dist/server/worker.js +89 -22
  247. package/package.json +41 -148
  248. package/NOTICE +0 -695
  249. package/bare-imports.json +0 -44
  250. package/dist/client/api/get-model-info.d.ts +0 -36
  251. package/dist/client/api/get-model-info.js +0 -14
  252. package/dist/client/api/heartbeat.d.ts +0 -30
  253. package/dist/client/api/heartbeat.js +0 -38
  254. package/dist/client/api/invoke-plugin.d.ts +0 -15
  255. package/dist/client/api/invoke-plugin.js +0 -38
  256. package/dist/client/api/ocr.d.ts +0 -31
  257. package/dist/client/api/ocr.js +0 -88
  258. package/dist/client/api/registry.d.ts +0 -14
  259. package/dist/client/api/registry.js +0 -37
  260. package/dist/client/config-loader/config-utils.d.ts +0 -5
  261. package/dist/client/config-loader/config-utils.js +0 -20
  262. package/dist/client/config-loader/resolve-config.bare.d.ts +0 -9
  263. package/dist/client/config-loader/resolve-config.bare.js +0 -87
  264. package/dist/client/config-loader/resolve-config.expo.d.ts +0 -11
  265. package/dist/client/config-loader/resolve-config.expo.js +0 -62
  266. package/dist/client/config-loader/resolve-config.node.d.ts +0 -10
  267. package/dist/client/config-loader/resolve-config.node.js +0 -145
  268. package/dist/client/init-hooks.d.ts +0 -21
  269. package/dist/client/init-hooks.js +0 -66
  270. package/dist/client/rpc/expo-device-info.d.ts +0 -6
  271. package/dist/client/rpc/expo-device-info.js +0 -32
  272. package/dist/client/rpc/profiling/index.d.ts +0 -2
  273. package/dist/client/rpc/profiling/index.js +0 -1
  274. package/dist/client/rpc/profiling/profiler.d.ts +0 -27
  275. package/dist/client/rpc/profiling/profiler.js +0 -139
  276. package/dist/constants/registry.d.ts +0 -2
  277. package/dist/constants/registry.js +0 -1
  278. package/dist/examples/cache-management.d.ts +0 -2
  279. package/dist/examples/cache-management.js +0 -97
  280. package/dist/examples/config/blind-relay/blind-relay.config.d.ts +0 -5
  281. package/dist/examples/config/blind-relay/blind-relay.config.js +0 -7
  282. package/dist/examples/config/default/default.config.d.ts +0 -8
  283. package/dist/examples/config/default/default.config.js +0 -6
  284. package/dist/examples/config/plugins/plugins.config.d.ts +0 -5
  285. package/dist/examples/config/plugins/plugins.config.js +0 -4
  286. package/dist/examples/config-reload.d.ts +0 -2
  287. package/dist/examples/config-reload.js +0 -49
  288. package/dist/examples/default-config-usage.d.ts +0 -17
  289. package/dist/examples/default-config-usage.js +0 -47
  290. package/dist/examples/delegated-inference/consumer-profiled.d.ts +0 -2
  291. package/dist/examples/delegated-inference/consumer-profiled.js +0 -67
  292. package/dist/examples/download-with-blind-relays.d.ts +0 -2
  293. package/dist/examples/download-with-blind-relays.js +0 -49
  294. package/dist/examples/embed-p2p.d.ts +0 -2
  295. package/dist/examples/embed-p2p.js +0 -54
  296. package/dist/examples/llamacpp-p2p.d.ts +0 -2
  297. package/dist/examples/llamacpp-sharded.d.ts +0 -2
  298. package/dist/examples/llamacpp-sharded.js +0 -53
  299. package/dist/examples/logging-file-transport.d.ts +0 -2
  300. package/dist/examples/logging-streaming.d.ts +0 -2
  301. package/dist/examples/logging-streaming.js +0 -75
  302. package/dist/examples/mcp-websearch.d.ts +0 -13
  303. package/dist/examples/mcp-websearch.js +0 -176
  304. package/dist/examples/ocr-fasttext.d.ts +0 -2
  305. package/dist/examples/ocr-fasttext.js +0 -52
  306. package/dist/examples/plugins.d.ts +0 -14
  307. package/dist/examples/plugins.js +0 -129
  308. package/dist/examples/profiling/basic.d.ts +0 -2
  309. package/dist/examples/profiling/basic.js +0 -71
  310. package/dist/examples/profiling/per-call.d.ts +0 -2
  311. package/dist/examples/profiling/per-call.js +0 -30
  312. package/dist/examples/quickstart.d.ts +0 -2
  313. package/dist/examples/quickstart.js +0 -28
  314. package/dist/examples/rag/rag-hyperdb/cancellation.d.ts +0 -2
  315. package/dist/examples/rag/rag-hyperdb/cancellation.js +0 -75
  316. package/dist/examples/rag/rag-hyperdb/ingest.d.ts +0 -2
  317. package/dist/examples/rag/rag-hyperdb/pipeline.d.ts +0 -2
  318. package/dist/examples/rag/rag-hyperdb/pipeline.js +0 -74
  319. package/dist/examples/rag/rag-hyperdb/workspaces.d.ts +0 -2
  320. package/dist/examples/rag/rag-hyperdb/workspaces.js +0 -178
  321. package/dist/examples/registry-query.d.ts +0 -2
  322. package/dist/examples/registry-query.js +0 -87
  323. package/dist/examples/seed-p2p.d.ts +0 -2
  324. package/dist/examples/transcription/parakeet-ctc-filesystem.d.ts +0 -2
  325. package/dist/examples/transcription/parakeet-ctc-filesystem.js +0 -40
  326. package/dist/examples/transcription/parakeet-microphone-record.d.ts +0 -2
  327. package/dist/examples/transcription/parakeet-microphone-record.js +0 -95
  328. package/dist/examples/transcription/parakeet-sortformer.d.ts +0 -2
  329. package/dist/examples/transcription/parakeet-sortformer.js +0 -115
  330. package/dist/examples/transcription/parakeet-tdt-filesystem.d.ts +0 -2
  331. package/dist/examples/transcription/parakeet-tdt-filesystem.js +0 -44
  332. package/dist/examples/transcription/whispercpp-filesystem.js +0 -69
  333. package/dist/examples/transcription/whispercpp-prompt.d.ts +0 -2
  334. package/dist/examples/transcription/whispercpp-prompt.js +0 -67
  335. package/dist/examples/translation/translation-bergamot-batch.d.ts +0 -2
  336. package/dist/examples/translation/translation-bergamot-batch.js +0 -49
  337. package/dist/examples/translation/translation-bergamot-pivot.d.ts +0 -2
  338. package/dist/examples/translation/translation-bergamot-pivot.js +0 -73
  339. package/dist/examples/translation/translation-bergamot.d.ts +0 -2
  340. package/dist/examples/translation/translation-bergamot.js +0 -39
  341. package/dist/examples/translation/translation-llm-afriquegemma.d.ts +0 -2
  342. package/dist/examples/translation/translation-llm-afriquegemma.js +0 -39
  343. package/dist/examples/tts/chatterbox.d.ts +0 -2
  344. package/dist/examples/tts/chatterbox.js +0 -59
  345. package/dist/examples/tts/supertonic.d.ts +0 -2
  346. package/dist/examples/tts/supertonic.js +0 -51
  347. package/dist/examples/tts/utils.d.ts +0 -17
  348. package/dist/expo/plugins/resolve-sdk-package-dir.d.ts +0 -15
  349. package/dist/expo/plugins/resolve-sdk-package-dir.js +0 -31
  350. package/dist/expo/plugins/withAndroidArchitecture.d.ts +0 -8
  351. package/dist/expo/plugins/withAndroidArchitecture.js +0 -52
  352. package/dist/expo/plugins/withAndroidNdkVersion.d.ts +0 -8
  353. package/dist/expo/plugins/withAndroidNdkVersion.js +0 -31
  354. package/dist/expo/plugins/withDeviceInfo.d.ts +0 -10
  355. package/dist/expo/plugins/withDeviceInfo.js +0 -48
  356. package/dist/logging/addon.d.ts +0 -6
  357. package/dist/logging/addon.js +0 -75
  358. package/dist/logging/client-logger.d.ts +0 -3
  359. package/dist/logging/client-logger.js +0 -24
  360. package/dist/logging/namespaces.d.ts +0 -6
  361. package/dist/logging/namespaces.js +0 -6
  362. package/dist/logging/registry.d.ts +0 -31
  363. package/dist/logging/registry.js +0 -62
  364. package/dist/logging/server-logger.d.ts +0 -3
  365. package/dist/logging/server-logger.js +0 -16
  366. package/dist/models/registry/models.d.ts +0 -10417
  367. package/dist/models/registry/models.js +0 -10757
  368. package/dist/models/update-models/codegen.d.ts +0 -3
  369. package/dist/models/update-models/codegen.js +0 -135
  370. package/dist/models/update-models/history.d.ts +0 -24
  371. package/dist/models/update-models/history.js +0 -107
  372. package/dist/models/update-models/index.d.ts +0 -2
  373. package/dist/models/update-models/index.js +0 -125
  374. package/dist/models/update-models/naming.d.ts +0 -4
  375. package/dist/models/update-models/naming.js +0 -370
  376. package/dist/models/update-models/processing.d.ts +0 -8
  377. package/dist/models/update-models/processing.js +0 -67
  378. package/dist/models/update-models/registry.d.ts +0 -4
  379. package/dist/models/update-models/registry.js +0 -67
  380. package/dist/models/update-models/shards.d.ts +0 -4
  381. package/dist/models/update-models/shards.js +0 -57
  382. package/dist/models/update-models/types.d.ts +0 -60
  383. package/dist/models/update-models/types.js +0 -1
  384. package/dist/models/update-models/utils.d.ts +0 -3
  385. package/dist/models/update-models/utils.js +0 -21
  386. package/dist/pear/pre.d.ts +0 -18
  387. package/dist/pear/pre.js +0 -433
  388. package/dist/profiling/aggregator.d.ts +0 -15
  389. package/dist/profiling/aggregator.js +0 -100
  390. package/dist/profiling/clock.d.ts +0 -12
  391. package/dist/profiling/clock.js +0 -51
  392. package/dist/profiling/controller.d.ts +0 -33
  393. package/dist/profiling/controller.js +0 -123
  394. package/dist/profiling/envelope.d.ts +0 -10
  395. package/dist/profiling/envelope.js +0 -36
  396. package/dist/profiling/events.d.ts +0 -20
  397. package/dist/profiling/events.js +0 -37
  398. package/dist/profiling/exporters.d.ts +0 -10
  399. package/dist/profiling/exporters.js +0 -236
  400. package/dist/profiling/index.d.ts +0 -36
  401. package/dist/profiling/index.js +0 -31
  402. package/dist/profiling/ring-buffer.d.ts +0 -19
  403. package/dist/profiling/ring-buffer.js +0 -83
  404. package/dist/profiling/types.d.ts +0 -47
  405. package/dist/profiling/types.js +0 -1
  406. package/dist/schemas/archive.d.ts +0 -9
  407. package/dist/schemas/archive.js +0 -17
  408. package/dist/schemas/engine-addon-map.d.ts +0 -5
  409. package/dist/schemas/engine-addon-map.js +0 -52
  410. package/dist/schemas/get-model-info.d.ts +0 -120
  411. package/dist/schemas/get-model-info.js +0 -58
  412. package/dist/schemas/heartbeat.d.ts +0 -17
  413. package/dist/schemas/heartbeat.js +0 -10
  414. package/dist/schemas/json-schema.d.ts +0 -16
  415. package/dist/schemas/json-schema.js +0 -2
  416. package/dist/schemas/mcp-adapter.d.ts +0 -47
  417. package/dist/schemas/mcp-adapter.js +0 -1
  418. package/dist/schemas/model-src-utils.d.ts +0 -148
  419. package/dist/schemas/model-src-utils.js +0 -35
  420. package/dist/schemas/model-types.d.ts +0 -183
  421. package/dist/schemas/model-types.js +0 -168
  422. package/dist/schemas/ocr.d.ts +0 -125
  423. package/dist/schemas/ocr.js +0 -57
  424. package/dist/schemas/path-validation.d.ts +0 -10
  425. package/dist/schemas/path-validation.js +0 -22
  426. package/dist/schemas/plugin.d.ts +0 -226
  427. package/dist/schemas/plugin.js +0 -158
  428. package/dist/schemas/profiling.d.ts +0 -105
  429. package/dist/schemas/profiling.js +0 -66
  430. package/dist/schemas/registry.d.ts +0 -356
  431. package/dist/schemas/registry.js +0 -93
  432. package/dist/schemas/reload-config.d.ts +0 -476
  433. package/dist/schemas/reload-config.js +0 -44
  434. package/dist/schemas/runtime-context.d.ts +0 -19
  435. package/dist/schemas/runtime-context.js +0 -7
  436. package/dist/schemas/sdk-config.d.ts +0 -2973
  437. package/dist/schemas/sdk-config.js +0 -136
  438. package/dist/schemas/sdk-errors-client.d.ts +0 -31
  439. package/dist/schemas/sdk-errors-client.js +0 -143
  440. package/dist/schemas/sdk-errors-registry.d.ts +0 -6
  441. package/dist/schemas/sdk-errors-registry.js +0 -8
  442. package/dist/schemas/sdk-errors-server.d.ts +0 -89
  443. package/dist/schemas/sdk-errors-server.js +0 -451
  444. package/dist/schemas/shard.d.ts +0 -21
  445. package/dist/schemas/shard.js +0 -17
  446. package/dist/schemas/tools.d.ts +0 -65
  447. package/dist/schemas/tools.js +0 -43
  448. package/dist/schemas/transcription-config.d.ts +0 -383
  449. package/dist/schemas/transcription-config.js +0 -95
  450. package/dist/scripts/run-security-tests-bare.d.ts +0 -2
  451. package/dist/scripts/run-security-tests-bare.js +0 -78
  452. package/dist/scripts/run-security-tests.d.ts +0 -2
  453. package/dist/scripts/run-security-tests.js +0 -22
  454. package/dist/scripts/run-unit-tests.d.ts +0 -2
  455. package/dist/scripts/run-unit-tests.js +0 -17
  456. package/dist/server/bare/ops/embed.d.ts +0 -12
  457. package/dist/server/bare/ops/load-model.d.ts +0 -9
  458. package/dist/server/bare/ops/load-model.js +0 -85
  459. package/dist/server/bare/ops/transcribe.d.ts +0 -3
  460. package/dist/server/bare/ops/transcribe.js +0 -75
  461. package/dist/server/bare/ops/translate.d.ts +0 -5
  462. package/dist/server/bare/ops/unload-model.js +0 -41
  463. package/dist/server/bare/plugins/index.d.ts +0 -8
  464. package/dist/server/bare/plugins/index.js +0 -7
  465. package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.d.ts +0 -6
  466. package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.js +0 -34
  467. package/dist/server/bare/plugins/llamacpp-completion/plugin.d.ts +0 -220
  468. package/dist/server/bare/plugins/llamacpp-completion/plugin.js +0 -155
  469. package/dist/server/bare/plugins/llamacpp-embedding/plugin.d.ts +0 -54
  470. package/dist/server/bare/plugins/llamacpp-embedding/plugin.js +0 -87
  471. package/dist/server/bare/plugins/nmtcpp-translation/plugin.d.ts +0 -367
  472. package/dist/server/bare/plugins/nmtcpp-translation/plugin.js +0 -201
  473. package/dist/server/bare/plugins/onnx-ocr/ops/ocr-stream.d.ts +0 -10
  474. package/dist/server/bare/plugins/onnx-ocr/ops/ocr-stream.js +0 -110
  475. package/dist/server/bare/plugins/onnx-ocr/plugin.d.ts +0 -86
  476. package/dist/server/bare/plugins/onnx-ocr/plugin.js +0 -117
  477. package/dist/server/bare/plugins/onnx-tts/plugin.d.ts +0 -373
  478. package/dist/server/bare/plugins/onnx-tts/plugin.js +0 -182
  479. package/dist/server/bare/plugins/onnx-tts/wav-helper.d.ts +0 -14
  480. package/dist/server/bare/plugins/onnx-tts/wav-helper.js +0 -107
  481. package/dist/server/bare/plugins/parakeet-transcription/plugin.d.ts +0 -317
  482. package/dist/server/bare/plugins/parakeet-transcription/plugin.js +0 -154
  483. package/dist/server/bare/plugins/whispercpp-transcription/plugin.d.ts +0 -237
  484. package/dist/server/bare/plugins/whispercpp-transcription/plugin.js +0 -86
  485. package/dist/server/bare/rag-hyperdb/handlers/chunk.d.ts +0 -3
  486. package/dist/server/bare/rag-hyperdb/handlers/chunk.js +0 -7
  487. package/dist/server/bare/rag-hyperdb/handlers/close-workspace.d.ts +0 -3
  488. package/dist/server/bare/rag-hyperdb/handlers/close-workspace.js +0 -9
  489. package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.d.ts +0 -3
  490. package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.js +0 -14
  491. package/dist/server/bare/rag-hyperdb/handlers/ingest.d.ts +0 -9
  492. package/dist/server/bare/rag-hyperdb/handlers/ingest.js +0 -18
  493. package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.d.ts +0 -3
  494. package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.js +0 -4
  495. package/dist/server/bare/rag-hyperdb/handlers/reindex.d.ts +0 -9
  496. package/dist/server/bare/rag-hyperdb/handlers/reindex.js +0 -16
  497. package/dist/server/bare/rag-hyperdb/rag-operation-manager.d.ts +0 -7
  498. package/dist/server/bare/rag-hyperdb/rag-operation-manager.js +0 -39
  499. package/dist/server/bare/rag-hyperdb/rag-workspace-manager.d.ts +0 -15
  500. package/dist/server/bare/rag-hyperdb/rag-workspace-manager.js +0 -136
  501. package/dist/server/bare/registry/config-registry.d.ts +0 -14
  502. package/dist/server/bare/registry/config-registry.js +0 -82
  503. package/dist/server/bare/registry/model-config-registry.d.ts +0 -4
  504. package/dist/server/bare/registry/model-config-registry.js +0 -15
  505. package/dist/server/bare/registry/model-config-utils.d.ts +0 -15
  506. package/dist/server/bare/registry/model-config-utils.js +0 -112
  507. package/dist/server/bare/registry/registry-client.d.ts +0 -5
  508. package/dist/server/bare/registry/registry-client.js +0 -37
  509. package/dist/server/bare/registry/runtime-context-registry.d.ts +0 -7
  510. package/dist/server/bare/registry/runtime-context-registry.js +0 -26
  511. package/dist/server/bare/utils/audio-input.d.ts +0 -10
  512. package/dist/server/bare/utils/audio-input.js +0 -33
  513. package/dist/server/bare/utils/loader-adapter.d.ts +0 -7
  514. package/dist/server/bare/utils/loader-adapter.js +0 -9
  515. package/dist/server/env.d.ts +0 -22
  516. package/dist/server/env.js +0 -57
  517. package/dist/server/plugins/index.d.ts +0 -2
  518. package/dist/server/plugins/index.js +0 -1
  519. package/dist/server/plugins/registry.d.ts +0 -9
  520. package/dist/server/plugins/registry.js +0 -79
  521. package/dist/server/rpc/delegate-transport.d.ts +0 -19
  522. package/dist/server/rpc/delegate-transport.js +0 -236
  523. package/dist/server/rpc/delegate-utils.d.ts +0 -2
  524. package/dist/server/rpc/delegate-utils.js +0 -5
  525. package/dist/server/rpc/handler-registry.d.ts +0 -3
  526. package/dist/server/rpc/handler-registry.js +0 -113
  527. package/dist/server/rpc/handler-utils.d.ts +0 -23
  528. package/dist/server/rpc/handler-utils.js +0 -170
  529. package/dist/server/rpc/handlers/cancel-delegated.d.ts +0 -4
  530. package/dist/server/rpc/handlers/cancel-delegated.js +0 -71
  531. package/dist/server/rpc/handlers/get-model-info.d.ts +0 -3
  532. package/dist/server/rpc/handlers/get-model-info.js +0 -164
  533. package/dist/server/rpc/handlers/heartbeat-delegated.d.ts +0 -4
  534. package/dist/server/rpc/handlers/heartbeat-delegated.js +0 -32
  535. package/dist/server/rpc/handlers/heartbeat.d.ts +0 -3
  536. package/dist/server/rpc/handlers/heartbeat.js +0 -3
  537. package/dist/server/rpc/handlers/load-model/download-stats.d.ts +0 -6
  538. package/dist/server/rpc/handlers/load-model/download-stats.js +0 -87
  539. package/dist/server/rpc/handlers/load-model/handler.js +0 -187
  540. package/dist/server/rpc/handlers/load-model/registry.d.ts +0 -11
  541. package/dist/server/rpc/handlers/load-model/registry.js +0 -548
  542. package/dist/server/rpc/handlers/load-model/types.d.ts +0 -29
  543. package/dist/server/rpc/handlers/load-model/types.js +0 -1
  544. package/dist/server/rpc/handlers/ocr-stream.d.ts +0 -3
  545. package/dist/server/rpc/handlers/ocr-stream.js +0 -4
  546. package/dist/server/rpc/handlers/plugin-dispatch.d.ts +0 -15
  547. package/dist/server/rpc/handlers/plugin-dispatch.js +0 -59
  548. package/dist/server/rpc/handlers/plugin-invoke.d.ts +0 -4
  549. package/dist/server/rpc/handlers/plugin-invoke.js +0 -92
  550. package/dist/server/rpc/handlers/registry.d.ts +0 -5
  551. package/dist/server/rpc/handlers/registry.js +0 -157
  552. package/dist/server/rpc/handlers/unload-model-delegated.d.ts +0 -3
  553. package/dist/server/rpc/handlers/unload-model-delegated.js +0 -32
  554. package/dist/server/rpc/profiling/context.d.ts +0 -18
  555. package/dist/server/rpc/profiling/context.js +0 -38
  556. package/dist/server/rpc/profiling/delegation-profiler.d.ts +0 -32
  557. package/dist/server/rpc/profiling/delegation-profiler.js +0 -154
  558. package/dist/server/rpc/profiling/index.d.ts +0 -5
  559. package/dist/server/rpc/profiling/index.js +0 -4
  560. package/dist/server/rpc/profiling/operation-metrics.d.ts +0 -25
  561. package/dist/server/rpc/profiling/operation-metrics.js +0 -199
  562. package/dist/server/rpc/profiling/operation-wrappers.d.ts +0 -18
  563. package/dist/server/rpc/profiling/operation-wrappers.js +0 -124
  564. package/dist/server/rpc/profiling/profiler.d.ts +0 -13
  565. package/dist/server/rpc/profiling/profiler.js +0 -97
  566. package/dist/server/utils/archive.d.ts +0 -4
  567. package/dist/server/utils/archive.js +0 -179
  568. package/dist/server/utils/checksum.d.ts +0 -4
  569. package/dist/server/utils/checksum.js +0 -31
  570. package/dist/server/utils/config-transform.d.ts +0 -3
  571. package/dist/server/utils/config-transform.js +0 -23
  572. package/dist/server/utils/formatting.d.ts +0 -19
  573. package/dist/server/utils/formatting.js +0 -61
  574. package/dist/server/utils/gguf-tensor-extractor.d.ts +0 -15
  575. package/dist/server/utils/gguf-tensor-extractor.js +0 -314
  576. package/dist/server/utils/path-security.d.ts +0 -12
  577. package/dist/server/utils/path-security.js +0 -25
  578. package/dist/server/utils/shard-utils.d.ts +0 -48
  579. package/dist/server/utils/shard-utils.js +0 -125
  580. package/dist/server/utils/tool-integration.d.ts +0 -13
  581. package/dist/server/utils/tool-integration.js +0 -43
  582. package/dist/server/worker-core.d.ts +0 -6
  583. package/dist/server/worker-core.js +0 -88
  584. package/dist/utils/errors-base.d.ts +0 -3
  585. package/dist/utils/errors-base.js +0 -13
  586. package/dist/utils/errors-client.d.ts +0 -137
  587. package/dist/utils/errors-client.js +0 -240
  588. package/dist/utils/errors-server.d.ts +0 -236
  589. package/dist/utils/errors-server.js +0 -412
  590. package/dist/utils/global-singleton.d.ts +0 -2
  591. package/dist/utils/global-singleton.js +0 -10
  592. package/dist/utils/mcp-adapter.d.ts +0 -12
  593. package/dist/utils/mcp-adapter.js +0 -103
  594. package/dist/utils/object.d.ts +0 -2
  595. package/dist/utils/object.js +0 -3
  596. package/dist/utils/path-sanitize.d.ts +0 -17
  597. package/dist/utils/path-sanitize.js +0 -54
  598. package/dist/utils/tool-helpers.d.ts +0 -25
  599. package/dist/utils/tool-helpers.js +0 -112
  600. package/expo/plugins/patches/android-link.mjs +0 -63
  601. package/expo/plugins/patches/ios-link.mjs +0 -63
  602. /package/dist/examples/{seed-p2p.js → seed-hyperdrive.js} +0 -0
  603. /package/dist/examples/{transcription/whispercpp-filesystem.d.ts → whispercpp-filesystem.d.ts} +0 -0
  604. /package/dist/examples/{transcription/whispercpp-microphone-record.d.ts → whispercpp-microphone-record.d.ts} +0 -0
  605. /package/dist/models/{registry → hyperdrive}/index.d.ts +0 -0
  606. /package/dist/server/bare/{ops → addons}/cancel.d.ts +0 -0
  607. /package/dist/server/bare/{plugins/onnx-tts/ops → addons/tts/handlers}/text-to-speech.d.ts +0 -0
  608. /package/dist/server/bare/{ops → addons}/unload-model.d.ts +0 -0
@@ -1,548 +0,0 @@
1
- import { promises as fsPromises } from "bare-fs";
2
- import path from "bare-path";
3
- import { AbortController } from "bare-abort-controller";
4
- import { getModelsCacheDir, generateShortHash, detectShardedModel, getShardedModelCacheDir, getShardPath, getOnnxModelPath, measureChecksum, extractTensorsFromShards, calculatePercentage, } from "../../../utils/index.js";
5
- import { getModelByPath } from "../../../../models/registry/index.js";
6
- import { getRegistryClient } from "../../../bare/registry/registry-client.js";
7
- import { getActiveDownload, registerDownload, unregisterDownload, createRegistryDownloadKey, clearClearCacheFlag, } from "./download-manager.js";
8
- import { ChecksumValidationFailedError, DownloadCancelledError, ModelNotFoundError, RegistryDownloadFailedError, } from "../../../../utils/errors-server.js";
9
- import { getServerLogger } from "../../../../logging/index.js";
10
- const logger = getServerLogger();
11
- const REGISTRY_STREAM_TIMEOUT_MS = 60_000;
12
- function buildBlobBinding(meta) {
13
- return {
14
- coreKey: meta.blobCoreKey,
15
- blockOffset: meta.blobBlockOffset,
16
- blockLength: meta.blobBlockLength,
17
- byteOffset: meta.blobByteOffset,
18
- byteLength: meta.expectedSize,
19
- };
20
- }
21
- /**
22
- * Validate a cached file against expected size and checksum.
23
- */
24
- async function validateCachedFile(modelPath, modelFileName, expectedSize, expectedChecksum, hooks) {
25
- try {
26
- await fsPromises.access(modelPath);
27
- const localStats = await fsPromises.stat(modelPath);
28
- const localSize = localStats.size;
29
- if (localSize === expectedSize) {
30
- logger.info(`✅ Model cached with correct size: ${modelPath}`);
31
- // Validate checksum if provided
32
- if (expectedChecksum && expectedChecksum.length === 64) {
33
- const checksum = await measureChecksum(modelPath, hooks);
34
- if (checksum !== expectedChecksum) {
35
- throw new ChecksumValidationFailedError(`${modelFileName}. Expected: ${expectedChecksum}. Actual: ${checksum}. File may be corrupted`);
36
- }
37
- }
38
- logger.info(`✅ Model already cached and validated: ${modelPath}`);
39
- return modelPath;
40
- }
41
- // File exists but wrong size (incomplete/corrupted) - remove it
42
- logger.warn(`🗑️ Removing incomplete cached file (expected ${expectedSize}, got ${localSize}): ${modelPath}`);
43
- await fsPromises.unlink(modelPath);
44
- return null;
45
- }
46
- catch (error) {
47
- if (error instanceof ChecksumValidationFailedError) {
48
- // Corrupted file - remove it so next download starts fresh
49
- logger.warn(`🗑️ Removing corrupted cached file: ${modelPath}`);
50
- await fsPromises.unlink(modelPath).catch(() => { });
51
- }
52
- // File doesn't exist or was cleaned up - need to download
53
- return null;
54
- }
55
- }
56
- /**
57
- * Download a single file from the registry to filesystem.
58
- * When blobBinding is provided, uses direct blob download (skips metadata sync).
59
- * Otherwise falls back to metadata-based downloadModel.
60
- */
61
- async function downloadSingleFileFromRegistry(registryPath, registrySource, modelPath, modelFileName, downloadKey, expectedSize, expectedChecksum, progressCallback, signal, blobBinding, hooks) {
62
- if (signal?.aborted) {
63
- throw new DownloadCancelledError();
64
- }
65
- const client = await getRegistryClient();
66
- const dir = path.dirname(modelPath);
67
- await fsPromises.mkdir(dir, { recursive: true });
68
- // Adapt registry client's core.on("download") progress to SDK ModelProgressUpdate.
69
- // This reports network-layer bytes, decoupled from disk I/O backpressure.
70
- const onProgress = progressCallback
71
- ? (progress) => {
72
- const total = progress.total || expectedSize || progress.downloaded;
73
- progressCallback({
74
- type: "modelProgress",
75
- downloaded: progress.downloaded,
76
- total,
77
- percentage: total > 0
78
- ? calculatePercentage(progress.downloaded, total)
79
- : 0,
80
- downloadKey,
81
- });
82
- }
83
- : undefined;
84
- const clientOptions = {
85
- timeout: REGISTRY_STREAM_TIMEOUT_MS,
86
- outputFile: modelPath,
87
- ...(onProgress && { onProgress }),
88
- ...(signal && { signal: signal }),
89
- };
90
- if (blobBinding) {
91
- logger.info(`📥 Downloading blob directly: ${modelFileName}`);
92
- await client.downloadBlob(blobBinding, clientOptions);
93
- }
94
- else {
95
- logger.info(`📥 Downloading from registry: ${registryPath}`);
96
- await client.downloadModel(registryPath, registrySource, clientOptions);
97
- }
98
- logger.info(`✅ Downloaded to ${modelPath}`);
99
- const stats = await fsPromises.stat(modelPath);
100
- if (expectedSize && stats.size !== expectedSize) {
101
- await fsPromises.unlink(modelPath).catch(() => { });
102
- throw new ChecksumValidationFailedError(`${modelFileName}. File size mismatch: expected ${expectedSize}, got ${stats.size}`);
103
- }
104
- if (expectedChecksum && expectedChecksum.length === 64) {
105
- const checksum = await measureChecksum(modelPath, hooks);
106
- if (checksum !== expectedChecksum) {
107
- await fsPromises.unlink(modelPath);
108
- throw new ChecksumValidationFailedError(`${modelFileName}. Expected: ${expectedChecksum}. Actual: ${checksum}`);
109
- }
110
- logger.info(`✅ Checksum validated for ${modelFileName}`);
111
- }
112
- if (progressCallback) {
113
- progressCallback({
114
- type: "modelProgress",
115
- downloaded: stats.size,
116
- total: stats.size,
117
- percentage: 100,
118
- downloadKey,
119
- });
120
- }
121
- }
122
- /**
123
- * Find all shards for a model using path prefix query.
124
- */
125
- async function findModelShards(registryPath) {
126
- const client = await getRegistryClient();
127
- const shardInfo = detectShardedModel(registryPath.split("/").pop() || "");
128
- if (!shardInfo.isSharded) {
129
- throw new Error(`Not a sharded model path: ${registryPath}`);
130
- }
131
- const pathPrefix = registryPath.replace(/-\d{5}-of-\d{5}\./, ".");
132
- const basePath = pathPrefix.substring(0, pathPrefix.lastIndexOf("."));
133
- logger.info(`🔍 Finding shards with prefix: ${basePath}`);
134
- const shards = await client.findModels({
135
- gte: { path: basePath },
136
- lte: { path: basePath + "\uffff" },
137
- });
138
- const sortedShards = shards
139
- .filter((s) => {
140
- const info = detectShardedModel(s.path.split("/").pop() || "");
141
- return info.isSharded;
142
- })
143
- .sort((a, b) => {
144
- const aInfo = detectShardedModel(a.path.split("/").pop() || "");
145
- const bInfo = detectShardedModel(b.path.split("/").pop() || "");
146
- return (aInfo.currentShard || 0) - (bInfo.currentShard || 0);
147
- })
148
- .map((s) => ({
149
- path: s.path,
150
- source: s.source,
151
- size: s.blobBinding?.byteLength || 0,
152
- checksum: s.blobBinding?.["sha256"] ||
153
- s.sha256 ||
154
- "",
155
- }));
156
- logger.info(`📦 Found ${sortedShards.length} shards`);
157
- return sortedShards;
158
- }
159
- /**
160
- * Download sharded model files from registry.
161
- * When localShardMetadata is provided, uses pre-computed metadata + blob direct download
162
- * instead of querying the registry for shard info.
163
- */
164
- async function downloadShardedFilesFromRegistry(registryPath, registrySource, cacheKey, progressCallback, signal, localShardMetadata, hooks) {
165
- if (signal?.aborted) {
166
- throw new DownloadCancelledError();
167
- }
168
- let shards;
169
- if (localShardMetadata?.length) {
170
- shards = localShardMetadata.map((shard) => ({
171
- filename: shard.filename,
172
- size: shard.expectedSize,
173
- checksum: shard.sha256Checksum,
174
- path: registryPath,
175
- source: registrySource,
176
- blobBinding: buildBlobBinding(shard),
177
- }));
178
- }
179
- else {
180
- const filename = registryPath.split("/").pop() || registryPath;
181
- const shardInfo = detectShardedModel(filename);
182
- if (!shardInfo.isSharded || !shardInfo.totalShards) {
183
- throw new RegistryDownloadFailedError(`Not a sharded model: ${filename}`);
184
- }
185
- const remoteShards = await findModelShards(registryPath);
186
- if (remoteShards.length === 0) {
187
- throw new ModelNotFoundError(`No shards found for ${registryPath}`);
188
- }
189
- if (remoteShards.length !== shardInfo.totalShards) {
190
- logger.warn(`⚠️ Expected ${shardInfo.totalShards} shards but found ${remoteShards.length}`);
191
- }
192
- shards = remoteShards.map((s) => ({
193
- filename: s.path.split("/").pop() || "",
194
- size: s.size,
195
- checksum: s.checksum,
196
- path: s.path,
197
- source: s.source,
198
- }));
199
- }
200
- const shardDir = getShardedModelCacheDir(cacheKey);
201
- const downloadKey = createRegistryDownloadKey(registryPath);
202
- logger.info(`📥 Downloading sharded model: ${shards.length} shards to ${shardDir}`);
203
- const overallTotal = shards.reduce((sum, s) => sum + s.size, 0);
204
- let overallDownloaded = 0;
205
- for (let i = 0; i < shards.length; i++) {
206
- if (signal?.aborted) {
207
- throw new DownloadCancelledError();
208
- }
209
- const shard = shards[i];
210
- const shardPath = getShardPath(cacheKey, shard.filename);
211
- const cachedPath = await validateCachedFile(shardPath, shard.filename, shard.size, shard.checksum, hooks);
212
- if (cachedPath) {
213
- logger.debug(`✅ Shard ${i + 1}/${shards.length} already cached`);
214
- overallDownloaded += shard.size;
215
- if (progressCallback) {
216
- progressCallback({
217
- type: "modelProgress",
218
- downloaded: shard.size,
219
- total: shard.size,
220
- percentage: 100,
221
- downloadKey,
222
- shardInfo: {
223
- currentShard: i + 1,
224
- totalShards: shards.length,
225
- shardName: shard.filename,
226
- overallDownloaded,
227
- overallTotal,
228
- overallPercentage: calculatePercentage(overallDownloaded, overallTotal),
229
- },
230
- });
231
- }
232
- continue;
233
- }
234
- logger.info(`📥 Downloading shard ${i + 1}/${shards.length}: ${shard.filename}`);
235
- const shardProgressCallback = progressCallback
236
- ? (progress) => {
237
- const currentOverall = overallDownloaded + progress.downloaded;
238
- progressCallback({
239
- ...progress,
240
- downloadKey,
241
- shardInfo: {
242
- currentShard: i + 1,
243
- totalShards: shards.length,
244
- shardName: shard.filename,
245
- overallDownloaded: currentOverall,
246
- overallTotal,
247
- overallPercentage: calculatePercentage(currentOverall, overallTotal),
248
- },
249
- });
250
- }
251
- : undefined;
252
- await downloadSingleFileFromRegistry(shard.path, shard.source, shardPath, shard.filename, downloadKey, shard.size, shard.checksum, shardProgressCallback, signal, shard.blobBinding, hooks);
253
- overallDownloaded += shard.size;
254
- logger.info(`✅ Shard ${i + 1}/${shards.length} downloaded`);
255
- }
256
- const firstShardFilename = shards[0].filename;
257
- await extractTensorsFromShards(shardDir, firstShardFilename);
258
- if (progressCallback) {
259
- const lastShard = shards[shards.length - 1];
260
- progressCallback({
261
- type: "modelProgress",
262
- downloaded: overallTotal,
263
- total: overallTotal,
264
- percentage: 100,
265
- downloadKey,
266
- shardInfo: {
267
- currentShard: shards.length,
268
- totalShards: shards.length,
269
- shardName: lastShard.filename,
270
- overallDownloaded: overallTotal,
271
- overallTotal,
272
- overallPercentage: 100,
273
- },
274
- });
275
- }
276
- return getShardPath(cacheKey, firstShardFilename);
277
- }
278
- /**
279
- * Find companion ONNX data file in registry.
280
- * ONNX models with external data have a .onnx file and a .onnx_data file.
281
- */
282
- function findOnnxCompanionDataFile(registryPath) {
283
- if (!registryPath.endsWith(".onnx"))
284
- return undefined;
285
- const dataPath = registryPath + "_data";
286
- return getModelByPath(dataPath);
287
- }
288
- /**
289
- * Download ONNX model with companion data file from registry.
290
- * Both files are placed in the same directory to satisfy ONNX Runtime requirements.
291
- * When blob bindings are provided, uses direct blob download (skips metadata sync).
292
- */
293
- async function downloadOnnxWithDataFromRegistry(registryPath, registrySource, companionDataFile, cacheKey, progressCallback, signal, mainBlobBinding, dataBlobBinding, hooks) {
294
- if (signal?.aborted) {
295
- throw new DownloadCancelledError();
296
- }
297
- const mainFilename = registryPath.split("/").pop() || registryPath;
298
- const dataFilename = companionDataFile.registryPath.split("/").pop() || "";
299
- const downloadKey = createRegistryDownloadKey(registryPath);
300
- const mainModelMetadata = getModelByPath(registryPath);
301
- const mainPath = getOnnxModelPath(cacheKey, mainFilename);
302
- const dataPath = getOnnxModelPath(cacheKey, dataFilename);
303
- logger.info(`📥 Downloading ONNX model with external data: ${mainFilename} + ${dataFilename}`);
304
- const mainExpectedSize = mainModelMetadata?.expectedSize || 0;
305
- const mainChecksum = mainModelMetadata?.sha256Checksum || "";
306
- const dataExpectedSize = companionDataFile.expectedSize || 0;
307
- const dataChecksum = companionDataFile.sha256Checksum || "";
308
- const overallTotal = mainExpectedSize + dataExpectedSize;
309
- let overallDownloaded = 0;
310
- // Check if main file already cached
311
- const cachedMainPath = await validateCachedFile(mainPath, mainFilename, mainExpectedSize, mainChecksum, hooks);
312
- if (cachedMainPath) {
313
- logger.info(`✅ Main ONNX file already cached: ${mainFilename}`);
314
- overallDownloaded += mainExpectedSize;
315
- }
316
- else {
317
- // Download main ONNX file
318
- const mainProgressCallback = progressCallback
319
- ? (progress) => {
320
- const currentOverall = overallDownloaded + progress.downloaded;
321
- progressCallback({
322
- ...progress,
323
- downloadKey,
324
- onnxInfo: {
325
- currentFile: mainFilename,
326
- fileIndex: 1,
327
- totalFiles: 2,
328
- overallDownloaded: currentOverall,
329
- overallTotal,
330
- overallPercentage: calculatePercentage(currentOverall, overallTotal),
331
- },
332
- });
333
- }
334
- : undefined;
335
- await downloadSingleFileFromRegistry(registryPath, registrySource, mainPath, mainFilename, downloadKey, mainExpectedSize, mainChecksum, mainProgressCallback, signal, mainBlobBinding, hooks);
336
- overallDownloaded += mainExpectedSize;
337
- logger.info(`✅ Main ONNX file downloaded: ${mainFilename}`);
338
- }
339
- // Check if data file already cached
340
- const cachedDataPath = await validateCachedFile(dataPath, dataFilename, dataExpectedSize, dataChecksum, hooks);
341
- if (cachedDataPath) {
342
- logger.info(`✅ ONNX data file already cached: ${dataFilename}`);
343
- overallDownloaded = overallTotal;
344
- }
345
- else {
346
- // Download companion data file
347
- const dataProgressCallback = progressCallback
348
- ? (progress) => {
349
- const currentOverall = overallDownloaded + progress.downloaded;
350
- progressCallback({
351
- ...progress,
352
- downloadKey,
353
- onnxInfo: {
354
- currentFile: dataFilename,
355
- fileIndex: 2,
356
- totalFiles: 2,
357
- overallDownloaded: currentOverall,
358
- overallTotal,
359
- overallPercentage: calculatePercentage(currentOverall, overallTotal),
360
- },
361
- });
362
- }
363
- : undefined;
364
- await downloadSingleFileFromRegistry(companionDataFile.registryPath, companionDataFile.registrySource, dataPath, dataFilename, downloadKey, dataExpectedSize, dataChecksum, dataProgressCallback, signal, dataBlobBinding, hooks);
365
- logger.info(`✅ ONNX data file downloaded: ${dataFilename}`);
366
- }
367
- // Send final 100% progress
368
- if (progressCallback) {
369
- progressCallback({
370
- type: "modelProgress",
371
- downloaded: overallTotal,
372
- total: overallTotal,
373
- percentage: 100,
374
- downloadKey,
375
- onnxInfo: {
376
- currentFile: dataFilename,
377
- fileIndex: 2,
378
- totalFiles: 2,
379
- overallDownloaded: overallTotal,
380
- overallTotal,
381
- overallPercentage: 100,
382
- },
383
- });
384
- }
385
- return mainPath;
386
- }
387
- /**
388
- * Create a managed download with abort controller support.
389
- */
390
- function createManagedDownload(downloadKey, registryPath, downloadFn, progressCallback) {
391
- const abortController = new AbortController();
392
- const downloadPromise = (async () => {
393
- try {
394
- return await downloadFn(abortController.signal);
395
- }
396
- finally {
397
- unregisterDownload(downloadKey);
398
- clearClearCacheFlag(downloadKey);
399
- }
400
- })();
401
- const downloadEntry = {
402
- key: downloadKey,
403
- promise: downloadPromise,
404
- abortController,
405
- startTime: Date.now(),
406
- type: "registry",
407
- registryPath,
408
- ...(progressCallback && { onProgress: progressCallback }),
409
- };
410
- registerDownload(downloadKey, downloadEntry);
411
- return downloadPromise;
412
- }
413
- /**
414
- * Download a model from the QVAC Registry.
415
- *
416
- * For known models (present in models.ts), uses direct blob download which
417
- * skips the registry metadata sync entirely. Falls back to metadata-based
418
- * download for unknown models.
419
- */
420
- export async function downloadModelFromRegistry(registryPath, registrySource, progressCallback, expectedChecksum, hooks) {
421
- const downloadKey = createRegistryDownloadKey(registryPath);
422
- // Check if already downloading
423
- const existing = getActiveDownload(downloadKey);
424
- if (existing) {
425
- logger.info(`📥 Reusing existing download for: ${downloadKey}`);
426
- hooks?.markCacheMiss();
427
- return existing.promise;
428
- }
429
- const filename = registryPath.split("/").pop() || registryPath;
430
- const shardInfo = detectShardedModel(filename);
431
- // Look up model metadata from our generated models.ts
432
- const modelMetadata = getModelByPath(registryPath);
433
- if (shardInfo.isSharded) {
434
- const cacheKey = generateShortHash(registryPath);
435
- const localShardMeta = modelMetadata?.shardMetadata;
436
- // FS pre-check for known models: if all shards cached, return immediately
437
- if (localShardMeta?.length) {
438
- let allCached = true;
439
- for (const shard of localShardMeta) {
440
- const shardPath = getShardPath(cacheKey, shard.filename);
441
- const cached = await validateCachedFile(shardPath, shard.filename, shard.expectedSize, shard.sha256Checksum, hooks);
442
- if (!cached) {
443
- allCached = false;
444
- break;
445
- }
446
- }
447
- if (allCached) {
448
- const firstShardFilename = localShardMeta[0].filename;
449
- logger.info(`✅ All ${localShardMeta.length} shards cached`);
450
- hooks?.markCacheHit();
451
- if (progressCallback) {
452
- const overallTotal = localShardMeta.reduce((sum, s) => sum + s.expectedSize, 0);
453
- progressCallback({
454
- type: "modelProgress",
455
- downloaded: overallTotal,
456
- total: overallTotal,
457
- percentage: 100,
458
- downloadKey,
459
- shardInfo: {
460
- currentShard: localShardMeta.length,
461
- totalShards: localShardMeta.length,
462
- shardName: firstShardFilename,
463
- overallDownloaded: overallTotal,
464
- overallTotal,
465
- overallPercentage: 100,
466
- },
467
- });
468
- }
469
- return getShardPath(cacheKey, firstShardFilename);
470
- }
471
- }
472
- hooks?.markCacheMiss();
473
- return createManagedDownload(downloadKey, registryPath, (signal) => downloadShardedFilesFromRegistry(registryPath, registrySource, cacheKey, progressCallback, signal, localShardMeta, hooks), progressCallback);
474
- }
475
- // Check for ONNX with companion data file
476
- const companionDataFile = findOnnxCompanionDataFile(registryPath);
477
- if (companionDataFile) {
478
- const cacheKey = generateShortHash(registryPath);
479
- // FS pre-check: if both files cached, return immediately
480
- const mainFilename = registryPath.split("/").pop() || registryPath;
481
- const dataFilename = companionDataFile.registryPath.split("/").pop() || "";
482
- const mainPath = getOnnxModelPath(cacheKey, mainFilename);
483
- const dataPath = getOnnxModelPath(cacheKey, dataFilename);
484
- const mainCached = await validateCachedFile(mainPath, mainFilename, modelMetadata?.expectedSize || 0, modelMetadata?.sha256Checksum, hooks);
485
- const dataCached = await validateCachedFile(dataPath, dataFilename, companionDataFile.expectedSize, companionDataFile.sha256Checksum, hooks);
486
- if (mainCached && dataCached) {
487
- logger.info(`✅ ONNX model and data file both cached`);
488
- hooks?.markCacheHit();
489
- if (progressCallback) {
490
- const total = (modelMetadata?.expectedSize || 0) + companionDataFile.expectedSize;
491
- progressCallback({
492
- type: "modelProgress",
493
- downloaded: total,
494
- total,
495
- percentage: 100,
496
- downloadKey,
497
- onnxInfo: {
498
- currentFile: dataFilename,
499
- fileIndex: 2,
500
- totalFiles: 2,
501
- overallDownloaded: total,
502
- overallTotal: total,
503
- overallPercentage: 100,
504
- },
505
- });
506
- }
507
- return mainCached;
508
- }
509
- const mainBlobBinding = modelMetadata
510
- ? buildBlobBinding(modelMetadata)
511
- : undefined;
512
- const dataBlobBinding = companionDataFile.blobCoreKey
513
- ? buildBlobBinding(companionDataFile)
514
- : undefined;
515
- hooks?.markCacheMiss();
516
- return createManagedDownload(downloadKey, registryPath, (signal) => downloadOnnxWithDataFromRegistry(registryPath, registrySource, companionDataFile, cacheKey, progressCallback, signal, mainBlobBinding, dataBlobBinding, hooks), progressCallback);
517
- }
518
- // Single file download
519
- const cacheDir = getModelsCacheDir();
520
- const sourceHash = generateShortHash(registryPath);
521
- const modelPath = path.join(cacheDir, `${sourceHash}_${filename}`);
522
- // Check if already cached
523
- const expectedSize = modelMetadata?.expectedSize || 0;
524
- const checksum = expectedChecksum || modelMetadata?.sha256Checksum || "";
525
- const cachedPath = await validateCachedFile(modelPath, filename, expectedSize, checksum, hooks);
526
- if (cachedPath) {
527
- logger.info(`✅ Using cached model: ${cachedPath}`);
528
- hooks?.markCacheHit();
529
- if (progressCallback) {
530
- progressCallback({
531
- type: "modelProgress",
532
- downloaded: expectedSize,
533
- total: expectedSize,
534
- percentage: 100,
535
- downloadKey,
536
- });
537
- }
538
- return cachedPath;
539
- }
540
- const blobBinding = modelMetadata
541
- ? buildBlobBinding(modelMetadata)
542
- : undefined;
543
- hooks?.markCacheMiss();
544
- return createManagedDownload(downloadKey, registryPath, async (signal) => {
545
- await downloadSingleFileFromRegistry(registryPath, registrySource, modelPath, filename, downloadKey, expectedSize, checksum, progressCallback, signal, blobBinding, hooks);
546
- return modelPath;
547
- }, progressCallback);
548
- }
@@ -1,29 +0,0 @@
1
- import type { SourceType } from "../../../../schemas/index";
2
- export interface DownloadStats {
3
- downloadTimeMs?: number;
4
- totalBytesDownloaded?: number;
5
- downloadSpeedBps?: number;
6
- checksumValidationTimeMs?: number;
7
- cacheHit?: boolean;
8
- }
9
- export interface ResolveResult {
10
- path: string;
11
- sourceType: SourceType;
12
- downloadStats?: DownloadStats;
13
- }
14
- export interface DownloadResult {
15
- path: string;
16
- stats?: DownloadStats;
17
- }
18
- export interface DownloadMetricsHooks {
19
- markCacheHit: () => void;
20
- markCacheMiss: () => void;
21
- addChecksumValidationTimeMs: (durationMs: number) => void;
22
- }
23
- export interface LoadModelProfilingMeta {
24
- sourceType?: string;
25
- downloadStats?: DownloadStats;
26
- modelInitializationTimeMs?: number;
27
- totalLoadTimeMs?: number;
28
- }
29
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- export {};
@@ -1,3 +0,0 @@
1
- import type { OCRStreamRequest, OCRStreamResponse } from "../../../schemas/index";
2
- export declare function handleOCRStream(request: OCRStreamRequest): AsyncGenerator<OCRStreamResponse>;
3
- //# sourceMappingURL=ocr-stream.d.ts.map
@@ -1,4 +0,0 @@
1
- import { dispatchPluginStream } from "./plugin-dispatch.js";
2
- export async function* handleOCRStream(request) {
3
- yield* dispatchPluginStream(request.modelId, "ocrStream", request);
4
- }
@@ -1,15 +0,0 @@
1
- /**
2
- * Dispatches a request to a plugin handler and returns a Promise.
3
- * Use for non-streaming (reply) handlers.
4
- *
5
- * @throws PluginHandlerTypeMismatchError if the handler is streaming
6
- */
7
- export declare function dispatchPluginReply<TRequest, TResponse>(modelId: string, handlerName: string, request: TRequest): Promise<TResponse>;
8
- /**
9
- * Dispatches a request to a plugin handler and returns an AsyncGenerator.
10
- * Use for streaming handlers.
11
- *
12
- * @throws PluginHandlerTypeMismatchError if the handler is not streaming
13
- */
14
- export declare function dispatchPluginStream<TRequest, TResponse>(modelId: string, handlerName: string, request: TRequest): AsyncGenerator<TResponse>;
15
- //# sourceMappingURL=plugin-dispatch.d.ts.map
@@ -1,59 +0,0 @@
1
- import { getModelEntry } from "../../bare/registry/model-registry.js";
2
- import { getPlugin } from "../../plugins/index.js";
3
- import { profileReplyHandler, profileStreamHandler, } from "../profiling/index.js";
4
- import { ModelNotFoundError, ModelIsDelegatedError, PluginNotFoundError, PluginHandlerNotFoundError, PluginHandlerTypeMismatchError, } from "../../../utils/errors-server.js";
5
- /**
6
- * Resolves the plugin handler and returns both the result and streaming flag.
7
- */
8
- function resolvePluginHandler(modelId, handlerName, request) {
9
- const entry = getModelEntry(modelId);
10
- if (!entry) {
11
- throw new ModelNotFoundError(modelId);
12
- }
13
- if (entry.isDelegated || !entry.local) {
14
- throw new ModelIsDelegatedError(modelId);
15
- }
16
- const plugin = getPlugin(entry.local.modelType);
17
- if (!plugin) {
18
- throw new PluginNotFoundError(entry.local.modelType);
19
- }
20
- const handlerDef = plugin.handlers[handlerName];
21
- if (!handlerDef) {
22
- const availableHandlers = Object.keys(plugin.handlers);
23
- throw new PluginHandlerNotFoundError(entry.local.modelType, handlerName, availableHandlers);
24
- }
25
- return {
26
- result: handlerDef.handler(request),
27
- streaming: handlerDef.streaming,
28
- };
29
- }
30
- /**
31
- * Dispatches a request to a plugin handler and returns a Promise.
32
- * Use for non-streaming (reply) handlers.
33
- *
34
- * @throws PluginHandlerTypeMismatchError if the handler is streaming
35
- */
36
- export async function dispatchPluginReply(modelId, handlerName, request) {
37
- return profileReplyHandler({ op: handlerName, request }, async () => {
38
- const { result, streaming } = resolvePluginHandler(modelId, handlerName, request);
39
- if (streaming) {
40
- throw new PluginHandlerTypeMismatchError(handlerName, "reply", "streaming");
41
- }
42
- return result;
43
- });
44
- }
45
- /**
46
- * Dispatches a request to a plugin handler and returns an AsyncGenerator.
47
- * Use for streaming handlers.
48
- *
49
- * @throws PluginHandlerTypeMismatchError if the handler is not streaming
50
- */
51
- export async function* dispatchPluginStream(modelId, handlerName, request) {
52
- yield* profileStreamHandler({ op: handlerName, request }, async function* () {
53
- const { result, streaming } = resolvePluginHandler(modelId, handlerName, request);
54
- if (!streaming) {
55
- throw new PluginHandlerTypeMismatchError(handlerName, "streaming", "reply");
56
- }
57
- yield* result;
58
- });
59
- }
@@ -1,4 +0,0 @@
1
- import type { PluginInvokeRequest, PluginInvokeResponse, PluginInvokeStreamRequest, PluginInvokeStreamResponse } from "../../../schemas/plugin";
2
- export declare function handlePluginInvoke(request: PluginInvokeRequest): Promise<PluginInvokeResponse>;
3
- export declare function handlePluginInvokeStream(request: PluginInvokeStreamRequest): AsyncGenerator<PluginInvokeStreamResponse>;
4
- //# sourceMappingURL=plugin-invoke.d.ts.map