@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,198 @@
1
+ /**
2
+ * The optimal-backend cache record and the recheck / refresh decisions around it. Port of
3
+ * `getCachedOptimalBackend`, `persistOptimalBackendCache`, `resolveConcreteOptimalBackend`,
4
+ * `refreshOptimalBackendCache` and `recheckOptimalBackend` from
5
+ * `extensions/llamacpp-upstream-extension/src/index.ts`, without the storage, events and timeouts.
6
+ *
7
+ * The app keeps the record in `localStorage[OPTIMAL_BACKEND_CACHE_KEY]`; the core keeps it in
8
+ * `<data>/atomic-core/optimal-backend.json` (`DataLayout.core.optimalBackend`). Same JSON either way.
9
+ *
10
+ * What the caller does around these functions (the entangled halves left in the app):
11
+ * - skips both flows entirely on macOS (there are no GPU tiers to recommend);
12
+ * - runs `detectIdealBackendType` under a 20 s timeout, mapping a timeout to `detection-failed`;
13
+ * - on `detection_failed` throws the `BACKEND_DETECTION_FAILED` sentinel (the UI matches its
14
+ * message) and leaves the record and any prior recommendation untouched;
15
+ * - persists `record`, and for `recheckOptimalBackend` writes / removes
16
+ * `BETTER_BACKEND_RECOMMENDATION_KEY` and emits `onBetterBackendDetected` with `payload`.
17
+ */
18
+ import { resolveLatestVersionBackend } from '../catalog/index.js';
19
+ import { backendCategoryToLabel, findLatestVersionForBackend, getBackendCategory } from '../select/index.js';
20
+ import { isConcreteVersionBackend, stripBom } from '../version.js';
21
+ export const OPTIMAL_BACKEND_CACHE_KEY = 'atomic_llamacpp_upstream_optimal_backend_v1';
22
+ export const OPTIMAL_BACKEND_PROVIDER = 'llamacpp-upstream';
23
+ /** Legacy recommendation key the `useBackendUpdater` mount path still reads. */
24
+ export const BETTER_BACKEND_RECOMMENDATION_KEY = 'llama_cpp_better_backend_recommendation';
25
+ /**
26
+ * Sentinel `Error.message` for "detection could not complete — keep the current backend"
27
+ * (ATO-161). The web-app handler matches the literal value; keep the two in sync.
28
+ */
29
+ export const BACKEND_DETECTION_FAILED = 'BACKEND_DETECTION_FAILED';
30
+ /**
31
+ * Validate a stored record. Anything with the wrong schema, provider, a non-finite or negative
32
+ * `detectedAt`, missing strings, a `gpu` record whose `recommendedBackend` is not a concrete
33
+ * `<tag>/<idealBackendId>`, or a `cpu-optimal` record carrying GPU fields is `null` (ignored).
34
+ */
35
+ export function parseOptimalBackendCache(raw, provider = OPTIMAL_BACKEND_PROVIDER) {
36
+ if (!raw)
37
+ return null;
38
+ try {
39
+ const value = JSON.parse(raw);
40
+ if (value === null ||
41
+ typeof value !== 'object' ||
42
+ value.schemaVersion !== 1 ||
43
+ value.provider !== provider ||
44
+ !Number.isFinite(value.detectedAt) ||
45
+ value.detectedAt < 0 ||
46
+ typeof value.currentBackend !== 'string' ||
47
+ typeof value.recommendedCategory !== 'string' ||
48
+ !value.recommendedCategory) {
49
+ return null;
50
+ }
51
+ if (value.detectionKind === 'gpu') {
52
+ const recommendedType = typeof value.recommendedBackend === 'string'
53
+ ? stripBom(value.recommendedBackend).split('/')[1]
54
+ : undefined;
55
+ if (typeof value.idealBackendId !== 'string' ||
56
+ !value.idealBackendId ||
57
+ (value.recommendedBackend !== undefined &&
58
+ (typeof value.recommendedBackend !== 'string' ||
59
+ // TurboQuant's validator (`llamacpp-extension` index.ts) only asks for `<tag>/<id>`: the
60
+ // fork has no `latest/` sentinel to exclude.
61
+ (provider === 'llamacpp'
62
+ ? stripBom(value.recommendedBackend).split('/').length !== 2
63
+ : !isConcreteVersionBackend(value.recommendedBackend)) ||
64
+ recommendedType !== stripBom(value.idealBackendId)))) {
65
+ return null;
66
+ }
67
+ return value;
68
+ }
69
+ if (value.detectionKind === 'cpu-optimal') {
70
+ if (value.idealBackendId !== undefined || value.recommendedBackend !== undefined)
71
+ return null;
72
+ return value;
73
+ }
74
+ return null;
75
+ }
76
+ catch {
77
+ return null;
78
+ }
79
+ }
80
+ /** The record to persist for a completed detection (`persistOptimalBackendCache` minus the write). */
81
+ export function buildOptimalBackendCacheRecord(detection, currentBackend, recommendedBackend, now) {
82
+ if (detection.kind === 'cpu-optimal') {
83
+ return {
84
+ schemaVersion: 1,
85
+ provider: OPTIMAL_BACKEND_PROVIDER,
86
+ detectedAt: now,
87
+ detectionKind: 'cpu-optimal',
88
+ currentBackend,
89
+ recommendedCategory: 'CPU',
90
+ };
91
+ }
92
+ return {
93
+ schemaVersion: 1,
94
+ provider: OPTIMAL_BACKEND_PROVIDER,
95
+ detectedAt: now,
96
+ detectionKind: 'gpu',
97
+ currentBackend,
98
+ idealBackendId: detection.backend,
99
+ ...(recommendedBackend ? { recommendedBackend } : {}),
100
+ recommendedCategory: backendCategoryToLabel(getBackendCategory(detection.backend) ?? 'unknown'),
101
+ };
102
+ }
103
+ /**
104
+ * Concrete `<tag>/<backend>` for the detected ideal type: newest catalog entry of that type, else the
105
+ * newest remote asset (exact or family match), else the current backend's tag with the ideal type
106
+ * (so an in-family migration such as CUDA 13.1 → 13.3 still gets a target), else `null` when there is
107
+ * no current tag to borrow.
108
+ */
109
+ export async function resolveConcreteOptimalBackend(idealType, currentBackend, deps, operation = 'resolveConcreteOptimalBackend') {
110
+ const warn = deps.onWarn ?? (() => { });
111
+ let recommended = null;
112
+ try {
113
+ recommended = findLatestVersionForBackend(await deps.listSupportedBackends(), idealType);
114
+ }
115
+ catch (err) {
116
+ warn(`${operation}: failed to resolve latest backend for ${idealType}, falling back to current version: ${err instanceof Error ? err.message : String(err)}`);
117
+ }
118
+ if (recommended)
119
+ return recommended;
120
+ try {
121
+ recommended = resolveLatestVersionBackend(idealType, await deps.fetchRemoteBackends());
122
+ }
123
+ catch (err) {
124
+ warn(`${operation}: failed to fetch latest release for '${idealType}': ${err instanceof Error ? err.message : String(err)}`);
125
+ }
126
+ if (recommended)
127
+ return recommended;
128
+ const fallbackVersion = currentBackend.split('/')[0];
129
+ if (!fallbackVersion) {
130
+ warn(`${operation}: could not resolve a concrete tag for ${idealType} and no current backend tag to fall back to`);
131
+ return null;
132
+ }
133
+ return `${fallbackVersion}/${idealType}`;
134
+ }
135
+ /**
136
+ * Silent cache refresh (startup coordinator, once per launch). Never emits a recommendation. A
137
+ * failed concrete resolution still caches the `gpu` verdict, just without `recommendedBackend`.
138
+ */
139
+ export async function refreshOptimalBackendCache(detection, currentBackend, resolveConcrete, now) {
140
+ if (detection.kind === 'detection-failed')
141
+ return { outcome: 'detection_failed' };
142
+ const current = stripBom(currentBackend);
143
+ if (detection.kind === 'cpu-optimal') {
144
+ return { outcome: 'cached', record: buildOptimalBackendCacheRecord(detection, current, null, now) };
145
+ }
146
+ let recommended = null;
147
+ try {
148
+ recommended = await resolveConcrete(detection.backend, current);
149
+ }
150
+ catch {
151
+ recommended = null;
152
+ }
153
+ return { outcome: 'cached', record: buildOptimalBackendCacheRecord(detection, current, recommended, now) };
154
+ }
155
+ /**
156
+ * Manual "Find optimal backend" / onboarding recheck. Same category *and* same backend type as the
157
+ * current build is `already_optimal` without resolving anything; otherwise the concrete target is
158
+ * resolved and compared — equal to current is `already_optimal`, nothing resolvable is
159
+ * `no_catalog_entry`, else `recommend` with the event payload.
160
+ */
161
+ export async function recheckOptimalBackend(detection, currentBackend, resolveConcrete, now) {
162
+ if (detection.kind === 'detection-failed')
163
+ return { outcome: 'detection_failed' };
164
+ const current = stripBom(currentBackend);
165
+ if (detection.kind === 'cpu-optimal') {
166
+ return { outcome: 'cpu_optimal', record: buildOptimalBackendCacheRecord(detection, current, null, now) };
167
+ }
168
+ const idealType = detection.backend;
169
+ const idealCategory = getBackendCategory(idealType);
170
+ const currentType = current.split('/')[1] || '';
171
+ const currentCategory = getBackendCategory(currentType);
172
+ if (idealCategory === currentCategory && currentType === idealType) {
173
+ return {
174
+ outcome: 'already_optimal',
175
+ record: buildOptimalBackendCacheRecord(detection, current, current, now),
176
+ };
177
+ }
178
+ const recommended = await resolveConcrete(idealType, current);
179
+ const record = buildOptimalBackendCacheRecord(detection, current, recommended, now);
180
+ if (!recommended)
181
+ return { outcome: 'no_catalog_entry', record };
182
+ if (recommended === current)
183
+ return { outcome: 'already_optimal', record };
184
+ const [version, backendId] = recommended.split('/');
185
+ return {
186
+ outcome: 'recommend',
187
+ record,
188
+ payload: {
189
+ currentBackend: current,
190
+ recommendedBackend: recommended,
191
+ recommendedCategory: backendCategoryToLabel(idealCategory ?? 'unknown'),
192
+ provider: OPTIMAL_BACKEND_PROVIDER,
193
+ version: version ?? '',
194
+ backendId: backendId ?? '',
195
+ },
196
+ };
197
+ }
198
+ //# sourceMappingURL=optimal-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimal-cache.js","sourceRoot":"","sources":["../../../src/backend/optimal/optimal-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAO5G,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAElE,MAAM,CAAC,MAAM,yBAAyB,GAAG,6CAA6C,CAAA;AACtF,MAAM,CAAC,MAAM,wBAAwB,GAAG,mBAAmB,CAAA;AAC3D,gFAAgF;AAChF,MAAM,CAAC,MAAM,iCAAiC,GAAG,yCAAyC,CAAA;AAC1F;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAA;AAIlE;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,GAA8B,EAC9B,WAA6C,wBAAwB;IAErE,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IACrB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAA;QACxD,IACE,KAAK,KAAK,IAAI;YACd,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,CAAC,aAAa,KAAK,CAAC;YACzB,KAAK,CAAC,QAAQ,KAAK,QAAQ;YAC3B,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC;YACjC,KAAK,CAAC,UAAqB,GAAG,CAAC;YAChC,OAAO,KAAK,CAAC,cAAc,KAAK,QAAQ;YACxC,OAAO,KAAK,CAAC,mBAAmB,KAAK,QAAQ;YAC7C,CAAC,KAAK,CAAC,mBAAmB,EAC1B,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QACD,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;YAClC,MAAM,eAAe,GACnB,OAAO,KAAK,CAAC,kBAAkB,KAAK,QAAQ;gBAC1C,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAClD,CAAC,CAAC,SAAS,CAAA;YACf,IACE,OAAO,KAAK,CAAC,cAAc,KAAK,QAAQ;gBACxC,CAAC,KAAK,CAAC,cAAc;gBACrB,CAAC,KAAK,CAAC,kBAAkB,KAAK,SAAS;oBACrC,CAAC,OAAO,KAAK,CAAC,kBAAkB,KAAK,QAAQ;wBAC3C,yFAAyF;wBACzF,6CAA6C;wBAC7C,CAAC,QAAQ,KAAK,UAAU;4BACtB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;4BAC5D,CAAC,CAAC,CAAC,wBAAwB,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;wBACxD,eAAe,KAAK,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EACxD,CAAC;gBACD,OAAO,IAAI,CAAA;YACb,CAAC;YACD,OAAO,KAA6C,CAAA;QACtD,CAAC;QACD,IAAI,KAAK,CAAC,aAAa,KAAK,aAAa,EAAE,CAAC;YAC1C,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAA;YAC7F,OAAO,KAA6C,CAAA;QACtD,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,8BAA8B,CAC5C,SAA6B,EAC7B,cAAsB,EACtB,kBAA6C,EAC7C,GAAW;IAEX,IAAI,SAAS,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACrC,OAAO;YACL,aAAa,EAAE,CAAC;YAChB,QAAQ,EAAE,wBAAwB;YAClC,UAAU,EAAE,GAAG;YACf,aAAa,EAAE,aAAa;YAC5B,cAAc;YACd,mBAAmB,EAAE,KAAK;SAC3B,CAAA;IACH,CAAC;IACD,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,wBAAwB;QAClC,UAAU,EAAE,GAAG;QACf,aAAa,EAAE,KAAK;QACpB,cAAc;QACd,cAAc,EAAE,SAAS,CAAC,OAAO;QACjC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,mBAAmB,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;KAChG,CAAA;AACH,CAAC;AAUD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,SAAiB,EACjB,cAAsB,EACtB,IAA6B,EAC7B,SAAS,GAAG,+BAA+B;IAE3C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IACtC,IAAI,WAAW,GAAkB,IAAI,CAAA;IACrC,IAAI,CAAC;QACH,WAAW,GAAG,2BAA2B,CAAC,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAAE,SAAS,CAAC,CAAA;IAC1F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CACF,GAAG,SAAS,0CAA0C,SAAS,sCAC7D,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,EAAE,CACH,CAAA;IACH,CAAC;IACD,IAAI,WAAW;QAAE,OAAO,WAAW,CAAA;IAEnC,IAAI,CAAC;QACH,WAAW,GAAG,2BAA2B,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAA;IACxF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CACF,GAAG,SAAS,yCAAyC,SAAS,MAAM,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACvH,CAAA;IACH,CAAC;IACD,IAAI,WAAW;QAAE,OAAO,WAAW,CAAA;IAEnC,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACpD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,IAAI,CACF,GAAG,SAAS,0CAA0C,SAAS,6CAA6C,CAC7G,CAAA;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,GAAG,eAAe,IAAI,SAAS,EAAE,CAAA;AAC1C,CAAC;AAKD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,SAA6B,EAC7B,cAAsB,EACtB,eAAsF,EACtF,GAAW;IAEX,IAAI,SAAS,CAAC,IAAI,KAAK,kBAAkB;QAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAA;IACjF,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAA;IACxC,IAAI,SAAS,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACrC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,8BAA8B,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,CAAA;IACrG,CAAC;IACD,IAAI,WAAW,GAAkB,IAAI,CAAA;IACrC,IAAI,CAAC;QACH,WAAW,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,WAAW,GAAG,IAAI,CAAA;IACpB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,8BAA8B,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,CAAA;AAC5G,CAAC;AAaD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,SAA6B,EAC7B,cAAsB,EACtB,eAAsF,EACtF,GAAW;IAEX,IAAI,SAAS,CAAC,IAAI,KAAK,kBAAkB;QAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAA;IACjF,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAA;IACxC,IAAI,SAAS,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACrC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,8BAA8B,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,CAAA;IAC1G,CAAC;IAED,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAA;IACnC,MAAM,aAAa,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;IACnD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC/C,MAAM,eAAe,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAA;IACvD,IAAI,aAAa,KAAK,eAAe,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QACnE,OAAO;YACL,OAAO,EAAE,iBAAiB;YAC1B,MAAM,EAAE,8BAA8B,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC;SACzE,CAAA;IACH,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC7D,MAAM,MAAM,GAAG,8BAA8B,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,CAAA;IACnF,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAA;IAChE,IAAI,WAAW,KAAK,OAAO;QAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAA;IAE1E,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACnD,OAAO;QACL,OAAO,EAAE,WAAW;QACpB,MAAM;QACN,OAAO,EAAE;YACP,cAAc,EAAE,OAAO;YACvB,kBAAkB,EAAE,WAAW;YAC/B,mBAAmB,EAAE,sBAAsB,CAAC,aAAa,IAAI,SAAS,CAAC;YACvE,QAAQ,EAAE,wBAAwB;YAClC,OAAO,EAAE,OAAO,IAAI,EAAE;YACtB,SAAS,EAAE,SAAS,IAAI,EAAE;SAC3B;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { LocalProviderId } from '../../contracts/index.js';
2
+ import type { OptimalBackendCacheRecord } from '../types.js';
3
+ export interface OptimalState {
4
+ revision: number;
5
+ optimal: OptimalBackendCacheRecord | null;
6
+ }
7
+ export type OptimalUpdate = {
8
+ status: 'updated';
9
+ current: OptimalState;
10
+ } | {
11
+ status: 'conflict';
12
+ current: OptimalState;
13
+ };
14
+ export declare class OptimalBackendStore {
15
+ private readonly path;
16
+ private readonly onChange;
17
+ private readonly entries;
18
+ private pending;
19
+ private constructor();
20
+ static open(path: string, onChange?: (provider: LocalProviderId, state: OptimalState) => void): Promise<OptimalBackendStore>;
21
+ get(provider: LocalProviderId): OptimalState;
22
+ snapshot(): Record<string, OptimalState>;
23
+ set(provider: LocalProviderId, optimal: OptimalBackendCacheRecord | null, expectedRevision: number): Promise<OptimalUpdate>;
24
+ }
@@ -0,0 +1,103 @@
1
+ /** Durable, revisioned owner of optimal-backend recommendations. */
2
+ import { randomUUID } from 'node:crypto';
3
+ import { mkdir, readFile, rename, rm, writeFile } from 'node:fs/promises';
4
+ import { dirname } from 'node:path';
5
+ import { AtomicCoreError } from '../../contracts/index.js';
6
+ import { parseOptimalBackendCache } from './optimal-cache.js';
7
+ export class OptimalBackendStore {
8
+ path;
9
+ onChange;
10
+ entries = new Map();
11
+ pending = Promise.resolve();
12
+ constructor(path, onChange) {
13
+ this.path = path;
14
+ this.onChange = onChange;
15
+ }
16
+ static async open(path, onChange = () => { }) {
17
+ const store = new OptimalBackendStore(path, onChange);
18
+ const text = await readFile(path, 'utf8').catch(() => '');
19
+ if (!text.trim())
20
+ return store;
21
+ try {
22
+ const raw = JSON.parse(text);
23
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw))
24
+ return store;
25
+ const document = raw;
26
+ const entries = document['schemaVersion'] === 2 &&
27
+ document['providers'] &&
28
+ typeof document['providers'] === 'object' &&
29
+ !Array.isArray(document['providers'])
30
+ ? document['providers']
31
+ : document;
32
+ for (const [provider, value] of Object.entries(entries)) {
33
+ if (document['schemaVersion'] === 2) {
34
+ if (!value || typeof value !== 'object' || Array.isArray(value))
35
+ continue;
36
+ const entry = value;
37
+ if (!Number.isSafeInteger(entry['revision']) || entry['revision'] < 0)
38
+ continue;
39
+ const record = entry['optimal'] === null ? null : parseRecord(entry['optimal'], provider);
40
+ if (entry['optimal'] !== null && !record)
41
+ continue;
42
+ store.entries.set(provider, { revision: entry['revision'], optimal: record });
43
+ }
44
+ else {
45
+ // Stage 3c initially wrote `{provider: record}` without a revision.
46
+ const record = parseRecord(value, provider);
47
+ if (record)
48
+ store.entries.set(provider, { revision: 0, optimal: record });
49
+ }
50
+ }
51
+ }
52
+ catch {
53
+ // One corrupt cache must not keep the core from starting.
54
+ }
55
+ return store;
56
+ }
57
+ get(provider) {
58
+ const state = this.entries.get(provider);
59
+ return state ? { ...state } : { revision: 0, optimal: null };
60
+ }
61
+ snapshot() {
62
+ return Object.fromEntries([...this.entries].map(([provider, state]) => [provider, { ...state }]));
63
+ }
64
+ async set(provider, optimal, expectedRevision) {
65
+ if (!Number.isSafeInteger(expectedRevision) || expectedRevision < 0) {
66
+ throw new AtomicCoreError('INVALID_ARGUMENT', 'expected_revision must be a non-negative integer');
67
+ }
68
+ if (optimal && !parseRecord(optimal, provider)) {
69
+ throw new AtomicCoreError('INVALID_ARGUMENT', 'Invalid optimal-backend record for provider');
70
+ }
71
+ const action = this.pending.then(async () => {
72
+ const previous = this.get(provider);
73
+ if (previous.revision !== expectedRevision)
74
+ return { status: 'conflict', current: previous };
75
+ const current = { revision: previous.revision + 1, optimal };
76
+ const next = Object.fromEntries(this.entries);
77
+ next[provider] = current;
78
+ const temporary = `${this.path}.tmp-${randomUUID()}`;
79
+ await mkdir(dirname(this.path), { recursive: true });
80
+ try {
81
+ await writeFile(temporary, `${JSON.stringify({ schemaVersion: 2, providers: next }, null, 2)}\n`, 'utf8');
82
+ await rename(temporary, this.path);
83
+ }
84
+ catch (error) {
85
+ await rm(temporary, { force: true }).catch(() => { });
86
+ throw error;
87
+ }
88
+ this.entries.set(provider, current);
89
+ this.onChange(provider, current);
90
+ return { status: 'updated', current };
91
+ });
92
+ this.pending = action.catch(() => { });
93
+ return action;
94
+ }
95
+ }
96
+ function parseRecord(value, provider) {
97
+ if (!value || typeof value !== 'object')
98
+ return null;
99
+ if (provider !== 'llamacpp-upstream' && provider !== 'llamacpp')
100
+ return null;
101
+ return parseOptimalBackendCache(JSON.stringify(value), provider);
102
+ }
103
+ //# sourceMappingURL=optimal-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimal-store.js","sourceRoot":"","sources":["../../../src/backend/optimal/optimal-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const AMD_ROCM_WINDOWS_PCI_IDS: ReadonlyArray<readonly [number, string]>;
2
+ /** True when `deviceId` is a PCI id the upstream Windows HIP archive is compiled for. */
3
+ export declare function isRocmSupportedPciId(deviceId: number): boolean;
@@ -0,0 +1,57 @@
1
+ // Port of src-tauri/plugins/tauri-plugin-llamacpp-upstream/src/amd_rocm_pci_ids.rs, which is
2
+ // GENERATED there by scripts/gen-amd-rocm-pci-ids.mjs — re-sync by hand when the app's copy moves.
3
+ //
4
+ // AMD PCI device id -> LLVM gfx target, for GPUs that BOTH AMD supports on
5
+ // Windows and the upstream `windows-rocm` archive is compiled for. Windows has
6
+ // no `/sys/class/kfd`, so the PCI device id from Vulkan is the only gfx signal
7
+ // available before the binary runs.
8
+ //
9
+ // Sources:
10
+ // https://rocm.docs.amd.com/projects/install-on-windows/en/latest/reference/system-requirements.html
11
+ // https://pci-ids.ucw.cz/v2.2/pci.ids
12
+ //
13
+ // Not covered, because pci.ids carries no board name matching AMD's row:
14
+ // - AMD Radeon RX 9060
15
+ // - AMD Radeon RX 7650 GRE
16
+ // - AMD Ryzen AI Max+ Pro 395
17
+ // - AMD Ryzen AI Max+ 395
18
+ // - AMD Ryzen AI Max Pro 390
19
+ // - AMD Ryzen AI Max 390
20
+ // - AMD Ryzen AI Max Pro 385
21
+ // - AMD Ryzen AI Max 385
22
+ // - AMD Ryzen AI Max Pro 380
23
+ // - AMD Ryzen AI 300 Series
24
+ // - AMD Ryzen AI 9 400 Series
25
+ // - AMD Ryzen AI MAX+ 495
26
+ // - AMD Ryzen AI MAX+ 492
27
+ // - AMD Ryzen AII MAX PRO 490
28
+ // These reach ROCm only through the manual backend picker.
29
+ export const AMD_ROCM_WINDOWS_PCI_IDS = [
30
+ [0x73f0, 'gfx1102'], // Navi 33 [Radeon RX 7600M XT]
31
+ [0x7448, 'gfx1100'], // Navi 31 [Radeon Pro W7900]
32
+ [0x7449, 'gfx1100'], // Navi 31 [Radeon Pro W7800 48GB]
33
+ [0x744a, 'gfx1100'], // Navi 31 [Radeon Pro W7900 Dual Slot]
34
+ [0x744b, 'gfx1100'], // Navi 31 [Radeon Pro W7900D]
35
+ [0x744c, 'gfx1100'], // Navi 31 [Radeon RX 7900 XT/7900 XTX/7900 GRE/7900M]
36
+ [0x745e, 'gfx1100'], // Navi 31 [Radeon Pro W7800]
37
+ [0x7460, 'gfx1101'], // Navi 32 GL-XL [AMD Radeon PRO V710]
38
+ [0x7461, 'gfx1101'], // Navi 32 [AMD Radeon PRO V710]
39
+ [0x7470, 'gfx1101'], // Navi 32 [Radeon PRO W7700]
40
+ [0x747e, 'gfx1101'], // Navi 32 [Radeon RX 7700 XT / 7800 XT]
41
+ [0x7480, 'gfx1102'], // Navi 33 [Radeon RX 7600/7600 XT/7600M XT/7600S/7700S / PRO W7600]
42
+ [0x7481, 'gfx1102'], // Navi 33 [Radeon Graphics]
43
+ [0x7483, 'gfx1102'], // Navi 33 [Radeon RX 7600M/7600M XT]
44
+ [0x7487, 'gfx1102'], // Navi 33 [Radeon Graphics]
45
+ [0x7489, 'gfx1102'], // Navi 33 [Radeon Pro W7500]
46
+ [0x748b, 'gfx1102'], // Navi 33 [Radeon Graphics]
47
+ [0x7499, 'gfx1102'], // Navi 33 [Radeon RX 7400/7300/Pro W7400]
48
+ [0x749f, 'gfx1102'], // Navi 33 [Radeon RX 7500]
49
+ [0x7550, 'gfx1201'], // Navi 48 [Radeon RX 9070/9070 XT/9070 GRE]
50
+ [0x7551, 'gfx1201'], // Navi 48 [Radeon AI PRO R9700]
51
+ [0x7590, 'gfx1200'], // Navi 44 [Radeon RX 9050 / 9060 XT]
52
+ ];
53
+ /** True when `deviceId` is a PCI id the upstream Windows HIP archive is compiled for. */
54
+ export function isRocmSupportedPciId(deviceId) {
55
+ return AMD_ROCM_WINDOWS_PCI_IDS.some(([supported]) => supported === deviceId);
56
+ }
57
+ //# sourceMappingURL=amd-rocm-pci-ids.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amd-rocm-pci-ids.js","sourceRoot":"","sources":["../../../src/backend/select/amd-rocm-pci-ids.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,mGAAmG;AACnG,EAAE;AACF,2EAA2E;AAC3E,+EAA+E;AAC/E,+EAA+E;AAC/E,oCAAoC;AACpC,EAAE;AACF,WAAW;AACX,uGAAuG;AACvG,wCAAwC;AACxC,EAAE;AACF,yEAAyE;AACzE,yBAAyB;AACzB,6BAA6B;AAC7B,gCAAgC;AAChC,4BAA4B;AAC5B,+BAA+B;AAC/B,2BAA2B;AAC3B,+BAA+B;AAC/B,2BAA2B;AAC3B,+BAA+B;AAC/B,8BAA8B;AAC9B,gCAAgC;AAChC,4BAA4B;AAC5B,4BAA4B;AAC5B,gCAAgC;AAChC,2DAA2D;AAC3D,MAAM,CAAC,MAAM,wBAAwB,GAA6C;IAChF,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,+BAA+B;IACpD,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,6BAA6B;IAClD,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,kCAAkC;IACvD,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,uCAAuC;IAC5D,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,8BAA8B;IACnD,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,sDAAsD;IAC3E,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,6BAA6B;IAClD,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,sCAAsC;IAC3D,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,gCAAgC;IACrD,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,6BAA6B;IAClD,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,wCAAwC;IAC7D,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,oEAAoE;IACzF,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,4BAA4B;IACjD,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,qCAAqC;IAC1D,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,4BAA4B;IACjD,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,6BAA6B;IAClD,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,4BAA4B;IACjD,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,0CAA0C;IAC/D,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,2BAA2B;IAChD,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,4CAA4C;IACjE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,gCAAgC;IACrD,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,qCAAqC;CAC3D,CAAA;AAED,yFAAyF;AACzF,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAA;AAC/E,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Backend categories, priority and update checks. Port of the pure policy in
3
+ * `src-tauri/plugins/tauri-plugin-llamacpp-upstream/src/backend.rs` (`get_backend_category`,
4
+ * `prioritize_backends`, `find_latest_version_for_backend`, `check_backend_for_updates`) and of the
5
+ * decision half of `determineBestBackend` in `extensions/llamacpp-upstream-extension/src/index.ts`.
6
+ *
7
+ * Nothing here reads hardware, disk or network: the probe result (`GpuProbeInfo[]`) and the catalog
8
+ * are parameters.
9
+ */
10
+ import type { BackendVersion, BestBackendResult, GpuProbeInfo, UpdateCheckResult } from '../types.js';
11
+ /**
12
+ * Coarse category of a backend id for priority ranking and the "already optimal" comparison.
13
+ * ggml-org Windows names first (`cuda-13.` → `cuda-cu13`, `cuda-12.4`), then legacy janhq /
14
+ * TurboQuant names, `rocm`/`hip` before `vulkan` (a host holding both keeps the ROCm tier), the
15
+ * native CPU name, the legacy CPU buckets, and finally the bare arch. `null` for nothing matching.
16
+ * Verbatim quirk: `avx` is tested before `noavx`, so a `noavx` id categorises as `avx`.
17
+ *
18
+ * The app's `index.ts` carries a second, slightly narrower copy of this function (no `rocm`,
19
+ * `arm64`, `x64` buckets → `'unknown'`); this port keeps only the Rust one, so a ROCm
20
+ * recommendation is labelled `rocm` in the cache record where the app wrote `unknown`.
21
+ */
22
+ export declare function getBackendCategory(backend: string): string | null;
23
+ /** UI label of a category (app `backendCategoryToLabel`); unknown categories pass through. */
24
+ export declare function backendCategoryToLabel(category: string): string;
25
+ /**
26
+ * Best backend by category priority. CUDA tiers always lead (they carry no VRAM gate); with enough
27
+ * GPU memory ROCm and Vulkan come next, otherwise they rank below every CPU bucket. Within a
28
+ * category the newest build wins. No category matching → the first entry. Empty → `INVALID_ARGUMENT`.
29
+ */
30
+ export declare function prioritizeBackends(versionBackends: readonly BackendVersion[], hasEnoughGpuMemory: boolean): BestBackendResult;
31
+ /**
32
+ * Newest `<version>/<backend>` whose normalised id equals `backendType` (so a legacy id and its
33
+ * current equivalent both match), or `null`. The original backend spelling is kept in the result.
34
+ */
35
+ export declare function findLatestVersionForBackend(versionBackends: readonly BackendVersion[], backendType: string): string | null;
36
+ /**
37
+ * Whether a newer build of the current backend's (normalised) type exists. `new_version` is `"0"`
38
+ * and `target_backend` `null` when nothing newer or nothing at all is listed.
39
+ */
40
+ export declare function checkBackendForUpdates(currentBackendString: string, versionBackends: readonly BackendVersion[]): UpdateCheckResult;
41
+ /**
42
+ * Smallest GPU worth moving a host off the CPU build for (MiB). Platform-neutral on purpose: ATO-464
43
+ * lowered Linux to 2 GiB with reasoning that is a property of the backend, and Windows kept an
44
+ * inline 6 GiB that told a 4 GB Radeon owner "CPU is optimal" while a 4 GB GeForce got CUDA.
45
+ */
46
+ export declare const GPU_BACKEND_MIN_VRAM_MIB: number;
47
+ export declare function hasEnoughGpuMemory(gpus: readonly GpuProbeInfo[]): boolean;
48
+ /** `prioritizeBackends` under the VRAM gate; `''` for an empty catalog (app `determineBestBackend`). */
49
+ export declare function determineBestBackend(versionBackends: readonly BackendVersion[], gpus: readonly GpuProbeInfo[]): string;
@@ -0,0 +1,178 @@
1
+ /**
2
+ * Backend categories, priority and update checks. Port of the pure policy in
3
+ * `src-tauri/plugins/tauri-plugin-llamacpp-upstream/src/backend.rs` (`get_backend_category`,
4
+ * `prioritize_backends`, `find_latest_version_for_backend`, `check_backend_for_updates`) and of the
5
+ * decision half of `determineBestBackend` in `extensions/llamacpp-upstream-extension/src/index.ts`.
6
+ *
7
+ * Nothing here reads hardware, disk or network: the probe result (`GpuProbeInfo[]`) and the catalog
8
+ * are parameters.
9
+ */
10
+ import { AtomicCoreError } from '../../contracts/index.js';
11
+ import { mapOldBackendToNew } from '../catalog/index.js';
12
+ import { compareBackendVersionsForSort } from '../version.js';
13
+ // ---------------------------------------------------------------------------------------------
14
+ // Categories, priority, updates
15
+ // ---------------------------------------------------------------------------------------------
16
+ /**
17
+ * Coarse category of a backend id for priority ranking and the "already optimal" comparison.
18
+ * ggml-org Windows names first (`cuda-13.` → `cuda-cu13`, `cuda-12.4`), then legacy janhq /
19
+ * TurboQuant names, `rocm`/`hip` before `vulkan` (a host holding both keeps the ROCm tier), the
20
+ * native CPU name, the legacy CPU buckets, and finally the bare arch. `null` for nothing matching.
21
+ * Verbatim quirk: `avx` is tested before `noavx`, so a `noavx` id categorises as `avx`.
22
+ *
23
+ * The app's `index.ts` carries a second, slightly narrower copy of this function (no `rocm`,
24
+ * `arm64`, `x64` buckets → `'unknown'`); this port keeps only the Rust one, so a ROCm
25
+ * recommendation is labelled `rocm` in the cache record where the app wrote `unknown`.
26
+ */
27
+ export function getBackendCategory(backend) {
28
+ if (backend.includes('cuda-13.'))
29
+ return 'cuda-cu13';
30
+ if (backend.includes('cuda-12.4'))
31
+ return 'cuda-cu12.4';
32
+ if (backend.includes('cuda-13-common_cpus') || backend.includes('cu13.0'))
33
+ return 'cuda-cu13.0';
34
+ if (backend.includes('cuda-12-common_cpus') || backend.includes('cu12.0'))
35
+ return 'cuda-cu12.0';
36
+ if (backend.includes('cuda-11-common_cpus') || backend.includes('cu11.7'))
37
+ return 'cuda-cu11.7';
38
+ if (backend.includes('rocm') || backend.includes('hip'))
39
+ return 'rocm';
40
+ if (backend.includes('vulkan'))
41
+ return 'vulkan';
42
+ if (backend.startsWith('win-cpu-'))
43
+ return 'cpu';
44
+ if (backend.includes('common_cpus'))
45
+ return 'common_cpus';
46
+ if (backend.includes('avx512'))
47
+ return 'avx512';
48
+ if (backend.includes('avx2'))
49
+ return 'avx2';
50
+ if (backend.includes('avx') && !backend.includes('avx2') && !backend.includes('avx512'))
51
+ return 'avx';
52
+ if (backend.includes('noavx'))
53
+ return 'noavx';
54
+ if (backend.endsWith('arm64'))
55
+ return 'arm64';
56
+ if (backend.endsWith('x64'))
57
+ return 'x64';
58
+ return null;
59
+ }
60
+ /** UI label of a category (app `backendCategoryToLabel`); unknown categories pass through. */
61
+ export function backendCategoryToLabel(category) {
62
+ switch (category) {
63
+ case 'cuda-cu13':
64
+ case 'cuda-cu13.0':
65
+ return 'CUDA 13';
66
+ case 'cuda-cu12.4':
67
+ case 'cuda-cu12.0':
68
+ return 'CUDA 12';
69
+ case 'cuda-cu11.7':
70
+ return 'CUDA 11';
71
+ case 'vulkan':
72
+ return 'Vulkan';
73
+ default:
74
+ return category;
75
+ }
76
+ }
77
+ const GPU_FIRST_PRIORITIES = [
78
+ 'cuda-cu13',
79
+ 'cuda-cu13.0',
80
+ 'cuda-cu12.4',
81
+ 'cuda-cu12.0',
82
+ 'cuda-cu11.7',
83
+ 'rocm',
84
+ 'vulkan',
85
+ 'common_cpus',
86
+ 'cpu',
87
+ 'avx512',
88
+ 'avx2',
89
+ 'avx',
90
+ 'noavx',
91
+ 'arm64',
92
+ 'x64',
93
+ ];
94
+ const LOW_VRAM_PRIORITIES = [
95
+ 'cuda-cu13',
96
+ 'cuda-cu13.0',
97
+ 'cuda-cu12.4',
98
+ 'cuda-cu12.0',
99
+ 'cuda-cu11.7',
100
+ 'common_cpus',
101
+ 'cpu',
102
+ 'avx512',
103
+ 'avx2',
104
+ 'avx',
105
+ 'noavx',
106
+ 'arm64',
107
+ 'x64',
108
+ 'rocm',
109
+ 'vulkan',
110
+ ];
111
+ /**
112
+ * Best backend by category priority. CUDA tiers always lead (they carry no VRAM gate); with enough
113
+ * GPU memory ROCm and Vulkan come next, otherwise they rank below every CPU bucket. Within a
114
+ * category the newest build wins. No category matching → the first entry. Empty → `INVALID_ARGUMENT`.
115
+ */
116
+ export function prioritizeBackends(versionBackends, hasEnoughGpuMemory) {
117
+ if (versionBackends.length === 0)
118
+ throw new AtomicCoreError('INVALID_ARGUMENT', 'No backends available');
119
+ const priorities = hasEnoughGpuMemory ? GPU_FIRST_PRIORITIES : LOW_VRAM_PRIORITIES;
120
+ for (const category of priorities) {
121
+ const matching = versionBackends.filter((vb) => getBackendCategory(vb.backend) === category);
122
+ const best = matching.sort(compareBackendVersionsForSort)[0];
123
+ if (best) {
124
+ return {
125
+ backend_string: `${best.version}/${best.backend}`,
126
+ version: best.version,
127
+ backend_type: best.backend,
128
+ };
129
+ }
130
+ }
131
+ const fallback = versionBackends[0];
132
+ return {
133
+ backend_string: `${fallback.version}/${fallback.backend}`,
134
+ version: fallback.version,
135
+ backend_type: fallback.backend,
136
+ };
137
+ }
138
+ /**
139
+ * Newest `<version>/<backend>` whose normalised id equals `backendType` (so a legacy id and its
140
+ * current equivalent both match), or `null`. The original backend spelling is kept in the result.
141
+ */
142
+ export function findLatestVersionForBackend(versionBackends, backendType) {
143
+ const matching = versionBackends.filter((vb) => mapOldBackendToNew(vb.backend) === backendType);
144
+ const best = matching.sort(compareBackendVersionsForSort)[0];
145
+ return best ? `${best.version}/${best.backend}` : null;
146
+ }
147
+ /**
148
+ * Whether a newer build of the current backend's (normalised) type exists. `new_version` is `"0"`
149
+ * and `target_backend` `null` when nothing newer or nothing at all is listed.
150
+ */
151
+ export function checkBackendForUpdates(currentBackendString, versionBackends) {
152
+ const parts = currentBackendString.split('/');
153
+ if (parts.length !== 2) {
154
+ throw new AtomicCoreError('INVALID_ARGUMENT', `Invalid current backend format: ${currentBackendString}`);
155
+ }
156
+ const effectiveType = mapOldBackendToNew(parts[1] ?? '');
157
+ const target = findLatestVersionForBackend(versionBackends, effectiveType);
158
+ if (target === null || target === currentBackendString) {
159
+ return { update_needed: false, new_version: '0', target_backend: null };
160
+ }
161
+ return { update_needed: true, new_version: target.split('/')[0] ?? '', target_backend: target };
162
+ }
163
+ /**
164
+ * Smallest GPU worth moving a host off the CPU build for (MiB). Platform-neutral on purpose: ATO-464
165
+ * lowered Linux to 2 GiB with reasoning that is a property of the backend, and Windows kept an
166
+ * inline 6 GiB that told a 4 GB Radeon owner "CPU is optimal" while a 4 GB GeForce got CUDA.
167
+ */
168
+ export const GPU_BACKEND_MIN_VRAM_MIB = 2 * 1024;
169
+ export function hasEnoughGpuMemory(gpus) {
170
+ return gpus.some((g) => (g.total_memory ?? 0) >= GPU_BACKEND_MIN_VRAM_MIB);
171
+ }
172
+ /** `prioritizeBackends` under the VRAM gate; `''` for an empty catalog (app `determineBestBackend`). */
173
+ export function determineBestBackend(versionBackends, gpus) {
174
+ if (versionBackends.length === 0)
175
+ return '';
176
+ return prioritizeBackends(versionBackends, hasEnoughGpuMemory(gpus)).backend_string;
177
+ }
178
+ //# sourceMappingURL=categories.js.map