@atomic-chat/core 0.13.6 → 0.18.3

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 (460) hide show
  1. package/README.md +1 -1
  2. package/dist/app-daemon.js +9 -0
  3. package/dist/app-daemon.js.map +1 -1
  4. package/dist/backend/advisor/advisor.d.ts +8 -7
  5. package/dist/backend/advisor/advisor.js +17 -25
  6. package/dist/backend/advisor/advisor.js.map +1 -1
  7. package/dist/backend/catalog/index.d.ts +4 -2
  8. package/dist/backend/catalog/index.js +4 -2
  9. package/dist/backend/catalog/index.js.map +1 -1
  10. package/dist/backend/catalog/manifest.d.ts +5 -51
  11. package/dist/backend/catalog/manifest.js +5 -93
  12. package/dist/backend/catalog/manifest.js.map +1 -1
  13. package/dist/backend/catalog/upstream-releases-baseline.d.ts +2 -0
  14. package/dist/backend/catalog/upstream-releases-baseline.js +12 -0
  15. package/dist/backend/catalog/upstream-releases-baseline.js.map +1 -0
  16. package/dist/backend/catalog/upstream-releases-baseline.json +101 -0
  17. package/dist/backend/catalog/upstream-releases-catalog.d.ts +54 -0
  18. package/dist/backend/catalog/upstream-releases-catalog.js +148 -0
  19. package/dist/backend/catalog/upstream-releases-catalog.js.map +1 -0
  20. package/dist/backend/catalog/upstream-releases.d.ts +75 -0
  21. package/dist/backend/catalog/upstream-releases.js +155 -0
  22. package/dist/backend/catalog/upstream-releases.js.map +1 -0
  23. package/dist/backend/install/service.d.ts +7 -4
  24. package/dist/backend/install/service.js +4 -4
  25. package/dist/backend/install/service.js.map +1 -1
  26. package/dist/cli/commands/serve.js +10 -28
  27. package/dist/cli/commands/serve.js.map +1 -1
  28. package/dist/cli/main.d.ts +1 -1
  29. package/dist/cli/main.js +5 -1
  30. package/dist/cli/main.js.map +1 -1
  31. package/dist/client/control-client.d.ts +16 -19
  32. package/dist/client/control-client.js +24 -29
  33. package/dist/client/control-client.js.map +1 -1
  34. package/dist/cloud/registry.d.ts +14 -1
  35. package/dist/cloud/registry.js +74 -2
  36. package/dist/cloud/registry.js.map +1 -1
  37. package/dist/config/paths.d.ts +8 -3
  38. package/dist/config/paths.js +21 -9
  39. package/dist/config/paths.js.map +1 -1
  40. package/dist/contracts/diffusion.d.ts +45 -18
  41. package/dist/contracts/diffusion.js +1 -1
  42. package/dist/contracts/diffusion.js.map +1 -1
  43. package/dist/contracts/engine-builds.d.ts +1 -1
  44. package/dist/contracts/engine-builds.js +1 -1
  45. package/dist/contracts/engine-builds.js.map +1 -1
  46. package/dist/contracts/engines.d.ts +1 -1
  47. package/dist/contracts/engines.js +4 -0
  48. package/dist/contracts/engines.js.map +1 -1
  49. package/dist/contracts/errors.d.ts +8 -4
  50. package/dist/contracts/errors.js +16 -0
  51. package/dist/contracts/errors.js.map +1 -1
  52. package/dist/contracts/events.d.ts +18 -6
  53. package/dist/contracts/foundry-local.d.ts +77 -0
  54. package/dist/contracts/foundry-local.js +17 -0
  55. package/dist/contracts/foundry-local.js.map +1 -0
  56. package/dist/contracts/index.d.ts +2 -1
  57. package/dist/contracts/index.js +2 -1
  58. package/dist/contracts/index.js.map +1 -1
  59. package/dist/contracts/media.d.ts +186 -0
  60. package/dist/contracts/media.js +55 -0
  61. package/dist/contracts/media.js.map +1 -0
  62. package/dist/contracts/model-yml.d.ts +28 -0
  63. package/dist/contracts/model-yml.js +11 -0
  64. package/dist/contracts/model-yml.js.map +1 -1
  65. package/dist/contracts/session.d.ts +14 -1
  66. package/dist/contracts/session.js +10 -0
  67. package/dist/contracts/session.js.map +1 -1
  68. package/dist/contracts/settings.d.ts +40 -1
  69. package/dist/contracts/settings.js.map +1 -1
  70. package/dist/core/atomic-core.d.ts +5 -5
  71. package/dist/core/atomic-core.js.map +1 -1
  72. package/dist/core/create.js +149 -64
  73. package/dist/core/create.js.map +1 -1
  74. package/dist/core/managed-engines.js +2 -0
  75. package/dist/core/managed-engines.js.map +1 -1
  76. package/dist/core/prism.d.ts +21 -6
  77. package/dist/core/prism.js +44 -0
  78. package/dist/core/prism.js.map +1 -1
  79. package/dist/core/types.d.ts +9 -5
  80. package/dist/diffusion/gallery.d.ts +24 -3
  81. package/dist/diffusion/gallery.js +151 -21
  82. package/dist/diffusion/gallery.js.map +1 -1
  83. package/dist/diffusion/index.d.ts +3 -0
  84. package/dist/diffusion/index.js +3 -0
  85. package/dist/diffusion/index.js.map +1 -1
  86. package/dist/diffusion/install.d.ts +0 -4
  87. package/dist/diffusion/install.js +5 -2
  88. package/dist/diffusion/install.js.map +1 -1
  89. package/dist/diffusion/jobs.d.ts +6 -1
  90. package/dist/diffusion/jobs.js +6 -1
  91. package/dist/diffusion/jobs.js.map +1 -1
  92. package/dist/diffusion/media-header.d.ts +22 -0
  93. package/dist/diffusion/media-header.js +149 -0
  94. package/dist/diffusion/media-header.js.map +1 -0
  95. package/dist/diffusion/parse.d.ts +3 -1
  96. package/dist/diffusion/parse.js +36 -0
  97. package/dist/diffusion/parse.js.map +1 -1
  98. package/dist/diffusion/recipe.d.ts +10 -1
  99. package/dist/diffusion/recipe.js +85 -21
  100. package/dist/diffusion/recipe.js.map +1 -1
  101. package/dist/diffusion/remote-job.d.ts +76 -0
  102. package/dist/diffusion/remote-job.js +643 -0
  103. package/dist/diffusion/remote-job.js.map +1 -0
  104. package/dist/diffusion/remote-store.d.ts +38 -0
  105. package/dist/diffusion/remote-store.js +91 -0
  106. package/dist/diffusion/remote-store.js.map +1 -0
  107. package/dist/diffusion/server-process.d.ts +5 -2
  108. package/dist/diffusion/server-process.js +10 -2
  109. package/dist/diffusion/server-process.js.map +1 -1
  110. package/dist/diffusion/service.d.ts +9 -1
  111. package/dist/diffusion/service.js +49 -9
  112. package/dist/diffusion/service.js.map +1 -1
  113. package/dist/diffusion/state.d.ts +13 -1
  114. package/dist/diffusion/state.js +8 -0
  115. package/dist/diffusion/state.js.map +1 -1
  116. package/dist/diffusion/video-gallery.d.ts +11 -4
  117. package/dist/diffusion/video-gallery.js +62 -25
  118. package/dist/diffusion/video-gallery.js.map +1 -1
  119. package/dist/diffusion/video-history.js +4 -1
  120. package/dist/diffusion/video-history.js.map +1 -1
  121. package/dist/diffusion/video-recipe.js +58 -25
  122. package/dist/diffusion/video-recipe.js.map +1 -1
  123. package/dist/diffusion/wiring.d.ts +3 -0
  124. package/dist/diffusion/wiring.js +1 -0
  125. package/dist/diffusion/wiring.js.map +1 -1
  126. package/dist/downloads/archive.d.ts +1 -1
  127. package/dist/downloads/archive.js +2 -2
  128. package/dist/downloads/archive.js.map +1 -1
  129. package/dist/downloads/downloader.d.ts +1 -18
  130. package/dist/downloads/downloader.js +1 -45
  131. package/dist/downloads/downloader.js.map +1 -1
  132. package/dist/engine-builds/engines.d.ts +83 -0
  133. package/dist/engine-builds/engines.js +144 -0
  134. package/dist/engine-builds/engines.js.map +1 -0
  135. package/dist/engine-builds/foundry-local.d.ts +22 -0
  136. package/dist/engine-builds/foundry-local.js +100 -0
  137. package/dist/engine-builds/foundry-local.js.map +1 -0
  138. package/dist/engine-builds/manifest.d.ts +57 -6
  139. package/dist/engine-builds/manifest.js +109 -4
  140. package/dist/engine-builds/manifest.js.map +1 -1
  141. package/dist/engine-builds/order.d.ts +2 -1
  142. package/dist/engine-builds/order.js +11 -4
  143. package/dist/engine-builds/order.js.map +1 -1
  144. package/dist/engine-builds/select.d.ts +27 -0
  145. package/dist/engine-builds/select.js +45 -0
  146. package/dist/engine-builds/select.js.map +1 -1
  147. package/dist/engine-builds/service.d.ts +14 -15
  148. package/dist/engine-builds/service.js +68 -126
  149. package/dist/engine-builds/service.js.map +1 -1
  150. package/dist/engines/service.d.ts +6 -3
  151. package/dist/engines/service.js +6 -3
  152. package/dist/engines/service.js.map +1 -1
  153. package/dist/hardware/index.d.ts +1 -0
  154. package/dist/hardware/index.js +1 -0
  155. package/dist/hardware/index.js.map +1 -1
  156. package/dist/hardware/npu.d.ts +14 -0
  157. package/dist/hardware/npu.js +29 -0
  158. package/dist/hardware/npu.js.map +1 -0
  159. package/dist/integrations/detect.d.ts +2 -0
  160. package/dist/integrations/detect.js +4 -3
  161. package/dist/integrations/detect.js.map +1 -1
  162. package/dist/lock/instance-lock.js +5 -2
  163. package/dist/lock/instance-lock.js.map +1 -1
  164. package/dist/lock/process-identity.d.ts +9 -3
  165. package/dist/lock/process-identity.js +75 -9
  166. package/dist/lock/process-identity.js.map +1 -1
  167. package/dist/media/adapters/a1111.d.ts +32 -0
  168. package/dist/media/adapters/a1111.js +207 -0
  169. package/dist/media/adapters/a1111.js.map +1 -0
  170. package/dist/media/adapters/aimlapi-videos.d.ts +34 -0
  171. package/dist/media/adapters/aimlapi-videos.js +172 -0
  172. package/dist/media/adapters/aimlapi-videos.js.map +1 -0
  173. package/dist/media/adapters/dashscope-image.d.ts +26 -0
  174. package/dist/media/adapters/dashscope-image.js +160 -0
  175. package/dist/media/adapters/dashscope-image.js.map +1 -0
  176. package/dist/media/adapters/dashscope-video.d.ts +47 -0
  177. package/dist/media/adapters/dashscope-video.js +251 -0
  178. package/dist/media/adapters/dashscope-video.js.map +1 -0
  179. package/dist/media/adapters/gemini-image.d.ts +27 -0
  180. package/dist/media/adapters/gemini-image.js +181 -0
  181. package/dist/media/adapters/gemini-image.js.map +1 -0
  182. package/dist/media/adapters/gemini-veo.d.ts +39 -0
  183. package/dist/media/adapters/gemini-veo.js +196 -0
  184. package/dist/media/adapters/gemini-veo.js.map +1 -0
  185. package/dist/media/adapters/hf-images.d.ts +85 -0
  186. package/dist/media/adapters/hf-images.js +439 -0
  187. package/dist/media/adapters/hf-images.js.map +1 -0
  188. package/dist/media/adapters/hf-videos.d.ts +44 -0
  189. package/dist/media/adapters/hf-videos.js +265 -0
  190. package/dist/media/adapters/hf-videos.js.map +1 -0
  191. package/dist/media/adapters/minimax-image.d.ts +26 -0
  192. package/dist/media/adapters/minimax-image.js +111 -0
  193. package/dist/media/adapters/minimax-image.js.map +1 -0
  194. package/dist/media/adapters/minimax-video-v2.d.ts +34 -0
  195. package/dist/media/adapters/minimax-video-v2.js +191 -0
  196. package/dist/media/adapters/minimax-video-v2.js.map +1 -0
  197. package/dist/media/adapters/minimax-video.d.ts +28 -0
  198. package/dist/media/adapters/minimax-video.js +155 -0
  199. package/dist/media/adapters/minimax-video.js.map +1 -0
  200. package/dist/media/adapters/mistral-agent-image.d.ts +33 -0
  201. package/dist/media/adapters/mistral-agent-image.js +108 -0
  202. package/dist/media/adapters/mistral-agent-image.js.map +1 -0
  203. package/dist/media/adapters/nvidia-genai.d.ts +28 -0
  204. package/dist/media/adapters/nvidia-genai.js +182 -0
  205. package/dist/media/adapters/nvidia-genai.js.map +1 -0
  206. package/dist/media/adapters/openai-images.d.ts +23 -0
  207. package/dist/media/adapters/openai-images.js +164 -0
  208. package/dist/media/adapters/openai-images.js.map +1 -0
  209. package/dist/media/adapters/openai-videos.d.ts +34 -0
  210. package/dist/media/adapters/openai-videos.js +175 -0
  211. package/dist/media/adapters/openai-videos.js.map +1 -0
  212. package/dist/media/adapters/openrouter-images.d.ts +25 -0
  213. package/dist/media/adapters/openrouter-images.js +161 -0
  214. package/dist/media/adapters/openrouter-images.js.map +1 -0
  215. package/dist/media/adapters/openrouter-videos.d.ts +43 -0
  216. package/dist/media/adapters/openrouter-videos.js +208 -0
  217. package/dist/media/adapters/openrouter-videos.js.map +1 -0
  218. package/dist/media/adapters/registry.d.ts +7 -0
  219. package/dist/media/adapters/registry.js +45 -0
  220. package/dist/media/adapters/registry.js.map +1 -0
  221. package/dist/media/adapters/types.d.ts +133 -0
  222. package/dist/media/adapters/types.js +15 -0
  223. package/dist/media/adapters/types.js.map +1 -0
  224. package/dist/media/adapters/xai-images.d.ts +19 -0
  225. package/dist/media/adapters/xai-images.js +83 -0
  226. package/dist/media/adapters/xai-images.js.map +1 -0
  227. package/dist/media/adapters/xai-videos.d.ts +29 -0
  228. package/dist/media/adapters/xai-videos.js +148 -0
  229. package/dist/media/adapters/xai-videos.js.map +1 -0
  230. package/dist/media/catalog-baseline.d.ts +2 -0
  231. package/dist/media/catalog-baseline.js +10 -0
  232. package/dist/media/catalog-baseline.js.map +1 -0
  233. package/dist/media/catalog-baseline.json +1819 -0
  234. package/dist/media/catalog-service.d.ts +42 -0
  235. package/dist/media/catalog-service.js +111 -0
  236. package/dist/media/catalog-service.js.map +1 -0
  237. package/dist/media/catalog.d.ts +50 -0
  238. package/dist/media/catalog.js +315 -0
  239. package/dist/media/catalog.js.map +1 -0
  240. package/dist/media/http.d.ts +125 -0
  241. package/dist/media/http.js +308 -0
  242. package/dist/media/http.js.map +1 -0
  243. package/dist/media/index.d.ts +14 -0
  244. package/dist/media/index.js +15 -0
  245. package/dist/media/index.js.map +1 -0
  246. package/dist/media/mask.d.ts +12 -0
  247. package/dist/media/mask.js +57 -0
  248. package/dist/media/mask.js.map +1 -0
  249. package/dist/media/service.d.ts +42 -0
  250. package/dist/media/service.js +144 -0
  251. package/dist/media/service.js.map +1 -0
  252. package/dist/models/hf.d.ts +3 -16
  253. package/dist/models/hf.js +4 -42
  254. package/dist/models/hf.js.map +1 -1
  255. package/dist/router/resolve.d.ts +15 -4
  256. package/dist/router/resolve.js +26 -3
  257. package/dist/router/resolve.js.map +1 -1
  258. package/dist/runtime/environment/linux-provisioner.js +7 -67
  259. package/dist/runtime/environment/linux-provisioner.js.map +1 -1
  260. package/dist/runtime/environment/runtime-removal-plan.d.ts +19 -0
  261. package/dist/runtime/environment/runtime-removal-plan.js +74 -0
  262. package/dist/runtime/environment/runtime-removal-plan.js.map +1 -0
  263. package/dist/runtime/environment/windows-provisioner.js +20 -4
  264. package/dist/runtime/environment/windows-provisioner.js.map +1 -1
  265. package/dist/runtime/foundry-local/accelerators.d.ts +42 -0
  266. package/dist/runtime/foundry-local/accelerators.js +153 -0
  267. package/dist/runtime/foundry-local/accelerators.js.map +1 -0
  268. package/dist/runtime/foundry-local/check.d.ts +19 -0
  269. package/dist/runtime/foundry-local/check.js +69 -0
  270. package/dist/runtime/foundry-local/check.js.map +1 -0
  271. package/dist/runtime/foundry-local/host/args.d.ts +44 -0
  272. package/dist/runtime/foundry-local/host/args.js +109 -0
  273. package/dist/runtime/foundry-local/host/args.js.map +1 -0
  274. package/dist/runtime/foundry-local/host/execution-providers.d.ts +27 -0
  275. package/dist/runtime/foundry-local/host/execution-providers.js +43 -0
  276. package/dist/runtime/foundry-local/host/execution-providers.js.map +1 -0
  277. package/dist/runtime/foundry-local/host/ffi-bun.d.ts +17 -0
  278. package/dist/runtime/foundry-local/host/ffi-bun.js +256 -0
  279. package/dist/runtime/foundry-local/host/ffi-bun.js.map +1 -0
  280. package/dist/runtime/foundry-local/host/library.d.ts +61 -0
  281. package/dist/runtime/foundry-local/host/library.js +17 -0
  282. package/dist/runtime/foundry-local/host/library.js.map +1 -0
  283. package/dist/runtime/foundry-local/host/run.d.ts +54 -0
  284. package/dist/runtime/foundry-local/host/run.js +316 -0
  285. package/dist/runtime/foundry-local/host/run.js.map +1 -0
  286. package/dist/runtime/foundry-local/host-process.d.ts +78 -0
  287. package/dist/runtime/foundry-local/host-process.js +182 -0
  288. package/dist/runtime/foundry-local/host-process.js.map +1 -0
  289. package/dist/runtime/foundry-local/index.d.ts +11 -0
  290. package/dist/runtime/foundry-local/index.js +11 -0
  291. package/dist/runtime/foundry-local/index.js.map +1 -0
  292. package/dist/runtime/foundry-local/model-yml.d.ts +8 -0
  293. package/dist/runtime/foundry-local/model-yml.js +63 -0
  294. package/dist/runtime/foundry-local/model-yml.js.map +1 -0
  295. package/dist/runtime/foundry-local/runtime.d.ts +88 -0
  296. package/dist/runtime/foundry-local/runtime.js +321 -0
  297. package/dist/runtime/foundry-local/runtime.js.map +1 -0
  298. package/dist/runtime/llamacpp/args.d.ts +5 -0
  299. package/dist/runtime/llamacpp/args.js +7 -1
  300. package/dist/runtime/llamacpp/args.js.map +1 -1
  301. package/dist/runtime/llamacpp/errors.d.ts +1 -0
  302. package/dist/runtime/llamacpp/errors.js +10 -0
  303. package/dist/runtime/llamacpp/errors.js.map +1 -1
  304. package/dist/runtime/llamacpp/load-plan.d.ts +5 -0
  305. package/dist/runtime/llamacpp/load-plan.js +8 -0
  306. package/dist/runtime/llamacpp/load-plan.js.map +1 -1
  307. package/dist/runtime/llamacpp/runtime-device.d.ts +8 -0
  308. package/dist/runtime/llamacpp/runtime-device.js +9 -3
  309. package/dist/runtime/llamacpp/runtime-device.js.map +1 -1
  310. package/dist/runtime/llamacpp/runtime.d.ts +6 -1
  311. package/dist/runtime/llamacpp/runtime.js +19 -3
  312. package/dist/runtime/llamacpp/runtime.js.map +1 -1
  313. package/dist/runtime/managed-engines/spec.d.ts +2 -2
  314. package/dist/runtime/managed-engines/spec.js +6 -0
  315. package/dist/runtime/managed-engines/spec.js.map +1 -1
  316. package/dist/runtime/managed-models/compatibility.d.ts +10 -0
  317. package/dist/runtime/managed-models/compatibility.js +18 -0
  318. package/dist/runtime/managed-models/compatibility.js.map +1 -1
  319. package/dist/runtime/managed-text/gateway.d.ts +2 -0
  320. package/dist/runtime/managed-text/gateway.js +1 -1
  321. package/dist/runtime/managed-text/gateway.js.map +1 -1
  322. package/dist/runtime/managed-text/request-rules.d.ts +9 -7
  323. package/dist/runtime/managed-text/request-rules.js +58 -2
  324. package/dist/runtime/managed-text/request-rules.js.map +1 -1
  325. package/dist/runtime/managed-text/setting-values.d.ts +9 -0
  326. package/dist/runtime/managed-text/setting-values.js +44 -0
  327. package/dist/runtime/managed-text/setting-values.js.map +1 -0
  328. package/dist/runtime/sglang/adapter.d.ts +50 -0
  329. package/dist/runtime/sglang/adapter.js +393 -0
  330. package/dist/runtime/sglang/adapter.js.map +1 -0
  331. package/dist/runtime/sglang/engine.d.ts +16 -0
  332. package/dist/runtime/sglang/engine.js +38 -0
  333. package/dist/runtime/sglang/engine.js.map +1 -0
  334. package/dist/runtime/sglang/index.d.ts +11 -0
  335. package/dist/runtime/sglang/index.js +12 -0
  336. package/dist/runtime/sglang/index.js.map +1 -0
  337. package/dist/runtime/sglang/memory.d.ts +64 -0
  338. package/dist/runtime/sglang/memory.js +90 -0
  339. package/dist/runtime/sglang/memory.js.map +1 -0
  340. package/dist/runtime/sglang/settings.d.ts +49 -0
  341. package/dist/runtime/sglang/settings.js +118 -0
  342. package/dist/runtime/sglang/settings.js.map +1 -0
  343. package/dist/runtime/shared/external-sessions.js +2 -0
  344. package/dist/runtime/shared/external-sessions.js.map +1 -1
  345. package/dist/runtime/shared/process.d.ts +13 -1
  346. package/dist/runtime/shared/process.js +21 -12
  347. package/dist/runtime/shared/process.js.map +1 -1
  348. package/dist/runtime/vllm/adapter.js +2 -47
  349. package/dist/runtime/vllm/adapter.js.map +1 -1
  350. package/dist/runtime/vllm/memory.js +3 -16
  351. package/dist/runtime/vllm/memory.js.map +1 -1
  352. package/dist/runtime/vllm/settings.d.ts +7 -0
  353. package/dist/runtime/vllm/settings.js +2 -30
  354. package/dist/runtime/vllm/settings.js.map +1 -1
  355. package/dist/server/control/router.js +6 -3
  356. package/dist/server/control/router.js.map +1 -1
  357. package/dist/server/control/routes/foundry-local.d.ts +10 -0
  358. package/dist/server/control/routes/foundry-local.js +42 -0
  359. package/dist/server/control/routes/foundry-local.js.map +1 -0
  360. package/dist/server/control/routes/media.d.ts +9 -0
  361. package/dist/server/control/routes/media.js +24 -0
  362. package/dist/server/control/routes/media.js.map +1 -0
  363. package/dist/server/control/routes/model-compatibility.d.ts +9 -0
  364. package/dist/server/control/routes/model-compatibility.js +31 -0
  365. package/dist/server/control/routes/model-compatibility.js.map +1 -0
  366. package/dist/server/control/routes/models.js +3 -1
  367. package/dist/server/control/routes/models.js.map +1 -1
  368. package/dist/server/control/types.d.ts +30 -20
  369. package/dist/server/control/types.js.map +1 -1
  370. package/dist/server/http.js +17 -2
  371. package/dist/server/http.js.map +1 -1
  372. package/dist/server/public/errors.d.ts +1 -0
  373. package/dist/server/public/errors.js +18 -0
  374. package/dist/server/public/errors.js.map +1 -1
  375. package/dist/server/public/images-params.js +18 -1
  376. package/dist/server/public/images-params.js.map +1 -1
  377. package/dist/server/public/images.d.ts +11 -2
  378. package/dist/server/public/images.js +73 -9
  379. package/dist/server/public/images.js.map +1 -1
  380. package/dist/server/public/index.js +7 -1
  381. package/dist/server/public/index.js.map +1 -1
  382. package/dist/server/public/listing.js +2 -0
  383. package/dist/server/public/listing.js.map +1 -1
  384. package/dist/server/public/remote-media.d.ts +51 -0
  385. package/dist/server/public/remote-media.js +225 -0
  386. package/dist/server/public/remote-media.js.map +1 -0
  387. package/dist/server/public/responses.js +4 -2
  388. package/dist/server/public/responses.js.map +1 -1
  389. package/dist/server/public/static-assets.generated.js +1 -1
  390. package/dist/server/public/static-assets.generated.js.map +1 -1
  391. package/dist/server/public/trace.js +2 -0
  392. package/dist/server/public/trace.js.map +1 -1
  393. package/dist/server/public/types.d.ts +5 -1
  394. package/dist/server/public/videos-params.js +13 -3
  395. package/dist/server/public/videos-params.js.map +1 -1
  396. package/dist/server/public/videos.d.ts +1 -0
  397. package/dist/server/public/videos.js +21 -3
  398. package/dist/server/public/videos.js.map +1 -1
  399. package/dist/settings/schema/foundry-local.json +14 -0
  400. package/dist/settings/schema/llamacpp-upstream.json +9 -0
  401. package/dist/settings/schema/sglang.json +251 -0
  402. package/dist/settings/schema.js +35 -1
  403. package/dist/settings/schema.js.map +1 -1
  404. package/dist/version.d.ts +1 -1
  405. package/dist/version.js +1 -1
  406. package/package.json +2 -5
  407. package/src/settings/schema/foundry-local.json +14 -0
  408. package/src/settings/schema/llamacpp-upstream.json +9 -0
  409. package/src/settings/schema/sglang.json +251 -0
  410. package/dist/backend/catalog/bundled-manifest-baseline.d.ts +0 -2
  411. package/dist/backend/catalog/bundled-manifest-baseline.js +0 -65
  412. package/dist/backend/catalog/bundled-manifest-baseline.js.map +0 -1
  413. package/dist/contracts/model-setup.d.ts +0 -115
  414. package/dist/contracts/model-setup.js +0 -33
  415. package/dist/contracts/model-setup.js.map +0 -1
  416. package/dist/core/model-setup/index.d.ts +0 -4
  417. package/dist/core/model-setup/index.js +0 -5
  418. package/dist/core/model-setup/index.js.map +0 -1
  419. package/dist/core/model-setup/plan.d.ts +0 -56
  420. package/dist/core/model-setup/plan.js +0 -158
  421. package/dist/core/model-setup/plan.js.map +0 -1
  422. package/dist/core/model-setup/service.d.ts +0 -92
  423. package/dist/core/model-setup/service.js +0 -329
  424. package/dist/core/model-setup/service.js.map +0 -1
  425. package/dist/core/model-setup/store.d.ts +0 -29
  426. package/dist/core/model-setup/store.js +0 -116
  427. package/dist/core/model-setup/store.js.map +0 -1
  428. package/dist/core/model-setup/wiring.d.ts +0 -59
  429. package/dist/core/model-setup/wiring.js +0 -132
  430. package/dist/core/model-setup/wiring.js.map +0 -1
  431. package/dist/core/tensorrt-llm.d.ts +0 -169
  432. package/dist/core/tensorrt-llm.js +0 -428
  433. package/dist/core/tensorrt-llm.js.map +0 -1
  434. package/dist/downloads/segmented.d.ts +0 -40
  435. package/dist/downloads/segmented.js +0 -170
  436. package/dist/downloads/segmented.js.map +0 -1
  437. package/dist/runtime/tensorrt-llm/delete.d.ts +0 -15
  438. package/dist/runtime/tensorrt-llm/delete.js +0 -60
  439. package/dist/runtime/tensorrt-llm/delete.js.map +0 -1
  440. package/dist/runtime/tensorrt-llm/guest-files.d.ts +0 -8
  441. package/dist/runtime/tensorrt-llm/guest-files.js +0 -49
  442. package/dist/runtime/tensorrt-llm/guest-files.js.map +0 -1
  443. package/dist/runtime/tensorrt-llm/location.d.ts +0 -20
  444. package/dist/runtime/tensorrt-llm/location.js +0 -48
  445. package/dist/runtime/tensorrt-llm/location.js.map +0 -1
  446. package/dist/runtime/tensorrt-llm/model-dir.d.ts +0 -38
  447. package/dist/runtime/tensorrt-llm/model-dir.js +0 -137
  448. package/dist/runtime/tensorrt-llm/model-dir.js.map +0 -1
  449. package/dist/runtime/tensorrt-llm/quant-format.d.ts +0 -65
  450. package/dist/runtime/tensorrt-llm/quant-format.js +0 -189
  451. package/dist/runtime/tensorrt-llm/quant-format.js.map +0 -1
  452. package/dist/runtime/tensorrt-llm/registry.d.ts +0 -26
  453. package/dist/runtime/tensorrt-llm/registry.js +0 -68
  454. package/dist/runtime/tensorrt-llm/registry.js.map +0 -1
  455. package/dist/runtime/tensorrt-llm/runtime.d.ts +0 -130
  456. package/dist/runtime/tensorrt-llm/runtime.js +0 -395
  457. package/dist/runtime/tensorrt-llm/runtime.js.map +0 -1
  458. package/dist/server/control/routes/model-setups.d.ts +0 -11
  459. package/dist/server/control/routes/model-setups.js +0 -55
  460. package/dist/server/control/routes/model-setups.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-process.js","sourceRoot":"","sources":["../../../src/runtime/foundry-local/host-process.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The `foundry-local` provider (openspec change `add-foundry-local`): the core's side of the
3
+ * `foundry-host` protocol for now; the runtime, the host mode and the accelerators follow.
4
+ */
5
+ export * from './host-process.js';
6
+ export * from './model-yml.js';
7
+ export { lineIo, loadLibraryWithBun, runFoundryHost } from './host/run.js';
8
+ export type { FoundryHostDeps } from './host/run.js';
9
+ export * from './runtime.js';
10
+ export * from './accelerators.js';
11
+ export * from './check.js';
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The `foundry-local` provider (openspec change `add-foundry-local`): the core's side of the
3
+ * `foundry-host` protocol for now; the runtime, the host mode and the accelerators follow.
4
+ */
5
+ export * from './host-process.js';
6
+ export * from './model-yml.js';
7
+ export { lineIo, loadLibraryWithBun, runFoundryHost } from './host/run.js';
8
+ export * from './runtime.js';
9
+ export * from './accelerators.js';
10
+ export * from './check.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/foundry-local/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE1E,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * The `foundry_local` block of a Foundry Local model's `model.yml` (openspec change
3
+ * `add-foundry-local`, task 6.2). The core never writes it — the app's installer does — and reads it
4
+ * strictly: an accelerator or device this core does not know is a variant it cannot run
5
+ * (`FOUNDRY_LOCAL_VARIANT_UNSUPPORTED`), anything else malformed is a broken file (`MODEL_LOAD_FAILED`).
6
+ */
7
+ import type { ModelYmlFoundryLocal } from '../../contracts/index.js';
8
+ export declare function readFoundryLocalBlock(doc: Record<string, unknown>): ModelYmlFoundryLocal;
@@ -0,0 +1,63 @@
1
+ /**
2
+ * The `foundry_local` block of a Foundry Local model's `model.yml` (openspec change
3
+ * `add-foundry-local`, task 6.2). The core never writes it — the app's installer does — and reads it
4
+ * strictly: an accelerator or device this core does not know is a variant it cannot run
5
+ * (`FOUNDRY_LOCAL_VARIANT_UNSUPPORTED`), anything else malformed is a broken file (`MODEL_LOAD_FAILED`).
6
+ */
7
+ import { AtomicCoreError, FOUNDRY_LOCAL_DEVICES, FOUNDRY_LOCAL_EXECUTION_PROVIDERS, } from '../../contracts/index.js';
8
+ const broken = (why) => new AtomicCoreError('MODEL_LOAD_FAILED', `model.yml: foundry_local ${why}.`);
9
+ const text = (block, key) => {
10
+ const value = block[key];
11
+ if (typeof value !== 'string' || value.trim() === '')
12
+ throw broken(`has no ${key}`);
13
+ return value;
14
+ };
15
+ const optionalText = (block, key) => {
16
+ const value = block[key];
17
+ if (value === undefined)
18
+ return undefined;
19
+ if (typeof value !== 'string' || value === '')
20
+ throw broken(`has a ${key} that is not text`);
21
+ return value;
22
+ };
23
+ const flag = (block, key) => {
24
+ const value = block[key];
25
+ if (value === undefined)
26
+ return false;
27
+ if (typeof value !== 'boolean')
28
+ throw broken(`has a ${key} that is not true or false`);
29
+ return value;
30
+ };
31
+ export function readFoundryLocalBlock(doc) {
32
+ const raw = doc['foundry_local'];
33
+ if (raw === null || typeof raw !== 'object' || Array.isArray(raw))
34
+ throw broken('is missing');
35
+ const block = raw;
36
+ const executionProvider = text(block, 'execution_provider');
37
+ if (!FOUNDRY_LOCAL_EXECUTION_PROVIDERS.some((known) => known === executionProvider))
38
+ throw new AtomicCoreError('FOUNDRY_LOCAL_VARIANT_UNSUPPORTED', `This core does not run Foundry Local variants on the "${executionProvider}" accelerator.`);
39
+ const device = text(block, 'device');
40
+ if (!FOUNDRY_LOCAL_DEVICES.some((known) => known === device))
41
+ throw new AtomicCoreError('FOUNDRY_LOCAL_VARIANT_UNSUPPORTED', `This core does not run Foundry Local variants on a "${device}" device.`);
42
+ const context = block['context_length'];
43
+ if (context !== undefined && (typeof context !== 'number' || !Number.isSafeInteger(context) || context < 1))
44
+ throw broken('has a context_length that is not a positive whole number');
45
+ const assetId = optionalText(block, 'asset_id');
46
+ const assetVersion = optionalText(block, 'asset_version');
47
+ const reasoningStart = optionalText(block, 'reasoning_start');
48
+ const reasoningEnd = optionalText(block, 'reasoning_end');
49
+ return {
50
+ model_id: text(block, 'model_id'),
51
+ variant_id: text(block, 'variant_id'),
52
+ execution_provider: executionProvider,
53
+ device: device,
54
+ ...(assetId !== undefined ? { asset_id: assetId } : {}),
55
+ ...(assetVersion !== undefined ? { asset_version: assetVersion } : {}),
56
+ ...(context !== undefined ? { context_length: context } : {}),
57
+ tools: flag(block, 'tools'),
58
+ reasoning: flag(block, 'reasoning'),
59
+ ...(reasoningStart !== undefined ? { reasoning_start: reasoningStart } : {}),
60
+ ...(reasoningEnd !== undefined ? { reasoning_end: reasoningEnd } : {}),
61
+ };
62
+ }
63
+ //# sourceMappingURL=model-yml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-yml.js","sourceRoot":"","sources":["../../../src/runtime/foundry-local/model-yml.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * The `foundry-local` provider's sessions (openspec change `add-foundry-local`, task 6.3, design D5):
3
+ * one `foundry-host serve` process per model — this very binary in its hidden mode — on the sidecar
4
+ * table MLX and Foundation Models use, behind the session gateway the managed engines use.
5
+ *
6
+ * load = model.yml → the variant runs on this platform → its accelerator is prepared → the active
7
+ * build → [GPU claim, for CUDA and WebGPU] → host on a random loopback port → readiness
8
+ * line → gateway (key + Host) → session on the gateway's port
9
+ *
10
+ * Foundry Local's built-in server has no authentication and serves the local catalog under
11
+ * `/catalogs/local` with models named `<name>:<version>` (spike, rulings S1 finding 7): the gateway
12
+ * holds the key, adds the prefix and renames the model both ways, so a client sees the core's model id.
13
+ */
14
+ import type { ModelYmlFoundryLocal, SessionInfo, UnloadResult } from '../../contracts/index.js';
15
+ import type { DataLayout } from '../../config/index.js';
16
+ import type { EngineHost } from '../../engine-builds/service.js';
17
+ import type { ProcessJournal } from '../../lock/index.js';
18
+ import type { ModelRegistry } from '../../models/index.js';
19
+ import type { ManagedRoute } from '../managed-text/index.js';
20
+ import type { CtxIncreaseResult, EmitFn, GpuClaimHook, GpuOccupancy, LocalLoadOptions, LocalRuntime, RecreateResult, SessionRoutePolicy } from '../shared/index.js';
21
+ import { spawnAndAwaitReady } from '../shared/index.js';
22
+ import type { BackendOutputSink } from '../shared/index.js';
23
+ import type { FoundryHostCommand } from './host-process.js';
24
+ /** The settings' `timeout` default, in seconds: registering, building the ORT session, compiling (OpenVINO). */
25
+ export declare const FOUNDRY_LOCAL_DEFAULT_TIMEOUT_SECS = 600;
26
+ /** What a Foundry Local session serves (design D5); anything else is refused before it reaches the host. */
27
+ export declare const FOUNDRY_LOCAL_ROUTES: readonly ManagedRoute[];
28
+ /**
29
+ * The accelerators each platform runs variants on (spec "Провайдер регистрируется только на
30
+ * поддерживаемых платформах"). Which of them this machine actually has is the probe's answer (6.4).
31
+ */
32
+ export declare function variantRunsOn(platform: NodeJS.Platform, arch: string, ep: ModelYmlFoundryLocal['execution_provider']): boolean;
33
+ /** The registration id the host serves the model under: `<name>:<version>`, one segment. */
34
+ export declare function registrationId(modelId: string): string;
35
+ export interface FoundryLocalRuntimeOptions {
36
+ layout: DataLayout;
37
+ registry: ModelRegistry;
38
+ instanceId: string;
39
+ platform: NodeJS.Platform;
40
+ arch: string;
41
+ /** This binary in its `foundry-host` mode (`foundryHostCommand`). */
42
+ hostCommand: FoundryHostCommand;
43
+ /** The active build's directory (engine-builds), or nothing installed. */
44
+ resolveBuild: () => Promise<string | undefined>;
45
+ /** The accelerators core recorded as prepared (`accelerators.json`, task 6.4). */
46
+ preparedAccelerators: () => Promise<readonly string[]>;
47
+ /** The same live trusted-hosts list `:1337` and the managed gateways use. */
48
+ trustedHosts: string[];
49
+ /** The `foundry-local` provider settings, re-read per load. */
50
+ readSettings: () => Promise<Record<string, unknown>>;
51
+ journal?: ProcessJournal | undefined;
52
+ emit?: EmitFn;
53
+ baseEnv?: NodeJS.ProcessEnv;
54
+ backendOutput?: BackendOutputSink;
55
+ log?: (level: 'debug' | 'info' | 'warn' | 'error', message: string) => void;
56
+ /** GPU residency (spec `gpu-residency`): CUDA and WebGPU variants hold every card. */
57
+ claimGpu?: GpuClaimHook | undefined;
58
+ /** Test seam. */
59
+ spawn?: typeof spawnAndAwaitReady;
60
+ }
61
+ export declare class FoundryLocalRuntime implements LocalRuntime {
62
+ private readonly options;
63
+ private readonly table;
64
+ private readonly emit;
65
+ /** Loads past their GPU claim and not yet a session. */
66
+ private readonly claimed;
67
+ /** The `foundry-local` model registry this runtime reads (`<data>/foundry-local/models`). */
68
+ get registry(): ModelRegistry;
69
+ constructor(options: FoundryLocalRuntimeOptions);
70
+ list(): SessionInfo[];
71
+ findSession(modelId: string): SessionInfo | undefined;
72
+ getLoadedModels(): string[];
73
+ isLoading(modelId: string): boolean;
74
+ /** CUDA and WebGPU sessions hold every card (the library picks one we cannot name); NPU and CPU none. */
75
+ gpuOccupancy(): GpuOccupancy[];
76
+ /** What the engine-builds module needs: the load queue, and the builds sessions run from (design D2). */
77
+ engineHost(): EngineHost;
78
+ routePolicy(modelId: string): SessionRoutePolicy | undefined;
79
+ load(modelId: string, opts?: LocalLoadOptions): Promise<SessionInfo>;
80
+ private start;
81
+ private startHost;
82
+ /** Waits for the host to exit (spec "Выгрузка"); the gateway goes with it. */
83
+ unload(modelId: string): Promise<UnloadResult>;
84
+ /** The context is the variant's own: nothing to grow. */
85
+ autoIncreaseCtx(modelId: string): Promise<CtxIncreaseResult>;
86
+ recreateSession(modelId: string): Promise<RecreateResult>;
87
+ shutdown(): Promise<void>;
88
+ }
@@ -0,0 +1,321 @@
1
+ /**
2
+ * The `foundry-local` provider's sessions (openspec change `add-foundry-local`, task 6.3, design D5):
3
+ * one `foundry-host serve` process per model — this very binary in its hidden mode — on the sidecar
4
+ * table MLX and Foundation Models use, behind the session gateway the managed engines use.
5
+ *
6
+ * load = model.yml → the variant runs on this platform → its accelerator is prepared → the active
7
+ * build → [GPU claim, for CUDA and WebGPU] → host on a random loopback port → readiness
8
+ * line → gateway (key + Host) → session on the gateway's port
9
+ *
10
+ * Foundry Local's built-in server has no authentication and serves the local catalog under
11
+ * `/catalogs/local` with models named `<name>:<version>` (spike, rulings S1 finding 7): the gateway
12
+ * holds the key, adds the prefix and renames the model both ways, so a client sees the core's model id.
13
+ */
14
+ import { randomUUID } from 'node:crypto';
15
+ import { join } from 'node:path';
16
+ import { AtomicCoreError } from '../../contracts/index.js';
17
+ import { generateGatewayKey, startManagedGateway } from '../managed-text/index.js';
18
+ import { backendOutputReporter, randomFreePort, SidecarTable, spawnAndAwaitReady, throwIfLoadCancelled, } from '../shared/index.js';
19
+ import { executionProvider } from './host/execution-providers.js';
20
+ import { LOCAL_CATALOG_BASE_PATH } from './host/run.js';
21
+ import { readFoundryLocalBlock } from './model-yml.js';
22
+ /** The settings' `timeout` default, in seconds: registering, building the ORT session, compiling (OpenVINO). */
23
+ export const FOUNDRY_LOCAL_DEFAULT_TIMEOUT_SECS = 600;
24
+ /** What a Foundry Local session serves (design D5); anything else is refused before it reaches the host. */
25
+ export const FOUNDRY_LOCAL_ROUTES = [
26
+ { method: 'POST', path: '/v1/chat/completions' },
27
+ { method: 'GET', path: '/v1/models' },
28
+ ];
29
+ const CHAT_ROUTE = '/v1/chat/completions';
30
+ /**
31
+ * The accelerators each platform runs variants on (spec "Провайдер регистрируется только на
32
+ * поддерживаемых платформах"). Which of them this machine actually has is the probe's answer (6.4).
33
+ */
34
+ export function variantRunsOn(platform, arch, ep) {
35
+ if (ep === 'cpu')
36
+ return true;
37
+ if (platform === 'win32')
38
+ return true;
39
+ if (platform === 'darwin')
40
+ return ep === 'webgpu';
41
+ if (platform === 'linux')
42
+ return arch === 'x64' && ep === 'cuda';
43
+ return false;
44
+ }
45
+ /** The registration id the host serves the model under: `<name>:<version>`, one segment. */
46
+ export function registrationId(modelId) {
47
+ return `${modelId.replace(/[^A-Za-z0-9._-]+/g, '-')}:1`;
48
+ }
49
+ /** The host's exit codes (`host/run.ts`) as the core's errors. */
50
+ function hostError(exitCode, stderr) {
51
+ const said = stderr.trim().split('\n').slice(-5).join('\n');
52
+ if (exitCode === 5)
53
+ return new AtomicCoreError('FOUNDRY_LOCAL_ACCELERATOR_NOT_PREPARED', 'The accelerator of this model is not prepared; prepare it on the Foundry Local page first.', said);
54
+ return new AtomicCoreError('FOUNDRY_LOCAL_HOST_ERROR', exitCode === 3
55
+ ? 'The Foundry Local library does not load on this computer.'
56
+ : 'The Foundry Local host stopped before the model was ready.', said || `exit code ${String(exitCode)}`);
57
+ }
58
+ export class FoundryLocalRuntime {
59
+ options;
60
+ table;
61
+ emit;
62
+ /** Loads past their GPU claim and not yet a session. */
63
+ claimed = new Map();
64
+ /** The `foundry-local` model registry this runtime reads (`<data>/foundry-local/models`). */
65
+ get registry() {
66
+ return this.options.registry;
67
+ }
68
+ constructor(options) {
69
+ this.options = options;
70
+ this.emit = options.emit ?? (() => { });
71
+ this.table = new SidecarTable({
72
+ provider: 'foundry-local',
73
+ instanceId: options.instanceId,
74
+ journal: options.journal,
75
+ emit: this.emit,
76
+ engine: 'Foundry Local',
77
+ // Manager_Shutdown stops generations and unloads the model; a large model takes a moment.
78
+ unloadGraceMs: 15_000,
79
+ shutdownGraceMs: 5_000,
80
+ describeExit: (exit, stderr) => `The Foundry Local host exited (${exit.code !== null ? `code ${exit.code}` : `signal ${String(exit.signal)}`})${stderr.trim() ? `: ${stderr.trim().split('\n').slice(-3).join(' ')}` : ''}`,
81
+ });
82
+ }
83
+ list() {
84
+ return this.table.list();
85
+ }
86
+ findSession(modelId) {
87
+ return this.table.findSession(modelId);
88
+ }
89
+ getLoadedModels() {
90
+ return this.table.getLoadedModels();
91
+ }
92
+ isLoading(modelId) {
93
+ return this.table.isLoading(modelId);
94
+ }
95
+ /** CUDA and WebGPU sessions hold every card (the library picks one we cannot name); NPU and CPU none. */
96
+ gpuOccupancy() {
97
+ const cards = (block) => block.execution_provider === 'cuda' || block.execution_provider === 'webgpu' ? 'all' : [];
98
+ const ready = this.table.getLoadedModels().flatMap((modelId) => {
99
+ const session = this.table.get(modelId);
100
+ return session
101
+ ? [{ model_id: modelId, cards: cards(session.extra.block), auxiliary: false, state: 'ready' }]
102
+ : [];
103
+ });
104
+ const loading = [...this.claimed.values()].filter((claim) => !this.table.findSession(claim.model_id));
105
+ return [...ready, ...loading];
106
+ }
107
+ /** What the engine-builds module needs: the load queue, and the builds sessions run from (design D2). */
108
+ engineHost() {
109
+ return {
110
+ exclusive: (fn) => this.table.exclusive(fn),
111
+ inUse: async () => [
112
+ ...new Set(this.table.getLoadedModels().flatMap((modelId) => {
113
+ const build = this.table.get(modelId)?.extra.build;
114
+ return build ? [build] : [];
115
+ })),
116
+ ],
117
+ activate: async (dir) => {
118
+ for (const modelId of this.table.getLoadedModels())
119
+ if (this.table.get(modelId)?.extra.build !== dir)
120
+ await this.unload(modelId);
121
+ },
122
+ };
123
+ }
124
+ routePolicy(modelId) {
125
+ const session = this.table.get(modelId);
126
+ if (!session)
127
+ return undefined;
128
+ const { block } = session.extra;
129
+ return {
130
+ routes: FOUNDRY_LOCAL_ROUTES,
131
+ tools: block.tools,
132
+ structuredOutput: false,
133
+ mapError: () => null,
134
+ ...(block.context_length !== undefined ? { contextLength: block.context_length } : {}),
135
+ };
136
+ }
137
+ async load(modelId, opts = {}) {
138
+ this.table.assertRunning();
139
+ return this.table.load(modelId, () => this.start(modelId, opts), opts.signal);
140
+ }
141
+ async start(modelId, opts) {
142
+ throwIfLoadCancelled(opts.signal);
143
+ const registry = this.options.registry;
144
+ const yml = await registry.read(modelId);
145
+ const block = readFoundryLocalBlock(yml);
146
+ const ep = executionProvider(block.execution_provider);
147
+ if (!variantRunsOn(this.options.platform, this.options.arch, block.execution_provider))
148
+ throw new AtomicCoreError('FOUNDRY_LOCAL_VARIANT_UNSUPPORTED', `This ${block.execution_provider.toUpperCase()} variant does not run on ${this.options.platform} ${this.options.arch}.`);
149
+ if (ep.register && !(await this.options.preparedAccelerators()).includes(ep.register))
150
+ throw new AtomicCoreError('FOUNDRY_LOCAL_ACCELERATOR_NOT_PREPARED', `${ep.register} is not prepared; prepare it on the Foundry Local page before loading this model.`);
151
+ const build = await this.options.resolveBuild();
152
+ if (!build)
153
+ throw new AtomicCoreError('BINARY_NOT_FOUND', 'Foundry Local is not installed; install it before loading a model.');
154
+ const { modelPath } = registry.resolvePaths(yml);
155
+ const settings = await this.options.readSettings();
156
+ const timeoutSecs = opts.timeoutSecs ??
157
+ (Number(settings['timeout']) > 0 ? Number(settings['timeout']) : FOUNDRY_LOCAL_DEFAULT_TIMEOUT_SECS);
158
+ if (!(opts.bypassAutoUnload ?? false))
159
+ for (const loaded of this.table.getLoadedModels()) {
160
+ throwIfLoadCancelled(opts.signal);
161
+ await this.unload(loaded);
162
+ }
163
+ this.table.assertRunning();
164
+ throwIfLoadCancelled(opts.signal);
165
+ // GPU residency (design D6): CUDA and WebGPU hold every card; NPU and CPU variants claim nothing.
166
+ const holdsGpu = block.execution_provider === 'cuda' || block.execution_provider === 'webgpu';
167
+ const occupancy = {
168
+ model_id: modelId,
169
+ cards: holdsGpu ? 'all' : [],
170
+ auxiliary: false,
171
+ state: 'loading',
172
+ };
173
+ const hold = () => void this.claimed.set(modelId, occupancy);
174
+ try {
175
+ if (holdsGpu && this.options.claimGpu) {
176
+ await this.options.claimGpu({ model_id: modelId, cards: 'all', auxiliary: false }, opts.signal, hold);
177
+ this.table.assertRunning();
178
+ throwIfLoadCancelled(opts.signal);
179
+ }
180
+ hold();
181
+ return await this.startHost(modelId, opts, { block, build, modelPath, timeoutSecs });
182
+ }
183
+ finally {
184
+ if (this.claimed.get(modelId) === occupancy)
185
+ this.claimed.delete(modelId);
186
+ }
187
+ }
188
+ async startHost(modelId, opts, launch) {
189
+ const { block, build, modelPath, timeoutSecs } = launch;
190
+ const paths = this.options.layout.provider('foundry-local');
191
+ const hostPort = await randomFreePort(this.table.usedPorts());
192
+ const id = registrationId(modelId);
193
+ const cache = join(paths.tmpDir, randomUUID());
194
+ const args = [
195
+ ...this.options.hostCommand.args,
196
+ 'serve',
197
+ '--lib',
198
+ build,
199
+ '--app-data',
200
+ paths.runtimeDir,
201
+ '--logs',
202
+ paths.logsDir,
203
+ '--model',
204
+ modelPath,
205
+ '--ep',
206
+ block.execution_provider,
207
+ '--port',
208
+ String(hostPort),
209
+ '--cache',
210
+ cache,
211
+ '--id',
212
+ id,
213
+ ...(block.tools ? ['--tools'] : []),
214
+ ...(block.reasoning_start !== undefined && block.reasoning_end !== undefined
215
+ ? ['--reasoning-start', block.reasoning_start, '--reasoning-end', block.reasoning_end]
216
+ : []),
217
+ ...(block.context_length !== undefined ? ['--context-length', String(block.context_length)] : []),
218
+ ];
219
+ const env = {};
220
+ for (const [key, value] of Object.entries(this.options.baseEnv ?? process.env))
221
+ if (value !== undefined)
222
+ env[key] = value;
223
+ // Design D8: Microsoft's optional telemetry off; `ProcessInfo` still goes and is disclosed.
224
+ env['ORT_TELEMETRY_DISABLED'] = '1';
225
+ // ONNX Runtime's GroupQueryAttention picks cuDNN flash attention on compute capability >= 9, and
226
+ // the cuDNN 9.20 of Microsoft's CUDA plugin cannot build that graph on Blackwell (sm_120): every
227
+ // completion fails, the model loaded. Off unless the person set it; only the CUDA plugin reads it.
228
+ // Drop once the plugin ships a cuDNN that builds it (microsoft/foundry-local#1179).
229
+ env['ORT_ENABLE_CUDNN_FLASH_ATTENTION'] ??= '0';
230
+ const exe = this.options.hostCommand.exe;
231
+ const reportOutput = backendOutputReporter(this.options.backendOutput, this.options.log);
232
+ this.options.log?.('info', `starting the Foundry Local host for ${modelId} (${block.execution_provider}) from ${build}`);
233
+ const started = await (this.options.spawn ?? spawnAndAwaitReady)({ exe, args, env, stdin: 'pipe', platform: this.options.platform }, {
234
+ timeoutMs: timeoutSecs * 1000,
235
+ signal: this.table.signal,
236
+ ...(opts.signal ? { cancelSignal: opts.signal } : {}),
237
+ streamReadyMarkers: { stdout: ['"ready":true'], stderr: [] },
238
+ timeoutError: (stderr) => new AtomicCoreError('MODEL_LOAD_TIMED_OUT', `The Foundry Local model did not load within ${timeoutSecs} seconds.`, stderr.trim().split('\n').slice(-5).join('\n')),
239
+ classifyExit: (exit, stderr) => hostError(exit.code, stderr),
240
+ onLine: (stream, line) => {
241
+ if (opts.verbose)
242
+ this.emit('core:log', { level: 'debug', msg: `[foundry-local/${modelId}][${stream}] ${line}` });
243
+ reportOutput({ provider: 'foundry-local', model: modelId, stream, line });
244
+ },
245
+ });
246
+ let gateway;
247
+ const apiKey = generateGatewayKey();
248
+ try {
249
+ gateway = await startManagedGateway({
250
+ upstream: { host: '127.0.0.1', port: hostPort, basePath: LOCAL_CATALOG_BASE_PATH },
251
+ apiKey,
252
+ allowedHosts: this.options.trustedHosts,
253
+ routes: FOUNDRY_LOCAL_ROUTES,
254
+ rewritableRoutes: [{ method: 'POST', path: CHAT_ROUTE }],
255
+ // The host knows the model by its registration id; the client by the core's id.
256
+ rewriteRequestBody: (_route, body) => body !== null && typeof body === 'object' && !Array.isArray(body) ? { ...body, model: id } : body,
257
+ rewriteResponseFor: () => (json) => ('model' in json ? { ...json, model: modelId } : json),
258
+ });
259
+ }
260
+ catch (error) {
261
+ await started.process.terminate(this.table.isClosing ? 0 : 5_000).catch(() => { });
262
+ throw error;
263
+ }
264
+ void started.process.exited.then(() => gateway.close().catch(() => { }));
265
+ try {
266
+ return await this.table.adopt({
267
+ info: {
268
+ pid: started.process.pid,
269
+ port: gateway.port,
270
+ model_id: modelId,
271
+ model_path: modelPath,
272
+ is_embedding: false,
273
+ api_key: apiKey,
274
+ },
275
+ process: started.process,
276
+ exe,
277
+ extra: { build, block, gateway },
278
+ }, opts.signal);
279
+ }
280
+ catch (error) {
281
+ await gateway.close().catch(() => { });
282
+ throw error;
283
+ }
284
+ }
285
+ /** Waits for the host to exit (spec "Выгрузка"); the gateway goes with it. */
286
+ async unload(modelId) {
287
+ this.table.assertRunning();
288
+ const gateway = this.table.get(modelId)?.extra.gateway;
289
+ const result = await this.table.unload(modelId);
290
+ if (result.success)
291
+ await gateway?.close().catch(() => { });
292
+ return result;
293
+ }
294
+ /** The context is the variant's own: nothing to grow. */
295
+ async autoIncreaseCtx(modelId) {
296
+ return this.table.get(modelId)
297
+ ? { ok: false, reason: 'unsupported' }
298
+ : { ok: false, reason: 'not-loaded' };
299
+ }
300
+ async recreateSession(modelId) {
301
+ this.table.assertRunning();
302
+ const session = this.table.get(modelId);
303
+ if (!session)
304
+ return { ok: false, reason: 'not-loaded' };
305
+ await this.unload(modelId);
306
+ return { ok: true, session: await this.load(modelId, { bypassAutoUnload: true }) };
307
+ }
308
+ async shutdown() {
309
+ const gateways = this.table.getLoadedModels().flatMap((id) => {
310
+ const gateway = this.table.get(id)?.extra.gateway;
311
+ return gateway ? [gateway] : [];
312
+ });
313
+ try {
314
+ await this.table.shutdown();
315
+ }
316
+ finally {
317
+ await Promise.all(gateways.map((gateway) => gateway.close().catch(() => { })));
318
+ }
319
+ }
320
+ }
321
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/runtime/foundry-local/runtime.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,11 @@ export declare const REASONING_PRESERVE_DEFAULT_ON_MIN_BUILD = 10762;
30
30
  * `--load-mode` (since b10105) is the only spelling left, and the removed flags fail the launch.
31
31
  */
32
32
  export declare const LOAD_MODE_ONLY_MIN_BUILD = 10875;
33
+ /**
34
+ * First upstream release without KV cache defragmentation (ggml-org/llama.cpp#15473): `--defrag-thold`
35
+ * is a no-op there that only prints a deprecation warning, so it is not sent.
36
+ */
37
+ export declare const DEFRAG_THOLD_NO_OP_MIN_BUILD = 6245;
33
38
  /** Cache types supported by stock ggml-org builds. */
34
39
  export declare const STANDARD_CACHE_TYPES: readonly string[];
35
40
  /** Fields with `#[serde(default)]` in Rust; every other `LlamacppConfig` field is required. */
@@ -30,6 +30,11 @@ export const REASONING_PRESERVE_DEFAULT_ON_MIN_BUILD = 10762;
30
30
  * `--load-mode` (since b10105) is the only spelling left, and the removed flags fail the launch.
31
31
  */
32
32
  export const LOAD_MODE_ONLY_MIN_BUILD = 10875;
33
+ /**
34
+ * First upstream release without KV cache defragmentation (ggml-org/llama.cpp#15473): `--defrag-thold`
35
+ * is a no-op there that only prints a deprecation warning, so it is not sent.
36
+ */
37
+ export const DEFRAG_THOLD_NO_OP_MIN_BUILD = 6245;
33
38
  /** Cache types supported by stock ggml-org builds. */
34
39
  export const STANDARD_CACHE_TYPES = [
35
40
  'f32',
@@ -374,7 +379,8 @@ export function planLlamaArgs(config, input) {
374
379
  if (safeV !== 'f16' && safeV !== 'f32')
375
380
  push('--cache-type-v', safeV);
376
381
  }
377
- if (f32Differs(cfg.defrag_thold, 0.1))
382
+ const defragIsNoOp = !ik && build !== undefined && build >= DEFRAG_THOLD_NO_OP_MIN_BUILD;
383
+ if (f32Differs(cfg.defrag_thold, 0.1) && !defragIsNoOp)
378
384
  push('--defrag-thold', formatRustF32(cfg.defrag_thold));
379
385
  if (cfg.rope_scaling !== '' && cfg.rope_scaling !== 'none')
380
386
  push('--rope-scaling', cfg.rope_scaling);