@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,74 @@
1
+ /**
2
+ * What differs between an image job and a video job, behind one interface, so `jobs.ts` runs both
3
+ * with a single poll loop, cancel ladder, crash handling and CPU fallback. A kind owns everything
4
+ * that names its request, its record, its engine route and its files; the runner owns the rest.
5
+ */
6
+ import type { DiffusionErrorBody, DiffusionModality, ImageJobProgress, ImageJobState } from '../contracts/index.js';
7
+ import type { JobDeps } from './jobs.js';
8
+ import type { DiffusionEmitter } from './session.js';
9
+ import type { JobKindId } from './state.js';
10
+ import type { ResolvedInputs, ServerCapabilities, ServerSpec } from './types.js';
11
+ import type { ValidateDeps } from './validate.js';
12
+ /** The fields the runner reads and writes on any job record, whatever its kind. */
13
+ export interface JobCommon<Item, Progress> {
14
+ id: string;
15
+ state: ImageJobState;
16
+ modelId: string;
17
+ createdAtMs: number;
18
+ startedAtMs?: number;
19
+ finishedAtMs?: number;
20
+ progress: Progress | null;
21
+ outputs: Item[];
22
+ error?: DiffusionErrorBody;
23
+ }
24
+ /** What `save` gets besides the decoded result. */
25
+ export interface SaveContext<Req> {
26
+ id: string;
27
+ request: Req;
28
+ spec: ServerSpec;
29
+ /** The seed the job ran with (the batch seed for images). */
30
+ seed: number;
31
+ startedAt: number;
32
+ }
33
+ export type Emit = DiffusionEmitter;
34
+ export interface JobKind<Req, Job extends JobCommon<Item, Progress>, Item, Progress, Decoded> {
35
+ id: JobKindId;
36
+ /** The loaded model must be of this modality, or the job is refused before anything runs. */
37
+ modality: DiffusionModality;
38
+ /** `/sdcpp/v1/img_gen` or `/sdcpp/v1/vid_gen`. */
39
+ submitPath: string;
40
+ messages: {
41
+ /** `JOB_BUSY` while another job of any kind runs. */
42
+ busy: string;
43
+ /** `MODEL_INCOMPATIBLE` when the resident model is of the other modality. */
44
+ wrongModel: string;
45
+ /** `OUT_OF_MEMORY` when the engine failed the job for lack of memory. */
46
+ outOfMemory: string;
47
+ /** `INTERNAL` when the engine failed the job for any other reason. */
48
+ failed: string;
49
+ };
50
+ validate(request: Req, spec: ServerSpec, deps: ValidateDeps): Promise<void>;
51
+ /** The record as it is inserted: inline bytes blanked, nothing started. */
52
+ newJob(id: string, spec: ServerSpec, request: Req, now: number): Job;
53
+ resolveInputs(request: Req, deps: Pick<JobDeps, 'readSource'>): Promise<ResolvedInputs>;
54
+ buildBody(request: Req, spec: ServerSpec, seed: number, inputs: ResolvedInputs): Record<string, unknown>;
55
+ /** Steps and images the progress tracker counts. */
56
+ trackerShape(request: Req): {
57
+ steps: number;
58
+ batch: number;
59
+ };
60
+ /** The wire progress out of the tracker's snapshot. */
61
+ progress(snapshot: ImageJobProgress): Progress;
62
+ emitJob(emit: Emit, job: Job): void;
63
+ emitProgress(emit: Emit, jobId: string, progress: Progress): void;
64
+ /** Whether the engine promised to interrupt a running generation of this kind. */
65
+ cancelGenerating(capabilities: ServerCapabilities): boolean;
66
+ /** A refusal before submit, from what the engine advertised (a build without WebM, say). */
67
+ preflight?(capabilities: ServerCapabilities | undefined): void;
68
+ decode(job: Record<string, unknown>): Decoded;
69
+ save(deps: JobDeps, ctx: SaveContext<Req>, decoded: Decoded): Promise<{
70
+ items: Item[];
71
+ bytes: Buffer[];
72
+ }>;
73
+ }
74
+ export type AnyJobKind = JobKind<any, any, any, any, any>;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * What differs between an image job and a video job, behind one interface, so `jobs.ts` runs both
3
+ * with a single poll loop, cancel ladder, crash handling and CPU fallback. A kind owns everything
4
+ * that names its request, its record, its engine route and its files; the runner owns the rest.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=job-kind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job-kind.js","sourceRoot":"","sources":["../../src/diffusion/job-kind.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Jobs: validate, submit to `sd-server`, poll, save, and the cancel path. Shared by the control
3
+ * routes and the OpenAI facades, so every caller gets the same validation, events, gallery and idle
4
+ * timer. Port of `jobs.rs` in `tauri-plugin-atomic-diffusion` (app commit `ec1fd3ea7`), made
5
+ * generic over a `JobKind` when video arrived: the loop, the crash handling, the CPU fallback and
6
+ * the cancel ladder are one code path; what a kind sends, decodes and saves lives with the kind
7
+ * (`image-job.ts`, `video-job.ts`).
8
+ *
9
+ * One deliberate change: a respawn re-checks, once it holds the load lock, that nobody cancelled
10
+ * the job or unloaded the model while it waited. The plugin took the lock and spawned regardless.
11
+ */
12
+ import type { DiffusionCancelResult, DiffusionErrorBody, ImageGenerateRequest, ImageJob, VideoGenerateRequest, VideoJob } from '../contracts/index.js';
13
+ import type { Gallery } from './gallery.js';
14
+ import type { SdHttpClient } from './http.js';
15
+ import type { VideoGallery } from './video-gallery.js';
16
+ import type { JobCommon, JobKind } from './job-kind.js';
17
+ import type { AsyncMutex } from './mutex.js';
18
+ import type { SessionDeps } from './session.js';
19
+ export { decodeImages, resolveInputs, withoutSources } from './image-job.js';
20
+ export declare const IMG_GEN_PATH = "/sdcpp/v1/img_gen";
21
+ export declare const VID_GEN_PATH = "/sdcpp/v1/vid_gen";
22
+ export declare const JOBS_PATH = "/sdcpp/v1/jobs";
23
+ export interface JobTimings {
24
+ pollIntervalMs: number;
25
+ submitTimeoutMs: number;
26
+ statusTimeoutMs: number;
27
+ /** The native engine exists for slow CPU hosts; this only stops a wedged process from holding the slot forever. */
28
+ generationCeilingMs: number;
29
+ /** How long a native cancel gets to show in the job status before the server is stopped instead. */
30
+ cancelGraceMs: number;
31
+ /** How often a cancel looks at the job while it waits out the grace. */
32
+ cancelPollMs: number;
33
+ }
34
+ export declare const DEFAULT_JOB_TIMINGS: JobTimings;
35
+ export interface JobDeps extends SessionDeps {
36
+ http: SdHttpClient;
37
+ gallery: Gallery;
38
+ videoGallery: VideoGallery;
39
+ loadLock: AsyncMutex;
40
+ timings: JobTimings;
41
+ drawSeed: () => number;
42
+ readSource: (path: string) => Promise<Buffer>;
43
+ isFile: (path: string) => Promise<boolean>;
44
+ }
45
+ export interface JobOutcome<J = ImageJob> {
46
+ job: J;
47
+ /** The final bytes: every PNG (recipe included) in batch order, or the one video. */
48
+ images: Buffer[];
49
+ }
50
+ export type JobResult<J = ImageJob> = {
51
+ ok: true;
52
+ outcome: JobOutcome<J>;
53
+ } | {
54
+ ok: false;
55
+ error: DiffusionErrorBody;
56
+ };
57
+ export declare function drawSeed(): number;
58
+ /** Move a job to a terminal state exactly once. Whether this call made the transition. */
59
+ export declare function finishJob<Item>(deps: JobDeps, id: string, result: {
60
+ ok: true;
61
+ outputs: Item[];
62
+ } | {
63
+ ok: false;
64
+ error: DiffusionErrorBody;
65
+ }): boolean;
66
+ export interface StartedJob<J = ImageJob> {
67
+ id: string;
68
+ /** Settles when the job is over; never rejects, so a caller that only wanted the id owes nothing. */
69
+ done: Promise<JobResult<J>>;
70
+ }
71
+ /** Validate, register and start a job of `kind`. */
72
+ export declare function startJob<Req, Job extends JobCommon<Item, Progress>, Item, Progress, Decoded>(deps: JobDeps, kind: JobKind<Req, Job, Item, Progress, Decoded>, request: Req): Promise<StartedJob<Job>>;
73
+ /** Validate, register and start an image job. */
74
+ export declare const startImageJob: (deps: JobDeps, request: ImageGenerateRequest) => Promise<StartedJob>;
75
+ /** Run one job of `kind` to completion; the facades' path. */
76
+ export declare function runJob<Req, Job extends JobCommon<Item, Progress>, Item, Progress, Decoded>(deps: JobDeps, kind: JobKind<Req, Job, Item, Progress, Decoded>, request: Req): Promise<JobOutcome<Job>>;
77
+ /** Run one image job to completion; the OpenAI facade's path. */
78
+ export declare const runImageJob: (deps: JobDeps, request: ImageGenerateRequest) => Promise<JobOutcome>;
79
+ /** Validate, register and start a video job. */
80
+ export declare const startVideoJob: (deps: JobDeps, request: VideoGenerateRequest) => Promise<StartedJob<VideoJob>>;
81
+ /** Run one video job to completion; `images` holds the one clip. */
82
+ export declare const runVideoJob: (deps: JobDeps, request: VideoGenerateRequest) => Promise<JobOutcome<VideoJob>>;
83
+ /**
84
+ * Cancel a job. A queued job cancels natively; a generating one gets the engine's cancel and a grace
85
+ * period, twice when the engine promised `cancelGenerating`; after that the server is stopped. The
86
+ * spec stays, so the next job respawns it.
87
+ */
88
+ export declare function cancelJob(deps: JobDeps, id: string, graceMs?: number): Promise<DiffusionCancelResult>;
89
+ /** Read a source image from disk; the default `readSource`. */
90
+ export declare const readSourceFile: (path: string) => Promise<Buffer>;
@@ -0,0 +1,433 @@
1
+ /**
2
+ * Jobs: validate, submit to `sd-server`, poll, save, and the cancel path. Shared by the control
3
+ * routes and the OpenAI facades, so every caller gets the same validation, events, gallery and idle
4
+ * timer. Port of `jobs.rs` in `tauri-plugin-atomic-diffusion` (app commit `ec1fd3ea7`), made
5
+ * generic over a `JobKind` when video arrived: the loop, the crash handling, the CPU fallback and
6
+ * the cancel ladder are one code path; what a kind sends, decodes and saves lives with the kind
7
+ * (`image-job.ts`, `video-job.ts`).
8
+ *
9
+ * One deliberate change: a respawn re-checks, once it holds the load lock, that nobody cancelled
10
+ * the job or unloaded the model while it waited. The plugin took the lock and spawned regardless.
11
+ */
12
+ import { randomInt, randomUUID } from 'node:crypto';
13
+ import { readFile } from 'node:fs/promises';
14
+ import { cpuBackendExtraArgs, isGgmlUnsupportedOpAbort } from './args.js';
15
+ import { cancelledError, diffusionError, errorBody, internalError, modelNotLoadedError } from './errors.js';
16
+ import { IMAGE_JOB_KIND } from './image-job.js';
17
+ import { VIDEO_JOB_KIND } from './video-job.js';
18
+ import { classifyExit, diagnosticTail, GpuFaultWatch } from './progress.js';
19
+ import { describeExit, exitCodeOf } from './server-process.js';
20
+ import { loadFromSpec, stopKeepingSpec, takeDownSession } from './session.js';
21
+ import { isTerminalJobState } from './state.js';
22
+ import { ProgressTracker } from './tracker.js';
23
+ export { decodeImages, resolveInputs, withoutSources } from './image-job.js';
24
+ export const IMG_GEN_PATH = '/sdcpp/v1/img_gen';
25
+ export const VID_GEN_PATH = '/sdcpp/v1/vid_gen';
26
+ export const JOBS_PATH = '/sdcpp/v1/jobs';
27
+ export const DEFAULT_JOB_TIMINGS = {
28
+ pollIntervalMs: 400,
29
+ submitTimeoutMs: 60_000,
30
+ statusTimeoutMs: 10_000,
31
+ generationCeilingMs: 6 * 60 * 60 * 1000,
32
+ cancelGraceMs: 5_000,
33
+ cancelPollMs: 100,
34
+ };
35
+ /** The runner path a record belongs to. */
36
+ const kindOf = (id) => (id === 'video' ? VIDEO_JOB_KIND : IMAGE_JOB_KIND);
37
+ export function drawSeed() {
38
+ return randomInt(0, 0x1_0000_0000);
39
+ }
40
+ // ---------------------------------------------------------------------------
41
+ // Job bookkeeping
42
+ // ---------------------------------------------------------------------------
43
+ function emitJob(deps, id) {
44
+ const record = deps.state.record(id);
45
+ if (record)
46
+ kindOf(record.kind).emitJob(deps.emit, structuredClone(record.job));
47
+ }
48
+ function setJobState(deps, id, next) {
49
+ let changed = false;
50
+ deps.state.updateJob(id, (record) => {
51
+ if (record.job.state === next || isTerminalJobState(record.job.state))
52
+ return;
53
+ record.job.state = next;
54
+ if (next === 'generating' && record.job.startedAtMs === undefined)
55
+ record.job.startedAtMs = deps.now();
56
+ changed = true;
57
+ });
58
+ if (changed)
59
+ emitJob(deps, id);
60
+ }
61
+ function setProgress(deps, id, kind, tracker) {
62
+ const progress = kind.progress(tracker.snapshot());
63
+ deps.state.updateJob(id, (record) => (record.job.progress = progress));
64
+ kind.emitProgress(deps.emit, id, progress);
65
+ }
66
+ /** Move a job to a terminal state exactly once. Whether this call made the transition. */
67
+ export function finishJob(deps, id, result) {
68
+ let transitioned = false;
69
+ deps.state.updateJob(id, (record) => {
70
+ if (isTerminalJobState(record.job.state))
71
+ return;
72
+ transitioned = true;
73
+ record.job.finishedAtMs = deps.now();
74
+ if (result.ok) {
75
+ record.job.state = 'completed';
76
+ record.job.outputs = result.outputs;
77
+ delete record.job.error;
78
+ }
79
+ else {
80
+ record.job.state = result.error.code === 'CANCELLED' ? 'cancelled' : 'failed';
81
+ record.job.error = result.error;
82
+ }
83
+ });
84
+ if (transitioned) {
85
+ if (deps.state.activeJobId === id)
86
+ deps.state.activeJobId = undefined;
87
+ emitJob(deps, id);
88
+ }
89
+ return transitioned;
90
+ }
91
+ /** Validate, register and start a job of `kind`. */
92
+ export async function startJob(deps, kind, request) {
93
+ const { state } = deps;
94
+ const spec = state.spec;
95
+ if (!spec)
96
+ throw modelNotLoadedError();
97
+ if (spec.modality !== kind.modality)
98
+ throw diffusionError('MODEL_INCOMPATIBLE', kind.messages.wrongModel, spec.modelId);
99
+ await kind.validate(request, spec, { isFile: deps.isFile });
100
+ const id = randomUUID().replaceAll('-', '');
101
+ if (state.activeJobId !== undefined)
102
+ throw diffusionError('JOB_BUSY', kind.messages.busy, state.activeJobId);
103
+ state.activeJobId = id;
104
+ state.clearIdle();
105
+ const record = {
106
+ kind: kind.id,
107
+ job: kind.newJob(id, spec, request, deps.now()),
108
+ cancel: { requested: false },
109
+ };
110
+ state.insertJob(record);
111
+ emitJob(deps, id);
112
+ const done = execute(deps, kind, id, request, record.cancel).then((outcome) => {
113
+ finishJob(deps, id, { ok: true, outputs: outcome.job.outputs });
114
+ if (state.activeJobId === id)
115
+ state.activeJobId = undefined;
116
+ state.touchIdle();
117
+ const job = state.anyJob(id) ?? outcome.job;
118
+ return { ok: true, outcome: { job, images: outcome.images } };
119
+ }, (raw) => {
120
+ const error = errorBody(raw);
121
+ finishJob(deps, id, { ok: false, error });
122
+ if (state.activeJobId === id)
123
+ state.activeJobId = undefined;
124
+ state.touchIdle();
125
+ if (error.code !== 'CANCELLED') {
126
+ const payload = { ...error, jobId: id };
127
+ deps.emit('diffusion:error', payload);
128
+ }
129
+ // The record is authoritative: a cancel that raced the runner may already have marked it.
130
+ return { ok: false, error: state.anyJob(id)?.error ?? error };
131
+ });
132
+ return { id, done };
133
+ }
134
+ /** Validate, register and start an image job. */
135
+ export const startImageJob = (deps, request) => startJob(deps, IMAGE_JOB_KIND, request);
136
+ /** Run one job of `kind` to completion; the facades' path. */
137
+ export async function runJob(deps, kind, request) {
138
+ const { done } = await startJob(deps, kind, request);
139
+ const result = await done;
140
+ if (result.ok)
141
+ return result.outcome;
142
+ throw diffusionError(result.error.code, result.error.message, result.error.details);
143
+ }
144
+ /** Run one image job to completion; the OpenAI facade's path. */
145
+ export const runImageJob = (deps, request) => runJob(deps, IMAGE_JOB_KIND, request);
146
+ /** Validate, register and start a video job. */
147
+ export const startVideoJob = (deps, request) => startJob(deps, VIDEO_JOB_KIND, request);
148
+ /** Run one video job to completion; `images` holds the one clip. */
149
+ export const runVideoJob = (deps, request) => runJob(deps, VIDEO_JOB_KIND, request);
150
+ /**
151
+ * Replace the resident server with one for `next(spec)`, under the load lock. Once the lock is held
152
+ * the job may already be cancelled, the model unloaded, or the spec replaced by a load or an engine
153
+ * update: the spec is read only then, and without one nothing is spawned.
154
+ */
155
+ async function replaceSession(deps, next, reason, cancel) {
156
+ await deps.loadLock.run(async () => {
157
+ if (cancel.requested)
158
+ throw cancelledError();
159
+ if (deps.state.closing)
160
+ throw diffusionError('ENGINE_CRASHED', 'sd-server was stopped.');
161
+ const current = deps.state.spec;
162
+ if (!current)
163
+ throw modelNotLoadedError();
164
+ await takeDownSession(deps);
165
+ await loadFromSpec(deps, next(current), reason);
166
+ });
167
+ }
168
+ /** The resident session, respawned from the spec when a cancel or a crash took the server down. */
169
+ async function ensureSession(deps, cancel) {
170
+ const { state } = deps;
171
+ const alive = state.session;
172
+ if (alive && alive.server.exitStatus() === undefined)
173
+ return { baseUrl: alive.baseUrl, spec: alive.spec };
174
+ if (cancel.requested)
175
+ throw cancelledError();
176
+ await replaceSession(deps, (current) => current, 'respawn', cancel);
177
+ const session = state.session;
178
+ if (!session)
179
+ throw diffusionError('ENGINE_CRASHED', 'sd-server went away right after starting.');
180
+ return { baseUrl: session.baseUrl, spec: session.spec };
181
+ }
182
+ function liveness(state) {
183
+ const session = state.session;
184
+ if (!session)
185
+ return { kind: 'gone' };
186
+ const exit = session.server.exitStatus();
187
+ if (!exit)
188
+ return { kind: 'alive' };
189
+ return { kind: 'exited', exit, tail: session.server.tail() };
190
+ }
191
+ /** A request's own seed when it has one, else a drawn one; the record and the recipe carry it. */
192
+ function seedOf(request, deps) {
193
+ const seed = request.seed;
194
+ return seed !== undefined && seed >= 0 ? seed : deps.drawSeed();
195
+ }
196
+ async function execute(deps, kind, id, request, cancel) {
197
+ const seed = seedOf(request, deps);
198
+ const inputs = await kind.resolveInputs(request, deps);
199
+ const started = deps.now();
200
+ for (let attempts = 1;; attempts++) {
201
+ const view = await ensureSession(deps, cancel);
202
+ kind.preflight?.(deps.state.session?.server.capabilities);
203
+ const body = kind.buildBody(request, view.spec, seed, inputs);
204
+ const attempt = await runAttempt(deps, kind, id, request, view, body, seed, cancel, started);
205
+ if (attempt.kind === 'done')
206
+ return attempt.outcome;
207
+ if (attempts > 1)
208
+ throw diffusionError('ENGINE_CRASHED', 'sd-server crashed again on the CPU backend.');
209
+ deps.log('warn', 'ggml abort on the device backend; restarting sd-server on the CPU backend');
210
+ const spec = {
211
+ ...view.spec,
212
+ extraArgs: cpuBackendExtraArgs(view.spec.extraArgs),
213
+ cpuFallback: true,
214
+ };
215
+ await replaceSession(deps, () => spec, 'cpu-fallback', cancel);
216
+ }
217
+ }
218
+ async function runAttempt(deps, kind, id, request, view, body, seed, cancel, started) {
219
+ if (cancel.requested)
220
+ throw cancelledError();
221
+ const lines = [];
222
+ deps.state.session?.server.setLineListener((line) => lines.push(line));
223
+ try {
224
+ return await pollJob(deps, kind, id, request, view, body, seed, cancel, started, lines);
225
+ }
226
+ finally {
227
+ deps.state.session?.server.setLineListener(undefined);
228
+ }
229
+ }
230
+ function serverFailure(error) {
231
+ return error instanceof Error ? error.message : String(error);
232
+ }
233
+ async function afterTransportError(deps, cancel, what, error) {
234
+ if (cancel.requested)
235
+ throw cancelledError();
236
+ const live = liveness(deps.state);
237
+ if (live.kind === 'exited') {
238
+ const text = diagnosticTail(live.tail);
239
+ throw diffusionError(classifyExit(text, exitCodeOf(live.exit)), `sd-server died during ${what}.`, text);
240
+ }
241
+ if (live.kind === 'gone')
242
+ throw diffusionError('ENGINE_CRASHED', 'sd-server was stopped.');
243
+ throw internalError(`The image server did not accept the ${what}.`, serverFailure(error));
244
+ }
245
+ const clip = (text, limit) => [...text].slice(0, limit).join('');
246
+ async function pollJob(deps, kind, id, request, view, body, seed, cancel, started, lines) {
247
+ const { http, state, timings } = deps;
248
+ const submitted = await http
249
+ .post(`${view.baseUrl}${kind.submitPath}`, body, timings.submitTimeoutMs)
250
+ .catch((error) => afterTransportError(deps, cancel, 'submit', error));
251
+ if (submitted.status === 429)
252
+ throw diffusionError('QUEUE_FULL', "The image server's queue is full. Try again in a moment.");
253
+ if (submitted.status === 400)
254
+ throw diffusionError('INVALID_REQUEST', 'The image server rejected the request.', clip(submitted.text, 500));
255
+ if (submitted.status !== 200 && submitted.status !== 202)
256
+ throw internalError(`The image server answered ${submitted.status} on submit.`, clip(submitted.text, 500));
257
+ let accepted;
258
+ try {
259
+ accepted = JSON.parse(submitted.text);
260
+ }
261
+ catch (error) {
262
+ throw internalError('sd-server returned a non-JSON submit response.', serverFailure(error));
263
+ }
264
+ const serverJobId = accepted?.id;
265
+ if (typeof serverJobId !== 'string')
266
+ throw internalError('sd-server returned no job id.');
267
+ state.updateJob(id, (record) => (record.serverJobId = serverJobId));
268
+ const shape = kind.trackerShape(request);
269
+ const tracker = new ProgressTracker(shape.steps, shape.batch, deps.now);
270
+ const jobUrl = `${view.baseUrl}${JOBS_PATH}/${serverJobId}`;
271
+ const deadline = started + timings.generationCeilingMs;
272
+ const gpu = new GpuFaultWatch();
273
+ const drain = () => {
274
+ for (const line of lines.splice(0)) {
275
+ tracker.onLine(line);
276
+ gpu.onLine(line);
277
+ }
278
+ };
279
+ // Metal stays in its error state after an address fault, so every retry on this process would
280
+ // fail at once: retire it, keep the spec, and the next job respawns a clean server.
281
+ const retireAfterGpuFault = async () => {
282
+ drain();
283
+ if (!gpu.tripped)
284
+ return;
285
+ const error = diffusionError('ENGINE_CRASHED', 'The GPU stopped this render. The image engine was restarted; try again at a smaller resolution.', diagnosticTail(tracker.logLines(), 20, 1500));
286
+ await stopKeepingSpec(deps, 'gpu-fault', errorBody(error));
287
+ throw error;
288
+ };
289
+ for (;;) {
290
+ drain();
291
+ if (tracker.takeDirty())
292
+ setProgress(deps, id, kind, tracker);
293
+ const live = liveness(state);
294
+ if (live.kind === 'gone') {
295
+ if (cancel.requested)
296
+ throw cancelledError();
297
+ throw diffusionError('ENGINE_CRASHED', 'sd-server was stopped during generation.');
298
+ }
299
+ if (live.kind === 'exited') {
300
+ if (cancel.requested)
301
+ throw cancelledError();
302
+ const text = diagnosticTail(live.tail);
303
+ if (isGgmlUnsupportedOpAbort(text) && !view.spec.cpuFallback)
304
+ return { kind: 'retry-on-cpu' };
305
+ const code = classifyExit(text, exitCodeOf(live.exit));
306
+ const error = diffusionError(code, code === 'OUT_OF_MEMORY'
307
+ ? 'sd-server ran out of memory while generating.'
308
+ : `sd-server exited during generation (${describeExit(live.exit)}).`, text);
309
+ await stopKeepingSpec(deps, 'crashed', errorBody(error));
310
+ throw error;
311
+ }
312
+ if (deps.now() > deadline) {
313
+ await http.post(`${jobUrl}/cancel`, undefined, 5_000).catch(() => undefined);
314
+ const error = internalError(`Generation exceeded ${Math.round(timings.generationCeilingMs / 3_600_000)} hours and was stopped.`);
315
+ await stopKeepingSpec(deps, 'timeout', errorBody(error));
316
+ throw error;
317
+ }
318
+ const polled = await http.get(jobUrl, timings.statusTimeoutMs).catch((error) => {
319
+ if (cancel.requested)
320
+ throw cancelledError();
321
+ deps.log('debug', `job poll failed: ${serverFailure(error)}`);
322
+ return undefined;
323
+ });
324
+ if (!polled) {
325
+ await deps.sleep(timings.pollIntervalMs);
326
+ continue;
327
+ }
328
+ if (polled.status === 404 || polled.status === 410)
329
+ throw diffusionError('JOB_NOT_FOUND', 'The image server forgot the job.');
330
+ let job;
331
+ if (polled.status === 200) {
332
+ try {
333
+ const parsed = JSON.parse(polled.text);
334
+ job = parsed !== null && typeof parsed === 'object' ? parsed : undefined;
335
+ }
336
+ catch {
337
+ job = undefined;
338
+ }
339
+ }
340
+ if (!job) {
341
+ await deps.sleep(timings.pollIntervalMs);
342
+ continue;
343
+ }
344
+ switch (job['status']) {
345
+ case 'queued':
346
+ tracker.setPhase('queued');
347
+ break;
348
+ case 'generating':
349
+ setJobState(deps, id, 'generating');
350
+ if (tracker.phase === 'queued')
351
+ tracker.setPhase('encoding');
352
+ break;
353
+ case 'completed': {
354
+ setJobState(deps, id, 'generating');
355
+ tracker.setPhase('saving');
356
+ setProgress(deps, id, kind, tracker);
357
+ await retireAfterGpuFault();
358
+ const decoded = kind.decode(job);
359
+ const { items, bytes } = await kind.save(deps, { id, request, spec: view.spec, seed, startedAt: started }, decoded);
360
+ const record = state.anyJob(id);
361
+ if (!record)
362
+ throw internalError('job record vanished');
363
+ return { kind: 'done', outcome: { job: { ...record, outputs: items }, images: bytes } };
364
+ }
365
+ case 'failed': {
366
+ await retireAfterGpuFault();
367
+ const failure = (job['error'] ?? {});
368
+ const code = typeof failure['code'] === 'string' ? failure['code'] : 'error';
369
+ const message = typeof failure['message'] === 'string' ? failure['message'] : '';
370
+ // The job only ever says `generate_image returned no results`; why is in what the server printed.
371
+ drain();
372
+ const said = diagnosticTail(tracker.logLines(), 12, 1200);
373
+ const outOfMemory = classifyExit(`${message}\n${said}`, undefined) === 'OUT_OF_MEMORY';
374
+ deps.log('warn', `sd-server failed the job (${code}: ${message}):\n${said}`);
375
+ throw diffusionError(outOfMemory ? 'OUT_OF_MEMORY' : 'INTERNAL', outOfMemory ? kind.messages.outOfMemory : kind.messages.failed, `${code}: ${message}\n${said}`);
376
+ }
377
+ case 'cancelled':
378
+ throw cancelledError();
379
+ default:
380
+ break;
381
+ }
382
+ if (tracker.takeDirty())
383
+ setProgress(deps, id, kind, tracker);
384
+ await deps.sleep(timings.pollIntervalMs);
385
+ }
386
+ }
387
+ // ---------------------------------------------------------------------------
388
+ // Cancel
389
+ // ---------------------------------------------------------------------------
390
+ async function waitTerminal(deps, id, graceMs) {
391
+ const deadline = deps.now() + graceMs;
392
+ for (;;) {
393
+ const state = deps.state.anyJob(id)?.state;
394
+ if (state === undefined)
395
+ return undefined;
396
+ if (isTerminalJobState(state) || deps.now() >= deadline)
397
+ return state;
398
+ await deps.sleep(deps.timings.cancelPollMs);
399
+ }
400
+ }
401
+ /**
402
+ * Cancel a job. A queued job cancels natively; a generating one gets the engine's cancel and a grace
403
+ * period, twice when the engine promised `cancelGenerating`; after that the server is stopped. The
404
+ * spec stays, so the next job respawns it.
405
+ */
406
+ export async function cancelJob(deps, id, graceMs = deps.timings.cancelGraceMs) {
407
+ const { state } = deps;
408
+ const record = state.record(id);
409
+ if (!record)
410
+ throw diffusionError('JOB_NOT_FOUND', 'That job no longer exists.');
411
+ if (isTerminalJobState(record.job.state))
412
+ return { cancelled: record.job.state === 'cancelled', serverStopped: false };
413
+ record.cancel.requested = true;
414
+ const session = state.session;
415
+ if (session && record.serverJobId !== undefined)
416
+ await deps.http
417
+ .post(`${session.baseUrl}${JOBS_PATH}/${record.serverJobId}/cancel`, undefined, 5_000)
418
+ .catch(() => undefined);
419
+ const rounds = session && kindOf(record.kind).cancelGenerating(session.server.capabilities) ? 2 : 1;
420
+ for (let round = 0; round < rounds; round++) {
421
+ const final = await waitTerminal(deps, id, graceMs);
422
+ if (final !== undefined && isTerminalJobState(final))
423
+ return { cancelled: final === 'cancelled', serverStopped: false };
424
+ }
425
+ // sd-server will not interrupt a running generation: stop the process.
426
+ deps.log('warn', `cancel not honoured within ${graceMs} ms; stopping sd-server`);
427
+ await stopKeepingSpec(deps, 'cancelled');
428
+ finishJob(deps, id, { ok: false, error: errorBody(cancelledError()) });
429
+ return { cancelled: true, serverStopped: true };
430
+ }
431
+ /** Read a source image from disk; the default `readSource`. */
432
+ export const readSourceFile = (path) => readFile(path);
433
+ //# sourceMappingURL=jobs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/diffusion/jobs.ts"],"names":[],"mappings":"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"}