@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,393 @@
1
+ /**
2
+ * The `sglang` engine's `ManagedTextAdapter` (change `add-sglang-runtime`, task 2.2, design D3, D5;
3
+ * spec `sglang-runtime`): how core runs `python3 -m sglang.launch_server` from the `lmsysorg/sglang`
4
+ * image on the shared managed-text lifecycle. Everything here follows SGLang v0.5.21's source (the
5
+ * rulings of task 2.2 in the change's `rulings/core.md` say where).
6
+ *
7
+ * - **argv**: `--model-path <model> --served-model-name <id> --host 0.0.0.0 --port 30000
8
+ * --context-length <ctx> --max-running-requests <n> --mem-fraction-static <f>`, then only what
9
+ * differs from SGLang's own: the KV cache limit, the prefill chunk, `--disable-radix-cache`,
10
+ * `--dtype`, `--random-seed`, the CUDA graph mode (D5), `--kv-cache-dtype fp8_e4m3` on compute
11
+ * capability 8.9 and newer, the family's parsers, and `--json-model-override-args
12
+ * {"language_model_only":true}` for a multimodal checkpoint. `f` is core's (`plan`, from the card's
13
+ * free memory right before the container, design D4); within it SGLang sizes the KV cache itself.
14
+ * Never `--trust-remote-code` (no code from a model repository runs), `--log-requests` (prompts would
15
+ * land in the logs core serves), `--api-key`/`--admin-api-key` (the session gateway checks the key)
16
+ * or `--enable-metrics`.
17
+ * - **env**: Hugging Face offline (every file is already in the store), no tracking, the output limit
18
+ * for a request that names none (`SGLANG_MAX_NEW_TOKENS_LIMIT`), and every compile cache — SGLang's
19
+ * own and its JIT kernels', Triton's, inductor's, FlashInfer's, CUDA's, TileLang's — under the engine
20
+ * cache, so a second start of the same model reuses the first one's work.
21
+ * - **readiness** `GET /health`, then the shared generation probe; **routes** chat completions,
22
+ * completions and the model list; requests capped at the output setting, given the sampling defaults
23
+ * they do not set, refused for tools without a parser, structured output the family does not declare,
24
+ * and images; SGLang's context overflow answered as OpenAI's `context_length_exceeded` with both
25
+ * numbers.
26
+ *
27
+ * Log lines, exit wording and error bodies follow SGLang v0.5.21's source
28
+ * (`test/helpers/sglang-log-fixtures.ts`); the live run of task 4.1 confirms or replaces them.
29
+ */
30
+ import { AtomicCoreError } from '../../contracts/index.js';
31
+ import { supportsFp8KvCache } from '../managed-models/index.js';
32
+ import { withGenerationDefaults } from '../managed-text/generation-defaults.js';
33
+ import { MANAGED_TEXT_ADAPTER_CONTRACT_VERSION, ManagedRequestRefusal, asksForStructuredOutput, asksForTools, capRequestedOutput, carriesMedia, reasoningIntoContent, thinkingRequested, } from '../managed-text/index.js';
34
+ import { validateSglangSettings } from './settings.js';
35
+ const GiB = 1024 ** 3;
36
+ /** The port `sglang.launch_server` listens on inside its container (SGLang's own default). */
37
+ export const SGLANG_CONTAINER_PORT = 30000;
38
+ function isPlan(value) {
39
+ if (value === null || typeof value !== 'object')
40
+ return false;
41
+ const plan = value;
42
+ return (typeof plan['memFractionStatic'] === 'number' &&
43
+ plan['memFractionStatic'] > 0 &&
44
+ plan['memFractionStatic'] < 1 &&
45
+ typeof plan['multimodal'] === 'boolean');
46
+ }
47
+ /**
48
+ * Design D5 in SGLang v0.5.21's flags: `auto` captures decode graphs only up to the requests served at
49
+ * once (`--cuda-graph-max-bs-decode`), so they cost little memory; `on` is SGLang's own range; `off`
50
+ * disables both phases. `--disable-cuda-graph` is deprecated in v0.5.21 and never used.
51
+ */
52
+ function cudaGraphArgs(settings) {
53
+ switch (settings.cuda_graphs) {
54
+ case 'auto':
55
+ return ['--cuda-graph-max-bs-decode', String(settings.max_running_requests)];
56
+ case 'on':
57
+ return [];
58
+ case 'off':
59
+ return ['--disable-decode-cuda-graph', '--disable-prefill-cuda-graph'];
60
+ }
61
+ }
62
+ /**
63
+ * Every compile cache of the engine, under the engine cache (`ManagedLaunchContext.engineCachePath`).
64
+ * SGLang points the third-party ones at `SGLANG_CACHE_DIR` itself only when nothing imported them yet,
65
+ * and its JIT kernels at `~/.cache/sglang/jit` whatever that says, so each is set here.
66
+ */
67
+ function cacheEnv(cache) {
68
+ return {
69
+ SGLANG_CACHE_DIR: `${cache}/sglang`,
70
+ SGLANG_JIT_CACHE_DIR: `${cache}/sglang/jit`,
71
+ TRITON_CACHE_DIR: `${cache}/triton`,
72
+ TORCHINDUCTOR_CACHE_DIR: `${cache}/inductor`,
73
+ FLASHINFER_WORKSPACE_BASE: `${cache}/flashinfer`,
74
+ CUDA_CACHE_PATH: `${cache}/nv`,
75
+ TILELANG_CACHE_DIR: `${cache}/tilelang`,
76
+ };
77
+ }
78
+ export function buildSglangLaunch(context) {
79
+ if (!isPlan(context.plan)) {
80
+ throw new AtomicCoreError('INVALID_ARGUMENT', 'An SGLang launch needs core’s memory plan (its static memory share), computed right before the container is created.');
81
+ }
82
+ const { settings, family } = context;
83
+ const argv = [
84
+ 'python3',
85
+ '-m',
86
+ 'sglang.launch_server',
87
+ '--model-path',
88
+ context.modelPath,
89
+ '--served-model-name',
90
+ context.modelId,
91
+ '--host',
92
+ '0.0.0.0',
93
+ '--port',
94
+ String(SGLANG_CONTAINER_PORT),
95
+ '--context-length',
96
+ String(settings.context_length),
97
+ '--max-running-requests',
98
+ String(settings.max_running_requests),
99
+ '--mem-fraction-static',
100
+ String(Number(context.plan.memFractionStatic.toFixed(4))),
101
+ ];
102
+ if (settings.max_total_tokens !== null)
103
+ argv.push('--max-total-tokens', String(settings.max_total_tokens));
104
+ if (settings.chunked_prefill_size !== null) {
105
+ argv.push('--chunked-prefill-size', String(settings.chunked_prefill_size));
106
+ }
107
+ if (!settings.enable_prefix_caching)
108
+ argv.push('--disable-radix-cache');
109
+ if (settings.dtype !== 'auto')
110
+ argv.push('--dtype', settings.dtype);
111
+ if (settings.seed !== null)
112
+ argv.push('--random-seed', String(settings.seed));
113
+ argv.push(...cudaGraphArgs(settings));
114
+ if (settings.kv_cache_dtype === 'fp8' && supportsFp8KvCache(context.gpuComputeCapability)) {
115
+ argv.push('--kv-cache-dtype', 'fp8_e4m3');
116
+ }
117
+ // The checkpoint's own "text only" declaration, which every class of the descriptor honours (no
118
+ // multimodal reservation, media refused); SGLang's --language-model-only flag accepts only three
119
+ // architectures, none of them ours.
120
+ if (context.plan.multimodal) {
121
+ argv.push('--json-model-override-args', JSON.stringify({ language_model_only: true }));
122
+ }
123
+ if (family?.tool_parser)
124
+ argv.push('--tool-call-parser', family.tool_parser);
125
+ if (family?.reasoning_parser)
126
+ argv.push('--reasoning-parser', family.reasoning_parser);
127
+ return {
128
+ engine: { container_port: SGLANG_CONTAINER_PORT },
129
+ argv,
130
+ env: {
131
+ HF_HUB_OFFLINE: '1',
132
+ TRANSFORMERS_OFFLINE: '1',
133
+ DO_NOT_TRACK: '1',
134
+ // A chat request that names no output gets this, then whatever room the context has left:
135
+ // SGLang's scheduler clips rather than refuses, so a long prompt is not refused for the cap's
136
+ // room. (Completions keep OpenAI's default of 16, which SGLang applies before this.)
137
+ SGLANG_MAX_NEW_TOKENS_LIMIT: String(settings.max_output_tokens),
138
+ ...cacheEnv(context.engineCachePath),
139
+ },
140
+ };
141
+ }
142
+ /** A base for engine start-up, the first kernel compilation and graph capture; more per GiB of weights. */
143
+ export const SGLANG_READINESS_BASE_MS = 10 * 60_000;
144
+ export const SGLANG_READINESS_PER_GIB_MS = 20_000;
145
+ export function sglangReadinessTimeoutMs(weightBytes, settings) {
146
+ if (settings.load_timeout_seconds !== null)
147
+ return settings.load_timeout_seconds * 1000;
148
+ return Math.ceil(SGLANG_READINESS_BASE_MS + (weightBytes / GiB) * SGLANG_READINESS_PER_GIB_MS);
149
+ }
150
+ // ---------------------------------------------------------------------------------------------
151
+ // Exit classification
152
+ // ---------------------------------------------------------------------------------------------
153
+ const OOM = /CUDA out of memory\. Tried to allocate ([\d.]+) ?(GiB|MiB|KiB).*?of which ([\d.]+) ?(GiB|MiB|KiB|bytes) is free/;
154
+ /** `mem_cache/kv_cache_configurator.py`: the weights took all of the static share. */
155
+ const NO_KV_MEMORY = /Loaded weights leave no GPU memory for the KV cache under --mem-fraction-static=([\d.]+)\. Raise --mem-fraction-static above ([\d.]+)/;
156
+ /** `model_executor/pool_configurator.py`: a KV pool of no tokens. */
157
+ const EMPTY_POOL = /Not enough memory\. Please try to increase --mem-fraction-static\.(?: Current value: mem_fraction_static=([\d.]+))?/;
158
+ /** `configs/model_config.py::_derive_context_length`: the setting is longer than the model's own context. */
159
+ const CONTEXT_TOO_LONG = /context_length \((\d+)\) is greater than the derived context_length \((\d+)\)/;
160
+ const UNSUPPORTED_ARCHITECTURE = /Model architectures \[([^\]]*)\] are not supported for now/;
161
+ const ANY_OOM = /out of memory/i;
162
+ const toGiB = (amount, unit) => unit === 'GiB'
163
+ ? amount
164
+ : unit === 'MiB'
165
+ ? amount / 1024
166
+ : unit === 'KiB'
167
+ ? amount / 1024 ** 2
168
+ : amount / GiB;
169
+ const round = (value) => Math.round(value * 100) / 100;
170
+ export function classifySglangExit(log, exitCode) {
171
+ const noKv = NO_KV_MEMORY.exec(log);
172
+ if (noKv !== null) {
173
+ return {
174
+ kind: 'out-of-memory',
175
+ message: `The model's weights left no GPU memory for the KV cache: SGLang kept a share of ${noKv[1]} of the ` +
176
+ `free memory and needed more than ${noKv[2]}. Free GPU memory, or choose a smaller model.`,
177
+ numbers: { mem_fraction_static: Number(noKv[1]), minimum_mem_fraction_static: Number(noKv[2]) },
178
+ excerpt: noKv[0],
179
+ };
180
+ }
181
+ const empty = EMPTY_POOL.exec(log);
182
+ if (empty !== null) {
183
+ return {
184
+ kind: 'out-of-memory',
185
+ message: `The KV cache got no room after the model's weights` +
186
+ (empty[1] === undefined ? '' : ` within SGLang's memory share of ${empty[1]}`) +
187
+ '. Free GPU memory, or choose a smaller model.',
188
+ numbers: empty[1] === undefined ? {} : { mem_fraction_static: Number(empty[1]) },
189
+ excerpt: empty[0],
190
+ };
191
+ }
192
+ const oom = OOM.exec(log);
193
+ if (oom !== null) {
194
+ return {
195
+ kind: 'out-of-memory',
196
+ message: `The GPU ran out of memory: SGLang tried to allocate ${oom[1]} ${oom[2]} with ${oom[3]} ${oom[4]} free.`,
197
+ numbers: {
198
+ requested_gib: round(toGiB(Number(oom[1]), oom[2])),
199
+ free_gib: round(toGiB(Number(oom[3]), oom[4])),
200
+ },
201
+ excerpt: oom[0],
202
+ };
203
+ }
204
+ const tooLong = CONTEXT_TOO_LONG.exec(log);
205
+ if (tooLong !== null) {
206
+ return {
207
+ kind: 'other',
208
+ message: `The context length ${tooLong[1]} is longer than the model supports (${tooLong[2]} tokens). ` +
209
+ `Lower the context length in the SGLang settings to ${tooLong[2]} or less.`,
210
+ numbers: { context_length: Number(tooLong[1]), model_context_length: Number(tooLong[2]) },
211
+ excerpt: tooLong[0],
212
+ };
213
+ }
214
+ const arch = UNSUPPORTED_ARCHITECTURE.exec(log);
215
+ if (arch !== null) {
216
+ return {
217
+ kind: 'unsupported-model',
218
+ message: `This SGLang release cannot run the model's architecture: ${arch[1]?.replace(/'/g, '')}.`,
219
+ excerpt: arch[0],
220
+ };
221
+ }
222
+ if (ANY_OOM.test(log)) {
223
+ return { kind: 'out-of-memory', message: 'The GPU ran out of memory while SGLang started.' };
224
+ }
225
+ return {
226
+ kind: 'other',
227
+ message: `SGLang exited${exitCode === null ? '' : ` with code ${exitCode}`} before it was ready.`,
228
+ };
229
+ }
230
+ // ---------------------------------------------------------------------------------------------
231
+ // Capabilities, routes, request and response rewrites
232
+ // ---------------------------------------------------------------------------------------------
233
+ export function sglangCapabilities(context) {
234
+ const family = context.family;
235
+ return {
236
+ tools: Boolean(family?.tool_parser),
237
+ reasoning: Boolean(family?.reasoning_parser),
238
+ structured_output: family?.structured_output === true,
239
+ vision: false,
240
+ embeddings: false,
241
+ responses: false,
242
+ };
243
+ }
244
+ /** Everything else SGLang serves — `/server_info`, `/flush_cache`, `/metrics`, embeddings… — is the gateway's 404. */
245
+ export const SGLANG_ROUTES = [
246
+ { method: 'POST', path: '/v1/chat/completions' },
247
+ { method: 'POST', path: '/v1/completions' },
248
+ { method: 'GET', path: '/v1/models' },
249
+ ];
250
+ export const SGLANG_REWRITABLE_ROUTES = [
251
+ { method: 'POST', path: '/v1/chat/completions' },
252
+ { method: 'POST', path: '/v1/completions' },
253
+ ];
254
+ const REWRITABLE = new Set(SGLANG_REWRITABLE_ROUTES.map((route) => route.path));
255
+ /**
256
+ * Caps the output a request asks for at `max_output_tokens` (one key, as the client sent it); a chat
257
+ * request that asks for none is capped by `SGLANG_MAX_NEW_TOKENS_LIMIT` instead, within the room the
258
+ * context has left (a completions request that names none gets OpenAI's 16, SGLang's own default). Writes the sampling defaults a request does not set: SGLang's OpenAI path fills
259
+ * every sampling value before `--preferred-sampling-params` would apply. Refuses what the session
260
+ * cannot do with `:1337`'s own wording and code: tools without a parser, structured output the family
261
+ * does not declare, images.
262
+ */
263
+ export function sglangRewriteRequestBody(route, body, settings, capabilities) {
264
+ if (!REWRITABLE.has(route))
265
+ return body;
266
+ if (typeof body !== 'object' || body === null || Array.isArray(body))
267
+ return body;
268
+ const client = body;
269
+ const model = typeof client['model'] === 'string' ? `The model '${client['model']}'` : 'This model';
270
+ if (carriesMedia(client)) {
271
+ throw new ManagedRequestRefusal(`${model} does not support images.`, 'unsupported_capability');
272
+ }
273
+ if (capabilities !== undefined) {
274
+ if (!capabilities.tools && asksForTools(client)) {
275
+ throw new ManagedRequestRefusal(`${model} does not support tool calling.`, 'unsupported_capability');
276
+ }
277
+ if (!capabilities.structured_output && asksForStructuredOutput(client)) {
278
+ throw new ManagedRequestRefusal(`${model} does not support structured output.`, 'unsupported_capability');
279
+ }
280
+ }
281
+ return capRequestedOutput(route, withGenerationDefaults(client, settings.generation), settings.max_output_tokens);
282
+ }
283
+ /**
284
+ * SGLang's 400 wording for a request over the context (`managers/tokenizer_manager.py`), with the
285
+ * limit and the request: the input alone, and the input with the output it asked for.
286
+ */
287
+ const OVERFLOW = [
288
+ {
289
+ pattern: /The input \((\d+) tokens\) is longer than the model's context length \((\d+) tokens\)/,
290
+ limit: 2,
291
+ requested: 1,
292
+ },
293
+ {
294
+ pattern: /maximum context length of (\d+) tokens\. You requested a total of (\d+) tokens/,
295
+ limit: 1,
296
+ requested: 2,
297
+ },
298
+ ];
299
+ function errorMessage(body) {
300
+ try {
301
+ const parsed = JSON.parse(body);
302
+ const message = parsed.error?.message ?? parsed.message;
303
+ return typeof message === 'string' ? message : '';
304
+ }
305
+ catch {
306
+ return '';
307
+ }
308
+ }
309
+ /** SGLang's context overflow as OpenAI's `context_length_exceeded`; anything else relayed as it is. */
310
+ export function mapSglangContextLengthError(status, body) {
311
+ if (status !== 400)
312
+ return null;
313
+ const message = errorMessage(body);
314
+ for (const { pattern, limit, requested } of OVERFLOW) {
315
+ const match = pattern.exec(message);
316
+ if (match === null)
317
+ continue;
318
+ return {
319
+ error: {
320
+ message: `This model's maximum context length is ${match[limit]} tokens, but the request has ${match[requested]} tokens. Shorten the conversation or the requested output.`,
321
+ type: 'invalid_request_error',
322
+ param: 'messages',
323
+ code: 'context_length_exceeded',
324
+ },
325
+ };
326
+ }
327
+ return null;
328
+ }
329
+ /**
330
+ * Reasoning parsers that may file a no-thinking reply under `reasoning_content` (design D3: the same
331
+ * hook as vLLM's). SGLang's `qwen3` parser splits only on the tags it sees when the request turned
332
+ * thinking off, so the hook is a no-op then; it moves what a model thought by its template's default.
333
+ */
334
+ export const SGLANG_REASONING_AT_START_PARSERS = new Set(['qwen3']);
335
+ export function sglangRewriteResponseFor(route, requestBody, family) {
336
+ if (route !== '/v1/chat/completions')
337
+ return null;
338
+ const parser = family?.reasoning_parser ?? null;
339
+ if (parser === null || !SGLANG_REASONING_AT_START_PARSERS.has(parser))
340
+ return null;
341
+ return thinkingRequested(requestBody) ? null : reasoningIntoContent;
342
+ }
343
+ /**
344
+ * `initializing-engine` from the first line that shows SGLang working on the model: reading weights,
345
+ * sizing the KV pool, capturing CUDA graphs. Before them the load stays in `starting-container`
346
+ * (Python, CUDA and the tokenizer and scheduler processes coming up).
347
+ */
348
+ const STAGE_MARKERS = [
349
+ { stage: 'initializing-engine', pattern: /Load weight begin/ },
350
+ { stage: 'initializing-engine', pattern: /Load weight end/ },
351
+ { stage: 'initializing-engine', pattern: /Memory pool end/ },
352
+ { stage: 'initializing-engine', pattern: /Capture .* begin/ },
353
+ { stage: 'initializing-engine', pattern: /max_total_num_tokens=/ },
354
+ ];
355
+ export const sglangAdapter = {
356
+ id: 'sglang',
357
+ contractVersion: MANAGED_TEXT_ADAPTER_CONTRACT_VERSION,
358
+ readiness: { path: '/health', expectedStatus: 200 },
359
+ // `/health` alone is not proof the engine can serve (spec: ready only after one generated token).
360
+ generationProbe: {
361
+ modelsPath: '/v1/models',
362
+ path: '/v1/chat/completions',
363
+ body: { messages: [{ role: 'user', content: 'Hi' }], max_tokens: 1, stream: false },
364
+ },
365
+ routes: SGLANG_ROUTES,
366
+ rewritableRoutes: SGLANG_REWRITABLE_ROUTES,
367
+ stageMarkers: STAGE_MARKERS,
368
+ validateSettings: (raw) => validateSglangSettings((raw ?? {})),
369
+ buildLaunch: buildSglangLaunch,
370
+ readinessTimeoutMs: sglangReadinessTimeoutMs,
371
+ classifyExit: classifySglangExit,
372
+ capabilities: sglangCapabilities,
373
+ rewriteRequestBody: sglangRewriteRequestBody,
374
+ rewriteResponseFor: sglangRewriteResponseFor,
375
+ mapErrorResponse: (_route, status, body) => mapSglangContextLengthError(status, body),
376
+ // Everything SGLang is started with — the output limit too, an environment variable of its launch —
377
+ // and the sampling defaults its gateway writes; only the load timeout is a load's alone.
378
+ restartKey: (settings) => [
379
+ settings.context_length,
380
+ settings.max_output_tokens,
381
+ settings.max_running_requests,
382
+ settings.mem_fraction_static,
383
+ settings.max_total_tokens,
384
+ settings.cuda_graphs,
385
+ settings.kv_cache_dtype,
386
+ settings.enable_prefix_caching,
387
+ settings.chunked_prefill_size,
388
+ settings.dtype,
389
+ settings.seed,
390
+ JSON.stringify(settings.generation),
391
+ ],
392
+ };
393
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/runtime/sglang/adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { ManagedEngineSpec } from '../managed-engines/spec.js';
2
+ import type { ManagedTextCapabilities } from '../managed-text/index.js';
3
+ import type { SessionRoutePolicy } from '../shared/index.js';
4
+ import { type SglangSettings } from './settings.js';
5
+ export declare const SGLANG_ENGINE_ID = "sglang";
6
+ /**
7
+ * What the public server (`:1337`) must know about an `sglang` session to route it honestly: only the
8
+ * routes the adapter declares, tool calls and JSON output only as the session can, and SGLang's
9
+ * context overflow answered as `context_length_exceeded`. `null` capabilities (a session the core did
10
+ * not start) keep the routes and the mapping and leave tools and JSON output to the engine.
11
+ */
12
+ export declare function sglangRoutePolicy(capabilities: ManagedTextCapabilities | null, limits?: {
13
+ contextLength: number;
14
+ maxOutputTokens: number;
15
+ } | null): SessionRoutePolicy;
16
+ export declare const SGLANG_ENGINE: ManagedEngineSpec<SglangSettings>;
@@ -0,0 +1,38 @@
1
+ /**
2
+ * SGLang as a managed engine (change `add-sglang-runtime`, task 2.4, design D1): its adapter,
3
+ * settings, memory rule and launch plan, route policy, and its descriptor in conf
4
+ * (`runtimes/sglang.json`, read only once conf main publishes it — until then the provider is
5
+ * unsupported, design D9).
6
+ */
7
+ import { defaultDescriptorUrl } from '../environment/index.js';
8
+ import { SGLANG_ROUTES, mapSglangContextLengthError, sglangAdapter } from './adapter.js';
9
+ import { sglangCheckEngine, sglangLaunchPlan } from './memory.js';
10
+ import { sglangSettings } from './settings.js';
11
+ export const SGLANG_ENGINE_ID = 'sglang';
12
+ /**
13
+ * What the public server (`:1337`) must know about an `sglang` session to route it honestly: only the
14
+ * routes the adapter declares, tool calls and JSON output only as the session can, and SGLang's
15
+ * context overflow answered as `context_length_exceeded`. `null` capabilities (a session the core did
16
+ * not start) keep the routes and the mapping and leave tools and JSON output to the engine.
17
+ */
18
+ export function sglangRoutePolicy(capabilities, limits = null) {
19
+ return {
20
+ routes: SGLANG_ROUTES,
21
+ tools: capabilities?.tools ?? true,
22
+ structuredOutput: capabilities?.structured_output ?? true,
23
+ mapError: mapSglangContextLengthError,
24
+ ...(limits === null ? {} : limits),
25
+ };
26
+ }
27
+ export const SGLANG_ENGINE = {
28
+ engine_id: SGLANG_ENGINE_ID,
29
+ provider: SGLANG_ENGINE_ID,
30
+ label: 'SGLang',
31
+ descriptor: { engine_id: SGLANG_ENGINE_ID, label: 'SGLang', url: defaultDescriptorUrl(SGLANG_ENGINE_ID) },
32
+ adapter: sglangAdapter,
33
+ settings: sglangSettings,
34
+ check: sglangCheckEngine,
35
+ launchPlan: sglangLaunchPlan,
36
+ routePolicy: sglangRoutePolicy,
37
+ };
38
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/runtime/sglang/engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAI9D,OAAO,EAAE,aAAa,EAAE,2BAA2B,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACxF,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACjE,OAAO,EAAE,cAAc,EAAuB,MAAM,eAAe,CAAA;AAEnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAA;AAExC;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAA4C,EAC5C,SAAoE,IAAI;IAExE,OAAO;QACL,MAAM,EAAE,aAAa;QACrB,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,IAAI;QAClC,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,IAAI,IAAI;QACzD,QAAQ,EAAE,2BAA2B;QACrC,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;KACnC,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAsC;IAC9D,SAAS,EAAE,gBAAgB;IAC3B,QAAQ,EAAE,gBAAgB;IAC1B,KAAK,EAAE,QAAQ;IACf,UAAU,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,EAAE;IACzG,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,cAAc;IACxB,KAAK,EAAE,iBAAiB;IACxB,UAAU,EAAE,gBAAgB;IAC5B,WAAW,EAAE,iBAAiB;CAC/B,CAAA"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The `sglang` provider (change `add-sglang-runtime`): its settings (`settings.ts`), the
3
+ * `ManagedTextAdapter` for `sglang.launch_server` (`adapter.ts`), its memory model (`memory.ts`) and
4
+ * its spec in the managed engine registry (`engine.ts`).
5
+ *
6
+ * Public API of this module is exported from this file only.
7
+ */
8
+ export * from './settings.js';
9
+ export * from './adapter.js';
10
+ export * from './memory.js';
11
+ export * from './engine.js';
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The `sglang` provider (change `add-sglang-runtime`): its settings (`settings.ts`), the
3
+ * `ManagedTextAdapter` for `sglang.launch_server` (`adapter.ts`), its memory model (`memory.ts`) and
4
+ * its spec in the managed engine registry (`engine.ts`).
5
+ *
6
+ * Public API of this module is exported from this file only.
7
+ */
8
+ export * from './settings.js';
9
+ export * from './adapter.js';
10
+ export * from './memory.js';
11
+ export * from './engine.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/sglang/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * SGLang's memory, decided by core (change `add-sglang-runtime`, task 2.3, design D4; spec
3
+ * `sglang-runtime`, "Память SGLang задаёт core"). SGLang sizes its budget from the memory it finds
4
+ * free at start-up, once its own CUDA context exists: it keeps `--mem-fraction-static` of it for the
5
+ * weights and the KV cache, and the rest is its room for activations and CUDA graphs
6
+ * (`mem_cache/kv_cache_configurator.py::_profile_available_bytes`). Its own default share is computed
7
+ * from the card's *total* memory, so on a card a desktop already holds part of, that room comes out
8
+ * smaller than SGLang meant. Core instead:
9
+ *
10
+ * - gives SGLang (unless the share setting fixes it) `f = (F − R) / F`, clamped to [0.5, 0.95], where
11
+ * `F` is what the card has free right before the container is created and `R` the room SGLang needs
12
+ * (2 GiB with CUDA graphs, 1.25 GiB without): SGLang then keeps about `R` whatever other processes
13
+ * took. On a card with the host's memory the static share holds at most half of the host's memory:
14
+ * `(min(F, half the host) − R) / F`. Within its share SGLang sizes the KV cache itself — hybrid
15
+ * models' linear-attention state included — and core passes `--max-total-tokens` only from the
16
+ * setting.
17
+ * - checks, before any container, that the weights, an estimate of the KV cache (context × parallel
18
+ * requests × the model's per-token KV bytes over its attention layers, or the KV token limit) and
19
+ * SGLang's own overhead fit the free memory — the same rule `POST /models/sglang/check` applies. It
20
+ * is an estimate for the verdict and the refusal before a container; it sizes nothing SGLang runs
21
+ * with.
22
+ *
23
+ * The reserve, the overhead (~2 GiB: CUDA context, activations, graphs) and the margin are first
24
+ * estimates; the live run of task 4.1 records the numbers (`summary.json`, `rulings/core.md`).
25
+ */
26
+ import type { GpuFacts } from '../../contracts/index.js';
27
+ import { type CheckpointMemoryInputs, type HostMemory, type JsonObject, type KvReserveBasis, type ManagedCheckEngine, type MemoryNeed } from '../managed-models/index.js';
28
+ import type { SglangLaunchPlan } from './adapter.js';
29
+ import type { SglangSettings } from './settings.js';
30
+ /** SGLang's room for activations and CUDA graphs captured up to the parallel requests (design D4, D5). */
31
+ export declare const SGLANG_RUNTIME_RESERVE_BYTES: number;
32
+ /** The same room with CUDA graphs off. */
33
+ export declare const SGLANG_RUNTIME_RESERVE_NO_GRAPHS_BYTES: number;
34
+ /** What SGLang holds beyond weights and KV cache: CUDA context, activations, graphs. */
35
+ export declare const SGLANG_ENGINE_OVERHEAD_BYTES: number;
36
+ /** Counted as needed in the memory check: what other processes may still take meanwhile. */
37
+ export declare const SGLANG_FREE_MEMORY_MARGIN_BYTES: number;
38
+ export declare const SGLANG_MIN_MEM_FRACTION_STATIC = 0.5;
39
+ export declare const SGLANG_MAX_MEM_FRACTION_STATIC = 0.95;
40
+ /**
41
+ * The KV cache the memory check counts: the KV token limit when set, else context × parallel
42
+ * requests, × the bytes per token over the model's attention layers — and whether the model's shape
43
+ * sized it. Without a shape: a quarter of the weights, at least 1 GiB.
44
+ */
45
+ export declare function sglangKvCacheBytes(checkpoint: {
46
+ configJson: JsonObject;
47
+ hfQuantConfigJson: JsonObject | null;
48
+ weightBytesTotal?: number;
49
+ }, settings: SglangSettings, gpu: GpuFacts): {
50
+ bytes: number;
51
+ basis: KvReserveBasis;
52
+ };
53
+ /**
54
+ * SGLang's memory rule on `gpu`: weights + KV cache estimate + its own overhead + a margin for what
55
+ * other processes may take meanwhile; on a card with the host's memory, whatever of `MemAvailable`
56
+ * lies beyond half the host's memory counts as needed too.
57
+ */
58
+ export declare function sglangMemoryNeed(gpu: GpuFacts, checkpoint: CheckpointMemoryInputs, settings: SglangSettings, host: HostMemory): MemoryNeed;
59
+ /** `--mem-fraction-static` from the card as it stands now (see the file banner). */
60
+ export declare function sglangMemFractionStatic(settings: SglangSettings, gpu: GpuFacts, host: HostMemory): number;
61
+ /** The launch plan `beforeCreate` hands the adapter, from the card re-probed right before the container. */
62
+ export declare function sglangLaunchPlan(settings: SglangSettings, checkpoint: CheckpointMemoryInputs, gpu: GpuFacts, host: HostMemory): SglangLaunchPlan;
63
+ /** The check skeleton's hooks for SGLang: its memory rule, and no checkpoint quirks of its own. */
64
+ export declare function sglangCheckEngine(settings: SglangSettings): ManagedCheckEngine;