@qvac/sdk 0.8.1 → 1.1.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 (601) 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 +69 -118
  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 -7
  29. package/dist/client/api/transcribe.js +9 -8
  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/{transcription/whispercpp-filesystem.js → whispercpp-filesystem.js} +7 -2
  85. package/dist/examples/{transcription/whispercpp-microphone-record.js → whispercpp-microphone-record.js} +6 -1
  86. package/dist/examples/{transcription/whispercpp-prompt.js → whispercpp-prompt.js} +6 -2
  87. package/dist/expo/plugins/index.d.ts +0 -3
  88. package/dist/expo/plugins/index.js +0 -3
  89. package/dist/expo/plugins/withMobileBundle.d.ts +2 -5
  90. package/dist/expo/plugins/withMobileBundle.js +40 -121
  91. package/dist/expo/plugins/withQvacSDK.d.ts +0 -4
  92. package/dist/expo/plugins/withQvacSDK.js +1 -26
  93. package/dist/index.d.ts +4 -9
  94. package/dist/index.js +5 -11
  95. package/dist/logging/base-logger.js +16 -26
  96. package/dist/logging/index.d.ts +1 -7
  97. package/dist/logging/index.js +1 -7
  98. package/dist/logging/logger.d.ts +2 -0
  99. package/dist/logging/logger.js +6 -11
  100. package/dist/logging/stream-logger.d.ts +1 -1
  101. package/dist/logging/stream-logger.js +3 -6
  102. package/dist/logging/transport.js +2 -2
  103. package/dist/logging/types.d.ts +0 -2
  104. package/dist/logging/utils.d.ts +0 -2
  105. package/dist/logging/utils.js +0 -62
  106. package/dist/models/{registry → hyperdrive}/index.js +1 -1
  107. package/dist/models/hyperdrive/models.d.ts +795 -0
  108. package/dist/models/hyperdrive/models.js +891 -0
  109. package/dist/schemas/cancel.d.ts +0 -18
  110. package/dist/schemas/cancel.js +0 -7
  111. package/dist/schemas/common.d.ts +153 -2857
  112. package/dist/schemas/common.js +4 -27
  113. package/dist/schemas/completion-stream.d.ts +60 -31
  114. package/dist/schemas/completion-stream.js +44 -20
  115. package/dist/schemas/delegate.d.ts +0 -9
  116. package/dist/schemas/delegate.js +2 -6
  117. package/dist/schemas/download-asset.d.ts +3 -125
  118. package/dist/schemas/download-asset.js +5 -22
  119. package/dist/schemas/embed.d.ts +3 -3
  120. package/dist/schemas/embed.js +2 -9
  121. package/dist/schemas/index.d.ts +2 -20
  122. package/dist/schemas/index.js +2 -20
  123. package/dist/schemas/llamacpp-config.d.ts +12 -243
  124. package/dist/schemas/llamacpp-config.js +14 -50
  125. package/dist/schemas/load-model.d.ts +986 -14092
  126. package/dist/schemas/load-model.js +72 -325
  127. package/dist/schemas/logging-stream.d.ts +4 -11
  128. package/dist/schemas/logging-stream.js +3 -4
  129. package/dist/schemas/ping.d.ts +11 -0
  130. package/dist/schemas/ping.js +8 -0
  131. package/dist/schemas/rag.d.ts +52 -183
  132. package/dist/schemas/rag.js +23 -152
  133. package/dist/schemas/text-to-speech.d.ts +1 -692
  134. package/dist/schemas/text-to-speech.js +3 -35
  135. package/dist/schemas/translate.d.ts +23 -68
  136. package/dist/schemas/translate.js +11 -37
  137. package/dist/schemas/translation-config.d.ts +7 -810
  138. package/dist/schemas/translation-config.js +7 -113
  139. package/dist/schemas/unload-model.d.ts +0 -2
  140. package/dist/schemas/unload-model.js +0 -2
  141. package/dist/schemas/whispercpp-config.d.ts +74 -0
  142. package/dist/schemas/{transcription-config.js → whispercpp-config.js} +8 -31
  143. package/dist/server/bare/{ops → addons}/cancel.js +1 -2
  144. package/dist/server/bare/addons/index.d.ts +4 -0
  145. package/dist/server/bare/addons/index.js +3 -0
  146. package/dist/server/bare/addons/llamacpp/create-model.d.ts +5 -0
  147. package/dist/server/bare/addons/llamacpp/create-model.js +67 -0
  148. package/dist/server/bare/{plugins/llamacpp-completion/ops → addons/llamacpp/handlers}/completion-stream.d.ts +1 -2
  149. package/dist/server/bare/{plugins/llamacpp-completion/ops → addons/llamacpp/handlers}/completion-stream.js +49 -46
  150. package/dist/server/bare/addons/llamacpp/handlers/embed.d.ts +4 -0
  151. package/dist/server/bare/{ops → addons/llamacpp/handlers}/embed.js +7 -22
  152. package/dist/server/bare/addons/llamacpp/index.d.ts +4 -0
  153. package/dist/server/bare/addons/llamacpp/index.js +3 -0
  154. package/dist/server/bare/{ops → addons/llamacpp}/kv-cache-utils.d.ts +1 -4
  155. package/dist/server/bare/{ops → addons/llamacpp}/kv-cache-utils.js +19 -54
  156. package/dist/server/bare/addons/load-model.d.ts +3 -0
  157. package/dist/server/bare/addons/load-model.js +62 -0
  158. package/dist/server/bare/addons/translation/create-model.d.ts +4 -0
  159. package/dist/server/bare/addons/translation/create-model.js +45 -0
  160. package/dist/server/bare/addons/translation/handlers/translate.d.ts +3 -0
  161. package/dist/server/bare/{ops → addons/translation/handlers}/translate.js +14 -47
  162. package/dist/server/bare/addons/translation/index.d.ts +3 -0
  163. package/dist/server/bare/addons/translation/index.js +2 -0
  164. package/dist/server/bare/addons/tts/create-model.d.ts +6 -0
  165. package/dist/server/bare/addons/tts/create-model.js +40 -0
  166. package/dist/server/bare/{plugins/onnx-tts/ops → addons/tts/handlers}/text-to-speech.js +3 -25
  167. package/dist/server/bare/addons/tts/index.d.ts +3 -0
  168. package/dist/server/bare/addons/tts/index.js +2 -0
  169. package/dist/server/bare/addons/unload-model.js +20 -0
  170. package/dist/server/bare/addons/whispercpp/create-model.d.ts +6 -0
  171. package/dist/server/bare/addons/whispercpp/create-model.js +56 -0
  172. package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.d.ts +3 -0
  173. package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.js +62 -0
  174. package/dist/server/bare/addons/whispercpp/index.d.ts +3 -0
  175. package/dist/server/bare/addons/whispercpp/index.js +2 -0
  176. package/dist/server/bare/delegate-rpc-client.d.ts +0 -6
  177. package/dist/server/bare/delegate-rpc-client.js +45 -187
  178. package/dist/server/bare/hyperswarm.d.ts +0 -3
  179. package/dist/server/bare/hyperswarm.js +6 -29
  180. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.d.ts +1 -1
  181. package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.js +10 -9
  182. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.d.ts +4 -7
  183. package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.js +14 -13
  184. package/dist/server/bare/rag-hyperdb/handlers/search.js +10 -10
  185. package/dist/server/bare/rag-hyperdb/index.d.ts +1 -8
  186. package/dist/server/bare/rag-hyperdb/index.js +1 -8
  187. package/dist/server/bare/rag-hyperdb/rag-manager.d.ts +5 -0
  188. package/dist/server/bare/rag-hyperdb/rag-manager.js +65 -0
  189. package/dist/server/bare/registry/logging-stream-registry.d.ts +7 -24
  190. package/dist/server/bare/registry/logging-stream-registry.js +20 -99
  191. package/dist/server/bare/registry/model-registry.d.ts +26 -14
  192. package/dist/server/bare/registry/model-registry.js +15 -29
  193. package/dist/server/error-handlers.d.ts +2 -3
  194. package/dist/server/error-handlers.js +10 -15
  195. package/dist/server/http-server.d.ts +2 -0
  196. package/dist/server/http-server.js +189 -0
  197. package/dist/server/rpc/create-server.js +3 -5
  198. package/dist/server/rpc/handle-request.d.ts +9 -0
  199. package/dist/server/rpc/handle-request.js +242 -92
  200. package/dist/server/rpc/handlers/cancelHandler.js +3 -14
  201. package/dist/server/rpc/handlers/completion-stream-delegated.d.ts +1 -3
  202. package/dist/server/rpc/handlers/completion-stream-delegated.js +8 -20
  203. package/dist/server/rpc/handlers/completion-stream.js +43 -2
  204. package/dist/server/rpc/handlers/delete-cache.js +2 -4
  205. package/dist/server/rpc/handlers/download-asset.js +6 -59
  206. package/dist/server/rpc/handlers/embed.js +19 -2
  207. package/dist/server/rpc/handlers/index.d.ts +0 -13
  208. package/dist/server/rpc/handlers/index.js +0 -13
  209. package/dist/server/rpc/handlers/load-model/download-manager.d.ts +11 -12
  210. package/dist/server/rpc/handlers/load-model/download-manager.js +28 -43
  211. package/dist/server/rpc/handlers/load-model/http.d.ts +1 -2
  212. package/dist/server/rpc/handlers/load-model/http.js +59 -422
  213. package/dist/server/rpc/handlers/load-model/hyperdrive.d.ts +1 -2
  214. package/dist/server/rpc/handlers/load-model/hyperdrive.js +171 -364
  215. package/dist/server/rpc/handlers/load-model/index.d.ts +2 -2
  216. package/dist/server/rpc/handlers/load-model/index.js +2 -2
  217. package/dist/server/rpc/handlers/load-model/resolve.d.ts +1 -3
  218. package/dist/server/rpc/handlers/load-model/resolve.js +29 -110
  219. package/dist/server/rpc/handlers/load-model-delegated.d.ts +2 -6
  220. package/dist/server/rpc/handlers/load-model-delegated.js +20 -60
  221. package/dist/server/rpc/handlers/{load-model/handler.d.ts → load-model.d.ts} +2 -2
  222. package/dist/server/rpc/handlers/load-model.js +57 -0
  223. package/dist/server/rpc/handlers/logging-stream.js +4 -4
  224. package/dist/server/rpc/handlers/provideHandler/connection.js +10 -12
  225. package/dist/server/rpc/handlers/provideHandler/handler.js +17 -20
  226. package/dist/server/rpc/handlers/provideHandler/proxy.js +6 -8
  227. package/dist/server/rpc/handlers/rag.d.ts +2 -2
  228. package/dist/server/rpc/handlers/rag.js +43 -130
  229. package/dist/server/rpc/handlers/stopProvideHandler.js +2 -6
  230. package/dist/server/rpc/handlers/text-to-speech.js +5 -2
  231. package/dist/server/rpc/handlers/transcribe-stream.js +28 -2
  232. package/dist/server/rpc/handlers/translate.js +49 -2
  233. package/dist/server/rpc/handlers/unload-model.js +3 -12
  234. package/dist/server/rpc/index.d.ts +1 -1
  235. package/dist/server/utils/audio/decoder.d.ts +1 -2
  236. package/dist/server/utils/audio/decoder.js +12 -49
  237. package/dist/server/utils/cache.d.ts +8 -19
  238. package/dist/server/utils/cache.js +15 -100
  239. package/dist/server/utils/hash.d.ts +5 -0
  240. package/dist/server/utils/hash.js +11 -0
  241. package/dist/server/utils/index.d.ts +2 -7
  242. package/dist/server/utils/index.js +2 -7
  243. package/dist/server/worker.d.ts +5 -4
  244. package/dist/server/worker.js +89 -22
  245. package/package.json +41 -148
  246. package/NOTICE +0 -695
  247. package/bare-imports.json +0 -44
  248. package/dist/client/api/get-model-info.d.ts +0 -36
  249. package/dist/client/api/get-model-info.js +0 -14
  250. package/dist/client/api/heartbeat.d.ts +0 -30
  251. package/dist/client/api/heartbeat.js +0 -38
  252. package/dist/client/api/invoke-plugin.d.ts +0 -15
  253. package/dist/client/api/invoke-plugin.js +0 -38
  254. package/dist/client/api/ocr.d.ts +0 -31
  255. package/dist/client/api/ocr.js +0 -88
  256. package/dist/client/api/registry.d.ts +0 -14
  257. package/dist/client/api/registry.js +0 -37
  258. package/dist/client/config-loader/config-utils.d.ts +0 -5
  259. package/dist/client/config-loader/config-utils.js +0 -20
  260. package/dist/client/config-loader/resolve-config.bare.d.ts +0 -9
  261. package/dist/client/config-loader/resolve-config.bare.js +0 -87
  262. package/dist/client/config-loader/resolve-config.expo.d.ts +0 -11
  263. package/dist/client/config-loader/resolve-config.expo.js +0 -62
  264. package/dist/client/config-loader/resolve-config.node.d.ts +0 -10
  265. package/dist/client/config-loader/resolve-config.node.js +0 -145
  266. package/dist/client/init-hooks.d.ts +0 -21
  267. package/dist/client/init-hooks.js +0 -66
  268. package/dist/client/rpc/expo-device-info.d.ts +0 -6
  269. package/dist/client/rpc/expo-device-info.js +0 -32
  270. package/dist/client/rpc/profiling/index.d.ts +0 -2
  271. package/dist/client/rpc/profiling/index.js +0 -1
  272. package/dist/client/rpc/profiling/profiler.d.ts +0 -27
  273. package/dist/client/rpc/profiling/profiler.js +0 -139
  274. package/dist/constants/registry.d.ts +0 -2
  275. package/dist/constants/registry.js +0 -1
  276. package/dist/examples/cache-management.d.ts +0 -2
  277. package/dist/examples/cache-management.js +0 -97
  278. package/dist/examples/config/blind-relay/blind-relay.config.d.ts +0 -5
  279. package/dist/examples/config/blind-relay/blind-relay.config.js +0 -7
  280. package/dist/examples/config/default/default.config.d.ts +0 -8
  281. package/dist/examples/config/default/default.config.js +0 -6
  282. package/dist/examples/config/plugins/plugins.config.d.ts +0 -5
  283. package/dist/examples/config/plugins/plugins.config.js +0 -4
  284. package/dist/examples/config-reload.d.ts +0 -2
  285. package/dist/examples/config-reload.js +0 -49
  286. package/dist/examples/default-config-usage.d.ts +0 -17
  287. package/dist/examples/default-config-usage.js +0 -47
  288. package/dist/examples/delegated-inference/consumer-profiled.d.ts +0 -2
  289. package/dist/examples/delegated-inference/consumer-profiled.js +0 -67
  290. package/dist/examples/download-with-blind-relays.d.ts +0 -2
  291. package/dist/examples/download-with-blind-relays.js +0 -49
  292. package/dist/examples/embed-p2p.d.ts +0 -2
  293. package/dist/examples/embed-p2p.js +0 -54
  294. package/dist/examples/llamacpp-p2p.d.ts +0 -2
  295. package/dist/examples/llamacpp-sharded.d.ts +0 -2
  296. package/dist/examples/llamacpp-sharded.js +0 -53
  297. package/dist/examples/logging-file-transport.d.ts +0 -2
  298. package/dist/examples/logging-streaming.d.ts +0 -2
  299. package/dist/examples/logging-streaming.js +0 -75
  300. package/dist/examples/mcp-websearch.d.ts +0 -13
  301. package/dist/examples/mcp-websearch.js +0 -176
  302. package/dist/examples/ocr-fasttext.d.ts +0 -2
  303. package/dist/examples/ocr-fasttext.js +0 -52
  304. package/dist/examples/plugins.d.ts +0 -14
  305. package/dist/examples/plugins.js +0 -129
  306. package/dist/examples/profiling/basic.d.ts +0 -2
  307. package/dist/examples/profiling/basic.js +0 -71
  308. package/dist/examples/profiling/per-call.d.ts +0 -2
  309. package/dist/examples/profiling/per-call.js +0 -30
  310. package/dist/examples/quickstart.d.ts +0 -2
  311. package/dist/examples/quickstart.js +0 -28
  312. package/dist/examples/rag/rag-hyperdb/cancellation.d.ts +0 -2
  313. package/dist/examples/rag/rag-hyperdb/cancellation.js +0 -75
  314. package/dist/examples/rag/rag-hyperdb/ingest.d.ts +0 -2
  315. package/dist/examples/rag/rag-hyperdb/pipeline.d.ts +0 -2
  316. package/dist/examples/rag/rag-hyperdb/pipeline.js +0 -74
  317. package/dist/examples/rag/rag-hyperdb/workspaces.d.ts +0 -2
  318. package/dist/examples/rag/rag-hyperdb/workspaces.js +0 -178
  319. package/dist/examples/registry-query.d.ts +0 -2
  320. package/dist/examples/registry-query.js +0 -87
  321. package/dist/examples/seed-p2p.d.ts +0 -2
  322. package/dist/examples/transcription/parakeet-ctc-filesystem.d.ts +0 -2
  323. package/dist/examples/transcription/parakeet-ctc-filesystem.js +0 -40
  324. package/dist/examples/transcription/parakeet-microphone-record.d.ts +0 -2
  325. package/dist/examples/transcription/parakeet-microphone-record.js +0 -95
  326. package/dist/examples/transcription/parakeet-sortformer.d.ts +0 -2
  327. package/dist/examples/transcription/parakeet-sortformer.js +0 -115
  328. package/dist/examples/transcription/parakeet-tdt-filesystem.d.ts +0 -2
  329. package/dist/examples/transcription/parakeet-tdt-filesystem.js +0 -44
  330. package/dist/examples/translation/translation-bergamot-batch.d.ts +0 -2
  331. package/dist/examples/translation/translation-bergamot-batch.js +0 -49
  332. package/dist/examples/translation/translation-bergamot-pivot.d.ts +0 -2
  333. package/dist/examples/translation/translation-bergamot-pivot.js +0 -73
  334. package/dist/examples/translation/translation-bergamot.d.ts +0 -2
  335. package/dist/examples/translation/translation-bergamot.js +0 -39
  336. package/dist/examples/translation/translation-llm-afriquegemma.d.ts +0 -2
  337. package/dist/examples/translation/translation-llm-afriquegemma.js +0 -39
  338. package/dist/examples/tts/chatterbox.d.ts +0 -2
  339. package/dist/examples/tts/chatterbox.js +0 -59
  340. package/dist/examples/tts/supertonic.d.ts +0 -2
  341. package/dist/examples/tts/supertonic.js +0 -51
  342. package/dist/examples/tts/utils.d.ts +0 -17
  343. package/dist/expo/plugins/resolve-sdk-package-dir.d.ts +0 -15
  344. package/dist/expo/plugins/resolve-sdk-package-dir.js +0 -31
  345. package/dist/expo/plugins/withAndroidArchitecture.d.ts +0 -8
  346. package/dist/expo/plugins/withAndroidArchitecture.js +0 -52
  347. package/dist/expo/plugins/withAndroidNdkVersion.d.ts +0 -8
  348. package/dist/expo/plugins/withAndroidNdkVersion.js +0 -31
  349. package/dist/expo/plugins/withDeviceInfo.d.ts +0 -10
  350. package/dist/expo/plugins/withDeviceInfo.js +0 -48
  351. package/dist/logging/addon.d.ts +0 -6
  352. package/dist/logging/addon.js +0 -75
  353. package/dist/logging/client-logger.d.ts +0 -3
  354. package/dist/logging/client-logger.js +0 -24
  355. package/dist/logging/namespaces.d.ts +0 -6
  356. package/dist/logging/namespaces.js +0 -6
  357. package/dist/logging/registry.d.ts +0 -31
  358. package/dist/logging/registry.js +0 -62
  359. package/dist/logging/server-logger.d.ts +0 -3
  360. package/dist/logging/server-logger.js +0 -16
  361. package/dist/models/registry/models.d.ts +0 -10417
  362. package/dist/models/registry/models.js +0 -10757
  363. package/dist/models/update-models/codegen.d.ts +0 -3
  364. package/dist/models/update-models/codegen.js +0 -135
  365. package/dist/models/update-models/history.d.ts +0 -24
  366. package/dist/models/update-models/history.js +0 -107
  367. package/dist/models/update-models/index.d.ts +0 -2
  368. package/dist/models/update-models/index.js +0 -125
  369. package/dist/models/update-models/naming.d.ts +0 -4
  370. package/dist/models/update-models/naming.js +0 -370
  371. package/dist/models/update-models/processing.d.ts +0 -8
  372. package/dist/models/update-models/processing.js +0 -67
  373. package/dist/models/update-models/registry.d.ts +0 -4
  374. package/dist/models/update-models/registry.js +0 -67
  375. package/dist/models/update-models/shards.d.ts +0 -4
  376. package/dist/models/update-models/shards.js +0 -57
  377. package/dist/models/update-models/types.d.ts +0 -60
  378. package/dist/models/update-models/types.js +0 -1
  379. package/dist/models/update-models/utils.d.ts +0 -3
  380. package/dist/models/update-models/utils.js +0 -21
  381. package/dist/pear/pre.d.ts +0 -18
  382. package/dist/pear/pre.js +0 -433
  383. package/dist/profiling/aggregator.d.ts +0 -15
  384. package/dist/profiling/aggregator.js +0 -100
  385. package/dist/profiling/clock.d.ts +0 -12
  386. package/dist/profiling/clock.js +0 -51
  387. package/dist/profiling/controller.d.ts +0 -33
  388. package/dist/profiling/controller.js +0 -123
  389. package/dist/profiling/envelope.d.ts +0 -10
  390. package/dist/profiling/envelope.js +0 -36
  391. package/dist/profiling/events.d.ts +0 -20
  392. package/dist/profiling/events.js +0 -37
  393. package/dist/profiling/exporters.d.ts +0 -10
  394. package/dist/profiling/exporters.js +0 -236
  395. package/dist/profiling/index.d.ts +0 -36
  396. package/dist/profiling/index.js +0 -31
  397. package/dist/profiling/ring-buffer.d.ts +0 -19
  398. package/dist/profiling/ring-buffer.js +0 -83
  399. package/dist/profiling/types.d.ts +0 -47
  400. package/dist/profiling/types.js +0 -1
  401. package/dist/schemas/archive.d.ts +0 -9
  402. package/dist/schemas/archive.js +0 -17
  403. package/dist/schemas/engine-addon-map.d.ts +0 -5
  404. package/dist/schemas/engine-addon-map.js +0 -52
  405. package/dist/schemas/get-model-info.d.ts +0 -120
  406. package/dist/schemas/get-model-info.js +0 -58
  407. package/dist/schemas/heartbeat.d.ts +0 -17
  408. package/dist/schemas/heartbeat.js +0 -10
  409. package/dist/schemas/json-schema.d.ts +0 -16
  410. package/dist/schemas/json-schema.js +0 -2
  411. package/dist/schemas/mcp-adapter.d.ts +0 -47
  412. package/dist/schemas/mcp-adapter.js +0 -1
  413. package/dist/schemas/model-src-utils.d.ts +0 -148
  414. package/dist/schemas/model-src-utils.js +0 -35
  415. package/dist/schemas/model-types.d.ts +0 -183
  416. package/dist/schemas/model-types.js +0 -168
  417. package/dist/schemas/ocr.d.ts +0 -125
  418. package/dist/schemas/ocr.js +0 -57
  419. package/dist/schemas/path-validation.d.ts +0 -10
  420. package/dist/schemas/path-validation.js +0 -22
  421. package/dist/schemas/plugin.d.ts +0 -226
  422. package/dist/schemas/plugin.js +0 -158
  423. package/dist/schemas/profiling.d.ts +0 -105
  424. package/dist/schemas/profiling.js +0 -66
  425. package/dist/schemas/registry.d.ts +0 -356
  426. package/dist/schemas/registry.js +0 -93
  427. package/dist/schemas/reload-config.d.ts +0 -476
  428. package/dist/schemas/reload-config.js +0 -44
  429. package/dist/schemas/runtime-context.d.ts +0 -19
  430. package/dist/schemas/runtime-context.js +0 -7
  431. package/dist/schemas/sdk-config.d.ts +0 -2973
  432. package/dist/schemas/sdk-config.js +0 -136
  433. package/dist/schemas/sdk-errors-client.d.ts +0 -31
  434. package/dist/schemas/sdk-errors-client.js +0 -143
  435. package/dist/schemas/sdk-errors-registry.d.ts +0 -6
  436. package/dist/schemas/sdk-errors-registry.js +0 -8
  437. package/dist/schemas/sdk-errors-server.d.ts +0 -89
  438. package/dist/schemas/sdk-errors-server.js +0 -451
  439. package/dist/schemas/shard.d.ts +0 -21
  440. package/dist/schemas/shard.js +0 -17
  441. package/dist/schemas/tools.d.ts +0 -65
  442. package/dist/schemas/tools.js +0 -43
  443. package/dist/schemas/transcription-config.d.ts +0 -383
  444. package/dist/scripts/run-security-tests-bare.d.ts +0 -2
  445. package/dist/scripts/run-security-tests-bare.js +0 -78
  446. package/dist/scripts/run-security-tests.d.ts +0 -2
  447. package/dist/scripts/run-security-tests.js +0 -22
  448. package/dist/scripts/run-unit-tests.d.ts +0 -2
  449. package/dist/scripts/run-unit-tests.js +0 -17
  450. package/dist/server/bare/ops/embed.d.ts +0 -12
  451. package/dist/server/bare/ops/load-model.d.ts +0 -9
  452. package/dist/server/bare/ops/load-model.js +0 -85
  453. package/dist/server/bare/ops/transcribe.d.ts +0 -3
  454. package/dist/server/bare/ops/transcribe.js +0 -75
  455. package/dist/server/bare/ops/translate.d.ts +0 -5
  456. package/dist/server/bare/ops/unload-model.js +0 -41
  457. package/dist/server/bare/plugins/index.d.ts +0 -8
  458. package/dist/server/bare/plugins/index.js +0 -7
  459. package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.d.ts +0 -6
  460. package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.js +0 -34
  461. package/dist/server/bare/plugins/llamacpp-completion/plugin.d.ts +0 -220
  462. package/dist/server/bare/plugins/llamacpp-completion/plugin.js +0 -155
  463. package/dist/server/bare/plugins/llamacpp-embedding/plugin.d.ts +0 -54
  464. package/dist/server/bare/plugins/llamacpp-embedding/plugin.js +0 -87
  465. package/dist/server/bare/plugins/nmtcpp-translation/plugin.d.ts +0 -367
  466. package/dist/server/bare/plugins/nmtcpp-translation/plugin.js +0 -201
  467. package/dist/server/bare/plugins/onnx-ocr/ops/ocr-stream.d.ts +0 -10
  468. package/dist/server/bare/plugins/onnx-ocr/ops/ocr-stream.js +0 -110
  469. package/dist/server/bare/plugins/onnx-ocr/plugin.d.ts +0 -86
  470. package/dist/server/bare/plugins/onnx-ocr/plugin.js +0 -117
  471. package/dist/server/bare/plugins/onnx-tts/plugin.d.ts +0 -373
  472. package/dist/server/bare/plugins/onnx-tts/plugin.js +0 -182
  473. package/dist/server/bare/plugins/onnx-tts/wav-helper.d.ts +0 -14
  474. package/dist/server/bare/plugins/onnx-tts/wav-helper.js +0 -107
  475. package/dist/server/bare/plugins/parakeet-transcription/plugin.d.ts +0 -317
  476. package/dist/server/bare/plugins/parakeet-transcription/plugin.js +0 -154
  477. package/dist/server/bare/plugins/whispercpp-transcription/plugin.d.ts +0 -237
  478. package/dist/server/bare/plugins/whispercpp-transcription/plugin.js +0 -86
  479. package/dist/server/bare/rag-hyperdb/handlers/chunk.d.ts +0 -3
  480. package/dist/server/bare/rag-hyperdb/handlers/chunk.js +0 -7
  481. package/dist/server/bare/rag-hyperdb/handlers/close-workspace.d.ts +0 -3
  482. package/dist/server/bare/rag-hyperdb/handlers/close-workspace.js +0 -9
  483. package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.d.ts +0 -3
  484. package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.js +0 -14
  485. package/dist/server/bare/rag-hyperdb/handlers/ingest.d.ts +0 -9
  486. package/dist/server/bare/rag-hyperdb/handlers/ingest.js +0 -18
  487. package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.d.ts +0 -3
  488. package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.js +0 -4
  489. package/dist/server/bare/rag-hyperdb/handlers/reindex.d.ts +0 -9
  490. package/dist/server/bare/rag-hyperdb/handlers/reindex.js +0 -16
  491. package/dist/server/bare/rag-hyperdb/rag-operation-manager.d.ts +0 -7
  492. package/dist/server/bare/rag-hyperdb/rag-operation-manager.js +0 -39
  493. package/dist/server/bare/rag-hyperdb/rag-workspace-manager.d.ts +0 -15
  494. package/dist/server/bare/rag-hyperdb/rag-workspace-manager.js +0 -136
  495. package/dist/server/bare/registry/config-registry.d.ts +0 -14
  496. package/dist/server/bare/registry/config-registry.js +0 -82
  497. package/dist/server/bare/registry/model-config-registry.d.ts +0 -4
  498. package/dist/server/bare/registry/model-config-registry.js +0 -15
  499. package/dist/server/bare/registry/model-config-utils.d.ts +0 -15
  500. package/dist/server/bare/registry/model-config-utils.js +0 -112
  501. package/dist/server/bare/registry/registry-client.d.ts +0 -5
  502. package/dist/server/bare/registry/registry-client.js +0 -37
  503. package/dist/server/bare/registry/runtime-context-registry.d.ts +0 -7
  504. package/dist/server/bare/registry/runtime-context-registry.js +0 -26
  505. package/dist/server/bare/utils/audio-input.d.ts +0 -10
  506. package/dist/server/bare/utils/audio-input.js +0 -33
  507. package/dist/server/bare/utils/loader-adapter.d.ts +0 -7
  508. package/dist/server/bare/utils/loader-adapter.js +0 -9
  509. package/dist/server/env.d.ts +0 -22
  510. package/dist/server/env.js +0 -57
  511. package/dist/server/plugins/index.d.ts +0 -2
  512. package/dist/server/plugins/index.js +0 -1
  513. package/dist/server/plugins/registry.d.ts +0 -9
  514. package/dist/server/plugins/registry.js +0 -79
  515. package/dist/server/rpc/delegate-transport.d.ts +0 -19
  516. package/dist/server/rpc/delegate-transport.js +0 -236
  517. package/dist/server/rpc/delegate-utils.d.ts +0 -2
  518. package/dist/server/rpc/delegate-utils.js +0 -5
  519. package/dist/server/rpc/handler-registry.d.ts +0 -3
  520. package/dist/server/rpc/handler-registry.js +0 -113
  521. package/dist/server/rpc/handler-utils.d.ts +0 -23
  522. package/dist/server/rpc/handler-utils.js +0 -170
  523. package/dist/server/rpc/handlers/cancel-delegated.d.ts +0 -4
  524. package/dist/server/rpc/handlers/cancel-delegated.js +0 -71
  525. package/dist/server/rpc/handlers/get-model-info.d.ts +0 -3
  526. package/dist/server/rpc/handlers/get-model-info.js +0 -164
  527. package/dist/server/rpc/handlers/heartbeat-delegated.d.ts +0 -4
  528. package/dist/server/rpc/handlers/heartbeat-delegated.js +0 -32
  529. package/dist/server/rpc/handlers/heartbeat.d.ts +0 -3
  530. package/dist/server/rpc/handlers/heartbeat.js +0 -3
  531. package/dist/server/rpc/handlers/load-model/download-stats.d.ts +0 -6
  532. package/dist/server/rpc/handlers/load-model/download-stats.js +0 -87
  533. package/dist/server/rpc/handlers/load-model/handler.js +0 -187
  534. package/dist/server/rpc/handlers/load-model/registry.d.ts +0 -11
  535. package/dist/server/rpc/handlers/load-model/registry.js +0 -548
  536. package/dist/server/rpc/handlers/load-model/types.d.ts +0 -29
  537. package/dist/server/rpc/handlers/load-model/types.js +0 -1
  538. package/dist/server/rpc/handlers/ocr-stream.d.ts +0 -3
  539. package/dist/server/rpc/handlers/ocr-stream.js +0 -4
  540. package/dist/server/rpc/handlers/plugin-dispatch.d.ts +0 -15
  541. package/dist/server/rpc/handlers/plugin-dispatch.js +0 -59
  542. package/dist/server/rpc/handlers/plugin-invoke.d.ts +0 -4
  543. package/dist/server/rpc/handlers/plugin-invoke.js +0 -92
  544. package/dist/server/rpc/handlers/registry.d.ts +0 -5
  545. package/dist/server/rpc/handlers/registry.js +0 -157
  546. package/dist/server/rpc/handlers/unload-model-delegated.d.ts +0 -3
  547. package/dist/server/rpc/handlers/unload-model-delegated.js +0 -32
  548. package/dist/server/rpc/profiling/context.d.ts +0 -18
  549. package/dist/server/rpc/profiling/context.js +0 -38
  550. package/dist/server/rpc/profiling/delegation-profiler.d.ts +0 -32
  551. package/dist/server/rpc/profiling/delegation-profiler.js +0 -154
  552. package/dist/server/rpc/profiling/index.d.ts +0 -5
  553. package/dist/server/rpc/profiling/index.js +0 -4
  554. package/dist/server/rpc/profiling/operation-metrics.d.ts +0 -25
  555. package/dist/server/rpc/profiling/operation-metrics.js +0 -199
  556. package/dist/server/rpc/profiling/operation-wrappers.d.ts +0 -18
  557. package/dist/server/rpc/profiling/operation-wrappers.js +0 -124
  558. package/dist/server/rpc/profiling/profiler.d.ts +0 -13
  559. package/dist/server/rpc/profiling/profiler.js +0 -97
  560. package/dist/server/utils/archive.d.ts +0 -4
  561. package/dist/server/utils/archive.js +0 -179
  562. package/dist/server/utils/checksum.d.ts +0 -4
  563. package/dist/server/utils/checksum.js +0 -31
  564. package/dist/server/utils/config-transform.d.ts +0 -3
  565. package/dist/server/utils/config-transform.js +0 -23
  566. package/dist/server/utils/formatting.d.ts +0 -19
  567. package/dist/server/utils/formatting.js +0 -61
  568. package/dist/server/utils/gguf-tensor-extractor.d.ts +0 -15
  569. package/dist/server/utils/gguf-tensor-extractor.js +0 -314
  570. package/dist/server/utils/path-security.d.ts +0 -12
  571. package/dist/server/utils/path-security.js +0 -25
  572. package/dist/server/utils/shard-utils.d.ts +0 -48
  573. package/dist/server/utils/shard-utils.js +0 -125
  574. package/dist/server/worker-core.d.ts +0 -6
  575. package/dist/server/worker-core.js +0 -88
  576. package/dist/utils/errors-base.d.ts +0 -3
  577. package/dist/utils/errors-base.js +0 -13
  578. package/dist/utils/errors-client.d.ts +0 -137
  579. package/dist/utils/errors-client.js +0 -240
  580. package/dist/utils/errors-server.d.ts +0 -236
  581. package/dist/utils/errors-server.js +0 -412
  582. package/dist/utils/global-singleton.d.ts +0 -2
  583. package/dist/utils/global-singleton.js +0 -10
  584. package/dist/utils/mcp-adapter.d.ts +0 -12
  585. package/dist/utils/mcp-adapter.js +0 -103
  586. package/dist/utils/object.d.ts +0 -2
  587. package/dist/utils/object.js +0 -3
  588. package/dist/utils/path-sanitize.d.ts +0 -17
  589. package/dist/utils/path-sanitize.js +0 -54
  590. package/dist/utils/tool-helpers.d.ts +0 -25
  591. package/dist/utils/tool-helpers.js +0 -112
  592. package/expo/plugins/patches/android-link.mjs +0 -63
  593. package/expo/plugins/patches/ios-link.mjs +0 -63
  594. /package/dist/examples/{seed-p2p.js → seed-hyperdrive.js} +0 -0
  595. /package/dist/examples/{transcription/whispercpp-filesystem.d.ts → whispercpp-filesystem.d.ts} +0 -0
  596. /package/dist/examples/{transcription/whispercpp-microphone-record.d.ts → whispercpp-microphone-record.d.ts} +0 -0
  597. /package/dist/examples/{transcription/whispercpp-prompt.d.ts → whispercpp-prompt.d.ts} +0 -0
  598. /package/dist/models/{registry → hyperdrive}/index.d.ts +0 -0
  599. /package/dist/server/bare/{ops → addons}/cancel.d.ts +0 -0
  600. /package/dist/server/bare/{plugins/onnx-tts/ops → addons/tts/handlers}/text-to-speech.d.ts +0 -0
  601. /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