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