@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,226 @@
1
+ /**
2
+ * Session lifecycle: bringing `sd-server` up from a `ServerSpec`, tearing it down, and describing
3
+ * the result as the status and capabilities the app reads. Every state change here emits
4
+ * `diffusion:state`. Port of `session.rs` in `tauri-plugin-atomic-diffusion` (app commit `ec1fd3ea7`).
5
+ */
6
+ import { checkEngineCompatibility } from './compat.js';
7
+ import { samePath } from './containment.js';
8
+ import { diffusionError, errorBody, modelNotLoadedError, toDiffusionError } from './errors.js';
9
+ import { listInstalledBackends } from './install.js';
10
+ import { MAX_BATCH } from './types.js';
11
+ import { videoWorkflowsForFamily, workflowsForSpec } from './workflow.js';
12
+ /** CUDA and ROCm need a moment after the chat model's process dies before the driver reports the VRAM as free. */
13
+ export const GPU_SETTLE_MS = 500;
14
+ /** App exit: a short grace, then the kill. */
15
+ export const SHUTDOWN_GRACE_MS = 2_000;
16
+ /** The install the status reports: the resident spec's tree when there is one, otherwise the newest. */
17
+ export async function currentInstall(deps) {
18
+ const records = await listInstalledBackends(deps.state.paths.backendsDir, deps.platform);
19
+ let chosen = records[0];
20
+ const spec = deps.state.spec;
21
+ if (spec)
22
+ for (const record of records)
23
+ if (await samePath(record.dir, spec.binaryDir, deps.platform)) {
24
+ chosen = record;
25
+ break;
26
+ }
27
+ if (!chosen)
28
+ return { state: 'not-installed' };
29
+ return {
30
+ state: 'installed',
31
+ engine: chosen.engine,
32
+ backend: chosen.backend,
33
+ tag: chosen.tag,
34
+ backendId: chosen.backendId,
35
+ dir: chosen.dir,
36
+ };
37
+ }
38
+ /** Snapshot for `getStatus` and the `state` event. */
39
+ export async function buildStatus(deps) {
40
+ const { state } = deps;
41
+ const model = {
42
+ state: state.modelState,
43
+ loaded: state.modelState === 'loaded' && state.session ? { ...state.session.info } : null,
44
+ };
45
+ if (state.modelError)
46
+ model.error = state.modelError;
47
+ return {
48
+ configured: state.configured,
49
+ install: state.configured ? await currentInstall(deps) : { state: 'not-installed' },
50
+ model,
51
+ activeJob: state.activeJob(),
52
+ activeVideoJob: state.activeVideoJob(),
53
+ outputDir: state.outputDir(),
54
+ videoOutputDir: state.videoOutputDir(),
55
+ idleUnloadSecs: state.idleUnloadSecs(),
56
+ };
57
+ }
58
+ export async function emitState(deps, reason) {
59
+ deps.emit('diffusion:state', { status: await buildStatus(deps), reason });
60
+ }
61
+ export function emitError(deps, jobId, error) {
62
+ const payload = { code: error.code, message: error.message };
63
+ if (jobId !== undefined)
64
+ payload.jobId = jobId;
65
+ if (error.details !== undefined)
66
+ payload.details = error.details;
67
+ deps.emit('diffusion:error', payload);
68
+ }
69
+ export function capabilities(state) {
70
+ const spec = state.spec;
71
+ if (!spec)
72
+ throw modelNotLoadedError();
73
+ if (spec.modality !== 'image')
74
+ throw diffusionError('MODEL_INCOMPATIBLE', 'The loaded model generates video, not images.', spec.modelId);
75
+ return {
76
+ workflows: workflowsForSpec(spec),
77
+ minDim: spec.ranges.dims[0],
78
+ maxDim: spec.ranges.dims[1],
79
+ dimMultiple: spec.ranges.dimMultiple,
80
+ supportsNegativePrompt: spec.defaults.cfgScale > 1.0,
81
+ supportsGuidance: spec.defaults.guidance !== undefined,
82
+ cancelGenerating: state.session?.server.capabilities.cancelGenerating ?? false,
83
+ maxBatch: MAX_BATCH,
84
+ defaults: { ...spec.defaults },
85
+ ranges: {
86
+ steps: [...spec.ranges.steps],
87
+ dims: [...spec.ranges.dims],
88
+ dimMultiple: spec.ranges.dimMultiple,
89
+ },
90
+ };
91
+ }
92
+ /** The video counterpart of `capabilities`; an image spec is refused, so the app's form never guesses. */
93
+ export function videoCapabilities(state) {
94
+ const spec = state.spec;
95
+ if (!spec)
96
+ throw modelNotLoadedError();
97
+ const video = spec.defaults.video;
98
+ const range = spec.ranges.frames;
99
+ if (spec.modality !== 'video' || video === undefined || range === undefined)
100
+ throw diffusionError('MODEL_INCOMPATIBLE', 'The loaded model generates images, not video.', spec.modelId);
101
+ const vidGen = state.session?.server.capabilities.vidGen;
102
+ const formats = vidGen?.outputFormats;
103
+ return {
104
+ workflows: videoWorkflowsForFamily(spec.family),
105
+ minDim: spec.ranges.dims[0],
106
+ maxDim: spec.ranges.dims[1],
107
+ dimMultiple: spec.ranges.dimMultiple,
108
+ supportsNegativePrompt: spec.defaults.cfgScale > 1.0,
109
+ supportsGuidance: spec.defaults.guidance !== undefined,
110
+ cancelGenerating: vidGen?.cancelGenerating ?? false,
111
+ fps: video.fps,
112
+ frames: {
113
+ min: range[0],
114
+ max: range[1],
115
+ step: video.frameStep,
116
+ offset: video.frameOffset,
117
+ default: video.frames,
118
+ },
119
+ resolutionPresets: video.resolutionPresets.map(([w, h]) => [w, h]),
120
+ outputFormat: 'webm',
121
+ webmSupported: formats === undefined ? null : formats.includes('webm'),
122
+ defaults: structuredClone(spec.defaults),
123
+ ranges: structuredClone(spec.ranges),
124
+ };
125
+ }
126
+ /**
127
+ * Spawn the server for `spec` and make it the resident session. The caller holds the load lock,
128
+ * and any previous session is already gone.
129
+ */
130
+ export async function loadFromSpec(deps, spec, reason, signal) {
131
+ const { state } = deps;
132
+ state.setModelState('loading');
133
+ await emitState(deps, reason);
134
+ if (spec.backend === 'cuda' || spec.backend === 'rocm')
135
+ await deps.sleep(GPU_SETTLE_MS);
136
+ let server;
137
+ try {
138
+ // A retained spec can name an engine build that an update has since made too old for it.
139
+ checkEngineCompatibility(spec.family, spec.tag);
140
+ server = await deps.spawn(spec, state.paths.scratchDir, signal);
141
+ }
142
+ catch (raw) {
143
+ const error = toDiffusionError(raw);
144
+ const body = errorBody(error);
145
+ state.setModelState('failed', body);
146
+ await emitState(deps, 'load-failed');
147
+ emitError(deps, undefined, body);
148
+ throw error;
149
+ }
150
+ const info = {
151
+ modelId: spec.modelId,
152
+ family: spec.family,
153
+ modality: spec.modality,
154
+ displayName: spec.displayName,
155
+ engine: spec.engine,
156
+ backend: spec.backend,
157
+ offload: spec.offload,
158
+ cpuFallback: spec.cpuFallback,
159
+ port: server.port,
160
+ pid: server.pid,
161
+ loadedAtMs: deps.now(),
162
+ };
163
+ state.session = { server, info, spec, baseUrl: `http://127.0.0.1:${server.port}` };
164
+ state.spec = spec;
165
+ state.setModelState('loaded');
166
+ state.touchIdle();
167
+ await emitState(deps, 'loaded');
168
+ return { ...info };
169
+ }
170
+ /**
171
+ * Take the session out of the state and terminate it. Whether one was running. Touches neither the
172
+ * spec nor the model state: callers decide what the teardown means.
173
+ */
174
+ export async function takeDownSession(deps, graceMs) {
175
+ const { state } = deps;
176
+ const session = state.session;
177
+ if (!session)
178
+ return false;
179
+ state.session = undefined;
180
+ session.server.setLineListener(undefined);
181
+ await session.server.terminate(graceMs);
182
+ await deps.onServerGone?.(session.server.pid);
183
+ return true;
184
+ }
185
+ /** Explicit unload: stop the server, forget the spec, report `unloaded`. */
186
+ export async function unload(deps, reason) {
187
+ const { state } = deps;
188
+ if (state.modelState === 'loaded') {
189
+ state.setModelState('unloading');
190
+ await emitState(deps, reason);
191
+ }
192
+ await takeDownSession(deps);
193
+ state.spec = undefined;
194
+ state.clearIdle();
195
+ state.setModelState('unloaded');
196
+ await emitState(deps, reason);
197
+ }
198
+ /**
199
+ * A finished engine install that replaces the tree the spec runs from invalidates both a resident
200
+ * server and a spec kept after an idle unload or a crash: unload, so no job respawns the old binary.
201
+ * The caller holds the load lock and has cancelled any running job.
202
+ */
203
+ export async function activateInstall(deps, record) {
204
+ const spec = deps.state.spec;
205
+ if (!spec || spec.engine !== record.engine)
206
+ return;
207
+ if (spec.tag === record.tag && (await samePath(spec.binaryDir, record.dir, deps.platform)))
208
+ return;
209
+ await unload(deps, 'engine-updated');
210
+ }
211
+ /** The server was stopped but the spec stays: the next job respawns it. */
212
+ export async function stopKeepingSpec(deps, reason, error) {
213
+ const { state } = deps;
214
+ await takeDownSession(deps);
215
+ state.clearIdle();
216
+ if (error)
217
+ state.setModelState('failed', error);
218
+ else
219
+ state.setModelState('unloaded');
220
+ await emitState(deps, reason);
221
+ }
222
+ /** Owner exit: no events, no waiting beyond a short grace. */
223
+ export async function shutdownSession(deps) {
224
+ await takeDownSession(deps, SHUTDOWN_GRACE_MS);
225
+ }
226
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/diffusion/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * What the diffusion module remembers between calls. `DiffusionStateInner` in `state.rs` of
3
+ * `tauri-plugin-atomic-diffusion` (app commit `767ff6350`): one resident session at most, the spec
4
+ * that can bring it back, the model's state as the app sees it, a bounded job history, the idle
5
+ * deadline. Plain data behind small methods; the locks live with the code that holds them.
6
+ */
7
+ import type { DiffusionConfig, DiffusionErrorBody, DiffusionModelState, ImageJob, LoadedDiffusionModel, VideoJob } from '../contracts/index.js';
8
+ import type { DiffusionPaths } from '../config/index.js';
9
+ import type { ExitInfo } from '../runtime/llamacpp/index.js';
10
+ import type { ServerCapabilities, ServerSpec } from './types.js';
11
+ /** A running `sd-server`, as the session and the job runner see it; the real one wraps a child process. */
12
+ export interface ServerHandle {
13
+ pid: number;
14
+ port: number;
15
+ exe: string;
16
+ capabilities: ServerCapabilities;
17
+ /** The last lines the server printed, oldest first. */
18
+ tail(): string[];
19
+ /** The job that is running gets every cleaned output line; one listener at a time. */
20
+ setLineListener(listener: ((line: string) => void) | undefined): void;
21
+ /** Non-blocking liveness: the exit, once it has happened. */
22
+ exitStatus(): ExitInfo | undefined;
23
+ exited: Promise<ExitInfo>;
24
+ /** SIGTERM, a grace period, then SIGKILL; resolves once the exit is confirmed. */
25
+ terminate(graceMs?: number): Promise<ExitInfo>;
26
+ }
27
+ export interface DiffusionSession {
28
+ server: ServerHandle;
29
+ info: LoadedDiffusionModel;
30
+ spec: ServerSpec;
31
+ baseUrl: string;
32
+ }
33
+ export interface CancelFlag {
34
+ requested: boolean;
35
+ }
36
+ /** Which runner path a job record belongs to; the job's shape follows. */
37
+ export type JobKindId = 'image' | 'video';
38
+ export interface JobRecord {
39
+ kind: JobKindId;
40
+ job: ImageJob | VideoJob;
41
+ cancel: CancelFlag;
42
+ /** The server-side job id once submitted. */
43
+ serverJobId?: string;
44
+ }
45
+ /** Jobs kept in memory for `getJob`; the gallery is the durable record. */
46
+ export declare const JOB_HISTORY = 50;
47
+ export declare const TERMINAL_JOB_STATES: Set<import("../contracts/diffusion.js").ImageJobState>;
48
+ export declare const isTerminalJobState: (state: ImageJob["state"]) => boolean;
49
+ export declare class DiffusionState {
50
+ readonly paths: DiffusionPaths;
51
+ private readonly now;
52
+ config: DiffusionConfig | undefined;
53
+ session: DiffusionSession | undefined;
54
+ /** The last spec that loaded; the respawn source after a cancel or a crash. Cleared only by an unload. */
55
+ spec: ServerSpec | undefined;
56
+ modelState: DiffusionModelState;
57
+ modelError: DiffusionErrorBody | undefined;
58
+ activeJobId: string | undefined;
59
+ /** Set while the owner shuts down: nothing starts any more. */
60
+ closing: boolean;
61
+ private readonly jobs;
62
+ private readonly jobOrder;
63
+ private idleDeadline;
64
+ constructor(paths: DiffusionPaths, now?: () => number);
65
+ get configured(): boolean;
66
+ outputDir(): string;
67
+ videoOutputDir(): string;
68
+ idleUnloadSecs(): number;
69
+ setModelState(state: DiffusionModelState, error?: DiffusionErrorBody): void;
70
+ /** Reset the idle-unload deadline; 0 seconds means never. */
71
+ touchIdle(): void;
72
+ clearIdle(): void;
73
+ idleExpired(): boolean;
74
+ /** An image job's copy; a video job under that id answers `undefined`, like a missing one. */
75
+ job(id: string): ImageJob | undefined;
76
+ videoJob(id: string): VideoJob | undefined;
77
+ /** Whichever kind the id names. */
78
+ anyJob(id: string): ImageJob | VideoJob | undefined;
79
+ record(id: string): JobRecord | undefined;
80
+ /** The active image job while it is queued or generating, for the status. */
81
+ activeJob(): ImageJob | null;
82
+ /** The active video job while it is queued or generating; null while an image job runs. */
83
+ activeVideoJob(): VideoJob | null;
84
+ /** Every video job in memory, newest first; the `/v1/videos` listing merges these with the gallery. */
85
+ videoJobs(): VideoJob[];
86
+ insertJob(record: JobRecord): void;
87
+ updateJob(id: string, update: (record: JobRecord) => void): ImageJob | VideoJob | undefined;
88
+ /** Every job id in memory, oldest first. */
89
+ jobIds(): string[];
90
+ }
@@ -0,0 +1,122 @@
1
+ /**
2
+ * What the diffusion module remembers between calls. `DiffusionStateInner` in `state.rs` of
3
+ * `tauri-plugin-atomic-diffusion` (app commit `767ff6350`): one resident session at most, the spec
4
+ * that can bring it back, the model's state as the app sees it, a bounded job history, the idle
5
+ * deadline. Plain data behind small methods; the locks live with the code that holds them.
6
+ */
7
+ import { DEFAULT_IDLE_UNLOAD_SECS } from './types.js';
8
+ /** Jobs kept in memory for `getJob`; the gallery is the durable record. */
9
+ export const JOB_HISTORY = 50;
10
+ export const TERMINAL_JOB_STATES = new Set(['completed', 'failed', 'cancelled']);
11
+ export const isTerminalJobState = (state) => TERMINAL_JOB_STATES.has(state);
12
+ export class DiffusionState {
13
+ paths;
14
+ now;
15
+ config;
16
+ session;
17
+ /** The last spec that loaded; the respawn source after a cancel or a crash. Cleared only by an unload. */
18
+ spec;
19
+ modelState = 'unloaded';
20
+ modelError;
21
+ activeJobId;
22
+ /** Set while the owner shuts down: nothing starts any more. */
23
+ closing = false;
24
+ jobs = new Map();
25
+ jobOrder = [];
26
+ idleDeadline;
27
+ constructor(paths, now = Date.now) {
28
+ this.paths = paths;
29
+ this.now = now;
30
+ }
31
+ get configured() {
32
+ return this.config !== undefined;
33
+ }
34
+ outputDir() {
35
+ const chosen = this.config?.outputDir?.trim();
36
+ return chosen ? chosen : this.paths.defaultOutputDir;
37
+ }
38
+ videoOutputDir() {
39
+ const chosen = this.config?.videoOutputDir?.trim();
40
+ return chosen ? chosen : this.paths.defaultVideoOutputDir;
41
+ }
42
+ idleUnloadSecs() {
43
+ return this.config?.idleUnloadSecs ?? DEFAULT_IDLE_UNLOAD_SECS;
44
+ }
45
+ setModelState(state, error) {
46
+ this.modelState = state;
47
+ this.modelError = error;
48
+ }
49
+ /** Reset the idle-unload deadline; 0 seconds means never. */
50
+ touchIdle() {
51
+ const secs = this.idleUnloadSecs();
52
+ this.idleDeadline = secs === 0 ? undefined : this.now() + secs * 1000;
53
+ }
54
+ clearIdle() {
55
+ this.idleDeadline = undefined;
56
+ }
57
+ idleExpired() {
58
+ return this.idleDeadline !== undefined && this.now() >= this.idleDeadline;
59
+ }
60
+ /** An image job's copy; a video job under that id answers `undefined`, like a missing one. */
61
+ job(id) {
62
+ const record = this.jobs.get(id);
63
+ return record && record.kind === 'image' ? structuredClone(record.job) : undefined;
64
+ }
65
+ videoJob(id) {
66
+ const record = this.jobs.get(id);
67
+ return record && record.kind === 'video' ? structuredClone(record.job) : undefined;
68
+ }
69
+ /** Whichever kind the id names. */
70
+ anyJob(id) {
71
+ const record = this.jobs.get(id);
72
+ return record ? structuredClone(record.job) : undefined;
73
+ }
74
+ record(id) {
75
+ return this.jobs.get(id);
76
+ }
77
+ /** The active image job while it is queued or generating, for the status. */
78
+ activeJob() {
79
+ if (this.activeJobId === undefined)
80
+ return null;
81
+ const job = this.job(this.activeJobId);
82
+ return job && (job.state === 'queued' || job.state === 'generating') ? job : null;
83
+ }
84
+ /** The active video job while it is queued or generating; null while an image job runs. */
85
+ activeVideoJob() {
86
+ if (this.activeJobId === undefined)
87
+ return null;
88
+ const job = this.videoJob(this.activeJobId);
89
+ return job && (job.state === 'queued' || job.state === 'generating') ? job : null;
90
+ }
91
+ /** Every video job in memory, newest first; the `/v1/videos` listing merges these with the gallery. */
92
+ videoJobs() {
93
+ const out = [];
94
+ for (let i = this.jobOrder.length - 1; i >= 0; i--) {
95
+ const job = this.videoJob(this.jobOrder[i]);
96
+ if (job)
97
+ out.push(job);
98
+ }
99
+ return out;
100
+ }
101
+ insertJob(record) {
102
+ this.jobOrder.push(record.job.id);
103
+ while (this.jobOrder.length > JOB_HISTORY) {
104
+ const old = this.jobOrder.shift();
105
+ if (old !== undefined)
106
+ this.jobs.delete(old);
107
+ }
108
+ this.jobs.set(record.job.id, record);
109
+ }
110
+ updateJob(id, update) {
111
+ const record = this.jobs.get(id);
112
+ if (!record)
113
+ return undefined;
114
+ update(record);
115
+ return structuredClone(record.job);
116
+ }
117
+ /** Every job id in memory, oldest first. */
118
+ jobIds() {
119
+ return [...this.jobOrder];
120
+ }
121
+ }
122
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/diffusion/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * A job's progress, read from what the server prints. `sampled_steps` and `ProgressTracker` in
3
+ * `jobs.rs` of `tauri-plugin-atomic-diffusion` (app commit `767ff6350`).
4
+ */
5
+ import type { ImageGenerateRequest, ImageJobPhase, ImageJobProgress } from '../contracts/index.js';
6
+ /**
7
+ * The step count sd.cpp's sampler reports for `request`. With an init image and a strength below 1
8
+ * the sampler enters the schedule part-way: `t_enc = ⌊steps × strength⌋` (one fewer when that is all
9
+ * of them), and it walks `t_enc + 1` sigmas. Twenty steps at 0.35 print `k/8`, which a tracker
10
+ * waiting for `k/20` would never trust. The product is taken in f32, the way sd.cpp multiplies it:
11
+ * in f64, 20 × 0.35 lands just under 7.
12
+ */
13
+ export declare function sampledSteps(request: ImageGenerateRequest): number;
14
+ /** Non-progress lines a job keeps for its own failure report. */
15
+ export declare const JOB_LOG_LINES = 60;
16
+ export declare class ProgressTracker {
17
+ private readonly now;
18
+ private readonly steps;
19
+ private readonly batch;
20
+ private batchIndex;
21
+ private step;
22
+ private current;
23
+ private readonly startedAt;
24
+ private firstStepAt;
25
+ private firstStepDone;
26
+ private dirty;
27
+ /** Tiles left in an announced VAE pass; its bar is not the sampler's. */
28
+ private tiles;
29
+ /** What the server said during this job, progress redraws aside. */
30
+ private readonly log;
31
+ constructor(steps: number, batch: number, now?: () => number);
32
+ get phase(): ImageJobPhase;
33
+ logLines(): string[];
34
+ setPhase(phase: ImageJobPhase): void;
35
+ /**
36
+ * Feed one output line. Only a denominator equal to the sampled step count is trusted, so a
37
+ * loader's `1/100` cannot move the bar; and an announced tile pass is skipped whole, because nine
38
+ * tiles at nine steps would otherwise finish the bar before sampling began.
39
+ */
40
+ onLine(line: string): void;
41
+ private done;
42
+ snapshot(): ImageJobProgress;
43
+ private fraction;
44
+ /** Whether anything changed since the last call; the runner emits progress only when it did. */
45
+ takeDirty(): boolean;
46
+ }
@@ -0,0 +1,153 @@
1
+ /**
2
+ * A job's progress, read from what the server prints. `sampled_steps` and `ProgressTracker` in
3
+ * `jobs.rs` of `tauri-plugin-atomic-diffusion` (app commit `767ff6350`).
4
+ */
5
+ import { isProgressRedraw, parseStepLine, parseTileAnnouncement } from './progress.js';
6
+ import { defaultStrength, usesInitImage, workflowOf } from './workflow.js';
7
+ /**
8
+ * The step count sd.cpp's sampler reports for `request`. With an init image and a strength below 1
9
+ * the sampler enters the schedule part-way: `t_enc = ⌊steps × strength⌋` (one fewer when that is all
10
+ * of them), and it walks `t_enc + 1` sigmas. Twenty steps at 0.35 print `k/8`, which a tracker
11
+ * waiting for `k/20` would never trust. The product is taken in f32, the way sd.cpp multiplies it:
12
+ * in f64, 20 × 0.35 lands just under 7.
13
+ */
14
+ export function sampledSteps(request) {
15
+ const steps = Math.max(request.steps, 1);
16
+ const workflow = workflowOf(request);
17
+ if (!usesInitImage(workflow) || request.initImage === undefined)
18
+ return steps;
19
+ const strength = request.strength ?? defaultStrength(workflow);
20
+ if (strength >= 1.0)
21
+ return steps;
22
+ let encoded = Math.max(Math.trunc(Math.fround(Math.fround(steps) * Math.fround(strength))), 0);
23
+ if (encoded === steps)
24
+ encoded -= 1;
25
+ return encoded + 1;
26
+ }
27
+ /** Non-progress lines a job keeps for its own failure report. */
28
+ export const JOB_LOG_LINES = 60;
29
+ export class ProgressTracker {
30
+ now;
31
+ steps;
32
+ batch;
33
+ batchIndex = 0;
34
+ step = 0;
35
+ current = 'queued';
36
+ startedAt;
37
+ firstStepAt;
38
+ firstStepDone = 0;
39
+ dirty = true;
40
+ /** Tiles left in an announced VAE pass; its bar is not the sampler's. */
41
+ tiles;
42
+ /** What the server said during this job, progress redraws aside. */
43
+ log = [];
44
+ constructor(steps, batch, now = Date.now) {
45
+ this.now = now;
46
+ this.steps = Math.max(steps, 1);
47
+ this.batch = Math.max(batch, 1);
48
+ this.startedAt = now();
49
+ }
50
+ get phase() {
51
+ return this.current;
52
+ }
53
+ logLines() {
54
+ return [...this.log];
55
+ }
56
+ setPhase(phase) {
57
+ if (this.current === phase)
58
+ return;
59
+ this.current = phase;
60
+ this.dirty = true;
61
+ }
62
+ /**
63
+ * Feed one output line. Only a denominator equal to the sampled step count is trusted, so a
64
+ * loader's `1/100` cannot move the bar; and an announced tile pass is skipped whole, because nine
65
+ * tiles at nine steps would otherwise finish the bar before sampling began.
66
+ */
67
+ onLine(line) {
68
+ const announced = parseTileAnnouncement(line);
69
+ if (announced !== undefined)
70
+ this.tiles = announced;
71
+ // The sampling banner ends a tile pass whose last redraw was lost.
72
+ else if (line.includes('generating image:'))
73
+ this.tiles = undefined;
74
+ if (!isProgressRedraw(line)) {
75
+ if (this.log.length === JOB_LOG_LINES)
76
+ this.log.shift();
77
+ this.log.push(line);
78
+ }
79
+ const parsed = parseStepLine(line);
80
+ if (!parsed)
81
+ return;
82
+ const [step, total] = parsed;
83
+ if (this.tiles === total) {
84
+ if (step >= total)
85
+ this.tiles = undefined;
86
+ return;
87
+ }
88
+ if (total !== this.steps || step === 0 || step > total)
89
+ return;
90
+ if (step < this.step && this.batchIndex + 1 < this.batch)
91
+ this.batchIndex += 1;
92
+ // A wrap past the last image: a later phase reusing the count.
93
+ else if (step < this.step)
94
+ return;
95
+ if (step === this.step && this.current === 'sampling')
96
+ return;
97
+ this.step = step;
98
+ this.current = 'sampling';
99
+ if (this.firstStepAt === undefined) {
100
+ this.firstStepAt = this.now();
101
+ this.firstStepDone = this.done();
102
+ }
103
+ if (this.step === this.steps && this.batchIndex + 1 === this.batch)
104
+ this.current = 'decoding';
105
+ this.dirty = true;
106
+ }
107
+ done() {
108
+ return this.batchIndex * this.steps + this.step;
109
+ }
110
+ snapshot() {
111
+ const total = this.batch * this.steps;
112
+ const done = this.done();
113
+ const now = this.now();
114
+ let etaSeconds = null;
115
+ if (this.firstStepAt !== undefined && this.current === 'sampling' && done > this.firstStepDone) {
116
+ const perStep = (now - this.firstStepAt) / 1000 / (done - this.firstStepDone);
117
+ etaSeconds = perStep * Math.max(total - done, 0);
118
+ }
119
+ return {
120
+ phase: this.current,
121
+ step: this.step,
122
+ totalSteps: this.steps,
123
+ fraction: this.fraction(done, total),
124
+ etaSeconds,
125
+ batchIndex: this.batchIndex,
126
+ batchSize: this.batch,
127
+ elapsedMs: Math.max(now - this.startedAt, 0),
128
+ };
129
+ }
130
+ fraction(done, total) {
131
+ switch (this.current) {
132
+ case 'queued':
133
+ return 0.0;
134
+ case 'encoding':
135
+ return 0.02;
136
+ case 'sampling':
137
+ return Math.min(Math.max(done / total, 0.0), 0.97);
138
+ // `postprocessing` is never set here; the app's union has it for a pass after decoding.
139
+ case 'decoding':
140
+ case 'postprocessing':
141
+ return 0.98;
142
+ case 'saving':
143
+ return 0.99;
144
+ }
145
+ }
146
+ /** Whether anything changed since the last call; the runner emits progress only when it did. */
147
+ takeDirty() {
148
+ const was = this.dirty;
149
+ this.dirty = false;
150
+ return was;
151
+ }
152
+ }
153
+ //# sourceMappingURL=tracker.js.map