@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
@@ -3,11 +3,13 @@
3
3
  * under `<data>/diffusion/models/`. Port of `install.rs` in `tauri-plugin-atomic-diffusion` (app
4
4
  * commit `767ff6350`).
5
5
  *
6
- * The download and the extraction happen in the app, through its ordinary download pipeline. This
7
- * module finalises a tree (permissions, sanity probe, ownership marker, install record) and refuses
8
- * to delete anything it did not mark as its own.
6
+ * The download, the extraction and the removal of a build are the engine-builds module's
7
+ * (`src/engine-builds/`, change `move-sdcpp-mlx-install-to-core`). This module keeps what both
8
+ * share with image generation: the install record and its marker, the probe that a tree is
9
+ * stable-diffusion.cpp, the listing a load picks its build from, and the model-file store.
9
10
  */
10
- import type { DiffusionBackendInstallRecord, DiffusionModelFile, FinalizeBackendInstallArgs } from '../contracts/index.js';
11
+ import type { AtomicCoreError, DiffusionBackendInstallRecord, DiffusionModelFile } from '../contracts/index.js';
12
+ import type { ExitInfo } from '../runtime/llamacpp/index.js';
11
13
  export declare const OWNER_MARKER = ".atomic-owned";
12
14
  export declare const INSTALL_RECORD = "install.json";
13
15
  /**
@@ -36,20 +38,42 @@ export declare function writeInstallRecord(dir: string, record: DiffusionBackend
36
38
  export declare function readInstallRecord(dir: string): Promise<DiffusionBackendInstallRecord | undefined>;
37
39
  export declare function isOwned(dir: string): Promise<boolean>;
38
40
  export declare function probeOutputIsSdcpp(text: string): boolean;
41
+ /**
42
+ * The verdict on a finished `--help` run: nothing when the output is stable-diffusion.cpp's,
43
+ * otherwise the error to raise. A binary the OS loader could not start is a missing runtime, not
44
+ * the wrong program, so the exit code and the loader's own words are read before the output is.
45
+ */
46
+ export declare function probeVerdict(binary: string, text: string, exit: ExitInfo, platform: NodeJS.Platform): AtomicCoreError | undefined;
39
47
  /**
40
48
  * Run `<binary> --help` and check that the output is stable-diffusion.cpp's. A spawn failure is
41
49
  * retried (a scanner may still be holding the file); a binary that never answers is killed.
42
50
  */
43
51
  export declare function probeBinary(binary: string, deps?: InstallDeps): Promise<void>;
44
- /** Finalise a tree the app extracted: permissions, probe, then marker and record. */
45
- export declare function finalizeBackendInstall(backendsRoot: string, args: FinalizeBackendInstallArgs, deps?: InstallDeps): Promise<DiffusionBackendInstallRecord>;
46
- /** Every `<root>/<tag>/<backendId>/install.json` with its marker and its server binary, newest first. */
47
- export declare function listInstalledBackends(backendsRoot: string, platform?: NodeJS.Platform): Promise<DiffusionBackendInstallRecord[]>;
52
+ export interface HelpProbeOptions {
53
+ platform: NodeJS.Platform;
54
+ timeoutMs: number;
55
+ deps: Pick<InstallDeps, 'env' | 'spawnRetryDelayMs' | 'log'>;
56
+ /** The `ENGINE_INSTALL_FAILED` message for a binary that never answers, and for one that never starts. */
57
+ noResponse: string;
58
+ couldNotStart: string;
59
+ }
48
60
  /**
49
- * Delete an installed tree. Refuses trees without the ownership marker and anything outside the
50
- * backends root; whether the tree is in use is the caller's question.
61
+ * Run `<binary> --help` from its own folder and answer how it exited and what it printed. A spawn
62
+ * failure is retried (a scanner may still be holding the freshly written file); a binary that never
63
+ * answers is killed. Shared by every engine probe (sd.cpp here, `mlx-server` in `engine-builds/`).
51
64
  */
52
- export declare function removeBackend(backendsRoot: string, dir: string, platform?: NodeJS.Platform): Promise<void>;
65
+ export declare function runHelpProbe(binary: string, options: HelpProbeOptions): Promise<{
66
+ exit: ExitInfo;
67
+ text: string;
68
+ }>;
69
+ /**
70
+ * An unpacked tree made runnable and checked: `sd-server` present, the executables marked as such,
71
+ * and `sd-cli` (else `sd-server`) answering `--help` as stable-diffusion.cpp. Throws
72
+ * `ENGINE_INSTALL_FAILED` otherwise.
73
+ */
74
+ export declare function prepareSdcppTree(dir: string, deps?: InstallDeps): Promise<void>;
75
+ /** Every `<root>/<tag>/<backendId>/install.json` with its marker and its server binary, newest first. */
76
+ export declare function listInstalledBackends(backendsRoot: string, platform?: NodeJS.Platform): Promise<DiffusionBackendInstallRecord[]>;
53
77
  /**
54
78
  * Regular files under the models root, recursively, with `/`-separated relative paths. Hidden files
55
79
  * and in-flight downloads are skipped.
@@ -3,14 +3,15 @@
3
3
  * under `<data>/diffusion/models/`. Port of `install.rs` in `tauri-plugin-atomic-diffusion` (app
4
4
  * commit `767ff6350`).
5
5
  *
6
- * The download and the extraction happen in the app, through its ordinary download pipeline. This
7
- * module finalises a tree (permissions, sanity probe, ownership marker, install record) and refuses
8
- * to delete anything it did not mark as its own.
6
+ * The download, the extraction and the removal of a build are the engine-builds module's
7
+ * (`src/engine-builds/`, change `move-sdcpp-mlx-install-to-core`). This module keeps what both
8
+ * share with image generation: the install record and its marker, the probe that a tree is
9
+ * stable-diffusion.cpp, the listing a load picks its build from, and the model-file store.
9
10
  */
10
11
  import { chmod, mkdir, readdir, readFile, rm, rmdir, stat, writeFile } from 'node:fs/promises';
11
12
  import { dirname, join, relative, sep } from 'node:path';
12
13
  import { buildProcessEnv, spawnManaged } from '../runtime/shared/index.js';
13
- import { locate, samePath } from './containment.js';
14
+ import { locate } from './containment.js';
14
15
  import { diffusionError, ioError } from './errors.js';
15
16
  export const OWNER_MARKER = '.atomic-owned';
16
17
  export const INSTALL_RECORD = 'install.json';
@@ -26,6 +27,20 @@ export const PROBE_TIMEOUT_MS = 120_000;
26
27
  export const PROBE_SPAWN_ATTEMPTS = 3;
27
28
  export const PROBE_SPAWN_RETRY_DELAY_MS = 1_000;
28
29
  const PROBE_MARKERS = ['stable-diffusion.cpp', '--cfg-scale'];
30
+ /**
31
+ * NTSTATUS codes a Windows process ends with when the loader gives up before `main`, so it prints
32
+ * nothing of its own. Upstream's Windows ROCm archive, for one, imports `amdhip64_7.dll` and
33
+ * `hipblas.dll` from an installed HIP SDK without shipping them.
34
+ */
35
+ const WINDOWS_LOADER_FAILURES = new Map([
36
+ [0xc000_0135, 'STATUS_DLL_NOT_FOUND'],
37
+ [0xc000_0138, 'STATUS_ORDINAL_NOT_FOUND'],
38
+ [0xc000_0139, 'STATUS_ENTRYPOINT_NOT_FOUND'],
39
+ [0xc000_007b, 'STATUS_INVALID_IMAGE_FORMAT'],
40
+ [0xc000_0142, 'STATUS_DLL_INIT_FAILED'],
41
+ ]);
42
+ /** What glibc's `ld.so` and macOS `dyld` print when a library is missing, lowercase. */
43
+ const LOADER_MARKERS = ['error while loading shared libraries', 'library not loaded'];
29
44
  export function serverBinaryName(platform) {
30
45
  return platform === 'win32' ? 'sd-server.exe' : 'sd-server';
31
46
  }
@@ -102,8 +117,34 @@ export function probeOutputIsSdcpp(text) {
102
117
  const lower = text.toLowerCase();
103
118
  return PROBE_MARKERS.some((marker) => lower.includes(marker));
104
119
  }
105
- function couldNotStart(binary, error) {
106
- return diffusionError('ENGINE_INSTALL_FAILED', 'The image engine could not be started.', `${binary}: ${error.message}`);
120
+ /** `exit code 1`, `exit code 0xC0000135 (STATUS_DLL_NOT_FOUND)`, `signal SIGSEGV`. */
121
+ function describeProbeExit(exit, platform) {
122
+ if (exit.code === null)
123
+ return exit.signal === null ? 'unknown status' : `signal ${String(exit.signal)}`;
124
+ const code = exit.code >>> 0;
125
+ if (platform !== 'win32' || code < 0x8000_0000)
126
+ return `exit code ${exit.code}`;
127
+ const name = WINDOWS_LOADER_FAILURES.get(code);
128
+ return `exit code 0x${code.toString(16).toUpperCase()}${name ? ` (${name})` : ''}`;
129
+ }
130
+ /**
131
+ * The verdict on a finished `--help` run: nothing when the output is stable-diffusion.cpp's,
132
+ * otherwise the error to raise. A binary the OS loader could not start is a missing runtime, not
133
+ * the wrong program, so the exit code and the loader's own words are read before the output is.
134
+ */
135
+ export function probeVerdict(binary, text, exit, platform) {
136
+ if (probeOutputIsSdcpp(text))
137
+ return undefined;
138
+ const output = [...text].slice(0, 800).join('');
139
+ const status = `${binary}: ${describeProbeExit(exit, platform)}`;
140
+ const lower = text.toLowerCase();
141
+ const loaderFailed = (platform === 'win32' && exit.code !== null && WINDOWS_LOADER_FAILURES.has(exit.code >>> 0)) ||
142
+ LOADER_MARKERS.some((marker) => lower.includes(marker));
143
+ if (loaderFailed)
144
+ return diffusionError('ENGINE_INSTALL_FAILED', 'The image engine could not load a library it needs.', output.trim() === '' ? status : `${status}\n${output}`);
145
+ if (text.trim() === '')
146
+ return diffusionError('ENGINE_INSTALL_FAILED', 'The image engine exited without printing anything.', status);
147
+ return diffusionError('ENGINE_INSTALL_FAILED', 'The downloaded binary is not stable-diffusion.cpp.', output);
107
148
  }
108
149
  /**
109
150
  * Run `<binary> --help` and check that the output is stable-diffusion.cpp's. A spawn failure is
@@ -126,6 +167,24 @@ export async function probeBinary(binary, deps = {}) {
126
167
  }
127
168
  }
128
169
  async function probeOnce(binary, platform, timeoutMs, deps) {
170
+ const { exit, text } = await runHelpProbe(binary, {
171
+ platform,
172
+ timeoutMs,
173
+ deps,
174
+ noResponse: 'The image engine did not respond to --help.',
175
+ couldNotStart: 'The image engine could not be started.',
176
+ });
177
+ const verdict = probeVerdict(binary, text, exit, platform);
178
+ if (verdict)
179
+ throw verdict;
180
+ }
181
+ /**
182
+ * Run `<binary> --help` from its own folder and answer how it exited and what it printed. A spawn
183
+ * failure is retried (a scanner may still be holding the freshly written file); a binary that never
184
+ * answers is killed. Shared by every engine probe (sd.cpp here, `mlx-server` in `engine-builds/`).
185
+ */
186
+ export async function runHelpProbe(binary, options) {
187
+ const { platform, timeoutMs, deps } = options;
129
188
  const { env, cwd } = buildProcessEnv({
130
189
  platform,
131
190
  baseEnv: deps.env ?? process.env,
@@ -143,12 +202,12 @@ async function probeOnce(binary, platform, timeoutMs, deps) {
143
202
  clearTimeout(timer);
144
203
  if (outcome === 'timeout') {
145
204
  await proc.terminate(0);
146
- throw diffusionError('ENGINE_INSTALL_FAILED', 'The image engine did not respond to --help.', `${binary} timed out after ${Math.round(timeoutMs / 1000)}s`);
205
+ throw diffusionError('ENGINE_INSTALL_FAILED', options.noResponse, `${binary} timed out after ${Math.round(timeoutMs / 1000)}s`);
147
206
  }
148
207
  const failure = proc.spawnFailure();
149
208
  if (failure) {
150
209
  if (attempt >= PROBE_SPAWN_ATTEMPTS)
151
- throw couldNotStart(binary, failure);
210
+ throw diffusionError('ENGINE_INSTALL_FAILED', options.couldNotStart, `${binary}: ${failure.message}`);
152
211
  deps.log?.('warn', `engine probe did not start (attempt ${attempt}/${PROBE_SPAWN_ATTEMPTS}): ${failure.message}`);
153
212
  await sleep(deps.spawnRetryDelayMs ?? PROBE_SPAWN_RETRY_DELAY_MS);
154
213
  continue;
@@ -156,20 +215,16 @@ async function probeOnce(binary, platform, timeoutMs, deps) {
156
215
  // Give the pipes a tick to flush their last lines.
157
216
  await sleep(10);
158
217
  const { stdout, stderr } = proc.output();
159
- const text = stdout + stderr;
160
- if (probeOutputIsSdcpp(text))
161
- return;
162
- throw diffusionError('ENGINE_INSTALL_FAILED', 'The downloaded binary is not stable-diffusion.cpp.', [...text].slice(0, 800).join(''));
218
+ return { exit: outcome, text: stdout + stderr };
163
219
  }
164
220
  }
165
- /** Finalise a tree the app extracted: permissions, probe, then marker and record. */
166
- export async function finalizeBackendInstall(backendsRoot, args, deps = {}) {
221
+ /**
222
+ * An unpacked tree made runnable and checked: `sd-server` present, the executables marked as such,
223
+ * and `sd-cli` (else `sd-server`) answering `--help` as stable-diffusion.cpp. Throws
224
+ * `ENGINE_INSTALL_FAILED` otherwise.
225
+ */
226
+ export async function prepareSdcppTree(dir, deps = {}) {
167
227
  const platform = deps.platform ?? process.platform;
168
- const { dir } = args;
169
- if (!(await isDirectory(dir)))
170
- throw diffusionError('ENGINE_INSTALL_FAILED', 'The engine directory does not exist.', dir);
171
- if ((await locate(dir, backendsRoot, platform)) === 'outside')
172
- throw diffusionError('INVALID_REQUEST', 'The engine directory is outside the diffusion backends folder.', dir);
173
228
  const server = join(dir, serverBinaryName(platform));
174
229
  if (!(await isFile(server)))
175
230
  throw diffusionError('ENGINE_INSTALL_FAILED', 'The archive did not contain sd-server.', server);
@@ -179,17 +234,6 @@ export async function finalizeBackendInstall(backendsRoot, args, deps = {}) {
179
234
  // Some release layouts ship a bare `sd` too.
180
235
  await setExecutable(join(dir, platform === 'win32' ? 'sd.exe' : 'sd'), deps);
181
236
  await probeBinary((await isFile(cli)) ? cli : server, deps);
182
- const record = {
183
- tag: args.tag,
184
- backendId: args.backendId,
185
- backend: args.backend,
186
- engine: args.engine,
187
- sha256: args.sha256 ?? null,
188
- installedAtMs: (deps.now ?? Date.now)(),
189
- dir,
190
- };
191
- await writeInstallRecord(dir, record);
192
- return record;
193
237
  }
194
238
  /** Every `<root>/<tag>/<backendId>/install.json` with its marker and its server binary, newest first. */
195
239
  export async function listInstalledBackends(backendsRoot, platform = process.platform) {
@@ -210,25 +254,6 @@ export async function listInstalledBackends(backendsRoot, platform = process.pla
210
254
  return out.sort((a, b) => b.installedAtMs - a.installedAtMs);
211
255
  }
212
256
  const isEmptyDir = (dir) => readdir(dir).then((names) => names.length === 0, () => false);
213
- /**
214
- * Delete an installed tree. Refuses trees without the ownership marker and anything outside the
215
- * backends root; whether the tree is in use is the caller's question.
216
- */
217
- export async function removeBackend(backendsRoot, dir, platform = process.platform) {
218
- if ((await locate(dir, backendsRoot, platform)) !== 'inside')
219
- throw diffusionError('INVALID_REQUEST', 'That directory is not a diffusion backend install.', dir);
220
- if (!(await isDirectory(dir)))
221
- return;
222
- if (!(await isOwned(dir)))
223
- throw diffusionError('INVALID_REQUEST', 'Refusing to delete a directory Atomic Chat did not install.', `${dir} has no ${OWNER_MARKER} marker`);
224
- await rm(dir, { recursive: true, force: true }).catch((error) => {
225
- throw ioError('Could not remove the engine directory.', error);
226
- });
227
- // Drop the now-empty `<tag>` parent so the listing stays tidy.
228
- const parent = dirname(dir);
229
- if (!(await samePath(parent, backendsRoot, platform)) && (await isEmptyDir(parent)))
230
- await rmdir(parent).catch(() => { });
231
- }
232
257
  /**
233
258
  * Regular files under the models root, recursively, with `/`-separated relative paths. Hidden files
234
259
  * and in-flight downloads are skipped.
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/diffusion/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/diffusion/install.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,14 @@
3
3
  * with a single poll loop, cancel ladder, crash handling and CPU fallback. A kind owns everything
4
4
  * that names its request, its record, its engine route and its files; the runner owns the rest.
5
5
  */
6
- import type { DiffusionErrorBody, DiffusionModality, ImageJobProgress, ImageJobState } from '../contracts/index.js';
6
+ import type { DiffusionErrorBody, DiffusionModality, ImageJobProgress, ImageJobState, VideoEstimate } from '../contracts/index.js';
7
7
  import type { JobDeps } from './jobs.js';
8
8
  import type { DiffusionEmitter } from './session.js';
9
- import type { JobKindId } from './state.js';
9
+ import type { JobKindId, JobRecord } from './state.js';
10
+ import type { DecodeTiles } from './tracker.js';
10
11
  import type { ResolvedInputs, ServerCapabilities, ServerSpec } from './types.js';
11
12
  import type { ValidateDeps } from './validate.js';
13
+ import type { VideoDecodeTiling, VideoForecast } from './video-estimate.js';
12
14
  /** The fields the runner reads and writes on any job record, whatever its kind. */
13
15
  export interface JobCommon<Item, Progress> {
14
16
  id: string;
@@ -29,8 +31,27 @@ export interface SaveContext<Req> {
29
31
  /** The seed the job ran with (the batch seed for images). */
30
32
  seed: number;
31
33
  startedAt: number;
34
+ /** When the decode began (the last sampling step), when the tracker saw it. */
35
+ decodeStartedAt?: number | undefined;
32
36
  }
33
37
  export type Emit = DiffusionEmitter;
38
+ /**
39
+ * What a kind works out before its job starts: the video estimate, the forecast behind it, and how
40
+ * the clip's VAE decode is tiled.
41
+ */
42
+ export interface JobPlan {
43
+ /** On the record from the first event. */
44
+ estimate?: VideoEstimate;
45
+ /** Kept on the record for the live progress; never sent. */
46
+ forecast?: VideoForecast;
47
+ /** Kept on the record for the request body; absent: the pixel-frame threshold decides. */
48
+ decodeTiling?: VideoDecodeTiling;
49
+ }
50
+ /**
51
+ * Turns the tracker's snapshot, and the decode's tile pass when there is one, into the wire progress
52
+ * at `now`; one per job, so it may keep state.
53
+ */
54
+ export type ProgressModel<Progress> = (snapshot: ImageJobProgress, now: number, decodeTiles?: DecodeTiles) => Progress;
34
55
  export interface JobKind<Req, Job extends JobCommon<Item, Progress>, Item, Progress, Decoded> {
35
56
  id: JobKindId;
36
57
  /** The loaded model must be of this modality, or the job is refused before anything runs. */
@@ -48,17 +69,22 @@ export interface JobKind<Req, Job extends JobCommon<Item, Progress>, Item, Progr
48
69
  failed: string;
49
70
  };
50
71
  validate(request: Req, spec: ServerSpec, deps: ValidateDeps): Promise<void>;
51
- /** The record as it is inserted: inline bytes blanked, nothing started. */
52
- newJob(id: string, spec: ServerSpec, request: Req, now: number): Job;
72
+ /** What to know before the job starts, once the request is valid. Never rejects: a failure is no plan. */
73
+ prepare?(deps: JobDeps, request: Req, spec: ServerSpec): Promise<JobPlan | undefined>;
74
+ /** The record as it is inserted: inline bytes blanked, nothing started, the plan's estimate on it. */
75
+ newJob(id: string, spec: ServerSpec, request: Req, now: number, plan?: JobPlan): Job;
53
76
  resolveInputs(request: Req, deps: Pick<JobDeps, 'readSource'>): Promise<ResolvedInputs>;
54
- buildBody(request: Req, spec: ServerSpec, seed: number, inputs: ResolvedInputs): Record<string, unknown>;
77
+ /** The engine's request body; `plan` is what the job's record kept of its plan. */
78
+ buildBody(request: Req, spec: ServerSpec, seed: number, inputs: ResolvedInputs, plan?: Pick<JobPlan, 'decodeTiling'>): Record<string, unknown>;
55
79
  /** Steps and images the progress tracker counts. */
56
80
  trackerShape(request: Req): {
57
81
  steps: number;
58
82
  batch: number;
59
83
  };
60
- /** The wire progress out of the tracker's snapshot. */
61
- progress(snapshot: ImageJobProgress): Progress;
84
+ /** The job's progress model, made when the runner starts it (`startedAt`), across every attempt. */
85
+ progressModel(record: JobRecord, startedAt: number): ProgressModel<Progress>;
86
+ /** While generating, progress goes out at least this often (ms) besides every change; absent: on change only. */
87
+ heartbeatMs?: number;
62
88
  emitJob(emit: Emit, job: Job): void;
63
89
  emitProgress(emit: Emit, jobId: string, progress: Progress): void;
64
90
  /** Whether the engine promised to interrupt a running generation of this kind. */
@@ -13,9 +13,10 @@ import type { DiffusionCancelResult, DiffusionErrorBody, ImageGenerateRequest, I
13
13
  import type { Gallery } from './gallery.js';
14
14
  import type { SdHttpClient } from './http.js';
15
15
  import type { VideoGallery } from './video-gallery.js';
16
- import type { JobCommon, JobKind } from './job-kind.js';
16
+ import type { JobCommon, JobKind, JobPlan } from './job-kind.js';
17
17
  import type { AsyncMutex } from './mutex.js';
18
18
  import type { SessionDeps } from './session.js';
19
+ import type { ServerSpec } from './types.js';
19
20
  export { decodeImages, resolveInputs, withoutSources } from './image-job.js';
20
21
  export declare const IMG_GEN_PATH = "/sdcpp/v1/img_gen";
21
22
  export declare const VID_GEN_PATH = "/sdcpp/v1/vid_gen";
@@ -41,6 +42,10 @@ export interface JobDeps extends SessionDeps {
41
42
  drawSeed: () => number;
42
43
  readSource: (path: string) => Promise<Buffer>;
43
44
  isFile: (path: string) => Promise<boolean>;
45
+ /** The estimate a video job carries from its first event; absent: video jobs start without one. */
46
+ planVideo?: (request: VideoGenerateRequest, spec: ServerSpec) => Promise<JobPlan | undefined>;
47
+ /** A clip landed in the video gallery (the estimate's history is stale). */
48
+ videoSaved?: () => void;
44
49
  }
45
50
  export interface JobOutcome<J = ImageJob> {
46
51
  job: J;
@@ -17,7 +17,7 @@ import { IMAGE_JOB_KIND } from './image-job.js';
17
17
  import { VIDEO_JOB_KIND } from './video-job.js';
18
18
  import { classifyExit, diagnosticTail, GpuFaultWatch } from './progress.js';
19
19
  import { describeExit, exitCodeOf } from './server-process.js';
20
- import { loadFromSpec, stopKeepingSpec, takeDownSession } from './session.js';
20
+ import { loadFromSpec, stopKeepingSpec, takeDownSession, withOffloadFallback } from './session.js';
21
21
  import { isTerminalJobState } from './state.js';
22
22
  import { ProgressTracker } from './tracker.js';
23
23
  export { decodeImages, resolveInputs, withoutSources } from './image-job.js';
@@ -58,8 +58,8 @@ function setJobState(deps, id, next) {
58
58
  if (changed)
59
59
  emitJob(deps, id);
60
60
  }
61
- function setProgress(deps, id, kind, tracker) {
62
- const progress = kind.progress(tracker.snapshot());
61
+ function setProgress(deps, id, kind, tracker, model) {
62
+ const progress = model(tracker.snapshot(), deps.now(), tracker.decodeTiles());
63
63
  deps.state.updateJob(id, (record) => (record.job.progress = progress));
64
64
  kind.emitProgress(deps.emit, id, progress);
65
65
  }
@@ -97,6 +97,7 @@ export async function startJob(deps, kind, request) {
97
97
  if (spec.modality !== kind.modality)
98
98
  throw diffusionError('MODEL_INCOMPATIBLE', kind.messages.wrongModel, spec.modelId);
99
99
  await kind.validate(request, spec, { isFile: deps.isFile });
100
+ const plan = await kind.prepare?.(deps, request, spec);
100
101
  const id = randomUUID().replaceAll('-', '');
101
102
  if (state.activeJobId !== undefined)
102
103
  throw diffusionError('JOB_BUSY', kind.messages.busy, state.activeJobId);
@@ -104,8 +105,10 @@ export async function startJob(deps, kind, request) {
104
105
  state.clearIdle();
105
106
  const record = {
106
107
  kind: kind.id,
107
- job: kind.newJob(id, spec, request, deps.now()),
108
+ job: kind.newJob(id, spec, request, deps.now(), plan),
108
109
  cancel: { requested: false },
110
+ ...(plan?.forecast ? { forecast: plan.forecast } : {}),
111
+ ...(plan?.decodeTiling ? { decodeTiling: plan.decodeTiling } : {}),
109
112
  };
110
113
  state.insertJob(record);
111
114
  emitJob(deps, id);
@@ -197,31 +200,47 @@ async function execute(deps, kind, id, request, cancel) {
197
200
  const seed = seedOf(request, deps);
198
201
  const inputs = await kind.resolveInputs(request, deps);
199
202
  const started = deps.now();
200
- for (let attempts = 1;; attempts++) {
203
+ const record = deps.state.record(id);
204
+ if (!record)
205
+ throw internalError('job record vanished');
206
+ // One model for the whole job, so a fallback retry keeps its fraction and its slowdown flag.
207
+ const model = kind.progressModel(record, started);
208
+ let retriedOnCpu = false;
209
+ for (;;) {
201
210
  const view = await ensureSession(deps, cancel);
202
211
  kind.preflight?.(deps.state.session?.server.capabilities);
203
- const body = kind.buildBody(request, view.spec, seed, inputs);
204
- const attempt = await runAttempt(deps, kind, id, request, view, body, seed, cancel, started);
212
+ const body = kind.buildBody(request, view.spec, seed, inputs, record);
213
+ const attempt = await runAttempt(deps, kind, id, request, view, body, seed, cancel, started, model);
205
214
  if (attempt.kind === 'done')
206
215
  return attempt.outcome;
207
- if (attempts > 1)
216
+ if (attempt.kind === 'retry-with-offload') {
217
+ // Only returned while the spec has a fallback, and taking it drops it: this runs once per load.
218
+ const fallback = withOffloadFallback(view.spec) ?? view.spec;
219
+ deps.log('warn', `out of memory under ${view.spec.offload} offload; restarting sd-server under ${fallback.offload}`);
220
+ await replaceSession(deps, () => fallback, 'offload-fallback', cancel);
221
+ continue;
222
+ }
223
+ if (retriedOnCpu)
208
224
  throw diffusionError('ENGINE_CRASHED', 'sd-server crashed again on the CPU backend.');
225
+ retriedOnCpu = true;
209
226
  deps.log('warn', 'ggml abort on the device backend; restarting sd-server on the CPU backend');
227
+ // On the CPU backend the offload flags move nothing, so there is no fallback left to take.
228
+ const { offloadFallback: _unused, ...device } = view.spec;
210
229
  const spec = {
211
- ...view.spec,
230
+ ...device,
212
231
  extraArgs: cpuBackendExtraArgs(view.spec.extraArgs),
213
232
  cpuFallback: true,
214
233
  };
215
234
  await replaceSession(deps, () => spec, 'cpu-fallback', cancel);
216
235
  }
217
236
  }
218
- async function runAttempt(deps, kind, id, request, view, body, seed, cancel, started) {
237
+ async function runAttempt(deps, kind, id, request, view, body, seed, cancel, started, model) {
219
238
  if (cancel.requested)
220
239
  throw cancelledError();
221
240
  const lines = [];
222
241
  deps.state.session?.server.setLineListener((line) => lines.push(line));
223
242
  try {
224
- return await pollJob(deps, kind, id, request, view, body, seed, cancel, started, lines);
243
+ return await pollJob(deps, kind, id, request, view, body, seed, cancel, started, lines, model);
225
244
  }
226
245
  finally {
227
246
  deps.state.session?.server.setLineListener(undefined);
@@ -243,7 +262,7 @@ async function afterTransportError(deps, cancel, what, error) {
243
262
  throw internalError(`The image server did not accept the ${what}.`, serverFailure(error));
244
263
  }
245
264
  const clip = (text, limit) => [...text].slice(0, limit).join('');
246
- async function pollJob(deps, kind, id, request, view, body, seed, cancel, started, lines) {
265
+ async function pollJob(deps, kind, id, request, view, body, seed, cancel, started, lines, model) {
247
266
  const { http, state, timings } = deps;
248
267
  const submitted = await http
249
268
  .post(`${view.baseUrl}${kind.submitPath}`, body, timings.submitTimeoutMs)
@@ -276,6 +295,20 @@ async function pollJob(deps, kind, id, request, view, body, seed, cancel, starte
276
295
  gpu.onLine(line);
277
296
  }
278
297
  };
298
+ // Progress goes out on every change and, for a kind with a heartbeat, whenever waiting for the
299
+ // next poll would leave the last one older than the heartbeat while the job generates.
300
+ let reportedAt = Number.NEGATIVE_INFINITY;
301
+ const report = () => {
302
+ const changed = tracker.takeDirty();
303
+ const now = deps.now();
304
+ const due = kind.heartbeatMs !== undefined &&
305
+ state.record(id)?.job.state === 'generating' &&
306
+ now + timings.pollIntervalMs - reportedAt > kind.heartbeatMs;
307
+ if (!changed && !due)
308
+ return;
309
+ setProgress(deps, id, kind, tracker, model);
310
+ reportedAt = now;
311
+ };
279
312
  // Metal stays in its error state after an address fault, so every retry on this process would
280
313
  // fail at once: retire it, keep the spec, and the next job respawns a clean server.
281
314
  const retireAfterGpuFault = async () => {
@@ -288,8 +321,7 @@ async function pollJob(deps, kind, id, request, view, body, seed, cancel, starte
288
321
  };
289
322
  for (;;) {
290
323
  drain();
291
- if (tracker.takeDirty())
292
- setProgress(deps, id, kind, tracker);
324
+ report();
293
325
  const live = liveness(state);
294
326
  if (live.kind === 'gone') {
295
327
  if (cancel.requested)
@@ -303,6 +335,8 @@ async function pollJob(deps, kind, id, request, view, body, seed, cancel, starte
303
335
  if (isGgmlUnsupportedOpAbort(text) && !view.spec.cpuFallback)
304
336
  return { kind: 'retry-on-cpu' };
305
337
  const code = classifyExit(text, exitCodeOf(live.exit));
338
+ if (code === 'OUT_OF_MEMORY' && withOffloadFallback(view.spec))
339
+ return { kind: 'retry-with-offload' };
306
340
  const error = diffusionError(code, code === 'OUT_OF_MEMORY'
307
341
  ? 'sd-server ran out of memory while generating.'
308
342
  : `sd-server exited during generation (${describeExit(live.exit)}).`, text);
@@ -352,11 +386,22 @@ async function pollJob(deps, kind, id, request, view, body, seed, cancel, starte
352
386
  break;
353
387
  case 'completed': {
354
388
  setJobState(deps, id, 'generating');
389
+ // What the engine logged up to now, and the decode it finished, before the phase moves on.
390
+ drain();
391
+ tracker.finishDecode();
392
+ report();
355
393
  tracker.setPhase('saving');
356
- setProgress(deps, id, kind, tracker);
394
+ setProgress(deps, id, kind, tracker, model);
357
395
  await retireAfterGpuFault();
358
396
  const decoded = kind.decode(job);
359
- const { items, bytes } = await kind.save(deps, { id, request, spec: view.spec, seed, startedAt: started }, decoded);
397
+ const { items, bytes } = await kind.save(deps, {
398
+ id,
399
+ request,
400
+ spec: view.spec,
401
+ seed,
402
+ startedAt: started,
403
+ decodeStartedAt: tracker.decodeStartedAt(),
404
+ }, decoded);
360
405
  const record = state.anyJob(id);
361
406
  if (!record)
362
407
  throw internalError('job record vanished');
@@ -372,6 +417,8 @@ async function pollJob(deps, kind, id, request, view, body, seed, cancel, starte
372
417
  const said = diagnosticTail(tracker.logLines(), 12, 1200);
373
418
  const outOfMemory = classifyExit(`${message}\n${said}`, undefined) === 'OUT_OF_MEMORY';
374
419
  deps.log('warn', `sd-server failed the job (${code}: ${message}):\n${said}`);
420
+ if (outOfMemory && withOffloadFallback(view.spec))
421
+ return { kind: 'retry-with-offload' };
375
422
  throw diffusionError(outOfMemory ? 'OUT_OF_MEMORY' : 'INTERNAL', outOfMemory ? kind.messages.outOfMemory : kind.messages.failed, `${code}: ${message}\n${said}`);
376
423
  }
377
424
  case 'cancelled':
@@ -379,8 +426,7 @@ async function pollJob(deps, kind, id, request, view, body, seed, cancel, starte
379
426
  default:
380
427
  break;
381
428
  }
382
- if (tracker.takeDirty())
383
- setProgress(deps, id, kind, tracker);
429
+ report();
384
430
  await deps.sleep(timings.pollIntervalMs);
385
431
  }
386
432
  }