@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,402 @@
1
+ /**
2
+ * The one `LocalRuntime` every managed engine is (change `add-vllm-runtime`, design D3; before it, the
3
+ * `tensorrt-llm` provider of change `add-tensorrt-llm-linux`, task 2.14): a provider on the
4
+ * engine-neutral managed-text lifecycle (`../managed-text/`), parameterized by the engine's
5
+ * `ManagedEngineSpec` — its adapter, settings, memory rule and route policy. What this file adds on
6
+ * top of the lifecycle is the provider's own part of a load:
7
+ *
8
+ * - refusing it before any container exists — no Docker, no `ready` installation
9
+ * (`MANAGED_ADAPTER_UNAVAILABLE`), settings the spec rejects (`INVALID_ARGUMENT`), a model that
10
+ * is not installed, a host with no NVIDIA card, an embedding request;
11
+ * - the card: the saved `gpu_id` when the probe still finds it, otherwise the one with the most free
12
+ * memory, ties by the most total memory (`selectLaunchGpu`, the same rule `POST /check` uses),
13
+ * with the replacement reported on every load event;
14
+ * - one session at a time, and one resident model per card: the lifecycle's `stopping-previous`
15
+ * stage asks core's GPU residency (`claimGpu`) to stop every other model of this provider and
16
+ * every other engine on the chosen card, each with a confirmed exit, before this one's container
17
+ * is created — or, with no residency wired, stops this provider's other models itself;
18
+ * - what a session can do (`routePolicy`, `capabilities`), read off the pinned descriptor's
19
+ * `model_families` entry for the model's architecture — never guessed;
20
+ * - never growing a context or recreating a session: a restart of a multi-minute container in the
21
+ * middle of a conversation is worse than an honest `context_length_exceeded`;
22
+ * - the pre-launch check, split in two: before `stopPrevious` runs, `verifyModelFilesAndCompatibility`
23
+ * (`prelaunch.ts`) re-verifies every file `model.yml` recorded present on disk at its size, and
24
+ * recomputes architecture/format/compute-capability against `config.json`/`hf_quant_config.json`
25
+ * as they sit in the model's directory right now — never memory, which the model this load is
26
+ * about to replace may still be holding on the very same card. Memory is checked after
27
+ * `stopPrevious`, through the lifecycle's own `beforeCreate` hook (`checkMemoryBeforeCreate`
28
+ * below), by the engine's own memory rule, against a re-probed card;
29
+ * - `family` (tools/structured output/route policy) is read off the descriptor's `model_families`
30
+ * entry for the *verified* `config.json` architecture — `model.yml`'s own copy of the
31
+ * architecture is never consulted for this, since the pre-launch check may have found it stale.
32
+ *
33
+ * Everything that touches the machine arrives injected: the lifecycle over the core's one Docker
34
+ * executor, the ready installation, the host facts, the model lookup and the stored settings.
35
+ */
36
+ import { AtomicCoreError } from '../../contracts/index.js';
37
+ import { throwIfLoadCancelled } from '../shared/index.js';
38
+ import { checkCheckpointMemory, selectLaunchGpu } from '../managed-models/index.js';
39
+ import { verifyModelFilesAndCompatibility } from '../tensorrt-llm/prelaunch.js';
40
+ const NONE = {
41
+ tools: false,
42
+ reasoning: false,
43
+ structured_output: false,
44
+ vision: false,
45
+ embeddings: false,
46
+ responses: false,
47
+ };
48
+ /** `capabilities()`'s own lookup, off `model.yml`'s architecture: no disk verification runs for it. */
49
+ function familyOf(ready, model) {
50
+ if (model.architecture === null)
51
+ return null;
52
+ return ready.descriptor.model_families[model.architecture] ?? null;
53
+ }
54
+ /**
55
+ * The load path's own lookup (finding 5): off the *verified* `config.json` architecture
56
+ * (`ResolvedCheckpoint.architectures[0]`, from the pre-launch check), never `model.yml`'s — the two
57
+ * can disagree (a stale `model.yml`, or none at all), and only the one the compatibility check just
58
+ * confirmed against the descriptor's `supported_architectures` is trustworthy enough to gate what a
59
+ * session is allowed to do.
60
+ */
61
+ function familyFromResolved(ready, resolved) {
62
+ const architecture = resolved.architectures[0];
63
+ return architecture === undefined ? null : (ready.descriptor.model_families[architecture] ?? null);
64
+ }
65
+ export class ManagedTextRuntime {
66
+ engine;
67
+ deps;
68
+ current = null;
69
+ closed = false;
70
+ /** Removals of the engine in progress: while any holds loads off, every load is refused (M-1). */
71
+ loadHolds = 0;
72
+ /** Deletions of one model in progress (task 2.24): each refuses loads of that model only, counted. */
73
+ modelHolds = new Map();
74
+ /** Generations whose GPU claim succeeded: a load only holds its card from then on. */
75
+ claimed = new Set();
76
+ /** What each loaded session can do, keyed by model and pinned to the generation it was computed for. */
77
+ sessionCapabilities = new Map();
78
+ constructor(engine, deps) {
79
+ this.engine = engine;
80
+ this.deps = deps;
81
+ }
82
+ list() {
83
+ return this.current?.list() ?? [];
84
+ }
85
+ findSession(modelId) {
86
+ return this.current?.findSession(modelId);
87
+ }
88
+ getLoadedModels() {
89
+ return this.list().map((session) => session.model_id);
90
+ }
91
+ isLoading(modelId) {
92
+ return this.current?.isLoading(modelId) ?? false;
93
+ }
94
+ async load(modelId, opts = {}) {
95
+ const { signal } = opts;
96
+ this.assertOpen();
97
+ this.assertNotHeldOff(modelId);
98
+ throwIfLoadCancelled(signal);
99
+ if (opts.isEmbedding) {
100
+ throw new AtomicCoreError('INVALID_ARGUMENT', `${this.engine.provider} models do not serve embeddings.`, modelId);
101
+ }
102
+ // Validated first, before anything is asked of the machine (spec: schema validation before start).
103
+ const settings = this.engine.settings(this.deps.settings(), opts.overrides);
104
+ const lifecycle = await this.deps.lifecycle().catch((cause) => {
105
+ throw new AtomicCoreError('MANAGED_ADAPTER_UNAVAILABLE', `The managed container runtime failed to initialise, so ${this.engine.provider} cannot run models.`, cause instanceof Error ? cause.message : String(cause));
106
+ });
107
+ if (lifecycle === null) {
108
+ throw new AtomicCoreError('MANAGED_ADAPTER_UNAVAILABLE', `Docker is not installed on this machine, so ${this.engine.provider} cannot run models.`);
109
+ }
110
+ // Kept from the first load on: what `list`, `unload` and `shutdown` act on. Nothing is loaded
111
+ // before that, so there is nothing for them to find earlier either.
112
+ this.current = lifecycle;
113
+ const ready = await this.deps.readyInstallation();
114
+ throwIfLoadCancelled(signal);
115
+ const model = await this.deps.model(modelId);
116
+ const facts = await this.deps.hostFacts();
117
+ throwIfLoadCancelled(signal);
118
+ this.assertOpen();
119
+ const gpu = selectLaunchGpu(facts.gpus, facts.memory, settings.gpu_id ?? undefined);
120
+ if (gpu === null) {
121
+ throw new AtomicCoreError('MANAGED_PREREQUISITE_BLOCKED', `No NVIDIA GPU was found on this machine, so ${this.engine.provider} cannot load a model.`);
122
+ }
123
+ const substituted = settings.gpu_id !== null && gpu.gpu_id !== settings.gpu_id
124
+ ? { requested_gpu_id: settings.gpu_id, gpu_id: gpu.gpu_id }
125
+ : undefined;
126
+ const check = this.engine.check(settings);
127
+ // Pre-launch check, phase 1 (task 2.16, spec "Проверка файлов при загрузке"; round 1, finding 1
128
+ // (Critical)): every file model.yml recorded is still on disk at its size, and architecture/
129
+ // format/compute-capability are recomputed against config.json/hf_quant_config.json as they sit
130
+ // on disk right now — never model.yml's word for it, and never memory, which the model this load
131
+ // is about to replace may still be holding on this very card. No container exists yet; a failure
132
+ // here never creates one.
133
+ const resolved = await verifyModelFilesAndCompatibility(model, ready.descriptor, facts.gpus, facts.memory, { gpuId: gpu.gpu_id, engine: check });
134
+ throwIfLoadCancelled(signal);
135
+ this.assertOpen();
136
+ // family from the *verified* config.json architecture, never model.yml's own (finding 5).
137
+ const family = familyFromResolved(ready, resolved);
138
+ const { descriptor } = ready;
139
+ // Again right before the lifecycle registers this load (synchronously, inside `lifecycle.load`):
140
+ // a removal that began while this load was probing the host must not find it past the check.
141
+ this.assertNotHeldOff(modelId);
142
+ const session = await lifecycle.load({
143
+ modelId,
144
+ modelPath: model.dir,
145
+ weightBytes: model.weightBytes,
146
+ installation: {
147
+ descriptor_id: descriptor.descriptor_id,
148
+ engine_id: descriptor.engine_id,
149
+ adapter_id: descriptor.adapter_id,
150
+ adapter_contract_version: descriptor.adapter_contract_version,
151
+ image: ready.image,
152
+ },
153
+ family,
154
+ gpuUuid: gpu.gpu_id,
155
+ // No VRAM of its own (design D13): the launch bounds the KV cache by tokens, as the memory
156
+ // check (`checkModelMemory`, same rule) reserved for it.
157
+ unifiedMemory: gpu.total_vram_bytes === null,
158
+ gpuTotalVramBytes: gpu.total_vram_bytes,
159
+ gpuComputeCapability: gpu.compute_capability,
160
+ selinux: facts.selinux,
161
+ settings,
162
+ // Always passed, evaluated when the stage runs: a second model that arrived a moment earlier
163
+ // is still found, so two loads racing each other can never both end up running.
164
+ stopPrevious: (stageSignal, generation) => this.stopOthers(lifecycle, { modelId, generation, gpuId: gpu.gpu_id }, stageSignal),
165
+ // Pre-launch check, phase 2 (finding 1): the memory line alone, re-probed fresh once
166
+ // stopPrevious (above) has actually freed the card — never the snapshot `facts` took before
167
+ // eviction, which is why this is a lifecycle hook and not just more code in this function.
168
+ beforeCreate: () => this.checkMemoryBeforeCreate(gpu.gpu_id, descriptor, resolved, check, settings),
169
+ ...(opts.timeoutSecs !== undefined ? { timeoutMs: opts.timeoutSecs * 1000 } : {}),
170
+ ...(signal !== undefined ? { signal } : {}),
171
+ ...(substituted !== undefined ? { gpuSubstituted: substituted } : {}),
172
+ });
173
+ this.sessionCapabilities.set(modelId, {
174
+ generation: session.generation ?? '',
175
+ capabilities: this.engine.adapter.capabilities({ settings, family }),
176
+ limits: { contextLength: settings.context_length, maxOutputTokens: settings.max_output_tokens },
177
+ });
178
+ return session;
179
+ }
180
+ /**
181
+ * Throws `MANAGED_STOP_UNCONFIRMED` when Docker will not confirm the stop: the card stays reserved
182
+ * and the caller is told, rather than handed a success that is not one.
183
+ */
184
+ async unload(modelId) {
185
+ // Read before the stop: an id this provider never had answers `was_loaded: false` (spec
186
+ // `tensorrt-llm-runtime`), so a client's wrong id never reads as a stopped model (G-app-4).
187
+ const wasLoaded = this.residentModels().includes(modelId);
188
+ await this.current?.unload(modelId);
189
+ this.sessionCapabilities.delete(modelId);
190
+ return { success: true, was_loaded: wasLoaded };
191
+ }
192
+ /**
193
+ * Every model holding a card through this provider — loading, ready, stopping, or stopped without
194
+ * Docker's confirmation: what a removal of the engine must unload first (task 2.6), through core's
195
+ * own unload so each model's cross-process claim is released with it (final review M-1).
196
+ */
197
+ residentModels() {
198
+ return [...new Set((this.current?.reservations() ?? []).map((r) => r.model_id))];
199
+ }
200
+ /**
201
+ * Refuses every load with `MANAGED_OPERATION_CONFLICT` until the returned release is called (final
202
+ * review M-1): a removal of the engine holds loads off for as long as it runs, so no load creates
203
+ * a container on an installation being removed. Holds nest; each release counts once.
204
+ */
205
+ holdOffLoads() {
206
+ this.loadHolds += 1;
207
+ let released = false;
208
+ return () => {
209
+ if (released)
210
+ return;
211
+ released = true;
212
+ this.loadHolds -= 1;
213
+ };
214
+ }
215
+ /**
216
+ * Refuses loads of this one model with `MANAGED_OPERATION_CONFLICT` until the returned release is
217
+ * called (task 2.24): a deletion holds them off from before it stops the model until its files are
218
+ * gone, so no load mounts a folder being removed. Other models load as usual. Holds nest.
219
+ */
220
+ holdOffModel(modelId) {
221
+ this.modelHolds.set(modelId, (this.modelHolds.get(modelId) ?? 0) + 1);
222
+ let released = false;
223
+ return () => {
224
+ if (released)
225
+ return;
226
+ released = true;
227
+ const left = (this.modelHolds.get(modelId) ?? 1) - 1;
228
+ if (left > 0)
229
+ this.modelHolds.set(modelId, left);
230
+ else
231
+ this.modelHolds.delete(modelId);
232
+ };
233
+ }
234
+ /** Never: the context is fixed when the container starts (design D9, spec "без авто-роста"). */
235
+ autoIncreaseCtx(_modelId) {
236
+ return Promise.resolve({ ok: false, reason: 'unsupported' });
237
+ }
238
+ recreateSession(modelId) {
239
+ return Promise.reject(new AtomicCoreError('INVALID_ARGUMENT', `A ${this.engine.provider} session is not recreated in place; unload the model and load it again.`, modelId));
240
+ }
241
+ async shutdown() {
242
+ this.closed = true;
243
+ await this.current?.shutdown();
244
+ this.sessionCapabilities.clear();
245
+ }
246
+ routePolicy(modelId) {
247
+ const session = this.findSession(modelId);
248
+ if (session === undefined)
249
+ return undefined;
250
+ const known = this.sessionCapabilities.get(modelId);
251
+ // A session with no record of what it can do is treated as able to do nothing optional.
252
+ if (known === undefined || known.generation !== session.generation)
253
+ return this.engine.routePolicy(NONE);
254
+ return this.engine.routePolicy(known.capabilities, known.limits);
255
+ }
256
+ /** Answers rather than throws, like every provider's capabilities: all false while nothing resolves. */
257
+ async capabilities(modelId) {
258
+ const base = {
259
+ modelId,
260
+ mmprojExists: false,
261
+ isEmbedding: false,
262
+ isDecision: false,
263
+ audio: false,
264
+ gemmaMtp: false,
265
+ dflash: false,
266
+ dflashDrafts: [],
267
+ ...NONE,
268
+ architecture: null,
269
+ };
270
+ try {
271
+ const [ready, model] = await Promise.all([this.deps.readyInstallation(), this.deps.model(modelId)]);
272
+ const settings = this.engine.settings({});
273
+ return {
274
+ ...base,
275
+ ...this.engine.adapter.capabilities({ settings, family: familyOf(ready, model) }),
276
+ architecture: model.architecture,
277
+ };
278
+ }
279
+ catch {
280
+ return base;
281
+ }
282
+ }
283
+ async logs(modelId) {
284
+ const lifecycle = this.current;
285
+ const session = lifecycle?.findSession(modelId);
286
+ if (lifecycle && session) {
287
+ return {
288
+ model_id: modelId,
289
+ source: 'session',
290
+ generation: session.generation ?? '',
291
+ log_tail: (await lifecycle.logs(modelId)) ?? '',
292
+ };
293
+ }
294
+ const attempt = lifecycle?.lastAttempt(modelId);
295
+ if (attempt === undefined)
296
+ return { model_id: modelId, source: null, log_tail: '' };
297
+ return {
298
+ model_id: modelId,
299
+ source: 'last-attempt',
300
+ generation: attempt.generation,
301
+ log_tail: attempt.log_tail,
302
+ error: attempt.error,
303
+ at: attempt.at,
304
+ };
305
+ }
306
+ assertOpen() {
307
+ if (this.closed) {
308
+ throw new AtomicCoreError('CORE_NOT_RUNNING', `The ${this.engine.provider} provider is shutting down.`);
309
+ }
310
+ }
311
+ assertNotHeldOff(modelId) {
312
+ if (this.loadHolds > 0) {
313
+ throw new AtomicCoreError('MANAGED_OPERATION_CONFLICT', `The ${this.engine.label} engine is being removed; load the model once the removal has finished.`, modelId);
314
+ }
315
+ if (this.modelHolds.has(modelId)) {
316
+ throw new AtomicCoreError('MANAGED_OPERATION_CONFLICT', 'The model is being deleted.', modelId);
317
+ }
318
+ }
319
+ /**
320
+ * The card each container holds, for core's residency rule: every model past its claim — loading,
321
+ * ready, stopping, or stopped without Docker's confirmation, which still holds the card.
322
+ */
323
+ gpuOccupancy() {
324
+ return (this.current?.reservations() ?? [])
325
+ .filter((r) => r.state !== 'loading' || this.claimed.has(r.generation))
326
+ .map((r) => ({
327
+ model_id: r.model_id,
328
+ cards: [r.gpu_uuid],
329
+ auxiliary: false,
330
+ state: r.state,
331
+ ...(r.state === 'stop-unconfirmed' && r.container_id !== null
332
+ ? {
333
+ remedy: `Loading again retries the stop; if Docker keeps failing, restart Docker or remove ` +
334
+ `container ${r.container_id} (docker rm -f ${r.container_id}).`,
335
+ }
336
+ : {}),
337
+ }));
338
+ }
339
+ /**
340
+ * The `stopping-previous` stage. First, the same model in any other managed provider is unloaded
341
+ * (`releaseModelElsewhere`). Then, with core's residency: its claim on `gpuId`, which stops every other
342
+ * model of this provider (one session at a time) and every other engine on that card, each with a
343
+ * confirmed exit, and refuses with `GPU_BUSY` while one will not stop. Without it: every other
344
+ * model of this provider, loading or loaded, stopped with confirmation. Either way the load holds its
345
+ * card from then on — with residency, from the moment core grants the claim, inside core's turn.
346
+ */
347
+ async stopOthers(lifecycle, load, signal) {
348
+ // Generations whose reservation is gone are forgotten here, never while answering a read.
349
+ const live = new Set(lifecycle.reservations().map((r) => r.generation));
350
+ for (const generation of this.claimed)
351
+ if (!live.has(generation))
352
+ this.claimed.delete(generation);
353
+ const hold = () => {
354
+ this.claimed.add(load.generation);
355
+ };
356
+ // The same model in another managed provider goes first, before any card is claimed for it.
357
+ await this.deps.releaseModelElsewhere?.(load.modelId, signal);
358
+ if (this.deps.claimGpu) {
359
+ const claim = {
360
+ model_id: load.modelId,
361
+ cards: [load.gpuId],
362
+ auxiliary: false,
363
+ soleSessionOfProvider: true,
364
+ };
365
+ await this.deps.claimGpu(claim, signal, hold);
366
+ }
367
+ else {
368
+ const others = new Set(lifecycle.reservations().map((r) => r.model_id));
369
+ others.delete(load.modelId);
370
+ for (const other of others)
371
+ await this.unload(other);
372
+ }
373
+ hold();
374
+ }
375
+ /**
376
+ * The lifecycle's `beforeCreate` hook (task 2.16w round 1, finding 1 (Critical)): the pre-launch
377
+ * check's memory line, re-probed fresh right before the container is actually created — after
378
+ * `stopPrevious` has run, so a model switch on a single-GPU host sees the card the previous
379
+ * session just freed, never a snapshot `load()` took before eviction. `MANAGED_PREREQUISITE_
380
+ * BLOCKED` when the chosen card is no longer on the host at all (the same code a missing card gets
381
+ * earlier in `load()`); `MODEL_INCOMPATIBLE` when it is still there but does not have room.
382
+ */
383
+ async checkMemoryBeforeCreate(gpuId, descriptor, resolved, check, settings) {
384
+ const facts = await this.deps.hostFacts();
385
+ const card = facts.gpus.find((gpu) => gpu.gpu_id === gpuId);
386
+ if (card === undefined) {
387
+ throw new AtomicCoreError('MANAGED_PREREQUISITE_BLOCKED', 'The selected GPU disappeared before the container could start.', gpuId);
388
+ }
389
+ const verdict = checkCheckpointMemory(resolved, descriptor, facts.gpus, facts.memory, check);
390
+ if (!verdict.verdict.ok) {
391
+ const { code, message, details } = verdict.verdict.error;
392
+ throw new AtomicCoreError(code, message, details);
393
+ }
394
+ // The engine's launch plan from this same fresh look at the card (design D9 of add-vllm-runtime).
395
+ return this.engine.launchPlan?.(settings, {
396
+ weightBytesTotal: resolved.weightBytesTotal,
397
+ configJson: resolved.configJson,
398
+ hfQuantConfigJson: resolved.hfQuantConfigJson,
399
+ }, card, facts.memory);
400
+ }
401
+ }
402
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/runtime/managed-engines/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * The managed engine registry (change `add-vllm-runtime`, design D3): what one managed engine is to
3
+ * core, beyond the `ManagedTextAdapter` the container lifecycle runs. A second engine is a new spec,
4
+ * an adapter and a descriptor — never a branch on an engine id in shared code.
5
+ *
6
+ * A spec says where the engine's descriptor comes from, which adapter launches its containers, how
7
+ * its stored settings are read and validated, how the shared compatibility check sizes its memory and
8
+ * which checkpoints its loader cannot read (`check`, design D7), and how the public server routes its
9
+ * sessions. The memory rule and the checkpoint quirks belong to the spec, not to the adapter:
10
+ * `adapter_contract_version` is a contract between a descriptor and a container launch, and the check
11
+ * runs with no Docker and no lifecycle at all.
12
+ *
13
+ * `engine_id` is the provider id. Core has relied on that in four places (residency leftovers, the
14
+ * models of an engine, the removal's unloader, the descriptor of a load); the registry makes it an
15
+ * invariant, checked when core starts.
16
+ */
17
+ import type { SessionRoutePolicy } from '../shared/index.js';
18
+ import type { DescriptorSource } from '../environment/index.js';
19
+ import type { ManagedTextAdapter, ManagedTextCapabilities } from '../managed-text/index.js';
20
+ import type { GpuFacts } from '../../contracts/index.js';
21
+ import type { CheckpointMemoryInputs, HostMemory, ManagedCheckEngine, ManagedModelCheckEngine } from '../managed-models/index.js';
22
+ /** What every managed engine's validated settings carry, whatever else they hold. */
23
+ export interface ManagedEngineSettings {
24
+ /** `GPU-<uuid>`/`MIG-<uuid>`, or `null` to let the load pick the card with the most free memory. */
25
+ gpu_id: string | null;
26
+ context_length: number;
27
+ max_output_tokens: number;
28
+ }
29
+ export interface ManagedEngineSpec<S extends ManagedEngineSettings = ManagedEngineSettings> {
30
+ /** The engine's id in conf and in installations. */
31
+ engine_id: string;
32
+ /** The provider id it is registered under: always `engine_id` (the registry checks). */
33
+ provider: string;
34
+ /** "TensorRT-LLM", "vLLM": the engine in messages. */
35
+ label: string;
36
+ /** conf main's `runtimes/<engine_id>.json`. */
37
+ descriptor: DescriptorSource;
38
+ adapter: ManagedTextAdapter<S>;
39
+ /**
40
+ * Stored values overlaid by a load's own overrides, reduced to this provider's keys and validated:
41
+ * `INVALID_ARGUMENT` for anything the schema refuses, before a container exists.
42
+ */
43
+ settings(stored: Record<string, unknown>, overrides?: Record<string, unknown>): S;
44
+ /** The compatibility check's hooks (memory rule, checkpoint quirks), sized by these settings. */
45
+ check(settings: S): ManagedCheckEngine;
46
+ /**
47
+ * Optional: the engine's launch plan, made right before its container is created — after the
48
+ * previous sessions stopped and the memory check passed on the card as it stands then — and handed
49
+ * to its adapter as `ManagedLaunchContext.plan` (vLLM's KV cache bytes and memory share, design D9).
50
+ */
51
+ launchPlan?(settings: S, checkpoint: CheckpointMemoryInputs, gpu: GpuFacts, host: HostMemory): unknown;
52
+ /** What the public server must know about a session to route it honestly. */
53
+ routePolicy(capabilities: ManagedTextCapabilities | null, limits?: {
54
+ contextLength: number;
55
+ maxOutputTokens: number;
56
+ } | null): SessionRoutePolicy;
57
+ }
58
+ /** The check route's side of an engine: its saved card and its memory rule, from stored settings. */
59
+ export declare function managedModelCheckOf<S extends ManagedEngineSettings>(spec: ManagedEngineSpec<S>): ManagedModelCheckEngine;
60
+ /** The engines this core can run, in priority order of registration. */
61
+ export declare class ManagedEngineRegistry {
62
+ private readonly specs;
63
+ /** Throws when the spec breaks the registry's invariants: a programming error, found at startup. */
64
+ register<S extends ManagedEngineSettings>(spec: ManagedEngineSpec<S>): void;
65
+ get(engineId: string): ManagedEngineSpec | undefined;
66
+ has(engineId: string): boolean;
67
+ list(): ManagedEngineSpec[];
68
+ /** Every engine's descriptor source, for the descriptor provider. */
69
+ descriptorSources(): DescriptorSource[];
70
+ }
@@ -0,0 +1,39 @@
1
+ /** The check route's side of an engine: its saved card and its memory rule, from stored settings. */
2
+ export function managedModelCheckOf(spec) {
3
+ return {
4
+ engineId: spec.engine_id,
5
+ gpuIdOf: (settings) => spec.settings(settings).gpu_id ?? null,
6
+ checkEngineOf: (settings) => spec.check(spec.settings(settings)),
7
+ };
8
+ }
9
+ /** The engines this core can run, in priority order of registration. */
10
+ export class ManagedEngineRegistry {
11
+ specs = new Map();
12
+ /** Throws when the spec breaks the registry's invariants: a programming error, found at startup. */
13
+ register(spec) {
14
+ if (spec.engine_id !== spec.provider) {
15
+ throw new Error(`Managed engine ${spec.label}: engine_id "${spec.engine_id}" must equal its provider id "${spec.provider}".`);
16
+ }
17
+ if (spec.descriptor.engine_id !== spec.engine_id) {
18
+ throw new Error(`Managed engine ${spec.engine_id}: its descriptor source is for "${spec.descriptor.engine_id}".`);
19
+ }
20
+ if (this.specs.has(spec.engine_id)) {
21
+ throw new Error(`Managed engine ${spec.engine_id} is already registered.`);
22
+ }
23
+ this.specs.set(spec.engine_id, spec);
24
+ }
25
+ get(engineId) {
26
+ return this.specs.get(engineId);
27
+ }
28
+ has(engineId) {
29
+ return this.specs.has(engineId);
30
+ }
31
+ list() {
32
+ return [...this.specs.values()];
33
+ }
34
+ /** Every engine's descriptor source, for the descriptor provider. */
35
+ descriptorSources() {
36
+ return this.list().map((spec) => spec.descriptor);
37
+ }
38
+ }
39
+ //# sourceMappingURL=spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec.js","sourceRoot":"","sources":["../../../src/runtime/managed-engines/spec.ts"],"names":[],"mappings":"AAiEA,qGAAqG;AACrG,MAAM,UAAU,mBAAmB,CACjC,IAA0B;IAE1B,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,SAAS;QACxB,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,IAAI;QAC7D,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;KACjE,CAAA;AACH,CAAC;AAED,wEAAwE;AACxE,MAAM,OAAO,qBAAqB;IACf,KAAK,GAAG,IAAI,GAAG,EAA6B,CAAA;IAE7D,oGAAoG;IACpG,QAAQ,CAAkC,IAA0B;QAClE,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,kBAAkB,IAAI,CAAC,KAAK,gBAAgB,IAAI,CAAC,SAAS,iCAAiC,IAAI,CAAC,QAAQ,IAAI,CAC7G,CAAA;QACH,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CACb,kBAAkB,IAAI,CAAC,SAAS,mCAAmC,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,CACjG,CAAA;QACH,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,SAAS,yBAAyB,CAAC,CAAA;QAC5E,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAoC,CAAC,CAAA;IACtE,CAAC;IAED,GAAG,CAAC,QAAgB;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC;IAED,GAAG,CAAC,QAAgB;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;IACjC,CAAC;IAED,qEAAqE;IACrE,iBAAiB;QACf,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACnD,CAAC;CACF"}
@@ -0,0 +1,50 @@
1
+ import type { GpuFacts, ModelCompatibility, RuntimeDescriptor } from '../../contracts/index.js';
2
+ import type { InstallationStore, RuntimeDescriptorProvider } from '../environment/index.js';
3
+ import type { HostMemory, ManagedCheckEngine, ModelCheckInput } from './compatibility.js';
4
+ export interface ModelCheckHostFacts {
5
+ gpus: GpuFacts[];
6
+ memory: HostMemory;
7
+ }
8
+ export interface ModelCheckDeps {
9
+ /** The setup operation's installation records; a torn or foreign file is skipped there. */
10
+ installations: Pick<InstallationStore, 'list'>;
11
+ descriptors: Pick<RuntimeDescriptorProvider, 'forInstallation' | 'cachedForNewSetup'>;
12
+ /** Never asks Docker anything (see the file banner); a card can disappear between two checks. */
13
+ hostFacts: () => Promise<ModelCheckHostFacts>;
14
+ /** The provider's stored settings (`settings.get(<provider>)`), for its card and its memory rule. */
15
+ settings: () => Record<string, unknown>;
16
+ /**
17
+ * Windows only (change `add-tensorrt-llm-windows`, design D11): `hostFacts.memory` is then the WSL
18
+ * VM's, and this says what `.wslconfig` sets it to, for the warning when the weights do not fit in it.
19
+ */
20
+ wslVm?: () => Promise<{
21
+ memory_setting: string | null;
22
+ }>;
23
+ }
24
+ /** `INVALID_ARGUMENT` for anything that does not shape up as `ModelCheckInput`; every field the spec names. */
25
+ export declare function parseModelCheckInput(body: unknown): ModelCheckInput;
26
+ /**
27
+ * The descriptor to check against: the `ready` installation of `engineId` with its pinned descriptor
28
+ * when there is one, else that engine's latest accepted cached descriptor — spec "по закреплённому
29
+ * дескриптору установки этого движка (или по актуальному дескриптору этого движка, если движок не
30
+ * установлен)". Throws the descriptor provider's own `MANAGED_METADATA_INVALID` when neither is
31
+ * available (nothing has ever been cached for this engine).
32
+ */
33
+ export declare function descriptorForCheck(engineId: string, deps: Pick<ModelCheckDeps, 'installations' | 'descriptors'>): Promise<RuntimeDescriptor>;
34
+ /** What one engine brings to the check route: its id, and from its stored settings its card and its rule. */
35
+ export interface ManagedModelCheckEngine {
36
+ engineId: string;
37
+ /** The card saved in the provider's settings, if any. */
38
+ gpuIdOf(settings: Record<string, unknown>): string | null;
39
+ /** The skeleton's hooks, sized by the provider's settings. */
40
+ checkEngineOf(settings: Record<string, unknown>): ManagedCheckEngine;
41
+ }
42
+ /**
43
+ * The full route for one engine: validate, resolve the descriptor and host facts (in parallel), then
44
+ * the pure check. Without an explicit `gpu_id` in the request, checks against the card a real load
45
+ * would pick — the provider's own stored `gpu_id` setting, falling back to `selectLaunchGpu`'s "most
46
+ * free memory, then most total memory" rule only when nothing is saved or the saved card is gone
47
+ * (design D12b of change `add-tensorrt-llm-linux`) — so the verdict and the launch cannot be about
48
+ * different cards.
49
+ */
50
+ export declare function checkManagedModel(engine: ManagedModelCheckEngine, body: unknown, deps: ModelCheckDeps): Promise<ModelCompatibility>;