@atomic-chat/core 0.5.1 → 0.13.6

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 (1011) hide show
  1. package/README.md +22 -0
  2. package/dist/app-daemon.js +20 -67
  3. package/dist/app-daemon.js.map +1 -1
  4. package/dist/backend/advisor/advisor.d.ts +132 -0
  5. package/dist/backend/advisor/advisor.js +537 -0
  6. package/dist/backend/advisor/advisor.js.map +1 -0
  7. package/dist/backend/advisor/index.d.ts +6 -0
  8. package/dist/backend/advisor/index.js +7 -0
  9. package/dist/backend/advisor/index.js.map +1 -0
  10. package/dist/backend/advisor/policy.d.ts +81 -0
  11. package/dist/backend/advisor/policy.js +154 -0
  12. package/dist/backend/advisor/policy.js.map +1 -0
  13. package/dist/backend/catalog/archive.d.ts +21 -7
  14. package/dist/backend/catalog/archive.js +57 -17
  15. package/dist/backend/catalog/archive.js.map +1 -1
  16. package/dist/backend/catalog/bundled-manifest-baseline.js +42 -26
  17. package/dist/backend/catalog/bundled-manifest-baseline.js.map +1 -1
  18. package/dist/backend/catalog/cuda-family.d.ts +12 -2
  19. package/dist/backend/catalog/cuda-family.js +30 -7
  20. package/dist/backend/catalog/cuda-family.js.map +1 -1
  21. package/dist/backend/catalog/index.d.ts +5 -0
  22. package/dist/backend/catalog/index.js +5 -0
  23. package/dist/backend/catalog/index.js.map +1 -1
  24. package/dist/backend/catalog/manifest.d.ts +5 -3
  25. package/dist/backend/catalog/manifest.js +12 -9
  26. package/dist/backend/catalog/manifest.js.map +1 -1
  27. package/dist/backend/catalog/migrate.d.ts +8 -6
  28. package/dist/backend/catalog/migrate.js +26 -15
  29. package/dist/backend/catalog/migrate.js.map +1 -1
  30. package/dist/backend/catalog/prism-catalog.d.ts +42 -0
  31. package/dist/backend/catalog/prism-catalog.js +101 -0
  32. package/dist/backend/catalog/prism-catalog.js.map +1 -0
  33. package/dist/backend/catalog/prism-manifest-baseline.d.ts +2 -0
  34. package/dist/backend/catalog/prism-manifest-baseline.js +11 -0
  35. package/dist/backend/catalog/prism-manifest-baseline.js.map +1 -0
  36. package/dist/backend/catalog/prism-manifest-baseline.json +134 -0
  37. package/dist/backend/catalog/prism-manifest.d.ts +90 -0
  38. package/dist/backend/catalog/prism-manifest.js +171 -0
  39. package/dist/backend/catalog/prism-manifest.js.map +1 -0
  40. package/dist/backend/catalog/turboquant-catalog.d.ts +60 -0
  41. package/dist/backend/catalog/turboquant-catalog.js +162 -0
  42. package/dist/backend/catalog/turboquant-catalog.js.map +1 -0
  43. package/dist/backend/catalog/turboquant-index.d.ts +104 -0
  44. package/dist/backend/catalog/turboquant-index.js +260 -0
  45. package/dist/backend/catalog/turboquant-index.js.map +1 -0
  46. package/dist/backend/index.d.ts +1 -0
  47. package/dist/backend/index.js +1 -0
  48. package/dist/backend/index.js.map +1 -1
  49. package/dist/backend/install/runtime-backend.d.ts +6 -6
  50. package/dist/backend/install/runtime-backend.js +23 -20
  51. package/dist/backend/install/runtime-backend.js.map +1 -1
  52. package/dist/backend/install/service.d.ts +106 -5
  53. package/dist/backend/install/service.js +247 -21
  54. package/dist/backend/install/service.js.map +1 -1
  55. package/dist/backend/installed/bundled.d.ts +19 -0
  56. package/dist/backend/installed/bundled.js +45 -0
  57. package/dist/backend/installed/bundled.js.map +1 -0
  58. package/dist/backend/installed/index.d.ts +1 -0
  59. package/dist/backend/installed/index.js +1 -0
  60. package/dist/backend/installed/index.js.map +1 -1
  61. package/dist/backend/installed/installed.js +3 -0
  62. package/dist/backend/installed/installed.js.map +1 -1
  63. package/dist/backend/optimal/optimal-cache.d.ts +27 -8
  64. package/dist/backend/optimal/optimal-cache.js +38 -19
  65. package/dist/backend/optimal/optimal-cache.js.map +1 -1
  66. package/dist/backend/optimal/optimal-store.js +1 -1
  67. package/dist/backend/optimal/optimal-store.js.map +1 -1
  68. package/dist/backend/select/categories.d.ts +2 -1
  69. package/dist/backend/select/categories.js +8 -1
  70. package/dist/backend/select/categories.js.map +1 -1
  71. package/dist/backend/select/features.d.ts +13 -5
  72. package/dist/backend/select/features.js +36 -6
  73. package/dist/backend/select/features.js.map +1 -1
  74. package/dist/backend/select/index.d.ts +2 -0
  75. package/dist/backend/select/index.js +2 -0
  76. package/dist/backend/select/index.js.map +1 -1
  77. package/dist/backend/select/prism.d.ts +54 -0
  78. package/dist/backend/select/prism.js +212 -0
  79. package/dist/backend/select/prism.js.map +1 -0
  80. package/dist/backend/select/recovery.d.ts +4 -2
  81. package/dist/backend/select/recovery.js +17 -5
  82. package/dist/backend/select/recovery.js.map +1 -1
  83. package/dist/backend/select/tiers.d.ts +20 -11
  84. package/dist/backend/select/tiers.js +49 -11
  85. package/dist/backend/select/tiers.js.map +1 -1
  86. package/dist/backend/select/turboquant-tiers.d.ts +45 -0
  87. package/dist/backend/select/turboquant-tiers.js +114 -0
  88. package/dist/backend/select/turboquant-tiers.js.map +1 -0
  89. package/dist/backend/types.d.ts +6 -69
  90. package/dist/cli/commands/backends.d.ts +10 -0
  91. package/dist/cli/commands/backends.js +142 -0
  92. package/dist/cli/commands/backends.js.map +1 -0
  93. package/dist/cli/commands/hardware.d.ts +13 -0
  94. package/dist/cli/commands/hardware.js +71 -0
  95. package/dist/cli/commands/hardware.js.map +1 -0
  96. package/dist/cli/commands/host-step.d.ts +28 -0
  97. package/dist/cli/commands/host-step.js +67 -0
  98. package/dist/cli/commands/host-step.js.map +1 -0
  99. package/dist/cli/commands/index.d.ts +4 -1
  100. package/dist/cli/commands/index.js +4 -1
  101. package/dist/cli/commands/index.js.map +1 -1
  102. package/dist/cli/commands/serve.js +4 -4
  103. package/dist/cli/commands/serve.js.map +1 -1
  104. package/dist/cli/commands/shared.d.ts +6 -1
  105. package/dist/cli/commands/shared.js +7 -0
  106. package/dist/cli/commands/shared.js.map +1 -1
  107. package/dist/cli/io.d.ts +11 -0
  108. package/dist/cli/io.js +28 -3
  109. package/dist/cli/io.js.map +1 -1
  110. package/dist/cli/launch.js +2 -2
  111. package/dist/cli/launch.js.map +1 -1
  112. package/dist/cli/main.d.ts +1 -1
  113. package/dist/cli/main.js +11 -1
  114. package/dist/cli/main.js.map +1 -1
  115. package/dist/client/control-client.d.ts +128 -7
  116. package/dist/client/control-client.js +211 -12
  117. package/dist/client/control-client.js.map +1 -1
  118. package/dist/cloud/registry.js +9 -1
  119. package/dist/cloud/registry.js.map +1 -1
  120. package/dist/config/paths.d.ts +137 -0
  121. package/dist/config/paths.js +163 -0
  122. package/dist/config/paths.js.map +1 -1
  123. package/dist/contracts/backend-advisor.d.ts +225 -0
  124. package/dist/contracts/backend-advisor.js +14 -0
  125. package/dist/contracts/backend-advisor.js.map +1 -0
  126. package/dist/contracts/control-api.d.ts +7 -1
  127. package/dist/contracts/control-api.js +7 -1
  128. package/dist/contracts/control-api.js.map +1 -1
  129. package/dist/contracts/decision.d.ts +394 -0
  130. package/dist/contracts/decision.js +69 -0
  131. package/dist/contracts/decision.js.map +1 -0
  132. package/dist/contracts/diffusion.d.ts +62 -9
  133. package/dist/contracts/embedding.d.ts +103 -0
  134. package/dist/contracts/embedding.js +24 -0
  135. package/dist/contracts/embedding.js.map +1 -0
  136. package/dist/contracts/engine-builds.d.ts +108 -0
  137. package/dist/contracts/engine-builds.js +11 -0
  138. package/dist/contracts/engine-builds.js.map +1 -0
  139. package/dist/contracts/engines.d.ts +157 -0
  140. package/dist/contracts/engines.js +50 -0
  141. package/dist/contracts/engines.js.map +1 -0
  142. package/dist/contracts/environment.d.ts +774 -0
  143. package/dist/contracts/environment.js +116 -0
  144. package/dist/contracts/environment.js.map +1 -0
  145. package/dist/contracts/errors.d.ts +43 -2
  146. package/dist/contracts/errors.js +41 -0
  147. package/dist/contracts/errors.js.map +1 -1
  148. package/dist/contracts/events.d.ts +82 -4
  149. package/dist/contracts/hardware.d.ts +79 -6
  150. package/dist/contracts/hardware.js +9 -5
  151. package/dist/contracts/hardware.js.map +1 -1
  152. package/dist/contracts/index.d.ts +8 -0
  153. package/dist/contracts/index.js +8 -0
  154. package/dist/contracts/index.js.map +1 -1
  155. package/dist/contracts/model-compatibility.d.ts +97 -0
  156. package/dist/contracts/model-compatibility.js +6 -0
  157. package/dist/contracts/model-compatibility.js.map +1 -0
  158. package/dist/contracts/model-setup.d.ts +115 -0
  159. package/dist/contracts/model-setup.js +33 -0
  160. package/dist/contracts/model-setup.js.map +1 -0
  161. package/dist/contracts/model-yml.d.ts +14 -0
  162. package/dist/contracts/model-yml.js +1 -0
  163. package/dist/contracts/model-yml.js.map +1 -1
  164. package/dist/contracts/session.d.ts +45 -2
  165. package/dist/contracts/session.js +14 -1
  166. package/dist/contracts/session.js.map +1 -1
  167. package/dist/contracts/settings.d.ts +44 -1
  168. package/dist/contracts/settings.js.map +1 -1
  169. package/dist/core/atomic-core.d.ts +46 -5
  170. package/dist/core/atomic-core.js +25 -0
  171. package/dist/core/atomic-core.js.map +1 -1
  172. package/dist/core/create.js +523 -23
  173. package/dist/core/create.js.map +1 -1
  174. package/dist/core/gpu/index.d.ts +6 -0
  175. package/dist/core/gpu/index.js +7 -0
  176. package/dist/core/gpu/index.js.map +1 -0
  177. package/dist/core/gpu/policy.d.ts +68 -0
  178. package/dist/core/gpu/policy.js +99 -0
  179. package/dist/core/gpu/policy.js.map +1 -0
  180. package/dist/core/gpu/residency.d.ts +44 -0
  181. package/dist/core/gpu/residency.js +101 -0
  182. package/dist/core/gpu/residency.js.map +1 -0
  183. package/dist/core/gpu-residency.d.ts +39 -0
  184. package/dist/core/gpu-residency.js +32 -0
  185. package/dist/core/gpu-residency.js.map +1 -0
  186. package/dist/core/index.d.ts +1 -1
  187. package/dist/core/managed-engines.d.ts +207 -0
  188. package/dist/core/managed-engines.js +579 -0
  189. package/dist/core/managed-engines.js.map +1 -0
  190. package/dist/core/managed-environment.d.ts +72 -0
  191. package/dist/core/managed-environment.js +218 -0
  192. package/dist/core/managed-environment.js.map +1 -0
  193. package/dist/core/model-setup/index.d.ts +4 -0
  194. package/dist/core/model-setup/index.js +5 -0
  195. package/dist/core/model-setup/index.js.map +1 -0
  196. package/dist/core/model-setup/plan.d.ts +56 -0
  197. package/dist/core/model-setup/plan.js +158 -0
  198. package/dist/core/model-setup/plan.js.map +1 -0
  199. package/dist/core/model-setup/service.d.ts +92 -0
  200. package/dist/core/model-setup/service.js +329 -0
  201. package/dist/core/model-setup/service.js.map +1 -0
  202. package/dist/core/model-setup/store.d.ts +29 -0
  203. package/dist/core/model-setup/store.js +116 -0
  204. package/dist/core/model-setup/store.js.map +1 -0
  205. package/dist/core/model-setup/wiring.d.ts +59 -0
  206. package/dist/core/model-setup/wiring.js +132 -0
  207. package/dist/core/model-setup/wiring.js.map +1 -0
  208. package/dist/core/prism.d.ts +38 -0
  209. package/dist/core/prism.js +43 -0
  210. package/dist/core/prism.js.map +1 -0
  211. package/dist/core/public-server.d.ts +7 -0
  212. package/dist/core/public-server.js +5 -2
  213. package/dist/core/public-server.js.map +1 -1
  214. package/dist/core/sessions.d.ts +6 -1
  215. package/dist/core/sessions.js +18 -14
  216. package/dist/core/sessions.js.map +1 -1
  217. package/dist/core/tensorrt-llm.d.ts +169 -0
  218. package/dist/core/tensorrt-llm.js +428 -0
  219. package/dist/core/tensorrt-llm.js.map +1 -0
  220. package/dist/core/types.d.ts +43 -1
  221. package/dist/core/types.js.map +1 -1
  222. package/dist/decision/args.d.ts +110 -0
  223. package/dist/decision/args.js +126 -0
  224. package/dist/decision/args.js.map +1 -0
  225. package/dist/decision/backoff.d.ts +25 -0
  226. package/dist/decision/backoff.js +33 -0
  227. package/dist/decision/backoff.js.map +1 -0
  228. package/dist/decision/engine-candidates.d.ts +52 -0
  229. package/dist/decision/engine-candidates.js +138 -0
  230. package/dist/decision/engine-candidates.js.map +1 -0
  231. package/dist/decision/engine-fallback.d.ts +41 -0
  232. package/dist/decision/engine-fallback.js +57 -0
  233. package/dist/decision/engine-fallback.js.map +1 -0
  234. package/dist/decision/engine-version.d.ts +27 -0
  235. package/dist/decision/engine-version.js +54 -0
  236. package/dist/decision/engine-version.js.map +1 -0
  237. package/dist/decision/engine.d.ts +114 -0
  238. package/dist/decision/engine.js +253 -0
  239. package/dist/decision/engine.js.map +1 -0
  240. package/dist/decision/http.d.ts +36 -0
  241. package/dist/decision/http.js +73 -0
  242. package/dist/decision/http.js.map +1 -0
  243. package/dist/decision/index.d.ts +20 -0
  244. package/dist/decision/index.js +21 -0
  245. package/dist/decision/index.js.map +1 -0
  246. package/dist/decision/model-facts.d.ts +32 -0
  247. package/dist/decision/model-facts.js +40 -0
  248. package/dist/decision/model-facts.js.map +1 -0
  249. package/dist/decision/outcome.d.ts +35 -0
  250. package/dist/decision/outcome.js +105 -0
  251. package/dist/decision/outcome.js.map +1 -0
  252. package/dist/decision/process.d.ts +71 -0
  253. package/dist/decision/process.js +142 -0
  254. package/dist/decision/process.js.map +1 -0
  255. package/dist/decision/readiness.d.ts +74 -0
  256. package/dist/decision/readiness.js +165 -0
  257. package/dist/decision/readiness.js.map +1 -0
  258. package/dist/decision/request.d.ts +11 -0
  259. package/dist/decision/request.js +56 -0
  260. package/dist/decision/request.js.map +1 -0
  261. package/dist/decision/service.d.ts +202 -0
  262. package/dist/decision/service.js +711 -0
  263. package/dist/decision/service.js.map +1 -0
  264. package/dist/decision/upstream-version.d.ts +23 -0
  265. package/dist/decision/upstream-version.js +34 -0
  266. package/dist/decision/upstream-version.js.map +1 -0
  267. package/dist/decision/wiring.d.ts +67 -0
  268. package/dist/decision/wiring.js +101 -0
  269. package/dist/decision/wiring.js.map +1 -0
  270. package/dist/diffusion/args.d.ts +7 -4
  271. package/dist/diffusion/args.js +31 -7
  272. package/dist/diffusion/args.js.map +1 -1
  273. package/dist/diffusion/compat.d.ts +1 -1
  274. package/dist/diffusion/compat.js +6 -2
  275. package/dist/diffusion/compat.js.map +1 -1
  276. package/dist/diffusion/image-job.js +1 -1
  277. package/dist/diffusion/image-job.js.map +1 -1
  278. package/dist/diffusion/install.d.ts +35 -11
  279. package/dist/diffusion/install.js +74 -49
  280. package/dist/diffusion/install.js.map +1 -1
  281. package/dist/diffusion/job-kind.d.ts +33 -7
  282. package/dist/diffusion/jobs.d.ts +6 -1
  283. package/dist/diffusion/jobs.js +64 -18
  284. package/dist/diffusion/jobs.js.map +1 -1
  285. package/dist/diffusion/parse.d.ts +1 -2
  286. package/dist/diffusion/parse.js +1 -13
  287. package/dist/diffusion/parse.js.map +1 -1
  288. package/dist/diffusion/progress.js +3 -0
  289. package/dist/diffusion/progress.js.map +1 -1
  290. package/dist/diffusion/server-process.d.ts +6 -0
  291. package/dist/diffusion/server-process.js +3 -2
  292. package/dist/diffusion/server-process.js.map +1 -1
  293. package/dist/diffusion/service.d.ts +52 -6
  294. package/dist/diffusion/service.js +215 -40
  295. package/dist/diffusion/service.js.map +1 -1
  296. package/dist/diffusion/session.d.ts +27 -3
  297. package/dist/diffusion/session.js +108 -17
  298. package/dist/diffusion/session.js.map +1 -1
  299. package/dist/diffusion/state.d.ts +19 -1
  300. package/dist/diffusion/state.js +10 -0
  301. package/dist/diffusion/state.js.map +1 -1
  302. package/dist/diffusion/tracker.d.ts +21 -1
  303. package/dist/diffusion/tracker.js +43 -6
  304. package/dist/diffusion/tracker.js.map +1 -1
  305. package/dist/diffusion/types.d.ts +7 -0
  306. package/dist/diffusion/types.js +11 -0
  307. package/dist/diffusion/types.js.map +1 -1
  308. package/dist/diffusion/validate.js +2 -2
  309. package/dist/diffusion/validate.js.map +1 -1
  310. package/dist/diffusion/video-estimate.d.ts +214 -0
  311. package/dist/diffusion/video-estimate.js +402 -0
  312. package/dist/diffusion/video-estimate.js.map +1 -0
  313. package/dist/diffusion/video-eta.d.ts +90 -0
  314. package/dist/diffusion/video-eta.js +248 -0
  315. package/dist/diffusion/video-eta.js.map +1 -0
  316. package/dist/diffusion/video-history.d.ts +45 -0
  317. package/dist/diffusion/video-history.js +121 -0
  318. package/dist/diffusion/video-history.js.map +1 -0
  319. package/dist/diffusion/video-job.d.ts +13 -5
  320. package/dist/diffusion/video-job.js +42 -15
  321. package/dist/diffusion/video-job.js.map +1 -1
  322. package/dist/diffusion/video-recipe.js +3 -0
  323. package/dist/diffusion/video-recipe.js.map +1 -1
  324. package/dist/diffusion/video-tiling.d.ts +54 -0
  325. package/dist/diffusion/video-tiling.js +70 -0
  326. package/dist/diffusion/video-tiling.js.map +1 -0
  327. package/dist/diffusion/wiring.d.ts +14 -1
  328. package/dist/diffusion/wiring.js +7 -0
  329. package/dist/diffusion/wiring.js.map +1 -1
  330. package/dist/diffusion/workflow.d.ts +8 -2
  331. package/dist/diffusion/workflow.js +13 -5
  332. package/dist/diffusion/workflow.js.map +1 -1
  333. package/dist/downloads/downloader.d.ts +22 -0
  334. package/dist/downloads/downloader.js +57 -2
  335. package/dist/downloads/downloader.js.map +1 -1
  336. package/dist/downloads/protocol.d.ts +3 -8
  337. package/dist/downloads/protocol.js.map +1 -1
  338. package/dist/downloads/segmented.d.ts +40 -0
  339. package/dist/downloads/segmented.js +170 -0
  340. package/dist/downloads/segmented.js.map +1 -0
  341. package/dist/embedding/args.d.ts +39 -0
  342. package/dist/embedding/args.js +46 -0
  343. package/dist/embedding/args.js.map +1 -0
  344. package/dist/embedding/engine.d.ts +50 -0
  345. package/dist/embedding/engine.js +100 -0
  346. package/dist/embedding/engine.js.map +1 -0
  347. package/dist/embedding/ffmpeg.d.ts +18 -0
  348. package/dist/embedding/ffmpeg.js +63 -0
  349. package/dist/embedding/ffmpeg.js.map +1 -0
  350. package/dist/embedding/index.d.ts +16 -0
  351. package/dist/embedding/index.js +17 -0
  352. package/dist/embedding/index.js.map +1 -0
  353. package/dist/embedding/model-facts.d.ts +51 -0
  354. package/dist/embedding/model-facts.js +84 -0
  355. package/dist/embedding/model-facts.js.map +1 -0
  356. package/dist/embedding/process.d.ts +70 -0
  357. package/dist/embedding/process.js +140 -0
  358. package/dist/embedding/process.js.map +1 -0
  359. package/dist/embedding/readiness.d.ts +56 -0
  360. package/dist/embedding/readiness.js +114 -0
  361. package/dist/embedding/readiness.js.map +1 -0
  362. package/dist/embedding/request.d.ts +43 -0
  363. package/dist/embedding/request.js +285 -0
  364. package/dist/embedding/request.js.map +1 -0
  365. package/dist/embedding/service.d.ts +152 -0
  366. package/dist/embedding/service.js +602 -0
  367. package/dist/embedding/service.js.map +1 -0
  368. package/dist/embedding/wiring.d.ts +51 -0
  369. package/dist/embedding/wiring.js +79 -0
  370. package/dist/embedding/wiring.js.map +1 -0
  371. package/dist/engine-builds/builds.d.ts +54 -0
  372. package/dist/engine-builds/builds.js +151 -0
  373. package/dist/engine-builds/builds.js.map +1 -0
  374. package/dist/engine-builds/index.d.ts +10 -0
  375. package/dist/engine-builds/index.js +11 -0
  376. package/dist/engine-builds/index.js.map +1 -0
  377. package/dist/engine-builds/install.d.ts +42 -0
  378. package/dist/engine-builds/install.js +100 -0
  379. package/dist/engine-builds/install.js.map +1 -0
  380. package/dist/engine-builds/manifest.d.ts +121 -0
  381. package/dist/engine-builds/manifest.js +254 -0
  382. package/dist/engine-builds/manifest.js.map +1 -0
  383. package/dist/engine-builds/order.d.ts +24 -0
  384. package/dist/engine-builds/order.js +44 -0
  385. package/dist/engine-builds/order.js.map +1 -0
  386. package/dist/engine-builds/select.d.ts +123 -0
  387. package/dist/engine-builds/select.js +223 -0
  388. package/dist/engine-builds/select.js.map +1 -0
  389. package/dist/engine-builds/service.d.ts +123 -0
  390. package/dist/engine-builds/service.js +392 -0
  391. package/dist/engine-builds/service.js.map +1 -0
  392. package/dist/engines/descriptor-order.d.ts +28 -0
  393. package/dist/engines/descriptor-order.js +60 -0
  394. package/dist/engines/descriptor-order.js.map +1 -0
  395. package/dist/engines/engine-build.d.ts +23 -0
  396. package/dist/engines/engine-build.js +58 -0
  397. package/dist/engines/engine-build.js.map +1 -0
  398. package/dist/engines/index.d.ts +10 -0
  399. package/dist/engines/index.js +11 -0
  400. package/dist/engines/index.js.map +1 -0
  401. package/dist/engines/llamacpp.d.ts +71 -0
  402. package/dist/engines/llamacpp.js +176 -0
  403. package/dist/engines/llamacpp.js.map +1 -0
  404. package/dist/engines/managed.d.ts +49 -0
  405. package/dist/engines/managed.js +88 -0
  406. package/dist/engines/managed.js.map +1 -0
  407. package/dist/engines/service.d.ts +46 -0
  408. package/dist/engines/service.js +61 -0
  409. package/dist/engines/service.js.map +1 -0
  410. package/dist/engines/versions.d.ts +65 -0
  411. package/dist/engines/versions.js +259 -0
  412. package/dist/engines/versions.js.map +1 -0
  413. package/dist/hardware/cpu-flags.d.ts +44 -0
  414. package/dist/hardware/cpu-flags.js +206 -0
  415. package/dist/hardware/cpu-flags.js.map +1 -0
  416. package/dist/hardware/drm-sysfs.d.ts +51 -0
  417. package/dist/hardware/drm-sysfs.js +67 -0
  418. package/dist/hardware/drm-sysfs.js.map +1 -0
  419. package/dist/hardware/facts.d.ts +42 -0
  420. package/dist/hardware/facts.js +92 -0
  421. package/dist/hardware/facts.js.map +1 -0
  422. package/dist/hardware/index.d.ts +19 -3
  423. package/dist/hardware/index.js +19 -3
  424. package/dist/hardware/index.js.map +1 -1
  425. package/dist/hardware/merge.d.ts +55 -0
  426. package/dist/hardware/merge.js +141 -0
  427. package/dist/hardware/merge.js.map +1 -0
  428. package/dist/hardware/nvidia-smi.d.ts +43 -0
  429. package/dist/hardware/nvidia-smi.js +118 -0
  430. package/dist/hardware/nvidia-smi.js.map +1 -0
  431. package/dist/hardware/probe-common.d.ts +72 -0
  432. package/dist/hardware/probe-common.js +106 -0
  433. package/dist/hardware/probe-common.js.map +1 -0
  434. package/dist/hardware/probe-darwin.d.ts +20 -0
  435. package/dist/hardware/probe-darwin.js +76 -0
  436. package/dist/hardware/probe-darwin.js.map +1 -0
  437. package/dist/hardware/probe-linux.d.ts +9 -0
  438. package/dist/hardware/probe-linux.js +133 -0
  439. package/dist/hardware/probe-linux.js.map +1 -0
  440. package/dist/hardware/probe-windows.d.ts +7 -0
  441. package/dist/hardware/probe-windows.js +50 -0
  442. package/dist/hardware/probe-windows.js.map +1 -0
  443. package/dist/hardware/probe.d.ts +16 -0
  444. package/dist/hardware/probe.js +65 -0
  445. package/dist/hardware/probe.js.map +1 -0
  446. package/dist/hardware/service.d.ts +60 -0
  447. package/dist/hardware/service.js +114 -0
  448. package/dist/hardware/service.js.map +1 -0
  449. package/dist/hardware/vulkan.d.ts +47 -0
  450. package/dist/hardware/vulkan.js +148 -0
  451. package/dist/hardware/vulkan.js.map +1 -0
  452. package/dist/hardware/windows-video.d.ts +97 -0
  453. package/dist/hardware/windows-video.js +214 -0
  454. package/dist/hardware/windows-video.js.map +1 -0
  455. package/dist/host/app-daemon.d.ts +47 -0
  456. package/dist/host/app-daemon.js +146 -0
  457. package/dist/host/app-daemon.js.map +1 -0
  458. package/dist/host/index.d.ts +5 -3
  459. package/dist/host/index.js +5 -3
  460. package/dist/host/index.js.map +1 -1
  461. package/dist/host/log-file.d.ts +74 -0
  462. package/dist/host/log-file.js +214 -0
  463. package/dist/host/log-file.js.map +1 -0
  464. package/dist/host/recipes/enable-wsl.d.ts +63 -0
  465. package/dist/host/recipes/enable-wsl.js +73 -0
  466. package/dist/host/recipes/enable-wsl.js.map +1 -0
  467. package/dist/host/recipes/executor-io-windows.d.ts +69 -0
  468. package/dist/host/recipes/executor-io-windows.js +235 -0
  469. package/dist/host/recipes/executor-io-windows.js.map +1 -0
  470. package/dist/host/recipes/executor-io.d.ts +80 -0
  471. package/dist/host/recipes/executor-io.js +211 -0
  472. package/dist/host/recipes/executor-io.js.map +1 -0
  473. package/dist/host/recipes/executor.d.ts +81 -0
  474. package/dist/host/recipes/executor.js +678 -0
  475. package/dist/host/recipes/executor.js.map +1 -0
  476. package/dist/host/recipes/guest-executor.d.ts +29 -0
  477. package/dist/host/recipes/guest-executor.js +76 -0
  478. package/dist/host/recipes/guest-executor.js.map +1 -0
  479. package/dist/host/recipes/index.d.ts +16 -0
  480. package/dist/host/recipes/index.js +17 -0
  481. package/dist/host/recipes/index.js.map +1 -0
  482. package/dist/host/recipes/install-container-runtime.d.ts +389 -0
  483. package/dist/host/recipes/install-container-runtime.js +796 -0
  484. package/dist/host/recipes/install-container-runtime.js.map +1 -0
  485. package/dist/host/recipes/openpgp.d.ts +23 -0
  486. package/dist/host/recipes/openpgp.js +153 -0
  487. package/dist/host/recipes/openpgp.js.map +1 -0
  488. package/dist/host/recipes/request-file.d.ts +96 -0
  489. package/dist/host/recipes/request-file.js +103 -0
  490. package/dist/host/recipes/request-file.js.map +1 -0
  491. package/dist/lock/process-journal.d.ts +5 -2
  492. package/dist/lock/process-journal.js.map +1 -1
  493. package/dist/models/capabilities.d.ts +7 -0
  494. package/dist/models/capabilities.js +17 -1
  495. package/dist/models/capabilities.js.map +1 -1
  496. package/dist/models/compatibility/index.d.ts +10 -0
  497. package/dist/models/compatibility/index.js +11 -0
  498. package/dist/models/compatibility/index.js.map +1 -0
  499. package/dist/models/compatibility/inspect.d.ts +28 -0
  500. package/dist/models/compatibility/inspect.js +90 -0
  501. package/dist/models/compatibility/inspect.js.map +1 -0
  502. package/dist/models/compatibility/resolve.d.ts +59 -0
  503. package/dist/models/compatibility/resolve.js +219 -0
  504. package/dist/models/compatibility/resolve.js.map +1 -0
  505. package/dist/models/compatibility/rules-baseline.d.ts +2 -0
  506. package/dist/models/compatibility/rules-baseline.js +10 -0
  507. package/dist/models/compatibility/rules-baseline.js.map +1 -0
  508. package/dist/models/compatibility/rules-baseline.json +292 -0
  509. package/dist/models/compatibility/rules-service.d.ts +36 -0
  510. package/dist/models/compatibility/rules-service.js +109 -0
  511. package/dist/models/compatibility/rules-service.js.map +1 -0
  512. package/dist/models/compatibility/rules.d.ts +81 -0
  513. package/dist/models/compatibility/rules.js +164 -0
  514. package/dist/models/compatibility/rules.js.map +1 -0
  515. package/dist/models/compatibility/service.d.ts +62 -0
  516. package/dist/models/compatibility/service.js +138 -0
  517. package/dist/models/compatibility/service.js.map +1 -0
  518. package/dist/models/decision-checkpoint.d.ts +22 -0
  519. package/dist/models/decision-checkpoint.js +33 -0
  520. package/dist/models/decision-checkpoint.js.map +1 -0
  521. package/dist/models/gguf/classify.d.ts +27 -1
  522. package/dist/models/gguf/classify.js +78 -2
  523. package/dist/models/gguf/classify.js.map +1 -1
  524. package/dist/models/gguf/index.d.ts +1 -0
  525. package/dist/models/gguf/index.js +1 -0
  526. package/dist/models/gguf/index.js.map +1 -1
  527. package/dist/models/gguf/tensors.d.ts +57 -0
  528. package/dist/models/gguf/tensors.js +239 -0
  529. package/dist/models/gguf/tensors.js.map +1 -0
  530. package/dist/models/index.d.ts +2 -0
  531. package/dist/models/index.js +2 -0
  532. package/dist/models/index.js.map +1 -1
  533. package/dist/router/resolve.d.ts +7 -1
  534. package/dist/router/resolve.js +14 -1
  535. package/dist/router/resolve.js.map +1 -1
  536. package/dist/runtime/container/argv.d.ts +88 -0
  537. package/dist/runtime/container/argv.js +406 -0
  538. package/dist/runtime/container/argv.js.map +1 -0
  539. package/dist/runtime/container/docker-binary.d.ts +4 -0
  540. package/dist/runtime/container/docker-binary.js +34 -0
  541. package/dist/runtime/container/docker-binary.js.map +1 -0
  542. package/dist/runtime/container/env.d.ts +17 -0
  543. package/dist/runtime/container/env.js +52 -0
  544. package/dist/runtime/container/env.js.map +1 -0
  545. package/dist/runtime/container/exec.d.ts +27 -0
  546. package/dist/runtime/container/exec.js +79 -0
  547. package/dist/runtime/container/exec.js.map +1 -0
  548. package/dist/runtime/container/execution-journal.d.ts +55 -0
  549. package/dist/runtime/container/execution-journal.js +167 -0
  550. package/dist/runtime/container/execution-journal.js.map +1 -0
  551. package/dist/runtime/container/heartbeat.d.ts +47 -0
  552. package/dist/runtime/container/heartbeat.js +78 -0
  553. package/dist/runtime/container/heartbeat.js.map +1 -0
  554. package/dist/runtime/container/index.d.ts +30 -0
  555. package/dist/runtime/container/index.js +31 -0
  556. package/dist/runtime/container/index.js.map +1 -0
  557. package/dist/runtime/container/operations.d.ts +40 -0
  558. package/dist/runtime/container/operations.js +233 -0
  559. package/dist/runtime/container/operations.js.map +1 -0
  560. package/dist/runtime/container/pull.d.ts +48 -0
  561. package/dist/runtime/container/pull.js +280 -0
  562. package/dist/runtime/container/pull.js.map +1 -0
  563. package/dist/runtime/container/reconcile.d.ts +34 -0
  564. package/dist/runtime/container/reconcile.js +79 -0
  565. package/dist/runtime/container/reconcile.js.map +1 -0
  566. package/dist/runtime/container/types.d.ts +124 -0
  567. package/dist/runtime/container/types.js +2 -0
  568. package/dist/runtime/container/types.js.map +1 -0
  569. package/dist/runtime/container/watchdog.d.ts +114 -0
  570. package/dist/runtime/container/watchdog.js +418 -0
  571. package/dist/runtime/container/watchdog.js.map +1 -0
  572. package/dist/runtime/container/wiring.d.ts +78 -0
  573. package/dist/runtime/container/wiring.js +92 -0
  574. package/dist/runtime/container/wiring.js.map +1 -0
  575. package/dist/runtime/container/wsl-exec.d.ts +13 -0
  576. package/dist/runtime/container/wsl-exec.js +18 -0
  577. package/dist/runtime/container/wsl-exec.js.map +1 -0
  578. package/dist/runtime/environment/cached-document.d.ts +128 -0
  579. package/dist/runtime/environment/cached-document.js +218 -0
  580. package/dist/runtime/environment/cached-document.js.map +1 -0
  581. package/dist/runtime/environment/canonical-json.d.ts +78 -0
  582. package/dist/runtime/environment/canonical-json.js +86 -0
  583. package/dist/runtime/environment/canonical-json.js.map +1 -0
  584. package/dist/runtime/environment/descriptor-provider.d.ts +121 -0
  585. package/dist/runtime/environment/descriptor-provider.js +159 -0
  586. package/dist/runtime/environment/descriptor-provider.js.map +1 -0
  587. package/dist/runtime/environment/descriptor.d.ts +35 -0
  588. package/dist/runtime/environment/descriptor.js +239 -0
  589. package/dist/runtime/environment/descriptor.js.map +1 -0
  590. package/dist/runtime/environment/diagnostics.d.ts +50 -0
  591. package/dist/runtime/environment/diagnostics.js +114 -0
  592. package/dist/runtime/environment/diagnostics.js.map +1 -0
  593. package/dist/runtime/environment/document-fields.d.ts +39 -0
  594. package/dist/runtime/environment/document-fields.js +96 -0
  595. package/dist/runtime/environment/document-fields.js.map +1 -0
  596. package/dist/runtime/environment/environment-manifest-provider.d.ts +65 -0
  597. package/dist/runtime/environment/environment-manifest-provider.js +89 -0
  598. package/dist/runtime/environment/environment-manifest-provider.js.map +1 -0
  599. package/dist/runtime/environment/environment-manifest.d.ts +35 -0
  600. package/dist/runtime/environment/environment-manifest.js +131 -0
  601. package/dist/runtime/environment/environment-manifest.js.map +1 -0
  602. package/dist/runtime/environment/guest-host.d.ts +43 -0
  603. package/dist/runtime/environment/guest-host.js +88 -0
  604. package/dist/runtime/environment/guest-host.js.map +1 -0
  605. package/dist/runtime/environment/host-exec.d.ts +38 -0
  606. package/dist/runtime/environment/host-exec.js +145 -0
  607. package/dist/runtime/environment/host-exec.js.map +1 -0
  608. package/dist/runtime/environment/host-step-failure.d.ts +33 -0
  609. package/dist/runtime/environment/host-step-failure.js +34 -0
  610. package/dist/runtime/environment/host-step-failure.js.map +1 -0
  611. package/dist/runtime/environment/index.d.ts +56 -0
  612. package/dist/runtime/environment/index.js +57 -0
  613. package/dist/runtime/environment/index.js.map +1 -0
  614. package/dist/runtime/environment/installations.d.ts +25 -0
  615. package/dist/runtime/environment/installations.js +70 -0
  616. package/dist/runtime/environment/installations.js.map +1 -0
  617. package/dist/runtime/environment/inventory.d.ts +42 -0
  618. package/dist/runtime/environment/inventory.js +57 -0
  619. package/dist/runtime/environment/inventory.js.map +1 -0
  620. package/dist/runtime/environment/linux-blockers.d.ts +130 -0
  621. package/dist/runtime/environment/linux-blockers.js +251 -0
  622. package/dist/runtime/environment/linux-blockers.js.map +1 -0
  623. package/dist/runtime/environment/linux-docker-facts.d.ts +200 -0
  624. package/dist/runtime/environment/linux-docker-facts.js +342 -0
  625. package/dist/runtime/environment/linux-docker-facts.js.map +1 -0
  626. package/dist/runtime/environment/linux-docker-network.d.ts +80 -0
  627. package/dist/runtime/environment/linux-docker-network.js +195 -0
  628. package/dist/runtime/environment/linux-docker-network.js.map +1 -0
  629. package/dist/runtime/environment/linux-host.d.ts +22 -0
  630. package/dist/runtime/environment/linux-host.js +98 -0
  631. package/dist/runtime/environment/linux-host.js.map +1 -0
  632. package/dist/runtime/environment/linux-plan.d.ts +126 -0
  633. package/dist/runtime/environment/linux-plan.js +392 -0
  634. package/dist/runtime/environment/linux-plan.js.map +1 -0
  635. package/dist/runtime/environment/linux-probe.d.ts +245 -0
  636. package/dist/runtime/environment/linux-probe.js +315 -0
  637. package/dist/runtime/environment/linux-probe.js.map +1 -0
  638. package/dist/runtime/environment/linux-provisioner.d.ts +102 -0
  639. package/dist/runtime/environment/linux-provisioner.js +734 -0
  640. package/dist/runtime/environment/linux-provisioner.js.map +1 -0
  641. package/dist/runtime/environment/provisioner-descriptors.d.ts +17 -0
  642. package/dist/runtime/environment/provisioner-descriptors.js +62 -0
  643. package/dist/runtime/environment/provisioner-descriptors.js.map +1 -0
  644. package/dist/runtime/environment/recovery.d.ts +74 -0
  645. package/dist/runtime/environment/recovery.js +121 -0
  646. package/dist/runtime/environment/recovery.js.map +1 -0
  647. package/dist/runtime/environment/rootfs-download.d.ts +2 -0
  648. package/dist/runtime/environment/rootfs-download.js +47 -0
  649. package/dist/runtime/environment/rootfs-download.js.map +1 -0
  650. package/dist/runtime/environment/service.d.ts +280 -0
  651. package/dist/runtime/environment/service.js +776 -0
  652. package/dist/runtime/environment/service.js.map +1 -0
  653. package/dist/runtime/environment/state.d.ts +163 -0
  654. package/dist/runtime/environment/state.js +479 -0
  655. package/dist/runtime/environment/state.js.map +1 -0
  656. package/dist/runtime/environment/store-models.d.ts +19 -0
  657. package/dist/runtime/environment/store-models.js +30 -0
  658. package/dist/runtime/environment/store-models.js.map +1 -0
  659. package/dist/runtime/environment/store.d.ts +210 -0
  660. package/dist/runtime/environment/store.js +438 -0
  661. package/dist/runtime/environment/store.js.map +1 -0
  662. package/dist/runtime/environment/windows-environment-record.d.ts +48 -0
  663. package/dist/runtime/environment/windows-environment-record.js +89 -0
  664. package/dist/runtime/environment/windows-environment-record.js.map +1 -0
  665. package/dist/runtime/environment/windows-forwarding.d.ts +27 -0
  666. package/dist/runtime/environment/windows-forwarding.js +84 -0
  667. package/dist/runtime/environment/windows-forwarding.js.map +1 -0
  668. package/dist/runtime/environment/windows-guest-setup.d.ts +48 -0
  669. package/dist/runtime/environment/windows-guest-setup.js +157 -0
  670. package/dist/runtime/environment/windows-guest-setup.js.map +1 -0
  671. package/dist/runtime/environment/windows-host.d.ts +46 -0
  672. package/dist/runtime/environment/windows-host.js +163 -0
  673. package/dist/runtime/environment/windows-host.js.map +1 -0
  674. package/dist/runtime/environment/windows-plan.d.ts +78 -0
  675. package/dist/runtime/environment/windows-plan.js +216 -0
  676. package/dist/runtime/environment/windows-plan.js.map +1 -0
  677. package/dist/runtime/environment/windows-probe.d.ts +135 -0
  678. package/dist/runtime/environment/windows-probe.js +261 -0
  679. package/dist/runtime/environment/windows-probe.js.map +1 -0
  680. package/dist/runtime/environment/windows-provisioner.d.ts +113 -0
  681. package/dist/runtime/environment/windows-provisioner.js +782 -0
  682. package/dist/runtime/environment/windows-provisioner.js.map +1 -0
  683. package/dist/runtime/environment/wiring.d.ts +117 -0
  684. package/dist/runtime/environment/wiring.js +354 -0
  685. package/dist/runtime/environment/wiring.js.map +1 -0
  686. package/dist/runtime/foundation-models/runtime.d.ts +8 -0
  687. package/dist/runtime/foundation-models/runtime.js +5 -2
  688. package/dist/runtime/foundation-models/runtime.js.map +1 -1
  689. package/dist/runtime/llamacpp/args.d.ts +10 -1
  690. package/dist/runtime/llamacpp/args.js +43 -7
  691. package/dist/runtime/llamacpp/args.js.map +1 -1
  692. package/dist/runtime/llamacpp/fit-margin.d.ts +46 -0
  693. package/dist/runtime/llamacpp/fit-margin.js +47 -0
  694. package/dist/runtime/llamacpp/fit-margin.js.map +1 -0
  695. package/dist/runtime/llamacpp/index.d.ts +1 -0
  696. package/dist/runtime/llamacpp/index.js +1 -0
  697. package/dist/runtime/llamacpp/index.js.map +1 -1
  698. package/dist/runtime/llamacpp/load-plan.d.ts +23 -1
  699. package/dist/runtime/llamacpp/load-plan.js +82 -1
  700. package/dist/runtime/llamacpp/load-plan.js.map +1 -1
  701. package/dist/runtime/llamacpp/policy.d.ts +16 -0
  702. package/dist/runtime/llamacpp/policy.js +20 -0
  703. package/dist/runtime/llamacpp/policy.js.map +1 -1
  704. package/dist/runtime/llamacpp/probe.d.ts +21 -1
  705. package/dist/runtime/llamacpp/probe.js +32 -6
  706. package/dist/runtime/llamacpp/probe.js.map +1 -1
  707. package/dist/runtime/llamacpp/runtime.d.ts +56 -1
  708. package/dist/runtime/llamacpp/runtime.js +142 -15
  709. package/dist/runtime/llamacpp/runtime.js.map +1 -1
  710. package/dist/runtime/managed-engines/index.d.ts +8 -0
  711. package/dist/runtime/managed-engines/index.js +9 -0
  712. package/dist/runtime/managed-engines/index.js.map +1 -0
  713. package/dist/runtime/managed-engines/runtime.d.ts +140 -0
  714. package/dist/runtime/managed-engines/runtime.js +402 -0
  715. package/dist/runtime/managed-engines/runtime.js.map +1 -0
  716. package/dist/runtime/managed-engines/spec.d.ts +70 -0
  717. package/dist/runtime/managed-engines/spec.js +39 -0
  718. package/dist/runtime/managed-engines/spec.js.map +1 -0
  719. package/dist/runtime/managed-models/check.d.ts +50 -0
  720. package/dist/runtime/managed-models/check.js +157 -0
  721. package/dist/runtime/managed-models/check.js.map +1 -0
  722. package/dist/runtime/managed-models/compatibility.d.ts +256 -0
  723. package/dist/runtime/managed-models/compatibility.js +594 -0
  724. package/dist/runtime/managed-models/compatibility.js.map +1 -0
  725. package/dist/runtime/managed-models/delete.d.ts +15 -0
  726. package/dist/runtime/managed-models/delete.js +60 -0
  727. package/dist/runtime/managed-models/delete.js.map +1 -0
  728. package/dist/runtime/managed-models/guest-files.d.ts +8 -0
  729. package/dist/runtime/managed-models/guest-files.js +49 -0
  730. package/dist/runtime/managed-models/guest-files.js.map +1 -0
  731. package/dist/runtime/managed-models/index.d.ts +17 -0
  732. package/dist/runtime/managed-models/index.js +18 -0
  733. package/dist/runtime/managed-models/index.js.map +1 -0
  734. package/dist/runtime/managed-models/location.d.ts +22 -0
  735. package/dist/runtime/managed-models/location.js +53 -0
  736. package/dist/runtime/managed-models/location.js.map +1 -0
  737. package/dist/runtime/managed-models/migrate.d.ts +30 -0
  738. package/dist/runtime/managed-models/migrate.js +119 -0
  739. package/dist/runtime/managed-models/migrate.js.map +1 -0
  740. package/dist/runtime/managed-models/model-dir.d.ts +36 -0
  741. package/dist/runtime/managed-models/model-dir.js +136 -0
  742. package/dist/runtime/managed-models/model-dir.js.map +1 -0
  743. package/dist/runtime/managed-models/quant-format.d.ts +71 -0
  744. package/dist/runtime/managed-models/quant-format.js +299 -0
  745. package/dist/runtime/managed-models/quant-format.js.map +1 -0
  746. package/dist/runtime/managed-models/registry.d.ts +26 -0
  747. package/dist/runtime/managed-models/registry.js +66 -0
  748. package/dist/runtime/managed-models/registry.js.map +1 -0
  749. package/dist/runtime/managed-text/adapter.d.ts +283 -0
  750. package/dist/runtime/managed-text/adapter.js +96 -0
  751. package/dist/runtime/managed-text/adapter.js.map +1 -0
  752. package/dist/runtime/managed-text/backend-target.d.ts +3 -0
  753. package/dist/runtime/managed-text/backend-target.js +52 -0
  754. package/dist/runtime/managed-text/backend-target.js.map +1 -0
  755. package/dist/runtime/managed-text/deployment.d.ts +14 -0
  756. package/dist/runtime/managed-text/deployment.js +32 -0
  757. package/dist/runtime/managed-text/deployment.js.map +1 -0
  758. package/dist/runtime/managed-text/engine-cache.d.ts +15 -0
  759. package/dist/runtime/managed-text/engine-cache.js +64 -0
  760. package/dist/runtime/managed-text/engine-cache.js.map +1 -0
  761. package/dist/runtime/managed-text/gateway.d.ts +158 -0
  762. package/dist/runtime/managed-text/gateway.js +535 -0
  763. package/dist/runtime/managed-text/gateway.js.map +1 -0
  764. package/dist/runtime/managed-text/generation-defaults.d.ts +23 -0
  765. package/dist/runtime/managed-text/generation-defaults.js +51 -0
  766. package/dist/runtime/managed-text/generation-defaults.js.map +1 -0
  767. package/dist/runtime/managed-text/index.d.ts +26 -0
  768. package/dist/runtime/managed-text/index.js +27 -0
  769. package/dist/runtime/managed-text/index.js.map +1 -0
  770. package/dist/runtime/managed-text/lifecycle.d.ts +284 -0
  771. package/dist/runtime/managed-text/lifecycle.js +896 -0
  772. package/dist/runtime/managed-text/lifecycle.js.map +1 -0
  773. package/dist/runtime/managed-text/load-policy.d.ts +47 -0
  774. package/dist/runtime/managed-text/load-policy.js +111 -0
  775. package/dist/runtime/managed-text/load-policy.js.map +1 -0
  776. package/dist/runtime/managed-text/mount-source.d.ts +14 -0
  777. package/dist/runtime/managed-text/mount-source.js +18 -0
  778. package/dist/runtime/managed-text/mount-source.js.map +1 -0
  779. package/dist/runtime/managed-text/readiness.d.ts +33 -0
  780. package/dist/runtime/managed-text/readiness.js +88 -0
  781. package/dist/runtime/managed-text/readiness.js.map +1 -0
  782. package/dist/runtime/managed-text/request-rules.d.ts +18 -0
  783. package/dist/runtime/managed-text/request-rules.js +62 -0
  784. package/dist/runtime/managed-text/request-rules.js.map +1 -0
  785. package/dist/runtime/managed-text/types.d.ts +88 -0
  786. package/dist/runtime/managed-text/types.js +12 -0
  787. package/dist/runtime/managed-text/types.js.map +1 -0
  788. package/dist/runtime/managed-text/wsl-deployment.d.ts +24 -0
  789. package/dist/runtime/managed-text/wsl-deployment.js +70 -0
  790. package/dist/runtime/managed-text/wsl-deployment.js.map +1 -0
  791. package/dist/runtime/mlx/errors.d.ts +6 -1
  792. package/dist/runtime/mlx/errors.js +7 -2
  793. package/dist/runtime/mlx/errors.js.map +1 -1
  794. package/dist/runtime/mlx/runtime.d.ts +36 -1
  795. package/dist/runtime/mlx/runtime.js +85 -4
  796. package/dist/runtime/mlx/runtime.js.map +1 -1
  797. package/dist/runtime/shared/backend-output.d.ts +23 -0
  798. package/dist/runtime/shared/backend-output.js +32 -0
  799. package/dist/runtime/shared/backend-output.js.map +1 -0
  800. package/dist/runtime/shared/bounded-output.d.ts +24 -0
  801. package/dist/runtime/shared/bounded-output.js +63 -0
  802. package/dist/runtime/shared/bounded-output.js.map +1 -0
  803. package/dist/runtime/shared/external-sessions.js +9 -1
  804. package/dist/runtime/shared/external-sessions.js.map +1 -1
  805. package/dist/runtime/shared/gpu-occupancy.d.ts +60 -0
  806. package/dist/runtime/shared/gpu-occupancy.js +10 -0
  807. package/dist/runtime/shared/gpu-occupancy.js.map +1 -0
  808. package/dist/runtime/shared/index.d.ts +4 -0
  809. package/dist/runtime/shared/index.js +4 -0
  810. package/dist/runtime/shared/index.js.map +1 -1
  811. package/dist/runtime/shared/local-runtime.d.ts +35 -0
  812. package/dist/runtime/shared/ports.d.ts +16 -0
  813. package/dist/runtime/shared/ports.js +42 -1
  814. package/dist/runtime/shared/ports.js.map +1 -1
  815. package/dist/runtime/shared/process.d.ts +11 -0
  816. package/dist/runtime/shared/process.js +20 -0
  817. package/dist/runtime/shared/process.js.map +1 -1
  818. package/dist/runtime/shared/redact-args.d.ts +7 -0
  819. package/dist/runtime/shared/redact-args.js +26 -0
  820. package/dist/runtime/shared/redact-args.js.map +1 -0
  821. package/dist/runtime/shared/sidecar.d.ts +15 -0
  822. package/dist/runtime/shared/sidecar.js +43 -8
  823. package/dist/runtime/shared/sidecar.js.map +1 -1
  824. package/dist/runtime/tensorrt-llm/adapter.d.ts +247 -0
  825. package/dist/runtime/tensorrt-llm/adapter.js +1028 -0
  826. package/dist/runtime/tensorrt-llm/adapter.js.map +1 -0
  827. package/dist/runtime/tensorrt-llm/check.d.ts +12 -0
  828. package/dist/runtime/tensorrt-llm/check.js +22 -0
  829. package/dist/runtime/tensorrt-llm/check.js.map +1 -0
  830. package/dist/runtime/tensorrt-llm/compatibility.d.ts +124 -0
  831. package/dist/runtime/tensorrt-llm/compatibility.js +213 -0
  832. package/dist/runtime/tensorrt-llm/compatibility.js.map +1 -0
  833. package/dist/runtime/tensorrt-llm/cuda-graphs.d.ts +32 -0
  834. package/dist/runtime/tensorrt-llm/cuda-graphs.js +33 -0
  835. package/dist/runtime/tensorrt-llm/cuda-graphs.js.map +1 -0
  836. package/dist/runtime/tensorrt-llm/delete.d.ts +15 -0
  837. package/dist/runtime/tensorrt-llm/delete.js +60 -0
  838. package/dist/runtime/tensorrt-llm/delete.js.map +1 -0
  839. package/dist/runtime/tensorrt-llm/engine.d.ts +3 -0
  840. package/dist/runtime/tensorrt-llm/engine.js +30 -0
  841. package/dist/runtime/tensorrt-llm/engine.js.map +1 -0
  842. package/dist/runtime/tensorrt-llm/guest-files.d.ts +8 -0
  843. package/dist/runtime/tensorrt-llm/guest-files.js +49 -0
  844. package/dist/runtime/tensorrt-llm/guest-files.js.map +1 -0
  845. package/dist/runtime/tensorrt-llm/host-facts.d.ts +55 -0
  846. package/dist/runtime/tensorrt-llm/host-facts.js +87 -0
  847. package/dist/runtime/tensorrt-llm/host-facts.js.map +1 -0
  848. package/dist/runtime/tensorrt-llm/index.d.ts +30 -0
  849. package/dist/runtime/tensorrt-llm/index.js +31 -0
  850. package/dist/runtime/tensorrt-llm/index.js.map +1 -0
  851. package/dist/runtime/tensorrt-llm/installation.d.ts +23 -0
  852. package/dist/runtime/tensorrt-llm/installation.js +53 -0
  853. package/dist/runtime/tensorrt-llm/installation.js.map +1 -0
  854. package/dist/runtime/tensorrt-llm/kv-cache.d.ts +41 -0
  855. package/dist/runtime/tensorrt-llm/kv-cache.js +48 -0
  856. package/dist/runtime/tensorrt-llm/kv-cache.js.map +1 -0
  857. package/dist/runtime/tensorrt-llm/location.d.ts +20 -0
  858. package/dist/runtime/tensorrt-llm/location.js +48 -0
  859. package/dist/runtime/tensorrt-llm/location.js.map +1 -0
  860. package/dist/runtime/tensorrt-llm/model-dir.d.ts +38 -0
  861. package/dist/runtime/tensorrt-llm/model-dir.js +137 -0
  862. package/dist/runtime/tensorrt-llm/model-dir.js.map +1 -0
  863. package/dist/runtime/tensorrt-llm/prelaunch.d.ts +20 -0
  864. package/dist/runtime/tensorrt-llm/prelaunch.js +168 -0
  865. package/dist/runtime/tensorrt-llm/prelaunch.js.map +1 -0
  866. package/dist/runtime/tensorrt-llm/quant-format.d.ts +65 -0
  867. package/dist/runtime/tensorrt-llm/quant-format.js +189 -0
  868. package/dist/runtime/tensorrt-llm/quant-format.js.map +1 -0
  869. package/dist/runtime/tensorrt-llm/registry.d.ts +26 -0
  870. package/dist/runtime/tensorrt-llm/registry.js +68 -0
  871. package/dist/runtime/tensorrt-llm/registry.js.map +1 -0
  872. package/dist/runtime/tensorrt-llm/route-policy.d.ts +19 -0
  873. package/dist/runtime/tensorrt-llm/route-policy.js +17 -0
  874. package/dist/runtime/tensorrt-llm/route-policy.js.map +1 -0
  875. package/dist/runtime/tensorrt-llm/runtime.d.ts +130 -0
  876. package/dist/runtime/tensorrt-llm/runtime.js +395 -0
  877. package/dist/runtime/tensorrt-llm/runtime.js.map +1 -0
  878. package/dist/runtime/tensorrt-llm/settings.d.ts +7 -0
  879. package/dist/runtime/tensorrt-llm/settings.js +48 -0
  880. package/dist/runtime/tensorrt-llm/settings.js.map +1 -0
  881. package/dist/runtime/vllm/adapter.d.ts +46 -0
  882. package/dist/runtime/vllm/adapter.js +425 -0
  883. package/dist/runtime/vllm/adapter.js.map +1 -0
  884. package/dist/runtime/vllm/engine.d.ts +16 -0
  885. package/dist/runtime/vllm/engine.js +37 -0
  886. package/dist/runtime/vllm/engine.js.map +1 -0
  887. package/dist/runtime/vllm/index.d.ts +11 -0
  888. package/dist/runtime/vllm/index.js +12 -0
  889. package/dist/runtime/vllm/index.js.map +1 -0
  890. package/dist/runtime/vllm/memory.d.ts +69 -0
  891. package/dist/runtime/vllm/memory.js +123 -0
  892. package/dist/runtime/vllm/memory.js.map +1 -0
  893. package/dist/runtime/vllm/settings.d.ts +52 -0
  894. package/dist/runtime/vllm/settings.js +151 -0
  895. package/dist/runtime/vllm/settings.js.map +1 -0
  896. package/dist/runtime/wsl/guest-paths.d.ts +33 -0
  897. package/dist/runtime/wsl/guest-paths.js +83 -0
  898. package/dist/runtime/wsl/guest-paths.js.map +1 -0
  899. package/dist/runtime/wsl/guest-scope.d.ts +14 -0
  900. package/dist/runtime/wsl/guest-scope.js +98 -0
  901. package/dist/runtime/wsl/guest-scope.js.map +1 -0
  902. package/dist/runtime/wsl/index.d.ts +12 -0
  903. package/dist/runtime/wsl/index.js +13 -0
  904. package/dist/runtime/wsl/index.js.map +1 -0
  905. package/dist/runtime/wsl/keeper.d.ts +29 -0
  906. package/dist/runtime/wsl/keeper.js +48 -0
  907. package/dist/runtime/wsl/keeper.js.map +1 -0
  908. package/dist/runtime/wsl/transport.d.ts +106 -0
  909. package/dist/runtime/wsl/transport.js +181 -0
  910. package/dist/runtime/wsl/transport.js.map +1 -0
  911. package/dist/server/control/index.d.ts +1 -1
  912. package/dist/server/control/router.js +16 -1
  913. package/dist/server/control/router.js.map +1 -1
  914. package/dist/server/control/routes/backends.js +26 -0
  915. package/dist/server/control/routes/backends.js.map +1 -1
  916. package/dist/server/control/routes/decision.d.ts +10 -0
  917. package/dist/server/control/routes/decision.js +43 -0
  918. package/dist/server/control/routes/decision.js.map +1 -0
  919. package/dist/server/control/routes/diffusion-video.js +4 -0
  920. package/dist/server/control/routes/diffusion-video.js.map +1 -1
  921. package/dist/server/control/routes/diffusion.d.ts +1 -1
  922. package/dist/server/control/routes/diffusion.js +4 -9
  923. package/dist/server/control/routes/diffusion.js.map +1 -1
  924. package/dist/server/control/routes/embedding.d.ts +9 -0
  925. package/dist/server/control/routes/embedding.js +43 -0
  926. package/dist/server/control/routes/embedding.js.map +1 -0
  927. package/dist/server/control/routes/engine-builds.d.ts +14 -0
  928. package/dist/server/control/routes/engine-builds.js +82 -0
  929. package/dist/server/control/routes/engine-builds.js.map +1 -0
  930. package/dist/server/control/routes/engines.d.ts +17 -0
  931. package/dist/server/control/routes/engines.js +152 -0
  932. package/dist/server/control/routes/engines.js.map +1 -0
  933. package/dist/server/control/routes/environments.d.ts +16 -0
  934. package/dist/server/control/routes/environments.js +207 -0
  935. package/dist/server/control/routes/environments.js.map +1 -0
  936. package/dist/server/control/routes/hardware.d.ts +1 -1
  937. package/dist/server/control/routes/hardware.js +11 -6
  938. package/dist/server/control/routes/hardware.js.map +1 -1
  939. package/dist/server/control/routes/model-setups.d.ts +11 -0
  940. package/dist/server/control/routes/model-setups.js +55 -0
  941. package/dist/server/control/routes/model-setups.js.map +1 -0
  942. package/dist/server/control/routes/models.d.ts +3 -2
  943. package/dist/server/control/routes/models.js +45 -2
  944. package/dist/server/control/routes/models.js.map +1 -1
  945. package/dist/server/control/types.d.ts +172 -10
  946. package/dist/server/control/types.js.map +1 -1
  947. package/dist/server/http.d.ts +9 -1
  948. package/dist/server/http.js +51 -1
  949. package/dist/server/http.js.map +1 -1
  950. package/dist/server/public/decision-preview.d.ts +17 -0
  951. package/dist/server/public/decision-preview.js +119 -0
  952. package/dist/server/public/decision-preview.js.map +1 -0
  953. package/dist/server/public/decision.d.ts +32 -0
  954. package/dist/server/public/decision.js +135 -0
  955. package/dist/server/public/decision.js.map +1 -0
  956. package/dist/server/public/embedding.d.ts +31 -0
  957. package/dist/server/public/embedding.js +126 -0
  958. package/dist/server/public/embedding.js.map +1 -0
  959. package/dist/server/public/errors.d.ts +2 -1
  960. package/dist/server/public/errors.js +5 -2
  961. package/dist/server/public/errors.js.map +1 -1
  962. package/dist/server/public/forward.js +75 -3
  963. package/dist/server/public/forward.js.map +1 -1
  964. package/dist/server/public/gates.d.ts +18 -0
  965. package/dist/server/public/gates.js +41 -14
  966. package/dist/server/public/gates.js.map +1 -1
  967. package/dist/server/public/index.d.ts +6 -2
  968. package/dist/server/public/index.js +23 -7
  969. package/dist/server/public/index.js.map +1 -1
  970. package/dist/server/public/listing.d.ts +13 -2
  971. package/dist/server/public/listing.js +33 -9
  972. package/dist/server/public/listing.js.map +1 -1
  973. package/dist/server/public/policy.d.ts +9 -0
  974. package/dist/server/public/policy.js +68 -0
  975. package/dist/server/public/policy.js.map +1 -0
  976. package/dist/server/public/responses.js +10 -0
  977. package/dist/server/public/responses.js.map +1 -1
  978. package/dist/server/public/trace.d.ts +2 -2
  979. package/dist/server/public/trace.js +6 -2
  980. package/dist/server/public/trace.js.map +1 -1
  981. package/dist/server/public/types.d.ts +91 -1
  982. package/dist/settings/decision.d.ts +15 -0
  983. package/dist/settings/decision.js +88 -0
  984. package/dist/settings/decision.js.map +1 -0
  985. package/dist/settings/embedding.d.ts +12 -0
  986. package/dist/settings/embedding.js +82 -0
  987. package/dist/settings/embedding.js.map +1 -0
  988. package/dist/settings/index.d.ts +2 -0
  989. package/dist/settings/index.js +2 -0
  990. package/dist/settings/index.js.map +1 -1
  991. package/dist/settings/schema/atomic-prism.json +433 -0
  992. package/dist/settings/schema/tensorrt-llm.json +253 -0
  993. package/dist/settings/schema/vllm.json +273 -0
  994. package/dist/settings/schema.js +58 -0
  995. package/dist/settings/schema.js.map +1 -1
  996. package/dist/settings/store.d.ts +13 -2
  997. package/dist/settings/store.js +44 -0
  998. package/dist/settings/store.js.map +1 -1
  999. package/dist/util/index.d.ts +1 -0
  1000. package/dist/util/index.js +1 -0
  1001. package/dist/util/index.js.map +1 -1
  1002. package/dist/util/result.d.ts +19 -0
  1003. package/dist/util/result.js +15 -0
  1004. package/dist/util/result.js.map +1 -0
  1005. package/dist/version.d.ts +1 -1
  1006. package/dist/version.js +1 -1
  1007. package/dist/version.js.map +1 -1
  1008. package/package.json +2 -2
  1009. package/src/settings/schema/atomic-prism.json +433 -0
  1010. package/src/settings/schema/tensorrt-llm.json +253 -0
  1011. package/src/settings/schema/vllm.json +273 -0
@@ -8,7 +8,10 @@ import { buildVidGenRequest } from './args.js';
8
8
  import { diffusionError, internalError } from './errors.js';
9
9
  import { redactSource, resolveSource } from './image-job.js';
10
10
  import { validateVideoRequest } from './validate.js';
11
+ import { VideoEta } from './video-eta.js';
11
12
  import { isWebm } from './video-gallery.js';
13
+ /** A clip's progress goes out at least once a second while it generates, whether or not a step landed. */
14
+ export const VIDEO_PROGRESS_HEARTBEAT_MS = 1_000;
12
15
  /** The first and last frames as the base64 `sd-server` takes; nothing is read for text-to-video. */
13
16
  export async function resolveVideoInputs(request, deps) {
14
17
  const inputs = { refs: [] };
@@ -54,13 +57,14 @@ export function decodeVideo(job) {
54
57
  }
55
58
  /** Refuse anything that is not a WebM, then write the clip and its sidecar into the video gallery. */
56
59
  export async function saveVideoOutput(deps, ctx, decoded) {
57
- const { id, request, spec, seed, startedAt } = ctx;
60
+ const { id, request, spec, seed, startedAt, decodeStartedAt } = ctx;
58
61
  if (!isWebm(decoded.bytes))
59
62
  throw diffusionError('INVALID_OUTPUT', 'The video engine returned something that is not a WebM.');
60
63
  const video = spec.defaults.video;
61
64
  const frames = request.frames ?? video?.frames ?? decoded.frameCount;
62
65
  const fps = request.fps ?? video?.fps ?? decoded.fps;
63
66
  const createdAtMs = deps.now();
67
+ const durationMs = Math.max(createdAtMs - startedAt, 0);
64
68
  const recipe = {
65
69
  jobId: id,
66
70
  prompt: request.prompt,
@@ -93,22 +97,41 @@ export async function saveVideoOutput(deps, ctx, decoded) {
93
97
  cpuFallback: spec.cpuFallback,
94
98
  },
95
99
  createdAtMs,
96
- durationMs: Math.max(createdAtMs - startedAt, 0),
100
+ durationMs,
101
+ // What the history calibrates the decode with, apart from the steps.
102
+ ...(decodeStartedAt === undefined
103
+ ? {}
104
+ : { decodeMs: Math.min(Math.max(createdAtMs - decodeStartedAt, 0), durationMs) }),
97
105
  };
98
106
  const saved = await deps.videoGallery.save(deps.state.videoOutputDir(), recipe, decoded.bytes);
107
+ deps.videoSaved?.();
99
108
  deps.state.updateJob(id, (record) => record.job.outputs.push(saved.item));
100
109
  return { items: [saved.item], bytes: [saved.bytes] };
101
110
  }
102
- /** The wire progress of a clip: the tracker's snapshot without the batch fields. */
103
- export function videoProgress(snapshot) {
104
- return {
105
- phase: snapshot.phase,
106
- step: snapshot.step,
107
- totalSteps: snapshot.totalSteps,
108
- fraction: snapshot.fraction,
109
- etaSeconds: snapshot.etaSeconds,
110
- elapsedMs: snapshot.elapsedMs,
111
- };
111
+ /** The estimate and its forecast for a job about to start; a failure only costs the job its estimate. */
112
+ export async function prepareVideoJob(deps, request, spec) {
113
+ if (!deps.planVideo)
114
+ return undefined;
115
+ try {
116
+ return await deps.planVideo(request, spec);
117
+ }
118
+ catch (error) {
119
+ deps.log('warn', `video estimate failed: ${error instanceof Error ? error.message : String(error)}`);
120
+ return undefined;
121
+ }
122
+ }
123
+ /**
124
+ * The wire progress of a clip: the tracker's snapshot without the batch fields, with the ETA,
125
+ * fraction and slowdown of `VideoEta` over the whole job and the decode's tiles.
126
+ */
127
+ export function videoProgressModel(record, startedAt) {
128
+ const estimate = record.job.estimate;
129
+ const eta = new VideoEta({
130
+ startedAt,
131
+ ...(record.forecast ? { forecast: record.forecast } : {}),
132
+ estimated: estimate?.seconds != null,
133
+ });
134
+ return (snapshot, now, decodeTiles) => eta.progress(snapshot, now, decodeTiles);
112
135
  }
113
136
  /** A build without libwebm cannot write the one container the app plays; say so before submitting. */
114
137
  export function checkWebmSupport(capabilities) {
@@ -127,7 +150,8 @@ export const VIDEO_JOB_KIND = {
127
150
  failed: 'The video server failed to generate.',
128
151
  },
129
152
  validate: (request, spec, deps) => validateVideoRequest(request, spec, deps),
130
- newJob: (id, spec, request, now) => ({
153
+ prepare: prepareVideoJob,
154
+ newJob: (id, spec, request, now, plan) => ({
131
155
  id,
132
156
  state: 'queued',
133
157
  modelId: spec.modelId,
@@ -135,11 +159,14 @@ export const VIDEO_JOB_KIND = {
135
159
  createdAtMs: now,
136
160
  progress: null,
137
161
  outputs: [],
162
+ ...(plan?.estimate ? { estimate: plan.estimate } : {}),
138
163
  }),
139
164
  resolveInputs: resolveVideoInputs,
140
- buildBody: (request, spec, seed, inputs) => buildVidGenRequest(request, spec.defaults, seed, inputs),
165
+ // The plan tiled the decode for the device; on the CPU fallback the threshold decides again.
166
+ buildBody: (request, spec, seed, inputs, plan) => buildVidGenRequest(request, spec.defaults, seed, inputs, spec.cpuFallback ? undefined : plan?.decodeTiling),
141
167
  trackerShape: (request) => ({ steps: Math.max(request.steps, 1), batch: 1 }),
142
- progress: videoProgress,
168
+ progressModel: videoProgressModel,
169
+ heartbeatMs: VIDEO_PROGRESS_HEARTBEAT_MS,
143
170
  emitJob: (emit, job) => emit('diffusion:video-job', { job }),
144
171
  emitProgress: (emit, jobId, progress) => emit('diffusion:video-progress', { jobId, progress }),
145
172
  cancelGenerating: (capabilities) => capabilities.vidGen?.cancelGenerating ?? false,
@@ -1 +1 @@
1
- {"version":3,"file":"video-job.js","sourceRoot":"","sources":["../../src/diffusion/video-job.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"video-job.js","sourceRoot":"","sources":["../../src/diffusion/video-job.ts"],"names":[],"mappings":"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"}
@@ -56,6 +56,7 @@ export function serializeVideoRecipe(recipe) {
56
56
  },
57
57
  createdAtMs: recipe.createdAtMs,
58
58
  durationMs: recipe.durationMs,
59
+ ...(recipe.decodeMs === undefined ? {} : { decodeMs: recipe.decodeMs }),
59
60
  };
60
61
  return `${JSON.stringify(ordered, null, 2)}\n`;
61
62
  }
@@ -136,6 +137,8 @@ export function parseVideoRecipe(text) {
136
137
  },
137
138
  createdAtMs: raw['createdAtMs'],
138
139
  durationMs: raw['durationMs'],
140
+ // Older clips have none; a malformed one is dropped rather than the clip.
141
+ ...(isWhole(raw['decodeMs']) ? { decodeMs: raw['decodeMs'] } : {}),
139
142
  };
140
143
  }
141
144
  //# sourceMappingURL=video-recipe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"video-recipe.js","sourceRoot":"","sources":["../../src/diffusion/video-recipe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"video-recipe.js","sourceRoot":"","sources":["../../src/diffusion/video-recipe.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAA;AAI5C,MAAM,OAAO,GAAiC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;AACrE,MAAM,QAAQ,GAAgC,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;AACxF,MAAM,QAAQ,GAAsC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAE9E,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAmB,EAAE,CACnD,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AACtE,MAAM,OAAO,GAAG,CAAC,KAAc,EAAmB,EAAE,CAClD,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AACpE,uEAAuE;AACvE,MAAM,KAAK,GAAG,CAAC,KAAc,EAAmB,EAAE,CAChD,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;AACpF,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AACzG,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAA;AAC/E,MAAM,KAAK,GAAG,CAAmB,KAAc,EAAE,OAAqB,EAAc,EAAE,CACpF,QAAQ,CAAC,KAAK,CAAC,IAAK,OAA6B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAEnE,qGAAqG;AACrG,SAAS,QAAQ,CAAI,KAAc,EAAE,KAA6B;IAChE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IACtD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACzC,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,oBAAoB,CAAC,MAAmB;IACtD,MAAM,OAAO,GAAgB;QAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,KAAK,EAAE;YACL,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;YAC7B,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;YAC3B,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW;YACrC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;SAChC;QACD,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;YACxB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;YAC9B,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;YACtB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;YAC9B,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW;SACvC;QACD,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;KACxE,CAAA;IACD,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAA;AAChD,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,GAAY,CAAA;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAAE,OAAO,SAAS,CAAA;IAC3F,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,CAAA;IAC7B,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,CAAA;IAChE,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAA;IACpD,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,CAAA;IAChE,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAA;IACtD,MAAM,EAAE,GACN,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtB,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACzB,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClB,KAAK,CAAkB,GAAG,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;QACxD,GAAG,CAAC,cAAc,CAAC,KAAK,MAAM;QAC9B,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1B,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzB,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC9B,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC3B,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAC9B,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;QAClC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;QAClC,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,SAAS;QAC1C,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,cAAc,KAAK,SAAS;QAC5B,QAAQ,KAAK,SAAS;QACtB,cAAc,KAAK,SAAS;QAC5B,SAAS,KAAK,SAAS,CAAA;IACzB,IAAI,CAAC,EAAE;QAAE,OAAO,SAAS,CAAA;IACzB,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,OAAO,CAAW;QAC7B,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAW;QAC/B,cAAc;QACd,KAAK,EAAE,GAAG,CAAC,OAAO,CAAW;QAC7B,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAW;QAC/B,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAW;QAC/B,UAAU,EAAE,GAAG,CAAC,YAAY,CAAW;QACvC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAW;QACzB,KAAK,EAAE,GAAG,CAAC,OAAO,CAAW;QAC7B,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAW;QACnC,QAAQ;QACR,IAAI,EAAE,GAAG,CAAC,MAAM,CAAW;QAC3B,cAAc;QACd,SAAS;QACT,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAoB;QAC5C,YAAY,EAAE,MAAM;QACpB,KAAK,EAAE;YACL,OAAO,EAAE,KAAK,CAAC,SAAS,CAAW;YACnC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAW;YACjC,WAAW,EAAE,KAAK,CAAC,aAAa,CAAW;YAC3C,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAW;SACtC;QACD,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,CAAC,MAAM,CAAsB;YACzC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAqB;YAC9C,GAAG,EAAE,MAAM,CAAC,KAAK,CAAW;YAC5B,OAAO,EAAE,MAAM,CAAC,SAAS,CAA2B;YACpD,WAAW,EAAE,MAAM,CAAC,aAAa,CAAY;SAC9C;QACD,WAAW,EAAE,GAAG,CAAC,aAAa,CAAW;QACzC,UAAU,EAAE,GAAG,CAAC,YAAY,CAAW;QACvC,0EAA0E;QAC1E,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7E,CAAA;AACH,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * How a clip's VAE decode is split into spatial tiles, as sd.cpp splits it. Every tile runs the
3
+ * decoder over all the clip's frames and the tiles overlap by half, so a tiled decode recomputes the
4
+ * overlap: 704×1280 on the Wan 2.2 VAE (a 44×80 latent) in sd.cpp's default 32-pixel tiles is 2×4
5
+ * tiles, 2.33 times the work of one graph. Pure; the choice of tiling is `planDecodeTiling` in
6
+ * `video-estimate.ts`.
7
+ */
8
+ /**
9
+ * The tiles across and down a decode is asked for; 1 × 1 is one graph over the whole frame. Sent as
10
+ * tile counts (`rel_size_*` above 1), which sd.cpp reads the same way in every build, where the unit
11
+ * of an absolute tile size changed from latent to image pixels upstream (sd.cpp #2059).
12
+ */
13
+ export interface VideoDecodeTiling {
14
+ tilesX: number;
15
+ tilesY: number;
16
+ }
17
+ /** sd.cpp's default tile before #2059: 32 latent pixels on a side. */
18
+ export declare const ENGINE_TILE_LATENT = 32;
19
+ /** sd.cpp's default overlap between neighbouring tiles, a share of the tile. */
20
+ export declare const DECODE_TILE_OVERLAP = 0.5;
21
+ /** sd.cpp's smallest tile side in latent pixels. */
22
+ export declare const MIN_TILE_LATENT = 4;
23
+ /**
24
+ * Tiles along one axis of `size` latent pixels for tiles of `tile`, counted as sd.cpp's
25
+ * `sd_tiling_calc_tiles` counts them (the non-circular branch): an extra tile when the last one would
26
+ * overshoot by little, and never fewer than two once the axis is longer than a tile.
27
+ */
28
+ export declare function tilesAlong(size: number, tile: number, overlap?: number): number;
29
+ /**
30
+ * The tile side sd.cpp takes for `count` tiles along `size` (`rel_size` above 1): `size / (count −
31
+ * count·overlap + overlap)`, rounded as the pinned build rounds it; the whole axis for one tile.
32
+ */
33
+ export declare function tileSideFor(size: number, count: number, overlap?: number): number;
34
+ /** What one tiling costs: the tiles the engine will run, their side in latent pixels, and the work. */
35
+ export interface DecodeLayout {
36
+ tiled: boolean;
37
+ tilesX: number;
38
+ tilesY: number;
39
+ /** Latent pixels on a side of one tile. */
40
+ tileWidth: number;
41
+ tileHeight: number;
42
+ /** The decoder's work against one graph over the frame: the tiles' area over the latent's. */
43
+ work: number;
44
+ }
45
+ /** The layout of `tiling` over a latent of `width` × `height` pixels; one graph when `tiling` is 1 × 1. */
46
+ export declare function tilingLayout(width: number, height: number, tiling: VideoDecodeTiling): DecodeLayout;
47
+ /** The layout of sd.cpp's own tiles (32 latent pixels) when a request only switches tiling on. */
48
+ export declare function engineDefaultLayout(width: number, height: number): DecodeLayout;
49
+ /**
50
+ * The `vae_tiling_params` of a tiled decode: tile counts under both spellings sd.cpp has used
51
+ * (`rel_size_x/y` up to the pinned build, `rel_size_w/h` after #2059); a build reads its own and
52
+ * ignores the other. Undefined for one graph.
53
+ */
54
+ export declare function decodeTilingParams(tiling: VideoDecodeTiling): Record<string, unknown> | undefined;
@@ -0,0 +1,70 @@
1
+ /**
2
+ * How a clip's VAE decode is split into spatial tiles, as sd.cpp splits it. Every tile runs the
3
+ * decoder over all the clip's frames and the tiles overlap by half, so a tiled decode recomputes the
4
+ * overlap: 704×1280 on the Wan 2.2 VAE (a 44×80 latent) in sd.cpp's default 32-pixel tiles is 2×4
5
+ * tiles, 2.33 times the work of one graph. Pure; the choice of tiling is `planDecodeTiling` in
6
+ * `video-estimate.ts`.
7
+ */
8
+ /** sd.cpp's default tile before #2059: 32 latent pixels on a side. */
9
+ export const ENGINE_TILE_LATENT = 32;
10
+ /** sd.cpp's default overlap between neighbouring tiles, a share of the tile. */
11
+ export const DECODE_TILE_OVERLAP = 0.5;
12
+ /** sd.cpp's smallest tile side in latent pixels. */
13
+ export const MIN_TILE_LATENT = 4;
14
+ /**
15
+ * Tiles along one axis of `size` latent pixels for tiles of `tile`, counted as sd.cpp's
16
+ * `sd_tiling_calc_tiles` counts them (the non-circular branch): an extra tile when the last one would
17
+ * overshoot by little, and never fewer than two once the axis is longer than a tile.
18
+ */
19
+ export function tilesAlong(size, tile, overlap = DECODE_TILE_OVERLAP) {
20
+ if (size <= tile)
21
+ return 1;
22
+ const tileOverlap = Math.trunc(tile * overlap);
23
+ const nonOverlap = tile - tileOverlap;
24
+ let count = Math.trunc((size - tileOverlap) / nonOverlap);
25
+ const overshoot = ((count + 1) * nonOverlap + tileOverlap) % size;
26
+ if (overshoot !== nonOverlap && overshoot <= count * (Math.trunc(tile / 2) - tileOverlap))
27
+ count += 1;
28
+ return Math.max(count, 2);
29
+ }
30
+ /**
31
+ * The tile side sd.cpp takes for `count` tiles along `size` (`rel_size` above 1): `size / (count −
32
+ * count·overlap + overlap)`, rounded as the pinned build rounds it; the whole axis for one tile.
33
+ */
34
+ export function tileSideFor(size, count, overlap = DECODE_TILE_OVERLAP) {
35
+ if (count <= 1)
36
+ return size;
37
+ const side = Math.round(size / (count - count * overlap + overlap));
38
+ return Math.max(Math.min(side, size), Math.min(MIN_TILE_LATENT, size));
39
+ }
40
+ /** The layout of `tiling` over a latent of `width` × `height` pixels; one graph when `tiling` is 1 × 1. */
41
+ export function tilingLayout(width, height, tiling) {
42
+ if (tiling.tilesX <= 1 && tiling.tilesY <= 1)
43
+ return { tiled: false, tilesX: 1, tilesY: 1, tileWidth: width, tileHeight: height, work: 1 };
44
+ const tileWidth = tileSideFor(width, tiling.tilesX);
45
+ const tileHeight = tileSideFor(height, tiling.tilesY);
46
+ return tiledLayout(width, height, tileWidth, tileHeight);
47
+ }
48
+ /** The layout of sd.cpp's own tiles (32 latent pixels) when a request only switches tiling on. */
49
+ export function engineDefaultLayout(width, height) {
50
+ return tiledLayout(width, height, Math.min(ENGINE_TILE_LATENT, width), Math.min(ENGINE_TILE_LATENT, height));
51
+ }
52
+ function tiledLayout(width, height, tileWidth, tileHeight) {
53
+ const tilesX = tilesAlong(width, tileWidth);
54
+ const tilesY = tilesAlong(height, tileHeight);
55
+ const work = (tilesX * tileWidth * tilesY * tileHeight) / Math.max(width * height, 1);
56
+ return { tiled: true, tilesX, tilesY, tileWidth, tileHeight, work };
57
+ }
58
+ /**
59
+ * The `vae_tiling_params` of a tiled decode: tile counts under both spellings sd.cpp has used
60
+ * (`rel_size_x/y` up to the pinned build, `rel_size_w/h` after #2059); a build reads its own and
61
+ * ignores the other. Undefined for one graph.
62
+ */
63
+ export function decodeTilingParams(tiling) {
64
+ if (tiling.tilesX <= 1 && tiling.tilesY <= 1)
65
+ return undefined;
66
+ const x = Math.max(tiling.tilesX, 1);
67
+ const y = Math.max(tiling.tilesY, 1);
68
+ return { enabled: true, rel_size_x: x, rel_size_y: y, rel_size_w: x, rel_size_h: y };
69
+ }
70
+ //# sourceMappingURL=video-tiling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video-tiling.js","sourceRoot":"","sources":["../../src/diffusion/video-tiling.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,9 @@
4
4
  * bus. Kept out of `create.ts`, which stays a list of `await`s.
5
5
  */
6
6
  import type { DataLayout } from '../config/index.js';
7
- import type { CoreEvents } from '../contracts/index.js';
7
+ import type { CoreEvents, HardwareInfoResponse, SystemInfo } from '../contracts/index.js';
8
8
  import type { ProcessJournal } from '../lock/index.js';
9
+ import type { BackendOutputSink, GpuClaimHook } from '../runtime/shared/index.js';
9
10
  import { DiffusionService } from './service.js';
10
11
  import type { DiffusionServiceDeps } from './service.js';
11
12
  export interface WireDiffusionOptions {
@@ -14,11 +15,23 @@ export interface WireDiffusionOptions {
14
15
  instanceId: string;
15
16
  emit: <K extends keyof CoreEvents>(name: K, payload: CoreEvents[K]) => void;
16
17
  log: (level: 'info' | 'warn' | 'debug', msg: string) => void;
18
+ /** Every stdout/stderr line `sd-server` prints, for the life of the session. */
19
+ backendOutput?: BackendOutputSink;
20
+ /** The core's hardware service; the video estimate reads its facts, the override applied. */
21
+ hardware?: {
22
+ info(): Promise<HardwareInfoResponse>;
23
+ };
17
24
  platform?: NodeJS.Platform;
18
25
  env?: NodeJS.ProcessEnv;
26
+ /** Core's GPU residency (task 2.15), asked before every `sd-server` spawn. */
27
+ claimGpu?: GpuClaimHook;
19
28
  /** Test seams, straight through to the service. */
20
29
  overrides?: Pick<DiffusionServiceDeps, 'http' | 'spawn' | 'timings' | 'idleTickMs' | 'now' | 'sleep' | 'drawSeed'>;
21
30
  }
22
31
  /** The journal entry an `sd-server` gets the moment it starts, so a crashed owner's successor can reap it. */
23
32
  export declare function diffusionJournal(journal: Pick<ProcessJournal, 'add' | 'remove'>, instanceId: string, now?: () => number): NonNullable<DiffusionServiceDeps['journal']>;
33
+ /** The facts the video estimate reads, out of the hardware service's answer. */
34
+ export declare function hardwareSystemInfo(hardware: {
35
+ info(): Promise<HardwareInfoResponse>;
36
+ }): () => Promise<SystemInfo>;
24
37
  export declare function wireDiffusion(options: WireDiffusionOptions): DiffusionService;
@@ -21,6 +21,10 @@ export function diffusionJournal(journal, instanceId, now = Date.now) {
21
21
  remove: (pid) => journal.remove(pid),
22
22
  };
23
23
  }
24
+ /** The facts the video estimate reads, out of the hardware service's answer. */
25
+ export function hardwareSystemInfo(hardware) {
26
+ return async () => (await hardware.info()).info;
27
+ }
24
28
  export function wireDiffusion(options) {
25
29
  const service = new DiffusionService({
26
30
  paths: options.layout.diffusion,
@@ -28,8 +32,11 @@ export function wireDiffusion(options) {
28
32
  emit: options.emit,
29
33
  log: options.log,
30
34
  journal: diffusionJournal(options.journal, options.instanceId),
35
+ ...(options.hardware ? { systemInfo: hardwareSystemInfo(options.hardware) } : {}),
31
36
  ...(options.platform ? { platform: options.platform } : {}),
32
37
  ...(options.env ? { env: options.env } : {}),
38
+ ...(options.claimGpu ? { claimGpu: options.claimGpu } : {}),
39
+ ...(options.backendOutput ? { backendOutput: options.backendOutput } : {}),
33
40
  ...options.overrides,
34
41
  });
35
42
  service.start();
@@ -1 +1 @@
1
- {"version":3,"file":"wiring.js","sourceRoot":"","sources":["../../src/diffusion/wiring.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAkB/C,8GAA8G;AAC9G,MAAM,UAAU,gBAAgB,CAC9B,OAA+C,EAC/C,UAAkB,EAClB,MAAoB,IAAI,CAAC,GAAG;IAE5B,OAAO;QACL,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CACrC,OAAO,CAAC,GAAG,CAAC;YACV,WAAW,EAAE,UAAU;YACvB,GAAG;YACH,gBAAgB,EAAE,CAAC,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI;YACrD,GAAG;YACH,QAAQ,EAAE,WAAW;YACrB,QAAQ,EAAE,OAAO;YACjB,IAAI;YACJ,UAAU,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE;SAC1C,CAAC;QACJ,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;KACrC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAA6B;IACzD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC;QACnC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS;QAC/B,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;QAC/B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;QAC9D,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,GAAG,OAAO,CAAC,SAAS;KACrB,CAAC,CAAA;IACF,OAAO,CAAC,KAAK,EAAE,CAAA;IACf,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"wiring.js","sourceRoot":"","sources":["../../src/diffusion/wiring.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAGjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAwB/C,8GAA8G;AAC9G,MAAM,UAAU,gBAAgB,CAC9B,OAA+C,EAC/C,UAAkB,EAClB,MAAoB,IAAI,CAAC,GAAG;IAE5B,OAAO;QACL,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CACrC,OAAO,CAAC,GAAG,CAAC;YACV,WAAW,EAAE,UAAU;YACvB,GAAG;YACH,gBAAgB,EAAE,CAAC,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI;YACrD,GAAG;YACH,QAAQ,EAAE,WAAW;YACrB,QAAQ,EAAE,OAAO;YACjB,IAAI;YACJ,UAAU,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE;SAC1C,CAAC;QACJ,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;KACrC,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,kBAAkB,CAAC,QAElC;IACC,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAA6B;IACzD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC;QACnC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS;QAC/B,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;QAC/B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;QAC9D,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,OAAO,CAAC,SAAS;KACrB,CAAC,CAAA;IACF,OAAO,CAAC,KAAK,EAAE,CAAA;IACf,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -17,12 +17,18 @@ export declare function usesReferences(workflow: ImageWorkflowId): boolean;
17
17
  * `upscale` is a re-detail pass that keeps most of the enlarged source.
18
18
  */
19
19
  export declare function defaultStrength(workflow: ImageWorkflowId): number;
20
+ /**
21
+ * Qwen Image 2.1 and its 8-step Turbo checkpoint: one architecture, the same text encoder, vision
22
+ * projector and VAE, so the same workflows and the same engine floor.
23
+ */
24
+ export declare function isQwenImage21(family: string): boolean;
20
25
  /**
21
26
  * img2img and masking are generic in sd.cpp (the init image is VAE-encoded and noised to `strength`,
22
27
  * a mask blends latents), so the established base families get them; a distilled model such as
23
28
  * Krea 2 Turbo keeps to its verified Create. Reference-guided generation and instruction edits need
24
- * a model trained on reference images: FLUX.2 Klein and Qwen Image 2.1, which also needs its vision
25
- * projector loaded (`workflowsForSpec`). Anything else, video families included, only creates.
29
+ * a model trained on reference images: FLUX.2 Klein and Qwen Image 2.1 (Turbo included, which the
30
+ * official checkpoint trains for editing), which also needs its vision projector loaded
31
+ * (`workflowsForSpec`). Anything else, video families included, only creates.
26
32
  */
27
33
  export declare function workflowsForFamily(family: string): ImageWorkflowId[];
28
34
  /** The workflows the loaded server can actually run: Qwen Image 2.1 without `llmVision` only creates. */
@@ -37,19 +37,27 @@ export function defaultStrength(workflow) {
37
37
  return 0.35;
38
38
  return 0.75;
39
39
  }
40
+ /**
41
+ * Qwen Image 2.1 and its 8-step Turbo checkpoint: one architecture, the same text encoder, vision
42
+ * projector and VAE, so the same workflows and the same engine floor.
43
+ */
44
+ export function isQwenImage21(family) {
45
+ return family === 'qwen-image-2.1' || family === 'qwen-image-2.1-turbo';
46
+ }
40
47
  /**
41
48
  * img2img and masking are generic in sd.cpp (the init image is VAE-encoded and noised to `strength`,
42
49
  * a mask blends latents), so the established base families get them; a distilled model such as
43
50
  * Krea 2 Turbo keeps to its verified Create. Reference-guided generation and instruction edits need
44
- * a model trained on reference images: FLUX.2 Klein and Qwen Image 2.1, which also needs its vision
45
- * projector loaded (`workflowsForSpec`). Anything else, video families included, only creates.
51
+ * a model trained on reference images: FLUX.2 Klein and Qwen Image 2.1 (Turbo included, which the
52
+ * official checkpoint trains for editing), which also needs its vision projector loaded
53
+ * (`workflowsForSpec`). Anything else, video families included, only creates.
46
54
  */
47
55
  export function workflowsForFamily(family) {
56
+ if (isQwenImage21(family))
57
+ return ['create', 'reference', 'edit'];
48
58
  switch (family) {
49
59
  case 'flux.2-klein':
50
60
  return ['create', 'transform', 'inpaint', 'extend', 'upscale', 'reference', 'edit'];
51
- case 'qwen-image-2.1':
52
- return ['create', 'reference', 'edit'];
53
61
  case 'krea-2-turbo':
54
62
  return ['create'];
55
63
  case 'z-image':
@@ -65,7 +73,7 @@ export function workflowsForFamily(family) {
65
73
  /** The workflows the loaded server can actually run: Qwen Image 2.1 without `llmVision` only creates. */
66
74
  export function workflowsForSpec(spec) {
67
75
  const workflows = workflowsForFamily(spec.family);
68
- if (spec.family === 'qwen-image-2.1' && spec.files.llmVision === undefined)
76
+ if (isQwenImage21(spec.family) && spec.files.llmVision === undefined)
69
77
  return workflows.filter((workflow) => !usesReferences(workflow));
70
78
  return workflows;
71
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/diffusion/workflow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,CAAC,MAAM,eAAe,GAA+B;IACzD,QAAQ;IACR,WAAW;IACX,SAAS;IACT,QAAQ;IACR,SAAS;IACT,WAAW;IACX,MAAM;CACP,CAAA;AAED,MAAM,UAAU,UAAU,CAAC,OAA+C;IACxE,OAAO,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAA;AACrC,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,aAAa,CAAC,QAAyB;IACrD,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,SAAS,CAAA;AAC9G,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,QAAyB;IAChD,OAAO,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,QAAQ,CAAA;AACxD,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,cAAc,CAAC,QAAyB;IACtD,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,MAAM,CAAA;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,QAAyB;IACvD,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAA;IACrC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACvC,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,cAAc;YACjB,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;QACrF,KAAK,gBAAgB;YACnB,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;QACxC,KAAK,cAAc;YACjB,OAAO,CAAC,QAAQ,CAAC,CAAA;QACnB,KAAK,SAAS,CAAC;QACf,KAAK,YAAY;YACf,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;QAChE;YACE,kFAAkF;YAClF,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;YAC/F,OAAO,CAAC,QAAQ,CAAC,CAAA;IACrB,CAAC;AACH,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,gBAAgB,CAAC,IAA0C;IACzE,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACjD,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS;QACxE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAA;IAClE,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,mGAAmG;AACnG,MAAM,CAAC,MAAM,eAAe,GAA+B,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAA;AAEvF,qFAAqF;AACrF,MAAM,UAAU,uBAAuB,CAAC,OAAe;IACrD,OAAO,CAAC,QAAQ,CAAC,CAAA;AACnB,CAAC"}
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/diffusion/workflow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,CAAC,MAAM,eAAe,GAA+B;IACzD,QAAQ;IACR,WAAW;IACX,SAAS;IACT,QAAQ;IACR,SAAS;IACT,WAAW;IACX,MAAM;CACP,CAAA;AAED,MAAM,UAAU,UAAU,CAAC,OAA+C;IACxE,OAAO,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAA;AACrC,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,aAAa,CAAC,QAAyB;IACrD,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,SAAS,CAAA;AAC9G,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,QAAyB;IAChD,OAAO,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,QAAQ,CAAA;AACxD,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,cAAc,CAAC,QAAyB;IACtD,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,MAAM,CAAA;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,QAAyB;IACvD,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAA;IACrC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACvC,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,MAAM,KAAK,gBAAgB,IAAI,MAAM,KAAK,sBAAsB,CAAA;AACzE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,IAAI,aAAa,CAAC,MAAM,CAAC;QAAE,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;IACjE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,cAAc;YACjB,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;QACrF,KAAK,cAAc;YACjB,OAAO,CAAC,QAAQ,CAAC,CAAA;QACnB,KAAK,SAAS,CAAC;QACf,KAAK,YAAY;YACf,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;QAChE;YACE,kFAAkF;YAClF,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;YAC/F,OAAO,CAAC,QAAQ,CAAC,CAAA;IACrB,CAAC;AACH,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,gBAAgB,CAAC,IAA0C;IACzE,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACjD,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS;QAClE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAA;IAClE,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,mGAAmG;AACnG,MAAM,CAAC,MAAM,eAAe,GAA+B,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAA;AAEvF,qFAAqF;AACrF,MAAM,UAAU,uBAAuB,CAAC,OAAe;IACrD,OAAO,CAAC,QAAQ,CAAC,CAAA;AACnB,CAAC"}
@@ -8,6 +8,10 @@
8
8
  * - `Range: bytes=N-` → 206 + validated `Content-Range`; 200/416 → restart from 0; 408/429/5xx retry
9
9
  * - 5 retries per stall, counter reset after every 1 MiB of fresh progress
10
10
  * - combined progress `{transferred,total}` after resume, every 10 MiB per file, per file end, task end
11
+ * (with `streams` > 1 also every 250 ms while bytes flow: a terminal draws from it, the app's bar
12
+ * does not, and the app never sets `streams`)
13
+ * - with `streams` > 1, a hash-pinned file of at least 32 MiB downloads over byte ranges in parallel
14
+ * (`segmented.ts`), falling back to one stream when the server cannot serve ranges
11
15
  * - verification (size, sha256) after all files; on failure the file and its directory (non-recursive)
12
16
  * are removed and the task fails; cancel keeps every partial and finished file
13
17
  * - preflight: Windows path limit, free space with 512 MiB headroom (skipped when unknown)
@@ -34,6 +38,10 @@ export interface DownloadOptions {
34
38
  }
35
39
  export declare const DOWNLOAD_CANCELLED = "Download cancelled";
36
40
  export interface DownloaderDeps {
41
+ /** Parallel byte-range streams for a hash-pinned file of at least 32 MiB (`segmented.ts`); one by default. */
42
+ streams?: number;
43
+ /** Milliseconds, for the time-based progress cadence `streams` > 1 adds. */
44
+ now?: () => number;
37
45
  dataFolder: string;
38
46
  platform: NodeJS.Platform;
39
47
  fetch: typeof fetch;
@@ -50,6 +58,15 @@ export interface DownloaderDeps {
50
58
  /** The events a download raises; narrow on purpose, so a caller cannot be handed anything else. */
51
59
  export type DownloaderEventName = 'download:progress' | 'download:stage' | 'model:validation-started';
52
60
  export type DownloaderEmit = <K extends DownloaderEventName>(name: K, payload: CoreEvents[K]) => void;
61
+ /** One running task's combined progress, as its last `download:progress` event said. */
62
+ export interface DownloadProgress {
63
+ taskId: string;
64
+ transferred: number;
65
+ total: number;
66
+ percent: number;
67
+ }
68
+ /** With `streams` > 1, progress is also reported this often while bytes flow. */
69
+ export declare const TIMED_PROGRESS_INTERVAL_MS = 250;
53
70
  export declare function defaultAvailableSpace(path: string): Promise<number | undefined>;
54
71
  export declare function defaultSleep(ms: number, signal: AbortSignal): Promise<void>;
55
72
  /** Resolve the longest existing prefix through symlinks, then re-append the rest (Rust `canonicalize_existing_prefix`). */
@@ -60,6 +77,11 @@ export declare class Downloader {
60
77
  constructor(deps: DownloaderDeps);
61
78
  /** Task ids currently running. */
62
79
  active(): string[];
80
+ /**
81
+ * Every running task's last combined progress (zeros before its first report): what a client that
82
+ * reconnects mid-transfer reads from the control snapshot instead of waiting for the next event.
83
+ */
84
+ snapshot(): DownloadProgress[];
63
85
  /** Cancel a running task. Keeps partials and finished files. */
64
86
  cancel(taskId: string): boolean;
65
87
  /**
@@ -8,6 +8,10 @@
8
8
  * - `Range: bytes=N-` → 206 + validated `Content-Range`; 200/416 → restart from 0; 408/429/5xx retry
9
9
  * - 5 retries per stall, counter reset after every 1 MiB of fresh progress
10
10
  * - combined progress `{transferred,total}` after resume, every 10 MiB per file, per file end, task end
11
+ * (with `streams` > 1 also every 250 ms while bytes flow: a terminal draws from it, the app's bar
12
+ * does not, and the app never sets `streams`)
13
+ * - with `streams` > 1, a hash-pinned file of at least 32 MiB downloads over byte ranges in parallel
14
+ * (`segmented.ts`), falling back to one stream when the server cannot serve ranges
11
15
  * - verification (size, sha256) after all files; on failure the file and its directory (non-recursive)
12
16
  * are removed and the task fails; cancel keeps every partial and finished file
13
17
  * - preflight: Windows path limit, free space with 512 MiB headroom (skipped when unknown)
@@ -22,8 +26,11 @@ import { dirname, isAbsolute, join, relative, resolve } from 'node:path';
22
26
  import { checkFreeSpace, checkPathWithinLimit, diskErrToString, remainingBytes } from './disk.js';
23
27
  import { classifyDownloadStatus, classifyResumeStatus, DownloadRequestError, downloadStage, expectedDownloadSize, HEAD_TIMEOUT_MS, MAX_STREAM_RETRIES, PROGRESS_EMIT_INTERVAL_BYTES, RETRY_RESET_PROGRESS_BYTES, retryDelayMs, shouldBypassProxy, sidecarPath, validateContentRange, validateProxyConfig, } from './protocol.js';
24
28
  import { policyFetchFor } from './proxy-fetch.js';
29
+ import { downloadSegments, SEGMENTED_MIN_BYTES } from './segmented.js';
25
30
  import { verifyDownloadedFile } from './verify.js';
26
31
  export const DOWNLOAD_CANCELLED = 'Download cancelled';
32
+ /** With `streams` > 1, progress is also reported this often while bytes flow. */
33
+ export const TIMED_PROGRESS_INTERVAL_MS = 250;
27
34
  export async function defaultAvailableSpace(path) {
28
35
  let probe = path;
29
36
  for (;;) {
@@ -87,6 +94,7 @@ export class Downloader {
87
94
  sleep: defaultSleep,
88
95
  retryBaseMs: 1000,
89
96
  log: () => { },
97
+ now: Date.now,
90
98
  ...deps,
91
99
  };
92
100
  }
@@ -94,6 +102,13 @@ export class Downloader {
94
102
  active() {
95
103
  return [...this.tasks.keys()];
96
104
  }
105
+ /**
106
+ * Every running task's last combined progress (zeros before its first report): what a client that
107
+ * reconnects mid-transfer reads from the control snapshot instead of waiting for the next event.
108
+ */
109
+ snapshot() {
110
+ return [...this.tasks.entries()].map(([taskId, task]) => task.progress ?? { taskId, transferred: 0, total: 0, percent: 0 });
111
+ }
97
112
  /** Cancel a running task. Keeps partials and finished files. */
98
113
  cancel(taskId) {
99
114
  const task = this.tasks.get(taskId);
@@ -171,7 +186,11 @@ export class Downloader {
171
186
  const emitProgress = () => {
172
187
  const transferred = [...progress.values()].reduce((a, b) => a + b, 0);
173
188
  const percent = totalSize > 0 ? Math.min(100, (transferred / totalSize) * 100) : 0;
174
- this.deps.emit('download:progress', { taskId, transferred, total: totalSize, percent });
189
+ const current = { taskId, transferred, total: totalSize, percent };
190
+ const task = this.tasks.get(taskId);
191
+ if (task !== undefined && task.controller.signal === signal)
192
+ task.progress = current;
193
+ this.deps.emit('download:progress', current);
175
194
  };
176
195
  const results = await Promise.all(items.map((item, i) => this.downloadOne(item, savePaths[i], `${taskId}-${i}`, sizes.get(item.url) ?? 0, {
177
196
  headers,
@@ -303,6 +322,36 @@ export class Downloader {
303
322
  throw disk(e);
304
323
  });
305
324
  const expectedSize = expectedDownloadSize(item.size, fileSize);
325
+ const streams = this.deps.streams ?? 1;
326
+ if (!shouldResume && item.sha256 && expectedSize >= SEGMENTED_MIN_BYTES && streams > 1) {
327
+ reportStage('connecting', 0);
328
+ const done = await downloadSegments({
329
+ url: item.url,
330
+ destination: savePath,
331
+ size: expectedSize,
332
+ sha256: item.sha256,
333
+ streams,
334
+ fetch: fetchImpl,
335
+ headers,
336
+ signal,
337
+ sleep: this.deps.sleep,
338
+ retryBaseMs: this.deps.retryBaseMs,
339
+ now: this.deps.now,
340
+ progress: (bytes) => {
341
+ progress.set(fileId, bytes);
342
+ emitProgress();
343
+ },
344
+ }).catch((e) => {
345
+ if (signal.aborted)
346
+ throw new Error(DOWNLOAD_CANCELLED);
347
+ throw new Error(`Download failed for '${item.url}': ${e.message}`);
348
+ });
349
+ if (done) {
350
+ await rm(urlPath, { force: true }).catch(() => { });
351
+ return savePath;
352
+ }
353
+ this.deps.log('info', `Ranges are unavailable for '${item.url}'; downloading in one stream`);
354
+ }
306
355
  let res;
307
356
  let totalTransferred = 0;
308
357
  if (shouldResume) {
@@ -351,6 +400,10 @@ export class Downloader {
351
400
  const close = () => new Promise((ok, fail) => writer.end((e) => (e ? fail(disk(e)) : ok())));
352
401
  let body = res.body ?? new ReadableStream({ start: (c) => c.close() });
353
402
  let reader = body.getReader();
403
+ // The app's bar is fed every 10 MiB and nothing more; a client that asked for parallel streams
404
+ // also gets a report every `TIMED_PROGRESS_INTERVAL_MS` while bytes flow.
405
+ const timedProgress = streams > 1;
406
+ let reportedAt = this.deps.now();
354
407
  let delta = 0;
355
408
  let retryCount = 0;
356
409
  let sinceReset = 0;
@@ -379,7 +432,9 @@ export class Downloader {
379
432
  retryCount = 0;
380
433
  sinceReset = 0;
381
434
  }
382
- if (delta >= PROGRESS_EMIT_INTERVAL_BYTES) {
435
+ if (delta >= PROGRESS_EMIT_INTERVAL_BYTES ||
436
+ (timedProgress && this.deps.now() - reportedAt >= TIMED_PROGRESS_INTERVAL_MS)) {
437
+ reportedAt = this.deps.now();
383
438
  progress.set(fileId, totalTransferred);
384
439
  emitProgress();
385
440
  delta = 0;