@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,535 @@
1
+ /**
2
+ * The per-session authenticating gateway that sits in front of a managed engine's port.
3
+ *
4
+ * `trtllm-serve` (and any future container-hosted engine) listens on loopback but checks no API key
5
+ * of its own, so anything on the machine — and, through DNS rebinding, any web page the user has
6
+ * open — could reach it directly. Core instead binds a listener of its own on `127.0.0.1:<random>`
7
+ * for each session, hands that port and a fresh key out as `SessionInfo.port`/`api_key`, and proxies
8
+ * through to the container's real port only once a request presents that key from an allowed Host.
9
+ * The container's own port is never handed to a caller.
10
+ *
11
+ * The Host and Bearer-key checks are the public server's own (`server/public/gates.ts`,
12
+ * `hostAndKeyGate`) — the same code `:1337` gates on, so the trusted-Host allowlist behaves
13
+ * identically everywhere in the process. Streaming is the public server's own upstream plumbing too
14
+ * (`server/public/wire.ts`): `sendUpstream` for the request, `relay`/`pipeBody` to copy the response
15
+ * to the client as it arrives, with no buffering, and to close the upstream connection the moment
16
+ * the client goes away.
17
+ *
18
+ * New for TensorRT-LLM managed sessions (design D11, spec `managed-session-gateway`). Engine-neutral:
19
+ * nothing here knows about `trtllm-serve` specifically, only that it speaks HTTP on loopback.
20
+ *
21
+ * `routes`/`rewritableRoutes`/`rewriteRequestBody` (task 2.13 fix rounds 1-3; ADR
22
+ * `docs/decisions/2026-09-28-tensorrt-llm-output-cap-enforced-by-the-session-gateway.md`) are the
23
+ * deliberate exceptions to design D11's own Risks/Trade-offs entry, "только копирование байтов без
24
+ * парсинга" (only copies bytes, never parses):
25
+ * - every request's method+path is checked against the adapter's own declared `routes` before
26
+ * anything is forwarded — a path the adapter never declared at all gets `404`; a path it declared
27
+ * for a *different* method gets `405` with an `Allow` header (round 3: round 2's path-only
28
+ * matching let a wrong method through). Neither is ever forwarded, closing off both whatever else
29
+ * the engine's own HTTP server happens to also expose, and a wrong method on a route that is
30
+ * otherwise real;
31
+ * - a request matching a declared route the adapter also lists in `rewritableRoutes` gets its JSON
32
+ * body parsed, handed to `rewriteRequestBody`, and re-serialized before forwarding.
33
+ * Every other declared route still proxies byte-for-byte, exactly as before this existed. This
34
+ * module stays engine-neutral about *why* an adapter wants either of these — it only enforces the
35
+ * mechanics (method+path route matching on the decoded path, a body-size cap enforced while the body
36
+ * streams in, a parse failure or a rewriter's own throw answering `400`/`500` instead of forwarding).
37
+ *
38
+ * `mapErrorResponse` (task 2.14 fix round 1, findings-2.14-r1.md item 1; ADR
39
+ * `docs/decisions/2026-09-29-tensorrt-llm-sessions-carry-a-route-policy-to-the-public-server.md`) is the
40
+ * one exception on the response side, and only for errors: a non-2xx answer on a declared POST route
41
+ * is read (up to `MANAGED_GATEWAY_ERROR_BODY_CAP_BYTES`) and answered with whatever OpenAI error the
42
+ * adapter maps it to, so a client talking to `SessionInfo.port` directly gets the same
43
+ * `context_length_exceeded` as one going through `:1337`. A 2xx answer is never read or parsed: it
44
+ * streams through as it arrives, exactly as before.
45
+ */
46
+ import { createServer } from 'node:http';
47
+ import { randomBytes } from 'node:crypto';
48
+ import { StringDecoder } from 'node:string_decoder';
49
+ import { AtomicCoreError } from '../../contracts/index.js';
50
+ import { hostAndKeyGate } from '../../server/public/index.js';
51
+ import { forwardableHeaders, pipeBody, readBody, relay, relayedHeaders, sendUpstream, sendWhole, } from '../../server/public/index.js';
52
+ import { ManagedRequestRefusal } from './adapter.js';
53
+ /** Hosts accepted as "loopback" for the upstream the gateway proxies to. */
54
+ const LOOPBACK_HOSTS = new Set(['127.0.0.1', 'localhost', '::1', '[::1]']);
55
+ /** The gateway's own listener never binds anywhere else. */
56
+ const GATEWAY_HOST = '127.0.0.1';
57
+ /**
58
+ * `host`, bracketed when it is a bare IPv6 literal — what has to follow `http://` for `new URL` (and
59
+ * everything downstream of it) to parse the address instead of tripping over its colons. `::1` alone
60
+ * would otherwise be read as `host "::1"` with a bogus port after the last colon; `[::1]` already
61
+ * carries its own brackets and is left alone, as is every other accepted loopback spelling.
62
+ */
63
+ export function bracketIfIpv6(host) {
64
+ return host.includes(':') && !host.startsWith('[') ? `[${host}]` : host;
65
+ }
66
+ /** Upstream connect timeout: generous because the container is local, but requests must not hang forever. */
67
+ const CONNECT_TIMEOUT_MS = 30_000;
68
+ /**
69
+ * The largest request body the rewrite path will read at all. Enforced *while the body streams in*
70
+ * (`readCappedBody`, below), not after it is fully buffered: reading stops the moment the running
71
+ * total crosses the cap, so an oversized body is never held in memory in full just to then be thrown
72
+ * away (findings-2.13-r2.md item 2). A declared route that is not rewritable never goes through this
73
+ * cap at all; it proxies through the same unbounded `readBody` every request used before any of this
74
+ * existed.
75
+ */
76
+ export const MANAGED_GATEWAY_REWRITE_BODY_CAP_BYTES = 8 * 1024 * 1024;
77
+ /**
78
+ * The largest engine *error* answer `mapErrorResponse` gets to read. An engine error is a short JSON
79
+ * document; one past this is answered with a generic error of the same status instead of being held
80
+ * in memory (findings-2.14-r1.md item 1: bounded, and only ever for non-2xx answers).
81
+ */
82
+ export const MANAGED_GATEWAY_ERROR_BODY_CAP_BYTES = 1024 * 1024;
83
+ const OPENAI_ERROR_HEADERS = [['content-type', 'application/json']];
84
+ /**
85
+ * An OpenAI-shaped `{"error": {message, type, code}}` body (findings-2.13-r2.md item 5) — the same
86
+ * envelope convention `server/public/errors.ts`'s `structureBackendErrorBody` already uses for
87
+ * llama.cpp/MLX, and `tensorrtLlmAdapter`'s own `context_length_exceeded` mapping, so a client never
88
+ * has to special-case a third error shape for the one gateway that happens to front a container.
89
+ */
90
+ function sendOpenAIError(res, status, message, type, code) {
91
+ sendWhole(res, status, OPENAI_ERROR_HEADERS, JSON.stringify({ error: { message, type, code } }));
92
+ }
93
+ /**
94
+ * `405` for a path this session *does* declare, just not for this method (e.g. `GET
95
+ * /v1/chat/completions` when only `POST` is declared) — never forwarded, same as a `404`
96
+ * (findings-2.13-r3.md item 1). `Allow` lists every method actually declared for this path, per
97
+ * RFC 9110 §15.5.6. `HEAD` is never implied by a declared `GET`: an adapter that wants `HEAD`
98
+ * served declares it as its own route; the default (nothing declares it) lands here too, which is
99
+ * the safe answer for a route with no dedicated `HEAD` handler.
100
+ */
101
+ function sendMethodNotAllowed(res, allowedMethods) {
102
+ const allow = allowedMethods.join(', ');
103
+ const body = JSON.stringify({
104
+ error: {
105
+ message: `Method not allowed on this route. Allowed: ${allow}.`,
106
+ type: 'invalid_request_error',
107
+ code: 'method_not_allowed',
108
+ },
109
+ });
110
+ sendWhole(res, 405, [...OPENAI_ERROR_HEADERS, ['allow', allow]], body);
111
+ }
112
+ /**
113
+ * Answers `413` for a body abandoned mid-read (over the rewrite cap) and only *then* — once the
114
+ * response has actually finished writing, via `res.end`'s own callback — destroys the connection.
115
+ * Order matters: destroying it before the response leaves would race the client into seeing a
116
+ * truncated response as a bare socket error instead of a clean `413` (this raced and failed exactly
117
+ * that way during development, when the destroy happened immediately instead of after the write).
118
+ * `req.destroy()` here is a deliberate, explicit call for a real `IncomingMessage`, even though
119
+ * `readCappedBody`'s own early `return` already tore down that same stream as a side effect of
120
+ * leaving its `for await` loop (see that function's own comment) — destroying an already-destroyed
121
+ * stream is a harmless no-op, and this call stays correct even for a hypothetical future `source`
122
+ * that is not a Node stream and so has no such side effect.
123
+ *
124
+ * Known, accepted limit (findings-2.13-r2.md item 2 / findings-2.13-r3.md item 5): a client that is
125
+ * still *actively writing* past the cap when the connection closes may never see this `413` body at
126
+ * all — it can observe a bare transport error instead (`EPIPE`/`ECONNRESET`), because closing a
127
+ * socket that still has unread bytes queued on it can make the OS send a reset instead of a clean
128
+ * close. This is not fixable from here (it is how TCP itself behaves, not a Node or gateway quirk),
129
+ * and is the same trade-off any server rejecting an oversized body mid-stream makes: protecting this
130
+ * process's memory against an oversized or runaway sender wins over guaranteeing that sender a
131
+ * pretty error message. A client that sends its body in one normal `write`-then-`end` (every real
132
+ * OpenAI client) sees the `413` cleanly, as `gateway.test.ts` covers.
133
+ */
134
+ function sendTooLargeAndClose(req, res) {
135
+ const body = JSON.stringify({
136
+ error: {
137
+ message: 'Request body exceeds the maximum size accepted here.',
138
+ type: 'invalid_request_error',
139
+ code: 'request_too_large',
140
+ },
141
+ });
142
+ res.writeHead(413, [...OPENAI_ERROR_HEADERS, ['connection', 'close']].flat());
143
+ res.end(body, () => {
144
+ req.destroy();
145
+ });
146
+ }
147
+ /** The request path, with no query string — what a route is matched and rewritten on. */
148
+ function routeOf(url) {
149
+ if (url === undefined)
150
+ return '/';
151
+ const qIndex = url.indexOf('?');
152
+ return qIndex === -1 ? url : url.slice(0, qIndex);
153
+ }
154
+ /**
155
+ * Percent-decodes a route path for matching against `options.routes`, refusing to do so at all when
156
+ * that would be ambiguous. An encoded slash (`%2f`/`%2F`) decoding into a literal `/` is the classic
157
+ * path-confusion trick — two request paths that look different before decoding could otherwise land
158
+ * on the same declared route, or a path that looks like it climbs into an unrelated route once
159
+ * decoded — so its mere presence makes the whole path unmatchable (`null`, which equals no entry in
160
+ * `routes`, so it always 404s) rather than trying to reason about which reading is "the real one".
161
+ * Malformed percent-encoding that `decodeURIComponent` itself rejects does the same.
162
+ */
163
+ function decodedRoute(rawPath) {
164
+ if (/%2f/i.test(rawPath))
165
+ return null;
166
+ try {
167
+ return decodeURIComponent(rawPath);
168
+ }
169
+ catch {
170
+ return null;
171
+ }
172
+ }
173
+ /**
174
+ * Reads a body up to `capBytes` from any chunked async source (an `IncomingMessage` satisfies
175
+ * `AsyncIterable<Buffer>` on its own), counting while chunks arrive. The moment the running total
176
+ * would exceed the cap, reading stops immediately — the source is never asked for another chunk,
177
+ * and nothing past the cap is ever buffered — and `'too-large'` comes back instead of a `Buffer`
178
+ * (findings-2.13-r2.md item 2: exported, and typed against the generic interface rather than
179
+ * `IncomingMessage` specifically, so this exact claim — stops pulling before the cap, not after —
180
+ * has a direct unit test against a source that never ends, instead of only an HTTP-level test whose
181
+ * client would have to keep sending past a connection the server has already closed, which is an
182
+ * inherently racy thing to assert on at the TCP level).
183
+ *
184
+ * That early `return` is not as passive as it looks (findings-2.13-r3.md item 4): exiting a `for
185
+ * await...of` loop before it runs to completion — by `return`, `break` or an uncaught throw — makes
186
+ * the language call the async iterator's own `.return()`, and for a Node.js `Readable` (which is
187
+ * what a real `IncomingMessage` is), that already tears the stream down as a side effect, before
188
+ * this function's caller ever gets a chance to decide anything. So for the real gateway path, the
189
+ * connection's read side is already gone by the time `readCappedBody` returns `'too-large'` — this
190
+ * function does not *decide* to leave the connection alone, the language leaves it no choice in the
191
+ * matter. (This has no such effect on a `source` that is not backed by a Node stream — an async
192
+ * generator, say, as this file's own unit test for this function uses — where "stop iterating" truly
193
+ * is just that.) `sendTooLargeAndClose` still calls `req.destroy()` itself explicitly, both because
194
+ * destroying an already-destroyed stream is a harmless no-op and because relying on this implicit
195
+ * side effect would silently stop working for a source that is not a plain Node stream.
196
+ */
197
+ export async function readCappedBody(source, capBytes) {
198
+ const chunks = [];
199
+ let total = 0;
200
+ for await (const chunk of source) {
201
+ total += chunk.length;
202
+ if (total > capBytes)
203
+ return 'too-large';
204
+ chunks.push(chunk);
205
+ }
206
+ return Buffer.concat(chunks);
207
+ }
208
+ /**
209
+ * A fresh, unguessable session key: 256 bits of `crypto.randomBytes`, base64url so it fits a Bearer
210
+ * header verbatim. Call this once per generation — a reload gets a new key, so a caller holding the
211
+ * previous one is refused (`SESSION_GENERATION_STALE` at the session layer; here, plain 401).
212
+ */
213
+ export function generateGatewayKey() {
214
+ return randomBytes(32).toString('base64url');
215
+ }
216
+ /**
217
+ * Sends `body` (already fully read) to the upstream and relays its answer back unmodified,
218
+ * streamed or not. Shared by the rewritten and the byte-for-byte paths — everything from here down
219
+ * has never cared, and still does not care, which one a request came through.
220
+ */
221
+ async function sendBodyToUpstream(req, res, upstream, body, mapError, responseRewrite = null, streamFailure) {
222
+ // A client that disconnects before the upstream has even answered must not leave that connect
223
+ // attempt, or a slow-to-respond container, running unattended.
224
+ const controller = new AbortController();
225
+ const onEarlyClose = () => controller.abort();
226
+ res.once('close', onEarlyClose);
227
+ let upstreamResponse;
228
+ try {
229
+ const origin = `http://${bracketIfIpv6(upstream.host)}:${upstream.port}`;
230
+ upstreamResponse = await sendUpstream(`${origin}${req.url ?? '/'}`, {
231
+ method: req.method ?? 'GET',
232
+ // The client's own auth headers are this gateway's secret, not the container's; they stop here.
233
+ headers: forwardableHeaders(req, ['authorization', 'x-api-key']),
234
+ ...(body.length > 0 ? { body } : {}),
235
+ connectTimeoutMs: CONNECT_TIMEOUT_MS,
236
+ signal: controller.signal,
237
+ });
238
+ }
239
+ catch {
240
+ res.off('close', onEarlyClose);
241
+ if (!res.headersSent && !res.destroyed)
242
+ sendWhole(res, 502, [], 'Bad Gateway');
243
+ return;
244
+ }
245
+ res.off('close', onEarlyClose);
246
+ const status = upstreamResponse.status;
247
+ if (mapError !== undefined && (status < 200 || status > 299)) {
248
+ await answerEngineError(res, upstreamResponse, mapError);
249
+ return;
250
+ }
251
+ if (status >= 200 && status <= 299 && isEventStream(upstreamResponse)) {
252
+ res.writeHead(upstreamResponse.status, relayedHeaders(upstreamResponse, []).flat());
253
+ await pipeBody(res, guardedEventStream(upstreamResponse.body, responseRewrite, streamFailure), () => upstreamResponse.body.destroy());
254
+ return;
255
+ }
256
+ if (responseRewrite !== null && status >= 200 && status <= 299) {
257
+ await relayRewritten(res, upstreamResponse, responseRewrite);
258
+ return;
259
+ }
260
+ // `relay` owns the rest: it writes the status/headers, pipes the body with backpressure, and
261
+ // tears the upstream connection down itself if the client disconnects mid-stream.
262
+ await relay(res, upstreamResponse, []);
263
+ }
264
+ /** A JSON text rewritten by `rewrite`, or the text itself when it is not a JSON object. */
265
+ function rewriteJsonText(text, rewrite) {
266
+ try {
267
+ const parsed = JSON.parse(text);
268
+ if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed))
269
+ return text;
270
+ return JSON.stringify(rewrite(parsed));
271
+ }
272
+ catch {
273
+ return text;
274
+ }
275
+ }
276
+ function isEventStream(upstream) {
277
+ const type = upstream.headers.find(([name]) => name.toLowerCase() === 'content-type')?.[1] ?? '';
278
+ return type.toLowerCase().includes('text/event-stream');
279
+ }
280
+ /** What a client reads when the engine ends a stream without finishing it and says nothing better. */
281
+ export const MANAGED_STREAM_CUT_MESSAGE = 'The engine stopped the answer before finishing it.';
282
+ /**
283
+ * Each complete SSE line of a 2xx stream, `data:` JSON events through `rewrite` when there is one,
284
+ * everything else verbatim — and an end the client can tell from a finished answer: a stream that
285
+ * breaks off or closes without `data: [DONE]` gets an OpenAI error event (`streamFailure`'s words,
286
+ * else {@link MANAGED_STREAM_CUT_MESSAGE}) and then `[DONE]`. Without it an engine that failed a
287
+ * request after `200 OK` (TensorRT-LLM's `RequestError` when the KV cache cannot hold it) reached the
288
+ * client as a clean, empty answer: `pipeBody` swallows an upstream failure mid-stream.
289
+ */
290
+ async function* guardedEventStream(source, rewrite, streamFailure) {
291
+ // A multi-byte character can straddle two chunks; the decoder holds its first bytes back.
292
+ const decoder = new StringDecoder('utf8');
293
+ let pending = '';
294
+ let done = false;
295
+ const line = (raw) => {
296
+ const match = /^data:\s?(.*)$/.exec(raw.replace(/\r$/, ''));
297
+ if (match === null)
298
+ return raw;
299
+ const payload = match[1].trim();
300
+ if (payload === '[DONE]')
301
+ done = true;
302
+ if (payload === '' || payload === '[DONE]' || rewrite === null)
303
+ return raw;
304
+ return `data: ${rewriteJsonText(payload, rewrite)}`;
305
+ };
306
+ try {
307
+ for await (const chunk of source) {
308
+ pending += typeof chunk === 'string' ? chunk : decoder.write(chunk);
309
+ const lines = pending.split('\n');
310
+ pending = lines.pop();
311
+ if (lines.length > 0)
312
+ yield `${lines.map(line).join('\n')}\n`;
313
+ }
314
+ }
315
+ catch {
316
+ // The upstream broke off mid-stream; what follows tells the client so.
317
+ }
318
+ pending += decoder.end();
319
+ if (pending !== '')
320
+ yield `${line(pending)}\n`;
321
+ if (done)
322
+ return;
323
+ const message = (await streamFailure?.().catch(() => null)) ?? MANAGED_STREAM_CUT_MESSAGE;
324
+ const error = { error: { message, type: 'server_error', code: 'stream_interrupted' } };
325
+ yield `\ndata: ${JSON.stringify(error)}\n\ndata: [DONE]\n\n`;
326
+ }
327
+ /** A 2xx JSON answer through `rewrite`, as a whole (event streams go through `guardedEventStream`). */
328
+ async function relayRewritten(res, upstream, rewrite) {
329
+ const whole = await readCappedBody(upstream.body, MANAGED_GATEWAY_REWRITE_BODY_CAP_BYTES * 64).catch(() => null);
330
+ if (whole === null || whole === 'too-large') {
331
+ if (!res.headersSent && !res.destroyed)
332
+ sendWhole(res, 502, [], 'Bad Gateway');
333
+ return;
334
+ }
335
+ sendWhole(res, upstream.status, relayedHeaders(upstream, []), rewriteJsonText(whole.toString('utf8'), rewrite));
336
+ }
337
+ /**
338
+ * An engine's error answer, read under `MANAGED_GATEWAY_ERROR_BODY_CAP_BYTES`: the adapter's mapped
339
+ * OpenAI error when it has one, otherwise the engine's own answer (status, headers, bytes) as it was.
340
+ * A client that leaves while the body is still arriving tears the engine connection down with it
341
+ * (final review M-4): an engine stalled mid-error would otherwise hold that socket forever. An
342
+ * answer that cannot be relayed keeps the engine's status, labelled a client error for a `4xx`.
343
+ */
344
+ async function answerEngineError(res, upstream, mapError) {
345
+ const onClientGone = () => upstream.body.destroy();
346
+ res.once('close', onClientGone);
347
+ let capped;
348
+ try {
349
+ capped = res.destroyed
350
+ ? null
351
+ : await readCappedBody(upstream.body, MANAGED_GATEWAY_ERROR_BODY_CAP_BYTES).catch(() => null);
352
+ }
353
+ finally {
354
+ res.off('close', onClientGone);
355
+ }
356
+ if (res.destroyed) {
357
+ upstream.body.destroy();
358
+ return;
359
+ }
360
+ if (capped === null || capped === 'too-large') {
361
+ upstream.body.destroy();
362
+ const clientError = upstream.status >= 400 && upstream.status < 500;
363
+ sendOpenAIError(res, upstream.status, 'The engine answered with an error that could not be relayed.', clientError ? 'invalid_request_error' : 'server_error', 'upstream_error');
364
+ return;
365
+ }
366
+ const mapped = mapError(upstream.status, capped.toString('utf8'));
367
+ if (mapped !== null) {
368
+ sendWhole(res, upstream.status, OPENAI_ERROR_HEADERS, JSON.stringify(mapped));
369
+ return;
370
+ }
371
+ sendWhole(res, upstream.status, relayedHeaders(upstream, []), capped);
372
+ }
373
+ /**
374
+ * Reads the client's body under the rewrite cap, parses it as JSON, hands it to `rewriteRequestBody`
375
+ * and re-serializes the result — or answers `413`/`400`/`500` itself and returns `null`, meaning the
376
+ * caller must not proceed to the upstream at all. `sendUpstream` derives `Content-Length` from
377
+ * whatever buffer it is actually given, so a body that grew or shrank under rewriting is never sent
378
+ * with the client's original, now-stale length (and never as `Transfer-Encoding: chunked`, whatever
379
+ * the client itself sent it as — the whole point of reading it here first).
380
+ */
381
+ async function readAndRewriteBody(req, res, route, rewriteRequestBody) {
382
+ const capped = await readCappedBody(req, MANAGED_GATEWAY_REWRITE_BODY_CAP_BYTES);
383
+ if (capped === 'too-large') {
384
+ sendTooLargeAndClose(req, res);
385
+ return null;
386
+ }
387
+ if (capped.length === 0)
388
+ return capped;
389
+ let parsed;
390
+ try {
391
+ parsed = JSON.parse(capped.toString('utf8'));
392
+ }
393
+ catch {
394
+ sendOpenAIError(res, 400, 'Request body is not valid JSON.', 'invalid_request_error', 'invalid_json');
395
+ return null;
396
+ }
397
+ let rewritten;
398
+ try {
399
+ rewritten = rewriteRequestBody(route, parsed);
400
+ }
401
+ catch (error) {
402
+ // Only a validation error — the adapter rejecting something the *client* sent — is safe to
403
+ // surface verbatim as a 400: its message was written to be read by that client. Anything else
404
+ // (a bug in the adapter's own rewrite logic, for instance) becomes a generic 500 instead of
405
+ // leaking an internal error message to the client; the detail still goes to this process's own
406
+ // log, since this module has no injected logger of its own to hand it to (findings-2.13-r3.md
407
+ // item 3).
408
+ if (error instanceof ManagedRequestRefusal) {
409
+ sendOpenAIError(res, 400, error.message, 'invalid_request_error', error.openaiCode);
410
+ }
411
+ else if (error instanceof AtomicCoreError && error.code === 'INVALID_ARGUMENT') {
412
+ sendOpenAIError(res, 400, error.message, 'invalid_request_error', 'invalid_request_error');
413
+ }
414
+ else {
415
+ console.error('managed-text gateway: rewriteRequestBody threw an unexpected error:', error);
416
+ sendOpenAIError(res, 500, 'The request could not be processed.', 'server_error', 'internal_error');
417
+ }
418
+ return null;
419
+ }
420
+ return Buffer.from(JSON.stringify(rewritten), 'utf8');
421
+ }
422
+ /**
423
+ * Matches the request against `options.routes`, method and path together (findings-2.13-r3.md item
424
+ * 1): no declared route for this path at all is `404`; the path is declared, just not for this
425
+ * method, is `405` with an `Allow` header. Neither is ever forwarded, and neither reads the body.
426
+ * Otherwise, either rewrites the body (a declared, rewritable route, `rewriteRequestBody`
427
+ * configured) or proxies it through untouched — the same byte-for-byte path every request took
428
+ * before rewriting existed at all, still used for every other route.
429
+ */
430
+ async function proxyToUpstream(req, res, options) {
431
+ const path = decodedRoute(routeOf(req.url));
432
+ const method = req.method ?? 'GET';
433
+ const declaredForPath = path === null ? [] : options.routes.filter((r) => r.path === path);
434
+ if (path === null || declaredForPath.length === 0) {
435
+ sendOpenAIError(res, 404, 'No route on this session matches this request.', 'invalid_request_error', 'not_found');
436
+ return;
437
+ }
438
+ if (!declaredForPath.some((r) => r.method === method)) {
439
+ sendMethodNotAllowed(res, declaredForPath.map((r) => r.method));
440
+ return;
441
+ }
442
+ const route = path;
443
+ const rewriteRequestBody = options.rewriteRequestBody;
444
+ const rewritable = rewriteRequestBody !== undefined &&
445
+ (options.rewritableRoutes ?? []).some((r) => r.method === method && r.path === route);
446
+ let body;
447
+ if (rewritable) {
448
+ const rewritten = await readAndRewriteBody(req, res, route, rewriteRequestBody);
449
+ if (rewritten === null)
450
+ return; // readAndRewriteBody already answered the client.
451
+ body = rewritten;
452
+ }
453
+ else {
454
+ try {
455
+ body = await readBody(req);
456
+ }
457
+ catch {
458
+ if (!res.headersSent)
459
+ sendOpenAIError(res, 400, 'Failed to read the request body.', 'invalid_request_error', 'invalid_request_error');
460
+ return;
461
+ }
462
+ }
463
+ // Only a declared POST route's error answer is ever read: that is where an engine reports what a
464
+ // client sent it (a prompt past the context), and where a client expects an OpenAI error back.
465
+ const mapErrorResponse = options.mapErrorResponse;
466
+ const mapError = mapErrorResponse !== undefined && method === 'POST'
467
+ ? (status, text) => mapErrorResponse(route, status, text)
468
+ : undefined;
469
+ // A response rewrite is chosen from the request the engine actually gets (rewritable routes only).
470
+ let responseRewrite = null;
471
+ if (rewritable && options.rewriteResponseFor !== undefined && body.length > 0) {
472
+ try {
473
+ responseRewrite = options.rewriteResponseFor(route, JSON.parse(body.toString('utf8')));
474
+ }
475
+ catch {
476
+ responseRewrite = null;
477
+ }
478
+ }
479
+ await sendBodyToUpstream(req, res, options.upstream, body, mapError, responseRewrite, options.streamFailure);
480
+ }
481
+ function assertLoopback(host) {
482
+ if (!LOOPBACK_HOSTS.has(host.toLowerCase())) {
483
+ throw new AtomicCoreError('INVALID_ARGUMENT', 'Managed session gateway upstream must be loopback.', `got host "${host}"`);
484
+ }
485
+ }
486
+ /**
487
+ * `trtllm-serve` checks no key of its own — this gateway is the *only* thing standing between the
488
+ * container's port and anything on the machine (or, via DNS rebinding, a web page). `hostAndKeyGate`
489
+ * treats an empty `apiKey` as "auth disabled", which is the right default for `:1337` (a user opted
490
+ * out in Settings) but is never correct here: nobody can opt a managed session out of its own only
491
+ * guard. A caller starting one without a key is a bug, not a configuration choice, so it fails loud.
492
+ */
493
+ function assertApiKeyPresent(apiKey) {
494
+ if (apiKey === '') {
495
+ throw new AtomicCoreError('INVALID_ARGUMENT', 'Managed session gateway requires a non-empty api key: it is the only auth in front of an ' +
496
+ 'engine that checks none of its own.');
497
+ }
498
+ }
499
+ /**
500
+ * Start a gateway for one managed session: binds `127.0.0.1:0`, gates every request on the Host and
501
+ * Bearer checks, and streams whatever passes through to `options.upstream`.
502
+ */
503
+ export async function startManagedGateway(options) {
504
+ assertLoopback(options.upstream.host);
505
+ assertApiKeyPresent(options.apiKey);
506
+ const gateConfig = { apiKey: options.apiKey, trustedHosts: options.allowedHosts };
507
+ const server = createServer({ requireHostHeader: false }, (req, res) => {
508
+ const refused = hostAndKeyGate(req, gateConfig);
509
+ if (refused) {
510
+ sendWhole(res, refused.status, [], refused.body);
511
+ return;
512
+ }
513
+ proxyToUpstream(req, res, options).catch(() => {
514
+ if (!res.headersSent && !res.destroyed)
515
+ sendWhole(res, 502, [], 'Bad Gateway');
516
+ else
517
+ res.destroy();
518
+ });
519
+ });
520
+ await new Promise((resolve, reject) => {
521
+ server.once('error', reject);
522
+ server.listen(0, GATEWAY_HOST, () => resolve());
523
+ });
524
+ const address = server.address();
525
+ const port = typeof address === 'object' && address !== null ? address.port : 0;
526
+ return {
527
+ host: GATEWAY_HOST,
528
+ port,
529
+ close: () => new Promise((resolve) => {
530
+ server.closeAllConnections?.();
531
+ server.close(() => resolve());
532
+ }),
533
+ };
534
+ }
535
+ //# sourceMappingURL=gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../../src/runtime/managed-text/gateway.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /** In the names both engines' sampling parameters use. */
2
+ export interface GenerationDefaults {
3
+ temperature?: number;
4
+ top_p?: number;
5
+ top_k?: number;
6
+ min_p?: number;
7
+ repetition_penalty?: number;
8
+ }
9
+ /** The stored key of each default, by its sampling-parameter name. */
10
+ export declare const GENERATION_DEFAULT_KEYS: {
11
+ readonly temperature: "default_temperature";
12
+ readonly top_p: "default_top_p";
13
+ readonly top_k: "default_top_k";
14
+ readonly min_p: "default_min_p";
15
+ readonly repetition_penalty: "default_repetition_penalty";
16
+ };
17
+ /**
18
+ * The defaults `raw` sets, validated; `INVALID_ARGUMENT` for one out of range. `raw` holds the stored
19
+ * keys (`default_temperature`, …); a value may be a number or its text, `''`/`null` is not set.
20
+ */
21
+ export declare function readGenerationDefaults(provider: string, raw: Record<string, unknown>): GenerationDefaults;
22
+ /** `body` with every default it does not set itself. */
23
+ export declare function withGenerationDefaults(body: Record<string, unknown>, defaults: GenerationDefaults): Record<string, unknown>;
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Sampling defaults a managed provider applies to a request that sets none (change
3
+ * `add-vllm-runtime`, owner's decision after the live run): the settings `default_temperature`,
4
+ * `default_top_p`, `default_top_k`, `default_min_p` and `default_repetition_penalty`, read once for
5
+ * every engine. vLLM receives them in `--override-generation-config`; TensorRT-LLM, which has no such
6
+ * launch option, gets them from the session gateway, written into a request that names none. `''`
7
+ * (or nothing stored) is "not set" — the model's own default stands; a request's own value always wins.
8
+ */
9
+ import { AtomicCoreError } from '../../contracts/index.js';
10
+ /** The stored key of each default, by its sampling-parameter name. */
11
+ export const GENERATION_DEFAULT_KEYS = {
12
+ temperature: 'default_temperature',
13
+ top_p: 'default_top_p',
14
+ top_k: 'default_top_k',
15
+ min_p: 'default_min_p',
16
+ repetition_penalty: 'default_repetition_penalty',
17
+ };
18
+ /** The bounds both engines accept (vLLM's `SamplingParams._verify_args`; TRT-LLM's are looser). */
19
+ const RULES = {
20
+ temperature: { valid: (n) => n >= 0 && n <= 2, range: 'a number from 0 to 2' },
21
+ top_p: { valid: (n) => n > 0 && n <= 1, range: 'a number above 0 and up to 1' },
22
+ top_k: { valid: (n) => Number.isInteger(n) && n >= -1 && n <= 1_000_000, range: 'a whole number from -1' },
23
+ min_p: { valid: (n) => n >= 0 && n <= 1, range: 'a number from 0 to 1' },
24
+ repetition_penalty: { valid: (n) => n > 0 && n <= 10, range: 'a number above 0 and up to 10' },
25
+ };
26
+ /**
27
+ * The defaults `raw` sets, validated; `INVALID_ARGUMENT` for one out of range. `raw` holds the stored
28
+ * keys (`default_temperature`, …); a value may be a number or its text, `''`/`null` is not set.
29
+ */
30
+ export function readGenerationDefaults(provider, raw) {
31
+ const defaults = {};
32
+ for (const [name, key] of Object.entries(GENERATION_DEFAULT_KEYS)) {
33
+ const value = raw[key];
34
+ if (value === undefined || value === null)
35
+ continue;
36
+ if (typeof value === 'string' && value.trim() === '')
37
+ continue;
38
+ const number = typeof value === 'string' ? Number(value) : value;
39
+ if (typeof number !== 'number' || !Number.isFinite(number) || !RULES[name].valid(number)) {
40
+ throw new AtomicCoreError('INVALID_ARGUMENT', `${provider} setting ${key} must be ${RULES[name].range}.`, `${key}=${JSON.stringify(value)}`);
41
+ }
42
+ defaults[name] = number;
43
+ }
44
+ return defaults;
45
+ }
46
+ /** `body` with every default it does not set itself. */
47
+ export function withGenerationDefaults(body, defaults) {
48
+ const missing = Object.entries(defaults).filter(([name]) => body[name] === undefined || body[name] === null);
49
+ return missing.length === 0 ? body : { ...body, ...Object.fromEntries(missing) };
50
+ }
51
+ //# sourceMappingURL=generation-defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generation-defaults.js","sourceRoot":"","sources":["../../../src/runtime/managed-text/generation-defaults.ts"],"names":[],"mappings":"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"}