@atomic-chat/core 0.5.1 → 0.13.2

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 (970) hide show
  1. package/README.md +22 -0
  2. package/dist/app-daemon.js +20 -67
  3. package/dist/app-daemon.js.map +1 -1
  4. package/dist/backend/advisor/advisor.d.ts +132 -0
  5. package/dist/backend/advisor/advisor.js +537 -0
  6. package/dist/backend/advisor/advisor.js.map +1 -0
  7. package/dist/backend/advisor/index.d.ts +6 -0
  8. package/dist/backend/advisor/index.js +7 -0
  9. package/dist/backend/advisor/index.js.map +1 -0
  10. package/dist/backend/advisor/policy.d.ts +81 -0
  11. package/dist/backend/advisor/policy.js +154 -0
  12. package/dist/backend/advisor/policy.js.map +1 -0
  13. package/dist/backend/catalog/archive.d.ts +21 -7
  14. package/dist/backend/catalog/archive.js +57 -17
  15. package/dist/backend/catalog/archive.js.map +1 -1
  16. package/dist/backend/catalog/bundled-manifest-baseline.js +42 -26
  17. package/dist/backend/catalog/bundled-manifest-baseline.js.map +1 -1
  18. package/dist/backend/catalog/cuda-family.d.ts +12 -2
  19. package/dist/backend/catalog/cuda-family.js +30 -7
  20. package/dist/backend/catalog/cuda-family.js.map +1 -1
  21. package/dist/backend/catalog/index.d.ts +5 -0
  22. package/dist/backend/catalog/index.js +5 -0
  23. package/dist/backend/catalog/index.js.map +1 -1
  24. package/dist/backend/catalog/manifest.d.ts +5 -3
  25. package/dist/backend/catalog/manifest.js +12 -9
  26. package/dist/backend/catalog/manifest.js.map +1 -1
  27. package/dist/backend/catalog/migrate.d.ts +8 -6
  28. package/dist/backend/catalog/migrate.js +26 -15
  29. package/dist/backend/catalog/migrate.js.map +1 -1
  30. package/dist/backend/catalog/prism-catalog.d.ts +42 -0
  31. package/dist/backend/catalog/prism-catalog.js +101 -0
  32. package/dist/backend/catalog/prism-catalog.js.map +1 -0
  33. package/dist/backend/catalog/prism-manifest-baseline.d.ts +2 -0
  34. package/dist/backend/catalog/prism-manifest-baseline.js +11 -0
  35. package/dist/backend/catalog/prism-manifest-baseline.js.map +1 -0
  36. package/dist/backend/catalog/prism-manifest-baseline.json +134 -0
  37. package/dist/backend/catalog/prism-manifest.d.ts +90 -0
  38. package/dist/backend/catalog/prism-manifest.js +171 -0
  39. package/dist/backend/catalog/prism-manifest.js.map +1 -0
  40. package/dist/backend/catalog/turboquant-catalog.d.ts +60 -0
  41. package/dist/backend/catalog/turboquant-catalog.js +162 -0
  42. package/dist/backend/catalog/turboquant-catalog.js.map +1 -0
  43. package/dist/backend/catalog/turboquant-index.d.ts +104 -0
  44. package/dist/backend/catalog/turboquant-index.js +260 -0
  45. package/dist/backend/catalog/turboquant-index.js.map +1 -0
  46. package/dist/backend/index.d.ts +1 -0
  47. package/dist/backend/index.js +1 -0
  48. package/dist/backend/index.js.map +1 -1
  49. package/dist/backend/install/runtime-backend.d.ts +6 -6
  50. package/dist/backend/install/runtime-backend.js +23 -20
  51. package/dist/backend/install/runtime-backend.js.map +1 -1
  52. package/dist/backend/install/service.d.ts +106 -5
  53. package/dist/backend/install/service.js +247 -21
  54. package/dist/backend/install/service.js.map +1 -1
  55. package/dist/backend/installed/bundled.d.ts +19 -0
  56. package/dist/backend/installed/bundled.js +45 -0
  57. package/dist/backend/installed/bundled.js.map +1 -0
  58. package/dist/backend/installed/index.d.ts +1 -0
  59. package/dist/backend/installed/index.js +1 -0
  60. package/dist/backend/installed/index.js.map +1 -1
  61. package/dist/backend/installed/installed.js +3 -0
  62. package/dist/backend/installed/installed.js.map +1 -1
  63. package/dist/backend/optimal/optimal-cache.d.ts +27 -8
  64. package/dist/backend/optimal/optimal-cache.js +38 -19
  65. package/dist/backend/optimal/optimal-cache.js.map +1 -1
  66. package/dist/backend/optimal/optimal-store.js +1 -1
  67. package/dist/backend/optimal/optimal-store.js.map +1 -1
  68. package/dist/backend/select/categories.d.ts +2 -1
  69. package/dist/backend/select/categories.js +8 -1
  70. package/dist/backend/select/categories.js.map +1 -1
  71. package/dist/backend/select/features.d.ts +13 -5
  72. package/dist/backend/select/features.js +36 -6
  73. package/dist/backend/select/features.js.map +1 -1
  74. package/dist/backend/select/index.d.ts +2 -0
  75. package/dist/backend/select/index.js +2 -0
  76. package/dist/backend/select/index.js.map +1 -1
  77. package/dist/backend/select/prism.d.ts +54 -0
  78. package/dist/backend/select/prism.js +212 -0
  79. package/dist/backend/select/prism.js.map +1 -0
  80. package/dist/backend/select/recovery.d.ts +4 -2
  81. package/dist/backend/select/recovery.js +17 -5
  82. package/dist/backend/select/recovery.js.map +1 -1
  83. package/dist/backend/select/tiers.d.ts +20 -11
  84. package/dist/backend/select/tiers.js +49 -11
  85. package/dist/backend/select/tiers.js.map +1 -1
  86. package/dist/backend/select/turboquant-tiers.d.ts +45 -0
  87. package/dist/backend/select/turboquant-tiers.js +114 -0
  88. package/dist/backend/select/turboquant-tiers.js.map +1 -0
  89. package/dist/backend/types.d.ts +6 -69
  90. package/dist/cli/commands/backends.d.ts +10 -0
  91. package/dist/cli/commands/backends.js +142 -0
  92. package/dist/cli/commands/backends.js.map +1 -0
  93. package/dist/cli/commands/hardware.d.ts +13 -0
  94. package/dist/cli/commands/hardware.js +71 -0
  95. package/dist/cli/commands/hardware.js.map +1 -0
  96. package/dist/cli/commands/host-step.d.ts +28 -0
  97. package/dist/cli/commands/host-step.js +67 -0
  98. package/dist/cli/commands/host-step.js.map +1 -0
  99. package/dist/cli/commands/index.d.ts +4 -1
  100. package/dist/cli/commands/index.js +4 -1
  101. package/dist/cli/commands/index.js.map +1 -1
  102. package/dist/cli/commands/serve.js +4 -4
  103. package/dist/cli/commands/serve.js.map +1 -1
  104. package/dist/cli/commands/shared.d.ts +6 -1
  105. package/dist/cli/commands/shared.js +7 -0
  106. package/dist/cli/commands/shared.js.map +1 -1
  107. package/dist/cli/io.d.ts +11 -0
  108. package/dist/cli/io.js +28 -3
  109. package/dist/cli/io.js.map +1 -1
  110. package/dist/cli/launch.js +2 -2
  111. package/dist/cli/launch.js.map +1 -1
  112. package/dist/cli/main.d.ts +1 -1
  113. package/dist/cli/main.js +11 -1
  114. package/dist/cli/main.js.map +1 -1
  115. package/dist/client/control-client.d.ts +128 -7
  116. package/dist/client/control-client.js +211 -12
  117. package/dist/client/control-client.js.map +1 -1
  118. package/dist/cloud/registry.js +9 -1
  119. package/dist/cloud/registry.js.map +1 -1
  120. package/dist/config/paths.d.ts +137 -0
  121. package/dist/config/paths.js +163 -0
  122. package/dist/config/paths.js.map +1 -1
  123. package/dist/contracts/backend-advisor.d.ts +225 -0
  124. package/dist/contracts/backend-advisor.js +14 -0
  125. package/dist/contracts/backend-advisor.js.map +1 -0
  126. package/dist/contracts/control-api.d.ts +7 -1
  127. package/dist/contracts/control-api.js +7 -1
  128. package/dist/contracts/control-api.js.map +1 -1
  129. package/dist/contracts/decision.d.ts +394 -0
  130. package/dist/contracts/decision.js +69 -0
  131. package/dist/contracts/decision.js.map +1 -0
  132. package/dist/contracts/diffusion.d.ts +62 -9
  133. package/dist/contracts/embedding.d.ts +103 -0
  134. package/dist/contracts/embedding.js +24 -0
  135. package/dist/contracts/embedding.js.map +1 -0
  136. package/dist/contracts/engine-builds.d.ts +108 -0
  137. package/dist/contracts/engine-builds.js +11 -0
  138. package/dist/contracts/engine-builds.js.map +1 -0
  139. package/dist/contracts/engines.d.ts +157 -0
  140. package/dist/contracts/engines.js +50 -0
  141. package/dist/contracts/engines.js.map +1 -0
  142. package/dist/contracts/environment.d.ts +774 -0
  143. package/dist/contracts/environment.js +116 -0
  144. package/dist/contracts/environment.js.map +1 -0
  145. package/dist/contracts/errors.d.ts +43 -2
  146. package/dist/contracts/errors.js +41 -0
  147. package/dist/contracts/errors.js.map +1 -1
  148. package/dist/contracts/events.d.ts +82 -4
  149. package/dist/contracts/hardware.d.ts +79 -6
  150. package/dist/contracts/hardware.js +9 -5
  151. package/dist/contracts/hardware.js.map +1 -1
  152. package/dist/contracts/index.d.ts +8 -0
  153. package/dist/contracts/index.js +8 -0
  154. package/dist/contracts/index.js.map +1 -1
  155. package/dist/contracts/model-compatibility.d.ts +97 -0
  156. package/dist/contracts/model-compatibility.js +6 -0
  157. package/dist/contracts/model-compatibility.js.map +1 -0
  158. package/dist/contracts/model-setup.d.ts +115 -0
  159. package/dist/contracts/model-setup.js +33 -0
  160. package/dist/contracts/model-setup.js.map +1 -0
  161. package/dist/contracts/model-yml.d.ts +14 -0
  162. package/dist/contracts/model-yml.js +1 -0
  163. package/dist/contracts/model-yml.js.map +1 -1
  164. package/dist/contracts/session.d.ts +45 -2
  165. package/dist/contracts/session.js +14 -1
  166. package/dist/contracts/session.js.map +1 -1
  167. package/dist/contracts/settings.d.ts +44 -1
  168. package/dist/contracts/settings.js.map +1 -1
  169. package/dist/core/atomic-core.d.ts +44 -5
  170. package/dist/core/atomic-core.js +24 -0
  171. package/dist/core/atomic-core.js.map +1 -1
  172. package/dist/core/create.js +517 -23
  173. package/dist/core/create.js.map +1 -1
  174. package/dist/core/gpu/index.d.ts +6 -0
  175. package/dist/core/gpu/index.js +7 -0
  176. package/dist/core/gpu/index.js.map +1 -0
  177. package/dist/core/gpu/policy.d.ts +68 -0
  178. package/dist/core/gpu/policy.js +99 -0
  179. package/dist/core/gpu/policy.js.map +1 -0
  180. package/dist/core/gpu/residency.d.ts +44 -0
  181. package/dist/core/gpu/residency.js +101 -0
  182. package/dist/core/gpu/residency.js.map +1 -0
  183. package/dist/core/gpu-residency.d.ts +39 -0
  184. package/dist/core/gpu-residency.js +32 -0
  185. package/dist/core/gpu-residency.js.map +1 -0
  186. package/dist/core/index.d.ts +1 -1
  187. package/dist/core/managed-engines.d.ts +207 -0
  188. package/dist/core/managed-engines.js +579 -0
  189. package/dist/core/managed-engines.js.map +1 -0
  190. package/dist/core/managed-environment.d.ts +72 -0
  191. package/dist/core/managed-environment.js +218 -0
  192. package/dist/core/managed-environment.js.map +1 -0
  193. package/dist/core/model-setup/index.d.ts +4 -0
  194. package/dist/core/model-setup/index.js +5 -0
  195. package/dist/core/model-setup/index.js.map +1 -0
  196. package/dist/core/model-setup/plan.d.ts +56 -0
  197. package/dist/core/model-setup/plan.js +158 -0
  198. package/dist/core/model-setup/plan.js.map +1 -0
  199. package/dist/core/model-setup/service.d.ts +92 -0
  200. package/dist/core/model-setup/service.js +329 -0
  201. package/dist/core/model-setup/service.js.map +1 -0
  202. package/dist/core/model-setup/store.d.ts +29 -0
  203. package/dist/core/model-setup/store.js +116 -0
  204. package/dist/core/model-setup/store.js.map +1 -0
  205. package/dist/core/model-setup/wiring.d.ts +59 -0
  206. package/dist/core/model-setup/wiring.js +132 -0
  207. package/dist/core/model-setup/wiring.js.map +1 -0
  208. package/dist/core/prism.d.ts +36 -0
  209. package/dist/core/prism.js +42 -0
  210. package/dist/core/prism.js.map +1 -0
  211. package/dist/core/public-server.d.ts +7 -0
  212. package/dist/core/public-server.js +2 -0
  213. package/dist/core/public-server.js.map +1 -1
  214. package/dist/core/sessions.d.ts +6 -1
  215. package/dist/core/sessions.js +18 -14
  216. package/dist/core/sessions.js.map +1 -1
  217. package/dist/core/types.d.ts +27 -1
  218. package/dist/core/types.js.map +1 -1
  219. package/dist/decision/args.d.ts +110 -0
  220. package/dist/decision/args.js +126 -0
  221. package/dist/decision/args.js.map +1 -0
  222. package/dist/decision/backoff.d.ts +25 -0
  223. package/dist/decision/backoff.js +33 -0
  224. package/dist/decision/backoff.js.map +1 -0
  225. package/dist/decision/engine-candidates.d.ts +52 -0
  226. package/dist/decision/engine-candidates.js +138 -0
  227. package/dist/decision/engine-candidates.js.map +1 -0
  228. package/dist/decision/engine-fallback.d.ts +41 -0
  229. package/dist/decision/engine-fallback.js +57 -0
  230. package/dist/decision/engine-fallback.js.map +1 -0
  231. package/dist/decision/engine-version.d.ts +27 -0
  232. package/dist/decision/engine-version.js +54 -0
  233. package/dist/decision/engine-version.js.map +1 -0
  234. package/dist/decision/engine.d.ts +114 -0
  235. package/dist/decision/engine.js +253 -0
  236. package/dist/decision/engine.js.map +1 -0
  237. package/dist/decision/http.d.ts +36 -0
  238. package/dist/decision/http.js +73 -0
  239. package/dist/decision/http.js.map +1 -0
  240. package/dist/decision/index.d.ts +20 -0
  241. package/dist/decision/index.js +21 -0
  242. package/dist/decision/index.js.map +1 -0
  243. package/dist/decision/model-facts.d.ts +32 -0
  244. package/dist/decision/model-facts.js +40 -0
  245. package/dist/decision/model-facts.js.map +1 -0
  246. package/dist/decision/outcome.d.ts +35 -0
  247. package/dist/decision/outcome.js +105 -0
  248. package/dist/decision/outcome.js.map +1 -0
  249. package/dist/decision/process.d.ts +67 -0
  250. package/dist/decision/process.js +133 -0
  251. package/dist/decision/process.js.map +1 -0
  252. package/dist/decision/readiness.d.ts +74 -0
  253. package/dist/decision/readiness.js +165 -0
  254. package/dist/decision/readiness.js.map +1 -0
  255. package/dist/decision/request.d.ts +11 -0
  256. package/dist/decision/request.js +56 -0
  257. package/dist/decision/request.js.map +1 -0
  258. package/dist/decision/service.d.ts +202 -0
  259. package/dist/decision/service.js +711 -0
  260. package/dist/decision/service.js.map +1 -0
  261. package/dist/decision/upstream-version.d.ts +23 -0
  262. package/dist/decision/upstream-version.js +34 -0
  263. package/dist/decision/upstream-version.js.map +1 -0
  264. package/dist/decision/wiring.d.ts +67 -0
  265. package/dist/decision/wiring.js +101 -0
  266. package/dist/decision/wiring.js.map +1 -0
  267. package/dist/diffusion/args.d.ts +4 -2
  268. package/dist/diffusion/args.js +10 -3
  269. package/dist/diffusion/args.js.map +1 -1
  270. package/dist/diffusion/image-job.js +1 -1
  271. package/dist/diffusion/image-job.js.map +1 -1
  272. package/dist/diffusion/install.d.ts +35 -11
  273. package/dist/diffusion/install.js +74 -49
  274. package/dist/diffusion/install.js.map +1 -1
  275. package/dist/diffusion/job-kind.d.ts +33 -7
  276. package/dist/diffusion/jobs.d.ts +6 -1
  277. package/dist/diffusion/jobs.js +60 -18
  278. package/dist/diffusion/jobs.js.map +1 -1
  279. package/dist/diffusion/parse.d.ts +1 -2
  280. package/dist/diffusion/parse.js +1 -13
  281. package/dist/diffusion/parse.js.map +1 -1
  282. package/dist/diffusion/progress.js +3 -0
  283. package/dist/diffusion/progress.js.map +1 -1
  284. package/dist/diffusion/server-process.d.ts +6 -0
  285. package/dist/diffusion/server-process.js +3 -2
  286. package/dist/diffusion/server-process.js.map +1 -1
  287. package/dist/diffusion/service.d.ts +52 -6
  288. package/dist/diffusion/service.js +215 -40
  289. package/dist/diffusion/service.js.map +1 -1
  290. package/dist/diffusion/session.d.ts +27 -3
  291. package/dist/diffusion/session.js +108 -17
  292. package/dist/diffusion/session.js.map +1 -1
  293. package/dist/diffusion/state.d.ts +19 -1
  294. package/dist/diffusion/state.js +10 -0
  295. package/dist/diffusion/state.js.map +1 -1
  296. package/dist/diffusion/tracker.d.ts +15 -1
  297. package/dist/diffusion/tracker.js +32 -6
  298. package/dist/diffusion/tracker.js.map +1 -1
  299. package/dist/diffusion/types.d.ts +7 -0
  300. package/dist/diffusion/types.js +11 -0
  301. package/dist/diffusion/types.js.map +1 -1
  302. package/dist/diffusion/video-estimate.d.ts +214 -0
  303. package/dist/diffusion/video-estimate.js +402 -0
  304. package/dist/diffusion/video-estimate.js.map +1 -0
  305. package/dist/diffusion/video-eta.d.ts +90 -0
  306. package/dist/diffusion/video-eta.js +248 -0
  307. package/dist/diffusion/video-eta.js.map +1 -0
  308. package/dist/diffusion/video-history.d.ts +45 -0
  309. package/dist/diffusion/video-history.js +121 -0
  310. package/dist/diffusion/video-history.js.map +1 -0
  311. package/dist/diffusion/video-job.d.ts +13 -5
  312. package/dist/diffusion/video-job.js +42 -15
  313. package/dist/diffusion/video-job.js.map +1 -1
  314. package/dist/diffusion/video-recipe.js +3 -0
  315. package/dist/diffusion/video-recipe.js.map +1 -1
  316. package/dist/diffusion/video-tiling.d.ts +54 -0
  317. package/dist/diffusion/video-tiling.js +70 -0
  318. package/dist/diffusion/video-tiling.js.map +1 -0
  319. package/dist/diffusion/wiring.d.ts +14 -1
  320. package/dist/diffusion/wiring.js +7 -0
  321. package/dist/diffusion/wiring.js.map +1 -1
  322. package/dist/downloads/protocol.d.ts +3 -8
  323. package/dist/downloads/protocol.js.map +1 -1
  324. package/dist/embedding/args.d.ts +39 -0
  325. package/dist/embedding/args.js +46 -0
  326. package/dist/embedding/args.js.map +1 -0
  327. package/dist/embedding/engine.d.ts +50 -0
  328. package/dist/embedding/engine.js +100 -0
  329. package/dist/embedding/engine.js.map +1 -0
  330. package/dist/embedding/ffmpeg.d.ts +18 -0
  331. package/dist/embedding/ffmpeg.js +63 -0
  332. package/dist/embedding/ffmpeg.js.map +1 -0
  333. package/dist/embedding/index.d.ts +16 -0
  334. package/dist/embedding/index.js +17 -0
  335. package/dist/embedding/index.js.map +1 -0
  336. package/dist/embedding/model-facts.d.ts +51 -0
  337. package/dist/embedding/model-facts.js +84 -0
  338. package/dist/embedding/model-facts.js.map +1 -0
  339. package/dist/embedding/process.d.ts +66 -0
  340. package/dist/embedding/process.js +131 -0
  341. package/dist/embedding/process.js.map +1 -0
  342. package/dist/embedding/readiness.d.ts +56 -0
  343. package/dist/embedding/readiness.js +114 -0
  344. package/dist/embedding/readiness.js.map +1 -0
  345. package/dist/embedding/request.d.ts +43 -0
  346. package/dist/embedding/request.js +285 -0
  347. package/dist/embedding/request.js.map +1 -0
  348. package/dist/embedding/service.d.ts +152 -0
  349. package/dist/embedding/service.js +602 -0
  350. package/dist/embedding/service.js.map +1 -0
  351. package/dist/embedding/wiring.d.ts +51 -0
  352. package/dist/embedding/wiring.js +79 -0
  353. package/dist/embedding/wiring.js.map +1 -0
  354. package/dist/engine-builds/builds.d.ts +54 -0
  355. package/dist/engine-builds/builds.js +151 -0
  356. package/dist/engine-builds/builds.js.map +1 -0
  357. package/dist/engine-builds/index.d.ts +10 -0
  358. package/dist/engine-builds/index.js +11 -0
  359. package/dist/engine-builds/index.js.map +1 -0
  360. package/dist/engine-builds/install.d.ts +42 -0
  361. package/dist/engine-builds/install.js +100 -0
  362. package/dist/engine-builds/install.js.map +1 -0
  363. package/dist/engine-builds/manifest.d.ts +121 -0
  364. package/dist/engine-builds/manifest.js +254 -0
  365. package/dist/engine-builds/manifest.js.map +1 -0
  366. package/dist/engine-builds/order.d.ts +24 -0
  367. package/dist/engine-builds/order.js +44 -0
  368. package/dist/engine-builds/order.js.map +1 -0
  369. package/dist/engine-builds/select.d.ts +123 -0
  370. package/dist/engine-builds/select.js +223 -0
  371. package/dist/engine-builds/select.js.map +1 -0
  372. package/dist/engine-builds/service.d.ts +123 -0
  373. package/dist/engine-builds/service.js +392 -0
  374. package/dist/engine-builds/service.js.map +1 -0
  375. package/dist/engines/descriptor-order.d.ts +28 -0
  376. package/dist/engines/descriptor-order.js +60 -0
  377. package/dist/engines/descriptor-order.js.map +1 -0
  378. package/dist/engines/engine-build.d.ts +23 -0
  379. package/dist/engines/engine-build.js +58 -0
  380. package/dist/engines/engine-build.js.map +1 -0
  381. package/dist/engines/index.d.ts +10 -0
  382. package/dist/engines/index.js +11 -0
  383. package/dist/engines/index.js.map +1 -0
  384. package/dist/engines/llamacpp.d.ts +71 -0
  385. package/dist/engines/llamacpp.js +176 -0
  386. package/dist/engines/llamacpp.js.map +1 -0
  387. package/dist/engines/managed.d.ts +49 -0
  388. package/dist/engines/managed.js +88 -0
  389. package/dist/engines/managed.js.map +1 -0
  390. package/dist/engines/service.d.ts +46 -0
  391. package/dist/engines/service.js +61 -0
  392. package/dist/engines/service.js.map +1 -0
  393. package/dist/engines/versions.d.ts +65 -0
  394. package/dist/engines/versions.js +259 -0
  395. package/dist/engines/versions.js.map +1 -0
  396. package/dist/hardware/cpu-flags.d.ts +44 -0
  397. package/dist/hardware/cpu-flags.js +206 -0
  398. package/dist/hardware/cpu-flags.js.map +1 -0
  399. package/dist/hardware/drm-sysfs.d.ts +51 -0
  400. package/dist/hardware/drm-sysfs.js +67 -0
  401. package/dist/hardware/drm-sysfs.js.map +1 -0
  402. package/dist/hardware/facts.d.ts +42 -0
  403. package/dist/hardware/facts.js +92 -0
  404. package/dist/hardware/facts.js.map +1 -0
  405. package/dist/hardware/index.d.ts +19 -3
  406. package/dist/hardware/index.js +19 -3
  407. package/dist/hardware/index.js.map +1 -1
  408. package/dist/hardware/merge.d.ts +55 -0
  409. package/dist/hardware/merge.js +141 -0
  410. package/dist/hardware/merge.js.map +1 -0
  411. package/dist/hardware/nvidia-smi.d.ts +43 -0
  412. package/dist/hardware/nvidia-smi.js +118 -0
  413. package/dist/hardware/nvidia-smi.js.map +1 -0
  414. package/dist/hardware/probe-common.d.ts +72 -0
  415. package/dist/hardware/probe-common.js +106 -0
  416. package/dist/hardware/probe-common.js.map +1 -0
  417. package/dist/hardware/probe-darwin.d.ts +20 -0
  418. package/dist/hardware/probe-darwin.js +76 -0
  419. package/dist/hardware/probe-darwin.js.map +1 -0
  420. package/dist/hardware/probe-linux.d.ts +9 -0
  421. package/dist/hardware/probe-linux.js +133 -0
  422. package/dist/hardware/probe-linux.js.map +1 -0
  423. package/dist/hardware/probe-windows.d.ts +7 -0
  424. package/dist/hardware/probe-windows.js +50 -0
  425. package/dist/hardware/probe-windows.js.map +1 -0
  426. package/dist/hardware/probe.d.ts +16 -0
  427. package/dist/hardware/probe.js +65 -0
  428. package/dist/hardware/probe.js.map +1 -0
  429. package/dist/hardware/service.d.ts +60 -0
  430. package/dist/hardware/service.js +114 -0
  431. package/dist/hardware/service.js.map +1 -0
  432. package/dist/hardware/vulkan.d.ts +47 -0
  433. package/dist/hardware/vulkan.js +148 -0
  434. package/dist/hardware/vulkan.js.map +1 -0
  435. package/dist/hardware/windows-video.d.ts +97 -0
  436. package/dist/hardware/windows-video.js +214 -0
  437. package/dist/hardware/windows-video.js.map +1 -0
  438. package/dist/host/app-daemon.d.ts +47 -0
  439. package/dist/host/app-daemon.js +146 -0
  440. package/dist/host/app-daemon.js.map +1 -0
  441. package/dist/host/index.d.ts +5 -3
  442. package/dist/host/index.js +5 -3
  443. package/dist/host/index.js.map +1 -1
  444. package/dist/host/log-file.d.ts +74 -0
  445. package/dist/host/log-file.js +214 -0
  446. package/dist/host/log-file.js.map +1 -0
  447. package/dist/host/recipes/enable-wsl.d.ts +63 -0
  448. package/dist/host/recipes/enable-wsl.js +73 -0
  449. package/dist/host/recipes/enable-wsl.js.map +1 -0
  450. package/dist/host/recipes/executor-io-windows.d.ts +69 -0
  451. package/dist/host/recipes/executor-io-windows.js +235 -0
  452. package/dist/host/recipes/executor-io-windows.js.map +1 -0
  453. package/dist/host/recipes/executor-io.d.ts +80 -0
  454. package/dist/host/recipes/executor-io.js +211 -0
  455. package/dist/host/recipes/executor-io.js.map +1 -0
  456. package/dist/host/recipes/executor.d.ts +81 -0
  457. package/dist/host/recipes/executor.js +678 -0
  458. package/dist/host/recipes/executor.js.map +1 -0
  459. package/dist/host/recipes/guest-executor.d.ts +29 -0
  460. package/dist/host/recipes/guest-executor.js +76 -0
  461. package/dist/host/recipes/guest-executor.js.map +1 -0
  462. package/dist/host/recipes/index.d.ts +16 -0
  463. package/dist/host/recipes/index.js +17 -0
  464. package/dist/host/recipes/index.js.map +1 -0
  465. package/dist/host/recipes/install-container-runtime.d.ts +389 -0
  466. package/dist/host/recipes/install-container-runtime.js +796 -0
  467. package/dist/host/recipes/install-container-runtime.js.map +1 -0
  468. package/dist/host/recipes/openpgp.d.ts +23 -0
  469. package/dist/host/recipes/openpgp.js +153 -0
  470. package/dist/host/recipes/openpgp.js.map +1 -0
  471. package/dist/host/recipes/request-file.d.ts +96 -0
  472. package/dist/host/recipes/request-file.js +103 -0
  473. package/dist/host/recipes/request-file.js.map +1 -0
  474. package/dist/lock/process-journal.d.ts +5 -2
  475. package/dist/lock/process-journal.js.map +1 -1
  476. package/dist/models/capabilities.d.ts +7 -0
  477. package/dist/models/capabilities.js +17 -1
  478. package/dist/models/capabilities.js.map +1 -1
  479. package/dist/models/compatibility/index.d.ts +10 -0
  480. package/dist/models/compatibility/index.js +11 -0
  481. package/dist/models/compatibility/index.js.map +1 -0
  482. package/dist/models/compatibility/inspect.d.ts +19 -0
  483. package/dist/models/compatibility/inspect.js +59 -0
  484. package/dist/models/compatibility/inspect.js.map +1 -0
  485. package/dist/models/compatibility/resolve.d.ts +59 -0
  486. package/dist/models/compatibility/resolve.js +219 -0
  487. package/dist/models/compatibility/resolve.js.map +1 -0
  488. package/dist/models/compatibility/rules-baseline.d.ts +2 -0
  489. package/dist/models/compatibility/rules-baseline.js +10 -0
  490. package/dist/models/compatibility/rules-baseline.js.map +1 -0
  491. package/dist/models/compatibility/rules-baseline.json +292 -0
  492. package/dist/models/compatibility/rules-service.d.ts +36 -0
  493. package/dist/models/compatibility/rules-service.js +109 -0
  494. package/dist/models/compatibility/rules-service.js.map +1 -0
  495. package/dist/models/compatibility/rules.d.ts +81 -0
  496. package/dist/models/compatibility/rules.js +164 -0
  497. package/dist/models/compatibility/rules.js.map +1 -0
  498. package/dist/models/compatibility/service.d.ts +59 -0
  499. package/dist/models/compatibility/service.js +137 -0
  500. package/dist/models/compatibility/service.js.map +1 -0
  501. package/dist/models/decision-checkpoint.d.ts +22 -0
  502. package/dist/models/decision-checkpoint.js +33 -0
  503. package/dist/models/decision-checkpoint.js.map +1 -0
  504. package/dist/models/gguf/classify.d.ts +27 -1
  505. package/dist/models/gguf/classify.js +78 -2
  506. package/dist/models/gguf/classify.js.map +1 -1
  507. package/dist/models/gguf/index.d.ts +1 -0
  508. package/dist/models/gguf/index.js +1 -0
  509. package/dist/models/gguf/index.js.map +1 -1
  510. package/dist/models/gguf/tensors.d.ts +56 -0
  511. package/dist/models/gguf/tensors.js +236 -0
  512. package/dist/models/gguf/tensors.js.map +1 -0
  513. package/dist/models/index.d.ts +2 -0
  514. package/dist/models/index.js +2 -0
  515. package/dist/models/index.js.map +1 -1
  516. package/dist/router/resolve.d.ts +7 -1
  517. package/dist/router/resolve.js +14 -1
  518. package/dist/router/resolve.js.map +1 -1
  519. package/dist/runtime/container/argv.d.ts +88 -0
  520. package/dist/runtime/container/argv.js +406 -0
  521. package/dist/runtime/container/argv.js.map +1 -0
  522. package/dist/runtime/container/docker-binary.d.ts +4 -0
  523. package/dist/runtime/container/docker-binary.js +34 -0
  524. package/dist/runtime/container/docker-binary.js.map +1 -0
  525. package/dist/runtime/container/env.d.ts +17 -0
  526. package/dist/runtime/container/env.js +52 -0
  527. package/dist/runtime/container/env.js.map +1 -0
  528. package/dist/runtime/container/exec.d.ts +27 -0
  529. package/dist/runtime/container/exec.js +79 -0
  530. package/dist/runtime/container/exec.js.map +1 -0
  531. package/dist/runtime/container/execution-journal.d.ts +55 -0
  532. package/dist/runtime/container/execution-journal.js +167 -0
  533. package/dist/runtime/container/execution-journal.js.map +1 -0
  534. package/dist/runtime/container/heartbeat.d.ts +47 -0
  535. package/dist/runtime/container/heartbeat.js +78 -0
  536. package/dist/runtime/container/heartbeat.js.map +1 -0
  537. package/dist/runtime/container/index.d.ts +30 -0
  538. package/dist/runtime/container/index.js +31 -0
  539. package/dist/runtime/container/index.js.map +1 -0
  540. package/dist/runtime/container/operations.d.ts +40 -0
  541. package/dist/runtime/container/operations.js +233 -0
  542. package/dist/runtime/container/operations.js.map +1 -0
  543. package/dist/runtime/container/pull.d.ts +48 -0
  544. package/dist/runtime/container/pull.js +280 -0
  545. package/dist/runtime/container/pull.js.map +1 -0
  546. package/dist/runtime/container/reconcile.d.ts +34 -0
  547. package/dist/runtime/container/reconcile.js +79 -0
  548. package/dist/runtime/container/reconcile.js.map +1 -0
  549. package/dist/runtime/container/types.d.ts +124 -0
  550. package/dist/runtime/container/types.js +2 -0
  551. package/dist/runtime/container/types.js.map +1 -0
  552. package/dist/runtime/container/watchdog.d.ts +114 -0
  553. package/dist/runtime/container/watchdog.js +418 -0
  554. package/dist/runtime/container/watchdog.js.map +1 -0
  555. package/dist/runtime/container/wiring.d.ts +78 -0
  556. package/dist/runtime/container/wiring.js +92 -0
  557. package/dist/runtime/container/wiring.js.map +1 -0
  558. package/dist/runtime/container/wsl-exec.d.ts +13 -0
  559. package/dist/runtime/container/wsl-exec.js +18 -0
  560. package/dist/runtime/container/wsl-exec.js.map +1 -0
  561. package/dist/runtime/environment/cached-document.d.ts +128 -0
  562. package/dist/runtime/environment/cached-document.js +218 -0
  563. package/dist/runtime/environment/cached-document.js.map +1 -0
  564. package/dist/runtime/environment/canonical-json.d.ts +78 -0
  565. package/dist/runtime/environment/canonical-json.js +86 -0
  566. package/dist/runtime/environment/canonical-json.js.map +1 -0
  567. package/dist/runtime/environment/descriptor-provider.d.ts +121 -0
  568. package/dist/runtime/environment/descriptor-provider.js +159 -0
  569. package/dist/runtime/environment/descriptor-provider.js.map +1 -0
  570. package/dist/runtime/environment/descriptor.d.ts +35 -0
  571. package/dist/runtime/environment/descriptor.js +239 -0
  572. package/dist/runtime/environment/descriptor.js.map +1 -0
  573. package/dist/runtime/environment/diagnostics.d.ts +50 -0
  574. package/dist/runtime/environment/diagnostics.js +114 -0
  575. package/dist/runtime/environment/diagnostics.js.map +1 -0
  576. package/dist/runtime/environment/document-fields.d.ts +39 -0
  577. package/dist/runtime/environment/document-fields.js +96 -0
  578. package/dist/runtime/environment/document-fields.js.map +1 -0
  579. package/dist/runtime/environment/environment-manifest-provider.d.ts +65 -0
  580. package/dist/runtime/environment/environment-manifest-provider.js +89 -0
  581. package/dist/runtime/environment/environment-manifest-provider.js.map +1 -0
  582. package/dist/runtime/environment/environment-manifest.d.ts +35 -0
  583. package/dist/runtime/environment/environment-manifest.js +131 -0
  584. package/dist/runtime/environment/environment-manifest.js.map +1 -0
  585. package/dist/runtime/environment/guest-host.d.ts +43 -0
  586. package/dist/runtime/environment/guest-host.js +88 -0
  587. package/dist/runtime/environment/guest-host.js.map +1 -0
  588. package/dist/runtime/environment/host-exec.d.ts +38 -0
  589. package/dist/runtime/environment/host-exec.js +145 -0
  590. package/dist/runtime/environment/host-exec.js.map +1 -0
  591. package/dist/runtime/environment/host-step-failure.d.ts +33 -0
  592. package/dist/runtime/environment/host-step-failure.js +34 -0
  593. package/dist/runtime/environment/host-step-failure.js.map +1 -0
  594. package/dist/runtime/environment/index.d.ts +56 -0
  595. package/dist/runtime/environment/index.js +57 -0
  596. package/dist/runtime/environment/index.js.map +1 -0
  597. package/dist/runtime/environment/installations.d.ts +25 -0
  598. package/dist/runtime/environment/installations.js +70 -0
  599. package/dist/runtime/environment/installations.js.map +1 -0
  600. package/dist/runtime/environment/inventory.d.ts +42 -0
  601. package/dist/runtime/environment/inventory.js +57 -0
  602. package/dist/runtime/environment/inventory.js.map +1 -0
  603. package/dist/runtime/environment/linux-blockers.d.ts +130 -0
  604. package/dist/runtime/environment/linux-blockers.js +251 -0
  605. package/dist/runtime/environment/linux-blockers.js.map +1 -0
  606. package/dist/runtime/environment/linux-docker-facts.d.ts +200 -0
  607. package/dist/runtime/environment/linux-docker-facts.js +342 -0
  608. package/dist/runtime/environment/linux-docker-facts.js.map +1 -0
  609. package/dist/runtime/environment/linux-docker-network.d.ts +80 -0
  610. package/dist/runtime/environment/linux-docker-network.js +195 -0
  611. package/dist/runtime/environment/linux-docker-network.js.map +1 -0
  612. package/dist/runtime/environment/linux-host.d.ts +22 -0
  613. package/dist/runtime/environment/linux-host.js +98 -0
  614. package/dist/runtime/environment/linux-host.js.map +1 -0
  615. package/dist/runtime/environment/linux-plan.d.ts +126 -0
  616. package/dist/runtime/environment/linux-plan.js +392 -0
  617. package/dist/runtime/environment/linux-plan.js.map +1 -0
  618. package/dist/runtime/environment/linux-probe.d.ts +245 -0
  619. package/dist/runtime/environment/linux-probe.js +315 -0
  620. package/dist/runtime/environment/linux-probe.js.map +1 -0
  621. package/dist/runtime/environment/linux-provisioner.d.ts +102 -0
  622. package/dist/runtime/environment/linux-provisioner.js +734 -0
  623. package/dist/runtime/environment/linux-provisioner.js.map +1 -0
  624. package/dist/runtime/environment/provisioner-descriptors.d.ts +17 -0
  625. package/dist/runtime/environment/provisioner-descriptors.js +62 -0
  626. package/dist/runtime/environment/provisioner-descriptors.js.map +1 -0
  627. package/dist/runtime/environment/recovery.d.ts +74 -0
  628. package/dist/runtime/environment/recovery.js +121 -0
  629. package/dist/runtime/environment/recovery.js.map +1 -0
  630. package/dist/runtime/environment/rootfs-download.d.ts +2 -0
  631. package/dist/runtime/environment/rootfs-download.js +47 -0
  632. package/dist/runtime/environment/rootfs-download.js.map +1 -0
  633. package/dist/runtime/environment/service.d.ts +280 -0
  634. package/dist/runtime/environment/service.js +776 -0
  635. package/dist/runtime/environment/service.js.map +1 -0
  636. package/dist/runtime/environment/state.d.ts +163 -0
  637. package/dist/runtime/environment/state.js +479 -0
  638. package/dist/runtime/environment/state.js.map +1 -0
  639. package/dist/runtime/environment/store-models.d.ts +19 -0
  640. package/dist/runtime/environment/store-models.js +30 -0
  641. package/dist/runtime/environment/store-models.js.map +1 -0
  642. package/dist/runtime/environment/store.d.ts +210 -0
  643. package/dist/runtime/environment/store.js +438 -0
  644. package/dist/runtime/environment/store.js.map +1 -0
  645. package/dist/runtime/environment/windows-environment-record.d.ts +48 -0
  646. package/dist/runtime/environment/windows-environment-record.js +89 -0
  647. package/dist/runtime/environment/windows-environment-record.js.map +1 -0
  648. package/dist/runtime/environment/windows-forwarding.d.ts +27 -0
  649. package/dist/runtime/environment/windows-forwarding.js +84 -0
  650. package/dist/runtime/environment/windows-forwarding.js.map +1 -0
  651. package/dist/runtime/environment/windows-guest-setup.d.ts +48 -0
  652. package/dist/runtime/environment/windows-guest-setup.js +157 -0
  653. package/dist/runtime/environment/windows-guest-setup.js.map +1 -0
  654. package/dist/runtime/environment/windows-host.d.ts +46 -0
  655. package/dist/runtime/environment/windows-host.js +163 -0
  656. package/dist/runtime/environment/windows-host.js.map +1 -0
  657. package/dist/runtime/environment/windows-plan.d.ts +78 -0
  658. package/dist/runtime/environment/windows-plan.js +216 -0
  659. package/dist/runtime/environment/windows-plan.js.map +1 -0
  660. package/dist/runtime/environment/windows-probe.d.ts +135 -0
  661. package/dist/runtime/environment/windows-probe.js +261 -0
  662. package/dist/runtime/environment/windows-probe.js.map +1 -0
  663. package/dist/runtime/environment/windows-provisioner.d.ts +113 -0
  664. package/dist/runtime/environment/windows-provisioner.js +782 -0
  665. package/dist/runtime/environment/windows-provisioner.js.map +1 -0
  666. package/dist/runtime/environment/wiring.d.ts +117 -0
  667. package/dist/runtime/environment/wiring.js +354 -0
  668. package/dist/runtime/environment/wiring.js.map +1 -0
  669. package/dist/runtime/foundation-models/runtime.d.ts +8 -0
  670. package/dist/runtime/foundation-models/runtime.js +5 -2
  671. package/dist/runtime/foundation-models/runtime.js.map +1 -1
  672. package/dist/runtime/llamacpp/args.d.ts +10 -1
  673. package/dist/runtime/llamacpp/args.js +43 -7
  674. package/dist/runtime/llamacpp/args.js.map +1 -1
  675. package/dist/runtime/llamacpp/fit-margin.d.ts +46 -0
  676. package/dist/runtime/llamacpp/fit-margin.js +47 -0
  677. package/dist/runtime/llamacpp/fit-margin.js.map +1 -0
  678. package/dist/runtime/llamacpp/index.d.ts +1 -0
  679. package/dist/runtime/llamacpp/index.js +1 -0
  680. package/dist/runtime/llamacpp/index.js.map +1 -1
  681. package/dist/runtime/llamacpp/load-plan.d.ts +23 -1
  682. package/dist/runtime/llamacpp/load-plan.js +82 -1
  683. package/dist/runtime/llamacpp/load-plan.js.map +1 -1
  684. package/dist/runtime/llamacpp/policy.d.ts +16 -0
  685. package/dist/runtime/llamacpp/policy.js +20 -0
  686. package/dist/runtime/llamacpp/policy.js.map +1 -1
  687. package/dist/runtime/llamacpp/probe.d.ts +21 -1
  688. package/dist/runtime/llamacpp/probe.js +32 -6
  689. package/dist/runtime/llamacpp/probe.js.map +1 -1
  690. package/dist/runtime/llamacpp/runtime.d.ts +56 -1
  691. package/dist/runtime/llamacpp/runtime.js +142 -15
  692. package/dist/runtime/llamacpp/runtime.js.map +1 -1
  693. package/dist/runtime/managed-engines/index.d.ts +8 -0
  694. package/dist/runtime/managed-engines/index.js +9 -0
  695. package/dist/runtime/managed-engines/index.js.map +1 -0
  696. package/dist/runtime/managed-engines/runtime.d.ts +140 -0
  697. package/dist/runtime/managed-engines/runtime.js +402 -0
  698. package/dist/runtime/managed-engines/runtime.js.map +1 -0
  699. package/dist/runtime/managed-engines/spec.d.ts +70 -0
  700. package/dist/runtime/managed-engines/spec.js +39 -0
  701. package/dist/runtime/managed-engines/spec.js.map +1 -0
  702. package/dist/runtime/managed-models/check.d.ts +50 -0
  703. package/dist/runtime/managed-models/check.js +157 -0
  704. package/dist/runtime/managed-models/check.js.map +1 -0
  705. package/dist/runtime/managed-models/compatibility.d.ts +256 -0
  706. package/dist/runtime/managed-models/compatibility.js +594 -0
  707. package/dist/runtime/managed-models/compatibility.js.map +1 -0
  708. package/dist/runtime/managed-models/delete.d.ts +15 -0
  709. package/dist/runtime/managed-models/delete.js +60 -0
  710. package/dist/runtime/managed-models/delete.js.map +1 -0
  711. package/dist/runtime/managed-models/guest-files.d.ts +8 -0
  712. package/dist/runtime/managed-models/guest-files.js +49 -0
  713. package/dist/runtime/managed-models/guest-files.js.map +1 -0
  714. package/dist/runtime/managed-models/index.d.ts +17 -0
  715. package/dist/runtime/managed-models/index.js +18 -0
  716. package/dist/runtime/managed-models/index.js.map +1 -0
  717. package/dist/runtime/managed-models/location.d.ts +22 -0
  718. package/dist/runtime/managed-models/location.js +53 -0
  719. package/dist/runtime/managed-models/location.js.map +1 -0
  720. package/dist/runtime/managed-models/migrate.d.ts +30 -0
  721. package/dist/runtime/managed-models/migrate.js +119 -0
  722. package/dist/runtime/managed-models/migrate.js.map +1 -0
  723. package/dist/runtime/managed-models/model-dir.d.ts +36 -0
  724. package/dist/runtime/managed-models/model-dir.js +136 -0
  725. package/dist/runtime/managed-models/model-dir.js.map +1 -0
  726. package/dist/runtime/managed-models/quant-format.d.ts +71 -0
  727. package/dist/runtime/managed-models/quant-format.js +299 -0
  728. package/dist/runtime/managed-models/quant-format.js.map +1 -0
  729. package/dist/runtime/managed-models/registry.d.ts +26 -0
  730. package/dist/runtime/managed-models/registry.js +66 -0
  731. package/dist/runtime/managed-models/registry.js.map +1 -0
  732. package/dist/runtime/managed-text/adapter.d.ts +266 -0
  733. package/dist/runtime/managed-text/adapter.js +96 -0
  734. package/dist/runtime/managed-text/adapter.js.map +1 -0
  735. package/dist/runtime/managed-text/backend-target.d.ts +3 -0
  736. package/dist/runtime/managed-text/backend-target.js +52 -0
  737. package/dist/runtime/managed-text/backend-target.js.map +1 -0
  738. package/dist/runtime/managed-text/deployment.d.ts +14 -0
  739. package/dist/runtime/managed-text/deployment.js +32 -0
  740. package/dist/runtime/managed-text/deployment.js.map +1 -0
  741. package/dist/runtime/managed-text/engine-cache.d.ts +15 -0
  742. package/dist/runtime/managed-text/engine-cache.js +64 -0
  743. package/dist/runtime/managed-text/engine-cache.js.map +1 -0
  744. package/dist/runtime/managed-text/gateway.d.ts +158 -0
  745. package/dist/runtime/managed-text/gateway.js +535 -0
  746. package/dist/runtime/managed-text/gateway.js.map +1 -0
  747. package/dist/runtime/managed-text/generation-defaults.d.ts +23 -0
  748. package/dist/runtime/managed-text/generation-defaults.js +51 -0
  749. package/dist/runtime/managed-text/generation-defaults.js.map +1 -0
  750. package/dist/runtime/managed-text/index.d.ts +26 -0
  751. package/dist/runtime/managed-text/index.js +27 -0
  752. package/dist/runtime/managed-text/index.js.map +1 -0
  753. package/dist/runtime/managed-text/lifecycle.d.ts +276 -0
  754. package/dist/runtime/managed-text/lifecycle.js +859 -0
  755. package/dist/runtime/managed-text/lifecycle.js.map +1 -0
  756. package/dist/runtime/managed-text/load-policy.d.ts +47 -0
  757. package/dist/runtime/managed-text/load-policy.js +111 -0
  758. package/dist/runtime/managed-text/load-policy.js.map +1 -0
  759. package/dist/runtime/managed-text/mount-source.d.ts +14 -0
  760. package/dist/runtime/managed-text/mount-source.js +18 -0
  761. package/dist/runtime/managed-text/mount-source.js.map +1 -0
  762. package/dist/runtime/managed-text/readiness.d.ts +13 -0
  763. package/dist/runtime/managed-text/readiness.js +24 -0
  764. package/dist/runtime/managed-text/readiness.js.map +1 -0
  765. package/dist/runtime/managed-text/request-rules.d.ts +18 -0
  766. package/dist/runtime/managed-text/request-rules.js +62 -0
  767. package/dist/runtime/managed-text/request-rules.js.map +1 -0
  768. package/dist/runtime/managed-text/types.d.ts +88 -0
  769. package/dist/runtime/managed-text/types.js +12 -0
  770. package/dist/runtime/managed-text/types.js.map +1 -0
  771. package/dist/runtime/managed-text/wsl-deployment.d.ts +24 -0
  772. package/dist/runtime/managed-text/wsl-deployment.js +70 -0
  773. package/dist/runtime/managed-text/wsl-deployment.js.map +1 -0
  774. package/dist/runtime/mlx/errors.d.ts +6 -1
  775. package/dist/runtime/mlx/errors.js +7 -2
  776. package/dist/runtime/mlx/errors.js.map +1 -1
  777. package/dist/runtime/mlx/runtime.d.ts +36 -1
  778. package/dist/runtime/mlx/runtime.js +85 -4
  779. package/dist/runtime/mlx/runtime.js.map +1 -1
  780. package/dist/runtime/shared/backend-output.d.ts +23 -0
  781. package/dist/runtime/shared/backend-output.js +32 -0
  782. package/dist/runtime/shared/backend-output.js.map +1 -0
  783. package/dist/runtime/shared/bounded-output.d.ts +24 -0
  784. package/dist/runtime/shared/bounded-output.js +63 -0
  785. package/dist/runtime/shared/bounded-output.js.map +1 -0
  786. package/dist/runtime/shared/external-sessions.js +9 -1
  787. package/dist/runtime/shared/external-sessions.js.map +1 -1
  788. package/dist/runtime/shared/gpu-occupancy.d.ts +60 -0
  789. package/dist/runtime/shared/gpu-occupancy.js +10 -0
  790. package/dist/runtime/shared/gpu-occupancy.js.map +1 -0
  791. package/dist/runtime/shared/index.d.ts +4 -0
  792. package/dist/runtime/shared/index.js +4 -0
  793. package/dist/runtime/shared/index.js.map +1 -1
  794. package/dist/runtime/shared/local-runtime.d.ts +35 -0
  795. package/dist/runtime/shared/ports.d.ts +6 -0
  796. package/dist/runtime/shared/ports.js +12 -1
  797. package/dist/runtime/shared/ports.js.map +1 -1
  798. package/dist/runtime/shared/process.d.ts +11 -0
  799. package/dist/runtime/shared/process.js +20 -0
  800. package/dist/runtime/shared/process.js.map +1 -1
  801. package/dist/runtime/shared/redact-args.d.ts +7 -0
  802. package/dist/runtime/shared/redact-args.js +26 -0
  803. package/dist/runtime/shared/redact-args.js.map +1 -0
  804. package/dist/runtime/shared/sidecar.d.ts +15 -0
  805. package/dist/runtime/shared/sidecar.js +43 -8
  806. package/dist/runtime/shared/sidecar.js.map +1 -1
  807. package/dist/runtime/tensorrt-llm/adapter.d.ts +250 -0
  808. package/dist/runtime/tensorrt-llm/adapter.js +1011 -0
  809. package/dist/runtime/tensorrt-llm/adapter.js.map +1 -0
  810. package/dist/runtime/tensorrt-llm/check.d.ts +12 -0
  811. package/dist/runtime/tensorrt-llm/check.js +21 -0
  812. package/dist/runtime/tensorrt-llm/check.js.map +1 -0
  813. package/dist/runtime/tensorrt-llm/compatibility.d.ts +100 -0
  814. package/dist/runtime/tensorrt-llm/compatibility.js +181 -0
  815. package/dist/runtime/tensorrt-llm/compatibility.js.map +1 -0
  816. package/dist/runtime/tensorrt-llm/engine.d.ts +3 -0
  817. package/dist/runtime/tensorrt-llm/engine.js +24 -0
  818. package/dist/runtime/tensorrt-llm/engine.js.map +1 -0
  819. package/dist/runtime/tensorrt-llm/host-facts.d.ts +55 -0
  820. package/dist/runtime/tensorrt-llm/host-facts.js +87 -0
  821. package/dist/runtime/tensorrt-llm/host-facts.js.map +1 -0
  822. package/dist/runtime/tensorrt-llm/index.d.ts +30 -0
  823. package/dist/runtime/tensorrt-llm/index.js +31 -0
  824. package/dist/runtime/tensorrt-llm/index.js.map +1 -0
  825. package/dist/runtime/tensorrt-llm/installation.d.ts +23 -0
  826. package/dist/runtime/tensorrt-llm/installation.js +53 -0
  827. package/dist/runtime/tensorrt-llm/installation.js.map +1 -0
  828. package/dist/runtime/tensorrt-llm/kv-cache.d.ts +25 -0
  829. package/dist/runtime/tensorrt-llm/kv-cache.js +28 -0
  830. package/dist/runtime/tensorrt-llm/kv-cache.js.map +1 -0
  831. package/dist/runtime/tensorrt-llm/prelaunch.d.ts +20 -0
  832. package/dist/runtime/tensorrt-llm/prelaunch.js +168 -0
  833. package/dist/runtime/tensorrt-llm/prelaunch.js.map +1 -0
  834. package/dist/runtime/tensorrt-llm/route-policy.d.ts +19 -0
  835. package/dist/runtime/tensorrt-llm/route-policy.js +17 -0
  836. package/dist/runtime/tensorrt-llm/route-policy.js.map +1 -0
  837. package/dist/runtime/tensorrt-llm/settings.d.ts +7 -0
  838. package/dist/runtime/tensorrt-llm/settings.js +48 -0
  839. package/dist/runtime/tensorrt-llm/settings.js.map +1 -0
  840. package/dist/runtime/vllm/adapter.d.ts +46 -0
  841. package/dist/runtime/vllm/adapter.js +425 -0
  842. package/dist/runtime/vllm/adapter.js.map +1 -0
  843. package/dist/runtime/vllm/engine.d.ts +16 -0
  844. package/dist/runtime/vllm/engine.js +37 -0
  845. package/dist/runtime/vllm/engine.js.map +1 -0
  846. package/dist/runtime/vllm/index.d.ts +11 -0
  847. package/dist/runtime/vllm/index.js +12 -0
  848. package/dist/runtime/vllm/index.js.map +1 -0
  849. package/dist/runtime/vllm/memory.d.ts +69 -0
  850. package/dist/runtime/vllm/memory.js +123 -0
  851. package/dist/runtime/vllm/memory.js.map +1 -0
  852. package/dist/runtime/vllm/settings.d.ts +52 -0
  853. package/dist/runtime/vllm/settings.js +151 -0
  854. package/dist/runtime/vllm/settings.js.map +1 -0
  855. package/dist/runtime/wsl/guest-paths.d.ts +33 -0
  856. package/dist/runtime/wsl/guest-paths.js +83 -0
  857. package/dist/runtime/wsl/guest-paths.js.map +1 -0
  858. package/dist/runtime/wsl/guest-scope.d.ts +14 -0
  859. package/dist/runtime/wsl/guest-scope.js +98 -0
  860. package/dist/runtime/wsl/guest-scope.js.map +1 -0
  861. package/dist/runtime/wsl/index.d.ts +12 -0
  862. package/dist/runtime/wsl/index.js +13 -0
  863. package/dist/runtime/wsl/index.js.map +1 -0
  864. package/dist/runtime/wsl/keeper.d.ts +29 -0
  865. package/dist/runtime/wsl/keeper.js +48 -0
  866. package/dist/runtime/wsl/keeper.js.map +1 -0
  867. package/dist/runtime/wsl/transport.d.ts +106 -0
  868. package/dist/runtime/wsl/transport.js +181 -0
  869. package/dist/runtime/wsl/transport.js.map +1 -0
  870. package/dist/server/control/index.d.ts +1 -1
  871. package/dist/server/control/router.js +15 -0
  872. package/dist/server/control/router.js.map +1 -1
  873. package/dist/server/control/routes/backends.js +26 -0
  874. package/dist/server/control/routes/backends.js.map +1 -1
  875. package/dist/server/control/routes/decision.d.ts +10 -0
  876. package/dist/server/control/routes/decision.js +43 -0
  877. package/dist/server/control/routes/decision.js.map +1 -0
  878. package/dist/server/control/routes/diffusion-video.js +4 -0
  879. package/dist/server/control/routes/diffusion-video.js.map +1 -1
  880. package/dist/server/control/routes/diffusion.d.ts +1 -1
  881. package/dist/server/control/routes/diffusion.js +4 -9
  882. package/dist/server/control/routes/diffusion.js.map +1 -1
  883. package/dist/server/control/routes/embedding.d.ts +9 -0
  884. package/dist/server/control/routes/embedding.js +43 -0
  885. package/dist/server/control/routes/embedding.js.map +1 -0
  886. package/dist/server/control/routes/engine-builds.d.ts +14 -0
  887. package/dist/server/control/routes/engine-builds.js +82 -0
  888. package/dist/server/control/routes/engine-builds.js.map +1 -0
  889. package/dist/server/control/routes/engines.d.ts +17 -0
  890. package/dist/server/control/routes/engines.js +152 -0
  891. package/dist/server/control/routes/engines.js.map +1 -0
  892. package/dist/server/control/routes/environments.d.ts +16 -0
  893. package/dist/server/control/routes/environments.js +207 -0
  894. package/dist/server/control/routes/environments.js.map +1 -0
  895. package/dist/server/control/routes/hardware.d.ts +1 -1
  896. package/dist/server/control/routes/hardware.js +11 -6
  897. package/dist/server/control/routes/hardware.js.map +1 -1
  898. package/dist/server/control/routes/model-setups.d.ts +11 -0
  899. package/dist/server/control/routes/model-setups.js +55 -0
  900. package/dist/server/control/routes/model-setups.js.map +1 -0
  901. package/dist/server/control/routes/models.d.ts +3 -2
  902. package/dist/server/control/routes/models.js +45 -2
  903. package/dist/server/control/routes/models.js.map +1 -1
  904. package/dist/server/control/types.d.ts +167 -9
  905. package/dist/server/control/types.js.map +1 -1
  906. package/dist/server/http.d.ts +9 -1
  907. package/dist/server/http.js +51 -1
  908. package/dist/server/http.js.map +1 -1
  909. package/dist/server/public/decision-preview.d.ts +17 -0
  910. package/dist/server/public/decision-preview.js +119 -0
  911. package/dist/server/public/decision-preview.js.map +1 -0
  912. package/dist/server/public/decision.d.ts +32 -0
  913. package/dist/server/public/decision.js +135 -0
  914. package/dist/server/public/decision.js.map +1 -0
  915. package/dist/server/public/embedding.d.ts +31 -0
  916. package/dist/server/public/embedding.js +126 -0
  917. package/dist/server/public/embedding.js.map +1 -0
  918. package/dist/server/public/errors.d.ts +2 -1
  919. package/dist/server/public/errors.js +5 -2
  920. package/dist/server/public/errors.js.map +1 -1
  921. package/dist/server/public/forward.js +75 -3
  922. package/dist/server/public/forward.js.map +1 -1
  923. package/dist/server/public/gates.d.ts +13 -0
  924. package/dist/server/public/gates.js +37 -14
  925. package/dist/server/public/gates.js.map +1 -1
  926. package/dist/server/public/index.d.ts +5 -2
  927. package/dist/server/public/index.js +14 -1
  928. package/dist/server/public/index.js.map +1 -1
  929. package/dist/server/public/listing.d.ts +13 -2
  930. package/dist/server/public/listing.js +33 -9
  931. package/dist/server/public/listing.js.map +1 -1
  932. package/dist/server/public/policy.d.ts +9 -0
  933. package/dist/server/public/policy.js +68 -0
  934. package/dist/server/public/policy.js.map +1 -0
  935. package/dist/server/public/responses.js +10 -0
  936. package/dist/server/public/responses.js.map +1 -1
  937. package/dist/server/public/trace.d.ts +2 -2
  938. package/dist/server/public/trace.js +6 -2
  939. package/dist/server/public/trace.js.map +1 -1
  940. package/dist/server/public/types.d.ts +84 -1
  941. package/dist/settings/decision.d.ts +15 -0
  942. package/dist/settings/decision.js +88 -0
  943. package/dist/settings/decision.js.map +1 -0
  944. package/dist/settings/embedding.d.ts +12 -0
  945. package/dist/settings/embedding.js +82 -0
  946. package/dist/settings/embedding.js.map +1 -0
  947. package/dist/settings/index.d.ts +2 -0
  948. package/dist/settings/index.js +2 -0
  949. package/dist/settings/index.js.map +1 -1
  950. package/dist/settings/schema/atomic-prism.json +433 -0
  951. package/dist/settings/schema/tensorrt-llm.json +253 -0
  952. package/dist/settings/schema/vllm.json +273 -0
  953. package/dist/settings/schema.js +58 -0
  954. package/dist/settings/schema.js.map +1 -1
  955. package/dist/settings/store.d.ts +13 -2
  956. package/dist/settings/store.js +44 -0
  957. package/dist/settings/store.js.map +1 -1
  958. package/dist/util/index.d.ts +1 -0
  959. package/dist/util/index.js +1 -0
  960. package/dist/util/index.js.map +1 -1
  961. package/dist/util/result.d.ts +19 -0
  962. package/dist/util/result.js +15 -0
  963. package/dist/util/result.js.map +1 -0
  964. package/dist/version.d.ts +1 -1
  965. package/dist/version.js +1 -1
  966. package/dist/version.js.map +1 -1
  967. package/package.json +1 -1
  968. package/src/settings/schema/atomic-prism.json +433 -0
  969. package/src/settings/schema/tensorrt-llm.json +253 -0
  970. package/src/settings/schema/vllm.json +273 -0
@@ -0,0 +1,123 @@
1
+ import { freeMemoryBytes, isUnifiedMemory, kvCacheQuantAlgo, readKvCacheShape, totalMemoryBytes, } from '../managed-models/index.js';
2
+ const GiB = 1024 ** 3;
3
+ const MiB = 1024 ** 2;
4
+ /** What vLLM holds beyond weights and KV cache: CUDA context, activations, sampler, graphs. */
5
+ export const VLLM_ENGINE_OVERHEAD_BYTES = 2 * GiB;
6
+ /** Counted as needed in the memory check: what other processes may still take meanwhile. */
7
+ export const VLLM_FREE_MEMORY_MARGIN_BYTES = 512 * MiB;
8
+ /**
9
+ * Left out of the share vLLM is given: more than vLLM's own CUDA context, which already holds memory
10
+ * when vLLM checks the share at start (0.87 GiB under WSL on an RTX 4070 Laptop, 2026-10-06).
11
+ */
12
+ export const VLLM_START_CHECK_MARGIN_BYTES = 1536 * MiB;
13
+ /** The highest share of a card vLLM is ever given. */
14
+ export const VLLM_MAX_GPU_MEMORY_UTILIZATION = 0.95;
15
+ /** On a card with the host's memory: contexts the KV cache holds, as for TensorRT-LLM (design D9). */
16
+ export const VLLM_UNIFIED_KV_CONTEXTS = 2;
17
+ /** Without the model's KV shape: a quarter of the weights, at least 1 GiB. */
18
+ const FALLBACK_KV_WEIGHT_SHARE = 0.25;
19
+ const FALLBACK_KV_MIN_BYTES = GiB;
20
+ /** Compute capability 8.9 (Ada) and newer. */
21
+ function supportsFp8Kv(computeCapability) {
22
+ const [major, minor] = computeCapability.split('.').map((part) => Number.parseInt(part, 10));
23
+ if (major === undefined || Number.isNaN(major))
24
+ return false;
25
+ return major > 8 || (major === 8 && (minor ?? 0) >= 9);
26
+ }
27
+ /** The tokens the KV cache estimate covers: context × requests (two contexts on unified memory). */
28
+ export function vllmKvTokens(settings, unifiedMemory) {
29
+ return unifiedMemory
30
+ ? settings.context_length * VLLM_UNIFIED_KV_CONTEXTS
31
+ : settings.context_length * settings.max_num_seqs;
32
+ }
33
+ /**
34
+ * The KV cache the memory check counts: the KV cache size setting when set, else an estimate from the
35
+ * model's attention layers — and whether the model's shape sized it. vLLM sizes its own KV cache
36
+ * unless the setting fixes it, so this only feeds the check's verdict.
37
+ */
38
+ export function vllmKvCacheBytes(checkpoint, settings, gpu, unifiedMemory) {
39
+ if (settings.kv_cache_memory_gib !== null) {
40
+ return { bytes: Math.round(settings.kv_cache_memory_gib * GiB), basis: 'config' };
41
+ }
42
+ const shape = readKvCacheShape(checkpoint.configJson);
43
+ if (shape === undefined) {
44
+ const weights = checkpoint.weightBytesTotal ?? 0;
45
+ return {
46
+ bytes: Math.max(FALLBACK_KV_MIN_BYTES, Math.ceil(weights * FALLBACK_KV_WEIGHT_SHARE)),
47
+ basis: 'weight_fraction',
48
+ };
49
+ }
50
+ const fp8 = (settings.kv_cache_dtype === 'fp8' && supportsFp8Kv(gpu.compute_capability)) ||
51
+ kvCacheQuantAlgo(checkpoint.configJson, checkpoint.hfQuantConfigJson)?.toUpperCase() === 'FP8';
52
+ const perToken = 2 * shape.numHiddenLayers * shape.numKeyValueHeads * shape.headDim * (fp8 ? 1 : 2);
53
+ return { bytes: perToken * vllmKvTokens(settings, unifiedMemory), basis: 'config' };
54
+ }
55
+ /**
56
+ * The weights vLLM puts on the card: weights offloaded to the CPU (`cpu_offload_gb`, GiB as vLLM counts
57
+ * them) leave it, except on a card with the host's memory, where they stay in the same memory.
58
+ */
59
+ function vllmWeightsOnCard(checkpoint, settings, unified) {
60
+ const offloadedBytes = unified
61
+ ? 0
62
+ : Math.min(checkpoint.weightBytesTotal, Math.round(settings.cpu_offload_gb * 1024 ** 3));
63
+ return { weightsOnCard: checkpoint.weightBytesTotal - offloadedBytes, offloadedBytes };
64
+ }
65
+ /**
66
+ * vLLM's memory rule on `gpu`: weights on the card + KV cache in bytes + its own overhead (CUDA context
67
+ * included) + a margin for what other processes may take meanwhile; on a card with the host's memory,
68
+ * whatever of `MemAvailable` lies beyond half the host's memory counts as needed too.
69
+ */
70
+ export function vllmMemoryNeed(gpu, checkpoint, settings, host) {
71
+ const unified = isUnifiedMemory(gpu);
72
+ const kv = vllmKvCacheBytes(checkpoint, settings, gpu, unified);
73
+ const systemReserve = unified
74
+ ? Math.max(0, freeMemoryBytes(gpu, host) - totalMemoryBytes(gpu, host) / 2)
75
+ : 0;
76
+ const { weightsOnCard, offloadedBytes } = vllmWeightsOnCard(checkpoint, settings, unified);
77
+ const neededBytes = weightsOnCard + kv.bytes + VLLM_ENGINE_OVERHEAD_BYTES + VLLM_FREE_MEMORY_MARGIN_BYTES + systemReserve;
78
+ return {
79
+ neededBytes,
80
+ kvReserveBasis: kv.basis,
81
+ details: `weight_bytes=${checkpoint.weightBytesTotal}` +
82
+ (offloadedBytes > 0 ? ` cpu_offload_bytes=${offloadedBytes}` : '') +
83
+ ` kv_cache_bytes=${kv.bytes} kv_reserve_basis=${kv.basis} ` +
84
+ `engine_overhead_bytes=${VLLM_ENGINE_OVERHEAD_BYTES} free_margin_bytes=${VLLM_FREE_MEMORY_MARGIN_BYTES}` +
85
+ (unified ? ` system_reserve_bytes=${systemReserve}` : '') +
86
+ ` needed_bytes=${neededBytes}`,
87
+ };
88
+ }
89
+ /** A vision or audio part in the checkpoint: a multimodal architecture, or its encoder's config. */
90
+ function isMultimodal(configJson) {
91
+ const architectures = Array.isArray(configJson['architectures']) ? configJson['architectures'] : [];
92
+ return (architectures.some((name) => typeof name === 'string' && name.endsWith('ForConditionalGeneration')) ||
93
+ ['vision_config', 'audio_config', 'vision_tower'].some((key) => key in configJson));
94
+ }
95
+ /** `--gpu-memory-utilization` from the card as it stands now (see the file banner). */
96
+ export function vllmGpuMemoryUtilization(gpu, host) {
97
+ const total = totalMemoryBytes(gpu, host);
98
+ if (total <= 0)
99
+ return VLLM_MAX_GPU_MEMORY_UTILIZATION;
100
+ let available = freeMemoryBytes(gpu, host) - VLLM_START_CHECK_MARGIN_BYTES;
101
+ // On the host's memory, half of it stays the system's (the same rule as TensorRT-LLM's).
102
+ if (isUnifiedMemory(gpu))
103
+ available = Math.min(available, total / 2);
104
+ const share = Math.min(VLLM_MAX_GPU_MEMORY_UTILIZATION, available / total);
105
+ return Math.max(0.01, Math.floor(share * 10_000) / 10_000);
106
+ }
107
+ /** The launch plan `beforeCreate` hands the adapter, from the card re-probed right before the container. */
108
+ export function vllmLaunchPlan(settings, checkpoint, gpu, host) {
109
+ return {
110
+ kvCacheMemoryBytes: settings.kv_cache_memory_gib === null ? null : Math.round(settings.kv_cache_memory_gib * GiB),
111
+ gpuMemoryUtilization: settings.gpu_memory_utilization ?? vllmGpuMemoryUtilization(gpu, host),
112
+ multimodal: isMultimodal(checkpoint.configJson),
113
+ };
114
+ }
115
+ /** The check skeleton's hooks for vLLM: its memory rule, and no checkpoint quirks of its own. */
116
+ export function vllmCheckEngine(settings) {
117
+ return {
118
+ engineId: 'vllm',
119
+ checkpointProblems: () => null,
120
+ memoryNeed: (gpu, checkpoint, host) => vllmMemoryNeed(gpu, checkpoint, settings, host),
121
+ };
122
+ }
123
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/runtime/vllm/memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { type GenerationDefaults } from '../managed-text/generation-defaults.js';
2
+ export interface VllmSettings {
3
+ /** `GPU-<uuid>`/`MIG-<uuid>`, or `null` to let the load pick the card with the most free memory. */
4
+ gpu_id: string | null;
5
+ context_length: number;
6
+ max_output_tokens: number;
7
+ /** `--max-num-seqs`. */
8
+ max_num_seqs: number;
9
+ /**
10
+ * `--kv-cache-memory-bytes`, in GiB; `null` passes nothing, and vLLM sizes the KV cache itself from
11
+ * the memory its share of the card leaves after the weights (it knows every model's KV shape,
12
+ * hybrid ones included).
13
+ */
14
+ kv_cache_memory_gib: number | null;
15
+ /**
16
+ * `--gpu-memory-utilization`: the share of the card vLLM may take; `null` (auto) lets core compute it
17
+ * from the card's free memory right before the container (`vllmGpuMemoryUtilization`).
18
+ */
19
+ gpu_memory_utilization: number | null;
20
+ cuda_graphs: 'auto' | 'on' | 'off';
21
+ kv_cache_dtype: 'auto' | 'fp8';
22
+ /** Seconds. `null` leaves the adapter's own weight-based estimate in force. */
23
+ load_timeout_seconds: number | null;
24
+ /** `--max-num-batched-tokens`; `null` leaves vLLM's own. */
25
+ max_num_batched_tokens: number | null;
26
+ /** `false` passes `--no-enable-prefix-caching`; vLLM's own default is on. */
27
+ enable_prefix_caching: boolean;
28
+ /** `--cpu-offload-gb`, GiB of weights kept in host memory; counted off the card by the check. */
29
+ cpu_offload_gb: number;
30
+ /** `--dtype` of unquantized weights and activations; `auto` passes nothing. */
31
+ dtype: 'auto' | 'float16' | 'bfloat16' | 'float32';
32
+ /** `--seed`; `null` leaves vLLM's own. */
33
+ seed: number | null;
34
+ /** `--async-scheduling`. */
35
+ async_scheduling: boolean;
36
+ /**
37
+ * Sampling defaults for a request that sets none, in vLLM's generation-config names: they join
38
+ * `max_new_tokens` in `--override-generation-config`. A key is present only when the person set it;
39
+ * otherwise the model's own `generation_config.json` stands.
40
+ */
41
+ generation: VllmGenerationDefaults;
42
+ }
43
+ export type VllmGenerationDefaults = GenerationDefaults;
44
+ /** Validates already-merged values; anything absent takes the schema's default. */
45
+ export declare function validateVllmSettings(raw: Record<string, unknown>): VllmSettings;
46
+ /**
47
+ * Stored values, overlaid by a load's own overrides (the control API's `overrides`), reduced to this
48
+ * provider's keys and validated. Anything else in either object — another provider's key, a stray
49
+ * field a client sent — is ignored rather than passed to the engine. `''` and `0` are the stored
50
+ * spelling of "not set" (`''` for a generation default, whose `0` can be a real value).
51
+ */
52
+ export declare function vllmSettings(stored: Record<string, unknown>, overrides?: Record<string, unknown>): VllmSettings;
@@ -0,0 +1,151 @@
1
+ /**
2
+ * The `vllm` provider's settings (change `add-vllm-runtime`, task 3.1; spec `vllm-runtime`, "Выбор
3
+ * карты и настройки провайдера vllm"): stored values, overlaid by a load's own overrides, reduced to
4
+ * this provider's keys and validated before anything is asked of the machine — `INVALID_ARGUMENT` for
5
+ * anything the schema (`src/settings/schema/vllm.json`) would refuse. What the engine is never told
6
+ * by a setting: `trust_remote_code`, request logging, an API key — no key here reaches it.
7
+ */
8
+ import { AtomicCoreError } from '../../contracts/index.js';
9
+ import { GENERATION_DEFAULT_KEYS, readGenerationDefaults, } from '../managed-text/generation-defaults.js';
10
+ const KEYS = [
11
+ 'gpu_id',
12
+ 'context_length',
13
+ 'max_output_tokens',
14
+ 'max_num_seqs',
15
+ 'kv_cache_memory_gib',
16
+ 'gpu_memory_utilization',
17
+ 'cuda_graphs',
18
+ 'kv_cache_dtype',
19
+ 'load_timeout_seconds',
20
+ 'max_num_batched_tokens',
21
+ 'enable_prefix_caching',
22
+ 'cpu_offload_gb',
23
+ 'dtype',
24
+ 'seed',
25
+ 'async_scheduling',
26
+ ...Object.values(GENERATION_DEFAULT_KEYS),
27
+ ];
28
+ const DEFAULTS = {
29
+ gpu_id: null,
30
+ context_length: 8192,
31
+ max_output_tokens: 4096,
32
+ // One request at a time (owner's decision).
33
+ max_num_seqs: 1,
34
+ kv_cache_memory_gib: null,
35
+ gpu_memory_utilization: null,
36
+ cuda_graphs: 'auto',
37
+ kv_cache_dtype: 'auto',
38
+ load_timeout_seconds: null,
39
+ max_num_batched_tokens: null,
40
+ enable_prefix_caching: true,
41
+ cpu_offload_gb: 0,
42
+ dtype: 'auto',
43
+ seed: null,
44
+ async_scheduling: false,
45
+ generation: {},
46
+ };
47
+ const GPU_UUID = /^(GPU|MIG)-[0-9A-Za-z-]+$/;
48
+ const invalid = (key, value, why) => {
49
+ throw new AtomicCoreError('INVALID_ARGUMENT', `vllm setting ${key} ${why}.`, `${key}=${JSON.stringify(value)}`);
50
+ };
51
+ function integer(key, value, min, max) {
52
+ const number = typeof value === 'string' && value.trim() !== '' ? Number(value) : value;
53
+ if (typeof number !== 'number' || !Number.isInteger(number) || number < min || number > max) {
54
+ return invalid(key, value, `must be a whole number from ${min} to ${max}`);
55
+ }
56
+ return number;
57
+ }
58
+ function decimal(key, value, inRange, range) {
59
+ const number = typeof value === 'string' && value.trim() !== '' ? Number(value) : value;
60
+ if (typeof number !== 'number' || !Number.isFinite(number) || !inRange(number)) {
61
+ return invalid(key, value, `must be a number ${range}`);
62
+ }
63
+ return number;
64
+ }
65
+ function yesNo(key, value) {
66
+ if (value === true || value === 'true')
67
+ return true;
68
+ if (value === false || value === 'false')
69
+ return false;
70
+ return invalid(key, value, 'must be true or false');
71
+ }
72
+ function oneOf(key, value, allowed) {
73
+ return allowed.includes(value)
74
+ ? value
75
+ : invalid(key, value, `must be one of ${allowed.join(', ')}`);
76
+ }
77
+ /** Validates already-merged values; anything absent takes the schema's default. */
78
+ export function validateVllmSettings(raw) {
79
+ const settings = { ...DEFAULTS };
80
+ if (raw['gpu_id'] !== undefined && raw['gpu_id'] !== null) {
81
+ if (typeof raw['gpu_id'] !== 'string' || !GPU_UUID.test(raw['gpu_id'])) {
82
+ invalid('gpu_id', raw['gpu_id'], 'must be an NVIDIA GPU or MIG UUID');
83
+ }
84
+ settings.gpu_id = raw['gpu_id'];
85
+ }
86
+ if (raw['context_length'] !== undefined)
87
+ settings.context_length = integer('context_length', raw['context_length'], 512, 1_048_576);
88
+ if (raw['max_output_tokens'] !== undefined)
89
+ settings.max_output_tokens = integer('max_output_tokens', raw['max_output_tokens'], 1, 1_048_576);
90
+ if (raw['max_num_seqs'] !== undefined)
91
+ settings.max_num_seqs = integer('max_num_seqs', raw['max_num_seqs'], 1, 256);
92
+ if (raw['kv_cache_memory_gib'] !== undefined && raw['kv_cache_memory_gib'] !== null)
93
+ settings.kv_cache_memory_gib = decimal('kv_cache_memory_gib', raw['kv_cache_memory_gib'], (n) => n > 0 && n <= 1024, 'above 0 and at most 1024');
94
+ if (raw['gpu_memory_utilization'] !== undefined && raw['gpu_memory_utilization'] !== null)
95
+ settings.gpu_memory_utilization = decimal('gpu_memory_utilization', raw['gpu_memory_utilization'], (n) => n > 0 && n <= 1, 'above 0 and at most 1');
96
+ if (raw['cuda_graphs'] !== undefined)
97
+ settings.cuda_graphs = oneOf('cuda_graphs', raw['cuda_graphs'], ['auto', 'on', 'off']);
98
+ if (raw['kv_cache_dtype'] !== undefined)
99
+ settings.kv_cache_dtype = oneOf('kv_cache_dtype', raw['kv_cache_dtype'], ['auto', 'fp8']);
100
+ if (raw['load_timeout_seconds'] !== undefined && raw['load_timeout_seconds'] !== null)
101
+ settings.load_timeout_seconds = integer('load_timeout_seconds', raw['load_timeout_seconds'], 1, 3600);
102
+ if (raw['max_num_batched_tokens'] !== undefined && raw['max_num_batched_tokens'] !== null)
103
+ settings.max_num_batched_tokens = integer('max_num_batched_tokens', raw['max_num_batched_tokens'], 1, 1_048_576);
104
+ if (raw['enable_prefix_caching'] !== undefined)
105
+ settings.enable_prefix_caching = yesNo('enable_prefix_caching', raw['enable_prefix_caching']);
106
+ if (raw['cpu_offload_gb'] !== undefined)
107
+ settings.cpu_offload_gb = decimal('cpu_offload_gb', raw['cpu_offload_gb'], (n) => n >= 0 && n <= 1024, 'from 0 to 1024');
108
+ if (raw['dtype'] !== undefined)
109
+ settings.dtype = oneOf('dtype', raw['dtype'], ['auto', 'float16', 'bfloat16', 'float32']);
110
+ if (raw['seed'] !== undefined && raw['seed'] !== null)
111
+ settings.seed = integer('seed', raw['seed'], 1, 2_147_483_647);
112
+ if (raw['async_scheduling'] !== undefined)
113
+ settings.async_scheduling = yesNo('async_scheduling', raw['async_scheduling']);
114
+ settings.generation = readGenerationDefaults('vllm', raw);
115
+ if (settings.max_output_tokens >= settings.context_length) {
116
+ invalid('max_output_tokens', settings.max_output_tokens, `must be less than the context length (${settings.context_length})`);
117
+ }
118
+ return settings;
119
+ }
120
+ /**
121
+ * Stored values, overlaid by a load's own overrides (the control API's `overrides`), reduced to this
122
+ * provider's keys and validated. Anything else in either object — another provider's key, a stray
123
+ * field a client sent — is ignored rather than passed to the engine. `''` and `0` are the stored
124
+ * spelling of "not set" (`''` for a generation default, whose `0` can be a real value).
125
+ */
126
+ export function vllmSettings(stored, overrides = {}) {
127
+ const merged = {};
128
+ for (const key of KEYS) {
129
+ const value = key in overrides ? overrides[key] : stored[key];
130
+ if (value !== undefined)
131
+ merged[key] = value;
132
+ }
133
+ if (typeof merged['gpu_id'] === 'string' && merged['gpu_id'].trim() === '')
134
+ merged['gpu_id'] = null;
135
+ if (merged['load_timeout_seconds'] === 0)
136
+ merged['load_timeout_seconds'] = null;
137
+ if (merged['kv_cache_memory_gib'] === 0)
138
+ merged['kv_cache_memory_gib'] = null;
139
+ if (merged['gpu_memory_utilization'] === 0)
140
+ merged['gpu_memory_utilization'] = null;
141
+ if (merged['max_num_batched_tokens'] === 0)
142
+ merged['max_num_batched_tokens'] = null;
143
+ if (merged['seed'] === 0)
144
+ merged['seed'] = null;
145
+ for (const key of Object.values(GENERATION_DEFAULT_KEYS)) {
146
+ if (typeof merged[key] === 'string' && merged[key].trim() === '')
147
+ merged[key] = null;
148
+ }
149
+ return validateVllmSettings(merged);
150
+ }
151
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/runtime/vllm/settings.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EACL,uBAAuB,EACvB,sBAAsB,GAEvB,MAAM,wCAAwC,CAAA;AA8C/C,MAAM,IAAI,GAAG;IACX,QAAQ;IACR,gBAAgB;IAChB,mBAAmB;IACnB,cAAc;IACd,qBAAqB;IACrB,wBAAwB;IACxB,aAAa;IACb,gBAAgB;IAChB,sBAAsB;IACtB,wBAAwB;IACxB,uBAAuB;IACvB,gBAAgB;IAChB,OAAO;IACP,MAAM;IACN,kBAAkB;IAClB,GAAG,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC;CACjC,CAAA;AAEV,MAAM,QAAQ,GAAiB;IAC7B,MAAM,EAAE,IAAI;IACZ,cAAc,EAAE,IAAI;IACpB,iBAAiB,EAAE,IAAI;IACvB,4CAA4C;IAC5C,YAAY,EAAE,CAAC;IACf,mBAAmB,EAAE,IAAI;IACzB,sBAAsB,EAAE,IAAI;IAC5B,WAAW,EAAE,MAAM;IACnB,cAAc,EAAE,MAAM;IACtB,oBAAoB,EAAE,IAAI;IAC1B,sBAAsB,EAAE,IAAI;IAC5B,qBAAqB,EAAE,IAAI;IAC3B,cAAc,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,IAAI;IACV,gBAAgB,EAAE,KAAK;IACvB,UAAU,EAAE,EAAE;CACf,CAAA;AAED,MAAM,QAAQ,GAAG,2BAA2B,CAAA;AAE5C,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,KAAc,EAAE,GAAW,EAAS,EAAE;IAClE,MAAM,IAAI,eAAe,CACvB,kBAAkB,EAClB,gBAAgB,GAAG,IAAI,GAAG,GAAG,EAC7B,GAAG,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAClC,CAAA;AACH,CAAC,CAAA;AAED,SAAS,OAAO,CAAC,GAAW,EAAE,KAAc,EAAE,GAAW,EAAE,GAAW;IACpE,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACvF,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;QAC5F,OAAO,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,+BAA+B,GAAG,OAAO,GAAG,EAAE,CAAC,CAAA;IAC5E,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,OAAO,CAAC,GAAW,EAAE,KAAc,EAAE,OAA+B,EAAE,KAAa;IAC1F,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACvF,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/E,OAAO,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,oBAAoB,KAAK,EAAE,CAAC,CAAA;IACzD,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,KAAK,CAAC,GAAW,EAAE,KAAc;IACxC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAA;IACnD,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,KAAK,CAAA;IACtD,OAAO,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAAA;AACrD,CAAC;AAED,SAAS,KAAK,CAAmB,GAAW,EAAE,KAAc,EAAE,OAAqB;IACjF,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAU,CAAC;QACjC,CAAC,CAAE,KAAW;QACd,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,kBAAkB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACjE,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,oBAAoB,CAAC,GAA4B;IAC/D,MAAM,QAAQ,GAAiB,EAAE,GAAG,QAAQ,EAAE,CAAA;IAC9C,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1D,IAAI,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACvE,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,mCAAmC,CAAC,CAAA;QACvE,CAAC;QACD,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAW,CAAA;IAC3C,CAAC;IACD,IAAI,GAAG,CAAC,gBAAgB,CAAC,KAAK,SAAS;QACrC,QAAQ,CAAC,cAAc,GAAG,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;IAC5F,IAAI,GAAG,CAAC,mBAAmB,CAAC,KAAK,SAAS;QACxC,QAAQ,CAAC,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;IACnG,IAAI,GAAG,CAAC,cAAc,CAAC,KAAK,SAAS;QACnC,QAAQ,CAAC,YAAY,GAAG,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;IAC9E,IAAI,GAAG,CAAC,qBAAqB,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,qBAAqB,CAAC,KAAK,IAAI;QACjF,QAAQ,CAAC,mBAAmB,GAAG,OAAO,CACpC,qBAAqB,EACrB,GAAG,CAAC,qBAAqB,CAAC,EAC1B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EACzB,0BAA0B,CAC3B,CAAA;IACH,IAAI,GAAG,CAAC,wBAAwB,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,wBAAwB,CAAC,KAAK,IAAI;QACvF,QAAQ,CAAC,sBAAsB,GAAG,OAAO,CACvC,wBAAwB,EACxB,GAAG,CAAC,wBAAwB,CAAC,EAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EACtB,uBAAuB,CACxB,CAAA;IACH,IAAI,GAAG,CAAC,aAAa,CAAC,KAAK,SAAS;QAClC,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;IACxF,IAAI,GAAG,CAAC,gBAAgB,CAAC,KAAK,SAAS;QACrC,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;IAC3F,IAAI,GAAG,CAAC,sBAAsB,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,sBAAsB,CAAC,KAAK,IAAI;QACnF,QAAQ,CAAC,oBAAoB,GAAG,OAAO,CAAC,sBAAsB,EAAE,GAAG,CAAC,sBAAsB,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;IACvG,IAAI,GAAG,CAAC,wBAAwB,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,wBAAwB,CAAC,KAAK,IAAI;QACvF,QAAQ,CAAC,sBAAsB,GAAG,OAAO,CACvC,wBAAwB,EACxB,GAAG,CAAC,wBAAwB,CAAC,EAC7B,CAAC,EACD,SAAS,CACV,CAAA;IACH,IAAI,GAAG,CAAC,uBAAuB,CAAC,KAAK,SAAS;QAC5C,QAAQ,CAAC,qBAAqB,GAAG,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAA;IAC/F,IAAI,GAAG,CAAC,gBAAgB,CAAC,KAAK,SAAS;QACrC,QAAQ,CAAC,cAAc,GAAG,OAAO,CAC/B,gBAAgB,EAChB,GAAG,CAAC,gBAAgB,CAAC,EACrB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAC1B,gBAAgB,CACjB,CAAA;IACH,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,SAAS;QAC5B,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAA;IAC3F,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI;QACnD,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,CAAA;IAChE,IAAI,GAAG,CAAC,kBAAkB,CAAC,KAAK,SAAS;QACvC,QAAQ,CAAC,gBAAgB,GAAG,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAA;IAChF,QAAQ,CAAC,UAAU,GAAG,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACzD,IAAI,QAAQ,CAAC,iBAAiB,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC1D,OAAO,CACL,mBAAmB,EACnB,QAAQ,CAAC,iBAAiB,EAC1B,yCAAyC,QAAQ,CAAC,cAAc,GAAG,CACpE,CAAA;IACH,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,MAA+B,EAC/B,YAAqC,EAAE;IAEvC,MAAM,MAAM,GAA4B,EAAE,CAAA;IAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC7D,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IAC9C,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAA;IACnG,IAAI,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAC;QAAE,MAAM,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAA;IAC/E,IAAI,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC;QAAE,MAAM,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAA;IAC7E,IAAI,MAAM,CAAC,wBAAwB,CAAC,KAAK,CAAC;QAAE,MAAM,CAAC,wBAAwB,CAAC,GAAG,IAAI,CAAA;IACnF,IAAI,MAAM,CAAC,wBAAwB,CAAC,KAAK,CAAC;QAAE,MAAM,CAAC,wBAAwB,CAAC,GAAG,IAAI,CAAA;IACnF,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;IAC/C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,EAAE,CAAC;QACzD,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IACtF,CAAC;IACD,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAA;AACrC,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { ManagedScopePaths } from '../../config/index.js';
2
+ /** Every scope's guest root lives under this. */
3
+ export declare const GUEST_SCOPES_ROOT = "/var/lib/atomic-chat/scopes";
4
+ /** `/var/lib/atomic-chat/scopes/<key>`; the key is core's own random id, never a path segment it was given. */
5
+ export declare function guestScopeRoot(scopeKey: string): string;
6
+ /** A guest path as Windows opens it: `\\wsl.localhost\<distro>\…`. */
7
+ export declare function uncPathFor(distribution: string, guestPath: string): string;
8
+ /**
9
+ * The guest path behind a `\\wsl.localhost\<distro>\…` (or `\\wsl$\…`) path of this distribution.
10
+ * Throws `INVALID_ARGUMENT` for anything else, a `..` segment included.
11
+ */
12
+ export declare function guestPathFor(distribution: string, uncPath: string): string;
13
+ /**
14
+ * How this process reaches a distribution's files: `\\wsl.localhost\<distribution>\…` in production
15
+ * (`WSL_LOCALHOST_MOUNT`); a plain folder standing in for the guest's file system under the managed
16
+ * e2e test hook (`directoryGuestMount`). Everything that turns a guest path into one core opens, or
17
+ * back, goes through one of these, so the test hook changes nothing else.
18
+ */
19
+ export interface GuestMount {
20
+ /** A guest path as this process opens it. */
21
+ hostPath(distribution: string, guestPath: string): string;
22
+ /** The guest path behind one of this process's paths; `INVALID_ARGUMENT` for anything outside it. */
23
+ guestPath(distribution: string, hostPath: string): string;
24
+ }
25
+ export declare const WSL_LOCALHOST_MOUNT: GuestMount;
26
+ /** Tests only: `<root>/<distribution>/<guest path>` stands in for `\\wsl.localhost\<distribution>\<guest path>`. */
27
+ export declare function directoryGuestMount(root: string): GuestMount;
28
+ /**
29
+ * This scope's managed paths on Windows: heartbeats, engine caches and the watchdog script in the
30
+ * guest (as core reaches them, through `mount`), the journal and docker config where they were. Same
31
+ * layout below the root as Linux's (`config/paths.ts`), so nothing above it changes.
32
+ */
33
+ export declare function guestScopePaths(windows: ManagedScopePaths, distribution: string, scopeKey: string, mount?: GuestMount): ManagedScopePaths;
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Where a Windows scope's managed files live, and how each side names them (change
3
+ * `add-tensorrt-llm-windows`, task 2.6, design D5). Everything a model container sees — the model,
4
+ * its engine cache, the heartbeat, the watchdog script — is in the guest's ext4, under one root per
5
+ * scope: `/var/lib/atomic-chat/scopes/<scope_key>/`. Loading weights over the VM boundary (9p) is
6
+ * several times slower, so nothing the engine reads is left on NTFS.
7
+ *
8
+ * Core (on Windows) reaches the same files as `\\wsl.localhost\<distro>\var\lib\atomic-chat\…`;
9
+ * Docker (in the guest) mounts them as `/var/lib/atomic-chat/…`. `uncPathFor` and `guestPathFor` are
10
+ * the one translation between the two, and `guestPathFor` refuses anything that is not inside the
11
+ * named distribution — a Windows path, another distribution, a `..` climbing out — so a guest mount can
12
+ * never be pointed at the Windows disk or at someone else's files. The execution journal and the
13
+ * docker config stay on Windows: they are core's own state, not the container's.
14
+ */
15
+ import { isAbsolute, join, relative, sep } from 'node:path';
16
+ import { AtomicCoreError } from '../../contracts/index.js';
17
+ /** Every scope's guest root lives under this. */
18
+ export const GUEST_SCOPES_ROOT = '/var/lib/atomic-chat/scopes';
19
+ const SCOPE_KEY = /^[A-Za-z0-9-]{1,64}$/;
20
+ const UNC_PREFIX = /^[\\/]{2}(wsl\.localhost|wsl\$)[\\/]([^\\/]+)(?:[\\/](.*))?$/i;
21
+ const outside = (path) => new AtomicCoreError('INVALID_ARGUMENT', 'The path is not inside the Atomic Chat distribution.', path);
22
+ /** `/var/lib/atomic-chat/scopes/<key>`; the key is core's own random id, never a path segment it was given. */
23
+ export function guestScopeRoot(scopeKey) {
24
+ if (!SCOPE_KEY.test(scopeKey))
25
+ throw new AtomicCoreError('INVALID_ARGUMENT', 'Not a scope key.', scopeKey);
26
+ return `${GUEST_SCOPES_ROOT}/${scopeKey}`;
27
+ }
28
+ /** A guest path as Windows opens it: `\\wsl.localhost\<distro>\…`. */
29
+ export function uncPathFor(distribution, guestPath) {
30
+ const relative = guestPath.replace(/^\/+/, '').split('/').filter(Boolean).join('\\');
31
+ return `\\\\wsl.localhost\\${distribution}${relative === '' ? '' : `\\${relative}`}`;
32
+ }
33
+ /**
34
+ * The guest path behind a `\\wsl.localhost\<distro>\…` (or `\\wsl$\…`) path of this distribution.
35
+ * Throws `INVALID_ARGUMENT` for anything else, a `..` segment included.
36
+ */
37
+ export function guestPathFor(distribution, uncPath) {
38
+ const match = UNC_PREFIX.exec(uncPath);
39
+ if (match === null || match[2].toLowerCase() !== distribution.toLowerCase())
40
+ throw outside(uncPath);
41
+ const segments = (match[3] ?? '').split(/[\\/]+/).filter(Boolean);
42
+ if (segments.some((segment) => segment === '..' || segment === '.'))
43
+ throw outside(uncPath);
44
+ return `/${segments.join('/')}`;
45
+ }
46
+ export const WSL_LOCALHOST_MOUNT = { hostPath: uncPathFor, guestPath: guestPathFor };
47
+ /** Tests only: `<root>/<distribution>/<guest path>` stands in for `\\wsl.localhost\<distribution>\<guest path>`. */
48
+ export function directoryGuestMount(root) {
49
+ return {
50
+ hostPath: (distribution, guestPath) => join(root, distribution, ...guestPath.split('/').filter(Boolean)),
51
+ guestPath: (distribution, hostPath) => {
52
+ const inside = relative(join(root, distribution), hostPath);
53
+ if (inside === '' || inside.startsWith('..') || isAbsolute(inside))
54
+ throw outside(hostPath);
55
+ return `/${inside.split(sep).join('/')}`;
56
+ },
57
+ };
58
+ }
59
+ /**
60
+ * This scope's managed paths on Windows: heartbeats, engine caches and the watchdog script in the
61
+ * guest (as core reaches them, through `mount`), the journal and docker config where they were. Same
62
+ * layout below the root as Linux's (`config/paths.ts`), so nothing above it changes.
63
+ */
64
+ export function guestScopePaths(windows, distribution, scopeKey, mount = WSL_LOCALHOST_MOUNT) {
65
+ const guestRoot = guestScopeRoot(scopeKey);
66
+ const inGuest = (path) => {
67
+ const segments = relative(windows.root, path)
68
+ .split(/[\\/]+/)
69
+ .filter(Boolean);
70
+ return mount.hostPath(distribution, [guestRoot, ...segments].join('/'));
71
+ };
72
+ return {
73
+ ...windows,
74
+ root: mount.hostPath(distribution, guestRoot),
75
+ heartbeatsDir: inGuest(windows.heartbeatsDir),
76
+ heartbeatDir: (generation) => inGuest(windows.heartbeatDir(generation)),
77
+ cachesDir: inGuest(windows.cachesDir),
78
+ descriptorCachesDir: (descriptorId) => inGuest(windows.descriptorCachesDir(descriptorId)),
79
+ engineCacheDir: (descriptorId, modelId) => inGuest(windows.engineCacheDir(descriptorId, modelId)),
80
+ watchdogScript: inGuest(windows.watchdogScript),
81
+ };
82
+ }
83
+ //# sourceMappingURL=guest-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guest-paths.js","sourceRoot":"","sources":["../../../src/runtime/wsl/guest-paths.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { WslDistributionTransport } from './transport.js';
2
+ /** The account in the guest that owns a scope's files (design D5). */
3
+ export declare const GUEST_SCOPE_OWNER = "1000:1000";
4
+ /** The scope's key, made on first use. A file that does not hold a valid key is an error, never replaced. */
5
+ export declare function readOrCreateGuestScopeKey(file: string, newKey?: () => string): Promise<string>;
6
+ /** One read (or creation) of the key shared by every caller: two first callers racing would each create one. */
7
+ export declare function guestScopeKeyReader(file: string, newKey?: () => string): () => Promise<string>;
8
+ /**
9
+ * `managed-models`, `models/tensorrt-llm`, `caches`, `heartbeats`, `watchdog` under the scope's guest root,
10
+ * owned by uid 1000 — and the folders directly in `managed-models` too: the store migration creates a
11
+ * moved model's parent (`managed-models/<org>`) as root, and a folder root owns there refuses every
12
+ * later download into it through `\\wsl.localhost` (`EACCES`, Windows `os error 5`).
13
+ */
14
+ export declare function ensureGuestScope(transport: WslDistributionTransport, scopeKey: string): Promise<void>;
@@ -0,0 +1,98 @@
1
+ /**
2
+ * A Windows scope's own folder in the guest (change `add-tensorrt-llm-windows`, task 2.6, design D5):
3
+ * `scope_key` — a random id core makes once and keeps in the scope's data
4
+ * (`ManagedScopePaths.guestScopeFile`), so that copying the data folder elsewhere keeps pointing at the
5
+ * same guest folder and its models (spec "Перенос папки данных не перемещает модели") — and the folders
6
+ * under it, created as the guest's root and handed to uid 1000: the account the app writes models as
7
+ * through `\\wsl.localhost` and the model container runs as, so the files of both belong to one user.
8
+ */
9
+ import { randomUUID } from 'node:crypto';
10
+ import { mkdir, readFile, rename, writeFile } from 'node:fs/promises';
11
+ import { dirname } from 'node:path';
12
+ import { AtomicCoreError } from '../../contracts/index.js';
13
+ import { guestScopeRoot } from './guest-paths.js';
14
+ const SCOPE_KEY = /^[A-Za-z0-9-]{1,64}$/;
15
+ /** The account in the guest that owns a scope's files (design D5). */
16
+ export const GUEST_SCOPE_OWNER = '1000:1000';
17
+ /** The scope's key, made on first use. A file that does not hold a valid key is an error, never replaced. */
18
+ export async function readOrCreateGuestScopeKey(file, newKey = randomUUID) {
19
+ let text = null;
20
+ try {
21
+ text = await readFile(file, 'utf8');
22
+ }
23
+ catch (error) {
24
+ if (error.code !== 'ENOENT')
25
+ throw error;
26
+ }
27
+ if (text !== null) {
28
+ const parsed = JSON.parse(text);
29
+ if (parsed.schema_version !== 1 ||
30
+ typeof parsed.scope_key !== 'string' ||
31
+ !SCOPE_KEY.test(parsed.scope_key)) {
32
+ throw new AtomicCoreError('MANAGED_METADATA_INVALID', 'The guest scope key file is not valid.', file);
33
+ }
34
+ return parsed.scope_key;
35
+ }
36
+ const key = newKey();
37
+ await mkdir(dirname(file), { recursive: true });
38
+ const temp = `${file}.tmp`;
39
+ await writeFile(temp, `${JSON.stringify({ schema_version: 1, scope_key: key })}\n`, 'utf8');
40
+ await rename(temp, file);
41
+ return key;
42
+ }
43
+ /** One read (or creation) of the key shared by every caller: two first callers racing would each create one. */
44
+ export function guestScopeKeyReader(file, newKey = randomUUID) {
45
+ let read = null;
46
+ return () => {
47
+ read ??= readOrCreateGuestScopeKey(file, newKey).catch((error) => {
48
+ read = null;
49
+ throw error;
50
+ });
51
+ return read;
52
+ };
53
+ }
54
+ /**
55
+ * `managed-models`, `models/tensorrt-llm`, `caches`, `heartbeats`, `watchdog` under the scope's guest root,
56
+ * owned by uid 1000 — and the folders directly in `managed-models` too: the store migration creates a
57
+ * moved model's parent (`managed-models/<org>`) as root, and a folder root owns there refuses every
58
+ * later download into it through `\\wsl.localhost` (`EACCES`, Windows `os error 5`).
59
+ */
60
+ export async function ensureGuestScope(transport, scopeKey) {
61
+ const root = guestScopeRoot(scopeKey);
62
+ const store = `${root}/managed-models`;
63
+ const leaves = [
64
+ store,
65
+ `${root}/models/tensorrt-llm`,
66
+ `${root}/caches`,
67
+ `${root}/heartbeats`,
68
+ `${root}/watchdog`,
69
+ ];
70
+ const run = async (argv) => {
71
+ const output = await transport.exec(argv, { user: 'root', timeoutMs: 120_000 });
72
+ if (output.code !== 0) {
73
+ throw new AtomicCoreError('IO_ERROR', `The model folders could not be prepared in the distribution "${transport.name}".`, `${argv.join(' ')}: ${output.stderr.trim()}`);
74
+ }
75
+ };
76
+ await run(['mkdir', '-p', ...leaves]);
77
+ // Not recursive: the folders, never every file of every model under them.
78
+ await run(['chown', GUEST_SCOPE_OWNER, root, `${root}/models`, ...leaves]);
79
+ // Only folders root owns, one level down: the model folders below them already belong to uid 1000.
80
+ await run([
81
+ 'find',
82
+ store,
83
+ '-mindepth',
84
+ '1',
85
+ '-maxdepth',
86
+ '1',
87
+ '-type',
88
+ 'd',
89
+ '-user',
90
+ 'root',
91
+ '-exec',
92
+ 'chown',
93
+ GUEST_SCOPE_OWNER,
94
+ '{}',
95
+ '+',
96
+ ]);
97
+ }
98
+ //# sourceMappingURL=guest-scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guest-scope.js","sourceRoot":"","sources":["../../../src/runtime/wsl/guest-scope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * WSL from Windows (openspec change `add-tensorrt-llm-windows`): the transport every piece of the
3
+ * Windows managed environment reaches Atomic Chat's own distribution through — `wsl.exe` argv with no
4
+ * shell, its UTF-16 output decoded, deadlines, an injectable executable, and the attached process
5
+ * that keeps the distribution running (design D1, D8, D16).
6
+ *
7
+ * Public API of this module is exported from this file only.
8
+ */
9
+ export * from './transport.js';
10
+ export * from './guest-paths.js';
11
+ export * from './guest-scope.js';
12
+ export * from './keeper.js';
@@ -0,0 +1,13 @@
1
+ /**
2
+ * WSL from Windows (openspec change `add-tensorrt-llm-windows`): the transport every piece of the
3
+ * Windows managed environment reaches Atomic Chat's own distribution through — `wsl.exe` argv with no
4
+ * shell, its UTF-16 output decoded, deadlines, an injectable executable, and the attached process
5
+ * that keeps the distribution running (design D1, D8, D16).
6
+ *
7
+ * Public API of this module is exported from this file only.
8
+ */
9
+ export * from './transport.js';
10
+ export * from './guest-paths.js';
11
+ export * from './guest-scope.js';
12
+ export * from './keeper.js';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/wsl/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA"}