@atomic-chat/core 0.13.2 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (377) hide show
  1. package/README.md +1 -1
  2. package/dist/backend/advisor/advisor.d.ts +8 -7
  3. package/dist/backend/advisor/advisor.js +17 -25
  4. package/dist/backend/advisor/advisor.js.map +1 -1
  5. package/dist/backend/catalog/index.d.ts +4 -2
  6. package/dist/backend/catalog/index.js +4 -2
  7. package/dist/backend/catalog/index.js.map +1 -1
  8. package/dist/backend/catalog/manifest.d.ts +5 -51
  9. package/dist/backend/catalog/manifest.js +5 -93
  10. package/dist/backend/catalog/manifest.js.map +1 -1
  11. package/dist/backend/catalog/upstream-releases-baseline.d.ts +2 -0
  12. package/dist/backend/catalog/upstream-releases-baseline.js +12 -0
  13. package/dist/backend/catalog/upstream-releases-baseline.js.map +1 -0
  14. package/dist/backend/catalog/upstream-releases-baseline.json +101 -0
  15. package/dist/backend/catalog/upstream-releases-catalog.d.ts +54 -0
  16. package/dist/backend/catalog/upstream-releases-catalog.js +148 -0
  17. package/dist/backend/catalog/upstream-releases-catalog.js.map +1 -0
  18. package/dist/backend/catalog/upstream-releases.d.ts +75 -0
  19. package/dist/backend/catalog/upstream-releases.js +155 -0
  20. package/dist/backend/catalog/upstream-releases.js.map +1 -0
  21. package/dist/backend/install/service.d.ts +7 -4
  22. package/dist/backend/install/service.js +4 -4
  23. package/dist/backend/install/service.js.map +1 -1
  24. package/dist/cli/commands/serve.js +10 -28
  25. package/dist/cli/commands/serve.js.map +1 -1
  26. package/dist/cli/main.d.ts +1 -1
  27. package/dist/cli/main.js +0 -1
  28. package/dist/cli/main.js.map +1 -1
  29. package/dist/client/control-client.d.ts +7 -19
  30. package/dist/client/control-client.js +9 -29
  31. package/dist/client/control-client.js.map +1 -1
  32. package/dist/cloud/registry.d.ts +14 -1
  33. package/dist/cloud/registry.js +73 -2
  34. package/dist/cloud/registry.js.map +1 -1
  35. package/dist/config/paths.d.ts +4 -3
  36. package/dist/config/paths.js +15 -14
  37. package/dist/config/paths.js.map +1 -1
  38. package/dist/contracts/diffusion.d.ts +45 -18
  39. package/dist/contracts/diffusion.js +1 -1
  40. package/dist/contracts/diffusion.js.map +1 -1
  41. package/dist/contracts/engines.d.ts +1 -1
  42. package/dist/contracts/engines.js +2 -0
  43. package/dist/contracts/engines.js.map +1 -1
  44. package/dist/contracts/errors.d.ts +1 -3
  45. package/dist/contracts/errors.js +16 -0
  46. package/dist/contracts/errors.js.map +1 -1
  47. package/dist/contracts/events.d.ts +11 -6
  48. package/dist/contracts/index.d.ts +1 -1
  49. package/dist/contracts/index.js +1 -1
  50. package/dist/contracts/index.js.map +1 -1
  51. package/dist/contracts/media.d.ts +186 -0
  52. package/dist/contracts/media.js +55 -0
  53. package/dist/contracts/media.js.map +1 -0
  54. package/dist/contracts/session.d.ts +10 -1
  55. package/dist/contracts/session.js +10 -0
  56. package/dist/contracts/session.js.map +1 -1
  57. package/dist/contracts/settings.d.ts +36 -1
  58. package/dist/contracts/settings.js.map +1 -1
  59. package/dist/core/atomic-core.d.ts +7 -5
  60. package/dist/core/atomic-core.js +1 -0
  61. package/dist/core/atomic-core.js.map +1 -1
  62. package/dist/core/create.js +48 -58
  63. package/dist/core/create.js.map +1 -1
  64. package/dist/core/managed-engines.js +2 -0
  65. package/dist/core/managed-engines.js.map +1 -1
  66. package/dist/core/prism.d.ts +23 -6
  67. package/dist/core/prism.js +45 -0
  68. package/dist/core/prism.js.map +1 -1
  69. package/dist/core/public-server.js +3 -2
  70. package/dist/core/public-server.js.map +1 -1
  71. package/dist/core/types.d.ts +11 -0
  72. package/dist/core/types.js.map +1 -1
  73. package/dist/decision/process.d.ts +4 -0
  74. package/dist/decision/process.js +10 -1
  75. package/dist/decision/process.js.map +1 -1
  76. package/dist/diffusion/args.d.ts +3 -2
  77. package/dist/diffusion/args.js +21 -4
  78. package/dist/diffusion/args.js.map +1 -1
  79. package/dist/diffusion/compat.d.ts +1 -1
  80. package/dist/diffusion/compat.js +6 -2
  81. package/dist/diffusion/compat.js.map +1 -1
  82. package/dist/diffusion/gallery.d.ts +24 -3
  83. package/dist/diffusion/gallery.js +151 -21
  84. package/dist/diffusion/gallery.js.map +1 -1
  85. package/dist/diffusion/index.d.ts +3 -0
  86. package/dist/diffusion/index.js +3 -0
  87. package/dist/diffusion/index.js.map +1 -1
  88. package/dist/diffusion/jobs.d.ts +6 -1
  89. package/dist/diffusion/jobs.js +10 -1
  90. package/dist/diffusion/jobs.js.map +1 -1
  91. package/dist/diffusion/media-header.d.ts +22 -0
  92. package/dist/diffusion/media-header.js +149 -0
  93. package/dist/diffusion/media-header.js.map +1 -0
  94. package/dist/diffusion/parse.d.ts +3 -1
  95. package/dist/diffusion/parse.js +36 -0
  96. package/dist/diffusion/parse.js.map +1 -1
  97. package/dist/diffusion/recipe.d.ts +10 -1
  98. package/dist/diffusion/recipe.js +85 -21
  99. package/dist/diffusion/recipe.js.map +1 -1
  100. package/dist/diffusion/remote-job.d.ts +76 -0
  101. package/dist/diffusion/remote-job.js +643 -0
  102. package/dist/diffusion/remote-job.js.map +1 -0
  103. package/dist/diffusion/remote-store.d.ts +38 -0
  104. package/dist/diffusion/remote-store.js +91 -0
  105. package/dist/diffusion/remote-store.js.map +1 -0
  106. package/dist/diffusion/service.d.ts +9 -1
  107. package/dist/diffusion/service.js +49 -9
  108. package/dist/diffusion/service.js.map +1 -1
  109. package/dist/diffusion/state.d.ts +13 -1
  110. package/dist/diffusion/state.js +8 -0
  111. package/dist/diffusion/state.js.map +1 -1
  112. package/dist/diffusion/tracker.d.ts +6 -0
  113. package/dist/diffusion/tracker.js +11 -0
  114. package/dist/diffusion/tracker.js.map +1 -1
  115. package/dist/diffusion/validate.js +2 -2
  116. package/dist/diffusion/validate.js.map +1 -1
  117. package/dist/diffusion/video-gallery.d.ts +11 -4
  118. package/dist/diffusion/video-gallery.js +62 -25
  119. package/dist/diffusion/video-gallery.js.map +1 -1
  120. package/dist/diffusion/video-history.js +4 -1
  121. package/dist/diffusion/video-history.js.map +1 -1
  122. package/dist/diffusion/video-recipe.js +58 -25
  123. package/dist/diffusion/video-recipe.js.map +1 -1
  124. package/dist/diffusion/wiring.d.ts +3 -0
  125. package/dist/diffusion/wiring.js +1 -0
  126. package/dist/diffusion/wiring.js.map +1 -1
  127. package/dist/diffusion/workflow.d.ts +8 -2
  128. package/dist/diffusion/workflow.js +13 -5
  129. package/dist/diffusion/workflow.js.map +1 -1
  130. package/dist/downloads/downloader.d.ts +6 -1
  131. package/dist/downloads/downloader.js +12 -1
  132. package/dist/downloads/downloader.js.map +1 -1
  133. package/dist/embedding/process.d.ts +4 -0
  134. package/dist/embedding/process.js +10 -1
  135. package/dist/embedding/process.js.map +1 -1
  136. package/dist/media/adapters/a1111.d.ts +32 -0
  137. package/dist/media/adapters/a1111.js +207 -0
  138. package/dist/media/adapters/a1111.js.map +1 -0
  139. package/dist/media/adapters/aimlapi-videos.d.ts +34 -0
  140. package/dist/media/adapters/aimlapi-videos.js +172 -0
  141. package/dist/media/adapters/aimlapi-videos.js.map +1 -0
  142. package/dist/media/adapters/dashscope-image.d.ts +26 -0
  143. package/dist/media/adapters/dashscope-image.js +160 -0
  144. package/dist/media/adapters/dashscope-image.js.map +1 -0
  145. package/dist/media/adapters/dashscope-video.d.ts +47 -0
  146. package/dist/media/adapters/dashscope-video.js +251 -0
  147. package/dist/media/adapters/dashscope-video.js.map +1 -0
  148. package/dist/media/adapters/gemini-image.d.ts +27 -0
  149. package/dist/media/adapters/gemini-image.js +181 -0
  150. package/dist/media/adapters/gemini-image.js.map +1 -0
  151. package/dist/media/adapters/gemini-veo.d.ts +39 -0
  152. package/dist/media/adapters/gemini-veo.js +196 -0
  153. package/dist/media/adapters/gemini-veo.js.map +1 -0
  154. package/dist/media/adapters/hf-images.d.ts +85 -0
  155. package/dist/media/adapters/hf-images.js +439 -0
  156. package/dist/media/adapters/hf-images.js.map +1 -0
  157. package/dist/media/adapters/hf-videos.d.ts +44 -0
  158. package/dist/media/adapters/hf-videos.js +265 -0
  159. package/dist/media/adapters/hf-videos.js.map +1 -0
  160. package/dist/media/adapters/minimax-image.d.ts +26 -0
  161. package/dist/media/adapters/minimax-image.js +111 -0
  162. package/dist/media/adapters/minimax-image.js.map +1 -0
  163. package/dist/media/adapters/minimax-video-v2.d.ts +34 -0
  164. package/dist/media/adapters/minimax-video-v2.js +191 -0
  165. package/dist/media/adapters/minimax-video-v2.js.map +1 -0
  166. package/dist/media/adapters/minimax-video.d.ts +28 -0
  167. package/dist/media/adapters/minimax-video.js +155 -0
  168. package/dist/media/adapters/minimax-video.js.map +1 -0
  169. package/dist/media/adapters/mistral-agent-image.d.ts +33 -0
  170. package/dist/media/adapters/mistral-agent-image.js +108 -0
  171. package/dist/media/adapters/mistral-agent-image.js.map +1 -0
  172. package/dist/media/adapters/nvidia-genai.d.ts +28 -0
  173. package/dist/media/adapters/nvidia-genai.js +182 -0
  174. package/dist/media/adapters/nvidia-genai.js.map +1 -0
  175. package/dist/media/adapters/openai-images.d.ts +23 -0
  176. package/dist/media/adapters/openai-images.js +164 -0
  177. package/dist/media/adapters/openai-images.js.map +1 -0
  178. package/dist/media/adapters/openai-videos.d.ts +34 -0
  179. package/dist/media/adapters/openai-videos.js +175 -0
  180. package/dist/media/adapters/openai-videos.js.map +1 -0
  181. package/dist/media/adapters/openrouter-images.d.ts +25 -0
  182. package/dist/media/adapters/openrouter-images.js +161 -0
  183. package/dist/media/adapters/openrouter-images.js.map +1 -0
  184. package/dist/media/adapters/openrouter-videos.d.ts +43 -0
  185. package/dist/media/adapters/openrouter-videos.js +208 -0
  186. package/dist/media/adapters/openrouter-videos.js.map +1 -0
  187. package/dist/media/adapters/registry.d.ts +7 -0
  188. package/dist/media/adapters/registry.js +45 -0
  189. package/dist/media/adapters/registry.js.map +1 -0
  190. package/dist/media/adapters/types.d.ts +133 -0
  191. package/dist/media/adapters/types.js +15 -0
  192. package/dist/media/adapters/types.js.map +1 -0
  193. package/dist/media/adapters/xai-images.d.ts +19 -0
  194. package/dist/media/adapters/xai-images.js +83 -0
  195. package/dist/media/adapters/xai-images.js.map +1 -0
  196. package/dist/media/adapters/xai-videos.d.ts +29 -0
  197. package/dist/media/adapters/xai-videos.js +148 -0
  198. package/dist/media/adapters/xai-videos.js.map +1 -0
  199. package/dist/media/catalog-baseline.d.ts +2 -0
  200. package/dist/media/catalog-baseline.js +10 -0
  201. package/dist/media/catalog-baseline.js.map +1 -0
  202. package/dist/media/catalog-baseline.json +1819 -0
  203. package/dist/media/catalog-service.d.ts +42 -0
  204. package/dist/media/catalog-service.js +111 -0
  205. package/dist/media/catalog-service.js.map +1 -0
  206. package/dist/media/catalog.d.ts +50 -0
  207. package/dist/media/catalog.js +315 -0
  208. package/dist/media/catalog.js.map +1 -0
  209. package/dist/media/http.d.ts +125 -0
  210. package/dist/media/http.js +308 -0
  211. package/dist/media/http.js.map +1 -0
  212. package/dist/media/index.d.ts +14 -0
  213. package/dist/media/index.js +15 -0
  214. package/dist/media/index.js.map +1 -0
  215. package/dist/media/mask.d.ts +12 -0
  216. package/dist/media/mask.js +57 -0
  217. package/dist/media/mask.js.map +1 -0
  218. package/dist/media/service.d.ts +42 -0
  219. package/dist/media/service.js +144 -0
  220. package/dist/media/service.js.map +1 -0
  221. package/dist/models/compatibility/inspect.d.ts +11 -2
  222. package/dist/models/compatibility/inspect.js +44 -13
  223. package/dist/models/compatibility/inspect.js.map +1 -1
  224. package/dist/models/compatibility/service.d.ts +3 -0
  225. package/dist/models/compatibility/service.js +1 -0
  226. package/dist/models/compatibility/service.js.map +1 -1
  227. package/dist/models/gguf/tensors.d.ts +1 -0
  228. package/dist/models/gguf/tensors.js +4 -1
  229. package/dist/models/gguf/tensors.js.map +1 -1
  230. package/dist/models/hf.d.ts +3 -16
  231. package/dist/models/hf.js +4 -42
  232. package/dist/models/hf.js.map +1 -1
  233. package/dist/router/resolve.d.ts +15 -4
  234. package/dist/router/resolve.js +25 -3
  235. package/dist/router/resolve.js.map +1 -1
  236. package/dist/runtime/environment/linux-provisioner.js +7 -67
  237. package/dist/runtime/environment/linux-provisioner.js.map +1 -1
  238. package/dist/runtime/environment/runtime-removal-plan.d.ts +19 -0
  239. package/dist/runtime/environment/runtime-removal-plan.js +74 -0
  240. package/dist/runtime/environment/runtime-removal-plan.js.map +1 -0
  241. package/dist/runtime/environment/windows-provisioner.js +20 -4
  242. package/dist/runtime/environment/windows-provisioner.js.map +1 -1
  243. package/dist/runtime/managed-engines/spec.d.ts +2 -2
  244. package/dist/runtime/managed-engines/spec.js +6 -0
  245. package/dist/runtime/managed-engines/spec.js.map +1 -1
  246. package/dist/runtime/managed-models/compatibility.d.ts +10 -0
  247. package/dist/runtime/managed-models/compatibility.js +18 -0
  248. package/dist/runtime/managed-models/compatibility.js.map +1 -1
  249. package/dist/runtime/managed-text/adapter.d.ts +17 -0
  250. package/dist/runtime/managed-text/adapter.js.map +1 -1
  251. package/dist/runtime/managed-text/lifecycle.d.ts +8 -0
  252. package/dist/runtime/managed-text/lifecycle.js +38 -1
  253. package/dist/runtime/managed-text/lifecycle.js.map +1 -1
  254. package/dist/runtime/managed-text/readiness.d.ts +21 -1
  255. package/dist/runtime/managed-text/readiness.js +64 -0
  256. package/dist/runtime/managed-text/readiness.js.map +1 -1
  257. package/dist/runtime/managed-text/request-rules.d.ts +9 -7
  258. package/dist/runtime/managed-text/request-rules.js +58 -2
  259. package/dist/runtime/managed-text/request-rules.js.map +1 -1
  260. package/dist/runtime/managed-text/setting-values.d.ts +9 -0
  261. package/dist/runtime/managed-text/setting-values.js +44 -0
  262. package/dist/runtime/managed-text/setting-values.js.map +1 -0
  263. package/dist/runtime/sglang/adapter.d.ts +50 -0
  264. package/dist/runtime/sglang/adapter.js +393 -0
  265. package/dist/runtime/sglang/adapter.js.map +1 -0
  266. package/dist/runtime/sglang/engine.d.ts +16 -0
  267. package/dist/runtime/sglang/engine.js +38 -0
  268. package/dist/runtime/sglang/engine.js.map +1 -0
  269. package/dist/runtime/sglang/index.d.ts +11 -0
  270. package/dist/runtime/sglang/index.js +12 -0
  271. package/dist/runtime/sglang/index.js.map +1 -0
  272. package/dist/runtime/sglang/memory.d.ts +64 -0
  273. package/dist/runtime/sglang/memory.js +90 -0
  274. package/dist/runtime/sglang/memory.js.map +1 -0
  275. package/dist/runtime/sglang/settings.d.ts +49 -0
  276. package/dist/runtime/sglang/settings.js +118 -0
  277. package/dist/runtime/sglang/settings.js.map +1 -0
  278. package/dist/runtime/shared/external-sessions.js +1 -0
  279. package/dist/runtime/shared/external-sessions.js.map +1 -1
  280. package/dist/runtime/shared/ports.d.ts +10 -0
  281. package/dist/runtime/shared/ports.js +30 -0
  282. package/dist/runtime/shared/ports.js.map +1 -1
  283. package/dist/runtime/tensorrt-llm/adapter.d.ts +1 -4
  284. package/dist/runtime/tensorrt-llm/adapter.js +28 -11
  285. package/dist/runtime/tensorrt-llm/adapter.js.map +1 -1
  286. package/dist/runtime/tensorrt-llm/check.js +1 -0
  287. package/dist/runtime/tensorrt-llm/check.js.map +1 -1
  288. package/dist/runtime/tensorrt-llm/compatibility.d.ts +30 -6
  289. package/dist/runtime/tensorrt-llm/compatibility.js +41 -9
  290. package/dist/runtime/tensorrt-llm/compatibility.js.map +1 -1
  291. package/dist/runtime/tensorrt-llm/cuda-graphs.d.ts +32 -0
  292. package/dist/runtime/tensorrt-llm/cuda-graphs.js +33 -0
  293. package/dist/runtime/tensorrt-llm/cuda-graphs.js.map +1 -0
  294. package/dist/runtime/tensorrt-llm/engine.js +11 -5
  295. package/dist/runtime/tensorrt-llm/engine.js.map +1 -1
  296. package/dist/runtime/tensorrt-llm/kv-cache.d.ts +16 -0
  297. package/dist/runtime/tensorrt-llm/kv-cache.js +21 -1
  298. package/dist/runtime/tensorrt-llm/kv-cache.js.map +1 -1
  299. package/dist/runtime/vllm/adapter.js +2 -47
  300. package/dist/runtime/vllm/adapter.js.map +1 -1
  301. package/dist/runtime/vllm/memory.js +3 -16
  302. package/dist/runtime/vllm/memory.js.map +1 -1
  303. package/dist/runtime/vllm/settings.d.ts +7 -0
  304. package/dist/runtime/vllm/settings.js +2 -30
  305. package/dist/runtime/vllm/settings.js.map +1 -1
  306. package/dist/server/control/router.js +5 -4
  307. package/dist/server/control/router.js.map +1 -1
  308. package/dist/server/control/routes/media.d.ts +9 -0
  309. package/dist/server/control/routes/media.js +24 -0
  310. package/dist/server/control/routes/media.js.map +1 -0
  311. package/dist/server/control/routes/model-compatibility.d.ts +9 -0
  312. package/dist/server/control/routes/model-compatibility.js +31 -0
  313. package/dist/server/control/routes/model-compatibility.js.map +1 -0
  314. package/dist/server/control/types.d.ts +18 -20
  315. package/dist/server/http.js +15 -2
  316. package/dist/server/http.js.map +1 -1
  317. package/dist/server/public/gates.d.ts +6 -1
  318. package/dist/server/public/gates.js +7 -3
  319. package/dist/server/public/gates.js.map +1 -1
  320. package/dist/server/public/images-params.js +18 -1
  321. package/dist/server/public/images-params.js.map +1 -1
  322. package/dist/server/public/images.d.ts +11 -2
  323. package/dist/server/public/images.js +73 -9
  324. package/dist/server/public/images.js.map +1 -1
  325. package/dist/server/public/index.d.ts +1 -0
  326. package/dist/server/public/index.js +16 -7
  327. package/dist/server/public/index.js.map +1 -1
  328. package/dist/server/public/listing.js +1 -0
  329. package/dist/server/public/listing.js.map +1 -1
  330. package/dist/server/public/remote-media.d.ts +51 -0
  331. package/dist/server/public/remote-media.js +225 -0
  332. package/dist/server/public/remote-media.js.map +1 -0
  333. package/dist/server/public/responses.js +4 -2
  334. package/dist/server/public/responses.js.map +1 -1
  335. package/dist/server/public/static-assets.generated.js +1 -1
  336. package/dist/server/public/static-assets.generated.js.map +1 -1
  337. package/dist/server/public/trace.js +2 -0
  338. package/dist/server/public/trace.js.map +1 -1
  339. package/dist/server/public/types.d.ts +12 -1
  340. package/dist/server/public/videos-params.js +13 -3
  341. package/dist/server/public/videos-params.js.map +1 -1
  342. package/dist/server/public/videos.d.ts +1 -0
  343. package/dist/server/public/videos.js +21 -3
  344. package/dist/server/public/videos.js.map +1 -1
  345. package/dist/settings/schema/llamacpp-upstream.json +9 -0
  346. package/dist/settings/schema/sglang.json +251 -0
  347. package/dist/settings/schema.js +27 -1
  348. package/dist/settings/schema.js.map +1 -1
  349. package/dist/version.d.ts +1 -1
  350. package/dist/version.js +1 -1
  351. package/package.json +2 -6
  352. package/src/settings/schema/llamacpp-upstream.json +9 -0
  353. package/src/settings/schema/sglang.json +251 -0
  354. package/dist/backend/catalog/bundled-manifest-baseline.d.ts +0 -2
  355. package/dist/backend/catalog/bundled-manifest-baseline.js +0 -65
  356. package/dist/backend/catalog/bundled-manifest-baseline.js.map +0 -1
  357. package/dist/contracts/model-setup.d.ts +0 -115
  358. package/dist/contracts/model-setup.js +0 -33
  359. package/dist/contracts/model-setup.js.map +0 -1
  360. package/dist/core/model-setup/index.d.ts +0 -4
  361. package/dist/core/model-setup/index.js +0 -5
  362. package/dist/core/model-setup/index.js.map +0 -1
  363. package/dist/core/model-setup/plan.d.ts +0 -56
  364. package/dist/core/model-setup/plan.js +0 -158
  365. package/dist/core/model-setup/plan.js.map +0 -1
  366. package/dist/core/model-setup/service.d.ts +0 -92
  367. package/dist/core/model-setup/service.js +0 -329
  368. package/dist/core/model-setup/service.js.map +0 -1
  369. package/dist/core/model-setup/store.d.ts +0 -29
  370. package/dist/core/model-setup/store.js +0 -116
  371. package/dist/core/model-setup/store.js.map +0 -1
  372. package/dist/core/model-setup/wiring.d.ts +0 -59
  373. package/dist/core/model-setup/wiring.js +0 -132
  374. package/dist/core/model-setup/wiring.js.map +0 -1
  375. package/dist/server/control/routes/model-setups.d.ts +0 -11
  376. package/dist/server/control/routes/model-setups.js +0 -55
  377. package/dist/server/control/routes/model-setups.js.map +0 -1
@@ -37,7 +37,8 @@ export class PublicServerLifecycle {
37
37
  return undefined;
38
38
  return {
39
39
  origin: dialOrigin(this.publicServer.host, this.publicServer.port),
40
- hasApiKey: this.publicConfig.apiKey !== '',
40
+ // The listener's own answer: a host keyring requires a key even when `server.api_key` is empty.
41
+ hasApiKey: this.publicServer.state().requires_api_key,
41
42
  };
42
43
  }
43
44
  /** Start the public listener; an identical start is idempotent, an incompatible one is a conflict. */
@@ -67,7 +68,7 @@ export class PublicServerLifecycle {
67
68
  host: server.host,
68
69
  port: server.port,
69
70
  prefix: server.prefix,
70
- requiresApiKey: requested.apiKey !== '',
71
+ requiresApiKey: server.state().requires_api_key,
71
72
  }, (message) => this.deps.log('warn', message));
72
73
  }
73
74
  this.deps.events.emit('server:started', { host: server.host, port: server.port });
@@ -1 +1 @@
1
- {"version":3,"file":"public-server.js","sourceRoot":"","sources":["../../src/core/public-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public-server.js","sourceRoot":"","sources":["../../src/core/public-server.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,17 @@ export interface AtomicCoreOptions {
44
44
  * system directories (`/usr/bin`, `/usr/local/bin`, `/bin`), never `PATH`; `null` means none.
45
45
  */
46
46
  dockerPath?: string | null;
47
+ /**
48
+ * The host's keyring for the public API (a terminal that hands every client its own key), read for
49
+ * every request: a client must present one of these, and a revoked key is refused on the next
50
+ * request. An empty list refuses every client; `undefined` keeps `server.api_key`.
51
+ */
52
+ publicApiKeys?: () => readonly string[] | undefined;
53
+ /**
54
+ * How long reading a remote GGUF header for a model check may take in all (a terminal that must not
55
+ * hang on a slow or broken mirror); past it the check goes on without the header. Unset waits.
56
+ */
57
+ remoteGgufTimeoutMs?: number;
47
58
  fetch?: typeof fetch;
48
59
  env?: NodeJS.ProcessEnv;
49
60
  /** 'owner' takes the instance lock; 'auto' is the same today — attaching is the CLI's job. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AA0EA,MAAM,CAAC,MAAM,cAAc,GAAoB,mBAAmB,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAqFA,MAAM,CAAC,MAAM,cAAc,GAAoB,mBAAmB,CAAA"}
@@ -64,4 +64,8 @@ export interface SpawnDecisionDeps {
64
64
  }
65
65
  /** The error for a process that died before it was ready: the engine's own last lines in the details. */
66
66
  export declare function earlyExitError(exit: ExitInfo, tail: readonly string[]): AtomicCoreError;
67
+ /**
68
+ * Start the decision model, on another port when the one picked was taken before the engine could
69
+ * bind it (`retryOnTakenPort`): an exit while loading that says so is that race, not the model.
70
+ */
67
71
  export declare function spawnDecisionServer(spec: DecisionServerSpec, deps: SpawnDecisionDeps): Promise<DecisionProcessHandle>;
@@ -12,7 +12,7 @@
12
12
  import { randomBytes } from 'node:crypto';
13
13
  import { dirname } from 'node:path';
14
14
  import { AtomicCoreError } from '../contracts/index.js';
15
- import { backendOutputReporter, buildProcessEnv, discoverCudaPaths, nodeCudaProbeEnv, randomFreePort, spawnManaged, } from '../runtime/shared/index.js';
15
+ import { backendOutputReporter, buildProcessEnv, discoverCudaPaths, exitedOnTakenPort, nodeCudaProbeEnv, randomFreePort, retryOnTakenPort, spawnManaged, } from '../runtime/shared/index.js';
16
16
  import { buildDecisionArgs, buildUpstreamDecisionArgs, commandSummary, decisionEnv, DECISION_HOST, withoutDecisionEnv, } from './args.js';
17
17
  import { UPSTREAM_DECISION_DEFAULT_CTX } from './model-facts.js';
18
18
  import { checkReadiness, READINESS_REQUEST_TIMEOUT_MS } from './readiness.js';
@@ -39,7 +39,16 @@ function describeExit(exit) {
39
39
  export function earlyExitError(exit, tail) {
40
40
  return new AtomicCoreError('MODEL_LOAD_FAILED', `The decision model exited with ${describeExit(exit)} while loading.`, tail.slice(-20).join('\n') || undefined);
41
41
  }
42
+ /**
43
+ * Start the decision model, on another port when the one picked was taken before the engine could
44
+ * bind it (`retryOnTakenPort`): an exit while loading that says so is that race, not the model.
45
+ */
42
46
  export async function spawnDecisionServer(spec, deps) {
47
+ return retryOnTakenPort(() => spawnDecisionServerOnce(spec, deps), (error) => error instanceof AtomicCoreError &&
48
+ error.code === 'MODEL_LOAD_FAILED' &&
49
+ exitedOnTakenPort(error.details), (attempt) => deps.log?.('warn', `the decision model's port was taken while it started; retrying (${attempt})`));
50
+ }
51
+ async function spawnDecisionServerOnce(spec, deps) {
43
52
  const platform = deps.platform ?? process.platform;
44
53
  const baseEnv = withoutDecisionEnv(deps.env ?? process.env);
45
54
  const log = deps.log ?? (() => { });
@@ -1 +1 @@
1
- {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/decision/process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/decision/process.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAGvD,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,YAAY,GACb,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,aAAa,EACb,kBAAkB,GACnB,MAAM,WAAW,CAAA;AAGlB,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AAE7E,sGAAsG;AACtG,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,CAAA;AAChD,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAA;AACzC,8CAA8C;AAC9C,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAA;AASzC,uGAAuG;AACvG,MAAM,UAAU,eAAe,CAAC,IAAwB,EAAE,IAAY;IACpE,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,UAAU;QAAE,OAAO,iBAAiB,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IACnF,OAAO,yBAAyB,CAC9B,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EACjB,IAAI,CAAC,QAAQ,IAAI,EAAE,OAAO,EAAE,6BAA6B,EAAE,iBAAiB,EAAE,KAAK,EAAE,CACtF,CAAA;AACH,CAAC;AAsCD,MAAM,YAAY,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AAE5F,SAAS,YAAY,CAAC,IAAc;IAClC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAA;IAClD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,UAAU,IAAI,CAAC,MAAM,EAAE,CAAA;IACxD,OAAO,mBAAmB,CAAA;AAC5B,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,cAAc,CAAC,IAAc,EAAE,IAAuB;IACpE,OAAO,IAAI,eAAe,CACxB,mBAAmB,EACnB,kCAAkC,YAAY,CAAC,IAAI,CAAC,iBAAiB,EACrE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CACxC,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAwB,EACxB,IAAuB;IAEvB,OAAO,gBAAgB,CACrB,GAAG,EAAE,CAAC,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,EACzC,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,YAAY,eAAe;QAChC,KAAK,CAAC,IAAI,KAAK,mBAAmB;QAClC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,EAClC,CAAC,OAAO,EAAE,EAAE,CACV,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,mEAAmE,OAAO,GAAG,CAAC,CACpG,CAAA;AACH,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,IAAwB,EACxB,IAAuB;IAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAA;IAClD,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAA;IAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,YAAY,CAAA;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAA;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;IAE5B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QAC1F,MAAM,IAAI,eAAe,CACvB,mBAAmB,EACnB,sCAAsC,EACtC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAA;IACH,CAAC,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/E,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACxC,GAAG,CAAC,MAAM,EAAE,gCAAgC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;IACxE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,eAAe,CAAC;QACnC,QAAQ;QACR,OAAO;QACP,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC;QACpB,IAAI,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5D,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC;KAC7B,CAAC,CAAA;IAEF,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IACxE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,IAAI,UAAU,CAAA;IAC7C,MAAM,MAAM,GAAG,CAAC,MAA2B,EAAE,IAAY,EAAE,EAAE;QAC3D,YAAY,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QACvE,IAAI,IAAI,CAAC,MAAM,IAAI,sBAAsB;YAAE,IAAI,CAAC,KAAK,EAAE,CAAA;QACvD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjB,CAAC,CAAA;IACD,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CACrF,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EACvB,MAAM,CACP,CAAA;IACD,IAAI,IAA0B,CAAA;IAC9B,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;IACxC,MAAM,OAAO,GAAG,UAAU,aAAa,IAAI,IAAI,EAAE,CAAA;IACjD,MAAM,SAAS,GAAG,CAAC,OAAO,GAAG,2BAA2B,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAEpF,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,SAAS,CAAC,CAAC,CAAC,CAAA;QAClB,MAAM,KAAK,CAAA;IACb,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,EAAE,OAAe,EAAE,KAAsB,EAAkB,EAAE;QAC7E,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;QACxB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC7B,MAAM,KAAK,CAAA;IACb,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;IAC9C,IAAI,UAAU,GAAG,EAAE,CAAA;IACnB,SAAS,CAAC;QACR,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO;YACtB,OAAO,IAAI,CAAC,CAAC,EAAE,IAAI,eAAe,CAAC,sBAAsB,EAAE,uCAAuC,CAAC,CAAC,CAAA;QACtG,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QACxC,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC7B,MAAM,IAAI,eAAe,CACvB,mBAAmB,EACnB,2CAA2C,EAC3C,GAAG,GAAG,KAAK,YAAY,CAAC,OAAO,EAAE,CAClC,CAAA;QACH,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,sDAAsD;YACtD,MAAM,KAAK,CAAC,EAAE,CAAC,CAAA;YACf,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC7B,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACxC,GAAG,CAAC,MAAM,EAAE,4CAA4C,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC9E,MAAM,KAAK,CAAA;QACb,CAAC;QACD,IAAI,GAAG,EAAE,IAAI,QAAQ;YACnB,OAAO,IAAI,CACT,2BAA2B,EAC3B,IAAI,eAAe,CACjB,sBAAsB,EACtB,kDAAkD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,EACrG,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CACzE,CACF,CAAA;QACH,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC,IAAI,CAAC,IAAI,EACT,OAAO,EACP,MAAM,EACN,4BAA4B,EAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,CACpB,CAAA;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,GAAG,CACD,MAAM,EACN,uCAAuC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,gBAAgB,KAAK,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,SAAS,GAAG,CAClI,CAAA;YACD,OAAO;gBACL,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,IAAI;gBACJ,MAAM;gBACN,GAAG;gBACH,OAAO;gBACP,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;gBACrB,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI;gBACtB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,SAAS;aACV,CAAA;QACH,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa;YAC/B,OAAO,IAAI,CACT,2BAA2B,EAC3B,IAAI,eAAe,CACjB,6BAA6B,EAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,UAAU;gBAChC,CAAC,CAAC,sEAAsE;gBACxE,CAAC,CAAC,+DAA+D,EACnE,GAAG,GAAG,KAAK,MAAM,CAAC,MAAM,EAAE,CAC3B,CACF,CAAA;QACH,UAAU,GAAG,MAAM,CAAC,MAAM,CAAA;QAC1B,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,sBAAsB,CAAC,CAAA;IAC5D,CAAC;AACH,CAAC"}
@@ -85,8 +85,9 @@ export declare const VIDEO_VAE_TILING_PIXEL_FRAMES: number;
85
85
  /**
86
86
  * The `POST /sdcpp/v1/img_gen` body. The whole batch goes in one request; guidance is split the way
87
87
  * sd.cpp expects (CFG → `txt_cfg`, FLUX distilled → `distilled_guidance`). Only set keys are sent,
88
- * so the server's own defaults apply to the rest. The workflow decides which images go in. sd.cpp
89
- * resizes the init image to `width`×`height` itself, which is how Upscale works.
88
+ * so the server's own defaults apply to the rest. `custom_sigmas` goes in when the family ships a
89
+ * fixed schedule for exactly this many steps (Qwen Image 2.1 Turbo). The workflow decides which
90
+ * images go in. sd.cpp resizes the init image to `width`×`height` itself, which is how Upscale works.
90
91
  *
91
92
  * sd.cpp reads integers with `is_number_integer()` and floats with `is_number()`, so `1` for a
92
93
  * `cfgScale` of 1.0 is accepted (checked in its `common.cpp`).
@@ -152,11 +152,24 @@ export const VAE_TILING_AREA = 1024 * 1024;
152
152
  * about 2 GB of that, the point past which a single-graph decode stops being safe anywhere.
153
153
  */
154
154
  export const VIDEO_VAE_TILING_PIXEL_FRAMES = VAE_TILING_AREA * 8;
155
+ /**
156
+ * A distilled family's fixed schedule as sd.cpp takes it, or undefined when the request asks for
157
+ * another step count and sd.cpp builds its own. The catalog lists one sigma per step; sd.cpp runs
158
+ * `custom_sigmas.length - 1` steps (`GenerationRequest` in its `src/pipeline/request.cpp`), so the
159
+ * closing 0 is appended here. Without it the last step never runs and the output keeps the noise of
160
+ * the last listed sigma.
161
+ */
162
+ function customSigmas(defaults, steps) {
163
+ if (defaults.sigmas === undefined || defaults.sigmas.length !== steps)
164
+ return undefined;
165
+ return [...defaults.sigmas, 0];
166
+ }
155
167
  /**
156
168
  * The `POST /sdcpp/v1/img_gen` body. The whole batch goes in one request; guidance is split the way
157
169
  * sd.cpp expects (CFG → `txt_cfg`, FLUX distilled → `distilled_guidance`). Only set keys are sent,
158
- * so the server's own defaults apply to the rest. The workflow decides which images go in. sd.cpp
159
- * resizes the init image to `width`×`height` itself, which is how Upscale works.
170
+ * so the server's own defaults apply to the rest. `custom_sigmas` goes in when the family ships a
171
+ * fixed schedule for exactly this many steps (Qwen Image 2.1 Turbo). The workflow decides which
172
+ * images go in. sd.cpp resizes the init image to `width`×`height` itself, which is how Upscale works.
160
173
  *
161
174
  * sd.cpp reads integers with `is_number_integer()` and floats with `is_number()`, so `1` for a
162
175
  * `cfgScale` of 1.0 is accepted (checked in its `common.cpp`).
@@ -173,6 +186,9 @@ export function buildImgGenRequest(request, defaults, seed, inputs) {
173
186
  const shift = request.flowShift ?? defaults.flowShift;
174
187
  if (shift !== undefined)
175
188
  sampleParams['flow_shift'] = shift;
189
+ const sigmas = customSigmas(defaults, request.steps);
190
+ if (sigmas !== undefined)
191
+ sampleParams['custom_sigmas'] = sigmas;
176
192
  sampleParams['guidance'] = guidance;
177
193
  const body = {
178
194
  prompt: request.prompt,
@@ -218,8 +234,9 @@ export function buildVidGenRequest(request, defaults, seed, inputs, tiling) {
218
234
  const shift = request.flowShift ?? defaults.flowShift;
219
235
  if (shift !== undefined)
220
236
  sampleParams['flow_shift'] = shift;
221
- if (defaults.sigmas !== undefined && defaults.sigmas.length === request.steps)
222
- sampleParams['custom_sigmas'] = [...defaults.sigmas];
237
+ const sigmas = customSigmas(defaults, request.steps);
238
+ if (sigmas !== undefined)
239
+ sampleParams['custom_sigmas'] = sigmas;
223
240
  sampleParams['guidance'] = guidance;
224
241
  const video = defaults.video;
225
242
  const body = {
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/diffusion/args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/diffusion/args.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * `ec1fd3ea7`); messages verbatim.
5
5
  */
6
6
  import type { DiffusionBackendInstallRecord, DiffusionEngineId } from '../contracts/index.js';
7
- /** The first upstream build that runs Qwen Image 2.1 and Krea 2 Turbo. */
7
+ /** The first upstream build that runs Qwen Image 2.1 (and its Turbo) and Krea 2 Turbo. */
8
8
  export declare const MIN_MODERN_FAMILY_BUILD = 883;
9
9
  /**
10
10
  * Qwen Image 2.1 and Krea 2 Turbo need build 883 or newer; a tag that does not parse fails closed.
@@ -4,9 +4,13 @@
4
4
  * `ec1fd3ea7`); messages verbatim.
5
5
  */
6
6
  import { diffusionError } from './errors.js';
7
- /** The first upstream build that runs Qwen Image 2.1 and Krea 2 Turbo. */
7
+ /** The first upstream build that runs Qwen Image 2.1 (and its Turbo) and Krea 2 Turbo. */
8
8
  export const MIN_MODERN_FAMILY_BUILD = 883;
9
- const MODERN_FAMILIES = new Set(['qwen-image-2.1', 'krea-2-turbo']);
9
+ const MODERN_FAMILIES = new Set([
10
+ 'qwen-image-2.1',
11
+ 'qwen-image-2.1-turbo',
12
+ 'krea-2-turbo',
13
+ ]);
10
14
  /** `master-<build>-<hash>` → the build number; anything else → undefined. */
11
15
  function buildOf(tag) {
12
16
  if (!tag.startsWith('master-'))
@@ -1 +1 @@
1
- {"version":3,"file":"compat.js","sourceRoot":"","sources":["../../src/diffusion/compat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,0EAA0E;AAC1E,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAA;AAC1C,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC,CAAA;AAExF,6EAA6E;AAC7E,SAAS,OAAO,CAAC,GAAW;IAC1B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IAChD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC9B,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IACjC,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAc,EAAE,GAAW;IAClE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAM;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAC1B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,uBAAuB;QAAE,OAAM;IACnE,MAAM,cAAc,CAClB,wBAAwB,EACxB,GAAG,MAAM,oFAAoF,EAC7F,aAAa,GAAG,wCAAwC,CACzD,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAAmD,EACnD,MAAyB,EACzB,MAAc;IAEd,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;IAC3D,IAAI,CAAC,QAAQ;QAAE,MAAM,cAAc,CAAC,gBAAgB,EAAE,iCAAiC,CAAC,CAAA;IACxF,MAAM,MAAM,GACV,SAAS,CAAC,IAAI,CACZ,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,MAAM,KAAK,MAAM;QAC3B,SAAS,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;QAC1C,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CACtC,IAAI,QAAQ,CAAA;IACf,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;IAC5C,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,YAAY,CAAC,MAAc,EAAE,GAAW;IAC/C,IAAI,CAAC;QACH,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACrC,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"compat.js","sourceRoot":"","sources":["../../src/diffusion/compat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,0FAA0F;AAC1F,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAA;AAC1C,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC;IACnD,gBAAgB;IAChB,sBAAsB;IACtB,cAAc;CACf,CAAC,CAAA;AAEF,6EAA6E;AAC7E,SAAS,OAAO,CAAC,GAAW;IAC1B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IAChD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC9B,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IACjC,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAc,EAAE,GAAW;IAClE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAM;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAC1B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,uBAAuB;QAAE,OAAM;IACnE,MAAM,cAAc,CAClB,wBAAwB,EACxB,GAAG,MAAM,oFAAoF,EAC7F,aAAa,GAAG,wCAAwC,CACzD,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAAmD,EACnD,MAAyB,EACzB,MAAc;IAEd,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;IAC3D,IAAI,CAAC,QAAQ;QAAE,MAAM,cAAc,CAAC,gBAAgB,EAAE,iCAAiC,CAAC,CAAA;IACxF,MAAM,MAAM,GACV,SAAS,CAAC,IAAI,CACZ,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,MAAM,KAAK,MAAM;QAC3B,SAAS,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;QAC1C,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CACtC,IAAI,QAAQ,CAAA;IACf,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;IAC5C,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,YAAY,CAAC,MAAc,EAAE,GAAW;IAC/C,IAAI,CAAC;QACH,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACrC,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
@@ -3,12 +3,22 @@
3
3
  * thumbnail beside it, and a `.flags.json` for pin and archive. Port of `gallery.rs` in
4
4
  * `tauri-plugin-atomic-diffusion` (app commit `ec1fd3ea7`).
5
5
  *
6
- * A PNG without a valid `atomic` chunk is somebody else's: it is never listed and never deleted,
7
- * even when it sits in the output folder under a name that looks like ours.
6
+ * A provider's image may come as a JPEG or a WebP, which have no text chunk the core can write
7
+ * without a codec: it is kept as it came (`<id>.jpg`, `<id>.webp`) with its recipe in an `<id>.json`
8
+ * sidecar, the way a clip's is, and no thumbnail (the app shows the image itself).
9
+ *
10
+ * A PNG without a valid `atomic` chunk, or a JPEG/WebP without a valid sidecar, is somebody else's:
11
+ * it is never listed and never deleted, even when it sits in the output folder under a name that
12
+ * looks like ours.
8
13
  */
9
14
  import type { GalleryFlags, GalleryImageItem, GalleryListOptions, GalleryPage, ImageRecipe } from '../contracts/index.js';
10
15
  export declare const FLAGS_FILE = ".flags.json";
11
16
  export declare const THUMB_EDGE = 256;
17
+ /** The recipe of an image that is not a PNG. */
18
+ export declare const IMAGE_SIDECAR_SUFFIX = ".json";
19
+ /** The image files a gallery item can be, PNG first (every local output is one). */
20
+ export declare const IMAGE_EXTENSIONS: readonly [".png", ".jpg", ".webp"];
21
+ export type ImageExtension = (typeof IMAGE_EXTENSIONS)[number];
12
22
  /** A listing checks for blank frames only in files this small; real outputs are far larger. */
13
23
  export declare const BLANK_SCAN_LIMIT: number;
14
24
  /**
@@ -27,6 +37,8 @@ export declare function isValidId(id: string): boolean;
27
37
  export declare function makeId(jobId: string, index: number): string;
28
38
  export declare function pngPath(dir: string, id: string): string;
29
39
  export declare function thumbPath(dir: string, id: string): string;
40
+ export declare function imagePath(dir: string, id: string, extension: ImageExtension): string;
41
+ export declare function imageSidecarPath(dir: string, id: string): string;
30
42
  export declare function readFlags(dir: string): Promise<FlagMap>;
31
43
  /** What a failed write is called; the video gallery names its own folder. */
32
44
  export interface WriteMessages {
@@ -66,11 +78,20 @@ export declare class Gallery {
66
78
  item: GalleryImageItem;
67
79
  bytes: Buffer;
68
80
  }>;
81
+ /**
82
+ * A provider's image: a PNG gets its recipe spliced in and a thumbnail, as a local output does; a
83
+ * JPEG or WebP is written as it came with its recipe in a sidecar (written first: an image without
84
+ * one is foreign, so a crash between the two leaves nothing listed).
85
+ */
86
+ saveRemote(dir: string, recipe: ImageRecipe, bytes: Buffer, mime: string): Promise<{
87
+ item: GalleryImageItem;
88
+ bytes: Buffer;
89
+ }>;
69
90
  get(dir: string, id: string): Promise<GalleryImageItem | null>;
70
91
  list(dir: string, options: GalleryListOptions): Promise<GalleryPage>;
71
92
  /** Remove each PNG, its thumbnail and its flags entry. Foreign PNGs are left alone. */
72
93
  delete(dir: string, ids: readonly string[]): Promise<void>;
73
94
  setFlags(dir: string, id: string, update: GalleryFlags): Promise<GalleryImageItem>;
74
- /** Byte-for-byte copy, keeping the embedded recipe. */
95
+ /** Byte-for-byte copy, keeping the embedded recipe (a JPEG's or WebP's stays behind in its sidecar). */
75
96
  export(dir: string, id: string, target: string): Promise<void>;
76
97
  }
@@ -3,19 +3,37 @@
3
3
  * thumbnail beside it, and a `.flags.json` for pin and archive. Port of `gallery.rs` in
4
4
  * `tauri-plugin-atomic-diffusion` (app commit `ec1fd3ea7`).
5
5
  *
6
- * A PNG without a valid `atomic` chunk is somebody else's: it is never listed and never deleted,
7
- * even when it sits in the output folder under a name that looks like ours.
6
+ * A provider's image may come as a JPEG or a WebP, which have no text chunk the core can write
7
+ * without a codec: it is kept as it came (`<id>.jpg`, `<id>.webp`) with its recipe in an `<id>.json`
8
+ * sidecar, the way a clip's is, and no thumbnail (the app shows the image itself).
9
+ *
10
+ * A PNG without a valid `atomic` chunk, or a JPEG/WebP without a valid sidecar, is somebody else's:
11
+ * it is never listed and never deleted, even when it sits in the output folder under a name that
12
+ * looks like ours.
8
13
  */
9
- import { copyFile, mkdir, readdir, readFile, rename, rm, stat, writeFile } from 'node:fs/promises';
14
+ import { copyFile, mkdir, open, readdir, readFile, rename, rm, stat, writeFile } from 'node:fs/promises';
10
15
  import { basename, dirname, join } from 'node:path';
11
16
  import { isWithin } from './containment.js';
12
17
  import { diffusionError, ioError } from './errors.js';
13
18
  import { AsyncMutex } from './mutex.js';
19
+ import { imageSize } from './media-header.js';
14
20
  import { decodePng, isBlankRaster, readPngHeader, thumbnailPng, UnsupportedPngError } from './png.js';
15
- import { parseRecipe, RECIPE_KEYWORD, spliceRecipe } from './recipe.js';
21
+ import { parseRecipe, RECIPE_KEYWORD, serializeRecipe, spliceRecipe } from './recipe.js';
16
22
  export const FLAGS_FILE = '.flags.json';
17
23
  export const THUMB_EDGE = 256;
18
24
  const THUMB_SUFFIX = '.thumb.png';
25
+ /** The recipe of an image that is not a PNG. */
26
+ export const IMAGE_SIDECAR_SUFFIX = '.json';
27
+ /** The image files a gallery item can be, PNG first (every local output is one). */
28
+ export const IMAGE_EXTENSIONS = ['.png', '.jpg', '.webp'];
29
+ /** How much of a JPEG or WebP is read for its size: enough to pass an EXIF block. */
30
+ const SIZE_READ_LIMIT = 1024 * 1024;
31
+ /** The image type a provider's file is stored as. */
32
+ const EXTENSION_OF = {
33
+ 'image/png': '.png',
34
+ 'image/jpeg': '.jpg',
35
+ 'image/webp': '.webp',
36
+ };
19
37
  /** How many image headers a listing reads at once. */
20
38
  const SCAN_CONCURRENCY = 16;
21
39
  /** A listing checks for blank frames only in files this small; real outputs are far larger. */
@@ -50,6 +68,12 @@ export function pngPath(dir, id) {
50
68
  export function thumbPath(dir, id) {
51
69
  return join(dir, `${id}${THUMB_SUFFIX}`);
52
70
  }
71
+ export function imagePath(dir, id, extension) {
72
+ return join(dir, `${id}${extension}`);
73
+ }
74
+ export function imageSidecarPath(dir, id) {
75
+ return join(dir, `${id}${IMAGE_SIDECAR_SUFFIX}`);
76
+ }
53
77
  function checkedPngPath(dir, id) {
54
78
  if (!isValidId(id))
55
79
  throw diffusionError('INVALID_REQUEST', 'That is not a gallery image id.', id);
@@ -59,6 +83,38 @@ function checkedPngPath(dir, id) {
59
83
  return path;
60
84
  }
61
85
  const isFile = (path) => stat(path).then((s) => s.isFile(), () => false);
86
+ /** The file an id names: the PNG when there is one, else a JPEG or WebP; the PNG path when none exists. */
87
+ async function locateImage(dir, id) {
88
+ const png = checkedPngPath(dir, id);
89
+ if (await isFile(png))
90
+ return { path: png, extension: '.png', exists: true };
91
+ for (const extension of IMAGE_EXTENSIONS) {
92
+ if (extension === '.png')
93
+ continue;
94
+ const path = imagePath(dir, id, extension);
95
+ if (await isFile(path))
96
+ return { path, extension, exists: true };
97
+ }
98
+ return { path: png, extension: '.png', exists: false };
99
+ }
100
+ /** The recipe of a JPEG or WebP, from its sidecar. */
101
+ async function readSidecarRecipe(dir, id) {
102
+ const text = await readFile(imageSidecarPath(dir, id), 'utf8').catch(() => undefined);
103
+ return text === undefined ? undefined : parseRecipe(text);
104
+ }
105
+ async function readImageSize(path) {
106
+ const handle = await open(path, 'r').catch(() => undefined);
107
+ if (!handle)
108
+ return undefined;
109
+ try {
110
+ const buffer = Buffer.alloc(SIZE_READ_LIMIT);
111
+ const { bytesRead } = await handle.read(buffer, 0, SIZE_READ_LIMIT, 0);
112
+ return imageSize(buffer.subarray(0, bytesRead));
113
+ }
114
+ finally {
115
+ await handle.close().catch(() => { });
116
+ }
117
+ }
62
118
  export async function readFlags(dir) {
63
119
  const flags = new Map();
64
120
  let raw;
@@ -114,6 +170,8 @@ export async function writeThumbnail(png, path) {
114
170
  await writeAtomic(path, await thumbnailPng(png, THUMB_EDGE));
115
171
  }
116
172
  async function itemFromPath(dir, id, path, flags, isBlank) {
173
+ if (!path.endsWith('.png'))
174
+ return itemFromSidecar(dir, id, path, flags);
117
175
  if (await isBlank(dir, id, path))
118
176
  return undefined;
119
177
  const header = await readPngHeader(path);
@@ -139,17 +197,47 @@ async function itemFromPath(dir, id, path, flags, isBlank) {
139
197
  recipe,
140
198
  };
141
199
  }
200
+ /** A JPEG or WebP and its sidecar; no thumbnail, so the app shows the image itself. */
201
+ async function itemFromSidecar(dir, id, path, flags) {
202
+ const recipe = await readSidecarRecipe(dir, id);
203
+ if (!recipe)
204
+ return undefined;
205
+ const meta = await stat(path).catch(() => undefined);
206
+ if (!meta)
207
+ return undefined;
208
+ const size = await readImageSize(path);
209
+ const flag = flags.get(id);
210
+ return {
211
+ id,
212
+ path,
213
+ thumbnailPath: null,
214
+ width: size?.width ?? recipe.width,
215
+ height: size?.height ?? recipe.height,
216
+ sizeBytes: meta.size,
217
+ createdAtMs: recipe.createdAtMs,
218
+ pinned: flag?.pinned ?? false,
219
+ archived: flag?.archived ?? false,
220
+ recipe,
221
+ };
222
+ }
142
223
  /** Every owned image, newest first. */
143
224
  async function scan(dir, flags, isBlank) {
144
225
  const names = await readdir(dir).catch(() => []);
145
- const ids = names
146
- .filter((name) => name.endsWith('.png'))
147
- .map((name) => name.slice(0, -'.png'.length))
148
- .filter(isValidId);
226
+ // One file per id, the PNG first: a stray JPEG beside a PNG of the same id is not listed twice.
227
+ const files = new Map();
228
+ for (const extension of IMAGE_EXTENSIONS)
229
+ for (const name of names) {
230
+ if (!name.endsWith(extension))
231
+ continue;
232
+ const id = name.slice(0, -extension.length);
233
+ if (isValidId(id) && !files.has(id))
234
+ files.set(id, join(dir, name));
235
+ }
236
+ const ids = [...files.keys()];
149
237
  const items = [];
150
238
  for (let at = 0; at < ids.length; at += SCAN_CONCURRENCY) {
151
239
  const batch = ids.slice(at, at + SCAN_CONCURRENCY);
152
- const found = await Promise.all(batch.map((id) => itemFromPath(dir, id, pngPath(dir, id), flags, isBlank)));
240
+ const found = await Promise.all(batch.map((id) => itemFromPath(dir, id, files.get(id), flags, isBlank)));
153
241
  for (const item of found)
154
242
  if (item)
155
243
  items.push(item);
@@ -228,12 +316,49 @@ export class Gallery {
228
316
  bytes,
229
317
  };
230
318
  }
319
+ /**
320
+ * A provider's image: a PNG gets its recipe spliced in and a thumbnail, as a local output does; a
321
+ * JPEG or WebP is written as it came with its recipe in a sidecar (written first: an image without
322
+ * one is foreign, so a crash between the two leaves nothing listed).
323
+ */
324
+ async saveRemote(dir, recipe, bytes, mime) {
325
+ const extension = EXTENSION_OF[mime];
326
+ if (!extension)
327
+ throw diffusionError('INVALID_OUTPUT', 'The provider returned an image type the gallery does not keep.', mime);
328
+ if (extension === '.png')
329
+ return this.save(dir, recipe, bytes);
330
+ await mkdir(dir, { recursive: true }).catch((error) => {
331
+ throw ioError('Could not create the images folder.', error);
332
+ });
333
+ const id = makeId(recipe.jobId, recipe.index);
334
+ checkedPngPath(dir, id);
335
+ const path = imagePath(dir, id, extension);
336
+ await writeAtomic(imageSidecarPath(dir, id), serializeRecipe(recipe));
337
+ await writeAtomic(path, bytes);
338
+ const size = imageSize(bytes);
339
+ const flag = (await this.flagsLock.run(() => readFlags(dir))).get(id);
340
+ return {
341
+ item: {
342
+ id,
343
+ path,
344
+ thumbnailPath: null,
345
+ width: size?.width ?? recipe.width,
346
+ height: size?.height ?? recipe.height,
347
+ sizeBytes: bytes.length,
348
+ createdAtMs: recipe.createdAtMs,
349
+ pinned: flag?.pinned ?? false,
350
+ archived: flag?.archived ?? false,
351
+ recipe,
352
+ },
353
+ bytes,
354
+ };
355
+ }
231
356
  async get(dir, id) {
232
- const path = checkedPngPath(dir, id);
233
- if (!(await isFile(path)))
357
+ const found = await locateImage(dir, id);
358
+ if (!found.exists)
234
359
  return null;
235
360
  const flags = await this.flagsLock.run(() => readFlags(dir));
236
- return (await itemFromPath(dir, id, path, flags, this.isBlank)) ?? null;
361
+ return (await itemFromPath(dir, id, found.path, flags, this.isBlank)) ?? null;
237
362
  }
238
363
  async list(dir, options) {
239
364
  const flags = await this.flagsLock.run(() => readFlags(dir));
@@ -247,16 +372,21 @@ export class Gallery {
247
372
  const flags = await readFlags(dir);
248
373
  let changed = false;
249
374
  for (const id of ids) {
250
- const path = checkedPngPath(dir, id);
251
- if (await isFile(path)) {
252
- const text = (await readPngHeader(path))?.texts.get(RECIPE_KEYWORD);
253
- if (text === undefined || !parseRecipe(text)) {
375
+ const { path, extension, exists } = await locateImage(dir, id);
376
+ if (exists) {
377
+ const text = extension === '.png' ? (await readPngHeader(path))?.texts.get(RECIPE_KEYWORD) : undefined;
378
+ const owned = extension === '.png'
379
+ ? text !== undefined && parseRecipe(text) !== undefined
380
+ : (await readSidecarRecipe(dir, id)) !== undefined;
381
+ if (!owned) {
254
382
  this.log('warn', `refusing to delete foreign image ${id}`);
255
383
  continue;
256
384
  }
257
385
  await rm(path).catch((error) => {
258
386
  throw ioError('Could not delete the image.', error);
259
387
  });
388
+ if (extension !== '.png')
389
+ await rm(imageSidecarPath(dir, id), { force: true }).catch(() => { });
260
390
  }
261
391
  await rm(thumbPath(dir, id), { force: true }).catch(() => { });
262
392
  this.blankFiles.delete(path);
@@ -270,8 +400,8 @@ export class Gallery {
270
400
  }
271
401
  setFlags(dir, id, update) {
272
402
  return this.flagsLock.run(async () => {
273
- const path = checkedPngPath(dir, id);
274
- if (!(await isFile(path)))
403
+ const { path, exists } = await locateImage(dir, id);
404
+ if (!exists)
275
405
  throw diffusionError('JOB_NOT_FOUND', 'That image is no longer in the gallery.');
276
406
  const flags = await readFlags(dir);
277
407
  const entry = { ...(flags.get(id) ?? { pinned: false, archived: false }) };
@@ -291,10 +421,10 @@ export class Gallery {
291
421
  return item;
292
422
  });
293
423
  }
294
- /** Byte-for-byte copy, keeping the embedded recipe. */
424
+ /** Byte-for-byte copy, keeping the embedded recipe (a JPEG's or WebP's stays behind in its sidecar). */
295
425
  async export(dir, id, target) {
296
- const path = checkedPngPath(dir, id);
297
- if (!(await isFile(path)))
426
+ const { path, exists } = await locateImage(dir, id);
427
+ if (!exists)
298
428
  throw diffusionError('JOB_NOT_FOUND', 'That image is no longer in the gallery.');
299
429
  await mkdir(dirname(target), { recursive: true }).catch((error) => {
300
430
  throw ioError('Could not create the destination folder.', error);