@atomic-chat/core 0.13.6 → 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 (342) 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 +5 -5
  60. package/dist/core/atomic-core.js.map +1 -1
  61. package/dist/core/create.js +43 -59
  62. package/dist/core/create.js.map +1 -1
  63. package/dist/core/managed-engines.js +2 -0
  64. package/dist/core/managed-engines.js.map +1 -1
  65. package/dist/core/prism.d.ts +21 -6
  66. package/dist/core/prism.js +44 -0
  67. package/dist/core/prism.js.map +1 -1
  68. package/dist/core/types.d.ts +0 -5
  69. package/dist/core/types.js.map +1 -1
  70. package/dist/diffusion/gallery.d.ts +24 -3
  71. package/dist/diffusion/gallery.js +151 -21
  72. package/dist/diffusion/gallery.js.map +1 -1
  73. package/dist/diffusion/index.d.ts +3 -0
  74. package/dist/diffusion/index.js +3 -0
  75. package/dist/diffusion/index.js.map +1 -1
  76. package/dist/diffusion/jobs.d.ts +6 -1
  77. package/dist/diffusion/jobs.js +6 -1
  78. package/dist/diffusion/jobs.js.map +1 -1
  79. package/dist/diffusion/media-header.d.ts +22 -0
  80. package/dist/diffusion/media-header.js +149 -0
  81. package/dist/diffusion/media-header.js.map +1 -0
  82. package/dist/diffusion/parse.d.ts +3 -1
  83. package/dist/diffusion/parse.js +36 -0
  84. package/dist/diffusion/parse.js.map +1 -1
  85. package/dist/diffusion/recipe.d.ts +10 -1
  86. package/dist/diffusion/recipe.js +85 -21
  87. package/dist/diffusion/recipe.js.map +1 -1
  88. package/dist/diffusion/remote-job.d.ts +76 -0
  89. package/dist/diffusion/remote-job.js +643 -0
  90. package/dist/diffusion/remote-job.js.map +1 -0
  91. package/dist/diffusion/remote-store.d.ts +38 -0
  92. package/dist/diffusion/remote-store.js +91 -0
  93. package/dist/diffusion/remote-store.js.map +1 -0
  94. package/dist/diffusion/service.d.ts +9 -1
  95. package/dist/diffusion/service.js +49 -9
  96. package/dist/diffusion/service.js.map +1 -1
  97. package/dist/diffusion/state.d.ts +13 -1
  98. package/dist/diffusion/state.js +8 -0
  99. package/dist/diffusion/state.js.map +1 -1
  100. package/dist/diffusion/video-gallery.d.ts +11 -4
  101. package/dist/diffusion/video-gallery.js +62 -25
  102. package/dist/diffusion/video-gallery.js.map +1 -1
  103. package/dist/diffusion/video-history.js +4 -1
  104. package/dist/diffusion/video-history.js.map +1 -1
  105. package/dist/diffusion/video-recipe.js +58 -25
  106. package/dist/diffusion/video-recipe.js.map +1 -1
  107. package/dist/diffusion/wiring.d.ts +3 -0
  108. package/dist/diffusion/wiring.js +1 -0
  109. package/dist/diffusion/wiring.js.map +1 -1
  110. package/dist/downloads/downloader.d.ts +1 -18
  111. package/dist/downloads/downloader.js +1 -45
  112. package/dist/downloads/downloader.js.map +1 -1
  113. package/dist/media/adapters/a1111.d.ts +32 -0
  114. package/dist/media/adapters/a1111.js +207 -0
  115. package/dist/media/adapters/a1111.js.map +1 -0
  116. package/dist/media/adapters/aimlapi-videos.d.ts +34 -0
  117. package/dist/media/adapters/aimlapi-videos.js +172 -0
  118. package/dist/media/adapters/aimlapi-videos.js.map +1 -0
  119. package/dist/media/adapters/dashscope-image.d.ts +26 -0
  120. package/dist/media/adapters/dashscope-image.js +160 -0
  121. package/dist/media/adapters/dashscope-image.js.map +1 -0
  122. package/dist/media/adapters/dashscope-video.d.ts +47 -0
  123. package/dist/media/adapters/dashscope-video.js +251 -0
  124. package/dist/media/adapters/dashscope-video.js.map +1 -0
  125. package/dist/media/adapters/gemini-image.d.ts +27 -0
  126. package/dist/media/adapters/gemini-image.js +181 -0
  127. package/dist/media/adapters/gemini-image.js.map +1 -0
  128. package/dist/media/adapters/gemini-veo.d.ts +39 -0
  129. package/dist/media/adapters/gemini-veo.js +196 -0
  130. package/dist/media/adapters/gemini-veo.js.map +1 -0
  131. package/dist/media/adapters/hf-images.d.ts +85 -0
  132. package/dist/media/adapters/hf-images.js +439 -0
  133. package/dist/media/adapters/hf-images.js.map +1 -0
  134. package/dist/media/adapters/hf-videos.d.ts +44 -0
  135. package/dist/media/adapters/hf-videos.js +265 -0
  136. package/dist/media/adapters/hf-videos.js.map +1 -0
  137. package/dist/media/adapters/minimax-image.d.ts +26 -0
  138. package/dist/media/adapters/minimax-image.js +111 -0
  139. package/dist/media/adapters/minimax-image.js.map +1 -0
  140. package/dist/media/adapters/minimax-video-v2.d.ts +34 -0
  141. package/dist/media/adapters/minimax-video-v2.js +191 -0
  142. package/dist/media/adapters/minimax-video-v2.js.map +1 -0
  143. package/dist/media/adapters/minimax-video.d.ts +28 -0
  144. package/dist/media/adapters/minimax-video.js +155 -0
  145. package/dist/media/adapters/minimax-video.js.map +1 -0
  146. package/dist/media/adapters/mistral-agent-image.d.ts +33 -0
  147. package/dist/media/adapters/mistral-agent-image.js +108 -0
  148. package/dist/media/adapters/mistral-agent-image.js.map +1 -0
  149. package/dist/media/adapters/nvidia-genai.d.ts +28 -0
  150. package/dist/media/adapters/nvidia-genai.js +182 -0
  151. package/dist/media/adapters/nvidia-genai.js.map +1 -0
  152. package/dist/media/adapters/openai-images.d.ts +23 -0
  153. package/dist/media/adapters/openai-images.js +164 -0
  154. package/dist/media/adapters/openai-images.js.map +1 -0
  155. package/dist/media/adapters/openai-videos.d.ts +34 -0
  156. package/dist/media/adapters/openai-videos.js +175 -0
  157. package/dist/media/adapters/openai-videos.js.map +1 -0
  158. package/dist/media/adapters/openrouter-images.d.ts +25 -0
  159. package/dist/media/adapters/openrouter-images.js +161 -0
  160. package/dist/media/adapters/openrouter-images.js.map +1 -0
  161. package/dist/media/adapters/openrouter-videos.d.ts +43 -0
  162. package/dist/media/adapters/openrouter-videos.js +208 -0
  163. package/dist/media/adapters/openrouter-videos.js.map +1 -0
  164. package/dist/media/adapters/registry.d.ts +7 -0
  165. package/dist/media/adapters/registry.js +45 -0
  166. package/dist/media/adapters/registry.js.map +1 -0
  167. package/dist/media/adapters/types.d.ts +133 -0
  168. package/dist/media/adapters/types.js +15 -0
  169. package/dist/media/adapters/types.js.map +1 -0
  170. package/dist/media/adapters/xai-images.d.ts +19 -0
  171. package/dist/media/adapters/xai-images.js +83 -0
  172. package/dist/media/adapters/xai-images.js.map +1 -0
  173. package/dist/media/adapters/xai-videos.d.ts +29 -0
  174. package/dist/media/adapters/xai-videos.js +148 -0
  175. package/dist/media/adapters/xai-videos.js.map +1 -0
  176. package/dist/media/catalog-baseline.d.ts +2 -0
  177. package/dist/media/catalog-baseline.js +10 -0
  178. package/dist/media/catalog-baseline.js.map +1 -0
  179. package/dist/media/catalog-baseline.json +1819 -0
  180. package/dist/media/catalog-service.d.ts +42 -0
  181. package/dist/media/catalog-service.js +111 -0
  182. package/dist/media/catalog-service.js.map +1 -0
  183. package/dist/media/catalog.d.ts +50 -0
  184. package/dist/media/catalog.js +315 -0
  185. package/dist/media/catalog.js.map +1 -0
  186. package/dist/media/http.d.ts +125 -0
  187. package/dist/media/http.js +308 -0
  188. package/dist/media/http.js.map +1 -0
  189. package/dist/media/index.d.ts +14 -0
  190. package/dist/media/index.js +15 -0
  191. package/dist/media/index.js.map +1 -0
  192. package/dist/media/mask.d.ts +12 -0
  193. package/dist/media/mask.js +57 -0
  194. package/dist/media/mask.js.map +1 -0
  195. package/dist/media/service.d.ts +42 -0
  196. package/dist/media/service.js +144 -0
  197. package/dist/media/service.js.map +1 -0
  198. package/dist/models/hf.d.ts +3 -16
  199. package/dist/models/hf.js +4 -42
  200. package/dist/models/hf.js.map +1 -1
  201. package/dist/router/resolve.d.ts +15 -4
  202. package/dist/router/resolve.js +25 -3
  203. package/dist/router/resolve.js.map +1 -1
  204. package/dist/runtime/environment/linux-provisioner.js +7 -67
  205. package/dist/runtime/environment/linux-provisioner.js.map +1 -1
  206. package/dist/runtime/environment/runtime-removal-plan.d.ts +19 -0
  207. package/dist/runtime/environment/runtime-removal-plan.js +74 -0
  208. package/dist/runtime/environment/runtime-removal-plan.js.map +1 -0
  209. package/dist/runtime/environment/windows-provisioner.js +20 -4
  210. package/dist/runtime/environment/windows-provisioner.js.map +1 -1
  211. package/dist/runtime/managed-engines/spec.d.ts +2 -2
  212. package/dist/runtime/managed-engines/spec.js +6 -0
  213. package/dist/runtime/managed-engines/spec.js.map +1 -1
  214. package/dist/runtime/managed-models/compatibility.d.ts +10 -0
  215. package/dist/runtime/managed-models/compatibility.js +18 -0
  216. package/dist/runtime/managed-models/compatibility.js.map +1 -1
  217. package/dist/runtime/managed-text/request-rules.d.ts +9 -7
  218. package/dist/runtime/managed-text/request-rules.js +58 -2
  219. package/dist/runtime/managed-text/request-rules.js.map +1 -1
  220. package/dist/runtime/managed-text/setting-values.d.ts +9 -0
  221. package/dist/runtime/managed-text/setting-values.js +44 -0
  222. package/dist/runtime/managed-text/setting-values.js.map +1 -0
  223. package/dist/runtime/sglang/adapter.d.ts +50 -0
  224. package/dist/runtime/sglang/adapter.js +393 -0
  225. package/dist/runtime/sglang/adapter.js.map +1 -0
  226. package/dist/runtime/sglang/engine.d.ts +16 -0
  227. package/dist/runtime/sglang/engine.js +38 -0
  228. package/dist/runtime/sglang/engine.js.map +1 -0
  229. package/dist/runtime/sglang/index.d.ts +11 -0
  230. package/dist/runtime/sglang/index.js +12 -0
  231. package/dist/runtime/sglang/index.js.map +1 -0
  232. package/dist/runtime/sglang/memory.d.ts +64 -0
  233. package/dist/runtime/sglang/memory.js +90 -0
  234. package/dist/runtime/sglang/memory.js.map +1 -0
  235. package/dist/runtime/sglang/settings.d.ts +49 -0
  236. package/dist/runtime/sglang/settings.js +118 -0
  237. package/dist/runtime/sglang/settings.js.map +1 -0
  238. package/dist/runtime/shared/external-sessions.js +1 -0
  239. package/dist/runtime/shared/external-sessions.js.map +1 -1
  240. package/dist/runtime/vllm/adapter.js +2 -47
  241. package/dist/runtime/vllm/adapter.js.map +1 -1
  242. package/dist/runtime/vllm/memory.js +3 -16
  243. package/dist/runtime/vllm/memory.js.map +1 -1
  244. package/dist/runtime/vllm/settings.d.ts +7 -0
  245. package/dist/runtime/vllm/settings.js +2 -30
  246. package/dist/runtime/vllm/settings.js.map +1 -1
  247. package/dist/server/control/router.js +4 -3
  248. package/dist/server/control/router.js.map +1 -1
  249. package/dist/server/control/routes/media.d.ts +9 -0
  250. package/dist/server/control/routes/media.js +24 -0
  251. package/dist/server/control/routes/media.js.map +1 -0
  252. package/dist/server/control/routes/model-compatibility.d.ts +9 -0
  253. package/dist/server/control/routes/model-compatibility.js +31 -0
  254. package/dist/server/control/routes/model-compatibility.js.map +1 -0
  255. package/dist/server/control/types.d.ts +14 -20
  256. package/dist/server/control/types.js.map +1 -1
  257. package/dist/server/http.js +15 -2
  258. package/dist/server/http.js.map +1 -1
  259. package/dist/server/public/images-params.js +18 -1
  260. package/dist/server/public/images-params.js.map +1 -1
  261. package/dist/server/public/images.d.ts +11 -2
  262. package/dist/server/public/images.js +73 -9
  263. package/dist/server/public/images.js.map +1 -1
  264. package/dist/server/public/index.js +7 -1
  265. package/dist/server/public/index.js.map +1 -1
  266. package/dist/server/public/listing.js +1 -0
  267. package/dist/server/public/listing.js.map +1 -1
  268. package/dist/server/public/remote-media.d.ts +51 -0
  269. package/dist/server/public/remote-media.js +225 -0
  270. package/dist/server/public/remote-media.js.map +1 -0
  271. package/dist/server/public/responses.js +4 -2
  272. package/dist/server/public/responses.js.map +1 -1
  273. package/dist/server/public/static-assets.generated.js +1 -1
  274. package/dist/server/public/static-assets.generated.js.map +1 -1
  275. package/dist/server/public/trace.js +2 -0
  276. package/dist/server/public/trace.js.map +1 -1
  277. package/dist/server/public/types.d.ts +5 -1
  278. package/dist/server/public/videos-params.js +13 -3
  279. package/dist/server/public/videos-params.js.map +1 -1
  280. package/dist/server/public/videos.d.ts +1 -0
  281. package/dist/server/public/videos.js +21 -3
  282. package/dist/server/public/videos.js.map +1 -1
  283. package/dist/settings/schema/llamacpp-upstream.json +9 -0
  284. package/dist/settings/schema/sglang.json +251 -0
  285. package/dist/settings/schema.js +27 -1
  286. package/dist/settings/schema.js.map +1 -1
  287. package/dist/version.d.ts +1 -1
  288. package/dist/version.js +1 -1
  289. package/package.json +1 -5
  290. package/src/settings/schema/llamacpp-upstream.json +9 -0
  291. package/src/settings/schema/sglang.json +251 -0
  292. package/dist/backend/catalog/bundled-manifest-baseline.d.ts +0 -2
  293. package/dist/backend/catalog/bundled-manifest-baseline.js +0 -65
  294. package/dist/backend/catalog/bundled-manifest-baseline.js.map +0 -1
  295. package/dist/contracts/model-setup.d.ts +0 -115
  296. package/dist/contracts/model-setup.js +0 -33
  297. package/dist/contracts/model-setup.js.map +0 -1
  298. package/dist/core/model-setup/index.d.ts +0 -4
  299. package/dist/core/model-setup/index.js +0 -5
  300. package/dist/core/model-setup/index.js.map +0 -1
  301. package/dist/core/model-setup/plan.d.ts +0 -56
  302. package/dist/core/model-setup/plan.js +0 -158
  303. package/dist/core/model-setup/plan.js.map +0 -1
  304. package/dist/core/model-setup/service.d.ts +0 -92
  305. package/dist/core/model-setup/service.js +0 -329
  306. package/dist/core/model-setup/service.js.map +0 -1
  307. package/dist/core/model-setup/store.d.ts +0 -29
  308. package/dist/core/model-setup/store.js +0 -116
  309. package/dist/core/model-setup/store.js.map +0 -1
  310. package/dist/core/model-setup/wiring.d.ts +0 -59
  311. package/dist/core/model-setup/wiring.js +0 -132
  312. package/dist/core/model-setup/wiring.js.map +0 -1
  313. package/dist/core/tensorrt-llm.d.ts +0 -169
  314. package/dist/core/tensorrt-llm.js +0 -428
  315. package/dist/core/tensorrt-llm.js.map +0 -1
  316. package/dist/downloads/segmented.d.ts +0 -40
  317. package/dist/downloads/segmented.js +0 -170
  318. package/dist/downloads/segmented.js.map +0 -1
  319. package/dist/runtime/tensorrt-llm/delete.d.ts +0 -15
  320. package/dist/runtime/tensorrt-llm/delete.js +0 -60
  321. package/dist/runtime/tensorrt-llm/delete.js.map +0 -1
  322. package/dist/runtime/tensorrt-llm/guest-files.d.ts +0 -8
  323. package/dist/runtime/tensorrt-llm/guest-files.js +0 -49
  324. package/dist/runtime/tensorrt-llm/guest-files.js.map +0 -1
  325. package/dist/runtime/tensorrt-llm/location.d.ts +0 -20
  326. package/dist/runtime/tensorrt-llm/location.js +0 -48
  327. package/dist/runtime/tensorrt-llm/location.js.map +0 -1
  328. package/dist/runtime/tensorrt-llm/model-dir.d.ts +0 -38
  329. package/dist/runtime/tensorrt-llm/model-dir.js +0 -137
  330. package/dist/runtime/tensorrt-llm/model-dir.js.map +0 -1
  331. package/dist/runtime/tensorrt-llm/quant-format.d.ts +0 -65
  332. package/dist/runtime/tensorrt-llm/quant-format.js +0 -189
  333. package/dist/runtime/tensorrt-llm/quant-format.js.map +0 -1
  334. package/dist/runtime/tensorrt-llm/registry.d.ts +0 -26
  335. package/dist/runtime/tensorrt-llm/registry.js +0 -68
  336. package/dist/runtime/tensorrt-llm/registry.js.map +0 -1
  337. package/dist/runtime/tensorrt-llm/runtime.d.ts +0 -130
  338. package/dist/runtime/tensorrt-llm/runtime.js +0 -395
  339. package/dist/runtime/tensorrt-llm/runtime.js.map +0 -1
  340. package/dist/server/control/routes/model-setups.d.ts +0 -11
  341. package/dist/server/control/routes/model-setups.js +0 -55
  342. package/dist/server/control/routes/model-setups.js.map +0 -1
@@ -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);
@@ -1 +1 @@
1
- {"version":3,"file":"gallery.js","sourceRoot":"","sources":["../../src/diffusion/gallery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gallery.js","sourceRoot":"","sources":["../../src/diffusion/gallery.ts"],"names":[],"mappings":"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"}
@@ -16,11 +16,14 @@ export * from './image-job.js';
16
16
  export * from './install.js';
17
17
  export * from './job-kind.js';
18
18
  export * from './jobs.js';
19
+ export * from './media-header.js';
19
20
  export * from './mutex.js';
20
21
  export * from './parse.js';
21
22
  export * from './png.js';
22
23
  export * from './progress.js';
23
24
  export * from './recipe.js';
25
+ export * from './remote-job.js';
26
+ export * from './remote-store.js';
24
27
  export * from './server-process.js';
25
28
  export * from './service.js';
26
29
  export * from './session.js';
@@ -16,11 +16,14 @@ export * from './image-job.js';
16
16
  export * from './install.js';
17
17
  export * from './job-kind.js';
18
18
  export * from './jobs.js';
19
+ export * from './media-header.js';
19
20
  export * from './mutex.js';
20
21
  export * from './parse.js';
21
22
  export * from './png.js';
22
23
  export * from './progress.js';
23
24
  export * from './recipe.js';
25
+ export * from './remote-job.js';
26
+ export * from './remote-store.js';
24
27
  export * from './server-process.js';
25
28
  export * from './service.js';
26
29
  export * from './session.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/diffusion/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,qBAAqB,CAAA;AACnC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/diffusion/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA"}
@@ -9,12 +9,13 @@
9
9
  * One deliberate change: a respawn re-checks, once it holds the load lock, that nobody cancelled
10
10
  * the job or unloaded the model while it waited. The plugin took the lock and spawned regardless.
11
11
  */
12
- import type { DiffusionCancelResult, DiffusionErrorBody, ImageGenerateRequest, ImageJob, VideoGenerateRequest, VideoJob } from '../contracts/index.js';
12
+ import type { DiffusionCancelResult, DiffusionErrorBody, ImageGenerateRequest, ImageJob, ImageJobState, VideoGenerateRequest, VideoJob } from '../contracts/index.js';
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
16
  import type { JobCommon, JobKind, JobPlan } from './job-kind.js';
17
17
  import type { AsyncMutex } from './mutex.js';
18
+ import type { RemoteDeps } from './remote-job.js';
18
19
  import type { SessionDeps } from './session.js';
19
20
  import type { ServerSpec } from './types.js';
20
21
  export { decodeImages, resolveInputs, withoutSources } from './image-job.js';
@@ -46,6 +47,8 @@ export interface JobDeps extends SessionDeps {
46
47
  planVideo?: (request: VideoGenerateRequest, spec: ServerSpec) => Promise<JobPlan | undefined>;
47
48
  /** A clip landed in the video gallery (the estimate's history is stale). */
48
49
  videoSaved?: () => void;
50
+ /** Cloud and self-hosted providers' models; absent, a request with a `target` is refused. */
51
+ remote?: RemoteDeps;
49
52
  }
50
53
  export interface JobOutcome<J = ImageJob> {
51
54
  job: J;
@@ -60,6 +63,8 @@ export type JobResult<J = ImageJob> = {
60
63
  error: DiffusionErrorBody;
61
64
  };
62
65
  export declare function drawSeed(): number;
66
+ /** Move a job forward (never out of a terminal state), and say so in an event. */
67
+ export declare function setJobState(deps: JobDeps, id: string, next: ImageJobState): void;
63
68
  /** Move a job to a terminal state exactly once. Whether this call made the transition. */
64
69
  export declare function finishJob<Item>(deps: JobDeps, id: string, result: {
65
70
  ok: true;
@@ -15,6 +15,7 @@ import { cpuBackendExtraArgs, isGgmlUnsupportedOpAbort } from './args.js';
15
15
  import { cancelledError, diffusionError, errorBody, internalError, modelNotLoadedError } from './errors.js';
16
16
  import { IMAGE_JOB_KIND } from './image-job.js';
17
17
  import { VIDEO_JOB_KIND } from './video-job.js';
18
+ import { cancelRemoteJob } from './remote-job.js';
18
19
  import { classifyExit, diagnosticTail, GpuFaultWatch } from './progress.js';
19
20
  import { describeExit, exitCodeOf } from './server-process.js';
20
21
  import { loadFromSpec, stopKeepingSpec, takeDownSession, withOffloadFallback } from './session.js';
@@ -45,7 +46,8 @@ function emitJob(deps, id) {
45
46
  if (record)
46
47
  kindOf(record.kind).emitJob(deps.emit, structuredClone(record.job));
47
48
  }
48
- function setJobState(deps, id, next) {
49
+ /** Move a job forward (never out of a terminal state), and say so in an event. */
50
+ export function setJobState(deps, id, next) {
49
51
  let changed = false;
50
52
  deps.state.updateJob(id, (record) => {
51
53
  if (record.job.state === next || isTerminalJobState(record.job.state))
@@ -454,6 +456,9 @@ export async function cancelJob(deps, id, graceMs = deps.timings.cancelGraceMs)
454
456
  const record = state.record(id);
455
457
  if (!record)
456
458
  throw diffusionError('JOB_NOT_FOUND', 'That job no longer exists.');
459
+ // A provider's job has no server here to stop.
460
+ if (record.remote)
461
+ return cancelRemoteJob(deps, id);
457
462
  if (isTerminalJobState(record.job.state))
458
463
  return { cancelled: record.job.state === 'cancelled', serverStopped: false };
459
464
  record.cancel.requested = true;
@@ -1 +1 @@
1
- {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/diffusion/jobs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/diffusion/jobs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Sizes and lengths read from file headers, without a codec (AGENTS.md: the core has no image or
3
+ * video decoder beyond its 8-bit PNG reader): the dimensions of a PNG, JPEG or WebP, and the
4
+ * dimensions and duration of an MP4. What a provider's file says about itself, for its recipe.
5
+ */
6
+ export interface PixelSize {
7
+ width: number;
8
+ height: number;
9
+ }
10
+ /** The pixel size a PNG, JPEG or WebP declares, or `undefined` for anything else. */
11
+ export declare function imageSize(bytes: Buffer): PixelSize | undefined;
12
+ /** What the first bytes of an image say it is: `image/png`, `image/jpeg`, `image/webp`, or `undefined`. */
13
+ export declare function imageMime(bytes: Buffer): string | undefined;
14
+ /** Whether `bytes` are an MP4 (ISO base media): an `ftyp` box first. */
15
+ export declare function isMp4(bytes: Buffer): boolean;
16
+ export interface Mp4Facts {
17
+ width: number;
18
+ height: number;
19
+ durationSecs: number;
20
+ }
21
+ /** The picture size and length an MP4 declares in its `moov`, or `undefined` when it has none to read. */
22
+ export declare function mp4Facts(bytes: Buffer): Mp4Facts | undefined;