@atomic-chat/core 0.5.1 → 0.13.6

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 (1011) 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 +46 -5
  170. package/dist/core/atomic-core.js +25 -0
  171. package/dist/core/atomic-core.js.map +1 -1
  172. package/dist/core/create.js +523 -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 +38 -0
  209. package/dist/core/prism.js +43 -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 +5 -2
  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/tensorrt-llm.d.ts +169 -0
  218. package/dist/core/tensorrt-llm.js +428 -0
  219. package/dist/core/tensorrt-llm.js.map +1 -0
  220. package/dist/core/types.d.ts +43 -1
  221. package/dist/core/types.js.map +1 -1
  222. package/dist/decision/args.d.ts +110 -0
  223. package/dist/decision/args.js +126 -0
  224. package/dist/decision/args.js.map +1 -0
  225. package/dist/decision/backoff.d.ts +25 -0
  226. package/dist/decision/backoff.js +33 -0
  227. package/dist/decision/backoff.js.map +1 -0
  228. package/dist/decision/engine-candidates.d.ts +52 -0
  229. package/dist/decision/engine-candidates.js +138 -0
  230. package/dist/decision/engine-candidates.js.map +1 -0
  231. package/dist/decision/engine-fallback.d.ts +41 -0
  232. package/dist/decision/engine-fallback.js +57 -0
  233. package/dist/decision/engine-fallback.js.map +1 -0
  234. package/dist/decision/engine-version.d.ts +27 -0
  235. package/dist/decision/engine-version.js +54 -0
  236. package/dist/decision/engine-version.js.map +1 -0
  237. package/dist/decision/engine.d.ts +114 -0
  238. package/dist/decision/engine.js +253 -0
  239. package/dist/decision/engine.js.map +1 -0
  240. package/dist/decision/http.d.ts +36 -0
  241. package/dist/decision/http.js +73 -0
  242. package/dist/decision/http.js.map +1 -0
  243. package/dist/decision/index.d.ts +20 -0
  244. package/dist/decision/index.js +21 -0
  245. package/dist/decision/index.js.map +1 -0
  246. package/dist/decision/model-facts.d.ts +32 -0
  247. package/dist/decision/model-facts.js +40 -0
  248. package/dist/decision/model-facts.js.map +1 -0
  249. package/dist/decision/outcome.d.ts +35 -0
  250. package/dist/decision/outcome.js +105 -0
  251. package/dist/decision/outcome.js.map +1 -0
  252. package/dist/decision/process.d.ts +71 -0
  253. package/dist/decision/process.js +142 -0
  254. package/dist/decision/process.js.map +1 -0
  255. package/dist/decision/readiness.d.ts +74 -0
  256. package/dist/decision/readiness.js +165 -0
  257. package/dist/decision/readiness.js.map +1 -0
  258. package/dist/decision/request.d.ts +11 -0
  259. package/dist/decision/request.js +56 -0
  260. package/dist/decision/request.js.map +1 -0
  261. package/dist/decision/service.d.ts +202 -0
  262. package/dist/decision/service.js +711 -0
  263. package/dist/decision/service.js.map +1 -0
  264. package/dist/decision/upstream-version.d.ts +23 -0
  265. package/dist/decision/upstream-version.js +34 -0
  266. package/dist/decision/upstream-version.js.map +1 -0
  267. package/dist/decision/wiring.d.ts +67 -0
  268. package/dist/decision/wiring.js +101 -0
  269. package/dist/decision/wiring.js.map +1 -0
  270. package/dist/diffusion/args.d.ts +7 -4
  271. package/dist/diffusion/args.js +31 -7
  272. package/dist/diffusion/args.js.map +1 -1
  273. package/dist/diffusion/compat.d.ts +1 -1
  274. package/dist/diffusion/compat.js +6 -2
  275. package/dist/diffusion/compat.js.map +1 -1
  276. package/dist/diffusion/image-job.js +1 -1
  277. package/dist/diffusion/image-job.js.map +1 -1
  278. package/dist/diffusion/install.d.ts +35 -11
  279. package/dist/diffusion/install.js +74 -49
  280. package/dist/diffusion/install.js.map +1 -1
  281. package/dist/diffusion/job-kind.d.ts +33 -7
  282. package/dist/diffusion/jobs.d.ts +6 -1
  283. package/dist/diffusion/jobs.js +64 -18
  284. package/dist/diffusion/jobs.js.map +1 -1
  285. package/dist/diffusion/parse.d.ts +1 -2
  286. package/dist/diffusion/parse.js +1 -13
  287. package/dist/diffusion/parse.js.map +1 -1
  288. package/dist/diffusion/progress.js +3 -0
  289. package/dist/diffusion/progress.js.map +1 -1
  290. package/dist/diffusion/server-process.d.ts +6 -0
  291. package/dist/diffusion/server-process.js +3 -2
  292. package/dist/diffusion/server-process.js.map +1 -1
  293. package/dist/diffusion/service.d.ts +52 -6
  294. package/dist/diffusion/service.js +215 -40
  295. package/dist/diffusion/service.js.map +1 -1
  296. package/dist/diffusion/session.d.ts +27 -3
  297. package/dist/diffusion/session.js +108 -17
  298. package/dist/diffusion/session.js.map +1 -1
  299. package/dist/diffusion/state.d.ts +19 -1
  300. package/dist/diffusion/state.js +10 -0
  301. package/dist/diffusion/state.js.map +1 -1
  302. package/dist/diffusion/tracker.d.ts +21 -1
  303. package/dist/diffusion/tracker.js +43 -6
  304. package/dist/diffusion/tracker.js.map +1 -1
  305. package/dist/diffusion/types.d.ts +7 -0
  306. package/dist/diffusion/types.js +11 -0
  307. package/dist/diffusion/types.js.map +1 -1
  308. package/dist/diffusion/validate.js +2 -2
  309. package/dist/diffusion/validate.js.map +1 -1
  310. package/dist/diffusion/video-estimate.d.ts +214 -0
  311. package/dist/diffusion/video-estimate.js +402 -0
  312. package/dist/diffusion/video-estimate.js.map +1 -0
  313. package/dist/diffusion/video-eta.d.ts +90 -0
  314. package/dist/diffusion/video-eta.js +248 -0
  315. package/dist/diffusion/video-eta.js.map +1 -0
  316. package/dist/diffusion/video-history.d.ts +45 -0
  317. package/dist/diffusion/video-history.js +121 -0
  318. package/dist/diffusion/video-history.js.map +1 -0
  319. package/dist/diffusion/video-job.d.ts +13 -5
  320. package/dist/diffusion/video-job.js +42 -15
  321. package/dist/diffusion/video-job.js.map +1 -1
  322. package/dist/diffusion/video-recipe.js +3 -0
  323. package/dist/diffusion/video-recipe.js.map +1 -1
  324. package/dist/diffusion/video-tiling.d.ts +54 -0
  325. package/dist/diffusion/video-tiling.js +70 -0
  326. package/dist/diffusion/video-tiling.js.map +1 -0
  327. package/dist/diffusion/wiring.d.ts +14 -1
  328. package/dist/diffusion/wiring.js +7 -0
  329. package/dist/diffusion/wiring.js.map +1 -1
  330. package/dist/diffusion/workflow.d.ts +8 -2
  331. package/dist/diffusion/workflow.js +13 -5
  332. package/dist/diffusion/workflow.js.map +1 -1
  333. package/dist/downloads/downloader.d.ts +22 -0
  334. package/dist/downloads/downloader.js +57 -2
  335. package/dist/downloads/downloader.js.map +1 -1
  336. package/dist/downloads/protocol.d.ts +3 -8
  337. package/dist/downloads/protocol.js.map +1 -1
  338. package/dist/downloads/segmented.d.ts +40 -0
  339. package/dist/downloads/segmented.js +170 -0
  340. package/dist/downloads/segmented.js.map +1 -0
  341. package/dist/embedding/args.d.ts +39 -0
  342. package/dist/embedding/args.js +46 -0
  343. package/dist/embedding/args.js.map +1 -0
  344. package/dist/embedding/engine.d.ts +50 -0
  345. package/dist/embedding/engine.js +100 -0
  346. package/dist/embedding/engine.js.map +1 -0
  347. package/dist/embedding/ffmpeg.d.ts +18 -0
  348. package/dist/embedding/ffmpeg.js +63 -0
  349. package/dist/embedding/ffmpeg.js.map +1 -0
  350. package/dist/embedding/index.d.ts +16 -0
  351. package/dist/embedding/index.js +17 -0
  352. package/dist/embedding/index.js.map +1 -0
  353. package/dist/embedding/model-facts.d.ts +51 -0
  354. package/dist/embedding/model-facts.js +84 -0
  355. package/dist/embedding/model-facts.js.map +1 -0
  356. package/dist/embedding/process.d.ts +70 -0
  357. package/dist/embedding/process.js +140 -0
  358. package/dist/embedding/process.js.map +1 -0
  359. package/dist/embedding/readiness.d.ts +56 -0
  360. package/dist/embedding/readiness.js +114 -0
  361. package/dist/embedding/readiness.js.map +1 -0
  362. package/dist/embedding/request.d.ts +43 -0
  363. package/dist/embedding/request.js +285 -0
  364. package/dist/embedding/request.js.map +1 -0
  365. package/dist/embedding/service.d.ts +152 -0
  366. package/dist/embedding/service.js +602 -0
  367. package/dist/embedding/service.js.map +1 -0
  368. package/dist/embedding/wiring.d.ts +51 -0
  369. package/dist/embedding/wiring.js +79 -0
  370. package/dist/embedding/wiring.js.map +1 -0
  371. package/dist/engine-builds/builds.d.ts +54 -0
  372. package/dist/engine-builds/builds.js +151 -0
  373. package/dist/engine-builds/builds.js.map +1 -0
  374. package/dist/engine-builds/index.d.ts +10 -0
  375. package/dist/engine-builds/index.js +11 -0
  376. package/dist/engine-builds/index.js.map +1 -0
  377. package/dist/engine-builds/install.d.ts +42 -0
  378. package/dist/engine-builds/install.js +100 -0
  379. package/dist/engine-builds/install.js.map +1 -0
  380. package/dist/engine-builds/manifest.d.ts +121 -0
  381. package/dist/engine-builds/manifest.js +254 -0
  382. package/dist/engine-builds/manifest.js.map +1 -0
  383. package/dist/engine-builds/order.d.ts +24 -0
  384. package/dist/engine-builds/order.js +44 -0
  385. package/dist/engine-builds/order.js.map +1 -0
  386. package/dist/engine-builds/select.d.ts +123 -0
  387. package/dist/engine-builds/select.js +223 -0
  388. package/dist/engine-builds/select.js.map +1 -0
  389. package/dist/engine-builds/service.d.ts +123 -0
  390. package/dist/engine-builds/service.js +392 -0
  391. package/dist/engine-builds/service.js.map +1 -0
  392. package/dist/engines/descriptor-order.d.ts +28 -0
  393. package/dist/engines/descriptor-order.js +60 -0
  394. package/dist/engines/descriptor-order.js.map +1 -0
  395. package/dist/engines/engine-build.d.ts +23 -0
  396. package/dist/engines/engine-build.js +58 -0
  397. package/dist/engines/engine-build.js.map +1 -0
  398. package/dist/engines/index.d.ts +10 -0
  399. package/dist/engines/index.js +11 -0
  400. package/dist/engines/index.js.map +1 -0
  401. package/dist/engines/llamacpp.d.ts +71 -0
  402. package/dist/engines/llamacpp.js +176 -0
  403. package/dist/engines/llamacpp.js.map +1 -0
  404. package/dist/engines/managed.d.ts +49 -0
  405. package/dist/engines/managed.js +88 -0
  406. package/dist/engines/managed.js.map +1 -0
  407. package/dist/engines/service.d.ts +46 -0
  408. package/dist/engines/service.js +61 -0
  409. package/dist/engines/service.js.map +1 -0
  410. package/dist/engines/versions.d.ts +65 -0
  411. package/dist/engines/versions.js +259 -0
  412. package/dist/engines/versions.js.map +1 -0
  413. package/dist/hardware/cpu-flags.d.ts +44 -0
  414. package/dist/hardware/cpu-flags.js +206 -0
  415. package/dist/hardware/cpu-flags.js.map +1 -0
  416. package/dist/hardware/drm-sysfs.d.ts +51 -0
  417. package/dist/hardware/drm-sysfs.js +67 -0
  418. package/dist/hardware/drm-sysfs.js.map +1 -0
  419. package/dist/hardware/facts.d.ts +42 -0
  420. package/dist/hardware/facts.js +92 -0
  421. package/dist/hardware/facts.js.map +1 -0
  422. package/dist/hardware/index.d.ts +19 -3
  423. package/dist/hardware/index.js +19 -3
  424. package/dist/hardware/index.js.map +1 -1
  425. package/dist/hardware/merge.d.ts +55 -0
  426. package/dist/hardware/merge.js +141 -0
  427. package/dist/hardware/merge.js.map +1 -0
  428. package/dist/hardware/nvidia-smi.d.ts +43 -0
  429. package/dist/hardware/nvidia-smi.js +118 -0
  430. package/dist/hardware/nvidia-smi.js.map +1 -0
  431. package/dist/hardware/probe-common.d.ts +72 -0
  432. package/dist/hardware/probe-common.js +106 -0
  433. package/dist/hardware/probe-common.js.map +1 -0
  434. package/dist/hardware/probe-darwin.d.ts +20 -0
  435. package/dist/hardware/probe-darwin.js +76 -0
  436. package/dist/hardware/probe-darwin.js.map +1 -0
  437. package/dist/hardware/probe-linux.d.ts +9 -0
  438. package/dist/hardware/probe-linux.js +133 -0
  439. package/dist/hardware/probe-linux.js.map +1 -0
  440. package/dist/hardware/probe-windows.d.ts +7 -0
  441. package/dist/hardware/probe-windows.js +50 -0
  442. package/dist/hardware/probe-windows.js.map +1 -0
  443. package/dist/hardware/probe.d.ts +16 -0
  444. package/dist/hardware/probe.js +65 -0
  445. package/dist/hardware/probe.js.map +1 -0
  446. package/dist/hardware/service.d.ts +60 -0
  447. package/dist/hardware/service.js +114 -0
  448. package/dist/hardware/service.js.map +1 -0
  449. package/dist/hardware/vulkan.d.ts +47 -0
  450. package/dist/hardware/vulkan.js +148 -0
  451. package/dist/hardware/vulkan.js.map +1 -0
  452. package/dist/hardware/windows-video.d.ts +97 -0
  453. package/dist/hardware/windows-video.js +214 -0
  454. package/dist/hardware/windows-video.js.map +1 -0
  455. package/dist/host/app-daemon.d.ts +47 -0
  456. package/dist/host/app-daemon.js +146 -0
  457. package/dist/host/app-daemon.js.map +1 -0
  458. package/dist/host/index.d.ts +5 -3
  459. package/dist/host/index.js +5 -3
  460. package/dist/host/index.js.map +1 -1
  461. package/dist/host/log-file.d.ts +74 -0
  462. package/dist/host/log-file.js +214 -0
  463. package/dist/host/log-file.js.map +1 -0
  464. package/dist/host/recipes/enable-wsl.d.ts +63 -0
  465. package/dist/host/recipes/enable-wsl.js +73 -0
  466. package/dist/host/recipes/enable-wsl.js.map +1 -0
  467. package/dist/host/recipes/executor-io-windows.d.ts +69 -0
  468. package/dist/host/recipes/executor-io-windows.js +235 -0
  469. package/dist/host/recipes/executor-io-windows.js.map +1 -0
  470. package/dist/host/recipes/executor-io.d.ts +80 -0
  471. package/dist/host/recipes/executor-io.js +211 -0
  472. package/dist/host/recipes/executor-io.js.map +1 -0
  473. package/dist/host/recipes/executor.d.ts +81 -0
  474. package/dist/host/recipes/executor.js +678 -0
  475. package/dist/host/recipes/executor.js.map +1 -0
  476. package/dist/host/recipes/guest-executor.d.ts +29 -0
  477. package/dist/host/recipes/guest-executor.js +76 -0
  478. package/dist/host/recipes/guest-executor.js.map +1 -0
  479. package/dist/host/recipes/index.d.ts +16 -0
  480. package/dist/host/recipes/index.js +17 -0
  481. package/dist/host/recipes/index.js.map +1 -0
  482. package/dist/host/recipes/install-container-runtime.d.ts +389 -0
  483. package/dist/host/recipes/install-container-runtime.js +796 -0
  484. package/dist/host/recipes/install-container-runtime.js.map +1 -0
  485. package/dist/host/recipes/openpgp.d.ts +23 -0
  486. package/dist/host/recipes/openpgp.js +153 -0
  487. package/dist/host/recipes/openpgp.js.map +1 -0
  488. package/dist/host/recipes/request-file.d.ts +96 -0
  489. package/dist/host/recipes/request-file.js +103 -0
  490. package/dist/host/recipes/request-file.js.map +1 -0
  491. package/dist/lock/process-journal.d.ts +5 -2
  492. package/dist/lock/process-journal.js.map +1 -1
  493. package/dist/models/capabilities.d.ts +7 -0
  494. package/dist/models/capabilities.js +17 -1
  495. package/dist/models/capabilities.js.map +1 -1
  496. package/dist/models/compatibility/index.d.ts +10 -0
  497. package/dist/models/compatibility/index.js +11 -0
  498. package/dist/models/compatibility/index.js.map +1 -0
  499. package/dist/models/compatibility/inspect.d.ts +28 -0
  500. package/dist/models/compatibility/inspect.js +90 -0
  501. package/dist/models/compatibility/inspect.js.map +1 -0
  502. package/dist/models/compatibility/resolve.d.ts +59 -0
  503. package/dist/models/compatibility/resolve.js +219 -0
  504. package/dist/models/compatibility/resolve.js.map +1 -0
  505. package/dist/models/compatibility/rules-baseline.d.ts +2 -0
  506. package/dist/models/compatibility/rules-baseline.js +10 -0
  507. package/dist/models/compatibility/rules-baseline.js.map +1 -0
  508. package/dist/models/compatibility/rules-baseline.json +292 -0
  509. package/dist/models/compatibility/rules-service.d.ts +36 -0
  510. package/dist/models/compatibility/rules-service.js +109 -0
  511. package/dist/models/compatibility/rules-service.js.map +1 -0
  512. package/dist/models/compatibility/rules.d.ts +81 -0
  513. package/dist/models/compatibility/rules.js +164 -0
  514. package/dist/models/compatibility/rules.js.map +1 -0
  515. package/dist/models/compatibility/service.d.ts +62 -0
  516. package/dist/models/compatibility/service.js +138 -0
  517. package/dist/models/compatibility/service.js.map +1 -0
  518. package/dist/models/decision-checkpoint.d.ts +22 -0
  519. package/dist/models/decision-checkpoint.js +33 -0
  520. package/dist/models/decision-checkpoint.js.map +1 -0
  521. package/dist/models/gguf/classify.d.ts +27 -1
  522. package/dist/models/gguf/classify.js +78 -2
  523. package/dist/models/gguf/classify.js.map +1 -1
  524. package/dist/models/gguf/index.d.ts +1 -0
  525. package/dist/models/gguf/index.js +1 -0
  526. package/dist/models/gguf/index.js.map +1 -1
  527. package/dist/models/gguf/tensors.d.ts +57 -0
  528. package/dist/models/gguf/tensors.js +239 -0
  529. package/dist/models/gguf/tensors.js.map +1 -0
  530. package/dist/models/index.d.ts +2 -0
  531. package/dist/models/index.js +2 -0
  532. package/dist/models/index.js.map +1 -1
  533. package/dist/router/resolve.d.ts +7 -1
  534. package/dist/router/resolve.js +14 -1
  535. package/dist/router/resolve.js.map +1 -1
  536. package/dist/runtime/container/argv.d.ts +88 -0
  537. package/dist/runtime/container/argv.js +406 -0
  538. package/dist/runtime/container/argv.js.map +1 -0
  539. package/dist/runtime/container/docker-binary.d.ts +4 -0
  540. package/dist/runtime/container/docker-binary.js +34 -0
  541. package/dist/runtime/container/docker-binary.js.map +1 -0
  542. package/dist/runtime/container/env.d.ts +17 -0
  543. package/dist/runtime/container/env.js +52 -0
  544. package/dist/runtime/container/env.js.map +1 -0
  545. package/dist/runtime/container/exec.d.ts +27 -0
  546. package/dist/runtime/container/exec.js +79 -0
  547. package/dist/runtime/container/exec.js.map +1 -0
  548. package/dist/runtime/container/execution-journal.d.ts +55 -0
  549. package/dist/runtime/container/execution-journal.js +167 -0
  550. package/dist/runtime/container/execution-journal.js.map +1 -0
  551. package/dist/runtime/container/heartbeat.d.ts +47 -0
  552. package/dist/runtime/container/heartbeat.js +78 -0
  553. package/dist/runtime/container/heartbeat.js.map +1 -0
  554. package/dist/runtime/container/index.d.ts +30 -0
  555. package/dist/runtime/container/index.js +31 -0
  556. package/dist/runtime/container/index.js.map +1 -0
  557. package/dist/runtime/container/operations.d.ts +40 -0
  558. package/dist/runtime/container/operations.js +233 -0
  559. package/dist/runtime/container/operations.js.map +1 -0
  560. package/dist/runtime/container/pull.d.ts +48 -0
  561. package/dist/runtime/container/pull.js +280 -0
  562. package/dist/runtime/container/pull.js.map +1 -0
  563. package/dist/runtime/container/reconcile.d.ts +34 -0
  564. package/dist/runtime/container/reconcile.js +79 -0
  565. package/dist/runtime/container/reconcile.js.map +1 -0
  566. package/dist/runtime/container/types.d.ts +124 -0
  567. package/dist/runtime/container/types.js +2 -0
  568. package/dist/runtime/container/types.js.map +1 -0
  569. package/dist/runtime/container/watchdog.d.ts +114 -0
  570. package/dist/runtime/container/watchdog.js +418 -0
  571. package/dist/runtime/container/watchdog.js.map +1 -0
  572. package/dist/runtime/container/wiring.d.ts +78 -0
  573. package/dist/runtime/container/wiring.js +92 -0
  574. package/dist/runtime/container/wiring.js.map +1 -0
  575. package/dist/runtime/container/wsl-exec.d.ts +13 -0
  576. package/dist/runtime/container/wsl-exec.js +18 -0
  577. package/dist/runtime/container/wsl-exec.js.map +1 -0
  578. package/dist/runtime/environment/cached-document.d.ts +128 -0
  579. package/dist/runtime/environment/cached-document.js +218 -0
  580. package/dist/runtime/environment/cached-document.js.map +1 -0
  581. package/dist/runtime/environment/canonical-json.d.ts +78 -0
  582. package/dist/runtime/environment/canonical-json.js +86 -0
  583. package/dist/runtime/environment/canonical-json.js.map +1 -0
  584. package/dist/runtime/environment/descriptor-provider.d.ts +121 -0
  585. package/dist/runtime/environment/descriptor-provider.js +159 -0
  586. package/dist/runtime/environment/descriptor-provider.js.map +1 -0
  587. package/dist/runtime/environment/descriptor.d.ts +35 -0
  588. package/dist/runtime/environment/descriptor.js +239 -0
  589. package/dist/runtime/environment/descriptor.js.map +1 -0
  590. package/dist/runtime/environment/diagnostics.d.ts +50 -0
  591. package/dist/runtime/environment/diagnostics.js +114 -0
  592. package/dist/runtime/environment/diagnostics.js.map +1 -0
  593. package/dist/runtime/environment/document-fields.d.ts +39 -0
  594. package/dist/runtime/environment/document-fields.js +96 -0
  595. package/dist/runtime/environment/document-fields.js.map +1 -0
  596. package/dist/runtime/environment/environment-manifest-provider.d.ts +65 -0
  597. package/dist/runtime/environment/environment-manifest-provider.js +89 -0
  598. package/dist/runtime/environment/environment-manifest-provider.js.map +1 -0
  599. package/dist/runtime/environment/environment-manifest.d.ts +35 -0
  600. package/dist/runtime/environment/environment-manifest.js +131 -0
  601. package/dist/runtime/environment/environment-manifest.js.map +1 -0
  602. package/dist/runtime/environment/guest-host.d.ts +43 -0
  603. package/dist/runtime/environment/guest-host.js +88 -0
  604. package/dist/runtime/environment/guest-host.js.map +1 -0
  605. package/dist/runtime/environment/host-exec.d.ts +38 -0
  606. package/dist/runtime/environment/host-exec.js +145 -0
  607. package/dist/runtime/environment/host-exec.js.map +1 -0
  608. package/dist/runtime/environment/host-step-failure.d.ts +33 -0
  609. package/dist/runtime/environment/host-step-failure.js +34 -0
  610. package/dist/runtime/environment/host-step-failure.js.map +1 -0
  611. package/dist/runtime/environment/index.d.ts +56 -0
  612. package/dist/runtime/environment/index.js +57 -0
  613. package/dist/runtime/environment/index.js.map +1 -0
  614. package/dist/runtime/environment/installations.d.ts +25 -0
  615. package/dist/runtime/environment/installations.js +70 -0
  616. package/dist/runtime/environment/installations.js.map +1 -0
  617. package/dist/runtime/environment/inventory.d.ts +42 -0
  618. package/dist/runtime/environment/inventory.js +57 -0
  619. package/dist/runtime/environment/inventory.js.map +1 -0
  620. package/dist/runtime/environment/linux-blockers.d.ts +130 -0
  621. package/dist/runtime/environment/linux-blockers.js +251 -0
  622. package/dist/runtime/environment/linux-blockers.js.map +1 -0
  623. package/dist/runtime/environment/linux-docker-facts.d.ts +200 -0
  624. package/dist/runtime/environment/linux-docker-facts.js +342 -0
  625. package/dist/runtime/environment/linux-docker-facts.js.map +1 -0
  626. package/dist/runtime/environment/linux-docker-network.d.ts +80 -0
  627. package/dist/runtime/environment/linux-docker-network.js +195 -0
  628. package/dist/runtime/environment/linux-docker-network.js.map +1 -0
  629. package/dist/runtime/environment/linux-host.d.ts +22 -0
  630. package/dist/runtime/environment/linux-host.js +98 -0
  631. package/dist/runtime/environment/linux-host.js.map +1 -0
  632. package/dist/runtime/environment/linux-plan.d.ts +126 -0
  633. package/dist/runtime/environment/linux-plan.js +392 -0
  634. package/dist/runtime/environment/linux-plan.js.map +1 -0
  635. package/dist/runtime/environment/linux-probe.d.ts +245 -0
  636. package/dist/runtime/environment/linux-probe.js +315 -0
  637. package/dist/runtime/environment/linux-probe.js.map +1 -0
  638. package/dist/runtime/environment/linux-provisioner.d.ts +102 -0
  639. package/dist/runtime/environment/linux-provisioner.js +734 -0
  640. package/dist/runtime/environment/linux-provisioner.js.map +1 -0
  641. package/dist/runtime/environment/provisioner-descriptors.d.ts +17 -0
  642. package/dist/runtime/environment/provisioner-descriptors.js +62 -0
  643. package/dist/runtime/environment/provisioner-descriptors.js.map +1 -0
  644. package/dist/runtime/environment/recovery.d.ts +74 -0
  645. package/dist/runtime/environment/recovery.js +121 -0
  646. package/dist/runtime/environment/recovery.js.map +1 -0
  647. package/dist/runtime/environment/rootfs-download.d.ts +2 -0
  648. package/dist/runtime/environment/rootfs-download.js +47 -0
  649. package/dist/runtime/environment/rootfs-download.js.map +1 -0
  650. package/dist/runtime/environment/service.d.ts +280 -0
  651. package/dist/runtime/environment/service.js +776 -0
  652. package/dist/runtime/environment/service.js.map +1 -0
  653. package/dist/runtime/environment/state.d.ts +163 -0
  654. package/dist/runtime/environment/state.js +479 -0
  655. package/dist/runtime/environment/state.js.map +1 -0
  656. package/dist/runtime/environment/store-models.d.ts +19 -0
  657. package/dist/runtime/environment/store-models.js +30 -0
  658. package/dist/runtime/environment/store-models.js.map +1 -0
  659. package/dist/runtime/environment/store.d.ts +210 -0
  660. package/dist/runtime/environment/store.js +438 -0
  661. package/dist/runtime/environment/store.js.map +1 -0
  662. package/dist/runtime/environment/windows-environment-record.d.ts +48 -0
  663. package/dist/runtime/environment/windows-environment-record.js +89 -0
  664. package/dist/runtime/environment/windows-environment-record.js.map +1 -0
  665. package/dist/runtime/environment/windows-forwarding.d.ts +27 -0
  666. package/dist/runtime/environment/windows-forwarding.js +84 -0
  667. package/dist/runtime/environment/windows-forwarding.js.map +1 -0
  668. package/dist/runtime/environment/windows-guest-setup.d.ts +48 -0
  669. package/dist/runtime/environment/windows-guest-setup.js +157 -0
  670. package/dist/runtime/environment/windows-guest-setup.js.map +1 -0
  671. package/dist/runtime/environment/windows-host.d.ts +46 -0
  672. package/dist/runtime/environment/windows-host.js +163 -0
  673. package/dist/runtime/environment/windows-host.js.map +1 -0
  674. package/dist/runtime/environment/windows-plan.d.ts +78 -0
  675. package/dist/runtime/environment/windows-plan.js +216 -0
  676. package/dist/runtime/environment/windows-plan.js.map +1 -0
  677. package/dist/runtime/environment/windows-probe.d.ts +135 -0
  678. package/dist/runtime/environment/windows-probe.js +261 -0
  679. package/dist/runtime/environment/windows-probe.js.map +1 -0
  680. package/dist/runtime/environment/windows-provisioner.d.ts +113 -0
  681. package/dist/runtime/environment/windows-provisioner.js +782 -0
  682. package/dist/runtime/environment/windows-provisioner.js.map +1 -0
  683. package/dist/runtime/environment/wiring.d.ts +117 -0
  684. package/dist/runtime/environment/wiring.js +354 -0
  685. package/dist/runtime/environment/wiring.js.map +1 -0
  686. package/dist/runtime/foundation-models/runtime.d.ts +8 -0
  687. package/dist/runtime/foundation-models/runtime.js +5 -2
  688. package/dist/runtime/foundation-models/runtime.js.map +1 -1
  689. package/dist/runtime/llamacpp/args.d.ts +10 -1
  690. package/dist/runtime/llamacpp/args.js +43 -7
  691. package/dist/runtime/llamacpp/args.js.map +1 -1
  692. package/dist/runtime/llamacpp/fit-margin.d.ts +46 -0
  693. package/dist/runtime/llamacpp/fit-margin.js +47 -0
  694. package/dist/runtime/llamacpp/fit-margin.js.map +1 -0
  695. package/dist/runtime/llamacpp/index.d.ts +1 -0
  696. package/dist/runtime/llamacpp/index.js +1 -0
  697. package/dist/runtime/llamacpp/index.js.map +1 -1
  698. package/dist/runtime/llamacpp/load-plan.d.ts +23 -1
  699. package/dist/runtime/llamacpp/load-plan.js +82 -1
  700. package/dist/runtime/llamacpp/load-plan.js.map +1 -1
  701. package/dist/runtime/llamacpp/policy.d.ts +16 -0
  702. package/dist/runtime/llamacpp/policy.js +20 -0
  703. package/dist/runtime/llamacpp/policy.js.map +1 -1
  704. package/dist/runtime/llamacpp/probe.d.ts +21 -1
  705. package/dist/runtime/llamacpp/probe.js +32 -6
  706. package/dist/runtime/llamacpp/probe.js.map +1 -1
  707. package/dist/runtime/llamacpp/runtime.d.ts +56 -1
  708. package/dist/runtime/llamacpp/runtime.js +142 -15
  709. package/dist/runtime/llamacpp/runtime.js.map +1 -1
  710. package/dist/runtime/managed-engines/index.d.ts +8 -0
  711. package/dist/runtime/managed-engines/index.js +9 -0
  712. package/dist/runtime/managed-engines/index.js.map +1 -0
  713. package/dist/runtime/managed-engines/runtime.d.ts +140 -0
  714. package/dist/runtime/managed-engines/runtime.js +402 -0
  715. package/dist/runtime/managed-engines/runtime.js.map +1 -0
  716. package/dist/runtime/managed-engines/spec.d.ts +70 -0
  717. package/dist/runtime/managed-engines/spec.js +39 -0
  718. package/dist/runtime/managed-engines/spec.js.map +1 -0
  719. package/dist/runtime/managed-models/check.d.ts +50 -0
  720. package/dist/runtime/managed-models/check.js +157 -0
  721. package/dist/runtime/managed-models/check.js.map +1 -0
  722. package/dist/runtime/managed-models/compatibility.d.ts +256 -0
  723. package/dist/runtime/managed-models/compatibility.js +594 -0
  724. package/dist/runtime/managed-models/compatibility.js.map +1 -0
  725. package/dist/runtime/managed-models/delete.d.ts +15 -0
  726. package/dist/runtime/managed-models/delete.js +60 -0
  727. package/dist/runtime/managed-models/delete.js.map +1 -0
  728. package/dist/runtime/managed-models/guest-files.d.ts +8 -0
  729. package/dist/runtime/managed-models/guest-files.js +49 -0
  730. package/dist/runtime/managed-models/guest-files.js.map +1 -0
  731. package/dist/runtime/managed-models/index.d.ts +17 -0
  732. package/dist/runtime/managed-models/index.js +18 -0
  733. package/dist/runtime/managed-models/index.js.map +1 -0
  734. package/dist/runtime/managed-models/location.d.ts +22 -0
  735. package/dist/runtime/managed-models/location.js +53 -0
  736. package/dist/runtime/managed-models/location.js.map +1 -0
  737. package/dist/runtime/managed-models/migrate.d.ts +30 -0
  738. package/dist/runtime/managed-models/migrate.js +119 -0
  739. package/dist/runtime/managed-models/migrate.js.map +1 -0
  740. package/dist/runtime/managed-models/model-dir.d.ts +36 -0
  741. package/dist/runtime/managed-models/model-dir.js +136 -0
  742. package/dist/runtime/managed-models/model-dir.js.map +1 -0
  743. package/dist/runtime/managed-models/quant-format.d.ts +71 -0
  744. package/dist/runtime/managed-models/quant-format.js +299 -0
  745. package/dist/runtime/managed-models/quant-format.js.map +1 -0
  746. package/dist/runtime/managed-models/registry.d.ts +26 -0
  747. package/dist/runtime/managed-models/registry.js +66 -0
  748. package/dist/runtime/managed-models/registry.js.map +1 -0
  749. package/dist/runtime/managed-text/adapter.d.ts +283 -0
  750. package/dist/runtime/managed-text/adapter.js +96 -0
  751. package/dist/runtime/managed-text/adapter.js.map +1 -0
  752. package/dist/runtime/managed-text/backend-target.d.ts +3 -0
  753. package/dist/runtime/managed-text/backend-target.js +52 -0
  754. package/dist/runtime/managed-text/backend-target.js.map +1 -0
  755. package/dist/runtime/managed-text/deployment.d.ts +14 -0
  756. package/dist/runtime/managed-text/deployment.js +32 -0
  757. package/dist/runtime/managed-text/deployment.js.map +1 -0
  758. package/dist/runtime/managed-text/engine-cache.d.ts +15 -0
  759. package/dist/runtime/managed-text/engine-cache.js +64 -0
  760. package/dist/runtime/managed-text/engine-cache.js.map +1 -0
  761. package/dist/runtime/managed-text/gateway.d.ts +158 -0
  762. package/dist/runtime/managed-text/gateway.js +535 -0
  763. package/dist/runtime/managed-text/gateway.js.map +1 -0
  764. package/dist/runtime/managed-text/generation-defaults.d.ts +23 -0
  765. package/dist/runtime/managed-text/generation-defaults.js +51 -0
  766. package/dist/runtime/managed-text/generation-defaults.js.map +1 -0
  767. package/dist/runtime/managed-text/index.d.ts +26 -0
  768. package/dist/runtime/managed-text/index.js +27 -0
  769. package/dist/runtime/managed-text/index.js.map +1 -0
  770. package/dist/runtime/managed-text/lifecycle.d.ts +284 -0
  771. package/dist/runtime/managed-text/lifecycle.js +896 -0
  772. package/dist/runtime/managed-text/lifecycle.js.map +1 -0
  773. package/dist/runtime/managed-text/load-policy.d.ts +47 -0
  774. package/dist/runtime/managed-text/load-policy.js +111 -0
  775. package/dist/runtime/managed-text/load-policy.js.map +1 -0
  776. package/dist/runtime/managed-text/mount-source.d.ts +14 -0
  777. package/dist/runtime/managed-text/mount-source.js +18 -0
  778. package/dist/runtime/managed-text/mount-source.js.map +1 -0
  779. package/dist/runtime/managed-text/readiness.d.ts +33 -0
  780. package/dist/runtime/managed-text/readiness.js +88 -0
  781. package/dist/runtime/managed-text/readiness.js.map +1 -0
  782. package/dist/runtime/managed-text/request-rules.d.ts +18 -0
  783. package/dist/runtime/managed-text/request-rules.js +62 -0
  784. package/dist/runtime/managed-text/request-rules.js.map +1 -0
  785. package/dist/runtime/managed-text/types.d.ts +88 -0
  786. package/dist/runtime/managed-text/types.js +12 -0
  787. package/dist/runtime/managed-text/types.js.map +1 -0
  788. package/dist/runtime/managed-text/wsl-deployment.d.ts +24 -0
  789. package/dist/runtime/managed-text/wsl-deployment.js +70 -0
  790. package/dist/runtime/managed-text/wsl-deployment.js.map +1 -0
  791. package/dist/runtime/mlx/errors.d.ts +6 -1
  792. package/dist/runtime/mlx/errors.js +7 -2
  793. package/dist/runtime/mlx/errors.js.map +1 -1
  794. package/dist/runtime/mlx/runtime.d.ts +36 -1
  795. package/dist/runtime/mlx/runtime.js +85 -4
  796. package/dist/runtime/mlx/runtime.js.map +1 -1
  797. package/dist/runtime/shared/backend-output.d.ts +23 -0
  798. package/dist/runtime/shared/backend-output.js +32 -0
  799. package/dist/runtime/shared/backend-output.js.map +1 -0
  800. package/dist/runtime/shared/bounded-output.d.ts +24 -0
  801. package/dist/runtime/shared/bounded-output.js +63 -0
  802. package/dist/runtime/shared/bounded-output.js.map +1 -0
  803. package/dist/runtime/shared/external-sessions.js +9 -1
  804. package/dist/runtime/shared/external-sessions.js.map +1 -1
  805. package/dist/runtime/shared/gpu-occupancy.d.ts +60 -0
  806. package/dist/runtime/shared/gpu-occupancy.js +10 -0
  807. package/dist/runtime/shared/gpu-occupancy.js.map +1 -0
  808. package/dist/runtime/shared/index.d.ts +4 -0
  809. package/dist/runtime/shared/index.js +4 -0
  810. package/dist/runtime/shared/index.js.map +1 -1
  811. package/dist/runtime/shared/local-runtime.d.ts +35 -0
  812. package/dist/runtime/shared/ports.d.ts +16 -0
  813. package/dist/runtime/shared/ports.js +42 -1
  814. package/dist/runtime/shared/ports.js.map +1 -1
  815. package/dist/runtime/shared/process.d.ts +11 -0
  816. package/dist/runtime/shared/process.js +20 -0
  817. package/dist/runtime/shared/process.js.map +1 -1
  818. package/dist/runtime/shared/redact-args.d.ts +7 -0
  819. package/dist/runtime/shared/redact-args.js +26 -0
  820. package/dist/runtime/shared/redact-args.js.map +1 -0
  821. package/dist/runtime/shared/sidecar.d.ts +15 -0
  822. package/dist/runtime/shared/sidecar.js +43 -8
  823. package/dist/runtime/shared/sidecar.js.map +1 -1
  824. package/dist/runtime/tensorrt-llm/adapter.d.ts +247 -0
  825. package/dist/runtime/tensorrt-llm/adapter.js +1028 -0
  826. package/dist/runtime/tensorrt-llm/adapter.js.map +1 -0
  827. package/dist/runtime/tensorrt-llm/check.d.ts +12 -0
  828. package/dist/runtime/tensorrt-llm/check.js +22 -0
  829. package/dist/runtime/tensorrt-llm/check.js.map +1 -0
  830. package/dist/runtime/tensorrt-llm/compatibility.d.ts +124 -0
  831. package/dist/runtime/tensorrt-llm/compatibility.js +213 -0
  832. package/dist/runtime/tensorrt-llm/compatibility.js.map +1 -0
  833. package/dist/runtime/tensorrt-llm/cuda-graphs.d.ts +32 -0
  834. package/dist/runtime/tensorrt-llm/cuda-graphs.js +33 -0
  835. package/dist/runtime/tensorrt-llm/cuda-graphs.js.map +1 -0
  836. package/dist/runtime/tensorrt-llm/delete.d.ts +15 -0
  837. package/dist/runtime/tensorrt-llm/delete.js +60 -0
  838. package/dist/runtime/tensorrt-llm/delete.js.map +1 -0
  839. package/dist/runtime/tensorrt-llm/engine.d.ts +3 -0
  840. package/dist/runtime/tensorrt-llm/engine.js +30 -0
  841. package/dist/runtime/tensorrt-llm/engine.js.map +1 -0
  842. package/dist/runtime/tensorrt-llm/guest-files.d.ts +8 -0
  843. package/dist/runtime/tensorrt-llm/guest-files.js +49 -0
  844. package/dist/runtime/tensorrt-llm/guest-files.js.map +1 -0
  845. package/dist/runtime/tensorrt-llm/host-facts.d.ts +55 -0
  846. package/dist/runtime/tensorrt-llm/host-facts.js +87 -0
  847. package/dist/runtime/tensorrt-llm/host-facts.js.map +1 -0
  848. package/dist/runtime/tensorrt-llm/index.d.ts +30 -0
  849. package/dist/runtime/tensorrt-llm/index.js +31 -0
  850. package/dist/runtime/tensorrt-llm/index.js.map +1 -0
  851. package/dist/runtime/tensorrt-llm/installation.d.ts +23 -0
  852. package/dist/runtime/tensorrt-llm/installation.js +53 -0
  853. package/dist/runtime/tensorrt-llm/installation.js.map +1 -0
  854. package/dist/runtime/tensorrt-llm/kv-cache.d.ts +41 -0
  855. package/dist/runtime/tensorrt-llm/kv-cache.js +48 -0
  856. package/dist/runtime/tensorrt-llm/kv-cache.js.map +1 -0
  857. package/dist/runtime/tensorrt-llm/location.d.ts +20 -0
  858. package/dist/runtime/tensorrt-llm/location.js +48 -0
  859. package/dist/runtime/tensorrt-llm/location.js.map +1 -0
  860. package/dist/runtime/tensorrt-llm/model-dir.d.ts +38 -0
  861. package/dist/runtime/tensorrt-llm/model-dir.js +137 -0
  862. package/dist/runtime/tensorrt-llm/model-dir.js.map +1 -0
  863. package/dist/runtime/tensorrt-llm/prelaunch.d.ts +20 -0
  864. package/dist/runtime/tensorrt-llm/prelaunch.js +168 -0
  865. package/dist/runtime/tensorrt-llm/prelaunch.js.map +1 -0
  866. package/dist/runtime/tensorrt-llm/quant-format.d.ts +65 -0
  867. package/dist/runtime/tensorrt-llm/quant-format.js +189 -0
  868. package/dist/runtime/tensorrt-llm/quant-format.js.map +1 -0
  869. package/dist/runtime/tensorrt-llm/registry.d.ts +26 -0
  870. package/dist/runtime/tensorrt-llm/registry.js +68 -0
  871. package/dist/runtime/tensorrt-llm/registry.js.map +1 -0
  872. package/dist/runtime/tensorrt-llm/route-policy.d.ts +19 -0
  873. package/dist/runtime/tensorrt-llm/route-policy.js +17 -0
  874. package/dist/runtime/tensorrt-llm/route-policy.js.map +1 -0
  875. package/dist/runtime/tensorrt-llm/runtime.d.ts +130 -0
  876. package/dist/runtime/tensorrt-llm/runtime.js +395 -0
  877. package/dist/runtime/tensorrt-llm/runtime.js.map +1 -0
  878. package/dist/runtime/tensorrt-llm/settings.d.ts +7 -0
  879. package/dist/runtime/tensorrt-llm/settings.js +48 -0
  880. package/dist/runtime/tensorrt-llm/settings.js.map +1 -0
  881. package/dist/runtime/vllm/adapter.d.ts +46 -0
  882. package/dist/runtime/vllm/adapter.js +425 -0
  883. package/dist/runtime/vllm/adapter.js.map +1 -0
  884. package/dist/runtime/vllm/engine.d.ts +16 -0
  885. package/dist/runtime/vllm/engine.js +37 -0
  886. package/dist/runtime/vllm/engine.js.map +1 -0
  887. package/dist/runtime/vllm/index.d.ts +11 -0
  888. package/dist/runtime/vllm/index.js +12 -0
  889. package/dist/runtime/vllm/index.js.map +1 -0
  890. package/dist/runtime/vllm/memory.d.ts +69 -0
  891. package/dist/runtime/vllm/memory.js +123 -0
  892. package/dist/runtime/vllm/memory.js.map +1 -0
  893. package/dist/runtime/vllm/settings.d.ts +52 -0
  894. package/dist/runtime/vllm/settings.js +151 -0
  895. package/dist/runtime/vllm/settings.js.map +1 -0
  896. package/dist/runtime/wsl/guest-paths.d.ts +33 -0
  897. package/dist/runtime/wsl/guest-paths.js +83 -0
  898. package/dist/runtime/wsl/guest-paths.js.map +1 -0
  899. package/dist/runtime/wsl/guest-scope.d.ts +14 -0
  900. package/dist/runtime/wsl/guest-scope.js +98 -0
  901. package/dist/runtime/wsl/guest-scope.js.map +1 -0
  902. package/dist/runtime/wsl/index.d.ts +12 -0
  903. package/dist/runtime/wsl/index.js +13 -0
  904. package/dist/runtime/wsl/index.js.map +1 -0
  905. package/dist/runtime/wsl/keeper.d.ts +29 -0
  906. package/dist/runtime/wsl/keeper.js +48 -0
  907. package/dist/runtime/wsl/keeper.js.map +1 -0
  908. package/dist/runtime/wsl/transport.d.ts +106 -0
  909. package/dist/runtime/wsl/transport.js +181 -0
  910. package/dist/runtime/wsl/transport.js.map +1 -0
  911. package/dist/server/control/index.d.ts +1 -1
  912. package/dist/server/control/router.js +16 -1
  913. package/dist/server/control/router.js.map +1 -1
  914. package/dist/server/control/routes/backends.js +26 -0
  915. package/dist/server/control/routes/backends.js.map +1 -1
  916. package/dist/server/control/routes/decision.d.ts +10 -0
  917. package/dist/server/control/routes/decision.js +43 -0
  918. package/dist/server/control/routes/decision.js.map +1 -0
  919. package/dist/server/control/routes/diffusion-video.js +4 -0
  920. package/dist/server/control/routes/diffusion-video.js.map +1 -1
  921. package/dist/server/control/routes/diffusion.d.ts +1 -1
  922. package/dist/server/control/routes/diffusion.js +4 -9
  923. package/dist/server/control/routes/diffusion.js.map +1 -1
  924. package/dist/server/control/routes/embedding.d.ts +9 -0
  925. package/dist/server/control/routes/embedding.js +43 -0
  926. package/dist/server/control/routes/embedding.js.map +1 -0
  927. package/dist/server/control/routes/engine-builds.d.ts +14 -0
  928. package/dist/server/control/routes/engine-builds.js +82 -0
  929. package/dist/server/control/routes/engine-builds.js.map +1 -0
  930. package/dist/server/control/routes/engines.d.ts +17 -0
  931. package/dist/server/control/routes/engines.js +152 -0
  932. package/dist/server/control/routes/engines.js.map +1 -0
  933. package/dist/server/control/routes/environments.d.ts +16 -0
  934. package/dist/server/control/routes/environments.js +207 -0
  935. package/dist/server/control/routes/environments.js.map +1 -0
  936. package/dist/server/control/routes/hardware.d.ts +1 -1
  937. package/dist/server/control/routes/hardware.js +11 -6
  938. package/dist/server/control/routes/hardware.js.map +1 -1
  939. package/dist/server/control/routes/model-setups.d.ts +11 -0
  940. package/dist/server/control/routes/model-setups.js +55 -0
  941. package/dist/server/control/routes/model-setups.js.map +1 -0
  942. package/dist/server/control/routes/models.d.ts +3 -2
  943. package/dist/server/control/routes/models.js +45 -2
  944. package/dist/server/control/routes/models.js.map +1 -1
  945. package/dist/server/control/types.d.ts +172 -10
  946. package/dist/server/control/types.js.map +1 -1
  947. package/dist/server/http.d.ts +9 -1
  948. package/dist/server/http.js +51 -1
  949. package/dist/server/http.js.map +1 -1
  950. package/dist/server/public/decision-preview.d.ts +17 -0
  951. package/dist/server/public/decision-preview.js +119 -0
  952. package/dist/server/public/decision-preview.js.map +1 -0
  953. package/dist/server/public/decision.d.ts +32 -0
  954. package/dist/server/public/decision.js +135 -0
  955. package/dist/server/public/decision.js.map +1 -0
  956. package/dist/server/public/embedding.d.ts +31 -0
  957. package/dist/server/public/embedding.js +126 -0
  958. package/dist/server/public/embedding.js.map +1 -0
  959. package/dist/server/public/errors.d.ts +2 -1
  960. package/dist/server/public/errors.js +5 -2
  961. package/dist/server/public/errors.js.map +1 -1
  962. package/dist/server/public/forward.js +75 -3
  963. package/dist/server/public/forward.js.map +1 -1
  964. package/dist/server/public/gates.d.ts +18 -0
  965. package/dist/server/public/gates.js +41 -14
  966. package/dist/server/public/gates.js.map +1 -1
  967. package/dist/server/public/index.d.ts +6 -2
  968. package/dist/server/public/index.js +23 -7
  969. package/dist/server/public/index.js.map +1 -1
  970. package/dist/server/public/listing.d.ts +13 -2
  971. package/dist/server/public/listing.js +33 -9
  972. package/dist/server/public/listing.js.map +1 -1
  973. package/dist/server/public/policy.d.ts +9 -0
  974. package/dist/server/public/policy.js +68 -0
  975. package/dist/server/public/policy.js.map +1 -0
  976. package/dist/server/public/responses.js +10 -0
  977. package/dist/server/public/responses.js.map +1 -1
  978. package/dist/server/public/trace.d.ts +2 -2
  979. package/dist/server/public/trace.js +6 -2
  980. package/dist/server/public/trace.js.map +1 -1
  981. package/dist/server/public/types.d.ts +91 -1
  982. package/dist/settings/decision.d.ts +15 -0
  983. package/dist/settings/decision.js +88 -0
  984. package/dist/settings/decision.js.map +1 -0
  985. package/dist/settings/embedding.d.ts +12 -0
  986. package/dist/settings/embedding.js +82 -0
  987. package/dist/settings/embedding.js.map +1 -0
  988. package/dist/settings/index.d.ts +2 -0
  989. package/dist/settings/index.js +2 -0
  990. package/dist/settings/index.js.map +1 -1
  991. package/dist/settings/schema/atomic-prism.json +433 -0
  992. package/dist/settings/schema/tensorrt-llm.json +253 -0
  993. package/dist/settings/schema/vllm.json +273 -0
  994. package/dist/settings/schema.js +58 -0
  995. package/dist/settings/schema.js.map +1 -1
  996. package/dist/settings/store.d.ts +13 -2
  997. package/dist/settings/store.js +44 -0
  998. package/dist/settings/store.js.map +1 -1
  999. package/dist/util/index.d.ts +1 -0
  1000. package/dist/util/index.js +1 -0
  1001. package/dist/util/index.js.map +1 -1
  1002. package/dist/util/result.d.ts +19 -0
  1003. package/dist/util/result.js +15 -0
  1004. package/dist/util/result.js.map +1 -0
  1005. package/dist/version.d.ts +1 -1
  1006. package/dist/version.js +1 -1
  1007. package/dist/version.js.map +1 -1
  1008. package/package.json +2 -2
  1009. package/src/settings/schema/atomic-prism.json +433 -0
  1010. package/src/settings/schema/tensorrt-llm.json +253 -0
  1011. package/src/settings/schema/vllm.json +273 -0
@@ -0,0 +1,114 @@
1
+ /**
2
+ * "Is this an embedding model I can serve?": `GET /health` answers 200, then one real
3
+ * `POST /v1/embeddings` of a single word answers vectors, then `GET /props` says what an input may
4
+ * hold. The vector's length is the model's (EmbeddingGemma 2's header says 512 where it answers 768),
5
+ * and the probe also warms the graph, so the first client request does not pay for it.
6
+ *
7
+ * `/health` answers 503 while the engine loads, so the chain is polled until the startup deadline.
8
+ * Only a clear verdict refuses: 501 on the probe is a server without `--embedding` (a stranger on the
9
+ * port, a build that ignored the flag), any other 4xx is the model itself refusing (a pooling the
10
+ * OpenAI endpoint cannot serve). A transport error, a timeout or a 5xx says nothing and counts as
11
+ * still loading. The parsers are pure; `checkEmbeddingReadiness` does one round over the injected HTTP.
12
+ */
13
+ export const HEALTH_PATH = '/health';
14
+ export const EMBEDDINGS_PATH = '/v1/embeddings';
15
+ export const PROPS_PATH = '/props';
16
+ /** Each readiness request on its own; the startup deadline bounds the whole wait. */
17
+ export const READINESS_REQUEST_TIMEOUT_MS = 2_000;
18
+ /** The probe runs the model once: the first pass compiles kernels on some GPUs. */
19
+ export const PROBE_REQUEST_TIMEOUT_MS = 60_000;
20
+ const isRecord = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
21
+ function parseJson(text) {
22
+ try {
23
+ return JSON.parse(text);
24
+ }
25
+ catch {
26
+ return undefined;
27
+ }
28
+ }
29
+ /** The length of the first vector of an OpenAI embeddings answer; `undefined` when there is none. */
30
+ export function dimsOf(body) {
31
+ const list = isRecord(body) ? body['data'] : undefined;
32
+ const first = Array.isArray(list) && isRecord(list[0]) ? list[0]['embedding'] : undefined;
33
+ return Array.isArray(first) && first.length > 0 ? first.length : undefined;
34
+ }
35
+ /** What one input may hold, from `/props.modalities`; text always. */
36
+ export function modalitiesOf(props) {
37
+ const block = isRecord(props) ? props['modalities'] : undefined;
38
+ const out = ['text'];
39
+ if (!isRecord(block))
40
+ return out;
41
+ if (block['vision'] === true)
42
+ out.push('image');
43
+ if (block['audio'] === true)
44
+ out.push('audio');
45
+ if (block['video'] === true)
46
+ out.push('video');
47
+ return out;
48
+ }
49
+ /** The engine's own words from an error answer, for the details. */
50
+ function engineMessage(text) {
51
+ const body = parseJson(text);
52
+ const error = isRecord(body) ? body['error'] : undefined;
53
+ const message = isRecord(error) ? error['message'] : undefined;
54
+ return typeof message === 'string' ? message : text.slice(0, 300);
55
+ }
56
+ /** The verdict on the probe and `/props` after health. Pure. `status: 0` is a transport error. */
57
+ export function judgeEmbeddingProbe(probe, props) {
58
+ if (probe.status === 501)
59
+ return {
60
+ kind: 'unsupported',
61
+ detail: `${EMBEDDINGS_PATH} answered 501: ${engineMessage(probe.text)}`,
62
+ };
63
+ if (probe.status >= 400 && probe.status < 500)
64
+ return {
65
+ kind: 'refused',
66
+ detail: `${EMBEDDINGS_PATH} answered ${probe.status}: ${engineMessage(probe.text)}`,
67
+ };
68
+ if (probe.status !== 200)
69
+ return { kind: 'loading', detail: notAVerdict(EMBEDDINGS_PATH, probe) };
70
+ const dims = dimsOf(parseJson(probe.text));
71
+ if (dims === undefined)
72
+ return { kind: 'refused', detail: `${EMBEDDINGS_PATH} answered 200 without a vector` };
73
+ if (props.status !== 200)
74
+ return { kind: 'loading', detail: notAVerdict(PROPS_PATH, props) };
75
+ const body = parseJson(props.text);
76
+ if (body === undefined)
77
+ return { kind: 'loading', detail: notAVerdict(PROPS_PATH, props) };
78
+ return { kind: 'ready', dims, modalities: modalitiesOf(body) };
79
+ }
80
+ /** Why an answer is not a verdict, for the timeout's details. */
81
+ function notAVerdict(path, answer) {
82
+ if (answer.status === 0)
83
+ return `${path}: ${answer.text}`;
84
+ if (answer.status !== 200)
85
+ return `${path} answered ${answer.status}`;
86
+ return `${path} answered 200 with a body that is not JSON`;
87
+ }
88
+ /**
89
+ * One round of the chain against `baseUrl`. A transport error or a request timeout is "still
90
+ * loading": the port may not be bound yet, or the engine is too busy loading to answer in time.
91
+ */
92
+ export async function checkEmbeddingReadiness(http, baseUrl, apiKey, modelId, timeoutMs = READINESS_REQUEST_TIMEOUT_MS, probeTimeoutMs = PROBE_REQUEST_TIMEOUT_MS) {
93
+ const call = (path, method, body, timeout) => http
94
+ .request(`${baseUrl}${path}`, {
95
+ method,
96
+ apiKey,
97
+ timeoutMs: timeout,
98
+ ...(body !== undefined ? { body } : {}),
99
+ })
100
+ .catch((error) => ({
101
+ status: 0,
102
+ text: error instanceof Error ? error.message : String(error),
103
+ }));
104
+ const health = await call(HEALTH_PATH, 'GET', undefined, timeoutMs);
105
+ if (health.status !== 200)
106
+ return {
107
+ kind: 'loading',
108
+ detail: health.status === 0 ? health.text : `${HEALTH_PATH} answered ${health.status}`,
109
+ };
110
+ const probe = await call(EMBEDDINGS_PATH, 'POST', JSON.stringify({ input: ['ping'], model: modelId, encoding_format: 'float' }), probeTimeoutMs);
111
+ const props = probe.status === 200 ? await call(PROPS_PATH, 'GET', undefined, timeoutMs) : probe;
112
+ return judgeEmbeddingProbe(probe, props);
113
+ }
114
+ //# sourceMappingURL=readiness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readiness.js","sourceRoot":"","sources":["../../src/embedding/readiness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * What the public `/v1/embeddings` checks before it passes a body to the embedding process. Pure.
3
+ *
4
+ * The body goes on as the client sent it; these checks only refuse:
5
+ * - media by reference: llama-server fetches an `http(s)` URL itself (and a `file://` one with
6
+ * `--media-path`), so an API open to the LAN would fetch whatever a client names. Only inline media
7
+ * (`data:` URLs, bare base64) is passed;
8
+ * - inline media the engine would fail to read for its form alone: no data, a `data:` URL it does not
9
+ * parse, a placeholder, base64 it stops reading early (its decoder ends at the first character outside
10
+ * the standard alphabet, so a line break or URL-safe base64 leaves a truncated file). The engine
11
+ * answers each of these with a 500; a client error is a 400 that names the field;
12
+ * - media the running model cannot read: the engine answers a 500 for it, a client error is a 400
13
+ * (for video, which also needs `ffmpeg` on this computer, the message says so);
14
+ * - a content part sent as an input of its own, outside `{content: [...]}`: llama.cpp refuses it
15
+ * with a message about prompt shapes, this one names the fix;
16
+ * - a `dimensions` the model does not produce: the engine ignores the field, and a client that asked
17
+ * for 256 numbers would store 768 without knowing (the model's shorter Matryoshka lengths are the
18
+ * client's to cut, as the app's catalog says).
19
+ *
20
+ * Bytes that pass all of this and still are no image, audio or video the engine decodes come back
21
+ * from it as a 500; `undecodableMediaVerdict` turns that answer into the same kind of 400.
22
+ */
23
+ import type { EmbeddingModality } from '../contracts/index.js';
24
+ export type EmbeddingRequestVerdict = {
25
+ ok: true;
26
+ } | {
27
+ ok: false;
28
+ message: string;
29
+ param?: string;
30
+ };
31
+ /** A reference rather than inline bytes: anything with a scheme other than `data:`. */
32
+ export declare function isMediaReference(value: string): boolean;
33
+ /** The verdict on a parsed request body for a running model of `dims` that reads `modalities`. */
34
+ export declare function checkEmbeddingRequest(body: unknown, modalities: readonly EmbeddingModality[], dims: number | null): EmbeddingRequestVerdict;
35
+ /**
36
+ * The client error for the engine's 500 about media it could not decode, naming the media fields of the
37
+ * request that carried it (the field itself when there is one); `undefined` for any other answer, and
38
+ * for a request without media, whose 500 stays the engine's.
39
+ */
40
+ export declare function undecodableMediaVerdict(status: number, engineBody: string, body: unknown, modalities: readonly EmbeddingModality[]): {
41
+ message: string;
42
+ param?: string;
43
+ } | undefined;
@@ -0,0 +1,285 @@
1
+ /**
2
+ * What the public `/v1/embeddings` checks before it passes a body to the embedding process. Pure.
3
+ *
4
+ * The body goes on as the client sent it; these checks only refuse:
5
+ * - media by reference: llama-server fetches an `http(s)` URL itself (and a `file://` one with
6
+ * `--media-path`), so an API open to the LAN would fetch whatever a client names. Only inline media
7
+ * (`data:` URLs, bare base64) is passed;
8
+ * - inline media the engine would fail to read for its form alone: no data, a `data:` URL it does not
9
+ * parse, a placeholder, base64 it stops reading early (its decoder ends at the first character outside
10
+ * the standard alphabet, so a line break or URL-safe base64 leaves a truncated file). The engine
11
+ * answers each of these with a 500; a client error is a 400 that names the field;
12
+ * - media the running model cannot read: the engine answers a 500 for it, a client error is a 400
13
+ * (for video, which also needs `ffmpeg` on this computer, the message says so);
14
+ * - a content part sent as an input of its own, outside `{content: [...]}`: llama.cpp refuses it
15
+ * with a message about prompt shapes, this one names the fix;
16
+ * - a `dimensions` the model does not produce: the engine ignores the field, and a client that asked
17
+ * for 256 numbers would store 768 without knowing (the model's shorter Matryoshka lengths are the
18
+ * client's to cut, as the app's catalog says).
19
+ *
20
+ * Bytes that pass all of this and still are no image, audio or video the engine decodes come back
21
+ * from it as a 500; `undecodableMediaVerdict` turns that answer into the same kind of 400.
22
+ */
23
+ const isRecord = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
24
+ /** The modality a content part carries, by its `type`; `undefined` for text and for types the engine judges. */
25
+ const PART_MODALITY = {
26
+ image_url: 'image',
27
+ input_audio: 'audio',
28
+ input_video: 'video',
29
+ video_url: 'video',
30
+ };
31
+ /** Every content part type the engine reads, for spotting one sent outside `content`. */
32
+ const PART_TYPES = new Set(['text', ...Object.keys(PART_MODALITY)]);
33
+ /** A `data:` URL of the right kind, for the messages. */
34
+ const DATA_URL_EXAMPLE = {
35
+ image: 'data:image/png;base64,<base64>',
36
+ audio: 'data:audio/wav;base64,<base64>',
37
+ video: 'data:video/mp4;base64,<base64>',
38
+ };
39
+ /** The `data:` URL media types llama-server reads (`handle_media`). */
40
+ const DATA_URL_TYPES = ['data:image/', 'data:audio/', 'data:video/'];
41
+ /** A reference rather than inline bytes: anything with a scheme other than `data:`. */
42
+ export function isMediaReference(value) {
43
+ const scheme = /^\s*([a-z][a-z0-9+.-]*):/i.exec(value);
44
+ return scheme !== null && scheme[1].toLowerCase() !== 'data';
45
+ }
46
+ /**
47
+ * The string llama-server reads a content part's media from: `image_url.url`; `data`, else `url`, of
48
+ * `input_audio` and the video parts. A holder that is not an object, or a field that is not a string,
49
+ * reads as `''`.
50
+ */
51
+ function partField(part, type, at) {
52
+ const holder = part[type];
53
+ const fields = isRecord(holder) ? holder : {};
54
+ const key = type === 'image_url' || (typeof fields['data'] !== 'string' && typeof fields['url'] === 'string')
55
+ ? 'url'
56
+ : 'data';
57
+ const value = fields[key];
58
+ return {
59
+ path: `${at}.${type}.${key}`,
60
+ value: typeof value === 'string' ? value : '',
61
+ modality: PART_MODALITY[type],
62
+ form: 'url',
63
+ };
64
+ }
65
+ /** The bare base64 entries of the legacy multimodal shape, `{prompt_string, multimodal_data: [base64]}`. */
66
+ function multimodalFields(item, where) {
67
+ const data = item['multimodal_data'];
68
+ if (!Array.isArray(data))
69
+ return [];
70
+ return data.flatMap((entry, k) => typeof entry === 'string'
71
+ ? [
72
+ {
73
+ path: `${where}.multimodal_data[${k}]`,
74
+ value: entry,
75
+ modality: 'image',
76
+ form: 'base64',
77
+ },
78
+ ]
79
+ : []);
80
+ }
81
+ /** Every string a part names its media by, read or not: a link in any of them is refused. */
82
+ function partReferences(part, type) {
83
+ const holder = part[type];
84
+ if (typeof holder === 'string')
85
+ return [holder];
86
+ if (!isRecord(holder))
87
+ return [];
88
+ return [holder['url'], holder['data']].filter((v) => typeof v === 'string');
89
+ }
90
+ /** Why bare base64 would not reach the engine whole, or `undefined` when it would. */
91
+ function base64Problem(data, path) {
92
+ if (data === '')
93
+ return `${path} has no data: put the file's base64 there.`;
94
+ if (/\.\.\.|…|^<.*>$/.test(data))
95
+ return `${path} holds a placeholder ("${data.length > 24 ? `${data.slice(0, 24)}…` : data}") where the file's base64 belongs: put the whole file there, base64-encoded.`;
96
+ const body = data.replace(/={1,2}$/, '');
97
+ const bad = /[^A-Za-z0-9+/]/.exec(body);
98
+ if (bad) {
99
+ const at = `character ${bad.index + 1} of its base64`;
100
+ if (/\s/.test(bad[0]))
101
+ return `${path} has a line break or space at ${at}, where the engine stops reading: send the base64 on one line.`;
102
+ if (bad[0] === '-' || bad[0] === '_')
103
+ return `${path} is URL-safe base64 ('${bad[0]}' at ${at}): send standard base64, with + and /.`;
104
+ return `${path} is not base64: '${bad[0]}' at ${at}. Send the file's bytes base64-encoded (A–Z, a–z, 0–9, +, /).`;
105
+ }
106
+ if (body.length % 4 === 1)
107
+ return `${path} is cut short: its base64 ends partway through. Send the whole file.`;
108
+ return undefined;
109
+ }
110
+ /** Why `field` would fail in the engine for its form alone, or `undefined`. */
111
+ function fieldProblem(field) {
112
+ const { path, value, modality, form } = field;
113
+ if (form === 'base64') {
114
+ if (/^\s*data:/i.test(value))
115
+ return `${path} takes bare base64, without the data: header.`;
116
+ return base64Problem(value, path);
117
+ }
118
+ if (value === '')
119
+ return `${path} is missing: send the file inline, as a data: URL (${DATA_URL_EXAMPLE[modality]}) or bare base64.`;
120
+ if (!value.startsWith('data:')) {
121
+ if (/^\s*data:/i.test(value))
122
+ return `${path} must start with "data:" in lower case, with nothing before it.`;
123
+ return base64Problem(value, path);
124
+ }
125
+ const parts = value.split(',');
126
+ if (parts.length !== 2)
127
+ return `${path} must have one comma, between the header and the base64: ${DATA_URL_EXAMPLE[modality]}.`;
128
+ const [header, data] = parts;
129
+ if (!DATA_URL_TYPES.some((prefix) => header.startsWith(prefix)))
130
+ return `${path} is a "${header.slice(0, 40)}" URL; the engine reads image/, audio/ and video/ ones: ${DATA_URL_EXAMPLE[modality]}.`;
131
+ if (!header.endsWith('base64'))
132
+ return `${path} must be base64-encoded: ${DATA_URL_EXAMPLE[modality]}.`;
133
+ return base64Problem(data, path);
134
+ }
135
+ /** The items of `input`, each with where it is. */
136
+ function inputItems(input) {
137
+ return Array.isArray(input)
138
+ ? input.map((item, i) => ({ item, where: `input[${i}]` }))
139
+ : [{ item: input, where: 'input' }];
140
+ }
141
+ /** Every media string of `body` the engine would read, in order. */
142
+ function mediaFields(body) {
143
+ if (!isRecord(body))
144
+ return [];
145
+ const fields = [];
146
+ for (const { item, where } of inputItems(body['input'])) {
147
+ if (!isRecord(item))
148
+ continue;
149
+ const content = item['content'];
150
+ if (Array.isArray(content))
151
+ for (const [i, part] of content.entries()) {
152
+ if (!isRecord(part) || typeof part['type'] !== 'string')
153
+ continue;
154
+ if (PART_MODALITY[part['type']] === undefined)
155
+ continue;
156
+ fields.push(partField(part, part['type'], `${where}.content[${i}]`));
157
+ }
158
+ fields.push(...multimodalFields(item, where));
159
+ }
160
+ return fields;
161
+ }
162
+ function checkParts(parts, where, modalities) {
163
+ for (const [i, part] of parts.entries()) {
164
+ if (!isRecord(part) || typeof part['type'] !== 'string')
165
+ continue;
166
+ const type = part['type'];
167
+ const modality = PART_MODALITY[type];
168
+ if (modality === undefined)
169
+ continue;
170
+ const at = `${where}.content[${i}]`;
171
+ if (!modalities.includes(modality))
172
+ return {
173
+ ok: false,
174
+ message: `The running embedding model does not read ${modality === 'image' ? 'images' : modality} (${at}.type is "${type}").` +
175
+ (modality === 'video' ? ' Video input also needs ffmpeg installed on this computer.' : ''),
176
+ param: at,
177
+ };
178
+ if (partReferences(part, type).some(isMediaReference))
179
+ return {
180
+ ok: false,
181
+ message: `Media must be sent inline, as a data: URL or base64; links are not fetched (${at}).`,
182
+ param: at,
183
+ };
184
+ const field = partField(part, type, at);
185
+ const problem = fieldProblem(field);
186
+ if (problem !== undefined)
187
+ return { ok: false, message: problem, param: field.path };
188
+ }
189
+ return { ok: true };
190
+ }
191
+ /** The verdict on a parsed request body for a running model of `dims` that reads `modalities`. */
192
+ export function checkEmbeddingRequest(body, modalities, dims) {
193
+ if (!isRecord(body))
194
+ return { ok: false, message: 'The request body must be a JSON object.' };
195
+ const input = body['input'];
196
+ if (input === undefined)
197
+ return { ok: false, message: "The request needs an 'input'.", param: 'input' };
198
+ const dimensions = body['dimensions'];
199
+ if (dimensions !== undefined && dimensions !== null && dims !== null && dimensions !== dims)
200
+ return {
201
+ ok: false,
202
+ message: `The model returns ${dims}-dimension vectors and this server does not shorten them: drop 'dimensions' or send ${dims}. ` +
203
+ 'For a shorter length the model was trained for, keep the first values of each vector and L2-normalize them in your application.',
204
+ param: 'dimensions',
205
+ };
206
+ for (const { item, where } of inputItems(input)) {
207
+ if (!isRecord(item))
208
+ continue;
209
+ if (typeof item['type'] === 'string' && item['content'] === undefined && PART_TYPES.has(item['type']))
210
+ return {
211
+ ok: false,
212
+ message: `${where} is a content part on its own; wrap it in an input item: {"content": [${JSON.stringify({ type: item['type'] })}]}.`,
213
+ param: where,
214
+ };
215
+ const content = item['content'];
216
+ if (Array.isArray(content)) {
217
+ const verdict = checkParts(content, where, modalities);
218
+ if (!verdict.ok)
219
+ return verdict;
220
+ }
221
+ // The legacy multimodal shape: bare base64 only, never a link.
222
+ const data = item['multimodal_data'];
223
+ if (Array.isArray(data) && data.some((d) => typeof d === 'string' && isMediaReference(d)))
224
+ return {
225
+ ok: false,
226
+ message: `Media must be sent inline, as base64; links are not fetched (${where}.multimodal_data).`,
227
+ param: `${where}.multimodal_data`,
228
+ };
229
+ for (const field of multimodalFields(item, where)) {
230
+ const problem = fieldProblem(field);
231
+ if (problem !== undefined)
232
+ return { ok: false, message: problem, param: field.path };
233
+ }
234
+ }
235
+ return { ok: true };
236
+ }
237
+ /**
238
+ * What llama-server says, with a 500, for media it could not decode (`process_mtmd_prompt`) and for
239
+ * bare base64 that decodes to nothing (`handle_media`).
240
+ */
241
+ const UNDECODABLE_MEDIA = ['failed to load image or audio file', 'invalid base64 value'];
242
+ /** The formats the engine decodes, for the modalities the model reads. */
243
+ function readableFormats(modalities) {
244
+ const formats = [];
245
+ if (modalities.includes('image'))
246
+ formats.push('PNG, JPEG, GIF or BMP images (WebP needs ffmpeg on this computer)');
247
+ if (modalities.includes('audio'))
248
+ formats.push('WAV, MP3 or FLAC audio');
249
+ if (modalities.includes('video'))
250
+ formats.push('video ffmpeg reads');
251
+ return formats.join('; ');
252
+ }
253
+ /**
254
+ * The client error for the engine's 500 about media it could not decode, naming the media fields of the
255
+ * request that carried it (the field itself when there is one); `undefined` for any other answer, and
256
+ * for a request without media, whose 500 stays the engine's.
257
+ */
258
+ export function undecodableMediaVerdict(status, engineBody, body, modalities) {
259
+ if (status !== 500)
260
+ return undefined;
261
+ let message;
262
+ try {
263
+ const parsed = JSON.parse(engineBody);
264
+ message = isRecord(parsed) && isRecord(parsed['error']) ? parsed['error']['message'] : undefined;
265
+ }
266
+ catch {
267
+ return undefined;
268
+ }
269
+ if (typeof message !== 'string')
270
+ return undefined;
271
+ const said = message.toLowerCase();
272
+ if (!UNDECODABLE_MEDIA.some((words) => said.includes(words)))
273
+ return undefined;
274
+ const paths = mediaFields(body).map((field) => field.path);
275
+ if (paths.length === 0)
276
+ return undefined;
277
+ const where = paths.length === 1 ? paths[0] : `One of ${paths.join(', ')}`;
278
+ const formats = readableFormats(modalities);
279
+ return {
280
+ message: `${where} could not be decoded as an image, audio or video file (the engine said: "${message}"). ` +
281
+ `Send the file's own bytes, base64-encoded${formats ? `: ${formats}` : ''}.`,
282
+ ...(paths.length === 1 ? { param: paths[0] } : {}),
283
+ };
284
+ }
285
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/embedding/request.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,152 @@
1
+ /**
2
+ * The embedding module's surface: one embedding `llama-server` at most (stock llama.cpp), its
3
+ * lifecycle, and the target the public `/v1/embeddings` forwards to.
4
+ *
5
+ * Outside the sessions registry on purpose, like the decision model
6
+ * (ADR 2026-10-07-embedding-models-are-their-own-core-module): a chat model switch unloads every
7
+ * other session of its provider, and the model the API serves must stay up across it. So nothing here
8
+ * is a `LocalRuntime`; the module borrows only process mechanics.
9
+ *
10
+ * What it guarantees (the decision module's rules, minus the fail-open calls):
11
+ * - start and stop are serialized, and a stop aborts a start still waiting for readiness;
12
+ * - a process that dies after it was ready is restarted with backoff, at most `MAX_RESTARTS` times in
13
+ * a row; a start that fails is not retried until a setting changes, `load` is asked for, or a
14
+ * llama.cpp build is installed (`onEnginesChanged`); an `unsupported` module is also retried in
15
+ * the background by a request, at most once per `UNSUPPORTED_RETRY_MS`, quietly;
16
+ * - a request to a module that is enabled but idle starts it and waits for it (`acquire`);
17
+ * - every state change is an `embedding:state` event, and a failure nobody awaits an `embedding:error`.
18
+ */
19
+ import type { CoreEvents, EmbeddingEmbedResponse, EmbeddingEngineInfo, EmbeddingSettings, EmbeddingState, EmbeddingStatus } from '../contracts/index.js';
20
+ import type { DecisionHttp } from '../decision/index.js';
21
+ import type { EmbeddingBackend } from '../server/index.js';
22
+ import type { EmbeddingModelFacts } from './model-facts.js';
23
+ import type { EmbeddingProcessHandle, EmbeddingServerSpec } from './process.js';
24
+ /** How often a request may retry an `unsupported` module in the background. */
25
+ export declare const UNSUPPORTED_RETRY_MS: number;
26
+ /** The control route's own request budget, once the model runs. */
27
+ export declare const EMBED_REQUEST_TIMEOUT_MS = 120000;
28
+ export type EmbeddingEmitter = <K extends 'embedding:state' | 'embedding:error'>(name: K, payload: CoreEvents[K]) => void;
29
+ export type EmbeddingLogger = (level: 'info' | 'warn' | 'debug', msg: string) => void;
30
+ export interface EmbeddingServiceDeps {
31
+ /** The core's data folder: relative model paths are resolved against it. */
32
+ dataFolder: string;
33
+ readSettings: () => EmbeddingSettings;
34
+ /** A checked write of the `embedding` settings section (`SettingsStore.updateEmbedding`). */
35
+ writeSettings: (patch: Record<string, unknown>) => Promise<unknown>;
36
+ /** The engine gate (`EmbeddingEngineResolver.resolve`). */
37
+ resolveEngine: (enginePath: string, minBuild: number) => Promise<EmbeddingEngineInfo>;
38
+ /** A resolved build that readiness refused: skipped from now on (`EmbeddingEngineResolver.reject`). */
39
+ rejectEngine?: (exe: string, why: string) => Promise<void>;
40
+ /** Try every refused build again (`EmbeddingEngineResolver.forgetRejected`). */
41
+ forgetRejectedEngines?: () => void;
42
+ /** Start one process and wait for readiness (`spawnEmbeddingServer` plus the journal). */
43
+ spawn: (spec: EmbeddingServerSpec, signal: AbortSignal) => Promise<EmbeddingProcessHandle>;
44
+ http: DecisionHttp;
45
+ emit: EmbeddingEmitter;
46
+ log: EmbeddingLogger;
47
+ now?: () => number;
48
+ /** Whether a file exists. */
49
+ fileExists?: (path: string) => Promise<boolean>;
50
+ /** What the GGUF header says (`readEmbeddingModelFacts`); `undefined` when it cannot be read. */
51
+ readModelFacts?: (path: string) => Promise<EmbeddingModelFacts | undefined>;
52
+ /** Run `fn` after `ms`; returns the cancel. The default timer never keeps the process alive. */
53
+ schedule?: (fn: () => void, ms: number) => () => void;
54
+ }
55
+ /** The settings a running process was started with; any change means a restart. */
56
+ export declare function embeddingLaunchKey(settings: EmbeddingSettings): string;
57
+ /** The name API clients pass as `model`: the setting, else the file name; `null` without a model. */
58
+ export declare function embeddingModelIdOf(settings: EmbeddingSettings): string | null;
59
+ /** Why a request cannot reach the model in `state`, for the public route's 503. */
60
+ export declare function embeddingRefusal(state: EmbeddingState, configured: boolean): string;
61
+ export declare class EmbeddingService {
62
+ private readonly deps;
63
+ private state;
64
+ private handle;
65
+ private runningKey;
66
+ /** `embeddingLaunchKey` of the start in flight, from the moment it read the settings. */
67
+ private loadingKey;
68
+ private readySince;
69
+ /** `embeddingLaunchKey` of the last start: a start with another one tries the refused builds again. */
70
+ private lastLaunchKey;
71
+ /** When a request last retried an `unsupported` module; a quiet retry that changes nothing emits nothing. */
72
+ private lastQuietRetry;
73
+ private loading;
74
+ private loadAbort;
75
+ private cancelRestart;
76
+ private cancelIdle;
77
+ private inFlight;
78
+ private stopping;
79
+ /** Called on every state change and when a start settles: the public route's waits. */
80
+ private readonly waiters;
81
+ /** Start and stop, one at a time. */
82
+ private chain;
83
+ private readonly now;
84
+ private readonly schedule;
85
+ constructor(deps: EmbeddingServiceDeps);
86
+ /** Called once by the owner: an enabled and configured module starts in the background. */
87
+ start(): void;
88
+ getStatus(): EmbeddingStatus;
89
+ getConfig(): EmbeddingSettings;
90
+ /** Write settings, then bring the process in line with them. */
91
+ configure(patch: Record<string, unknown>): Promise<EmbeddingStatus>;
92
+ /**
93
+ * After a settings change: turned off → stop; started (or starting) with other launch settings →
94
+ * restart; enabled and not running → start in the background. The crash count starts over. A change
95
+ * that does not touch the launch (`idle_unload_secs`, `startup_timeout_secs`) leaves a running
96
+ * process alone; `idle_unload_secs` takes effect at once.
97
+ */
98
+ reconcile(): Promise<EmbeddingStatus>;
99
+ /**
100
+ * A llama.cpp build was installed: a module that is `unsupported` or `failed` tries again, since the
101
+ * new build may be the first new enough for the model. Installs of other providers are ignored.
102
+ */
103
+ onEnginesChanged(provider?: string): Promise<EmbeddingStatus>;
104
+ /** Start now (or join the start in flight) and answer once it is ready; a failure is thrown. */
105
+ load(): Promise<EmbeddingStatus>;
106
+ /** Stop the process (or the start in flight). The module stays enabled: the next request starts it again. */
107
+ unload(): Promise<EmbeddingStatus>;
108
+ /**
109
+ * One `/v1/embeddings` request for the app (`POST /atomic/v1/embedding/embed`): the module is
110
+ * started when it is enabled and idle, the body is sent with the running model's name, and the
111
+ * engine's answer comes back as it is. `EMBEDDING_UNAVAILABLE` when the model cannot be reached.
112
+ */
113
+ embed(body: Record<string, unknown>): Promise<EmbeddingEmbedResponse>;
114
+ /** What the public server forwards `/embeddings` to. */
115
+ publicBackend(): EmbeddingBackend;
116
+ /** Stop everything for good: timers, a start in flight, the process. No events after this. */
117
+ shutdown(): Promise<void>;
118
+ private setState;
119
+ private notifyWaiters;
120
+ private serial;
121
+ /** `quietCode`: a background retry of a state the app already heard about (see `startProcess`). */
122
+ private startInBackground;
123
+ /** An `unsupported` module whose state is older than `UNSUPPORTED_RETRY_MS` tries again, quietly. */
124
+ private retryUnsupported;
125
+ private reportUnawaited;
126
+ private ensureLoaded;
127
+ /**
128
+ * `quiet`: a background retry of an `unsupported` module. It does not announce `starting` and, when
129
+ * it fails the same way again, leaves the state as it was without an event.
130
+ */
131
+ private startProcess;
132
+ /**
133
+ * Resolve an engine and spawn it; a build that readiness refuses as unsupported or that dies while
134
+ * loading (a ROCm build without kernels for the card) is handed to `rejectEngine` and the next one is
135
+ * tried (`spawnOnFirstGoodEngine`). An explicit `engine_path` has nothing to fall back to.
136
+ */
137
+ private spawnOnFirstGoodEngine;
138
+ private onExit;
139
+ private onRestartFailed;
140
+ private scheduleRestart;
141
+ private stopProcess;
142
+ /** (Re)arm the idle unload; a request in flight pushes it back. */
143
+ private armIdle;
144
+ /**
145
+ * The public route's target. An enabled, configured module that is idle is started (a failure is an
146
+ * `embedding:error`); one that is starting or restarting is waited on, up to `waitMs`, until it is
147
+ * ready or lands in a state no start will leave, or the client leaves (`signal`).
148
+ */
149
+ private acquire;
150
+ /** The handle once there is one; `undefined` on timeout, on `signal`, or once no start is on its way. */
151
+ private waitForHandle;
152
+ }