@atomic-chat/core 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (868) hide show
  1. package/README.md +46 -0
  2. package/dist/app-daemon.d.ts +2 -0
  3. package/dist/app-daemon.js +72 -0
  4. package/dist/app-daemon.js.map +1 -0
  5. package/dist/backend/catalog/archive.d.ts +70 -0
  6. package/dist/backend/catalog/archive.js +138 -0
  7. package/dist/backend/catalog/archive.js.map +1 -0
  8. package/dist/backend/catalog/bundled-manifest-baseline.d.ts +2 -0
  9. package/dist/backend/catalog/bundled-manifest-baseline.js +49 -0
  10. package/dist/backend/catalog/bundled-manifest-baseline.js.map +1 -0
  11. package/dist/backend/catalog/cuda-family.d.ts +54 -0
  12. package/dist/backend/catalog/cuda-family.js +93 -0
  13. package/dist/backend/catalog/cuda-family.js.map +1 -0
  14. package/dist/backend/catalog/index.d.ts +6 -0
  15. package/dist/backend/catalog/index.js +7 -0
  16. package/dist/backend/catalog/index.js.map +1 -0
  17. package/dist/backend/catalog/manifest.d.ts +102 -0
  18. package/dist/backend/catalog/manifest.js +233 -0
  19. package/dist/backend/catalog/manifest.js.map +1 -0
  20. package/dist/backend/catalog/migrate.d.ts +40 -0
  21. package/dist/backend/catalog/migrate.js +135 -0
  22. package/dist/backend/catalog/migrate.js.map +1 -0
  23. package/dist/backend/index.d.ts +18 -0
  24. package/dist/backend/index.js +19 -0
  25. package/dist/backend/index.js.map +1 -0
  26. package/dist/backend/install/index.d.ts +3 -0
  27. package/dist/backend/install/index.js +4 -0
  28. package/dist/backend/install/index.js.map +1 -0
  29. package/dist/backend/install/runtime-backend.d.ts +22 -0
  30. package/dist/backend/install/runtime-backend.js +95 -0
  31. package/dist/backend/install/runtime-backend.js.map +1 -0
  32. package/dist/backend/install/service.d.ts +119 -0
  33. package/dist/backend/install/service.js +218 -0
  34. package/dist/backend/install/service.js.map +1 -0
  35. package/dist/backend/installed/index.d.ts +3 -0
  36. package/dist/backend/installed/index.js +4 -0
  37. package/dist/backend/installed/index.js.map +1 -0
  38. package/dist/backend/installed/installed.d.ts +93 -0
  39. package/dist/backend/installed/installed.js +209 -0
  40. package/dist/backend/installed/installed.js.map +1 -0
  41. package/dist/backend/installed/scan.d.ts +39 -0
  42. package/dist/backend/installed/scan.js +105 -0
  43. package/dist/backend/installed/scan.js.map +1 -0
  44. package/dist/backend/optimal/index.d.ts +3 -0
  45. package/dist/backend/optimal/index.js +4 -0
  46. package/dist/backend/optimal/index.js.map +1 -0
  47. package/dist/backend/optimal/optimal-cache.d.ts +90 -0
  48. package/dist/backend/optimal/optimal-cache.js +198 -0
  49. package/dist/backend/optimal/optimal-cache.js.map +1 -0
  50. package/dist/backend/optimal/optimal-store.d.ts +24 -0
  51. package/dist/backend/optimal/optimal-store.js +103 -0
  52. package/dist/backend/optimal/optimal-store.js.map +1 -0
  53. package/dist/backend/select/amd-rocm-pci-ids.d.ts +3 -0
  54. package/dist/backend/select/amd-rocm-pci-ids.js +57 -0
  55. package/dist/backend/select/amd-rocm-pci-ids.js.map +1 -0
  56. package/dist/backend/select/categories.d.ts +49 -0
  57. package/dist/backend/select/categories.js +178 -0
  58. package/dist/backend/select/categories.js.map +1 -0
  59. package/dist/backend/select/features.d.ts +81 -0
  60. package/dist/backend/select/features.js +221 -0
  61. package/dist/backend/select/features.js.map +1 -0
  62. package/dist/backend/select/index.d.ts +9 -0
  63. package/dist/backend/select/index.js +10 -0
  64. package/dist/backend/select/index.js.map +1 -0
  65. package/dist/backend/select/recovery.d.ts +51 -0
  66. package/dist/backend/select/recovery.js +108 -0
  67. package/dist/backend/select/recovery.js.map +1 -0
  68. package/dist/backend/select/tiers.d.ts +76 -0
  69. package/dist/backend/select/tiers.js +179 -0
  70. package/dist/backend/select/tiers.js.map +1 -0
  71. package/dist/backend/turboquant.d.ts +134 -0
  72. package/dist/backend/turboquant.js +587 -0
  73. package/dist/backend/turboquant.js.map +1 -0
  74. package/dist/backend/types.d.ts +139 -0
  75. package/dist/backend/types.js +13 -0
  76. package/dist/backend/types.js.map +1 -0
  77. package/dist/backend/version.d.ts +59 -0
  78. package/dist/backend/version.js +168 -0
  79. package/dist/backend/version.js.map +1 -0
  80. package/dist/cli/bin.d.ts +2 -0
  81. package/dist/cli/bin.js +10 -0
  82. package/dist/cli/bin.js.map +1 -0
  83. package/dist/cli/cloud.d.ts +13 -0
  84. package/dist/cli/cloud.js +146 -0
  85. package/dist/cli/cloud.js.map +1 -0
  86. package/dist/cli/commands/daemon.d.ts +4 -0
  87. package/dist/cli/commands/daemon.js +88 -0
  88. package/dist/cli/commands/daemon.js.map +1 -0
  89. package/dist/cli/commands/index.d.ts +16 -0
  90. package/dist/cli/commands/index.js +17 -0
  91. package/dist/cli/commands/index.js.map +1 -0
  92. package/dist/cli/commands/models.d.ts +4 -0
  93. package/dist/cli/commands/models.js +52 -0
  94. package/dist/cli/commands/models.js.map +1 -0
  95. package/dist/cli/commands/serve.d.ts +16 -0
  96. package/dist/cli/commands/serve.js +263 -0
  97. package/dist/cli/commands/serve.js.map +1 -0
  98. package/dist/cli/commands/server.d.ts +4 -0
  99. package/dist/cli/commands/server.js +126 -0
  100. package/dist/cli/commands/server.js.map +1 -0
  101. package/dist/cli/commands/shared.d.ts +10 -0
  102. package/dist/cli/commands/shared.js +34 -0
  103. package/dist/cli/commands/shared.js.map +1 -0
  104. package/dist/cli/commands/shutdown.d.ts +4 -0
  105. package/dist/cli/commands/shutdown.js +32 -0
  106. package/dist/cli/commands/shutdown.js.map +1 -0
  107. package/dist/cli/commands/telemetry.d.ts +8 -0
  108. package/dist/cli/commands/telemetry.js +50 -0
  109. package/dist/cli/commands/telemetry.js.map +1 -0
  110. package/dist/cli/index.d.ts +7 -0
  111. package/dist/cli/index.js +8 -0
  112. package/dist/cli/index.js.map +1 -0
  113. package/dist/cli/io.d.ts +46 -0
  114. package/dist/cli/io.js +101 -0
  115. package/dist/cli/io.js.map +1 -0
  116. package/dist/cli/launch.d.ts +50 -0
  117. package/dist/cli/launch.js +327 -0
  118. package/dist/cli/launch.js.map +1 -0
  119. package/dist/cli/main.d.ts +10 -0
  120. package/dist/cli/main.js +109 -0
  121. package/dist/cli/main.js.map +1 -0
  122. package/dist/cli/owner.d.ts +39 -0
  123. package/dist/cli/owner.js +179 -0
  124. package/dist/cli/owner.js.map +1 -0
  125. package/dist/client/control-client.d.ts +213 -0
  126. package/dist/client/control-client.js +368 -0
  127. package/dist/client/control-client.js.map +1 -0
  128. package/dist/client/index.d.ts +7 -0
  129. package/dist/client/index.js +8 -0
  130. package/dist/client/index.js.map +1 -0
  131. package/dist/cloud/chatgpt.d.ts +63 -0
  132. package/dist/cloud/chatgpt.js +233 -0
  133. package/dist/cloud/chatgpt.js.map +1 -0
  134. package/dist/cloud/index.d.ts +8 -0
  135. package/dist/cloud/index.js +9 -0
  136. package/dist/cloud/index.js.map +1 -0
  137. package/dist/cloud/registry.d.ts +51 -0
  138. package/dist/cloud/registry.js +148 -0
  139. package/dist/cloud/registry.js.map +1 -0
  140. package/dist/config/data-folder.d.ts +57 -0
  141. package/dist/config/data-folder.js +150 -0
  142. package/dist/config/data-folder.js.map +1 -0
  143. package/dist/config/index.d.ts +9 -0
  144. package/dist/config/index.js +10 -0
  145. package/dist/config/index.js.map +1 -0
  146. package/dist/config/paths.d.ts +98 -0
  147. package/dist/config/paths.js +109 -0
  148. package/dist/config/paths.js.map +1 -0
  149. package/dist/contracts/control-api.d.ts +61 -0
  150. package/dist/contracts/control-api.js +7 -0
  151. package/dist/contracts/control-api.js.map +1 -0
  152. package/dist/contracts/diffusion.d.ts +477 -0
  153. package/dist/contracts/diffusion.js +10 -0
  154. package/dist/contracts/diffusion.js.map +1 -0
  155. package/dist/contracts/errors.d.ts +61 -0
  156. package/dist/contracts/errors.js +70 -0
  157. package/dist/contracts/errors.js.map +1 -0
  158. package/dist/contracts/events.d.ts +270 -0
  159. package/dist/contracts/events.js +7 -0
  160. package/dist/contracts/events.js.map +1 -0
  161. package/dist/contracts/hardware.d.ts +53 -0
  162. package/dist/contracts/hardware.js +12 -0
  163. package/dist/contracts/hardware.js.map +1 -0
  164. package/dist/contracts/index.d.ts +12 -0
  165. package/dist/contracts/index.js +13 -0
  166. package/dist/contracts/index.js.map +1 -0
  167. package/dist/contracts/model-yml.d.ts +28 -0
  168. package/dist/contracts/model-yml.js +23 -0
  169. package/dist/contracts/model-yml.js.map +1 -0
  170. package/dist/contracts/remote-access.d.ts +43 -0
  171. package/dist/contracts/remote-access.js +12 -0
  172. package/dist/contracts/remote-access.js.map +1 -0
  173. package/dist/contracts/session.d.ts +39 -0
  174. package/dist/contracts/session.js +7 -0
  175. package/dist/contracts/session.js.map +1 -0
  176. package/dist/contracts/settings.d.ts +106 -0
  177. package/dist/contracts/settings.js +17 -0
  178. package/dist/contracts/settings.js.map +1 -0
  179. package/dist/core/atomic-core.d.ts +149 -0
  180. package/dist/core/atomic-core.js +289 -0
  181. package/dist/core/atomic-core.js.map +1 -0
  182. package/dist/core/create.d.ts +12 -0
  183. package/dist/core/create.js +393 -0
  184. package/dist/core/create.js.map +1 -0
  185. package/dist/core/index.d.ts +10 -0
  186. package/dist/core/index.js +9 -0
  187. package/dist/core/index.js.map +1 -0
  188. package/dist/core/public-server.d.ts +76 -0
  189. package/dist/core/public-server.js +143 -0
  190. package/dist/core/public-server.js.map +1 -0
  191. package/dist/core/reap-orphans.d.ts +7 -0
  192. package/dist/core/reap-orphans.js +40 -0
  193. package/dist/core/reap-orphans.js.map +1 -0
  194. package/dist/core/sessions.d.ts +60 -0
  195. package/dist/core/sessions.js +180 -0
  196. package/dist/core/sessions.js.map +1 -0
  197. package/dist/core/types.d.ts +61 -0
  198. package/dist/core/types.js +2 -0
  199. package/dist/core/types.js.map +1 -0
  200. package/dist/credentials/api-keys.d.ts +41 -0
  201. package/dist/credentials/api-keys.js +156 -0
  202. package/dist/credentials/api-keys.js.map +1 -0
  203. package/dist/credentials/chatgpt-auth.d.ts +73 -0
  204. package/dist/credentials/chatgpt-auth.js +167 -0
  205. package/dist/credentials/chatgpt-auth.js.map +1 -0
  206. package/dist/credentials/chatgpt-oauth.d.ts +97 -0
  207. package/dist/credentials/chatgpt-oauth.js +329 -0
  208. package/dist/credentials/chatgpt-oauth.js.map +1 -0
  209. package/dist/credentials/chatgpt-store.d.ts +33 -0
  210. package/dist/credentials/chatgpt-store.js +110 -0
  211. package/dist/credentials/chatgpt-store.js.map +1 -0
  212. package/dist/credentials/index.d.ts +11 -0
  213. package/dist/credentials/index.js +12 -0
  214. package/dist/credentials/index.js.map +1 -0
  215. package/dist/diffusion/args.d.ts +102 -0
  216. package/dist/diffusion/args.js +291 -0
  217. package/dist/diffusion/args.js.map +1 -0
  218. package/dist/diffusion/compat.d.ts +20 -0
  219. package/dist/diffusion/compat.js +58 -0
  220. package/dist/diffusion/compat.js.map +1 -0
  221. package/dist/diffusion/containment.d.ts +15 -0
  222. package/dist/diffusion/containment.js +32 -0
  223. package/dist/diffusion/containment.js.map +1 -0
  224. package/dist/diffusion/errors.d.ts +28 -0
  225. package/dist/diffusion/errors.js +63 -0
  226. package/dist/diffusion/errors.js.map +1 -0
  227. package/dist/diffusion/gallery.d.ts +76 -0
  228. package/dist/diffusion/gallery.js +307 -0
  229. package/dist/diffusion/gallery.js.map +1 -0
  230. package/dist/diffusion/http.d.ts +16 -0
  231. package/dist/diffusion/http.js +41 -0
  232. package/dist/diffusion/http.js.map +1 -0
  233. package/dist/diffusion/idle.d.ts +23 -0
  234. package/dist/diffusion/idle.js +45 -0
  235. package/dist/diffusion/idle.js.map +1 -0
  236. package/dist/diffusion/image-job.d.ts +25 -0
  237. package/dist/diffusion/image-job.js +176 -0
  238. package/dist/diffusion/image-job.js.map +1 -0
  239. package/dist/diffusion/index.d.ts +35 -0
  240. package/dist/diffusion/index.js +36 -0
  241. package/dist/diffusion/index.js.map +1 -0
  242. package/dist/diffusion/install.d.ts +61 -0
  243. package/dist/diffusion/install.js +287 -0
  244. package/dist/diffusion/install.js.map +1 -0
  245. package/dist/diffusion/job-kind.d.ts +74 -0
  246. package/dist/diffusion/job-kind.js +7 -0
  247. package/dist/diffusion/job-kind.js.map +1 -0
  248. package/dist/diffusion/jobs.d.ts +90 -0
  249. package/dist/diffusion/jobs.js +433 -0
  250. package/dist/diffusion/jobs.js.map +1 -0
  251. package/dist/diffusion/mutex.d.ts +16 -0
  252. package/dist/diffusion/mutex.js +46 -0
  253. package/dist/diffusion/mutex.js.map +1 -0
  254. package/dist/diffusion/parse.d.ts +19 -0
  255. package/dist/diffusion/parse.js +274 -0
  256. package/dist/diffusion/parse.js.map +1 -0
  257. package/dist/diffusion/png.d.ts +77 -0
  258. package/dist/diffusion/png.js +335 -0
  259. package/dist/diffusion/png.js.map +1 -0
  260. package/dist/diffusion/progress.d.ts +74 -0
  261. package/dist/diffusion/progress.js +223 -0
  262. package/dist/diffusion/progress.js.map +1 -0
  263. package/dist/diffusion/recipe.d.ts +26 -0
  264. package/dist/diffusion/recipe.js +206 -0
  265. package/dist/diffusion/recipe.js.map +1 -0
  266. package/dist/diffusion/server-process.d.ts +59 -0
  267. package/dist/diffusion/server-process.js +235 -0
  268. package/dist/diffusion/server-process.js.map +1 -0
  269. package/dist/diffusion/service.d.ts +107 -0
  270. package/dist/diffusion/service.js +431 -0
  271. package/dist/diffusion/service.js.map +1 -0
  272. package/dist/diffusion/session.d.ts +58 -0
  273. package/dist/diffusion/session.js +226 -0
  274. package/dist/diffusion/session.js.map +1 -0
  275. package/dist/diffusion/state.d.ts +90 -0
  276. package/dist/diffusion/state.js +122 -0
  277. package/dist/diffusion/state.js.map +1 -0
  278. package/dist/diffusion/tracker.d.ts +46 -0
  279. package/dist/diffusion/tracker.js +153 -0
  280. package/dist/diffusion/tracker.js.map +1 -0
  281. package/dist/diffusion/types.d.ts +62 -0
  282. package/dist/diffusion/types.js +10 -0
  283. package/dist/diffusion/types.js.map +1 -0
  284. package/dist/diffusion/validate.d.ts +36 -0
  285. package/dist/diffusion/validate.js +166 -0
  286. package/dist/diffusion/validate.js.map +1 -0
  287. package/dist/diffusion/video-gallery.d.ts +56 -0
  288. package/dist/diffusion/video-gallery.js +252 -0
  289. package/dist/diffusion/video-gallery.js.map +1 -0
  290. package/dist/diffusion/video-job.d.ts +33 -0
  291. package/dist/diffusion/video-job.js +150 -0
  292. package/dist/diffusion/video-job.js.map +1 -0
  293. package/dist/diffusion/video-recipe.d.ts +12 -0
  294. package/dist/diffusion/video-recipe.js +141 -0
  295. package/dist/diffusion/video-recipe.js.map +1 -0
  296. package/dist/diffusion/wiring.d.ts +24 -0
  297. package/dist/diffusion/wiring.js +38 -0
  298. package/dist/diffusion/wiring.js.map +1 -0
  299. package/dist/diffusion/workflow.d.ts +33 -0
  300. package/dist/diffusion/workflow.js +78 -0
  301. package/dist/diffusion/workflow.js.map +1 -0
  302. package/dist/downloads/archive.d.ts +15 -0
  303. package/dist/downloads/archive.js +121 -0
  304. package/dist/downloads/archive.js.map +1 -0
  305. package/dist/downloads/disk-space.d.ts +18 -0
  306. package/dist/downloads/disk-space.js +32 -0
  307. package/dist/downloads/disk-space.js.map +1 -0
  308. package/dist/downloads/disk.d.ts +38 -0
  309. package/dist/downloads/disk.js +88 -0
  310. package/dist/downloads/disk.js.map +1 -0
  311. package/dist/downloads/downloader.d.ts +75 -0
  312. package/dist/downloads/downloader.js +479 -0
  313. package/dist/downloads/downloader.js.map +1 -0
  314. package/dist/downloads/index.d.ts +14 -0
  315. package/dist/downloads/index.js +15 -0
  316. package/dist/downloads/index.js.map +1 -0
  317. package/dist/downloads/protocol.d.ts +52 -0
  318. package/dist/downloads/protocol.js +153 -0
  319. package/dist/downloads/protocol.js.map +1 -0
  320. package/dist/downloads/proxy-fetch.d.ts +45 -0
  321. package/dist/downloads/proxy-fetch.js +571 -0
  322. package/dist/downloads/proxy-fetch.js.map +1 -0
  323. package/dist/downloads/verify.d.ts +22 -0
  324. package/dist/downloads/verify.js +74 -0
  325. package/dist/downloads/verify.js.map +1 -0
  326. package/dist/events/emitter.d.ts +44 -0
  327. package/dist/events/emitter.js +104 -0
  328. package/dist/events/emitter.js.map +1 -0
  329. package/dist/events/index.d.ts +5 -0
  330. package/dist/events/index.js +6 -0
  331. package/dist/events/index.js.map +1 -0
  332. package/dist/hardware/index.d.ts +7 -0
  333. package/dist/hardware/index.js +8 -0
  334. package/dist/hardware/index.js.map +1 -0
  335. package/dist/hardware/override.d.ts +46 -0
  336. package/dist/hardware/override.js +81 -0
  337. package/dist/hardware/override.js.map +1 -0
  338. package/dist/host/index.d.ts +15 -0
  339. package/dist/host/index.js +16 -0
  340. package/dist/host/index.js.map +1 -0
  341. package/dist/index.d.ts +5 -0
  342. package/dist/index.js +6 -0
  343. package/dist/index.js.map +1 -0
  344. package/dist/integrations/catalog.d.ts +67 -0
  345. package/dist/integrations/catalog.js +385 -0
  346. package/dist/integrations/catalog.js.map +1 -0
  347. package/dist/integrations/config-io.d.ts +86 -0
  348. package/dist/integrations/config-io.js +229 -0
  349. package/dist/integrations/config-io.js.map +1 -0
  350. package/dist/integrations/configure/atomic-agent.d.ts +33 -0
  351. package/dist/integrations/configure/atomic-agent.js +127 -0
  352. package/dist/integrations/configure/atomic-agent.js.map +1 -0
  353. package/dist/integrations/configure/claude-code.d.ts +16 -0
  354. package/dist/integrations/configure/claude-code.js +45 -0
  355. package/dist/integrations/configure/claude-code.js.map +1 -0
  356. package/dist/integrations/configure/cline.d.ts +28 -0
  357. package/dist/integrations/configure/cline.js +70 -0
  358. package/dist/integrations/configure/cline.js.map +1 -0
  359. package/dist/integrations/configure/codex.d.ts +17 -0
  360. package/dist/integrations/configure/codex.js +43 -0
  361. package/dist/integrations/configure/codex.js.map +1 -0
  362. package/dist/integrations/configure/copilot.d.ts +10 -0
  363. package/dist/integrations/configure/copilot.js +14 -0
  364. package/dist/integrations/configure/copilot.js.map +1 -0
  365. package/dist/integrations/configure/droid.d.ts +12 -0
  366. package/dist/integrations/configure/droid.js +47 -0
  367. package/dist/integrations/configure/droid.js.map +1 -0
  368. package/dist/integrations/configure/dsh.d.ts +34 -0
  369. package/dist/integrations/configure/dsh.js +146 -0
  370. package/dist/integrations/configure/dsh.js.map +1 -0
  371. package/dist/integrations/configure/env-agent.d.ts +26 -0
  372. package/dist/integrations/configure/env-agent.js +41 -0
  373. package/dist/integrations/configure/env-agent.js.map +1 -0
  374. package/dist/integrations/configure/goose.d.ts +12 -0
  375. package/dist/integrations/configure/goose.js +16 -0
  376. package/dist/integrations/configure/goose.js.map +1 -0
  377. package/dist/integrations/configure/hermes.d.ts +41 -0
  378. package/dist/integrations/configure/hermes.js +247 -0
  379. package/dist/integrations/configure/hermes.js.map +1 -0
  380. package/dist/integrations/configure/index.d.ts +25 -0
  381. package/dist/integrations/configure/index.js +26 -0
  382. package/dist/integrations/configure/index.js.map +1 -0
  383. package/dist/integrations/configure/json-tree.d.ts +16 -0
  384. package/dist/integrations/configure/json-tree.js +19 -0
  385. package/dist/integrations/configure/json-tree.js.map +1 -0
  386. package/dist/integrations/configure/kilo.d.ts +9 -0
  387. package/dist/integrations/configure/kilo.js +19 -0
  388. package/dist/integrations/configure/kilo.js.map +1 -0
  389. package/dist/integrations/configure/mimo.d.ts +9 -0
  390. package/dist/integrations/configure/mimo.js +19 -0
  391. package/dist/integrations/configure/mimo.js.map +1 -0
  392. package/dist/integrations/configure/muse.d.ts +9 -0
  393. package/dist/integrations/configure/muse.js +13 -0
  394. package/dist/integrations/configure/muse.js.map +1 -0
  395. package/dist/integrations/configure/openclaude.d.ts +13 -0
  396. package/dist/integrations/configure/openclaude.js +56 -0
  397. package/dist/integrations/configure/openclaude.js.map +1 -0
  398. package/dist/integrations/configure/openclaw.d.ts +24 -0
  399. package/dist/integrations/configure/openclaw.js +99 -0
  400. package/dist/integrations/configure/openclaw.js.map +1 -0
  401. package/dist/integrations/configure/opencode-style.d.ts +25 -0
  402. package/dist/integrations/configure/opencode-style.js +43 -0
  403. package/dist/integrations/configure/opencode-style.js.map +1 -0
  404. package/dist/integrations/configure/opencode.d.ts +9 -0
  405. package/dist/integrations/configure/opencode.js +19 -0
  406. package/dist/integrations/configure/opencode.js.map +1 -0
  407. package/dist/integrations/configure/openhands.d.ts +8 -0
  408. package/dist/integrations/configure/openhands.js +12 -0
  409. package/dist/integrations/configure/openhands.js.map +1 -0
  410. package/dist/integrations/configure/pi.d.ts +14 -0
  411. package/dist/integrations/configure/pi.js +49 -0
  412. package/dist/integrations/configure/pi.js.map +1 -0
  413. package/dist/integrations/configure/poolside.d.ts +8 -0
  414. package/dist/integrations/configure/poolside.js +12 -0
  415. package/dist/integrations/configure/poolside.js.map +1 -0
  416. package/dist/integrations/configure/registry.d.ts +41 -0
  417. package/dist/integrations/configure/registry.js +50 -0
  418. package/dist/integrations/configure/registry.js.map +1 -0
  419. package/dist/integrations/configure/zcode.d.ts +59 -0
  420. package/dist/integrations/configure/zcode.js +260 -0
  421. package/dist/integrations/configure/zcode.js.map +1 -0
  422. package/dist/integrations/configure/zed.d.ts +16 -0
  423. package/dist/integrations/configure/zed.js +61 -0
  424. package/dist/integrations/configure/zed.js.map +1 -0
  425. package/dist/integrations/detect.d.ts +29 -0
  426. package/dist/integrations/detect.js +43 -0
  427. package/dist/integrations/detect.js.map +1 -0
  428. package/dist/integrations/index.d.ts +9 -0
  429. package/dist/integrations/index.js +10 -0
  430. package/dist/integrations/index.js.map +1 -0
  431. package/dist/lock/control-token.d.ts +19 -0
  432. package/dist/lock/control-token.js +58 -0
  433. package/dist/lock/control-token.js.map +1 -0
  434. package/dist/lock/index.d.ts +10 -0
  435. package/dist/lock/index.js +11 -0
  436. package/dist/lock/index.js.map +1 -0
  437. package/dist/lock/instance-lock.d.ts +93 -0
  438. package/dist/lock/instance-lock.js +244 -0
  439. package/dist/lock/instance-lock.js.map +1 -0
  440. package/dist/lock/legacy-guard.d.ts +46 -0
  441. package/dist/lock/legacy-guard.js +87 -0
  442. package/dist/lock/legacy-guard.js.map +1 -0
  443. package/dist/lock/model-claim.d.ts +20 -0
  444. package/dist/lock/model-claim.js +84 -0
  445. package/dist/lock/model-claim.js.map +1 -0
  446. package/dist/lock/process-identity.d.ts +48 -0
  447. package/dist/lock/process-identity.js +180 -0
  448. package/dist/lock/process-identity.js.map +1 -0
  449. package/dist/lock/process-journal.d.ts +56 -0
  450. package/dist/lock/process-journal.js +113 -0
  451. package/dist/lock/process-journal.js.map +1 -0
  452. package/dist/models/capabilities.d.ts +73 -0
  453. package/dist/models/capabilities.js +123 -0
  454. package/dist/models/capabilities.js.map +1 -0
  455. package/dist/models/embed.d.ts +30 -0
  456. package/dist/models/embed.js +83 -0
  457. package/dist/models/embed.js.map +1 -0
  458. package/dist/models/gguf/classify.d.ts +29 -0
  459. package/dist/models/gguf/classify.js +89 -0
  460. package/dist/models/gguf/classify.js.map +1 -0
  461. package/dist/models/gguf/index.d.ts +5 -0
  462. package/dist/models/gguf/index.js +6 -0
  463. package/dist/models/gguf/index.js.map +1 -0
  464. package/dist/models/gguf/kv-cache.d.ts +27 -0
  465. package/dist/models/gguf/kv-cache.js +101 -0
  466. package/dist/models/gguf/kv-cache.js.map +1 -0
  467. package/dist/models/gguf/read-file.d.ts +11 -0
  468. package/dist/models/gguf/read-file.js +21 -0
  469. package/dist/models/gguf/read-file.js.map +1 -0
  470. package/dist/models/gguf/reader.d.ts +40 -0
  471. package/dist/models/gguf/reader.js +271 -0
  472. package/dist/models/gguf/reader.js.map +1 -0
  473. package/dist/models/gguf/support.d.ts +47 -0
  474. package/dist/models/gguf/support.js +48 -0
  475. package/dist/models/gguf/support.js.map +1 -0
  476. package/dist/models/hf.d.ts +35 -0
  477. package/dist/models/hf.js +140 -0
  478. package/dist/models/hf.js.map +1 -0
  479. package/dist/models/index.d.ts +14 -0
  480. package/dist/models/index.js +15 -0
  481. package/dist/models/index.js.map +1 -0
  482. package/dist/models/model-yml.d.ts +22 -0
  483. package/dist/models/model-yml.js +63 -0
  484. package/dist/models/model-yml.js.map +1 -0
  485. package/dist/models/registry.d.ts +51 -0
  486. package/dist/models/registry.js +102 -0
  487. package/dist/models/registry.js.map +1 -0
  488. package/dist/models/shards.d.ts +20 -0
  489. package/dist/models/shards.js +46 -0
  490. package/dist/models/shards.js.map +1 -0
  491. package/dist/remote-access/cloudflared-args.d.ts +41 -0
  492. package/dist/remote-access/cloudflared-args.js +59 -0
  493. package/dist/remote-access/cloudflared-args.js.map +1 -0
  494. package/dist/remote-access/cloudflared-output.d.ts +26 -0
  495. package/dist/remote-access/cloudflared-output.js +51 -0
  496. package/dist/remote-access/cloudflared-output.js.map +1 -0
  497. package/dist/remote-access/index.d.ts +16 -0
  498. package/dist/remote-access/index.js +17 -0
  499. package/dist/remote-access/index.js.map +1 -0
  500. package/dist/remote-access/journal.d.ts +63 -0
  501. package/dist/remote-access/journal.js +140 -0
  502. package/dist/remote-access/journal.js.map +1 -0
  503. package/dist/remote-access/lan-probe.d.ts +28 -0
  504. package/dist/remote-access/lan-probe.js +63 -0
  505. package/dist/remote-access/lan-probe.js.map +1 -0
  506. package/dist/remote-access/lan.d.ts +31 -0
  507. package/dist/remote-access/lan.js +90 -0
  508. package/dist/remote-access/lan.js.map +1 -0
  509. package/dist/remote-access/manager.d.ts +111 -0
  510. package/dist/remote-access/manager.js +316 -0
  511. package/dist/remote-access/manager.js.map +1 -0
  512. package/dist/remote-access/probe.d.ts +92 -0
  513. package/dist/remote-access/probe.js +186 -0
  514. package/dist/remote-access/probe.js.map +1 -0
  515. package/dist/remote-access/process.d.ts +66 -0
  516. package/dist/remote-access/process.js +160 -0
  517. package/dist/remote-access/process.js.map +1 -0
  518. package/dist/remote-access/spawner.d.ts +25 -0
  519. package/dist/remote-access/spawner.js +49 -0
  520. package/dist/remote-access/spawner.js.map +1 -0
  521. package/dist/remote-access/status.d.ts +39 -0
  522. package/dist/remote-access/status.js +49 -0
  523. package/dist/remote-access/status.js.map +1 -0
  524. package/dist/remote-access/wiring.d.ts +34 -0
  525. package/dist/remote-access/wiring.js +47 -0
  526. package/dist/remote-access/wiring.js.map +1 -0
  527. package/dist/router/index.d.ts +7 -0
  528. package/dist/router/index.js +8 -0
  529. package/dist/router/index.js.map +1 -0
  530. package/dist/router/resolve.d.ts +41 -0
  531. package/dist/router/resolve.js +53 -0
  532. package/dist/router/resolve.js.map +1 -0
  533. package/dist/runtime/foundation-models/errors.d.ts +28 -0
  534. package/dist/runtime/foundation-models/errors.js +48 -0
  535. package/dist/runtime/foundation-models/errors.js.map +1 -0
  536. package/dist/runtime/foundation-models/index.d.ts +8 -0
  537. package/dist/runtime/foundation-models/index.js +9 -0
  538. package/dist/runtime/foundation-models/index.js.map +1 -0
  539. package/dist/runtime/foundation-models/runtime.d.ts +73 -0
  540. package/dist/runtime/foundation-models/runtime.js +186 -0
  541. package/dist/runtime/foundation-models/runtime.js.map +1 -0
  542. package/dist/runtime/index.d.ts +5 -0
  543. package/dist/runtime/index.js +6 -0
  544. package/dist/runtime/index.js.map +1 -0
  545. package/dist/runtime/llamacpp/args.d.ts +90 -0
  546. package/dist/runtime/llamacpp/args.js +379 -0
  547. package/dist/runtime/llamacpp/args.js.map +1 -0
  548. package/dist/runtime/llamacpp/ctx-ladder.d.ts +16 -0
  549. package/dist/runtime/llamacpp/ctx-ladder.js +28 -0
  550. package/dist/runtime/llamacpp/ctx-ladder.js.map +1 -0
  551. package/dist/runtime/llamacpp/devices.d.ts +26 -0
  552. package/dist/runtime/llamacpp/devices.js +86 -0
  553. package/dist/runtime/llamacpp/devices.js.map +1 -0
  554. package/dist/runtime/llamacpp/errors.d.ts +34 -0
  555. package/dist/runtime/llamacpp/errors.js +137 -0
  556. package/dist/runtime/llamacpp/errors.js.map +1 -0
  557. package/dist/runtime/llamacpp/index.d.ts +14 -0
  558. package/dist/runtime/llamacpp/index.js +15 -0
  559. package/dist/runtime/llamacpp/index.js.map +1 -0
  560. package/dist/runtime/llamacpp/load-plan.d.ts +113 -0
  561. package/dist/runtime/llamacpp/load-plan.js +259 -0
  562. package/dist/runtime/llamacpp/load-plan.js.map +1 -0
  563. package/dist/runtime/llamacpp/policy.d.ts +70 -0
  564. package/dist/runtime/llamacpp/policy.js +191 -0
  565. package/dist/runtime/llamacpp/policy.js.map +1 -0
  566. package/dist/runtime/llamacpp/probe.d.ts +13 -0
  567. package/dist/runtime/llamacpp/probe.js +35 -0
  568. package/dist/runtime/llamacpp/probe.js.map +1 -0
  569. package/dist/runtime/llamacpp/runtime-device.d.ts +33 -0
  570. package/dist/runtime/llamacpp/runtime-device.js +169 -0
  571. package/dist/runtime/llamacpp/runtime-device.js.map +1 -0
  572. package/dist/runtime/llamacpp/runtime.d.ts +151 -0
  573. package/dist/runtime/llamacpp/runtime.js +535 -0
  574. package/dist/runtime/llamacpp/runtime.js.map +1 -0
  575. package/dist/runtime/mlx/args.d.ts +10 -0
  576. package/dist/runtime/mlx/args.js +44 -0
  577. package/dist/runtime/mlx/args.js.map +1 -0
  578. package/dist/runtime/mlx/config.d.ts +71 -0
  579. package/dist/runtime/mlx/config.js +91 -0
  580. package/dist/runtime/mlx/config.js.map +1 -0
  581. package/dist/runtime/mlx/errors.d.ts +21 -0
  582. package/dist/runtime/mlx/errors.js +73 -0
  583. package/dist/runtime/mlx/errors.js.map +1 -0
  584. package/dist/runtime/mlx/index.d.ts +12 -0
  585. package/dist/runtime/mlx/index.js +13 -0
  586. package/dist/runtime/mlx/index.js.map +1 -0
  587. package/dist/runtime/mlx/model-files.d.ts +29 -0
  588. package/dist/runtime/mlx/model-files.js +82 -0
  589. package/dist/runtime/mlx/model-files.js.map +1 -0
  590. package/dist/runtime/mlx/runtime.d.ts +77 -0
  591. package/dist/runtime/mlx/runtime.js +223 -0
  592. package/dist/runtime/mlx/runtime.js.map +1 -0
  593. package/dist/runtime/mlx/shard-repair.d.ts +25 -0
  594. package/dist/runtime/mlx/shard-repair.js +44 -0
  595. package/dist/runtime/mlx/shard-repair.js.map +1 -0
  596. package/dist/runtime/shared/env.d.ts +49 -0
  597. package/dist/runtime/shared/env.js +155 -0
  598. package/dist/runtime/shared/env.js.map +1 -0
  599. package/dist/runtime/shared/external-sessions.d.ts +67 -0
  600. package/dist/runtime/shared/external-sessions.js +155 -0
  601. package/dist/runtime/shared/external-sessions.js.map +1 -0
  602. package/dist/runtime/shared/index.d.ts +17 -0
  603. package/dist/runtime/shared/index.js +18 -0
  604. package/dist/runtime/shared/index.js.map +1 -0
  605. package/dist/runtime/shared/load-cancel.d.ts +45 -0
  606. package/dist/runtime/shared/load-cancel.js +95 -0
  607. package/dist/runtime/shared/load-cancel.js.map +1 -0
  608. package/dist/runtime/shared/local-runtime.d.ts +68 -0
  609. package/dist/runtime/shared/local-runtime.js +12 -0
  610. package/dist/runtime/shared/local-runtime.js.map +1 -0
  611. package/dist/runtime/shared/log-stream.d.ts +4 -0
  612. package/dist/runtime/shared/log-stream.js +28 -0
  613. package/dist/runtime/shared/log-stream.js.map +1 -0
  614. package/dist/runtime/shared/paths.d.ts +21 -0
  615. package/dist/runtime/shared/paths.js +63 -0
  616. package/dist/runtime/shared/paths.js.map +1 -0
  617. package/dist/runtime/shared/ports.d.ts +26 -0
  618. package/dist/runtime/shared/ports.js +45 -0
  619. package/dist/runtime/shared/ports.js.map +1 -0
  620. package/dist/runtime/shared/process.d.ts +95 -0
  621. package/dist/runtime/shared/process.js +224 -0
  622. package/dist/runtime/shared/process.js.map +1 -0
  623. package/dist/runtime/shared/sidecar.d.ts +86 -0
  624. package/dist/runtime/shared/sidecar.js +214 -0
  625. package/dist/runtime/shared/sidecar.js.map +1 -0
  626. package/dist/server/clients.d.ts +40 -0
  627. package/dist/server/clients.js +74 -0
  628. package/dist/server/clients.js.map +1 -0
  629. package/dist/server/control/index.d.ts +12 -0
  630. package/dist/server/control/index.js +12 -0
  631. package/dist/server/control/index.js.map +1 -0
  632. package/dist/server/control/router.d.ts +9 -0
  633. package/dist/server/control/router.js +61 -0
  634. package/dist/server/control/router.js.map +1 -0
  635. package/dist/server/control/routes/backends.d.ts +4 -0
  636. package/dist/server/control/routes/backends.js +47 -0
  637. package/dist/server/control/routes/backends.js.map +1 -0
  638. package/dist/server/control/routes/clients.d.ts +4 -0
  639. package/dist/server/control/routes/clients.js +30 -0
  640. package/dist/server/control/routes/clients.js.map +1 -0
  641. package/dist/server/control/routes/cloud.d.ts +4 -0
  642. package/dist/server/control/routes/cloud.js +32 -0
  643. package/dist/server/control/routes/cloud.js.map +1 -0
  644. package/dist/server/control/routes/diffusion-video.d.ts +10 -0
  645. package/dist/server/control/routes/diffusion-video.js +33 -0
  646. package/dist/server/control/routes/diffusion-video.js.map +1 -0
  647. package/dist/server/control/routes/diffusion.d.ts +15 -0
  648. package/dist/server/control/routes/diffusion.js +71 -0
  649. package/dist/server/control/routes/diffusion.js.map +1 -0
  650. package/dist/server/control/routes/disk.d.ts +4 -0
  651. package/dist/server/control/routes/disk.js +11 -0
  652. package/dist/server/control/routes/disk.js.map +1 -0
  653. package/dist/server/control/routes/external-sessions.d.ts +4 -0
  654. package/dist/server/control/routes/external-sessions.js +27 -0
  655. package/dist/server/control/routes/external-sessions.js.map +1 -0
  656. package/dist/server/control/routes/hardware.d.ts +4 -0
  657. package/dist/server/control/routes/hardware.js +14 -0
  658. package/dist/server/control/routes/hardware.js.map +1 -0
  659. package/dist/server/control/routes/lifecycle.d.ts +12 -0
  660. package/dist/server/control/routes/lifecycle.js +67 -0
  661. package/dist/server/control/routes/lifecycle.js.map +1 -0
  662. package/dist/server/control/routes/models.d.ts +7 -0
  663. package/dist/server/control/routes/models.js +59 -0
  664. package/dist/server/control/routes/models.js.map +1 -0
  665. package/dist/server/control/routes/public-server.d.ts +4 -0
  666. package/dist/server/control/routes/public-server.js +30 -0
  667. package/dist/server/control/routes/public-server.js.map +1 -0
  668. package/dist/server/control/routes/remote-access.d.ts +7 -0
  669. package/dist/server/control/routes/remote-access.js +16 -0
  670. package/dist/server/control/routes/remote-access.js.map +1 -0
  671. package/dist/server/control/routes/settings.d.ts +4 -0
  672. package/dist/server/control/routes/settings.js +58 -0
  673. package/dist/server/control/routes/settings.js.map +1 -0
  674. package/dist/server/control/routes/telemetry.d.ts +7 -0
  675. package/dist/server/control/routes/telemetry.js +46 -0
  676. package/dist/server/control/routes/telemetry.js.map +1 -0
  677. package/dist/server/control/server.d.ts +26 -0
  678. package/dist/server/control/server.js +111 -0
  679. package/dist/server/control/server.js.map +1 -0
  680. package/dist/server/control/types.d.ts +271 -0
  681. package/dist/server/control/types.js +6 -0
  682. package/dist/server/control/types.js.map +1 -0
  683. package/dist/server/http.d.ts +62 -0
  684. package/dist/server/http.js +220 -0
  685. package/dist/server/http.js.map +1 -0
  686. package/dist/server/index.d.ts +9 -0
  687. package/dist/server/index.js +10 -0
  688. package/dist/server/index.js.map +1 -0
  689. package/dist/server/public/ctx.d.ts +23 -0
  690. package/dist/server/public/ctx.js +42 -0
  691. package/dist/server/public/ctx.js.map +1 -0
  692. package/dist/server/public/dynamic-hosts.d.ts +40 -0
  693. package/dist/server/public/dynamic-hosts.js +117 -0
  694. package/dist/server/public/dynamic-hosts.js.map +1 -0
  695. package/dist/server/public/errors.d.ts +36 -0
  696. package/dist/server/public/errors.js +120 -0
  697. package/dist/server/public/errors.js.map +1 -0
  698. package/dist/server/public/exchange.d.ts +42 -0
  699. package/dist/server/public/exchange.js +85 -0
  700. package/dist/server/public/exchange.js.map +1 -0
  701. package/dist/server/public/forward.d.ts +53 -0
  702. package/dist/server/public/forward.js +448 -0
  703. package/dist/server/public/forward.js.map +1 -0
  704. package/dist/server/public/gates.d.ts +49 -0
  705. package/dist/server/public/gates.js +181 -0
  706. package/dist/server/public/gates.js.map +1 -0
  707. package/dist/server/public/images-params.d.ts +50 -0
  708. package/dist/server/public/images-params.js +162 -0
  709. package/dist/server/public/images-params.js.map +1 -0
  710. package/dist/server/public/images.d.ts +12 -0
  711. package/dist/server/public/images.js +96 -0
  712. package/dist/server/public/images.js.map +1 -0
  713. package/dist/server/public/index.d.ts +58 -0
  714. package/dist/server/public/index.js +253 -0
  715. package/dist/server/public/index.js.map +1 -0
  716. package/dist/server/public/listing.d.ts +27 -0
  717. package/dist/server/public/listing.js +116 -0
  718. package/dist/server/public/listing.js.map +1 -0
  719. package/dist/server/public/responses.d.ts +11 -0
  720. package/dist/server/public/responses.js +158 -0
  721. package/dist/server/public/responses.js.map +1 -0
  722. package/dist/server/public/sse.d.ts +33 -0
  723. package/dist/server/public/sse.js +48 -0
  724. package/dist/server/public/sse.js.map +1 -0
  725. package/dist/server/public/static-assets.generated.d.ts +3 -0
  726. package/dist/server/public/static-assets.generated.js +6 -0
  727. package/dist/server/public/static-assets.generated.js.map +1 -0
  728. package/dist/server/public/static.d.ts +13 -0
  729. package/dist/server/public/static.js +75 -0
  730. package/dist/server/public/static.js.map +1 -0
  731. package/dist/server/public/subscription.d.ts +14 -0
  732. package/dist/server/public/subscription.js +56 -0
  733. package/dist/server/public/subscription.js.map +1 -0
  734. package/dist/server/public/telemetry.d.ts +65 -0
  735. package/dist/server/public/telemetry.js +284 -0
  736. package/dist/server/public/telemetry.js.map +1 -0
  737. package/dist/server/public/trace.d.ts +66 -0
  738. package/dist/server/public/trace.js +223 -0
  739. package/dist/server/public/trace.js.map +1 -0
  740. package/dist/server/public/types.d.ts +131 -0
  741. package/dist/server/public/types.js +9 -0
  742. package/dist/server/public/types.js.map +1 -0
  743. package/dist/server/public/videos-params.d.ts +95 -0
  744. package/dist/server/public/videos-params.js +220 -0
  745. package/dist/server/public/videos-params.js.map +1 -0
  746. package/dist/server/public/videos.d.ts +16 -0
  747. package/dist/server/public/videos.js +188 -0
  748. package/dist/server/public/videos.js.map +1 -0
  749. package/dist/server/public/wire.d.ts +53 -0
  750. package/dist/server/public/wire.js +174 -0
  751. package/dist/server/public/wire.js.map +1 -0
  752. package/dist/server/shims/anthropic.d.ts +52 -0
  753. package/dist/server/shims/anthropic.js +519 -0
  754. package/dist/server/shims/anthropic.js.map +1 -0
  755. package/dist/server/shims/chat-to-responses.d.ts +113 -0
  756. package/dist/server/shims/chat-to-responses.js +557 -0
  757. package/dist/server/shims/chat-to-responses.js.map +1 -0
  758. package/dist/server/shims/index.d.ts +8 -0
  759. package/dist/server/shims/index.js +9 -0
  760. package/dist/server/shims/index.js.map +1 -0
  761. package/dist/server/shims/json.d.ts +10 -0
  762. package/dist/server/shims/json.js +78 -0
  763. package/dist/server/shims/json.js.map +1 -0
  764. package/dist/server/shims/responses.d.ts +79 -0
  765. package/dist/server/shims/responses.js +543 -0
  766. package/dist/server/shims/responses.js.map +1 -0
  767. package/dist/server/state-file.d.ts +44 -0
  768. package/dist/server/state-file.js +107 -0
  769. package/dist/server/state-file.js.map +1 -0
  770. package/dist/settings/import.d.ts +61 -0
  771. package/dist/settings/import.js +104 -0
  772. package/dist/settings/import.js.map +1 -0
  773. package/dist/settings/index.d.ts +11 -0
  774. package/dist/settings/index.js +12 -0
  775. package/dist/settings/index.js.map +1 -0
  776. package/dist/settings/schema/foundation-models.json +1 -0
  777. package/dist/settings/schema/llamacpp-upstream.json +489 -0
  778. package/dist/settings/schema/llamacpp.json +475 -0
  779. package/dist/settings/schema/mlx.json +136 -0
  780. package/dist/settings/schema.d.ts +35 -0
  781. package/dist/settings/schema.js +196 -0
  782. package/dist/settings/schema.js.map +1 -0
  783. package/dist/settings/store.d.ts +168 -0
  784. package/dist/settings/store.js +350 -0
  785. package/dist/settings/store.js.map +1 -0
  786. package/dist/speculative/chat-template-overrides.d.ts +35 -0
  787. package/dist/speculative/chat-template-overrides.js +142 -0
  788. package/dist/speculative/chat-template-overrides.js.map +1 -0
  789. package/dist/speculative/dflash-registry.d.ts +50 -0
  790. package/dist/speculative/dflash-registry.js +258 -0
  791. package/dist/speculative/dflash-registry.js.map +1 -0
  792. package/dist/speculative/gemma-mtp-registry.d.ts +48 -0
  793. package/dist/speculative/gemma-mtp-registry.js +79 -0
  794. package/dist/speculative/gemma-mtp-registry.js.map +1 -0
  795. package/dist/speculative/index.d.ts +18 -0
  796. package/dist/speculative/index.js +19 -0
  797. package/dist/speculative/index.js.map +1 -0
  798. package/dist/speculative/mlx-dflash-registry.d.ts +39 -0
  799. package/dist/speculative/mlx-dflash-registry.js +230 -0
  800. package/dist/speculative/mlx-dflash-registry.js.map +1 -0
  801. package/dist/speculative/mlx-eagle3-registry.d.ts +24 -0
  802. package/dist/speculative/mlx-eagle3-registry.js +81 -0
  803. package/dist/speculative/mlx-eagle3-registry.js.map +1 -0
  804. package/dist/speculative/mlx-mtp-registry.d.ts +31 -0
  805. package/dist/speculative/mlx-mtp-registry.js +139 -0
  806. package/dist/speculative/mlx-mtp-registry.js.map +1 -0
  807. package/dist/speculative/transcription-registry.d.ts +72 -0
  808. package/dist/speculative/transcription-registry.js +94 -0
  809. package/dist/speculative/transcription-registry.js.map +1 -0
  810. package/dist/telemetry/config.d.ts +38 -0
  811. package/dist/telemetry/config.js +44 -0
  812. package/dist/telemetry/config.js.map +1 -0
  813. package/dist/telemetry/consent.d.ts +21 -0
  814. package/dist/telemetry/consent.js +35 -0
  815. package/dist/telemetry/consent.js.map +1 -0
  816. package/dist/telemetry/core-reporter.d.ts +47 -0
  817. package/dist/telemetry/core-reporter.js +72 -0
  818. package/dist/telemetry/core-reporter.js.map +1 -0
  819. package/dist/telemetry/daemon.d.ts +40 -0
  820. package/dist/telemetry/daemon.js +67 -0
  821. package/dist/telemetry/daemon.js.map +1 -0
  822. package/dist/telemetry/dsn.d.ts +15 -0
  823. package/dist/telemetry/dsn.js +32 -0
  824. package/dist/telemetry/dsn.js.map +1 -0
  825. package/dist/telemetry/envelope.d.ts +97 -0
  826. package/dist/telemetry/envelope.js +95 -0
  827. package/dist/telemetry/envelope.js.map +1 -0
  828. package/dist/telemetry/index.d.ts +18 -0
  829. package/dist/telemetry/index.js +19 -0
  830. package/dist/telemetry/index.js.map +1 -0
  831. package/dist/telemetry/policy.d.ts +39 -0
  832. package/dist/telemetry/policy.js +142 -0
  833. package/dist/telemetry/policy.js.map +1 -0
  834. package/dist/telemetry/reporter.d.ts +80 -0
  835. package/dist/telemetry/reporter.js +0 -0
  836. package/dist/telemetry/reporter.js.map +1 -0
  837. package/dist/telemetry/reports.d.ts +68 -0
  838. package/dist/telemetry/reports.js +212 -0
  839. package/dist/telemetry/reports.js.map +1 -0
  840. package/dist/telemetry/scrub.d.ts +19 -0
  841. package/dist/telemetry/scrub.js +75 -0
  842. package/dist/telemetry/scrub.js.map +1 -0
  843. package/dist/telemetry/stack.d.ts +21 -0
  844. package/dist/telemetry/stack.js +68 -0
  845. package/dist/telemetry/stack.js.map +1 -0
  846. package/dist/telemetry/store.d.ts +17 -0
  847. package/dist/telemetry/store.js +51 -0
  848. package/dist/telemetry/store.js.map +1 -0
  849. package/dist/telemetry/subscribe.d.ts +13 -0
  850. package/dist/telemetry/subscribe.js +19 -0
  851. package/dist/telemetry/subscribe.js.map +1 -0
  852. package/dist/telemetry/types.d.ts +40 -0
  853. package/dist/telemetry/types.js +2 -0
  854. package/dist/telemetry/types.js.map +1 -0
  855. package/dist/util/index.d.ts +5 -0
  856. package/dist/util/index.js +6 -0
  857. package/dist/util/index.js.map +1 -0
  858. package/dist/util/rust-number.d.ts +27 -0
  859. package/dist/util/rust-number.js +101 -0
  860. package/dist/util/rust-number.js.map +1 -0
  861. package/dist/version.d.ts +2 -0
  862. package/dist/version.js +3 -0
  863. package/dist/version.js.map +1 -0
  864. package/package.json +86 -0
  865. package/src/settings/schema/foundation-models.json +1 -0
  866. package/src/settings/schema/llamacpp-upstream.json +489 -0
  867. package/src/settings/schema/llamacpp.json +475 -0
  868. package/src/settings/schema/mlx.json +136 -0
@@ -0,0 +1,291 @@
1
+ /**
2
+ * Pure argv and request builders for `sd-server`: no I/O and no process, so every flag decision is
3
+ * tested without a binary or a model file. Port of `args.rs` in `tauri-plugin-atomic-diffusion` (app
4
+ * commit `ec1fd3ea7`, and the host switch of `process.rs`), itself a port of Studio's `sd_cpp_args.py`.
5
+ *
6
+ * Every flag emitted here is listed in `test/fixtures/sdcpp/required-flags.txt`, which the live test
7
+ * holds against the pinned binary's `--help`.
8
+ */
9
+ import { defaultStrength, usesInitImage, usesMask, usesReferences, workflowOf } from './workflow.js';
10
+ /** Kill switch for the Metal text-encoder placement: `1`/`true`/`yes`/`on` keeps the encoder on Metal. */
11
+ export const METAL_TE_GPU_ENV = 'ATOMIC_DIFFUSION_METAL_TE_GPU';
12
+ /**
13
+ * Opt-in for `-M vid_gen` on a video load. `sd-server` infers its modes from the model, and the flag
14
+ * is documented for `sd-cli`; it is emitted only when this is `1`/`true`/`yes`/`on`, until the live
15
+ * test has shown whether the server wants it.
16
+ */
17
+ export const VID_GEN_MODE_FLAG_ENV = 'ATOMIC_DIFFUSION_VID_GEN_MODE_FLAG';
18
+ const truthy = (value) => ['1', 'true', 'yes', 'on'].includes((value ?? '').trim().toLowerCase());
19
+ function dedup(flags) {
20
+ return [...new Set(flags)];
21
+ }
22
+ /**
23
+ * The memory policy as sd.cpp offload flags. `group` streams the model (`--offload-to-cpu`) with
24
+ * flash attention; `model` also puts CLIP and the VAE on the CPU and tiles the VAE.
25
+ */
26
+ export function offloadFlags(policy) {
27
+ if (policy === 'group')
28
+ return ['--offload-to-cpu', '--diffusion-fa'];
29
+ if (policy === 'model')
30
+ return ['--offload-to-cpu', '--clip-on-cpu', '--vae-on-cpu', '--diffusion-fa', '--vae-tiling'];
31
+ return [];
32
+ }
33
+ /** Numerically exact speed-ups: flash attention, and direct convolution in the diffusion model. */
34
+ export function speedFlags() {
35
+ return ['--diffusion-fa', '--diffusion-conv-direct'];
36
+ }
37
+ /**
38
+ * Keep the text encoder on the CPU under Apple Metal. ggml's Metal backend aborts on `RMS_NORM` for
39
+ * non-contiguous rows with no per-op CPU fallback, so an LLM text encoder (Qwen3 for Z-Image and
40
+ * FLUX.2, T5 for FLUX.1) takes the whole server down on the first prompt. The encoder runs once per
41
+ * prompt and the denoiser every step, so pinning only the encoder keeps Metal where it matters.
42
+ */
43
+ export function metalTextEncoderFlags(isMacos, envOverride) {
44
+ if (!isMacos)
45
+ return [];
46
+ return truthy(envOverride) ? [] : ['--clip-on-cpu'];
47
+ }
48
+ /** `-M vid_gen` for a video model, only while the environment opts in. */
49
+ export function videoModeFlags(modality, envOverride) {
50
+ return modality === 'video' && truthy(envOverride) ? ['-M', 'vid_gen'] : [];
51
+ }
52
+ /** An Apple M5 CPU brand string: `Apple M5`, `Apple M5 Max`. */
53
+ export function isM5Brand(brand) {
54
+ return brand.split(/\s+/).some((part) => part.startsWith('M5'));
55
+ }
56
+ /**
57
+ * The environment `sd-server` gets for this host. ggml's Metal Tensor API is unstable on some M5 and
58
+ * macOS combinations: it can fail command buffers, or return NaN latents that come out as white
59
+ * images. On an M5 with the Metal backend it is switched off, which keeps Metal on its mature
60
+ * SIMD-group path; the argv is left alone, because older engine builds reject newer scaling flags.
61
+ */
62
+ export function hostEnv(platform, backend, cpuBrand) {
63
+ if (platform === 'darwin' && backend === 'metal' && isM5Brand(cpuBrand ?? ''))
64
+ return { GGML_METAL_TENSOR_DISABLE: '1' };
65
+ return {};
66
+ }
67
+ /**
68
+ * `flags` with every `--backend <spec>` pair removed. sd.cpp concatenates repeated `--backend`
69
+ * values instead of replacing them, and a per-module entry beats the bare default: appending
70
+ * `--backend cpu` to a spec that still says `diffusion=CUDA0` would leave the denoiser on CUDA.
71
+ */
72
+ export function withoutDeviceBackendFlags(flags) {
73
+ const out = [];
74
+ let skip = false;
75
+ for (const flag of flags) {
76
+ if (skip) {
77
+ skip = false;
78
+ continue;
79
+ }
80
+ if (flag === '--backend') {
81
+ skip = true;
82
+ continue;
83
+ }
84
+ out.push(flag);
85
+ }
86
+ return out;
87
+ }
88
+ /** The `extraArgs` of the one automatic recovery: everything on the CPU backend. */
89
+ export function cpuBackendExtraArgs(extraArgs) {
90
+ return [...withoutDeviceBackendFlags(extraArgs), '--backend', 'cpu'];
91
+ }
92
+ const GGML_UNSUPPORTED_OP_MARKERS = ['unsupported op', 'ggml_abort'];
93
+ /**
94
+ * True when the captured output carries a ggml unsupported-op abort. That signature is
95
+ * deterministic for the graph in question: a retry on the same backend fails identically, a CPU
96
+ * restart runs it. No other death may be retried automatically.
97
+ */
98
+ export function isGgmlUnsupportedOpAbort(text) {
99
+ const lower = text.toLowerCase();
100
+ return GGML_UNSUPPORTED_OP_MARKERS.every((marker) => lower.includes(marker));
101
+ }
102
+ /**
103
+ * The `sd-server` argv, without the binary. Model files first, then the listener, the scratch
104
+ * directories sd-server insists on iterating, threads, the hardware flags (de-duplicated, stable
105
+ * order), `-v` so the per-step sampling lines are printed, and the caller's `extraArgs` last.
106
+ */
107
+ export function buildServerArgs(spec, port, scratchDir, host) {
108
+ const { files } = spec;
109
+ const args = ['--diffusion-model', files.diffusionModel];
110
+ const optional = [
111
+ ['--vae', files.vae],
112
+ ['--audio-vae', files.audioVae],
113
+ ['--embeddings-connectors', files.embeddingsConnectors],
114
+ ['--clip_l', files.clipL],
115
+ ['--t5xxl', files.t5xxl],
116
+ ['--llm', files.llm],
117
+ ['--llm_vision', files.llmVision],
118
+ ['--qwen2vl', files.qwen2vl],
119
+ ];
120
+ for (const [flag, value] of optional)
121
+ if (value)
122
+ args.push(flag, value);
123
+ if (files.vaeFormat)
124
+ args.push('--vae-format', files.vaeFormat);
125
+ args.push('--listen-ip', '127.0.0.1', '--listen-port', String(port));
126
+ for (const flag of ['--lora-model-dir', '--hires-upscalers-dir', '--embd-dir'])
127
+ args.push(flag, scratchDir);
128
+ if (spec.threads !== undefined)
129
+ args.push('--threads', String(spec.threads));
130
+ args.push(...dedup([
131
+ ...offloadFlags(spec.offload),
132
+ ...speedFlags(),
133
+ ...metalTextEncoderFlags(host.platform === 'darwin', host.env[METAL_TE_GPU_ENV]),
134
+ ]));
135
+ args.push(...videoModeFlags(spec.modality, host.env[VID_GEN_MODE_FLAG_ENV]));
136
+ args.push('-v', ...spec.extraArgs);
137
+ return args;
138
+ }
139
+ /**
140
+ * Output area above which a request turns VAE tiling on. The VAE's compute buffer grows with the
141
+ * pixel count (FLUX.2: 6.7 GB to decode at 1024², 26.6 GB at 2048², where a 2x Upscale lands and
142
+ * where it failed on a 24 GB card). Tiled, the peak stays at the one-tile figure. Up to 1024²
143
+ * nothing changes.
144
+ */
145
+ export const VAE_TILING_AREA = 1024 * 1024;
146
+ /**
147
+ * Pixel-frames (width × height × frames) above which a video request turns VAE tiling on. A video
148
+ * VAE decodes the whole clip in one graph, so its buffer grows with the frame count as much as with
149
+ * the frame size: the Wan 2.2 VAE asked Metal for 27.6 GB at 1280×704 × 121 frames (≈250 bytes per
150
+ * pixel-frame, 2026-09-23) and failed on a machine with 14.9 GB free. Eight megapixel-frames is
151
+ * about 2 GB of that, the point past which a single-graph decode stops being safe anywhere.
152
+ */
153
+ export const VIDEO_VAE_TILING_PIXEL_FRAMES = VAE_TILING_AREA * 8;
154
+ /**
155
+ * The `POST /sdcpp/v1/img_gen` body. The whole batch goes in one request; guidance is split the way
156
+ * sd.cpp expects (CFG → `txt_cfg`, FLUX distilled → `distilled_guidance`). Only set keys are sent,
157
+ * so the server's own defaults apply to the rest. The workflow decides which images go in. sd.cpp
158
+ * resizes the init image to `width`×`height` itself, which is how Upscale works.
159
+ *
160
+ * sd.cpp reads integers with `is_number_integer()` and floats with `is_number()`, so `1` for a
161
+ * `cfgScale` of 1.0 is accepted (checked in its `common.cpp`).
162
+ */
163
+ export function buildImgGenRequest(request, defaults, seed, inputs) {
164
+ const guidance = { txt_cfg: request.cfgScale };
165
+ const distilled = request.guidance ?? defaults.guidance;
166
+ if (distilled !== undefined)
167
+ guidance['distilled_guidance'] = distilled;
168
+ const sampleParams = { sample_steps: request.steps };
169
+ const method = request.samplingMethod ?? defaults.samplingMethod;
170
+ if (method)
171
+ sampleParams['sample_method'] = method;
172
+ const shift = request.flowShift ?? defaults.flowShift;
173
+ if (shift !== undefined)
174
+ sampleParams['flow_shift'] = shift;
175
+ sampleParams['guidance'] = guidance;
176
+ const body = {
177
+ prompt: request.prompt,
178
+ negative_prompt: request.negativePrompt ?? '',
179
+ width: request.width,
180
+ height: request.height,
181
+ batch_count: Math.max(request.batchSize, 1),
182
+ output_format: 'png',
183
+ seed,
184
+ sample_params: sampleParams,
185
+ };
186
+ const workflow = workflowOf(request);
187
+ if (usesInitImage(workflow)) {
188
+ if (inputs.init !== undefined) {
189
+ body['init_image'] = inputs.init;
190
+ body['strength'] = request.strength ?? defaultStrength(workflow);
191
+ }
192
+ if (usesMask(workflow) && inputs.mask !== undefined)
193
+ body['mask_image'] = inputs.mask;
194
+ }
195
+ if (usesReferences(workflow) && inputs.refs.length > 0)
196
+ body['ref_images'] = inputs.refs;
197
+ if (request.width * request.height > VAE_TILING_AREA)
198
+ body['vae_tiling_params'] = { enabled: true };
199
+ return body;
200
+ }
201
+ /**
202
+ * The `POST /sdcpp/v1/vid_gen` body: one clip, the frame count and rate resolved against the family,
203
+ * `custom_sigmas` when the family ships a fixed schedule for exactly this many steps (LTX-2 distilled),
204
+ * VP8 in WebM (the one container the app plays), and the first and last frames when a later workflow
205
+ * resolves them. Only set keys are sent, like the image body.
206
+ */
207
+ export function buildVidGenRequest(request, defaults, seed, inputs) {
208
+ const guidance = { txt_cfg: request.cfgScale };
209
+ const distilled = request.guidance ?? defaults.guidance;
210
+ if (distilled !== undefined)
211
+ guidance['distilled_guidance'] = distilled;
212
+ const sampleParams = { sample_steps: request.steps };
213
+ const method = request.samplingMethod ?? defaults.samplingMethod;
214
+ if (method)
215
+ sampleParams['sample_method'] = method;
216
+ const shift = request.flowShift ?? defaults.flowShift;
217
+ if (shift !== undefined)
218
+ sampleParams['flow_shift'] = shift;
219
+ if (defaults.sigmas !== undefined && defaults.sigmas.length === request.steps)
220
+ sampleParams['custom_sigmas'] = [...defaults.sigmas];
221
+ sampleParams['guidance'] = guidance;
222
+ const video = defaults.video;
223
+ const body = {
224
+ prompt: request.prompt,
225
+ negative_prompt: request.negativePrompt ?? '',
226
+ width: request.width,
227
+ height: request.height,
228
+ video_frames: request.frames ?? video?.frames ?? 1,
229
+ fps: request.fps ?? video?.fps ?? 24,
230
+ output_format: 'webm',
231
+ seed,
232
+ sample_params: sampleParams,
233
+ };
234
+ if (inputs.init !== undefined)
235
+ body['init_image'] = inputs.init;
236
+ if (inputs.end !== undefined)
237
+ body['end_image'] = inputs.end;
238
+ const frames = body['video_frames'];
239
+ if (request.width * request.height * frames > VIDEO_VAE_TILING_PIXEL_FRAMES)
240
+ body['vae_tiling_params'] = { enabled: true };
241
+ return body;
242
+ }
243
+ function lastOptionValue(args, option) {
244
+ let value;
245
+ let i = 0;
246
+ while (i < args.length) {
247
+ const arg = args[i];
248
+ if (arg === option) {
249
+ value = args[i + 1] ?? value;
250
+ i += 2;
251
+ continue;
252
+ }
253
+ if (arg.startsWith(`${option}=`))
254
+ value = arg.slice(option.length + 1);
255
+ i += 1;
256
+ }
257
+ return value;
258
+ }
259
+ function compact(value, limit) {
260
+ const chars = [...value];
261
+ return chars.length <= limit ? value : `${chars.slice(0, Math.max(limit - 3, 0)).join('')}...`;
262
+ }
263
+ /** One line for the log: the model's basename and the numeric settings, never a path or a prompt. */
264
+ export function commandSummaryForLog(args) {
265
+ const fields = [];
266
+ const model = lastOptionValue(args, '--diffusion-model');
267
+ if (model !== undefined) {
268
+ const name = model.replaceAll('\\', '/').split('/').pop() ?? '';
269
+ fields.push(`model=${compact(name, 48)}`);
270
+ }
271
+ const width = lastOptionValue(args, '--width');
272
+ const height = lastOptionValue(args, '--height');
273
+ if (width !== undefined && height !== undefined)
274
+ fields.push(`size=${compact(width, 8)}x${compact(height, 8)}`);
275
+ const numeric = [
276
+ ['steps', '--steps'],
277
+ ['seed', '--seed'],
278
+ ['port', '--listen-port'],
279
+ ['threads', '--threads'],
280
+ ];
281
+ for (const [label, option] of numeric) {
282
+ const value = lastOptionValue(args, option);
283
+ if (value !== undefined)
284
+ fields.push(`${label}=${compact(value, 16)}`);
285
+ }
286
+ const backend = lastOptionValue(args, '--backend');
287
+ if (backend !== undefined)
288
+ fields.push(`backend=${compact(backend, 32)}`);
289
+ return fields.join(' ');
290
+ }
291
+ //# sourceMappingURL=args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/diffusion/args.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAEpG,0GAA0G;AAC1G,MAAM,CAAC,MAAM,gBAAgB,GAAG,+BAA+B,CAAA;AAE/D;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,oCAAoC,CAAA;AAEzE,MAAM,MAAM,GAAG,CAAC,KAAyB,EAAW,EAAE,CACpD,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;AAQzE,SAAS,KAAK,CAAC,KAAwB;IACrC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;AAC5B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,MAA8B;IACzD,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAA;IACrE,IAAI,MAAM,KAAK,OAAO;QACpB,OAAO,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAA;IAChG,OAAO,EAAE,CAAA;AACX,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,gBAAgB,EAAE,yBAAyB,CAAC,CAAA;AACtD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAgB,EAAE,WAA+B;IACrF,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAA;IACvB,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAA;AACrD,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,cAAc,CAAC,QAA2B,EAAE,WAA+B;IACzF,OAAO,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC7E,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;AACjE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CACrB,QAAyB,EACzB,OAAyB,EACzB,QAA4B;IAE5B,IAAI,QAAQ,KAAK,QAAQ,IAAI,OAAO,KAAK,OAAO,IAAI,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC3E,OAAO,EAAE,yBAAyB,EAAE,GAAG,EAAE,CAAA;IAC3C,OAAO,EAAE,CAAA;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAwB;IAChE,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,IAAI,IAAI,GAAG,KAAK,CAAA;IAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,GAAG,KAAK,CAAA;YACZ,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,IAAI,GAAG,IAAI,CAAA;YACX,SAAQ;QACV,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,mBAAmB,CAAC,SAA4B;IAC9D,OAAO,CAAC,GAAG,yBAAyB,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,CAAA;AACtE,CAAC;AAED,MAAM,2BAA2B,GAAG,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAA;AAEpE;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;IAChC,OAAO,2BAA2B,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;AAC9E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAgB,EAChB,IAAY,EACZ,UAAkB,EAClB,IAAc;IAEd,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;IACtB,MAAM,IAAI,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC,cAAc,CAAC,CAAA;IACxD,MAAM,QAAQ,GAAwC;QACpD,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC;QACpB,CAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC;QAC/B,CAAC,yBAAyB,EAAE,KAAK,CAAC,oBAAoB,CAAC;QACvD,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC;QACzB,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC;QACxB,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC;QACpB,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC;QACjC,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC;KAC7B,CAAA;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,QAAQ;QAAE,IAAI,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACvE,IAAI,KAAK,CAAC,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IAC/D,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IACpE,KAAK,MAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE,uBAAuB,EAAE,YAAY,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAC3G,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;IAC5E,IAAI,CAAC,IAAI,CACP,GAAG,KAAK,CAAC;QACP,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7B,GAAG,UAAU,EAAE;QACf,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;KACjF,CAAC,CACH,CAAA;IACD,IAAI,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;IAC5E,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;IAClC,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,CAAA;AAE1C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,eAAe,GAAG,CAAC,CAAA;AAEhE;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAA6B,EAC7B,QAAiC,EACjC,IAAY,EACZ,MAAsB;IAEtB,MAAM,QAAQ,GAA4B,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAA;IACvE,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAA;IACvD,IAAI,SAAS,KAAK,SAAS;QAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,SAAS,CAAA;IAEvE,MAAM,YAAY,GAA4B,EAAE,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,CAAA;IAC7E,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc,CAAA;IAChE,IAAI,MAAM;QAAE,YAAY,CAAC,eAAe,CAAC,GAAG,MAAM,CAAA;IAClD,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAA;IACrD,IAAI,KAAK,KAAK,SAAS;QAAE,YAAY,CAAC,YAAY,CAAC,GAAG,KAAK,CAAA;IAC3D,YAAY,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAA;IAEnC,MAAM,IAAI,GAA4B;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,eAAe,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE;QAC7C,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3C,aAAa,EAAE,KAAK;QACpB,IAAI;QACJ,aAAa,EAAE,YAAY;KAC5B,CAAA;IACD,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IACpC,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,IAAI,CAAA;YAChC,IAAI,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAA;QAClE,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,IAAI,CAAA;IACvF,CAAC;IACD,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,IAAI,CAAA;IACxF,IAAI,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,eAAe;QAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IACnG,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAA6B,EAC7B,QAAiC,EACjC,IAAY,EACZ,MAAsB;IAEtB,MAAM,QAAQ,GAA4B,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAA;IACvE,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAA;IACvD,IAAI,SAAS,KAAK,SAAS;QAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,SAAS,CAAA;IAEvE,MAAM,YAAY,GAA4B,EAAE,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,CAAA;IAC7E,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc,CAAA;IAChE,IAAI,MAAM;QAAE,YAAY,CAAC,eAAe,CAAC,GAAG,MAAM,CAAA;IAClD,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAA;IACrD,IAAI,KAAK,KAAK,SAAS;QAAE,YAAY,CAAC,YAAY,CAAC,GAAG,KAAK,CAAA;IAC3D,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,KAAK;QAC3E,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IACtD,YAAY,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAA;IAEnC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAA;IAC5B,MAAM,IAAI,GAA4B;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,eAAe,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE;QAC7C,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,MAAM,IAAI,CAAC;QAClD,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,KAAK,EAAE,GAAG,IAAI,EAAE;QACpC,aAAa,EAAE,MAAM;QACrB,IAAI;QACJ,aAAa,EAAE,YAAY;KAC5B,CAAA;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,IAAI,CAAA;IAC/D,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS;QAAE,IAAI,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,GAAG,CAAA;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAW,CAAA;IAC7C,IAAI,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,GAAG,6BAA6B;QACzE,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC/C,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,eAAe,CAAC,IAAuB,EAAE,MAAc;IAC9D,IAAI,KAAyB,CAAA;IAC7B,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAW,CAAA;QAC7B,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACnB,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAA;YAC5B,CAAC,IAAI,CAAC,CAAA;YACN,SAAQ;QACV,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC;YAAE,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACtE,CAAC,IAAI,CAAC,CAAA;IACR,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,OAAO,CAAC,KAAa,EAAE,KAAa;IAC3C,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAA;IACxB,OAAO,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAA;AAChG,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,oBAAoB,CAAC,IAAuB;IAC1D,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAA;IACxD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;QAC/D,MAAM,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;IAC3C,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAC9C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAChD,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;QAC7C,MAAM,CAAC,IAAI,CAAC,QAAQ,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;IAChE,MAAM,OAAO,GAA4B;QACvC,CAAC,OAAO,EAAE,SAAS,CAAC;QACpB,CAAC,MAAM,EAAE,QAAQ,CAAC;QAClB,CAAC,MAAM,EAAE,eAAe,CAAC;QACzB,CAAC,SAAS,EAAE,WAAW,CAAC;KACzB,CAAA;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC3C,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;IACxE,CAAC;IACD,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAClD,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;IACzE,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACzB,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Which installed engine build may serve a model family. `check_engine_compatibility` and
3
+ * `select_model_install` in `session.rs` of `tauri-plugin-atomic-diffusion` (app commit
4
+ * `ec1fd3ea7`); messages verbatim.
5
+ */
6
+ import type { DiffusionBackendInstallRecord, DiffusionEngineId } from '../contracts/index.js';
7
+ /** The first upstream build that runs Qwen Image 2.1 and Krea 2 Turbo. */
8
+ export declare const MIN_MODERN_FAMILY_BUILD = 883;
9
+ /**
10
+ * Qwen Image 2.1 and Krea 2 Turbo need build 883 or newer; a tag that does not parse fails closed.
11
+ * Every other family keeps whatever engine it has.
12
+ */
13
+ export declare function checkEngineCompatibility(family: string, tag: string): void;
14
+ /**
15
+ * The install a load uses. The newest install of `engine` picks the backend; among that backend's
16
+ * installs (newest first, as `listInstalledBackends` returns them) the first one compatible with
17
+ * `family` wins, so an older compatible tree is used rather than the newest incompatible one. The
18
+ * backend is never switched to find a compatible build.
19
+ */
20
+ export declare function selectModelInstall(installed: readonly DiffusionBackendInstallRecord[], engine: DiffusionEngineId, family: string): DiffusionBackendInstallRecord;
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Which installed engine build may serve a model family. `check_engine_compatibility` and
3
+ * `select_model_install` in `session.rs` of `tauri-plugin-atomic-diffusion` (app commit
4
+ * `ec1fd3ea7`); messages verbatim.
5
+ */
6
+ import { diffusionError } from './errors.js';
7
+ /** The first upstream build that runs Qwen Image 2.1 and Krea 2 Turbo. */
8
+ export const MIN_MODERN_FAMILY_BUILD = 883;
9
+ const MODERN_FAMILIES = new Set(['qwen-image-2.1', 'krea-2-turbo']);
10
+ /** `master-<build>-<hash>` → the build number; anything else → undefined. */
11
+ function buildOf(tag) {
12
+ if (!tag.startsWith('master-'))
13
+ return undefined;
14
+ const rest = tag.slice('master-'.length);
15
+ const dash = rest.indexOf('-');
16
+ if (dash < 0 || dash === rest.length - 1)
17
+ return undefined;
18
+ const build = rest.slice(0, dash);
19
+ return /^\d+$/.test(build) ? Number(build) : undefined;
20
+ }
21
+ /**
22
+ * Qwen Image 2.1 and Krea 2 Turbo need build 883 or newer; a tag that does not parse fails closed.
23
+ * Every other family keeps whatever engine it has.
24
+ */
25
+ export function checkEngineCompatibility(family, tag) {
26
+ if (!MODERN_FAMILIES.has(family))
27
+ return;
28
+ const build = buildOf(tag);
29
+ if (build !== undefined && build >= MIN_MODERN_FAMILY_BUILD)
30
+ return;
31
+ throw diffusionError('ENGINE_UPDATE_REQUIRED', `${family} requires an image engine update. Update the engine, then retry loading the model.`, `installed=${tag}; required=master-883-137f740 or newer`);
32
+ }
33
+ /**
34
+ * The install a load uses. The newest install of `engine` picks the backend; among that backend's
35
+ * installs (newest first, as `listInstalledBackends` returns them) the first one compatible with
36
+ * `family` wins, so an older compatible tree is used rather than the newest incompatible one. The
37
+ * backend is never switched to find a compatible build.
38
+ */
39
+ export function selectModelInstall(installed, engine, family) {
40
+ const selected = installed.find((r) => r.engine === engine);
41
+ if (!selected)
42
+ throw diffusionError('ENGINE_MISSING', 'Install the image engine first.');
43
+ const record = installed.find((candidate) => candidate.engine === engine &&
44
+ candidate.backendId === selected.backendId &&
45
+ isCompatible(family, candidate.tag)) ?? selected;
46
+ checkEngineCompatibility(family, record.tag);
47
+ return record;
48
+ }
49
+ function isCompatible(family, tag) {
50
+ try {
51
+ checkEngineCompatibility(family, tag);
52
+ return true;
53
+ }
54
+ catch {
55
+ return false;
56
+ }
57
+ }
58
+ //# sourceMappingURL=compat.js.map
@@ -0,0 +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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * "Is this path really inside that folder?" for everything the diffusion surface deletes or writes
3
+ * on a caller's word: engine trees, model files, gallery images. `is_within` and the
4
+ * `canonicalize_existing_prefix` callers of `install.rs` (app commit `767ff6350`).
5
+ *
6
+ * Both sides are resolved through symlinks as far as they exist first (on Fedora Silverblue `/home`
7
+ * is a link to `/var/home`), then compared component-wise, ignoring case on Windows.
8
+ */
9
+ /** Lexical containment of two absolute, already-resolved paths. A path is within itself. */
10
+ export declare function isWithin(path: string, root: string, platform?: NodeJS.Platform): boolean;
11
+ export type Containment = 'inside' | 'root' | 'outside';
12
+ /** Where `path` lies relative to `root`, once the existing part of both is resolved through symlinks. */
13
+ export declare function locate(path: string, root: string, platform?: NodeJS.Platform): Promise<Containment>;
14
+ /** Whether two spellings name the same directory or file. */
15
+ export declare function samePath(a: string, b: string, platform?: NodeJS.Platform): Promise<boolean>;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * "Is this path really inside that folder?" for everything the diffusion surface deletes or writes
3
+ * on a caller's word: engine trees, model files, gallery images. `is_within` and the
4
+ * `canonicalize_existing_prefix` callers of `install.rs` (app commit `767ff6350`).
5
+ *
6
+ * Both sides are resolved through symlinks as far as they exist first (on Fedora Silverblue `/home`
7
+ * is a link to `/var/home`), then compared component-wise, ignoring case on Windows.
8
+ */
9
+ import { isAbsolute, relative, resolve, sep } from 'node:path';
10
+ import { canonicalizeExistingPrefix } from '../downloads/index.js';
11
+ const fold = (path, platform) => platform === 'win32' ? path.toLowerCase() : path;
12
+ /** Lexical containment of two absolute, already-resolved paths. A path is within itself. */
13
+ export function isWithin(path, root, platform = process.platform) {
14
+ const rel = relative(fold(resolve(root), platform), fold(resolve(path), platform));
15
+ return rel === '' || (rel !== '..' && !rel.startsWith(`..${sep}`) && !isAbsolute(rel));
16
+ }
17
+ /** Where `path` lies relative to `root`, once the existing part of both is resolved through symlinks. */
18
+ export async function locate(path, root, platform = process.platform) {
19
+ const [resolvedPath, resolvedRoot] = await Promise.all([
20
+ canonicalizeExistingPrefix(path),
21
+ canonicalizeExistingPrefix(root),
22
+ ]);
23
+ if (fold(resolvedPath, platform) === fold(resolvedRoot, platform))
24
+ return 'root';
25
+ return isWithin(resolvedPath, resolvedRoot, platform) ? 'inside' : 'outside';
26
+ }
27
+ /** Whether two spellings name the same directory or file. */
28
+ export async function samePath(a, b, platform = process.platform) {
29
+ const [left, right] = await Promise.all([canonicalizeExistingPrefix(a), canonicalizeExistingPrefix(b)]);
30
+ return fold(left, platform) === fold(right, platform);
31
+ }
32
+ //# sourceMappingURL=containment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"containment.js","sourceRoot":"","sources":["../../src/diffusion/containment.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAA;AAElE,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,QAAyB,EAAU,EAAE,CAC/D,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AAElD,4FAA4F;AAC5F,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,IAAY,EAAE,WAA4B,OAAO,CAAC,QAAQ;IAC/F,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;IAClF,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;AACxF,CAAC;AAID,yGAAyG;AACzG,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,IAAY,EACZ,IAAY,EACZ,WAA4B,OAAO,CAAC,QAAQ;IAE5C,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACrD,0BAA0B,CAAC,IAAI,CAAC;QAChC,0BAA0B,CAAC,IAAI,CAAC;KACjC,CAAC,CAAA;IACF,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC;QAAE,OAAO,MAAM,CAAA;IAChF,OAAO,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;AAC9E,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,CAAS,EACT,CAAS,EACT,WAA4B,OAAO,CAAC,QAAQ;IAE5C,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACvG,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;AACvD,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Image-generation failures. Port of `error.rs` in `tauri-plugin-atomic-diffusion` (app commit
3
+ * `767ff6350`): the same codes and messages, carried by `AtomicCoreError` so the control server's
4
+ * envelope and the job records show one shape.
5
+ */
6
+ import { AtomicCoreError } from '../contracts/index.js';
7
+ import type { DiffusionErrorBody, DiffusionErrorCode } from '../contracts/index.js';
8
+ export declare function diffusionError(code: DiffusionErrorCode, message: string, details?: string): AtomicCoreError;
9
+ export declare function internalError(message: string, details?: string): AtomicCoreError;
10
+ export declare function notConfiguredError(): AtomicCoreError;
11
+ export declare function modelNotLoadedError(): AtomicCoreError;
12
+ export declare function cancelledError(): AtomicCoreError;
13
+ /** libuv reports a full disk as `ENOSPC` everywhere, Windows' two "disk full" codes included. */
14
+ export declare function isDiskFull(error: unknown): boolean;
15
+ /**
16
+ * An I/O failure on the closest code: a full disk is something the user can act on, everything else
17
+ * is internal, with `context` as the message.
18
+ */
19
+ export declare function ioError(context: string, error: unknown): AtomicCoreError;
20
+ export declare function isDiffusionErrorCode(code: unknown): code is DiffusionErrorCode;
21
+ /**
22
+ * Any failure as a job record or an event carries it. A code from outside this surface (an
23
+ * `IO_ERROR` from a shared helper, a plain `Error`) becomes `INTERNAL`, which is what the web app
24
+ * knows how to show; its original code is kept in the details.
25
+ */
26
+ export declare function errorBody(error: unknown): DiffusionErrorBody;
27
+ /** The thrown form of `errorBody`: what a caller awaiting the operation receives. */
28
+ export declare function toDiffusionError(error: unknown): AtomicCoreError;
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Image-generation failures. Port of `error.rs` in `tauri-plugin-atomic-diffusion` (app commit
3
+ * `767ff6350`): the same codes and messages, carried by `AtomicCoreError` so the control server's
4
+ * envelope and the job records show one shape.
5
+ */
6
+ import { AtomicCoreError, DIFFUSION_ERROR_CODES } from '../contracts/index.js';
7
+ export function diffusionError(code, message, details) {
8
+ return new AtomicCoreError(code, message, details);
9
+ }
10
+ export function internalError(message, details) {
11
+ return diffusionError('INTERNAL', message, details);
12
+ }
13
+ export function notConfiguredError() {
14
+ return diffusionError('NOT_CONFIGURED', 'Image generation has not been configured yet.');
15
+ }
16
+ export function modelNotLoadedError() {
17
+ return diffusionError('MODEL_NOT_LOADED', 'Load an image model first.');
18
+ }
19
+ export function cancelledError() {
20
+ return diffusionError('CANCELLED', 'Generation was cancelled.');
21
+ }
22
+ /** libuv reports a full disk as `ENOSPC` everywhere, Windows' two "disk full" codes included. */
23
+ export function isDiskFull(error) {
24
+ return error?.code === 'ENOSPC';
25
+ }
26
+ /**
27
+ * An I/O failure on the closest code: a full disk is something the user can act on, everything else
28
+ * is internal, with `context` as the message.
29
+ */
30
+ export function ioError(context, error) {
31
+ const reason = error instanceof Error ? error.message : String(error);
32
+ if (isDiskFull(error))
33
+ return diffusionError('DISK_FULL', 'The disk is full.', `${context}: ${reason}`);
34
+ return internalError(context, reason);
35
+ }
36
+ export function isDiffusionErrorCode(code) {
37
+ return typeof code === 'string' && DIFFUSION_ERROR_CODES.includes(code);
38
+ }
39
+ /**
40
+ * Any failure as a job record or an event carries it. A code from outside this surface (an
41
+ * `IO_ERROR` from a shared helper, a plain `Error`) becomes `INTERNAL`, which is what the web app
42
+ * knows how to show; its original code is kept in the details.
43
+ */
44
+ export function errorBody(error) {
45
+ if (error instanceof AtomicCoreError) {
46
+ if (isDiffusionErrorCode(error.code)) {
47
+ return error.details === undefined
48
+ ? { code: error.code, message: error.message }
49
+ : { code: error.code, message: error.message, details: error.details };
50
+ }
51
+ const details = error.details === undefined ? error.code : `${error.code}: ${error.details}`;
52
+ return { code: 'INTERNAL', message: error.message, details };
53
+ }
54
+ return { code: 'INTERNAL', message: error instanceof Error ? error.message : String(error) };
55
+ }
56
+ /** The thrown form of `errorBody`: what a caller awaiting the operation receives. */
57
+ export function toDiffusionError(error) {
58
+ if (error instanceof AtomicCoreError && isDiffusionErrorCode(error.code))
59
+ return error;
60
+ const body = errorBody(error);
61
+ return diffusionError(body.code, body.message, body.details);
62
+ }
63
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/diffusion/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * The gallery on disk: `<outputDir>/<jobId>-<index:02>.png` with the recipe inside the PNG, a small
3
+ * thumbnail beside it, and a `.flags.json` for pin and archive. Port of `gallery.rs` in
4
+ * `tauri-plugin-atomic-diffusion` (app commit `ec1fd3ea7`).
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.
8
+ */
9
+ import type { GalleryFlags, GalleryImageItem, GalleryListOptions, GalleryPage, ImageRecipe } from '../contracts/index.js';
10
+ export declare const FLAGS_FILE = ".flags.json";
11
+ export declare const THUMB_EDGE = 256;
12
+ /** A listing checks for blank frames only in files this small; real outputs are far larger. */
13
+ export declare const BLANK_SCAN_LIMIT: number;
14
+ /**
15
+ * sd.cpp can finish a job after a numerical overflow and return a frame whose every pixel is pure
16
+ * white or pure black: not a generated image. Bytes that are not a readable PNG are
17
+ * `INVALID_OUTPUT`; a well-formed PNG of a kind this module does not decode is not called blank.
18
+ */
19
+ export declare function isBlankOutput(png: Buffer): Promise<boolean>;
20
+ export interface FlagEntry {
21
+ pinned: boolean;
22
+ archived: boolean;
23
+ }
24
+ export type FlagMap = Map<string, FlagEntry>;
25
+ /** `^[a-f0-9]{32}-\d{2}$` */
26
+ export declare function isValidId(id: string): boolean;
27
+ export declare function makeId(jobId: string, index: number): string;
28
+ export declare function pngPath(dir: string, id: string): string;
29
+ export declare function thumbPath(dir: string, id: string): string;
30
+ export declare function readFlags(dir: string): Promise<FlagMap>;
31
+ /** What a failed write is called; the video gallery names its own folder. */
32
+ export interface WriteMessages {
33
+ write: string;
34
+ finish: string;
35
+ }
36
+ /** Write a file through a hidden temporary sibling, so a reader never sees half of it. */
37
+ export declare function writeAtomic(target: string, bytes: Buffer | string, messages?: WriteMessages): Promise<void>;
38
+ export declare function writeFlags(dir: string, flags: FlagMap): Promise<void>;
39
+ /** A 256 px PNG beside the image. Fails for a PNG flavour the decoder does not read; the caller goes without. */
40
+ export declare function writeThumbnail(png: Buffer, path: string): Promise<void>;
41
+ export interface GalleryLogger {
42
+ (level: 'warn', msg: string): void;
43
+ }
44
+ /**
45
+ * The gallery's operations. The flags file is read and rewritten whole, so everything that touches
46
+ * it goes through one lock; the images themselves have unique names and need none.
47
+ */
48
+ export declare class Gallery {
49
+ private readonly log;
50
+ private readonly flagsLock;
51
+ /** The last verdict per small file, so a listing decodes each thumbnail once rather than every time. */
52
+ private readonly blankFiles;
53
+ private readonly isBlank;
54
+ constructor(log?: GalleryLogger);
55
+ /**
56
+ * A blank frame an older engine build saved is hidden from the listing and from lookups: judged on
57
+ * the thumbnail (the PNG when there is none) when that file is small enough to be one. A file
58
+ * that cannot be read or decoded is not blank.
59
+ */
60
+ private isBlankItem;
61
+ /**
62
+ * Splice the recipe in, write `<id>.png`, write the thumbnail, and return the item with the final
63
+ * bytes (the OpenAI facade answers with them).
64
+ */
65
+ save(dir: string, recipe: ImageRecipe, png: Buffer): Promise<{
66
+ item: GalleryImageItem;
67
+ bytes: Buffer;
68
+ }>;
69
+ get(dir: string, id: string): Promise<GalleryImageItem | null>;
70
+ list(dir: string, options: GalleryListOptions): Promise<GalleryPage>;
71
+ /** Remove each PNG, its thumbnail and its flags entry. Foreign PNGs are left alone. */
72
+ delete(dir: string, ids: readonly string[]): Promise<void>;
73
+ setFlags(dir: string, id: string, update: GalleryFlags): Promise<GalleryImageItem>;
74
+ /** Byte-for-byte copy, keeping the embedded recipe. */
75
+ export(dir: string, id: string, target: string): Promise<void>;
76
+ }