@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,77 +1,53 @@
1
1
  import fs, { promises as fsPromises } from "bare-fs";
2
- import path from "bare-path";
3
2
  import { Readable } from "bare-stream";
4
3
  import fetch from "bare-fetch";
5
4
  import { AbortController } from "bare-abort-controller";
6
- import { withTimeout } from "../../../../utils/withTimeout.js";
7
- import { getModelsCacheDir, getShardedModelCacheDir, generateShortHash, detectShardedModel, parsePatternBasedShardUrl, extractTensorsFromShards, calculatePercentage, isArchiveUrl, sanitizePathComponent, extractAndValidateShardedArchive, validateShardedModelCache, checkAllShardsExist, generateShardFilenames, hasValidGGUFHeader, } from "../../../utils/index.js";
8
- import { getSDKConfig } from "../../../bare/registry/config-registry.js";
5
+ import { getModelsCacheDir, generateShortHash } from "../../../utils/index.js";
9
6
  import { getActiveDownload, registerDownload, unregisterDownload, createHttpDownloadKey, shouldClearCache, clearClearCacheFlag, } from "./download-manager.js";
10
- import { DownloadCancelledError, HTTPError, NoResponseBodyError, PartialDownloadOfflineError, ResponseBodyNotReadableError, } from "../../../../utils/errors-server.js";
11
- import { getServerLogger } from "../../../../logging/index.js";
12
- const logger = getServerLogger();
13
- const DEFAULT_CONCURRENCY = 3;
14
- const DEFAULT_HTTP_CONNECTION_TIMEOUT_MS = 10_000;
15
7
  function extractFilenameFromUrl(url) {
16
8
  // Parse URL to get the filename from the path
17
9
  const urlParts = url.split("/");
18
10
  const filename = urlParts[urlParts.length - 1] || "model.gguf";
19
11
  // Remove query parameters if present
20
12
  const cleanFilename = filename.split("?")[0] || "model.gguf";
21
- // Sanitize to prevent path traversal via crafted URLs
22
- return sanitizePathComponent(cleanFilename);
13
+ return cleanFilename;
23
14
  }
24
15
  async function validateCachedFile(modelPath, url, signal) {
25
16
  try {
26
17
  await fsPromises.access(modelPath);
27
18
  const localStats = await fsPromises.stat(modelPath);
28
19
  const localSize = localStats.size;
29
- const config = getSDKConfig();
30
- const connectionTimeout = config.httpConnectionTimeoutMs ?? DEFAULT_HTTP_CONNECTION_TIMEOUT_MS;
20
+ // Get expected size from HEAD request
31
21
  let expectedSize = 0;
32
22
  try {
33
- const response = await withTimeout(fetch(url, {
23
+ const response = await fetch(url, {
34
24
  method: "HEAD",
35
25
  ...(signal && { signal }),
36
- }), connectionTimeout);
26
+ });
37
27
  expectedSize = parseInt(response.headers.get("content-length") || "0");
38
28
  }
39
- catch (headError) {
40
- logger.warn(`⚠️ HEAD request failed: ${headError instanceof Error ? headError.message : String(headError)}`);
41
- logger.info(`📴 Falling back to GGUF header validation...`);
42
- const hasValidHeader = await hasValidGGUFHeader(modelPath);
43
- if (hasValidHeader) {
44
- logger.info(`✅ Offline - GGUF header valid, using cached file: ${modelPath}`);
45
- return modelPath;
46
- }
47
- if (localSize > 0) {
48
- logger.error(`❌ Offline with partial download (${localSize} bytes). Cannot resume without network.`);
49
- throw new PartialDownloadOfflineError(url, localSize);
50
- }
51
- logger.warn(`⚠️ Offline and GGUF validation failed - file may be incomplete`);
52
- return null;
29
+ catch (error) {
30
+ console.log(`⚠️ Could not get expected file size from HEAD request: ${String(error)}`);
31
+ console.log(`✅ Using cached HTTP model: ${modelPath}`);
32
+ return modelPath;
53
33
  }
54
- if (localSize !== expectedSize) {
55
- logger.info(`📥 Cached file size mismatch. Expected: ${expectedSize}, Found: ${localSize}. Re-downloading...`);
34
+ if (expectedSize > 0 && localSize !== expectedSize) {
35
+ console.log(`📥 Cached file size mismatch. Expected: ${expectedSize}, Found: ${localSize}. Re-downloading...`);
56
36
  return null;
57
37
  }
58
- logger.info(`✅ Using cached HTTP model: ${modelPath}`);
38
+ console.log(`✅ Using cached HTTP model: ${modelPath}`);
59
39
  return modelPath;
60
40
  }
61
- catch (error) {
62
- // Re-throw PartialDownloadOfflineError
63
- if (error instanceof PartialDownloadOfflineError) {
64
- throw error;
65
- }
66
- // File doesn't exist or other access error
41
+ catch {
42
+ // File doesn't exist
67
43
  return null;
68
44
  }
69
45
  }
70
46
  async function performHttpDownload(url, modelPath, downloadKey, progressCallback, signal) {
71
47
  if (signal?.aborted) {
72
- throw new DownloadCancelledError();
48
+ throw new Error("Download cancelled");
73
49
  }
74
- logger.info(`📥 Downloading model from HTTP: ${url}`);
50
+ console.log(`📥 Downloading model from HTTP: ${url}`);
75
51
  // Check if file exists for resuming
76
52
  let startOffset = 0;
77
53
  let downloadedBytes = 0;
@@ -79,10 +55,10 @@ async function performHttpDownload(url, modelPath, downloadKey, progressCallback
79
55
  const existingStats = await fsPromises.stat(modelPath);
80
56
  startOffset = existingStats.size;
81
57
  downloadedBytes = startOffset;
82
- logger.info(`📥 Resuming download from byte ${startOffset}`);
58
+ console.log(`📥 Resuming download from byte ${startOffset}`);
83
59
  }
84
60
  catch {
85
- logger.info(`📥 Starting fresh download`);
61
+ console.log(`📥 Starting fresh download`);
86
62
  }
87
63
  // Prepare headers for resume if needed
88
64
  const headers = {
@@ -91,62 +67,41 @@ async function performHttpDownload(url, modelPath, downloadKey, progressCallback
91
67
  if (startOffset > 0) {
92
68
  headers["Range"] = `bytes=${startOffset}-`;
93
69
  }
94
- const config = getSDKConfig();
95
- const connectionTimeout = config.httpConnectionTimeoutMs ?? DEFAULT_HTTP_CONNECTION_TIMEOUT_MS;
96
- let response;
97
- try {
98
- response = await withTimeout(fetch(url, {
99
- method: "GET",
100
- headers,
101
- ...(signal && { signal }),
102
- }), connectionTimeout);
103
- }
104
- catch (error) {
105
- // Check if it was parent abort
106
- if (signal?.aborted) {
107
- throw new DownloadCancelledError();
108
- }
109
- // Connection timeout or network error
110
- const errorMsg = error instanceof Error ? error.message : String(error);
111
- logger.error(`❌ Connection failed: ${errorMsg}. URL: ${url}`);
112
- throw new HTTPError(0, `Connection failed: ${errorMsg}`, error);
113
- }
70
+ // Make the fetch request
71
+ const response = await fetch(url, {
72
+ method: "GET",
73
+ headers,
74
+ ...(signal && { signal }),
75
+ // bare-fetch automatically follows redirects
76
+ });
114
77
  if (!response.ok) {
115
78
  // Check if it's a 416 (Range Not Satisfiable) - file already complete
116
79
  if (response.status === 416 && startOffset > 0) {
117
- logger.info(`✅ File already completely downloaded`);
118
- // Send 100% progress for already complete file
119
- if (progressCallback) {
120
- progressCallback({
121
- type: "modelProgress",
122
- downloaded: startOffset,
123
- total: startOffset,
124
- percentage: 100,
125
- downloadKey,
126
- });
127
- }
80
+ console.log(`✅ File already completely downloaded`);
128
81
  return;
129
82
  }
130
83
  // Check if server doesn't support range requests
131
84
  if (response.status === 200 && startOffset > 0) {
132
- logger.warn(`⚠️ Server doesn't support resume, starting fresh download`);
85
+ console.log(`⚠️ Server doesn't support resume, starting fresh download`);
133
86
  startOffset = 0;
134
87
  downloadedBytes = 0;
135
88
  // Retry without Range header
136
- response = await fetch(url, {
89
+ const freshResponse = await fetch(url, {
137
90
  method: "GET",
138
91
  headers: {
139
- "User-Agent": "qvac-sdk",
92
+ "User-Agent": "qvac-sdk/1.0",
140
93
  },
141
94
  ...(signal && { signal }),
142
95
  });
143
- if (!response.ok) {
144
- throw new HTTPError(response.status, response.statusText);
96
+ if (!freshResponse.ok) {
97
+ throw new Error(`HTTP error: ${freshResponse.status} ${freshResponse.statusText}`);
145
98
  }
99
+ // Use the fresh response
100
+ Object.assign(response, freshResponse);
146
101
  }
147
102
  else if (response.status !== 206) {
148
103
  // 206 is Partial Content (successful resume)
149
- throw new HTTPError(response.status, response.statusText);
104
+ throw new Error(`HTTP error: ${response.status} ${response.statusText}`);
150
105
  }
151
106
  }
152
107
  // Get total size from headers
@@ -166,14 +121,14 @@ async function performHttpDownload(url, modelPath, downloadKey, progressCallback
166
121
  // For fresh downloads
167
122
  totalBytes = contentLength ? parseInt(contentLength) : 0;
168
123
  }
169
- logger.info(`📏 Total size: ${totalBytes} bytes (${(totalBytes / 1024 / 1024).toFixed(2)} MB)`);
124
+ console.log(`📏 Total size: ${totalBytes} bytes (${(totalBytes / 1024 / 1024).toFixed(2)} MB)`);
170
125
  // Create write stream (append if resuming)
171
126
  const writeStreamOptions = startOffset > 0 && response.status === 206 ? { flags: "a" } : {};
172
127
  const writeStream = fs.createWriteStream(modelPath, writeStreamOptions);
173
128
  // Get the response body
174
129
  const body = response.body;
175
130
  if (!body) {
176
- throw new NoResponseBodyError();
131
+ throw new Error("No response body received");
177
132
  }
178
133
  try {
179
134
  // Check if body has pipe method (it's a Node/Bare stream)
@@ -189,7 +144,7 @@ async function performHttpDownload(url, modelPath, downloadKey, progressCallback
189
144
  type: "modelProgress",
190
145
  downloaded: downloadedBytes,
191
146
  total: totalBytes,
192
- percentage: calculatePercentage(downloadedBytes, totalBytes),
147
+ percentage: totalBytes > 0 ? (downloadedBytes / totalBytes) * 100 : 0,
193
148
  downloadKey,
194
149
  });
195
150
  }
@@ -209,7 +164,7 @@ async function performHttpDownload(url, modelPath, downloadKey, progressCallback
209
164
  signal.addEventListener("abort", abortHandler);
210
165
  }
211
166
  writeStream.on("finish", () => {
212
- logger.info(`✅ Model downloaded successfully to ${modelPath}`);
167
+ console.log(`✅ Model downloaded successfully to ${modelPath}`);
213
168
  if (signal) {
214
169
  signal.removeEventListener("abort", abortHandler);
215
170
  }
@@ -225,7 +180,7 @@ async function performHttpDownload(url, modelPath, downloadKey, progressCallback
225
180
  // Check if abort signal is triggered
226
181
  if (signal && signal.aborted) {
227
182
  writeStream.destroy();
228
- throw new DownloadCancelledError();
183
+ throw new Error("Download cancelled");
229
184
  }
230
185
  const buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
231
186
  downloadedBytes += buffer.length;
@@ -234,7 +189,7 @@ async function performHttpDownload(url, modelPath, downloadKey, progressCallback
234
189
  type: "modelProgress",
235
190
  downloaded: downloadedBytes,
236
191
  total: totalBytes,
237
- percentage: calculatePercentage(downloadedBytes, totalBytes),
192
+ percentage: totalBytes > 0 ? (downloadedBytes / totalBytes) * 100 : 0,
238
193
  downloadKey,
239
194
  });
240
195
  }
@@ -251,7 +206,7 @@ async function performHttpDownload(url, modelPath, downloadKey, progressCallback
251
206
  // Close the write stream
252
207
  await new Promise((resolve, reject) => {
253
208
  writeStream.end(() => {
254
- logger.info(`✅ Model downloaded successfully to ${modelPath}`);
209
+ console.log(`✅ Model downloaded successfully to ${modelPath}`);
255
210
  resolve();
256
211
  });
257
212
  writeStream.on("error", reject);
@@ -276,7 +231,7 @@ async function performHttpDownload(url, modelPath, downloadKey, progressCallback
276
231
  type: "modelProgress",
277
232
  downloaded: downloadedBytes,
278
233
  total: totalBytes,
279
- percentage: calculatePercentage(downloadedBytes, totalBytes),
234
+ percentage: totalBytes > 0 ? (downloadedBytes / totalBytes) * 100 : 0,
280
235
  downloadKey,
281
236
  });
282
237
  }
@@ -297,41 +252,34 @@ async function performHttpDownload(url, modelPath, downloadKey, progressCallback
297
252
  // Close the write stream
298
253
  await new Promise((resolve, reject) => {
299
254
  writeStream.end(() => {
300
- logger.info(`✅ Model downloaded successfully to ${modelPath}`);
255
+ console.log(`✅ Model downloaded successfully to ${modelPath}`);
301
256
  resolve();
302
257
  });
303
258
  writeStream.on("error", reject);
304
259
  });
305
260
  }
306
261
  else {
307
- throw new ResponseBodyNotReadableError();
262
+ throw new Error("Response body is not readable");
308
263
  }
309
264
  }
310
265
  }
311
266
  catch (error) {
312
267
  writeStream.destroy();
313
- logger.error("Error during download:", error instanceof Error ? error.message : String(error));
268
+ console.error("Error during download:", error instanceof Error ? error.message : String(error));
314
269
  throw error instanceof Error ? error : new Error(String(error));
315
270
  }
316
271
  }
317
- export async function downloadModelFromHttp(url, progressCallback, hooks) {
318
- const filename = extractFilenameFromUrl(url);
319
- if (isArchiveUrl(url)) {
320
- return downloadShardedModelFromArchive(url, progressCallback, hooks);
321
- }
322
- const shardInfo = detectShardedModel(filename);
323
- if (shardInfo.isSharded && shardInfo.totalShards) {
324
- return downloadShardedModelFromHttp(url, progressCallback, hooks);
325
- }
272
+ export async function downloadModelFromHttp(url, progressCallback) {
326
273
  const downloadKey = createHttpDownloadKey(url);
274
+ // Check if already downloading
327
275
  const existing = getActiveDownload(downloadKey);
328
276
  if (existing) {
329
- logger.info(`📥 Reusing existing download for: ${downloadKey}`);
330
- hooks?.markCacheMiss();
277
+ console.log(`📥 Reusing existing download for: ${downloadKey}`);
331
278
  return existing.promise;
332
279
  }
333
280
  const cacheDir = getModelsCacheDir();
334
281
  const sourceHash = generateShortHash(url);
282
+ const filename = extractFilenameFromUrl(url);
335
283
  const modelPath = `${cacheDir}/${sourceHash}_${filename}`;
336
284
  // Create managed download with AbortController
337
285
  const abortController = new AbortController();
@@ -340,70 +288,28 @@ export async function downloadModelFromHttp(url, progressCallback, hooks) {
340
288
  // Check if already cached
341
289
  const cachedPath = await validateCachedFile(modelPath, url, abortController.signal);
342
290
  if (cachedPath) {
343
- hooks?.markCacheHit();
344
- if (progressCallback) {
345
- try {
346
- const stats = await fsPromises.stat(cachedPath);
347
- progressCallback({
348
- type: "modelProgress",
349
- downloaded: stats.size,
350
- total: stats.size,
351
- percentage: 100,
352
- downloadKey,
353
- });
354
- }
355
- catch (error) {
356
- logger.debug("Failed to get file stats for progress callback", {
357
- path: cachedPath,
358
- error,
359
- });
360
- }
361
- }
362
291
  return cachedPath;
363
292
  }
364
293
  // Download the file
365
- hooks?.markCacheMiss();
366
294
  await performHttpDownload(url, modelPath, downloadKey, progressCallback, abortController.signal);
367
- // Send final 100% progress update
368
- if (progressCallback) {
369
- try {
370
- const stats = await fsPromises.stat(modelPath);
371
- progressCallback({
372
- type: "modelProgress",
373
- downloaded: stats.size,
374
- total: stats.size,
375
- percentage: 100,
376
- downloadKey,
377
- });
378
- }
379
- catch (error) {
380
- logger.debug("Failed to get file stats for final progress update", {
381
- path: modelPath,
382
- error,
383
- });
384
- }
385
- }
386
295
  return modelPath;
387
296
  }
388
297
  catch (error) {
389
- logger.error("❌ Error downloading model:", error instanceof Error ? error.message : String(error));
298
+ console.error("❌ Error downloading model:", error instanceof Error ? error.message : String(error));
390
299
  // Check if we should delete the partial file (clearCache was requested)
391
300
  if (error instanceof Error && error.message === "Download cancelled") {
392
301
  if (shouldClearCache(downloadKey)) {
393
- logger.info("🗑️ Clearing cache - deleting partial file");
302
+ console.log("🗑️ Clearing cache - deleting partial file");
394
303
  try {
395
304
  await fsPromises.unlink(modelPath);
396
- logger.info(`✅ Deleted partial file: ${modelPath}`);
305
+ console.log(`✅ Deleted partial file: ${modelPath}`);
397
306
  }
398
- catch (error) {
399
- logger.debug("Failed to delete partial file during cleanup", {
400
- path: modelPath,
401
- error,
402
- });
307
+ catch {
308
+ // Ignore cleanup errors
403
309
  }
404
310
  }
405
311
  else {
406
- logger.info("📥 Download paused - partial file preserved for resume");
312
+ console.log("📥 Download paused - partial file preserved for resume");
407
313
  }
408
314
  clearClearCacheFlag(downloadKey);
409
315
  }
@@ -429,278 +335,3 @@ export async function downloadModelFromHttp(url, progressCallback, hooks) {
429
335
  registerDownload(downloadKey, downloadEntry);
430
336
  return downloadPromise;
431
337
  }
432
- async function downloadShardedModelFromHttp(shardUrl, progressCallback, hooks) {
433
- const config = getSDKConfig();
434
- const concurrency = config.httpDownloadConcurrency ?? DEFAULT_CONCURRENCY;
435
- const { shardUrls: shardInfos, cacheKey } = parsePatternBasedShardUrl(shardUrl);
436
- const downloadKey = `http-sharded:${cacheKey}`;
437
- logger.info(`📥 HTTP sharded download: ${shardInfos.length} shards detected from ${shardUrl}`);
438
- const existing = getActiveDownload(downloadKey);
439
- if (existing) {
440
- logger.info(`📥 Reusing existing sharded download for: ${downloadKey}`);
441
- hooks?.markCacheMiss();
442
- return existing.promise;
443
- }
444
- const abortController = new AbortController();
445
- const shardDir = getShardedModelCacheDir(cacheKey);
446
- const downloadPromise = (async () => {
447
- try {
448
- const shardStates = await Promise.all(shardInfos.map(async (shard, index) => {
449
- const shardPath = path.join(shardDir, shard.filename);
450
- let expectedSize = 0;
451
- try {
452
- const response = await fetch(shard.url, {
453
- method: "HEAD",
454
- signal: abortController.signal,
455
- });
456
- expectedSize = parseInt(response.headers.get("content-length") || "0");
457
- }
458
- catch (error) {
459
- logger.warn("Failed to get shard size via HEAD request", {
460
- url: shard.url,
461
- error,
462
- });
463
- // expectedSize remains 0, progress percentage will be 0
464
- }
465
- return {
466
- index,
467
- shard,
468
- shardPath,
469
- expectedSize,
470
- downloadedBytes: 0,
471
- isComplete: false,
472
- };
473
- }));
474
- const overallTotal = shardStates.reduce((sum, s) => sum + s.expectedSize, 0);
475
- logger.info(`📏 Total size: ${overallTotal} bytes (${(overallTotal / 1024 / 1024).toFixed(2)} MB)`);
476
- const cacheChecks = await Promise.all(shardStates.map(async (state) => {
477
- const cached = await validateCachedFile(state.shardPath, state.shard.url, abortController.signal);
478
- return { state, isCached: cached !== null };
479
- }));
480
- const shardsToDownload = cacheChecks
481
- .filter((c) => !c.isCached)
482
- .map((c) => c.state);
483
- for (const check of cacheChecks) {
484
- if (check.isCached) {
485
- check.state.isComplete = true;
486
- check.state.downloadedBytes = check.state.expectedSize;
487
- }
488
- }
489
- logger.info(`📥 ${shardsToDownload.length} of ${shardInfos.length} shards need downloading`);
490
- if (shardsToDownload.length === 0) {
491
- hooks?.markCacheHit();
492
- }
493
- else {
494
- hooks?.markCacheMiss();
495
- }
496
- await downloadShardsWithConcurrency(shardsToDownload, shardStates, concurrency, abortController.signal, downloadKey, overallTotal, progressCallback);
497
- logger.info(`✅ All ${shardInfos.length} shards downloaded successfully`);
498
- await extractTensorsFromShards(shardDir, shardInfos[0].filename);
499
- return path.join(shardDir, shardInfos[0].filename);
500
- }
501
- catch (error) {
502
- logger.error("❌ Error during sharded download:", error instanceof Error ? error.message : String(error));
503
- if (error instanceof Error && error.message === "Download cancelled") {
504
- if (shouldClearCache(downloadKey)) {
505
- logger.info("🗑️ Clearing cache - deleting partial shard files");
506
- try {
507
- await fsPromises.rm(shardDir, { recursive: true, force: true });
508
- logger.info(`✅ Deleted shard directory: ${shardDir}`);
509
- }
510
- catch (cleanupError) {
511
- logger.debug("Failed to delete shard directory during cleanup", {
512
- path: shardDir,
513
- error: cleanupError,
514
- });
515
- }
516
- }
517
- }
518
- throw error;
519
- }
520
- finally {
521
- unregisterDownload(downloadKey);
522
- clearClearCacheFlag(downloadKey);
523
- }
524
- })();
525
- registerDownload(downloadKey, {
526
- key: downloadKey,
527
- promise: downloadPromise,
528
- abortController,
529
- startTime: Date.now(),
530
- type: "http",
531
- url: shardUrl,
532
- modelPath: shardDir,
533
- });
534
- return downloadPromise;
535
- }
536
- async function downloadShardedModelFromArchive(archiveUrl, progressCallback, hooks) {
537
- const filename = extractFilenameFromUrl(archiveUrl);
538
- const sourceHash = generateShortHash(archiveUrl);
539
- const downloadKey = `http-archive:${sourceHash}`;
540
- logger.info(`📦 HTTP archive download: ${filename}`);
541
- const existing = getActiveDownload(downloadKey);
542
- if (existing) {
543
- logger.info(`📥 Reusing existing archive download for: ${downloadKey}`);
544
- hooks?.markCacheMiss();
545
- return existing.promise;
546
- }
547
- const abortController = new AbortController();
548
- const extractDir = getShardedModelCacheDir(sourceHash);
549
- const archivePath = path.join(extractDir, `${sourceHash}_${filename}`);
550
- const downloadPromise = (async () => {
551
- try {
552
- await fsPromises.mkdir(extractDir, { recursive: true });
553
- const files = await fsPromises.readdir(extractDir);
554
- const shardedFile = files.find((f) => detectShardedModel(String(f)).isSharded);
555
- if (!shardedFile) {
556
- hooks?.markCacheMiss();
557
- return downloadAndExtractArchive();
558
- }
559
- const shardFilename = String(shardedFile);
560
- const allShardsExist = await checkAllShardsExist(extractDir, shardFilename);
561
- if (!allShardsExist) {
562
- logger.warn(`⚠️ Incomplete shards found, re-downloading archive`);
563
- hooks?.markCacheMiss();
564
- return downloadAndExtractArchive();
565
- }
566
- const shardFilenames = generateShardFilenames(shardFilename);
567
- const firstShard = path.join(extractDir, shardFilenames[0]);
568
- const isComplete = await validateShardedModelCache(extractDir, shardFilename);
569
- if (isComplete) {
570
- logger.info(`✅ Archive already extracted: ${extractDir}`);
571
- hooks?.markCacheHit();
572
- if (progressCallback) {
573
- progressCallback({
574
- type: "modelProgress",
575
- downloaded: 1,
576
- total: 1,
577
- percentage: 100,
578
- downloadKey,
579
- });
580
- }
581
- return firstShard;
582
- }
583
- logger.info(`📝 All shards present but tensors.txt missing, extracting tensors...`);
584
- try {
585
- await extractTensorsFromShards(extractDir, shardFilename);
586
- logger.info(`✅ Tensors extracted successfully`);
587
- hooks?.markCacheHit();
588
- if (progressCallback) {
589
- progressCallback({
590
- type: "modelProgress",
591
- downloaded: 1,
592
- total: 1,
593
- percentage: 100,
594
- downloadKey,
595
- });
596
- }
597
- return firstShard;
598
- }
599
- catch (error) {
600
- logger.warn(`Failed to extract tensors, will re-download archive`, {
601
- error,
602
- });
603
- hooks?.markCacheMiss();
604
- return downloadAndExtractArchive();
605
- }
606
- }
607
- catch (error) {
608
- logger.error("❌ Error downloading/extracting archive:", error);
609
- throw error;
610
- }
611
- finally {
612
- unregisterDownload(downloadKey);
613
- }
614
- async function downloadAndExtractArchive() {
615
- await performHttpDownload(archiveUrl, archivePath, downloadKey, progressCallback, abortController.signal);
616
- logger.info(`✅ Archive downloaded, extracting to: ${extractDir}`);
617
- const firstShardPath = await extractAndValidateShardedArchive(archivePath, extractDir, abortController.signal);
618
- try {
619
- await fsPromises.unlink(archivePath);
620
- logger.info(`🗑️ Cleaned up archive file: ${archivePath}`);
621
- }
622
- catch (cleanupError) {
623
- logger.debug("Failed to delete archive file during cleanup", {
624
- path: archivePath,
625
- error: cleanupError,
626
- });
627
- }
628
- return firstShardPath;
629
- }
630
- })();
631
- registerDownload(downloadKey, {
632
- key: downloadKey,
633
- promise: downloadPromise,
634
- abortController,
635
- startTime: Date.now(),
636
- type: "http",
637
- url: archiveUrl,
638
- modelPath: archivePath,
639
- });
640
- return downloadPromise;
641
- }
642
- async function downloadShardsWithConcurrency(shardsToDownload, allShards, concurrency, signal, downloadKey, overallTotal, progressCallback) {
643
- const queue = [...shardsToDownload];
644
- const inFlight = new Set();
645
- while (queue.length > 0 || inFlight.size > 0) {
646
- if (signal.aborted) {
647
- throw new DownloadCancelledError();
648
- }
649
- while (queue.length > 0 && inFlight.size < concurrency) {
650
- const state = queue.shift();
651
- const downloadPromise = (async () => {
652
- logger.info(`📥 Downloading shard ${state.index + 1}: ${state.shard.filename}`);
653
- await performHttpDownload(state.shard.url, state.shardPath, downloadKey, (progress) => {
654
- state.downloadedBytes = progress.downloaded;
655
- if (progressCallback) {
656
- const overallDownloaded = allShards.reduce((sum, s) => sum + s.downloadedBytes, 0);
657
- progressCallback({
658
- type: "modelProgress",
659
- downloaded: state.downloadedBytes,
660
- total: state.expectedSize,
661
- percentage: calculatePercentage(state.downloadedBytes, state.expectedSize),
662
- downloadKey,
663
- shardInfo: {
664
- currentShard: state.index + 1,
665
- totalShards: allShards.length,
666
- shardName: state.shard.filename,
667
- overallDownloaded,
668
- overallTotal,
669
- overallPercentage: calculatePercentage(overallDownloaded, overallTotal),
670
- },
671
- });
672
- }
673
- }, signal);
674
- logger.info(`✅ Shard ${state.index + 1} complete: ${state.shard.filename}`);
675
- })().finally(() => {
676
- inFlight.delete(downloadPromise);
677
- });
678
- inFlight.add(downloadPromise);
679
- }
680
- if (inFlight.size > 0) {
681
- await Promise.race(inFlight);
682
- }
683
- }
684
- // Mark all downloaded shards as complete
685
- for (const state of shardsToDownload) {
686
- state.isComplete = true;
687
- state.downloadedBytes = state.expectedSize;
688
- }
689
- if (progressCallback) {
690
- progressCallback({
691
- type: "modelProgress",
692
- downloaded: overallTotal,
693
- total: overallTotal,
694
- percentage: 100,
695
- downloadKey,
696
- shardInfo: {
697
- currentShard: allShards.length,
698
- totalShards: allShards.length,
699
- shardName: allShards[allShards.length - 1].shard.filename,
700
- overallDownloaded: overallTotal,
701
- overallTotal,
702
- overallPercentage: 100,
703
- },
704
- });
705
- }
706
- }
@@ -1,5 +1,4 @@
1
1
  import type { ModelProgressUpdate } from "../../../../schemas/index";
2
- import type { DownloadMetricsHooks } from "./types";
3
2
  export declare function deleteCorestoreDirectory(corestoreDir: string): Promise<void>;
4
- export declare function downloadModelFromHyperdrive(hyperdriveKey: string, modelFileName: string, seed?: boolean, progressCallback?: (progress: ModelProgressUpdate) => void, hooks?: DownloadMetricsHooks, expectedChecksum?: string): Promise<string>;
3
+ export declare function downloadModelFromHyperdrive(hyperdriveKey: string, modelFileName: string, seed?: boolean, progressCallback?: (progress: ModelProgressUpdate) => void, expectedChecksum?: string): Promise<string>;
5
4
  //# sourceMappingURL=hyperdrive.d.ts.map