@qvac/sdk 0.9.2 → 0.10.1

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 (343) hide show
  1. package/NOTICE +42 -95
  2. package/dist/client/api/cancel.d.ts +1 -1
  3. package/dist/client/api/cancel.js +1 -1
  4. package/dist/client/api/completion-stream.d.ts +51 -12
  5. package/dist/client/api/completion-stream.js +129 -56
  6. package/dist/client/api/delete-cache.d.ts +1 -0
  7. package/dist/client/api/delete-cache.js +1 -0
  8. package/dist/client/api/diffusion.d.ts +17 -2
  9. package/dist/client/api/diffusion.js +21 -4
  10. package/dist/client/api/embed.d.ts +4 -0
  11. package/dist/client/api/finetune.d.ts +21 -0
  12. package/dist/client/api/get-loaded-model-info.d.ts +25 -0
  13. package/dist/client/api/get-loaded-model-info.js +36 -0
  14. package/dist/client/api/get-model-info.d.ts +9 -1
  15. package/dist/client/api/get-model-info.js +8 -0
  16. package/dist/client/api/heartbeat.d.ts +2 -2
  17. package/dist/client/api/heartbeat.js +2 -2
  18. package/dist/client/api/index.d.ts +3 -1
  19. package/dist/client/api/index.js +3 -1
  20. package/dist/client/api/invoke-plugin.d.ts +16 -0
  21. package/dist/client/api/invoke-plugin.js +16 -0
  22. package/dist/client/api/load-model.d.ts +36 -3
  23. package/dist/client/api/load-model.js +31 -10
  24. package/dist/client/api/provide.d.ts +11 -5
  25. package/dist/client/api/provide.js +11 -6
  26. package/dist/client/api/rag.d.ts +9 -0
  27. package/dist/client/api/rag.js +9 -0
  28. package/dist/client/api/registry.d.ts +26 -0
  29. package/dist/client/api/registry.js +26 -0
  30. package/dist/client/api/resume.d.ts +20 -4
  31. package/dist/client/api/resume.js +20 -4
  32. package/dist/client/api/state.d.ts +23 -0
  33. package/dist/client/api/state.js +29 -0
  34. package/dist/client/api/stop-provider.d.ts +11 -5
  35. package/dist/client/api/stop-provider.js +11 -5
  36. package/dist/client/api/suspend.d.ts +21 -3
  37. package/dist/client/api/suspend.js +21 -3
  38. package/dist/client/api/text-to-speech.d.ts +64 -6
  39. package/dist/client/api/text-to-speech.js +423 -47
  40. package/dist/client/api/transcribe.d.ts +29 -4
  41. package/dist/client/api/transcribe.js +86 -28
  42. package/dist/client/api/translate.d.ts +1 -0
  43. package/dist/client/api/translate.js +1 -0
  44. package/dist/client/rpc/bare-client.js +22 -1
  45. package/dist/client/rpc/expo-rpc-client.d.ts +1 -1
  46. package/dist/client/rpc/expo-rpc-client.js +96 -4
  47. package/dist/client/rpc/node-rpc-client.js +36 -0
  48. package/dist/examples/audio/mic-input.d.ts +9 -0
  49. package/dist/examples/audio/mic-input.js +111 -0
  50. package/dist/examples/completion-events.d.ts +18 -0
  51. package/dist/examples/completion-events.js +79 -0
  52. package/dist/examples/delegated-inference/composite.js +12 -18
  53. package/dist/examples/delegated-inference/consumer-profiled.js +4 -11
  54. package/dist/examples/delegated-inference/consumer.js +8 -13
  55. package/dist/examples/delegated-inference/provider.js +11 -16
  56. package/dist/examples/diffusion-flux2-klein-img2img.d.ts +2 -0
  57. package/dist/examples/diffusion-flux2-klein-img2img.js +60 -0
  58. package/dist/examples/diffusion-flux2-klein.js +1 -0
  59. package/dist/examples/diffusion-img2img.d.ts +2 -0
  60. package/dist/examples/diffusion-img2img.js +49 -0
  61. package/dist/examples/diffusion-txt2img.js +2 -1
  62. package/dist/examples/kv-cache-example.js +11 -12
  63. package/dist/examples/llamacpp-cache.d.ts +2 -0
  64. package/dist/examples/llamacpp-cache.js +107 -0
  65. package/dist/examples/llamacpp-dynamic-tools.d.ts +2 -0
  66. package/dist/examples/llamacpp-dynamic-tools.js +144 -0
  67. package/dist/examples/llamacpp-structured-output.d.ts +2 -0
  68. package/dist/examples/llamacpp-structured-output.js +106 -0
  69. package/dist/examples/plugins.js +4 -4
  70. package/dist/examples/suspend-resume.js +21 -4
  71. package/dist/examples/{llamacpp-native-tools.js → tools/llamacpp-native-tools.js} +6 -55
  72. package/dist/examples/tools/llamacpp-tools-harmony-multiturn.d.ts +2 -0
  73. package/dist/examples/tools/llamacpp-tools-harmony-multiturn.js +81 -0
  74. package/dist/examples/tools/llamacpp-tools-pythonic.d.ts +2 -0
  75. package/dist/examples/tools/llamacpp-tools-pythonic.js +50 -0
  76. package/dist/examples/tools/shared.d.ts +21 -0
  77. package/dist/examples/tools/shared.js +42 -0
  78. package/dist/examples/transcription/parakeet-microphone-record.js +6 -33
  79. package/dist/examples/transcription/whispercpp-filesystem-streaming.js +7 -5
  80. package/dist/examples/transcription/whispercpp-filesystem.js +12 -3
  81. package/dist/examples/transcription/whispercpp-microphone-record.js +6 -29
  82. package/dist/examples/translation/translation-stream.js +5 -5
  83. package/dist/examples/tts/llm-to-tts-streaming.d.ts +16 -0
  84. package/dist/examples/tts/llm-to-tts-streaming.js +143 -0
  85. package/dist/examples/tts/supertonic-multilingual.js +3 -3
  86. package/dist/examples/tts/supertonic.js +3 -3
  87. package/dist/examples/tts/utils.d.ts +11 -1
  88. package/dist/examples/tts/utils.js +70 -17
  89. package/dist/examples/voice-assistant/voice-assistant.d.ts +2 -0
  90. package/dist/examples/voice-assistant/voice-assistant.js +207 -0
  91. package/dist/expo/plugins/withMobileBundle.js +1 -1
  92. package/dist/index.d.ts +2 -2
  93. package/dist/index.js +2 -2
  94. package/dist/logging/logger.d.ts +11 -0
  95. package/dist/logging/logger.js +11 -0
  96. package/dist/logging/types.d.ts +18 -0
  97. package/dist/models/registry/models.d.ts +6973 -7457
  98. package/dist/models/registry/models.js +6889 -6855
  99. package/dist/models/update-models/codegen.js +84 -23
  100. package/dist/models/update-models/companions.d.ts +18 -0
  101. package/dist/models/update-models/companions.js +175 -0
  102. package/dist/models/update-models/naming.js +0 -25
  103. package/dist/models/update-models/registry.d.ts +1 -0
  104. package/dist/models/update-models/registry.js +23 -3
  105. package/dist/models/update-models/types.d.ts +37 -9
  106. package/dist/profiling/index.d.ts +49 -0
  107. package/dist/profiling/index.js +49 -0
  108. package/dist/schemas/cancel.d.ts +6 -2
  109. package/dist/schemas/cancel.js +14 -7
  110. package/dist/schemas/common.d.ts +354 -271
  111. package/dist/schemas/common.js +26 -5
  112. package/dist/schemas/completion-event.d.ts +225 -0
  113. package/dist/schemas/completion-event.js +79 -0
  114. package/dist/schemas/completion-stream.d.ts +126 -31
  115. package/dist/schemas/completion-stream.js +138 -36
  116. package/dist/schemas/delegate.d.ts +0 -2
  117. package/dist/schemas/delegate.js +25 -6
  118. package/dist/schemas/download-asset.d.ts +5 -5
  119. package/dist/schemas/embed.js +21 -9
  120. package/dist/schemas/engine-addon-map.d.ts +11 -1
  121. package/dist/schemas/engine-addon-map.js +2 -2
  122. package/dist/schemas/get-loaded-model-info.d.ts +52 -0
  123. package/dist/schemas/get-loaded-model-info.js +44 -0
  124. package/dist/schemas/get-model-info.d.ts +2 -2
  125. package/dist/schemas/get-model-info.js +103 -32
  126. package/dist/schemas/heartbeat.d.ts +0 -1
  127. package/dist/schemas/index.d.ts +4 -1
  128. package/dist/schemas/index.js +4 -1
  129. package/dist/schemas/llamacpp-config.d.ts +14 -4
  130. package/dist/schemas/llamacpp-config.js +5 -0
  131. package/dist/schemas/load-model.d.ts +3233 -1260
  132. package/dist/schemas/load-model.js +23 -16
  133. package/dist/schemas/model-src-utils.d.ts +7 -6
  134. package/dist/schemas/model-src-utils.js +27 -1
  135. package/dist/schemas/model-types.d.ts +4 -4
  136. package/dist/schemas/ocr.d.ts +1 -1
  137. package/dist/schemas/plugin.d.ts +27 -3
  138. package/dist/schemas/plugin.js +27 -2
  139. package/dist/schemas/profiling.js +11 -3
  140. package/dist/schemas/provide.d.ts +1 -3
  141. package/dist/schemas/provide.js +0 -3
  142. package/dist/schemas/rag.d.ts +4 -4
  143. package/dist/schemas/registry.d.ts +10 -10
  144. package/dist/schemas/registry.js +36 -14
  145. package/dist/schemas/reload-config.d.ts +73 -7
  146. package/dist/schemas/sdcpp-config.d.ts +16 -8
  147. package/dist/schemas/sdcpp-config.js +118 -25
  148. package/dist/schemas/sdk-config.d.ts +116 -90
  149. package/dist/schemas/sdk-config.js +16 -0
  150. package/dist/schemas/sdk-errors-client.d.ts +3 -0
  151. package/dist/schemas/sdk-errors-client.js +16 -1
  152. package/dist/schemas/sdk-errors-server.d.ts +3 -0
  153. package/dist/schemas/sdk-errors-server.js +23 -0
  154. package/dist/schemas/state.d.ts +23 -0
  155. package/dist/schemas/state.js +14 -0
  156. package/dist/schemas/stop-provide.d.ts +0 -5
  157. package/dist/schemas/stop-provide.js +2 -6
  158. package/dist/schemas/text-to-speech.d.ts +93 -27
  159. package/dist/schemas/text-to-speech.js +27 -0
  160. package/dist/schemas/tools.d.ts +16 -0
  161. package/dist/schemas/tools.js +15 -0
  162. package/dist/schemas/transcription-config.d.ts +8 -8
  163. package/dist/schemas/transcription.d.ts +33 -0
  164. package/dist/schemas/transcription.js +9 -0
  165. package/dist/schemas/translate.js +59 -19
  166. package/dist/schemas/translation-config.d.ts +157 -133
  167. package/dist/schemas/translation-config.js +34 -11
  168. package/dist/server/bare/delegate-rpc-client.d.ts +1 -1
  169. package/dist/server/bare/delegate-rpc-client.js +131 -122
  170. package/dist/server/bare/hyperswarm.d.ts +2 -2
  171. package/dist/server/bare/hyperswarm.js +12 -7
  172. package/dist/server/bare/ops/cancel.js +7 -0
  173. package/dist/server/bare/ops/kv-cache-utils.d.ts +7 -10
  174. package/dist/server/bare/ops/kv-cache-utils.js +31 -40
  175. package/dist/server/bare/ops/load-model.js +0 -1
  176. package/dist/server/bare/ops/transcribe.d.ts +11 -4
  177. package/dist/server/bare/ops/transcribe.js +25 -4
  178. package/dist/server/bare/ops/translate.js +42 -4
  179. package/dist/server/bare/ops/unload-model.js +21 -19
  180. package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.js +1 -2
  181. package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stream.d.ts +13 -8
  182. package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stream.js +257 -85
  183. package/dist/server/bare/plugins/llamacpp-completion/ops/kv-cache-state.d.ts +101 -0
  184. package/dist/server/bare/plugins/llamacpp-completion/ops/kv-cache-state.js +135 -0
  185. package/dist/server/bare/plugins/llamacpp-completion/plugin.d.ts +80 -22
  186. package/dist/server/bare/plugins/llamacpp-completion/plugin.js +57 -32
  187. package/dist/server/bare/plugins/llamacpp-embedding/plugin.js +10 -16
  188. package/dist/server/bare/plugins/nmtcpp-translation/plugin.d.ts +69 -44
  189. package/dist/server/bare/plugins/nmtcpp-translation/plugin.js +54 -116
  190. package/dist/server/bare/plugins/nmtcpp-translation/resolve-vocab.d.ts +32 -0
  191. package/dist/server/bare/plugins/nmtcpp-translation/resolve-vocab.js +117 -0
  192. package/dist/server/bare/plugins/onnx-ocr/plugin.d.ts +1 -1
  193. package/dist/server/bare/plugins/onnx-ocr/plugin.js +1 -2
  194. package/dist/server/bare/plugins/onnx-tts/ops/text-to-speech-stream.d.ts +7 -0
  195. package/dist/server/bare/plugins/onnx-tts/ops/text-to-speech-stream.js +116 -0
  196. package/dist/server/bare/plugins/onnx-tts/ops/text-to-speech.d.ts +2 -3
  197. package/dist/server/bare/plugins/onnx-tts/ops/text-to-speech.js +71 -9
  198. package/dist/server/bare/plugins/onnx-tts/plugin.d.ts +41 -13
  199. package/dist/server/bare/plugins/onnx-tts/plugin.js +48 -3
  200. package/dist/server/bare/plugins/parakeet-transcription/plugin.d.ts +15 -7
  201. package/dist/server/bare/plugins/parakeet-transcription/plugin.js +5 -6
  202. package/dist/server/bare/plugins/sdcpp-generation/ops/diffusion.js +6 -0
  203. package/dist/server/bare/plugins/sdcpp-generation/plugin.d.ts +8 -5
  204. package/dist/server/bare/plugins/sdcpp-generation/plugin.js +13 -13
  205. package/dist/server/bare/plugins/whispercpp-transcription/plugin.d.ts +17 -1
  206. package/dist/server/bare/plugins/whispercpp-transcription/plugin.js +40 -17
  207. package/dist/server/bare/registry/config-registry.js +14 -3
  208. package/dist/server/bare/registry/model-registry.d.ts +8 -10
  209. package/dist/server/bare/registry/model-registry.js +17 -12
  210. package/dist/server/bare/registry/registry-client.js +79 -19
  211. package/dist/server/bare/runtime-lifecycle.d.ts +2 -1
  212. package/dist/server/bare/runtime-lifecycle.js +13 -2
  213. package/dist/server/bare/types/addon-responses.d.ts +8 -3
  214. package/dist/server/bare/utils/transcribe-metadata.d.ts +21 -0
  215. package/dist/server/bare/utils/transcribe-metadata.js +28 -0
  216. package/dist/server/bare/utils/tts-stats.d.ts +22 -0
  217. package/dist/server/bare/utils/tts-stats.js +10 -0
  218. package/dist/server/rpc/create-server.d.ts +4 -1
  219. package/dist/server/rpc/create-server.js +5 -1
  220. package/dist/server/rpc/delegate-transport.js +36 -29
  221. package/dist/server/rpc/handle-request.js +28 -3
  222. package/dist/server/rpc/handler-registry.js +7 -1
  223. package/dist/server/rpc/handler-utils.d.ts +5 -0
  224. package/dist/server/rpc/handler-utils.js +22 -0
  225. package/dist/server/rpc/handlers/cancel-delegated.js +3 -5
  226. package/dist/server/rpc/handlers/cancelHandler.js +4 -5
  227. package/dist/server/rpc/handlers/completion-stream-delegated.js +14 -5
  228. package/dist/server/rpc/handlers/delete-cache.js +8 -3
  229. package/dist/server/rpc/handlers/download-asset.js +3 -24
  230. package/dist/server/rpc/handlers/get-loaded-model-info.d.ts +3 -0
  231. package/dist/server/rpc/handlers/get-loaded-model-info.js +39 -0
  232. package/dist/server/rpc/handlers/get-model-info.js +93 -84
  233. package/dist/server/rpc/handlers/heartbeat-delegated.js +2 -2
  234. package/dist/server/rpc/handlers/index.d.ts +6 -0
  235. package/dist/server/rpc/handlers/index.js +6 -0
  236. package/dist/server/rpc/handlers/load-model/download-manager.d.ts +35 -9
  237. package/dist/server/rpc/handlers/load-model/download-manager.js +142 -38
  238. package/dist/server/rpc/handlers/load-model/download-stats.d.ts +5 -4
  239. package/dist/server/rpc/handlers/load-model/download-stats.js +49 -8
  240. package/dist/server/rpc/handlers/load-model/handler.js +31 -50
  241. package/dist/server/rpc/handlers/load-model/http.d.ts +2 -2
  242. package/dist/server/rpc/handlers/load-model/http.js +97 -142
  243. package/dist/server/rpc/handlers/load-model/hyperdrive.d.ts +2 -2
  244. package/dist/server/rpc/handlers/load-model/hyperdrive.js +55 -74
  245. package/dist/server/rpc/handlers/load-model/index.d.ts +0 -1
  246. package/dist/server/rpc/handlers/load-model/index.js +0 -1
  247. package/dist/server/rpc/handlers/load-model/registry-client-options.d.ts +27 -0
  248. package/dist/server/rpc/handlers/load-model/registry-client-options.js +19 -0
  249. package/dist/server/rpc/handlers/load-model/registry-companion-set.d.ts +22 -0
  250. package/dist/server/rpc/handlers/load-model/registry-companion-set.js +208 -0
  251. package/dist/server/rpc/handlers/load-model/registry-download-utils.d.ts +24 -0
  252. package/dist/server/rpc/handlers/load-model/registry-download-utils.js +114 -0
  253. package/dist/server/rpc/handlers/load-model/registry.d.ts +2 -20
  254. package/dist/server/rpc/handlers/load-model/registry.js +109 -381
  255. package/dist/server/rpc/handlers/load-model/resolve-session.d.ts +15 -0
  256. package/dist/server/rpc/handlers/load-model/resolve-session.js +61 -0
  257. package/dist/server/rpc/handlers/load-model/resolve.d.ts +3 -3
  258. package/dist/server/rpc/handlers/load-model/resolve.js +14 -23
  259. package/dist/server/rpc/handlers/load-model/types.d.ts +11 -4
  260. package/dist/server/rpc/handlers/load-model/types.js +28 -1
  261. package/dist/server/rpc/handlers/load-model-delegated.js +2 -4
  262. package/dist/server/rpc/handlers/plugin-dispatch.js +9 -5
  263. package/dist/server/rpc/handlers/plugin-invoke.js +1 -1
  264. package/dist/server/rpc/handlers/provideHandler/connection.js +13 -2
  265. package/dist/server/rpc/handlers/provideHandler/handler.js +42 -29
  266. package/dist/server/rpc/handlers/state.d.ts +3 -0
  267. package/dist/server/rpc/handlers/state.js +7 -0
  268. package/dist/server/rpc/handlers/stopProvideHandler.d.ts +2 -2
  269. package/dist/server/rpc/handlers/stopProvideHandler.js +12 -7
  270. package/dist/server/rpc/handlers/text-to-speech-stream.d.ts +3 -0
  271. package/dist/server/rpc/handlers/text-to-speech-stream.js +4 -0
  272. package/dist/server/rpc/handlers/unload-model-delegated.js +3 -3
  273. package/dist/server/rpc/profiling/operation-metrics.js +20 -0
  274. package/dist/server/rpc/rpc-utils.js +1 -1
  275. package/dist/server/rpc/transport-selector.d.ts +3 -0
  276. package/dist/server/rpc/transport-selector.js +18 -0
  277. package/dist/server/utils/cache/auto-history.d.ts +4 -0
  278. package/dist/server/utils/cache/auto-history.js +22 -0
  279. package/dist/server/utils/{cache.d.ts → cache/paths.d.ts} +22 -5
  280. package/dist/server/utils/{cache.js → cache/paths.js} +36 -20
  281. package/dist/server/utils/cache/types.d.ts +8 -0
  282. package/dist/server/utils/cache/types.js +1 -0
  283. package/dist/server/utils/checksum.d.ts +2 -2
  284. package/dist/server/utils/checksum.js +1 -1
  285. package/dist/server/utils/clear-storage.d.ts +5 -0
  286. package/dist/server/utils/clear-storage.js +17 -0
  287. package/dist/server/utils/completion-normalizer.d.ts +17 -0
  288. package/dist/server/utils/completion-normalizer.js +413 -0
  289. package/dist/server/utils/expand-gguf-shards.d.ts +3 -0
  290. package/dist/server/utils/expand-gguf-shards.js +22 -0
  291. package/dist/server/utils/formatting.js +1 -1
  292. package/dist/server/utils/index.d.ts +4 -2
  293. package/dist/server/utils/index.js +4 -2
  294. package/dist/server/utils/qvac-paths.d.ts +2 -0
  295. package/dist/server/utils/qvac-paths.js +5 -0
  296. package/dist/server/utils/response-format.d.ts +3 -0
  297. package/dist/server/utils/response-format.js +20 -0
  298. package/dist/server/utils/tool-integration.d.ts +15 -4
  299. package/dist/server/utils/tool-integration.js +21 -41
  300. package/dist/server/utils/tools/dialect.d.ts +8 -0
  301. package/dist/server/utils/tools/dialect.js +14 -0
  302. package/dist/server/utils/tools/index.d.ts +3 -0
  303. package/dist/server/utils/tools/index.js +2 -0
  304. package/dist/server/utils/tools/parser.d.ts +6 -0
  305. package/dist/server/utils/tools/parser.js +46 -0
  306. package/dist/server/utils/tools/parsers/harmony.d.ts +4 -0
  307. package/dist/server/utils/tools/parsers/harmony.js +59 -0
  308. package/dist/server/utils/tools/parsers/hermes.d.ts +4 -0
  309. package/dist/server/utils/tools/parsers/hermes.js +100 -0
  310. package/dist/server/utils/tools/parsers/json.d.ts +6 -0
  311. package/dist/server/utils/tools/parsers/json.js +115 -0
  312. package/dist/server/utils/tools/parsers/pythonic.d.ts +4 -0
  313. package/dist/server/utils/tools/parsers/pythonic.js +267 -0
  314. package/dist/server/utils/tools/shared.d.ts +18 -0
  315. package/dist/server/utils/tools/shared.js +54 -0
  316. package/dist/server/utils/worker-lock.d.ts +3 -0
  317. package/dist/server/utils/worker-lock.js +67 -0
  318. package/dist/server/worker-core.d.ts +16 -1
  319. package/dist/server/worker-core.js +114 -14
  320. package/dist/utils/aggregate-events.d.ts +16 -0
  321. package/dist/utils/aggregate-events.js +52 -0
  322. package/dist/utils/cache-normalize.d.ts +10 -0
  323. package/dist/utils/cache-normalize.js +23 -0
  324. package/dist/utils/encoding.d.ts +8 -0
  325. package/dist/utils/encoding.js +13 -0
  326. package/dist/utils/errors-client.d.ts +12 -0
  327. package/dist/utils/errors-client.js +20 -0
  328. package/dist/utils/errors-server.d.ts +14 -0
  329. package/dist/utils/errors-server.js +31 -0
  330. package/dist/utils/load-model-validation.d.ts +7 -0
  331. package/dist/utils/load-model-validation.js +18 -0
  332. package/expo/plugins/patches/android-link.mjs +1 -1
  333. package/expo/plugins/patches/ios-link.mjs +1 -1
  334. package/package.json +14 -18
  335. package/dist/examples/translation/translation-opus.d.ts +0 -2
  336. package/dist/examples/translation/translation-opus.js +0 -33
  337. package/dist/server/bare/utils/loader-adapter.d.ts +0 -7
  338. package/dist/server/bare/utils/loader-adapter.js +0 -9
  339. package/dist/server/utils/model-path.d.ts +0 -5
  340. package/dist/server/utils/model-path.js +0 -7
  341. package/dist/server/utils/tool-parser.d.ts +0 -7
  342. package/dist/server/utils/tool-parser.js +0 -248
  343. /package/dist/examples/{llamacpp-native-tools.d.ts → tools/llamacpp-native-tools.d.ts} +0 -0
@@ -8,14 +8,13 @@ export async function* handleCompletionStreamDelegated(request, options) {
8
8
  const { profilingMeta } = options ?? {};
9
9
  // Get delegation info from model registry
10
10
  const entry = getModelEntry(request.modelId);
11
- if (!entry?.isDelegated || !entry.delegated) {
11
+ if (!entry?.isDelegated) {
12
12
  throw new ModelIsDelegatedError(request.modelId);
13
13
  }
14
- const { topic, providerPublicKey, timeout, healthCheckTimeout } = entry.delegated;
14
+ const { providerPublicKey, timeout, healthCheckTimeout } = entry.delegated;
15
15
  try {
16
16
  logger.debug(`📤 Sending delegated completionStream request to provider: ${providerPublicKey}${timeout ? `, timeout: ${timeout}ms` : ""}`);
17
- // Create RPC instance for this HyperSwarm peer
18
- const rpc = await getRPC(topic, providerPublicKey, { timeout, healthCheckTimeout });
17
+ const rpc = await getRPC(providerPublicKey, { timeout, healthCheckTimeout });
19
18
  // Build delegate options with profiling metadata
20
19
  const delegateOpts = { peerKey: providerPublicKey };
21
20
  if (profilingMeta) {
@@ -33,10 +32,20 @@ export async function* handleCompletionStreamDelegated(request, options) {
33
32
  }
34
33
  catch (error) {
35
34
  logger.error("Error in delegated completion stream:", error);
35
+ const message = error instanceof Error ? error.message : String(error);
36
36
  yield {
37
37
  type: "completionStream",
38
- token: `Error communicating with provider: ${error instanceof Error ? error.message : String(error)}`,
39
38
  done: true,
39
+ events: [
40
+ {
41
+ type: "completionDone",
42
+ seq: 0,
43
+ stopReason: "error",
44
+ error: {
45
+ message: `Error communicating with provider: ${message}`,
46
+ },
47
+ },
48
+ ],
40
49
  };
41
50
  }
42
51
  }
@@ -1,4 +1,4 @@
1
- import { deleteCache as deleteCacheUtil } from "../../bare/ops/kv-cache-utils.js";
1
+ import { clearCacheRegistry, deleteCache as deleteCacheUtil, } from "../../bare/ops/kv-cache-utils.js";
2
2
  import { clearCachedMessageCounts } from "../../bare/plugins/llamacpp-completion/ops/completion-stream.js";
3
3
  import { getServerLogger } from "../../../logging/index.js";
4
4
  const logger = getServerLogger();
@@ -7,6 +7,7 @@ export async function handleDeleteCache(request) {
7
7
  if ("all" in request && request.all) {
8
8
  await deleteCacheUtil({ all: true });
9
9
  clearCachedMessageCounts();
10
+ clearCacheRegistry();
10
11
  }
11
12
  else if ("kvCacheKey" in request) {
12
13
  const params = {
@@ -15,8 +16,12 @@ export async function handleDeleteCache(request) {
15
16
  if (request.modelId !== undefined) {
16
17
  params.modelId = request.modelId;
17
18
  }
18
- await deleteCacheUtil(params);
19
- clearCachedMessageCounts();
19
+ const removedPath = await deleteCacheUtil(params);
20
+ clearCachedMessageCounts(removedPath);
21
+ clearCacheRegistry({
22
+ cacheKey: request.kvCacheKey,
23
+ modelId: request.modelId,
24
+ });
20
25
  }
21
26
  return {
22
27
  type: "deleteCache",
@@ -1,5 +1,6 @@
1
1
  import { PROFILING_KEY, OPERATION_EVENT_KEY, } from "../../../schemas/index.js";
2
2
  import { resolveModelPath, resolveModelPathWithStats, } from "./load-model/resolve.js";
3
+ import { buildDownloadProfilingFields } from "./load-model/types.js";
3
4
  import { nowMs, generateProfileId } from "../../../profiling/clock.js";
4
5
  import { getServerLogger } from "../../../logging/index.js";
5
6
  const logger = getServerLogger();
@@ -27,30 +28,8 @@ export async function handleDownloadAsset(request, progressCallback) {
27
28
  if (profilingEnabled) {
28
29
  const totalDownloadTimeMs = nowMs() - totalDownloadStart;
29
30
  const profileId = profilingMeta?.id ?? generateProfileId();
30
- const gauges = {
31
- totalDownloadTime: totalDownloadTimeMs,
32
- };
33
- if (downloadStats) {
34
- if (downloadStats.downloadTimeMs !== undefined) {
35
- gauges["downloadTime"] = downloadStats.downloadTimeMs;
36
- }
37
- if (downloadStats.totalBytesDownloaded !== undefined) {
38
- gauges["totalBytesDownloaded"] = downloadStats.totalBytesDownloaded;
39
- }
40
- if (downloadStats.downloadSpeedBps !== undefined) {
41
- gauges["downloadSpeedBps"] = downloadStats.downloadSpeedBps;
42
- }
43
- if (downloadStats.checksumValidationTimeMs !== undefined) {
44
- gauges["checksumValidationTime"] = downloadStats.checksumValidationTimeMs;
45
- }
46
- }
47
- const tags = {};
48
- if (sourceType) {
49
- tags["sourceType"] = sourceType;
50
- }
51
- if (downloadStats?.cacheHit !== undefined) {
52
- tags["cacheHit"] = downloadStats.cacheHit ? "true" : "false";
53
- }
31
+ const { gauges, tags } = buildDownloadProfilingFields(downloadStats, sourceType);
32
+ gauges["totalDownloadTime"] = totalDownloadTimeMs;
54
33
  const operationEvent = {
55
34
  op: "downloadAsset",
56
35
  kind: "handler",
@@ -0,0 +1,3 @@
1
+ import type { GetLoadedModelInfoRequest, GetLoadedModelInfoResponse } from "../../../schemas/index";
2
+ export declare function handleGetLoadedModelInfo(request: GetLoadedModelInfoRequest): GetLoadedModelInfoResponse;
3
+ //# sourceMappingURL=get-loaded-model-info.d.ts.map
@@ -0,0 +1,39 @@
1
+ import { getModelEntry } from "../../bare/registry/model-registry.js";
2
+ import { getPlugin } from "../../plugins/registry.js";
3
+ import { ModelNotFoundError } from "../../../utils/errors-server.js";
4
+ import { getServerLogger } from "../../../logging/index.js";
5
+ const logger = getServerLogger();
6
+ export function handleGetLoadedModelInfo(request) {
7
+ const { modelId } = request;
8
+ const entry = getModelEntry(modelId);
9
+ if (!entry) {
10
+ throw new ModelNotFoundError(modelId);
11
+ }
12
+ if (entry.isDelegated) {
13
+ const info = {
14
+ modelId: entry.id,
15
+ isDelegated: true,
16
+ handlers: [],
17
+ providerInfo: {
18
+ providerPublicKey: entry.delegated.providerPublicKey,
19
+ },
20
+ };
21
+ return { type: "getLoadedModelInfo", info };
22
+ }
23
+ const plugin = getPlugin(entry.local.modelType);
24
+ if (!plugin) {
25
+ logger.warn(`getLoadedModelInfo: no plugin registered for modelType "${entry.local.modelType}" on loaded model "${modelId}"`);
26
+ }
27
+ const info = {
28
+ modelId: entry.id,
29
+ isDelegated: false,
30
+ modelType: entry.local.modelType,
31
+ handlers: plugin ? Object.keys(plugin.handlers) : [],
32
+ loadedAt: entry.local.loadedAt,
33
+ ...(plugin && { displayName: plugin.displayName }),
34
+ ...(plugin && { addonPackage: plugin.addonPackage }),
35
+ ...(entry.local.name && { name: entry.local.name }),
36
+ ...(entry.local.path && { path: entry.local.path }),
37
+ };
38
+ return { type: "getLoadedModelInfo", info };
39
+ }
@@ -1,10 +1,9 @@
1
1
  import { models } from "../../../models/registry/models.js";
2
2
  import { getAllModelIds, getModelEntry, } from "../../bare/registry/model-registry.js";
3
- import { getConfiguredCacheDir } from "../../bare/registry/config-registry.js";
4
3
  import { generateShortHash } from "../../utils/index.js";
5
4
  import { promises as fsPromises } from "bare-fs";
6
- import path from "bare-path";
7
- import { getShardPath } from "../../utils/cache.js";
5
+ import { getShardPath, getModelsCacheDir, getSingleFileCachePath, } from "../../utils/cache/paths.js";
6
+ import { validateAndJoinPath } from "../../utils/path-security.js";
8
7
  import { ModelNotFoundError } from "../../../utils/errors-server.js";
9
8
  export async function handleGetModelInfo(request) {
10
9
  const { name } = request;
@@ -15,16 +14,19 @@ export async function handleGetModelInfo(request) {
15
14
  const cacheKey = generateShortHash(catalogEntry.registryPath);
16
15
  const cacheStatus = catalogEntry.shardMetadata && catalogEntry.shardMetadata.length > 0
17
16
  ? await handleShardedModel(cacheKey, catalogEntry.shardMetadata)
18
- : await handleSingleFileModel(catalogEntry.registryPath, catalogEntry.modelId, catalogEntry.expectedSize, catalogEntry.sha256Checksum);
19
- const { cacheFiles, isCached, actualSize, cachedAt } = cacheStatus;
17
+ : catalogEntry.companionSet
18
+ ? await handleCompanionSetModel(catalogEntry.companionSet, catalogEntry.registryPath)
19
+ : await handleSingleFileModel(catalogEntry.registryPath, catalogEntry.expectedSize, catalogEntry.sha256Checksum);
20
+ const { cacheFiles, isCached, actualSize, cachedAt, primaryPath } = cacheStatus;
20
21
  const loadedModelIds = getAllModelIds();
22
+ const matchPath = primaryPath ?? cacheFiles[0]?.path;
21
23
  const loadedInstances = [];
22
24
  for (const id of loadedModelIds) {
23
25
  const entry = getModelEntry(id);
24
- if (!entry?.local)
26
+ if (!entry || entry.isDelegated)
25
27
  continue;
26
28
  const matchesByName = entry.local.name && entry.local.name === name;
27
- const matchesByPath = cacheFiles.length > 0 && entry.local.path === cacheFiles[0]?.path;
29
+ const matchesByPath = !!matchPath && entry.local.path === matchPath;
28
30
  if (matchesByName || matchesByPath) {
29
31
  const instance = {
30
32
  registryId: id,
@@ -63,55 +65,100 @@ export async function handleGetModelInfo(request) {
63
65
  };
64
66
  }
65
67
  async function handleShardedModel(cacheKey, shardMetadata) {
68
+ const fileEntries = shardMetadata.map((s) => ({
69
+ filename: s.filename,
70
+ expectedSize: s.expectedSize,
71
+ sha256Checksum: s.sha256Checksum,
72
+ }));
73
+ const paths = shardMetadata.map((s) => getShardPath(cacheKey, s.filename));
74
+ return checkCacheStatus(fileEntries, paths);
75
+ }
76
+ async function handleCompanionSetModel(companionSet, primaryRegistryPath) {
77
+ const { setKey, primaryKey, files } = companionSet;
78
+ const baseCache = getModelsCacheDir();
79
+ const fileEntries = files.map((f) => ({
80
+ filename: f.targetName,
81
+ expectedSize: f.expectedSize,
82
+ sha256Checksum: f.sha256Checksum,
83
+ key: f.key,
84
+ }));
85
+ const canonicalPaths = files.map((f) => validateAndJoinPath(baseCache, "sets", setKey, f.targetName));
86
+ const canonicalResult = await checkCacheStatus(fileEntries, canonicalPaths, primaryKey);
87
+ if (canonicalResult.isCached)
88
+ return canonicalResult;
89
+ const isOnnxSet = files.some((f) => f.primary === true && f.targetName.endsWith(".onnx"));
90
+ if (isOnnxSet) {
91
+ const legacyCacheKey = generateShortHash(primaryRegistryPath);
92
+ const legacyPaths = files.map((f) => validateAndJoinPath(baseCache, "onnx", legacyCacheKey, f.targetName));
93
+ const legacyResult = await checkCacheStatus(fileEntries, legacyPaths, primaryKey);
94
+ if (legacyResult.isCached)
95
+ return legacyResult;
96
+ }
97
+ else {
98
+ // Legacy flat-cache compatibility for Bergamot-style companion sets.
99
+ // This is valid only for families whose runtime still works with explicit
100
+ // per-file absolute paths; it is not a generic rule for all companion sets.
101
+ const flatPaths = files.map((f) => getSingleFileCachePath(f.registryPath));
102
+ const flatResult = await checkCacheStatus(fileEntries, flatPaths, primaryKey);
103
+ if (flatResult.isCached)
104
+ return flatResult;
105
+ }
106
+ return canonicalResult;
107
+ }
108
+ async function checkCacheStatus(files, paths, primaryKey) {
66
109
  const cacheFiles = [];
67
- let allShardsCached = true;
110
+ let allCached = true;
68
111
  let totalActualSize = 0;
69
112
  let latestCachedAt;
70
- for (const shard of shardMetadata) {
71
- const shardPath = getShardPath(cacheKey, shard.filename);
72
- let shardIsCached = false;
73
- let shardActualSize;
74
- let shardCachedAt;
113
+ let primaryPath;
114
+ for (let i = 0; i < files.length; i++) {
115
+ const file = files[i];
116
+ const filePath = paths[i];
117
+ let fileCached = false;
118
+ let fileActualSize;
119
+ let fileCachedAt;
75
120
  try {
76
- const stats = await fsPromises.stat(shardPath);
77
- const fileExists = stats.isFile();
78
- if (fileExists) {
79
- shardActualSize = stats.size;
80
- shardCachedAt = stats.mtime;
81
- shardIsCached = stats.size === shard.expectedSize;
82
- if (shardIsCached) {
83
- totalActualSize += stats.size;
84
- if (!latestCachedAt || stats.mtime > latestCachedAt) {
85
- latestCachedAt = stats.mtime;
86
- }
87
- }
88
- else {
89
- allShardsCached = false;
90
- }
91
- }
92
- else {
93
- allShardsCached = false;
121
+ const stats = await fsPromises.stat(filePath);
122
+ if (stats.isFile()) {
123
+ fileActualSize = stats.size;
124
+ fileCachedAt = stats.mtime;
125
+ fileCached = stats.size === file.expectedSize;
94
126
  }
95
127
  }
96
128
  catch {
97
- shardIsCached = false;
98
- allShardsCached = false;
129
+ // file does not exist
130
+ }
131
+ if (primaryKey && file.key === primaryKey) {
132
+ primaryPath = filePath;
133
+ }
134
+ if (fileCached) {
135
+ totalActualSize += fileActualSize;
136
+ if (!latestCachedAt || fileCachedAt > latestCachedAt) {
137
+ latestCachedAt = fileCachedAt;
138
+ }
139
+ }
140
+ else {
141
+ allCached = false;
99
142
  }
100
143
  cacheFiles.push({
101
- filename: shard.filename,
102
- path: shardPath,
103
- expectedSize: shard.expectedSize,
104
- sha256Checksum: shard.sha256Checksum,
105
- isCached: shardIsCached,
106
- actualSize: shardActualSize,
107
- cachedAt: shardCachedAt,
144
+ filename: file.filename,
145
+ path: filePath,
146
+ expectedSize: file.expectedSize,
147
+ sha256Checksum: file.sha256Checksum,
148
+ isCached: fileCached,
149
+ actualSize: fileActualSize,
150
+ cachedAt: fileCachedAt,
108
151
  });
109
152
  }
153
+ if (!primaryPath && cacheFiles.length > 0) {
154
+ primaryPath = cacheFiles[0].path;
155
+ }
110
156
  const result = {
111
157
  cacheFiles,
112
- isCached: allShardsCached,
158
+ isCached: allCached,
159
+ primaryPath,
113
160
  };
114
- if (allShardsCached) {
161
+ if (allCached) {
115
162
  result.actualSize = totalActualSize;
116
163
  if (latestCachedAt) {
117
164
  result.cachedAt = latestCachedAt;
@@ -119,46 +166,8 @@ async function handleShardedModel(cacheKey, shardMetadata) {
119
166
  }
120
167
  return result;
121
168
  }
122
- async function handleSingleFileModel(registryPath, modelId, expectedSize, sha256Checksum) {
123
- const cacheDir = getConfiguredCacheDir();
124
- // Use registryPath for hash to match download logic in registry.ts
125
- const sourceHash = generateShortHash(registryPath);
126
- const filePath = path.join(cacheDir, `${sourceHash}_${modelId}`);
127
- let fileIsCached = false;
128
- let fileActualSize;
129
- let fileCachedAt;
130
- try {
131
- const stats = await fsPromises.stat(filePath);
132
- const fileExists = stats.isFile();
133
- if (fileExists) {
134
- fileActualSize = stats.size;
135
- fileCachedAt = stats.mtime;
136
- fileIsCached = stats.size === expectedSize;
137
- }
138
- }
139
- catch {
140
- fileIsCached = false;
141
- }
142
- const cacheFiles = [
143
- {
144
- filename: modelId,
145
- path: filePath,
146
- expectedSize,
147
- sha256Checksum,
148
- isCached: fileIsCached,
149
- actualSize: fileActualSize,
150
- cachedAt: fileCachedAt,
151
- },
152
- ];
153
- const result = {
154
- cacheFiles,
155
- isCached: fileIsCached,
156
- };
157
- if (fileActualSize !== undefined) {
158
- result.actualSize = fileActualSize;
159
- }
160
- if (fileCachedAt !== undefined) {
161
- result.cachedAt = fileCachedAt;
162
- }
163
- return result;
169
+ async function handleSingleFileModel(registryPath, expectedSize, sha256Checksum) {
170
+ const filename = registryPath.split("/").pop() || registryPath;
171
+ const filePath = getSingleFileCachePath(registryPath);
172
+ return checkCacheStatus([{ filename, expectedSize, sha256Checksum }], [filePath]);
164
173
  }
@@ -8,9 +8,9 @@ export async function handleHeartbeatDelegated(request, options) {
8
8
  if (!delegate) {
9
9
  throw new DelegateConnectionFailedError("Delegated heartbeat handler called without delegate info");
10
10
  }
11
- const { topic, providerPublicKey, timeout } = delegate;
11
+ const { providerPublicKey, timeout } = delegate;
12
12
  try {
13
- const rpc = await getRPC(topic, providerPublicKey, { timeout });
13
+ const rpc = await getRPC(providerPublicKey, { timeout });
14
14
  const delegateOpts = {
15
15
  peerKey: providerPublicKey,
16
16
  };
@@ -13,7 +13,9 @@ import { handleRag } from "./rag";
13
13
  import { cancelHandler } from "./cancelHandler";
14
14
  import { handleDeleteCache } from "./delete-cache";
15
15
  import { handleTextToSpeech } from "./text-to-speech";
16
+ import { handleTextToSpeechStream } from "./text-to-speech-stream";
16
17
  import { handleGetModelInfo } from "./get-model-info";
18
+ import { handleGetLoadedModelInfo } from "./get-loaded-model-info";
17
19
  import { handleFinetune } from "./finetune";
18
20
  import { handleOCRStream } from "./ocr-stream";
19
21
  import { handleHeartbeat } from "./heartbeat";
@@ -22,6 +24,7 @@ import { handlePluginInvoke, handlePluginInvokeStream } from "./plugin-invoke";
22
24
  import { handleModelRegistryList, handleModelRegistrySearch, handleModelRegistryGetModel } from "./registry";
23
25
  import { handleSuspend } from "./suspend";
24
26
  import { handleResume } from "./resume";
27
+ import { handleState } from "./state";
25
28
  export declare const handlers: {
26
29
  heartbeat: typeof handleHeartbeat;
27
30
  completionStream: typeof handleCompletionStream;
@@ -39,7 +42,9 @@ export declare const handlers: {
39
42
  rag: typeof handleRag;
40
43
  cancel: typeof cancelHandler;
41
44
  textToSpeech: typeof handleTextToSpeech;
45
+ textToSpeechStream: typeof handleTextToSpeechStream;
42
46
  getModelInfo: typeof handleGetModelInfo;
47
+ getLoadedModelInfo: typeof handleGetLoadedModelInfo;
43
48
  finetune: typeof handleFinetune;
44
49
  ocrStream: typeof handleOCRStream;
45
50
  diffusionStream: typeof handleDiffusionStream;
@@ -50,5 +55,6 @@ export declare const handlers: {
50
55
  modelRegistryGetModel: typeof handleModelRegistryGetModel;
51
56
  suspend: typeof handleSuspend;
52
57
  resume: typeof handleResume;
58
+ state: typeof handleState;
53
59
  };
54
60
  //# sourceMappingURL=index.d.ts.map
@@ -13,7 +13,9 @@ import { handleRag } from "./rag.js";
13
13
  import { cancelHandler } from "./cancelHandler.js";
14
14
  import { handleDeleteCache } from "./delete-cache.js";
15
15
  import { handleTextToSpeech } from "./text-to-speech.js";
16
+ import { handleTextToSpeechStream } from "./text-to-speech-stream.js";
16
17
  import { handleGetModelInfo } from "./get-model-info.js";
18
+ import { handleGetLoadedModelInfo } from "./get-loaded-model-info.js";
17
19
  import { handleFinetune } from "./finetune.js";
18
20
  import { handleOCRStream } from "./ocr-stream.js";
19
21
  import { handleHeartbeat } from "./heartbeat.js";
@@ -22,6 +24,7 @@ import { handlePluginInvoke, handlePluginInvokeStream } from "./plugin-invoke.js
22
24
  import { handleModelRegistryList, handleModelRegistrySearch, handleModelRegistryGetModel, } from "./registry.js";
23
25
  import { handleSuspend } from "./suspend.js";
24
26
  import { handleResume } from "./resume.js";
27
+ import { handleState } from "./state.js";
25
28
  export const handlers = {
26
29
  heartbeat: handleHeartbeat,
27
30
  completionStream: handleCompletionStream,
@@ -39,7 +42,9 @@ export const handlers = {
39
42
  rag: handleRag,
40
43
  cancel: cancelHandler,
41
44
  textToSpeech: handleTextToSpeech,
45
+ textToSpeechStream: handleTextToSpeechStream,
42
46
  getModelInfo: handleGetModelInfo,
47
+ getLoadedModelInfo: handleGetLoadedModelInfo,
43
48
  finetune: handleFinetune,
44
49
  ocrStream: handleOCRStream,
45
50
  diffusionStream: handleDiffusionStream,
@@ -50,4 +55,5 @@ export const handlers = {
50
55
  modelRegistryGetModel: handleModelRegistryGetModel,
51
56
  suspend: handleSuspend,
52
57
  resume: handleResume,
58
+ state: handleState,
53
59
  };
@@ -1,14 +1,40 @@
1
- import { type DownloadEntry } from "../../../../schemas/index";
2
- export declare function getActiveDownload(key: string): DownloadEntry | undefined;
3
- export declare function registerDownload(key: string, entry: DownloadEntry): void;
4
- export declare function unregisterDownload(key: string): void;
1
+ import type { ModelProgressUpdate } from "../../../../schemas/index";
2
+ import { AbortController } from "bare-abort-controller";
3
+ import type { DownloadHooks } from "./types";
4
+ export interface Subscriber {
5
+ id: string;
6
+ onProgress?: ((progress: ModelProgressUpdate) => void) | undefined;
7
+ settled: boolean;
8
+ resolve: (path: string) => void;
9
+ reject: (error: unknown) => void;
10
+ promise: Promise<string>;
11
+ }
12
+ export interface Transfer {
13
+ downloadKey: string;
14
+ abortController: AbortController;
15
+ subscribers: Map<string, Subscriber>;
16
+ lastProgress?: ModelProgressUpdate | undefined;
17
+ downloadPromise?: Promise<string> | undefined;
18
+ clearCache: boolean;
19
+ cacheHit?: boolean;
20
+ }
21
+ export interface DownloadContext {
22
+ broadcastProgress: (progress: ModelProgressUpdate) => void;
23
+ signal: AbortSignal;
24
+ shouldClearCache: () => boolean;
25
+ setCacheHit: (cacheHit: boolean) => void;
26
+ }
27
+ export interface StartOrJoinResult {
28
+ promise: Promise<string>;
29
+ joined: boolean;
30
+ getCacheHit: () => boolean | undefined;
31
+ }
32
+ export declare function startOrJoinDownload(downloadKey: string, startDownload: (ctx: DownloadContext) => Promise<string>, onProgress?: (progress: ModelProgressUpdate) => void): StartOrJoinResult;
33
+ export declare function cancelTransfer(downloadKey: string, clearCache?: boolean): void;
5
34
  export declare function createHyperdriveDownloadKey(hyperdriveKey: string, modelFileName: string): string;
6
35
  export declare function createHttpDownloadKey(url: string): string;
7
- export declare function createRegistryDownloadKey(registryPath: string): string;
8
- export declare function setClearCacheFlag(downloadKey: string, clearCache: boolean): void;
9
- export declare function shouldClearCache(downloadKey: string): boolean;
10
- export declare function clearClearCacheFlag(downloadKey: string): void;
11
- export declare function createCancelFunction(downloadKey: string, clearCache?: boolean): () => void;
36
+ export declare function createRegistryDownloadKey(registrySource: string, registryPath: string): string;
37
+ export declare function applyJoinedDownloadStats(result: StartOrJoinResult, hooks?: DownloadHooks): Promise<string>;
12
38
  export declare function cancelAllDownloads(): void;
13
39
  export declare function cleanupDownloads(): Promise<void>;
14
40
  //# sourceMappingURL=download-manager.d.ts.map