@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,711 @@
1
+ /**
2
+ * The decision module's surface: one decision `llama-server` at most (the fork's `--decision`, or
3
+ * stock llama.cpp for an upstream decision GGUF), its lifecycle, and the calls the rest of the core
4
+ * makes to it.
5
+ *
6
+ * Outside the sessions registry on purpose (ADR 2026-09-30-the-decision-model-is-its-own-core-module):
7
+ * a chat model switch unloads every other local session and the chat auto-unload policy would treat
8
+ * the decision model as one more text model, while the router must stay up across both. So nothing
9
+ * here is a `LocalRuntime`; the module borrows only process mechanics.
10
+ *
11
+ * What it guarantees:
12
+ * - `scoreCandidates` and `decide` never throw and never wait longer than their budget (2 s by
13
+ * default): every failure is `{unavailable: true, reason}`, and the caller keeps its default policy;
14
+ * - start and stop are serialized, and a stop aborts a start still waiting for readiness;
15
+ * - a process that dies after it was ready is restarted with backoff, at most `MAX_RESTARTS` times in
16
+ * a row; a start that fails is not retried until a setting changes, `load` is asked for, or a
17
+ * TurboQuant or llama.cpp build is installed (`onEnginesChanged`); an `unsupported` module is also retried in
18
+ * the background by a call, at most once per `UNSUPPORTED_RETRY_MS`, quietly (no `starting` on the
19
+ * way, and no event at all when it lands where it was);
20
+ * - the engine builds readiness refused are tried again after each of those three triggers (a build
21
+ * installed, `load`, a launch setting changed), but not by a background retry;
22
+ * - every state change is a `decision:state` event, and a failure nobody awaits a `decision:error`.
23
+ */
24
+ import { readdir, rm, stat } from 'node:fs/promises';
25
+ import { basename, dirname, join, resolve } from 'node:path';
26
+ import { AtomicCoreError } from '../contracts/index.js';
27
+ import { inspectDecisionModelPath } from '../models/index.js';
28
+ import { DECISION_CONVERT_CACHE_DIR, decisionThreads, resolveDataPath } from './args.js';
29
+ import { spawnOnFirstGoodEngine } from './engine-fallback.js';
30
+ import { readDecisionModelFacts, upstreamCtxSize, WHOLE_PROMPT_DECISION_TYPES } from './model-facts.js';
31
+ import { upstreamMinBuild } from './upstream-version.js';
32
+ import { nextRestartCount, restartDelayMs, shouldGiveUp } from './backoff.js';
33
+ import { DecisionAbortedError, DecisionTimeoutError } from './http.js';
34
+ import { isRouterScoreBody, isSystemoneBody, NOT_CALIBRATED_MESSAGE, outcomeFromAnswer, refusalForState, scoresMatchCandidates, unavailable, } from './outcome.js';
35
+ import { DECISION_TERMINATE_GRACE_MS } from './process.js';
36
+ export const ROUTER_SCORE_PATH = '/v1/router/score';
37
+ export const SYSTEMONE_PATH = '/v1/systemone';
38
+ /**
39
+ * How often a call may retry an `unsupported` module in the background. The state only clears when
40
+ * a build that serves `--decision` appears on disk; an install through this core says so at once
41
+ * (`onEnginesChanged`), this catches one made by anything else. Each retry costs a directory scan
42
+ * and, for a pack not probed yet, one `-h`.
43
+ */
44
+ export const UNSUPPORTED_RETRY_MS = 5 * 60_000;
45
+ const defaultSchedule = (fn, ms) => {
46
+ const timer = setTimeout(fn, ms);
47
+ timer.unref();
48
+ return () => clearTimeout(timer);
49
+ };
50
+ const defaultFileExists = (path) => stat(path).then((s) => s.isFile(), () => false);
51
+ const defaultPruneConvertCache = async (cacheDir, keep) => {
52
+ const entries = await readdir(cacheDir).catch(() => []);
53
+ for (const entry of entries)
54
+ if (entry !== keep)
55
+ await rm(join(cacheDir, entry), { recursive: true, force: true });
56
+ };
57
+ /**
58
+ * The key folder of the conversion cache a process loaded from (`<cache>/<key>/<name>.gguf`), when it
59
+ * is in `cacheDir`; `undefined` for a GGUF, or a cache somewhere else.
60
+ */
61
+ function cacheKeyInUse(props, cacheDir) {
62
+ if (props.source !== 'checkpoint-dir' || typeof props.cache_path !== 'string')
63
+ return undefined;
64
+ const keyDir = dirname(props.cache_path);
65
+ return resolve(dirname(keyDir)) === resolve(cacheDir) ? basename(keyDir) : undefined;
66
+ }
67
+ function errorOf(error) {
68
+ if (error instanceof AtomicCoreError)
69
+ return error.details === undefined
70
+ ? { code: error.code, message: error.message }
71
+ : { code: error.code, message: error.message, details: error.details };
72
+ return { code: 'INTERNAL_ERROR', message: error instanceof Error ? error.message : String(error) };
73
+ }
74
+ function sameError(a, b) {
75
+ return a !== null && a.code === b.code && a.message === b.message && a.details === b.details;
76
+ }
77
+ function describeExit(exit) {
78
+ if (exit.code !== null)
79
+ return `code ${exit.code}`;
80
+ if (exit.signal !== null)
81
+ return `signal ${exit.signal}`;
82
+ return 'an unknown status';
83
+ }
84
+ /** The settings a running process was started with; any change means a restart. */
85
+ function launchKey(settings) {
86
+ const { model_path, mmproj_path, ctx_size, model_id, spec_path, threads, allow_uncalibrated, engine_path, convert_type, } = settings;
87
+ return JSON.stringify([
88
+ model_path,
89
+ mmproj_path,
90
+ ctx_size,
91
+ model_id,
92
+ spec_path,
93
+ threads,
94
+ allow_uncalibrated,
95
+ engine_path,
96
+ convert_type,
97
+ ]);
98
+ }
99
+ /** States a public request keeps waiting through: a start is on its way. */
100
+ const WAITABLE_STATES = new Set(['idle', 'starting', 'restarting']);
101
+ export class DecisionService {
102
+ deps;
103
+ state;
104
+ handle;
105
+ runningKey;
106
+ /** `launchKey` of the start in flight, from the moment it read the settings. */
107
+ loadingKey;
108
+ readySince = 0;
109
+ /** `launchKey` of the last start: a start with another one tries the refused builds again. */
110
+ lastLaunchKey;
111
+ /** When a call last retried an `unsupported` module; a quiet retry that changes nothing emits nothing. */
112
+ lastQuietRetry = Number.NEGATIVE_INFINITY;
113
+ /** The provider the configured model last needed: an install of another one cannot help it. */
114
+ neededProvider;
115
+ loading;
116
+ loadAbort;
117
+ cancelRestart;
118
+ cancelIdle;
119
+ inFlight = 0;
120
+ stopping = false;
121
+ /** Called on every state change and when a start settles: the public route's waits. */
122
+ waiters = new Set();
123
+ /** Start and stop, one at a time. */
124
+ chain = Promise.resolve();
125
+ now;
126
+ schedule;
127
+ convertCacheDir;
128
+ constructor(deps) {
129
+ this.deps = deps;
130
+ this.now = deps.now ?? Date.now;
131
+ this.schedule = deps.schedule ?? defaultSchedule;
132
+ this.convertCacheDir = deps.convertCacheDir ?? join(deps.dataFolder, DECISION_CONVERT_CACHE_DIR);
133
+ this.state = {
134
+ state: deps.readSettings().enabled ? 'idle' : 'disabled',
135
+ engine: null,
136
+ pid: null,
137
+ port: null,
138
+ props: null,
139
+ capabilities: [],
140
+ restarts: 0,
141
+ error: null,
142
+ since: this.now(),
143
+ };
144
+ }
145
+ /** Called once by the owner: an enabled and configured module starts in the background. */
146
+ start() {
147
+ const settings = this.deps.readSettings();
148
+ if (settings.enabled && settings.model_path !== '')
149
+ this.startInBackground('load');
150
+ }
151
+ getStatus() {
152
+ const settings = this.deps.readSettings();
153
+ return {
154
+ ...this.state,
155
+ capabilities: [...this.state.capabilities],
156
+ enabled: settings.enabled,
157
+ model_path: resolveDataPath(this.deps.dataFolder, settings.model_path) ?? null,
158
+ };
159
+ }
160
+ getConfig() {
161
+ return this.deps.readSettings();
162
+ }
163
+ /** Write settings, then bring the process in line with them. */
164
+ async configure(patch) {
165
+ await this.deps.writeSettings(patch);
166
+ return this.reconcile();
167
+ }
168
+ /**
169
+ * After a settings change: turned off → stop; started (or starting) with other launch settings →
170
+ * restart; enabled and not running (idle, failed, unsupported) → start in the background. The crash
171
+ * count starts over. A change that does not touch the launch (`timeout_ms`, `idle_unload_secs`, …)
172
+ * leaves a running process or a start in flight alone; `idle_unload_secs` takes effect at once.
173
+ */
174
+ async reconcile() {
175
+ const settings = this.deps.readSettings();
176
+ if (!settings.enabled) {
177
+ await this.unload();
178
+ return this.getStatus();
179
+ }
180
+ const running = this.handle !== undefined || this.loading !== undefined;
181
+ // No key yet means a start queued behind another operation: it reads the settings when it runs.
182
+ const key = this.runningKey ?? this.loadingKey;
183
+ if (running && key !== undefined && key !== launchKey(settings))
184
+ await this.unload();
185
+ if (this.handle === undefined && this.loading === undefined) {
186
+ this.cancelRestart?.();
187
+ this.cancelRestart = undefined;
188
+ if (this.state.restarts !== 0)
189
+ this.setState({ restarts: 0 });
190
+ if (settings.model_path !== '')
191
+ this.startInBackground('load');
192
+ else {
193
+ this.setState({ state: 'idle', error: null });
194
+ // The model was removed: its conversion is of no use any more.
195
+ this.pruneConvertCache(undefined);
196
+ }
197
+ }
198
+ else if (this.handle !== undefined) {
199
+ this.armIdle();
200
+ }
201
+ return this.getStatus();
202
+ }
203
+ /**
204
+ * A TurboQuant or llama.cpp build was installed: a module that is `unsupported` or `failed` tries
205
+ * again, since the new build may be the first that serves the model (`--decision`, or an upstream
206
+ * build at the model's floor). Any other state is left as it is, and so is everything when
207
+ * `provider` is not the one the model needs (known once a start has read the model).
208
+ */
209
+ async onEnginesChanged(provider) {
210
+ const settings = this.deps.readSettings();
211
+ if (this.stopping || !settings.enabled)
212
+ return this.getStatus();
213
+ if (provider !== undefined && this.neededProvider !== undefined && provider !== this.neededProvider)
214
+ return this.getStatus();
215
+ // The new build may replace one readiness refused, or a refusal may no longer hold.
216
+ this.deps.forgetRejectedEngines?.();
217
+ if (this.state.state !== 'unsupported' && this.state.state !== 'failed')
218
+ return this.getStatus();
219
+ this.deps.log('info', 'an engine build was installed; trying the decision model again');
220
+ return this.reconcile();
221
+ }
222
+ /**
223
+ * Start now (or join the start in flight) and answer once it is ready; a failure is thrown. A new
224
+ * start tries again every engine build readiness refused before: the user asked for it.
225
+ */
226
+ async load() {
227
+ if (!this.handle && !this.loading)
228
+ this.deps.forgetRejectedEngines?.();
229
+ if (this.state.state === 'failed' || this.state.state === 'restarting') {
230
+ this.cancelRestart?.();
231
+ this.cancelRestart = undefined;
232
+ if (this.state.restarts !== 0)
233
+ this.setState({ restarts: 0 });
234
+ }
235
+ await this.ensureLoaded('load');
236
+ return this.getStatus();
237
+ }
238
+ /** Stop the process (or the start in flight). The module stays enabled: the next call starts it again. */
239
+ async unload() {
240
+ this.cancelRestart?.();
241
+ this.cancelRestart = undefined;
242
+ this.loadAbort?.abort();
243
+ await this.serial(async () => {
244
+ await this.stopProcess();
245
+ const enabled = this.deps.readSettings().enabled;
246
+ this.setState({
247
+ state: enabled ? 'idle' : 'disabled',
248
+ pid: null,
249
+ port: null,
250
+ props: null,
251
+ capabilities: [],
252
+ error: null,
253
+ });
254
+ });
255
+ return this.getStatus();
256
+ }
257
+ /**
258
+ * `POST /v1/router/score`: independent, calibrated `p_success` per candidate. Fail-open: never
259
+ * throws, never waits past the budget.
260
+ */
261
+ scoreCandidates(task, criterion, candidates, options = {}) {
262
+ const body = {
263
+ task,
264
+ criterion,
265
+ candidates,
266
+ ...(options.truncation ? { truncation: options.truncation } : {}),
267
+ };
268
+ const ids = candidates.map((c) => c.id);
269
+ const check = (answer) => isRouterScoreBody(answer) && scoresMatchCandidates(answer, ids);
270
+ return this.call(ROUTER_SCORE_PATH, body, options, check);
271
+ }
272
+ /** `POST /v1/systemone`: TypeSafe-style questions about `state`. Fail-open like `scoreCandidates`. */
273
+ decide(state, questions, options = {}) {
274
+ const body = { state, questions, ...(options.truncation ? { truncation: options.truncation } : {}) };
275
+ return this.call(SYSTEMONE_PATH, body, options, isSystemoneBody);
276
+ }
277
+ /** What the public server forwards `/systemone` and `/router/score` to. */
278
+ publicBackend() {
279
+ return {
280
+ acquire: (waitMs, signal) => this.acquire(waitMs, signal),
281
+ modelId: () => this.deps.readSettings().model_id || null,
282
+ };
283
+ }
284
+ /** Stop everything for good: timers, a start in flight, the process. No events after this. */
285
+ async shutdown() {
286
+ this.stopping = true;
287
+ this.cancelRestart?.();
288
+ this.cancelIdle?.();
289
+ this.loadAbort?.abort();
290
+ this.notifyWaiters();
291
+ await this.chain.catch(() => { });
292
+ await this.loading?.catch(() => { });
293
+ await this.stopProcess();
294
+ }
295
+ // --- internals -------------------------------------------------------------------------------
296
+ setState(patch) {
297
+ this.state = { ...this.state, ...patch, since: patch.state !== undefined ? this.now() : this.state.since };
298
+ if (!this.stopping)
299
+ this.deps.emit('decision:state', this.getStatus());
300
+ this.notifyWaiters();
301
+ }
302
+ notifyWaiters() {
303
+ for (const waiter of [...this.waiters])
304
+ waiter();
305
+ }
306
+ serial(op) {
307
+ const run = this.chain.then(op, op);
308
+ this.chain = run.then(() => undefined, () => undefined);
309
+ return run;
310
+ }
311
+ /**
312
+ * `quietCode`: a background retry of a state the app already heard about. A failure with this code
313
+ * is not reported again, and the start shows no `starting` on its way (see `startProcess`).
314
+ */
315
+ startInBackground(mode, quietCode) {
316
+ // A start already on its way has its own reporter; joining it would report its failure twice.
317
+ if (this.handle || this.loading)
318
+ return;
319
+ this.ensureLoaded(mode, quietCode !== undefined).catch((error) => {
320
+ if (mode === 'load' && errorOf(error).code !== quietCode)
321
+ this.reportUnawaited(error);
322
+ });
323
+ }
324
+ /** An `unsupported` module whose state is older than `UNSUPPORTED_RETRY_MS` tries again, quietly. */
325
+ retryUnsupported(settings) {
326
+ if (this.state.state !== 'unsupported' || !settings.enabled || settings.model_path === '')
327
+ return;
328
+ if (this.handle || this.loading)
329
+ return;
330
+ // A quiet retry that ends where it started emits nothing, so `since` does not move: keep its own clock.
331
+ if (this.now() - Math.max(this.state.since, this.lastQuietRetry) < UNSUPPORTED_RETRY_MS)
332
+ return;
333
+ this.lastQuietRetry = this.now();
334
+ this.startInBackground('load', 'DECISION_ENGINE_UNSUPPORTED');
335
+ }
336
+ /** Fire and forget: a cache that cannot be cleaned costs disk space, never a start. */
337
+ pruneConvertCache(keep) {
338
+ void (this.deps.pruneConvertCache ?? defaultPruneConvertCache)(this.convertCacheDir, keep).catch((error) => this.deps.log('debug', `decision conversion cache not cleaned: ${error instanceof Error ? error.message : String(error)}`));
339
+ }
340
+ reportUnawaited(error) {
341
+ const body = errorOf(error);
342
+ // A start stopped by an unload or a shutdown is not a failure anyone needs to hear about.
343
+ if (body.code === 'DECISION_UNAVAILABLE' || this.stopping)
344
+ return;
345
+ this.deps.log('warn', `decision model: ${body.message}${body.details ? ` (${body.details})` : ''}`);
346
+ this.deps.emit('decision:error', body);
347
+ }
348
+ ensureLoaded(mode, quiet = false) {
349
+ if (this.handle)
350
+ return Promise.resolve(this.handle);
351
+ if (this.loading)
352
+ return this.loading;
353
+ const started = this.serial(() => this.startProcess(mode, quiet)).finally(() => {
354
+ if (this.loading === started)
355
+ this.loading = undefined;
356
+ this.notifyWaiters();
357
+ });
358
+ this.loading = started;
359
+ return started;
360
+ }
361
+ /**
362
+ * `quiet`: a background retry of an `unsupported` module. It does not announce `starting` (the app
363
+ * would flash a start for every retry that finds nothing new) and, when it fails the same way again,
364
+ * leaves the state as it was without an event. A retry that gets further is reported as usual.
365
+ */
366
+ async startProcess(mode, quiet = false) {
367
+ if (this.handle)
368
+ return this.handle;
369
+ if (this.stopping)
370
+ throw new AtomicCoreError('DECISION_UNAVAILABLE', 'The core is shutting down.');
371
+ const settings = this.deps.readSettings();
372
+ const abort = new AbortController();
373
+ this.loadAbort = abort;
374
+ const key = launchKey(settings);
375
+ this.loadingKey = key;
376
+ if (key !== this.lastLaunchKey) {
377
+ // A refusal may have come from the launch (the spec, the model): other settings, another try.
378
+ if (this.lastLaunchKey !== undefined)
379
+ this.deps.forgetRejectedEngines?.();
380
+ this.lastLaunchKey = key;
381
+ }
382
+ let engine = this.state.engine;
383
+ try {
384
+ if (!settings.enabled)
385
+ throw new AtomicCoreError('DECISION_NOT_CONFIGURED', 'The decision model is turned off.');
386
+ const modelPath = resolveDataPath(this.deps.dataFolder, settings.model_path);
387
+ if (modelPath === undefined)
388
+ throw new AtomicCoreError('DECISION_NOT_CONFIGURED', 'No decision model file is configured.');
389
+ const source = await (this.deps.inspectModel ?? inspectDecisionModelPath)(modelPath);
390
+ if (source.kind === 'none')
391
+ throw new AtomicCoreError('MODEL_FILE_NOT_FOUND', 'The decision model does not exist.', modelPath);
392
+ if (source.kind === 'checkpoint-dir' && source.missing.length > 0)
393
+ throw new AtomicCoreError('DECISION_CHECKPOINT_INCOMPLETE', 'The decision model folder is missing files of a laya checkpoint.', `${modelPath}: missing ${source.missing.join(', ')}`);
394
+ const checkpointDir = source.kind === 'checkpoint-dir';
395
+ // A folder always gets `-a`: the engine would otherwise answer with the folder name, which for a
396
+ // Hugging Face snapshot is a commit hash.
397
+ const modelId = settings.model_id !== '' ? settings.model_id : checkpointDir ? basename(modelPath) : '';
398
+ const exists = this.deps.fileExists ?? defaultFileExists;
399
+ const facts = checkpointDir
400
+ ? { dialect: 'turboquant' }
401
+ : await (this.deps.readModelFacts ?? readDecisionModelFacts)(modelPath);
402
+ this.neededProvider = facts.dialect === 'upstream' ? 'llamacpp-upstream' : 'llamacpp';
403
+ // The spec belongs to the fork, the projector to upstream: each is checked only where it is used.
404
+ const specPath = facts.dialect === 'turboquant' ? resolveDataPath(this.deps.dataFolder, settings.spec_path) : undefined;
405
+ if (specPath !== undefined && !(await exists(specPath)))
406
+ throw new AtomicCoreError('MODEL_FILE_NOT_FOUND', 'The decision spec file does not exist.', specPath);
407
+ const mmprojPath = facts.dialect === 'upstream' ? resolveDataPath(this.deps.dataFolder, settings.mmproj_path) : undefined;
408
+ if (mmprojPath !== undefined && !(await exists(mmprojPath)))
409
+ throw new AtomicCoreError('MODEL_FILE_NOT_FOUND', 'The decision model projector does not exist.', mmprojPath);
410
+ if (!quiet)
411
+ this.setState({ state: mode === 'restart' ? 'restarting' : 'starting', error: null });
412
+ const threads = decisionThreads({ setting: settings.threads, ...(await this.deps.cpu()) });
413
+ const onEngine = (chosen) => {
414
+ engine = chosen;
415
+ if (!quiet)
416
+ this.setState({ engine });
417
+ };
418
+ let needs = { checkpointDir };
419
+ let upstream;
420
+ if (facts.dialect === 'upstream') {
421
+ needs = {
422
+ dialect: 'upstream',
423
+ minBuild: upstreamMinBuild(facts.decisionType, mmprojPath !== undefined),
424
+ };
425
+ upstream = {
426
+ ...(mmprojPath !== undefined ? { mmprojPath } : {}),
427
+ ctxSize: upstreamCtxSize(settings.ctx_size, facts.contextTrain),
428
+ wholePromptUbatch: WHOLE_PROMPT_DECISION_TYPES.has(facts.decisionType),
429
+ };
430
+ }
431
+ const handle = await this.spawnOnFirstGoodEngine(settings, needs, abort.signal, onEngine, (engine) => ({
432
+ engine,
433
+ modelPath,
434
+ ...(specPath !== undefined ? { specPath } : {}),
435
+ ...(modelId !== '' ? { modelId } : {}),
436
+ ...(checkpointDir
437
+ ? { convert: { cacheDir: this.convertCacheDir, type: settings.convert_type } }
438
+ : {}),
439
+ ...(upstream !== undefined ? { upstream } : {}),
440
+ threads,
441
+ allowUncalibrated: settings.allow_uncalibrated,
442
+ startupTimeoutMs: settings.startup_timeout_secs * 1000,
443
+ }));
444
+ if (abort.signal.aborted || this.stopping) {
445
+ await handle.terminate(DECISION_TERMINATE_GRACE_MS);
446
+ throw new AtomicCoreError('DECISION_UNAVAILABLE', 'The decision model start was stopped.');
447
+ }
448
+ this.handle = handle;
449
+ this.runningKey = key;
450
+ this.readySince = this.now();
451
+ this.setState({
452
+ state: 'ready',
453
+ engine,
454
+ pid: handle.pid,
455
+ port: handle.port,
456
+ props: handle.props,
457
+ capabilities: [...handle.capabilities],
458
+ error: null,
459
+ });
460
+ void handle.exited.then((exit) => this.onExit(handle, exit));
461
+ this.armIdle();
462
+ // Only one decision model runs, so every other conversion is left over from a model replaced or
463
+ // removed. Deleted only now: on Windows a file the previous process mapped could not go earlier.
464
+ this.pruneConvertCache(cacheKeyInUse(handle.props, this.convertCacheDir));
465
+ return handle;
466
+ }
467
+ catch (error) {
468
+ const body = errorOf(error);
469
+ if (body.code === 'DECISION_UNAVAILABLE')
470
+ throw error;
471
+ if (mode === 'restart') {
472
+ this.onRestartFailed(body);
473
+ throw error;
474
+ }
475
+ const state = body.code === 'DECISION_ENGINE_UNSUPPORTED'
476
+ ? 'unsupported'
477
+ : body.code === 'DECISION_NOT_CONFIGURED'
478
+ ? settings.enabled
479
+ ? 'idle'
480
+ : 'disabled'
481
+ : 'failed';
482
+ if (!(quiet && state === this.state.state && sameError(this.state.error, body)))
483
+ this.setState({ state, engine, pid: null, port: null, props: null, capabilities: [], error: body });
484
+ throw error;
485
+ }
486
+ finally {
487
+ if (this.loadAbort === abort)
488
+ this.loadAbort = undefined;
489
+ if (this.loadingKey === key)
490
+ this.loadingKey = undefined;
491
+ }
492
+ }
493
+ /**
494
+ * Resolve an engine and spawn it; a build that readiness refuses as unsupported (an API version this
495
+ * core does not speak, a dev build with an unfinished decision API) or that dies while loading is
496
+ * handed to `rejectEngine` and the next one is tried, so a valid lower-ranked build still runs
497
+ * (`spawnOnFirstGoodEngine`). An explicit `engine_path` has nothing to fall back to.
498
+ */
499
+ spawnOnFirstGoodEngine(settings, needs, signal, onEngine, specFor) {
500
+ return spawnOnFirstGoodEngine({
501
+ label: 'decision',
502
+ resolve: () => this.deps.resolveEngine(settings.engine_path, needs),
503
+ onEngine,
504
+ throwIfStopped: () => {
505
+ if (signal.aborted)
506
+ throw new AtomicCoreError('DECISION_UNAVAILABLE', 'The decision model start was stopped.');
507
+ },
508
+ spawn: (engine) => this.deps.spawn(specFor(engine), signal),
509
+ unsupportedCode: 'DECISION_ENGINE_UNSUPPORTED',
510
+ explicit: settings.engine_path !== '',
511
+ ...(this.deps.rejectEngine ? { reject: this.deps.rejectEngine } : {}),
512
+ log: this.deps.log,
513
+ });
514
+ }
515
+ onExit(handle, exit) {
516
+ if (this.handle !== handle)
517
+ return;
518
+ this.handle = undefined;
519
+ this.runningKey = undefined;
520
+ this.cancelIdle?.();
521
+ this.cancelIdle = undefined;
522
+ if (this.stopping)
523
+ return;
524
+ const tail = handle.tail().slice(-20).join('\n');
525
+ const error = {
526
+ code: 'DECISION_UNAVAILABLE',
527
+ message: `The decision model exited unexpectedly with ${describeExit(exit)}.`,
528
+ ...(tail ? { details: tail } : {}),
529
+ };
530
+ this.deps.log('warn', error.message);
531
+ this.deps.emit('decision:error', error);
532
+ const restarts = nextRestartCount(this.state.restarts, this.now() - this.readySince);
533
+ this.scheduleRestart(restarts, error);
534
+ }
535
+ onRestartFailed(error) {
536
+ this.deps.log('warn', `decision model restart failed: ${error.message}`);
537
+ this.deps.emit('decision:error', error);
538
+ this.scheduleRestart(this.state.restarts + 1, error);
539
+ }
540
+ scheduleRestart(restarts, error) {
541
+ const cleared = { pid: null, port: null, props: null, capabilities: [], restarts, error };
542
+ if (shouldGiveUp(restarts)) {
543
+ this.setState({ state: 'failed', ...cleared });
544
+ return;
545
+ }
546
+ this.setState({ state: 'restarting', ...cleared });
547
+ const delay = restartDelayMs(restarts);
548
+ this.deps.log('info', `restarting the decision model in ${delay} ms (attempt ${restarts})`);
549
+ this.cancelRestart = this.schedule(() => {
550
+ this.cancelRestart = undefined;
551
+ if (this.stopping || !this.deps.readSettings().enabled)
552
+ return;
553
+ this.startInBackground('restart');
554
+ }, delay);
555
+ }
556
+ async stopProcess() {
557
+ this.cancelIdle?.();
558
+ this.cancelIdle = undefined;
559
+ const handle = this.handle;
560
+ this.handle = undefined;
561
+ this.runningKey = undefined;
562
+ if (handle)
563
+ await handle.terminate(DECISION_TERMINATE_GRACE_MS);
564
+ }
565
+ /** (Re)arm the idle unload; a call in flight pushes it back. */
566
+ armIdle() {
567
+ this.cancelIdle?.();
568
+ this.cancelIdle = undefined;
569
+ const secs = this.deps.readSettings().idle_unload_secs;
570
+ if (secs <= 0 || !this.handle || this.stopping)
571
+ return;
572
+ this.cancelIdle = this.schedule(() => {
573
+ this.cancelIdle = undefined;
574
+ if (this.inFlight > 0)
575
+ return this.armIdle();
576
+ this.deps.log('info', 'unloading the decision model after idling');
577
+ void this.unload();
578
+ }, secs * 1000);
579
+ }
580
+ async call(path, body, options, check) {
581
+ const started = this.now();
582
+ const elapsed = () => this.now() - started;
583
+ try {
584
+ if (options.signal?.aborted)
585
+ return unavailable('aborted', 'The caller gave up before the call.', 0);
586
+ const settings = this.deps.readSettings();
587
+ const handle = this.handle;
588
+ if (!handle) {
589
+ const configured = settings.model_path !== '';
590
+ const refusal = refusalForState(this.state.state, configured) ?? {
591
+ reason: 'not_running',
592
+ message: 'The decision model is not running.',
593
+ };
594
+ if (this.state.state === 'idle' && settings.enabled && configured)
595
+ this.startInBackground('load');
596
+ else
597
+ this.retryUnsupported(settings);
598
+ return unavailable(refusal.reason, refusal.message, elapsed());
599
+ }
600
+ // An engine that lists its endpoints and not this one (upstream serves `/v1/systemone` only).
601
+ if (Array.isArray(handle.props.endpoints) && !handle.props.endpoints.includes(path))
602
+ return unavailable('unsupported', `The running decision model does not serve ${path}.`, elapsed());
603
+ // The process says it will refuse the router (no calibration, no `--decision-allow-uncalibrated`):
604
+ // answer that without a round trip. `capabilities` is not the signal, since `router_score` is
605
+ // missing from it even when the flag makes the router available.
606
+ if (path === ROUTER_SCORE_PATH && handle.props.router?.available === false)
607
+ return unavailable('not_calibrated', NOT_CALIBRATED_MESSAGE, elapsed());
608
+ // Serialized before the request: a BigInt or a cycle in `state` is the caller's input, not a
609
+ // transport failure.
610
+ let payload;
611
+ try {
612
+ payload = JSON.stringify(body);
613
+ }
614
+ catch (error) {
615
+ return unavailable('rejected', `The request could not be serialized as JSON: ${error instanceof Error ? error.message : String(error)}`, elapsed());
616
+ }
617
+ this.inFlight++;
618
+ try {
619
+ const answer = await this.deps.http.request(`${handle.baseUrl}${path}`, {
620
+ method: 'POST',
621
+ apiKey: handle.apiKey,
622
+ body: payload,
623
+ timeoutMs: options.timeoutMs ?? settings.timeout_ms,
624
+ ...(options.signal ? { signal: options.signal } : {}),
625
+ });
626
+ return outcomeFromAnswer(answer.status, answer.text, elapsed(), check);
627
+ }
628
+ finally {
629
+ this.inFlight--;
630
+ this.armIdle();
631
+ }
632
+ }
633
+ catch (error) {
634
+ if (error instanceof DecisionTimeoutError)
635
+ return unavailable('timeout', `The decision model did not answer within ${error.timeoutMs} ms.`, elapsed());
636
+ if (error instanceof DecisionAbortedError)
637
+ return unavailable('aborted', error.message, elapsed());
638
+ return unavailable('transport_error', `The decision model could not be reached: ${error instanceof Error ? error.message : String(error)}`, elapsed());
639
+ }
640
+ }
641
+ /**
642
+ * The public route's target. An enabled, configured module that is idle is started (a failure is a
643
+ * `decision:error`, as for a call); one that is starting or restarting is waited on, up to `waitMs`,
644
+ * until it is ready or lands in a state no start will leave (failed, unsupported, disabled), or the
645
+ * client leaves (`signal`).
646
+ */
647
+ async acquire(waitMs, signal) {
648
+ const settings = this.deps.readSettings();
649
+ let handle = this.handle;
650
+ const configured = settings.enabled && settings.model_path !== '';
651
+ if (!handle && configured && WAITABLE_STATES.has(this.state.state) && !signal?.aborted) {
652
+ if (this.state.state === 'idle')
653
+ this.startInBackground('load');
654
+ handle = await this.waitForHandle(waitMs, signal);
655
+ }
656
+ else if (!handle) {
657
+ this.retryUnsupported(settings);
658
+ }
659
+ if (!handle) {
660
+ const refusal = refusalForState(this.state.state, settings.model_path !== '') ?? {
661
+ reason: 'not_running',
662
+ message: 'The decision model is not running.',
663
+ };
664
+ const detail = this.state.error ? ` ${this.state.error.message}` : '';
665
+ return { ok: false, reason: refusal.reason, message: `${refusal.message}${detail}` };
666
+ }
667
+ this.inFlight++;
668
+ let released = false;
669
+ const endpoints = handle.props.endpoints;
670
+ return {
671
+ ok: true,
672
+ port: handle.port,
673
+ apiKey: handle.apiKey,
674
+ ...(Array.isArray(endpoints) ? { endpoints: [...endpoints] } : {}),
675
+ release: () => {
676
+ if (released)
677
+ return;
678
+ released = true;
679
+ this.inFlight--;
680
+ this.armIdle();
681
+ },
682
+ };
683
+ }
684
+ /** The handle once there is one; `undefined` on timeout, on `signal`, or once no start is on its way. */
685
+ waitForHandle(waitMs, signal) {
686
+ return new Promise((resolve) => {
687
+ const done = (handle) => {
688
+ this.waiters.delete(check);
689
+ cancelTimer();
690
+ signal?.removeEventListener('abort', onAbort);
691
+ resolve(handle);
692
+ };
693
+ const check = () => {
694
+ if (this.handle)
695
+ return done(this.handle);
696
+ const state = this.state.state;
697
+ // `idle` counts only while a start is in flight: an idle module with none is not coming up.
698
+ const coming = WAITABLE_STATES.has(state) && (state !== 'idle' || this.loading !== undefined);
699
+ if (this.stopping || !coming)
700
+ done(undefined);
701
+ };
702
+ const onAbort = () => done(undefined);
703
+ // Declared before anything can call `done`: the timer, the signal and `check` all come after.
704
+ const cancelTimer = this.schedule(() => done(undefined), waitMs);
705
+ this.waiters.add(check);
706
+ signal?.addEventListener('abort', onAbort, { once: true });
707
+ check();
708
+ });
709
+ }
710
+ }
711
+ //# sourceMappingURL=service.js.map