@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,163 @@
1
+ /**
2
+ * The Windows machine as the Windows provisioner reaches it (change `add-tensorrt-llm-windows`,
3
+ * task 2.3): the read-only probe's dependencies (`WindowsProbeDeps`), where the user's own
4
+ * distribution directory lives (`%LOCALAPPDATA%`), and the two disk facts the plan and the snapshot
5
+ * show — free space on that directory's volume, and how big the distribution's `ext4.vhdx` has grown.
6
+ * `windows-probe.ts` and `windows-plan.ts` stay pure; this is where the real machine comes in.
7
+ */
8
+ import { readFileSync } from 'node:fs';
9
+ import { stat, statfs, readFile } from 'node:fs/promises';
10
+ import { machine as osMachine, release as osRelease } from 'node:os';
11
+ import { dirname, join, win32 } from 'node:path';
12
+ import { createWsl } from '../wsl/index.js';
13
+ import { hostExec } from './host-exec.js';
14
+ /** The fixed name Atomic Chat registers its own distribution under (design D9). */
15
+ export const ATOMIC_CHAT_DISTRIBUTION = 'AtomicChat';
16
+ /** Where Atomic Chat's own distribution lives: `%LOCALAPPDATA%\AtomicChat\wsl\<name>`. */
17
+ export function distributionDirectory(localAppData, name = ATOMIC_CHAT_DISTRIBUTION) {
18
+ return win32.join(localAppData, 'AtomicChat', 'wsl', name);
19
+ }
20
+ /** The disk image WSL keeps a distribution in, inside its directory. */
21
+ export function distributionDisk(directory) {
22
+ return win32.join(directory, 'ext4.vhdx');
23
+ }
24
+ async function readIfPresent(path) {
25
+ try {
26
+ return await readFile(path, 'utf8');
27
+ }
28
+ catch (error) {
29
+ if (error.code === 'ENOENT')
30
+ return null;
31
+ throw error;
32
+ }
33
+ }
34
+ /** Free space at the nearest ancestor of `path` that exists: the distribution's directory may not yet. */
35
+ export async function freeBytesAtNearest(path) {
36
+ let current = path;
37
+ for (;;) {
38
+ try {
39
+ const info = await statfs(current);
40
+ return Number(info.bavail) * Number(info.bsize);
41
+ }
42
+ catch (error) {
43
+ const code = error.code;
44
+ const parent = dirname(current);
45
+ if ((code !== 'ENOENT' && code !== 'ENOTDIR') || parent === current)
46
+ return null;
47
+ current = parent;
48
+ }
49
+ }
50
+ }
51
+ /** The real machine. `wsl` and `exec` are injectable so a test can run it without spawning anything. */
52
+ export function realWindowsHost(env, wsl = createWsl(), exec = hostExec()) {
53
+ const systemRoot = env['SystemRoot'] ?? env['SYSTEMROOT'] ?? 'C:\\Windows';
54
+ const profile = env['USERPROFILE'] ?? '';
55
+ return {
56
+ probeDeps: {
57
+ wsl,
58
+ exec: (command, args) => exec(command, args),
59
+ systemRoot,
60
+ machine: osMachine,
61
+ release: osRelease,
62
+ readWslConfig: () => profile === '' ? Promise.resolve(null) : readIfPresent(win32.join(profile, '.wslconfig')),
63
+ pathExists: async (path) => {
64
+ try {
65
+ await stat(path);
66
+ return true;
67
+ }
68
+ catch (error) {
69
+ const code = error.code;
70
+ if (code === 'ENOENT' || code === 'ENOTDIR')
71
+ return false;
72
+ throw error;
73
+ }
74
+ },
75
+ },
76
+ localAppData: env['LOCALAPPDATA'] ?? win32.join(profile, 'AppData', 'Local'),
77
+ freeDiskBytes: freeBytesAtNearest,
78
+ fileSize: async (path) => {
79
+ try {
80
+ return (await stat(path)).size;
81
+ }
82
+ catch {
83
+ return null;
84
+ }
85
+ },
86
+ };
87
+ }
88
+ /**
89
+ * Test hook only, the same kind as `ATOMIC_MANAGED_TEST_HOST`: production never sets it. It names a
90
+ * folder standing in for a whole Windows machine with WSL, so the compiled core's e2e suite drives the
91
+ * Windows managed path on any OS:
92
+ *
93
+ * - `windows.json` — the machine (`os.machine()`, `os.release()`, elevated or not, firmware
94
+ * virtualization, the NVIDIA driver and cards, `.wslconfig`'s text, the volume's free space, the
95
+ * distribution disk's size), read again at every call so a test can change it mid-run (a restart);
96
+ * - `wsl-command.json` — the argv `wsl.exe` is: a Node executable and `test/helpers/fake-wsl.mjs` with
97
+ * its state folder;
98
+ * - `local-app-data/` — `%LOCALAPPDATA%`;
99
+ * - `guest-fs/` — the guests' file systems, standing in for `\\wsl.localhost`.
100
+ */
101
+ export const MANAGED_TEST_WINDOWS_ENV = 'ATOMIC_MANAGED_TEST_WINDOWS';
102
+ export function managedTestWindowsDir(env) {
103
+ const dir = env[MANAGED_TEST_WINDOWS_ENV];
104
+ return dir === undefined || dir.trim() === '' ? null : dir;
105
+ }
106
+ /** The machine a test describes in `dir` (see `MANAGED_TEST_WINDOWS_ENV`). */
107
+ export function testWindowsHost(dir) {
108
+ const machine = async () => JSON.parse(await readFile(join(dir, 'windows.json'), 'utf8'));
109
+ const [executable, ...executableArgs] = JSON.parse(readFileSync(join(dir, 'wsl-command.json'), 'utf8'));
110
+ const wsl = createWsl({ executable: executable, executableArgs });
111
+ let snapshot = JSON.parse(readFileSync(join(dir, 'windows.json'), 'utf8'));
112
+ const fresh = async () => (snapshot = await machine());
113
+ return {
114
+ probeDeps: {
115
+ wsl,
116
+ exec: async (command, args) => {
117
+ const current = await fresh();
118
+ const base = command.split(/[\\/]/).pop()?.toLowerCase();
119
+ if (base === 'nvidia-smi.exe') {
120
+ if (current.nvidia === null)
121
+ return { code: null, stdout: '', stderr: 'not found' };
122
+ if (current.nvidia.gpus.length === 0)
123
+ return { code: 6, stdout: 'No devices were found\n', stderr: '' };
124
+ const { driver, gpus } = current.nvidia;
125
+ return {
126
+ code: 0,
127
+ stdout: gpus
128
+ .map((g) => `${g.uuid}, ${g.name}, ${g.cc}, ${g.total_mib}, ${g.free_mib}, ${driver}\n`)
129
+ .join(''),
130
+ stderr: '',
131
+ };
132
+ }
133
+ if (base === 'whoami.exe') {
134
+ const label = current.elevated ? 'S-1-16-12288' : 'S-1-16-8192';
135
+ return { code: 0, stdout: `"Mandatory Label\\Level","Label","${label}",""\r\n`, stderr: '' };
136
+ }
137
+ if (base === 'powershell.exe') {
138
+ if (current.virtualization === 'unreadable')
139
+ return { code: 1, stdout: '', stderr: 'CIM failed' };
140
+ return {
141
+ code: 0,
142
+ stdout: JSON.stringify({
143
+ VirtualizationFirmwareEnabled: current.virtualization.firmware,
144
+ HypervisorPresent: current.virtualization.hypervisor,
145
+ }),
146
+ stderr: '',
147
+ };
148
+ }
149
+ void args;
150
+ return { code: null, stdout: '', stderr: `test windows host: unexpected ${command}` };
151
+ },
152
+ systemRoot: 'C:\\Windows',
153
+ machine: () => snapshot.machine,
154
+ release: () => snapshot.release,
155
+ readWslConfig: async () => (await fresh()).wslconfig,
156
+ pathExists: async (path) => !/nvidia-smi\.exe$/i.test(path) || (await fresh()).nvidia !== null,
157
+ },
158
+ localAppData: join(dir, 'local-app-data'),
159
+ freeDiskBytes: async () => (await fresh()).volume_free_bytes,
160
+ fileSize: async () => (await fresh()).vhdx_bytes,
161
+ };
162
+ }
163
+ //# sourceMappingURL=windows-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windows-host.js","sourceRoot":"","sources":["../../../src/runtime/environment/windows-host.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * What a Windows machine needs before TensorRT-LLM can run on it (change `add-tensorrt-llm-windows`,
3
+ * task 2.3; spec `wsl-runtime-environment`): the facts `probeWindowsHost` read, the guest's own facts
4
+ * when Atomic Chat's distribution exists, and the manifest, turned into a verdict — the blockers, and
5
+ * the changes a setup would make. Pure: no I/O, so every scenario is a table row.
6
+ *
7
+ * The order of the gates is the order a person can act on them. First what makes the provider
8
+ * pointless to show at all (`unsupported`): a machine that is not x64, no manifest and nothing
9
+ * imported yet, a Windows build below the manifest's minimum. Then what blocks a plan
10
+ * (`prerequisite-blocked`): this core running elevated (its `wsl.exe` would see another user's
11
+ * registrations, design D2), a distribution with Atomic Chat's name it never imported, the NVIDIA
12
+ * driver and card, virtualization off in the firmware, a WSL older than the manifest asks, our own
13
+ * distribution registered as WSL 1, whatever the guest itself blocks on, and the disk. Everything
14
+ * else is the plan: enable WSL (the one elevated step, which may need a restart), import the
15
+ * distribution, provision the guest with the Linux recipe.
16
+ *
17
+ * The guest is judged by `assessLinux`, exactly as a Linux host (design D1), with one substitution:
18
+ * the driver version it compares is the NVIDIA library version WSL hands the guest, not the number
19
+ * the guest's `nvidia-smi` prints (that is the Windows driver's; design D10).
20
+ */
21
+ import type { ManagedAvailability, ManagedSystemChange, WindowsEnvironmentManifest } from '../../contracts/index.js';
22
+ import type { GuestExtras } from './guest-host.js';
23
+ import { type LinuxBlocker, type LinuxInstallPlan } from './linux-plan.js';
24
+ import type { LinuxFacts } from './linux-probe.js';
25
+ import type { WindowsHostFacts, WslDistribution } from './windows-probe.js';
26
+ /** Room a fresh guest takes before any image: Ubuntu's base system, Docker Engine and the toolkit. */
27
+ export declare const GUEST_BASE_BYTES: number;
28
+ export type WindowsBlockerReason = LinuxBlocker['reason'] | 'windows-build-too-old' | 'elevated-process' | 'foreign-distribution' | 'virtualization-disabled' | 'wsl-version' | 'wsl1-distribution' | 'windows-restart-pending';
29
+ export interface WindowsBlocker {
30
+ reason: WindowsBlockerReason;
31
+ message: string;
32
+ params?: Record<string, string>;
33
+ commands?: string[];
34
+ }
35
+ export interface WindowsAssessmentInput {
36
+ facts: WindowsHostFacts;
37
+ /** The manifest this probe judges by: the pinned one for an existing environment, else the latest. */
38
+ manifest: WindowsEnvironmentManifest | null;
39
+ /** Atomic Chat's own distribution: the recorded one, as `wsl --list` shows it. Null when not registered. */
40
+ owned: WslDistribution | null;
41
+ /** A distribution with Atomic Chat's name exists that no record says is ours. */
42
+ foreign: boolean;
43
+ /** Where ours is or would be. */
44
+ distribution: {
45
+ name: string;
46
+ path: string;
47
+ };
48
+ /** Free bytes on that directory's volume. */
49
+ volumeFreeBytes: number | null;
50
+ /** The guest's facts, when ours exists and could be entered. */
51
+ guest: {
52
+ facts: LinuxFacts;
53
+ extras: GuestExtras;
54
+ } | null;
55
+ guestRecipeId: string;
56
+ minimumDriverVersion: string;
57
+ minimumComputeCapability: string;
58
+ /** What the engine image still needs on disk; null when nothing is left to pull (or no image at all). */
59
+ requiredDiskBytes: number | null;
60
+ }
61
+ export interface WindowsAssessment {
62
+ availability: ManagedAvailability;
63
+ /** Ours exists and its guest already runs containers on the GPU: nothing to change. */
64
+ adopts_existing_engine: boolean;
65
+ blockers: WindowsBlocker[];
66
+ /** The one elevated step: `wsl --install`. */
67
+ enable_wsl: boolean;
68
+ import_distribution: boolean;
69
+ /** The guest recipe's own plan, when ours exists and still needs it. */
70
+ guest_plan: LinuxInstallPlan | null;
71
+ provision_guest: boolean;
72
+ system_changes: ManagedSystemChange[];
73
+ /** The smaller of the volume's and the guest's free space; null when neither could be read. */
74
+ free_disk_bytes: number | null;
75
+ /** Whether that covers what is still needed; null when it could not be told. */
76
+ disk_sufficient: boolean | null;
77
+ }
78
+ export declare function assessWindowsHost(input: WindowsAssessmentInput): WindowsAssessment;
@@ -0,0 +1,216 @@
1
+ /**
2
+ * What a Windows machine needs before TensorRT-LLM can run on it (change `add-tensorrt-llm-windows`,
3
+ * task 2.3; spec `wsl-runtime-environment`): the facts `probeWindowsHost` read, the guest's own facts
4
+ * when Atomic Chat's distribution exists, and the manifest, turned into a verdict — the blockers, and
5
+ * the changes a setup would make. Pure: no I/O, so every scenario is a table row.
6
+ *
7
+ * The order of the gates is the order a person can act on them. First what makes the provider
8
+ * pointless to show at all (`unsupported`): a machine that is not x64, no manifest and nothing
9
+ * imported yet, a Windows build below the manifest's minimum. Then what blocks a plan
10
+ * (`prerequisite-blocked`): this core running elevated (its `wsl.exe` would see another user's
11
+ * registrations, design D2), a distribution with Atomic Chat's name it never imported, the NVIDIA
12
+ * driver and card, virtualization off in the firmware, a WSL older than the manifest asks, our own
13
+ * distribution registered as WSL 1, whatever the guest itself blocks on, and the disk. Everything
14
+ * else is the plan: enable WSL (the one elevated step, which may need a restart), import the
15
+ * distribution, provision the guest with the Linux recipe.
16
+ *
17
+ * The guest is judged by `assessLinux`, exactly as a Linux host (design D1), with one substitution:
18
+ * the driver version it compares is the NVIDIA library version WSL hands the guest, not the number
19
+ * the guest's `nvidia-smi` prints (that is the Windows driver's; design D10).
20
+ */
21
+ import { assessLinux, compareDottedVersions } from './linux-plan.js';
22
+ /** Room a fresh guest takes before any image: Ubuntu's base system, Docker Engine and the toolkit. */
23
+ export const GUEST_BASE_BYTES = 4 * 1024 ** 3;
24
+ const blocker = (reason, message, params, commands) => ({
25
+ reason,
26
+ message,
27
+ ...(params === undefined ? {} : { params }),
28
+ ...(commands === undefined ? {} : { commands }),
29
+ });
30
+ const verdict = (availability, blockers, free = null) => ({
31
+ availability,
32
+ adopts_existing_engine: false,
33
+ blockers,
34
+ enable_wsl: false,
35
+ import_distribution: false,
36
+ guest_plan: null,
37
+ provision_guest: false,
38
+ system_changes: [],
39
+ free_disk_bytes: free,
40
+ disk_sufficient: null,
41
+ });
42
+ /** The driver and card, read on Windows: what has to be there before WSL is worth enabling. */
43
+ function nvidiaBlockers(facts, minimumComputeCapability) {
44
+ if (facts.unknown.includes('nvidia-driver'))
45
+ return [];
46
+ if (facts.driver_installed === false) {
47
+ return [
48
+ blocker('driver-missing', 'No NVIDIA driver was found. Install the NVIDIA driver for your card from nvidia.com, then check again.'),
49
+ ];
50
+ }
51
+ if (facts.gpus.length === 0) {
52
+ return [blocker('no-gpu', 'The NVIDIA driver is installed but reports no NVIDIA graphics card.')];
53
+ }
54
+ const eligible = facts.gpus.some((gpu) => compareDottedVersions(gpu.compute_capability, minimumComputeCapability) >= 0);
55
+ if (eligible)
56
+ return [];
57
+ const best = facts.gpus
58
+ .map((gpu) => gpu.compute_capability)
59
+ .sort((a, b) => compareDottedVersions(b, a))[0];
60
+ return [
61
+ blocker('compute-capability-too-low', `TensorRT-LLM needs an NVIDIA card of the Ampere generation (RTX 30xx) or newer; this card has compute capability ${best}.`, { required: minimumComputeCapability, actual: best }),
62
+ ];
63
+ }
64
+ /** The guest judged as a Linux host, with the library version standing in for the driver's (D10). */
65
+ function guestVerdict(input, guest) {
66
+ const library = guest.extras.nvidia_library_version;
67
+ if (library === null) {
68
+ return {
69
+ blockers: [
70
+ blocker('unknown-fact', 'Could not read the version of the NVIDIA libraries Windows provides to the distribution.', { fact: 'nvidia-libraries' }),
71
+ ],
72
+ plan: null,
73
+ adopts: false,
74
+ };
75
+ }
76
+ const facts = {
77
+ ...guest.facts,
78
+ driver_version: library,
79
+ gpus: guest.facts.gpus.map((gpu) => ({ ...gpu, driver_version: library })),
80
+ };
81
+ const linux = assessLinux(facts, {
82
+ recipeId: input.guestRecipeId,
83
+ recipeDistributions: input.manifest === null ? null : [input.manifest.rootfs.distribution],
84
+ minimumDriverVersion: input.minimumDriverVersion,
85
+ minimumComputeCapability: input.minimumComputeCapability,
86
+ // The disk is judged once, for the guest and its volume together (below).
87
+ requiredDiskBytes: null,
88
+ currentUser: 'root',
89
+ });
90
+ const windowsDriver = input.facts.driver_version ?? guest.facts.driver_version ?? 'unknown';
91
+ const blockers = linux.blockers
92
+ // The card was already judged on Windows; the guest sees the same one.
93
+ .filter((entry) => !['no-gpu', 'compute-capability-too-low', 'driver-missing'].includes(entry.reason))
94
+ .map((entry) => entry.reason === 'driver-too-old'
95
+ ? blocker('driver-too-old', `The NVIDIA libraries Windows provides to WSL are version ${library}, older than the ${input.minimumDriverVersion} TensorRT-LLM needs. Update the NVIDIA driver for Windows (now ${windowsDriver}), restart, and check again.`, { required: input.minimumDriverVersion, actual: library, windows_driver: windowsDriver })
96
+ : { ...entry });
97
+ return { blockers, plan: linux.install_plan, adopts: linux.adopts_existing_engine };
98
+ }
99
+ export function assessWindowsHost(input) {
100
+ const { facts, manifest } = input;
101
+ // What makes the provider pointless to show here at all: an architecture with no rootfs, or a
102
+ // manifest whose rootfs is for the other one (Windows on Arm reads `windows-arm64.json`).
103
+ const architecture = facts.architecture;
104
+ if ((architecture !== 'x86_64' && architecture !== 'aarch64') ||
105
+ (manifest !== null && manifest.rootfs.distribution.arch !== architecture)) {
106
+ return verdict('unsupported', [
107
+ blocker('unsupported-architecture', architecture === 'aarch64'
108
+ ? 'TensorRT-LLM is not available for Windows on Arm on this version of Atomic Chat yet.'
109
+ : 'TensorRT-LLM on Windows needs a 64-bit PC (x64 or Arm).', { actual: architecture ?? 'unknown' }),
110
+ ]);
111
+ }
112
+ if (manifest === null && input.owned === null) {
113
+ return verdict('unsupported', [
114
+ blocker('environment-manifest-unavailable', 'TensorRT-LLM is not available for Windows yet: the description of the Windows environment could not be loaded.'),
115
+ ]);
116
+ }
117
+ if (manifest !== null && input.owned === null && facts.windows_build !== null) {
118
+ if (facts.windows_build < manifest.minimum_windows_build) {
119
+ return verdict('unsupported', [
120
+ blocker('windows-build-too-old', 'TensorRT-LLM on Windows needs Windows 11.', {
121
+ required: String(manifest.minimum_windows_build),
122
+ actual: String(facts.windows_build),
123
+ }),
124
+ ]);
125
+ }
126
+ }
127
+ const blockers = [];
128
+ for (const name of facts.unknown) {
129
+ blockers.push(blocker('unknown-fact', `Could not determine ${name} on this system.`, { fact: name }));
130
+ }
131
+ if (facts.elevated === true) {
132
+ blockers.push(blocker('elevated-process', 'Atomic Chat is running as administrator. Close it and start it normally: the WSL distribution has to belong to your own account.'));
133
+ }
134
+ if (input.foreign) {
135
+ blockers.push(blocker('foreign-distribution', `A WSL distribution named "${input.distribution.name}" already exists, and Atomic Chat did not create it. It will not be used or changed. Rename or remove it, then check again.`, { name: input.distribution.name }));
136
+ }
137
+ blockers.push(...nvidiaBlockers(facts, input.minimumComputeCapability));
138
+ const wslReady = facts.wsl.installed === true && facts.wsl.ready === true;
139
+ // WSL is in and the VM platform is on, but Windows has not restarted yet: no second elevation.
140
+ const restartPending = facts.wsl.installed === true && facts.wsl.reboot_pending === true && !wslReady;
141
+ if (restartPending) {
142
+ blockers.push(blocker('windows-restart-pending', 'Windows needs a restart to finish turning on the Windows Subsystem for Linux. Restart the computer, open Atomic Chat again and check again.'));
143
+ }
144
+ const enableWsl = facts.wsl.installed !== null && !wslReady && !restartPending;
145
+ if (enableWsl && facts.virtualization === false) {
146
+ blockers.push(blocker('virtualization-disabled', 'Virtualization is turned off in this computer’s firmware (BIOS/UEFI). Turn on Intel VT-x or AMD-V (SVM) there, restart, and check again; no installer can do this for you.'));
147
+ }
148
+ if (manifest !== null && facts.wsl.installed === true && facts.wsl.version !== null) {
149
+ if (compareDottedVersions(facts.wsl.version, manifest.minimum_wsl_version) < 0) {
150
+ blockers.push(blocker('wsl-version', `WSL ${facts.wsl.version} is installed; TensorRT-LLM needs ${manifest.minimum_wsl_version} or newer. Update it with the command below, then check again.`, { required: manifest.minimum_wsl_version, actual: facts.wsl.version }, ['wsl --update']));
151
+ }
152
+ }
153
+ if (input.owned !== null && input.owned.version !== 2) {
154
+ blockers.push(blocker('wsl1-distribution', `The Atomic Chat distribution "${input.owned.name}" is registered as WSL 1, which cannot run TensorRT-LLM. Atomic Chat does not convert it; remove the environment and set it up again.`, { name: input.owned.name }));
155
+ }
156
+ const importDistribution = input.owned === null && !input.foreign;
157
+ let guestPlan = null;
158
+ let guestAdopts = false;
159
+ if (input.guest !== null) {
160
+ const guest = guestVerdict(input, input.guest);
161
+ blockers.push(...guest.blockers);
162
+ guestPlan = guest.plan;
163
+ guestAdopts = guest.adopts;
164
+ }
165
+ const provisionGuest = importDistribution || guestPlan !== null;
166
+ // The disk: what is still needed against the smaller of the volume and the guest.
167
+ const needed = input.requiredDiskBytes === null && !importDistribution
168
+ ? null
169
+ : (input.requiredDiskBytes ?? 0) + (importDistribution ? GUEST_BASE_BYTES : 0);
170
+ const guestFree = input.guest?.facts.free_disk_bytes ?? null;
171
+ const frees = [input.volumeFreeBytes, guestFree].filter((value) => value !== null);
172
+ const free = frees.length === 0 ? null : Math.min(...frees);
173
+ const sufficient = needed === null ? true : free === null ? null : free >= needed;
174
+ if (sufficient === false) {
175
+ blockers.push(blocker('insufficient-disk', `There is not enough free space for TensorRT-LLM in ${input.distribution.path}: it needs ${needed} bytes and ${free} are free.`, { required: String(needed), free: String(free), path: input.distribution.path }));
176
+ }
177
+ const changes = [];
178
+ if (enableWsl && facts.virtualization !== false) {
179
+ changes.push({
180
+ code: 'enable-wsl',
181
+ text: 'Turn on the Windows Subsystem for Linux (wsl --install). Windows asks for administrator approval and a restart is needed. Windows also installs its default Ubuntu distribution, which may open its own setup window after the restart; Atomic Chat does not use it, and you can close that window.',
182
+ });
183
+ }
184
+ if (importDistribution && manifest !== null) {
185
+ const { id, version_id } = manifest.rootfs.distribution;
186
+ changes.push({
187
+ code: 'import-distribution',
188
+ text: `Download ${id} ${version_id} and import it as Atomic Chat’s own WSL distribution "${input.distribution.name}" in ${input.distribution.path}. Your other distributions and your default one are not touched.`,
189
+ params: { name: input.distribution.name, path: input.distribution.path, rootfs: manifest.rootfs.url },
190
+ });
191
+ }
192
+ if (provisionGuest) {
193
+ const inside = guestPlan?.system_changes ?? [];
194
+ changes.push({
195
+ code: 'provision-distribution',
196
+ text: inside.length === 0
197
+ ? 'Inside it, install Docker Engine and the NVIDIA Container Toolkit and generate the NVIDIA CDI specification.'
198
+ : `Inside it: ${inside.map((change) => change.text).join(' ')}`,
199
+ params: { components: inside.map((change) => change.code).join(',') },
200
+ });
201
+ }
202
+ const adopts = blockers.length === 0 && wslReady && input.owned !== null && guestAdopts && !provisionGuest;
203
+ return {
204
+ availability: blockers.length > 0 ? 'prerequisite-blocked' : 'setup-required',
205
+ adopts_existing_engine: adopts,
206
+ blockers,
207
+ enable_wsl: enableWsl && facts.virtualization !== false,
208
+ import_distribution: importDistribution,
209
+ guest_plan: guestPlan,
210
+ provision_guest: provisionGuest,
211
+ system_changes: blockers.length > 0 ? [] : changes,
212
+ free_disk_bytes: free,
213
+ disk_sufficient: sufficient,
214
+ };
215
+ }
216
+ //# sourceMappingURL=windows-plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windows-plan.js","sourceRoot":"","sources":["../../../src/runtime/environment/windows-plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * What a Windows machine can already do, read without changing any of it (change
3
+ * `add-tensorrt-llm-windows`, task 2.3; spec `wsl-runtime-environment`, "Probe Windows-хоста без
4
+ * изменений на машине").
5
+ *
6
+ * Windows never adopts the user's own container setup: the engine runs inside a WSL distribution
7
+ * Atomic Chat imports and owns, so this probe answers a narrower question than Linux's — can this
8
+ * machine host one, what has to be turned on first, and is ours already there. What happens inside
9
+ * that distribution is the Linux probe's job, run in the guest (`guest-host.ts`, design D1).
10
+ *
11
+ * Every read here works for a standard user. `Get-WindowsOptionalFeature -Online` would say whether
12
+ * the WSL components are on, but it needs an administrator, and the core never runs elevated (design
13
+ * D2); `wsl.exe` itself says it instead — `--version` answers only once the WSL package is installed,
14
+ * `--status` only once its components can start a VM. The rest: firmware virtualization from CIM
15
+ * (`Win32_Processor`, or a hypervisor already running, which proves it), the driver and cards from the
16
+ * Windows `nvidia-smi`, this process's integrity level from `whoami /groups`, the network and memory
17
+ * settings from `%UserProfile%\.wslconfig` (read, never written).
18
+ *
19
+ * A fact that could not be read lands in `unknown` — never assumed present or absent — and the plan
20
+ * (`windows-plan.ts`) decides what that blocks. Every command `wsl.exe` writes may arrive as UTF-16;
21
+ * the transport decodes it (`decodeWslBytes`), and `decodeWslOutput` still copes with a caller that
22
+ * read it as UTF-8 and left a NUL between every character.
23
+ */
24
+ import type { GpuFacts } from '../../contracts/index.js';
25
+ import type { Wsl, WslCommandOutput } from '../wsl/index.js';
26
+ import { type CommandOutput } from './linux-probe.js';
27
+ /** One row of `wsl --list --verbose`. */
28
+ export interface WslDistribution {
29
+ name: string;
30
+ state: string;
31
+ /** WSL 1 and WSL 2 are different machines; only 2 can carry this runtime. */
32
+ version: number | null;
33
+ is_default: boolean;
34
+ }
35
+ /** `%UserProfile%\.wslconfig`'s `[wsl2]` settings this integration reads — and never writes. */
36
+ export interface WslConfigFacts {
37
+ /** `networkingMode` (`nat`, `mirrored`, …), lowercase; null when not set (WSL's default is NAT). */
38
+ networking_mode: string | null;
39
+ /** `localhostForwarding`; null when not set (WSL's default is on). */
40
+ localhost_forwarding: boolean | null;
41
+ /** `memory` as written (`16GB`); null when not set (WSL's default is half of the RAM). */
42
+ memory: string | null;
43
+ }
44
+ export interface WslFacts {
45
+ /** The WSL package answers `--version`; false for the inbox stub of a machine without it. */
46
+ installed: boolean | null;
47
+ /** `MAJOR.MINOR.PATCH` of the package (`--version`'s first line, its fourth part dropped). */
48
+ version: string | null;
49
+ /**
50
+ * `--status` answers and Windows is not waiting for a restart: a WSL 2 VM can start. Null when not
51
+ * asked. `--status` alone is not enough: right after `wsl --install` it exits 0 while saying WSL 2
52
+ * cannot start until the restart (live acceptance, build 26200). `RebootPending` alone is not enough
53
+ * either: CBS can recreate it empty at every boot (live, build 26200, 2026-10-05), so when it is set
54
+ * the probe starts the WSL system distribution, and a VM that boots is ready.
55
+ */
56
+ ready: boolean | null;
57
+ /** Windows has a component change waiting for a restart (CBS `RebootPending`). Null when unread. */
58
+ reboot_pending: boolean | null;
59
+ }
60
+ /** The CBS key Windows keeps while a component change (such as the VM platform) waits for a restart. */
61
+ export declare const REBOOT_PENDING_KEY = "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Component Based Servicing\\RebootPending";
62
+ /** `reg.exe query` of the key: 0 when it exists (a restart is pending), 1 when it does not. */
63
+ export declare function parseRebootPending(output: CommandOutput | null): boolean | null;
64
+ export interface WindowsHostFacts {
65
+ /** `x86_64`, `aarch64`, …: the machine's own architecture, not an emulated process's. */
66
+ architecture: string | null;
67
+ /** The third part of the OS version (`10.0.22631` → 22631). */
68
+ windows_build: number | null;
69
+ /** This process runs at high integrity (an administrator's elevated token). */
70
+ elevated: boolean | null;
71
+ wsl: WslFacts;
72
+ /** Firmware virtualization is on (or a hypervisor runs, which proves it). Null when unread or not asked. */
73
+ virtualization: boolean | null;
74
+ /** The NVIDIA driver is installed: its `nvidia-smi.exe` is in System32. Null when that could not be told. */
75
+ driver_installed: boolean | null;
76
+ /** The Windows driver's own version (`591.44`), from the Windows `nvidia-smi`; null without a card. */
77
+ driver_version: string | null;
78
+ gpus: GpuFacts[];
79
+ distributions: WslDistribution[];
80
+ wslconfig: WslConfigFacts;
81
+ /** Named checks whose answer could not be read. */
82
+ unknown: string[];
83
+ }
84
+ /** What `probeWindowsHost` reads the machine through. */
85
+ export interface WindowsProbeDeps {
86
+ wsl: Wsl;
87
+ /** A read-only command on Windows (PowerShell, `whoami`, `nvidia-smi`): `hostExec` in production. */
88
+ exec: (command: string, args: string[]) => Promise<CommandOutput>;
89
+ /** `%SystemRoot%`, where the system's own `nvidia-smi.exe`, `whoami.exe` and `powershell.exe` live. */
90
+ systemRoot: string;
91
+ /** `os.machine()`. */
92
+ machine: () => string;
93
+ /** `os.release()`: `10.0.<build>`. */
94
+ release: () => string;
95
+ /** `%UserProfile%\.wslconfig`'s text; null when there is none. Rejects when it exists but cannot be read. */
96
+ readWslConfig: () => Promise<string | null>;
97
+ /** Whether a file exists: false only when it is not there, a rejection when that cannot be told. */
98
+ pathExists: (path: string) => Promise<boolean>;
99
+ }
100
+ /** `wsl.exe` speaks UTF-16; a caller that read it as UTF-8 leaves a NUL between every character. */
101
+ export declare function decodeWslOutput(text: string): string;
102
+ /** `os.machine()` in Linux's spelling: `x86_64` (Node may say `x86_64` or `AMD64`), `aarch64` for ARM. */
103
+ export declare function normalizeWindowsArchitecture(machine: string): string;
104
+ /** `os.release()` on Windows is `10.0.<build>`; the build is what minimum versions compare. */
105
+ export declare function parseWindowsBuild(release: string): number | null;
106
+ /**
107
+ * `wsl --version`: the package version is on the first line, whatever language its label is in
108
+ * (`WSL version: 2.4.4.0`, `Версия WSL: 2.4.4.0`). Four parts on the wire; the manifest compares three
109
+ * (conf ruling 1.1), so the build part is dropped here.
110
+ */
111
+ export declare function parseWslVersion(output: WslCommandOutput | null): string | null;
112
+ /**
113
+ * `wsl --list --verbose`: a header, then one line per distribution, the default marked with `*`.
114
+ * The header's own words change with the display language, so a row is recognised by shape instead:
115
+ * a real one ends in a version number. No distributions at all is a nonzero exit — an empty list.
116
+ */
117
+ export declare function parseWslDistributions(output: WslCommandOutput | null): WslDistribution[];
118
+ /**
119
+ * The CIM answer (`VirtualizationFirmwareEnabled`, `HypervisorPresent`): a running hypervisor proves
120
+ * virtualization is on — and then the processor reports the firmware flag as false, so it is checked
121
+ * first. Anything unreadable is null.
122
+ */
123
+ export declare function parseVirtualization(output: CommandOutput | null): boolean | null;
124
+ /** `whoami /groups /fo csv /nh`: the mandatory label says whether this token is elevated. */
125
+ export declare function parseElevation(output: CommandOutput | null): boolean | null;
126
+ /** `.wslconfig` is INI; only `[wsl2]` matters, keys case-insensitive, `#`/`;` comments. */
127
+ export declare function parseWslConfig(text: string | null): WslConfigFacts;
128
+ /**
129
+ * Read the machine. Nothing here enables a component, imports, starts or stops a distribution, or
130
+ * writes a file — except that with `RebootPending` set it boots WSL's own system distribution once to
131
+ * see whether a VM can start (it idles out on its own). `wsl --status` and the firmware check are asked only when they can change the
132
+ * answer: a package that is not installed has no status, and a WSL that already starts VMs proves
133
+ * virtualization.
134
+ */
135
+ export declare function probeWindowsHost(deps: WindowsProbeDeps): Promise<WindowsHostFacts>;