@atomic-chat/core 0.5.1

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 (868) hide show
  1. package/README.md +46 -0
  2. package/dist/app-daemon.d.ts +2 -0
  3. package/dist/app-daemon.js +72 -0
  4. package/dist/app-daemon.js.map +1 -0
  5. package/dist/backend/catalog/archive.d.ts +70 -0
  6. package/dist/backend/catalog/archive.js +138 -0
  7. package/dist/backend/catalog/archive.js.map +1 -0
  8. package/dist/backend/catalog/bundled-manifest-baseline.d.ts +2 -0
  9. package/dist/backend/catalog/bundled-manifest-baseline.js +49 -0
  10. package/dist/backend/catalog/bundled-manifest-baseline.js.map +1 -0
  11. package/dist/backend/catalog/cuda-family.d.ts +54 -0
  12. package/dist/backend/catalog/cuda-family.js +93 -0
  13. package/dist/backend/catalog/cuda-family.js.map +1 -0
  14. package/dist/backend/catalog/index.d.ts +6 -0
  15. package/dist/backend/catalog/index.js +7 -0
  16. package/dist/backend/catalog/index.js.map +1 -0
  17. package/dist/backend/catalog/manifest.d.ts +102 -0
  18. package/dist/backend/catalog/manifest.js +233 -0
  19. package/dist/backend/catalog/manifest.js.map +1 -0
  20. package/dist/backend/catalog/migrate.d.ts +40 -0
  21. package/dist/backend/catalog/migrate.js +135 -0
  22. package/dist/backend/catalog/migrate.js.map +1 -0
  23. package/dist/backend/index.d.ts +18 -0
  24. package/dist/backend/index.js +19 -0
  25. package/dist/backend/index.js.map +1 -0
  26. package/dist/backend/install/index.d.ts +3 -0
  27. package/dist/backend/install/index.js +4 -0
  28. package/dist/backend/install/index.js.map +1 -0
  29. package/dist/backend/install/runtime-backend.d.ts +22 -0
  30. package/dist/backend/install/runtime-backend.js +95 -0
  31. package/dist/backend/install/runtime-backend.js.map +1 -0
  32. package/dist/backend/install/service.d.ts +119 -0
  33. package/dist/backend/install/service.js +218 -0
  34. package/dist/backend/install/service.js.map +1 -0
  35. package/dist/backend/installed/index.d.ts +3 -0
  36. package/dist/backend/installed/index.js +4 -0
  37. package/dist/backend/installed/index.js.map +1 -0
  38. package/dist/backend/installed/installed.d.ts +93 -0
  39. package/dist/backend/installed/installed.js +209 -0
  40. package/dist/backend/installed/installed.js.map +1 -0
  41. package/dist/backend/installed/scan.d.ts +39 -0
  42. package/dist/backend/installed/scan.js +105 -0
  43. package/dist/backend/installed/scan.js.map +1 -0
  44. package/dist/backend/optimal/index.d.ts +3 -0
  45. package/dist/backend/optimal/index.js +4 -0
  46. package/dist/backend/optimal/index.js.map +1 -0
  47. package/dist/backend/optimal/optimal-cache.d.ts +90 -0
  48. package/dist/backend/optimal/optimal-cache.js +198 -0
  49. package/dist/backend/optimal/optimal-cache.js.map +1 -0
  50. package/dist/backend/optimal/optimal-store.d.ts +24 -0
  51. package/dist/backend/optimal/optimal-store.js +103 -0
  52. package/dist/backend/optimal/optimal-store.js.map +1 -0
  53. package/dist/backend/select/amd-rocm-pci-ids.d.ts +3 -0
  54. package/dist/backend/select/amd-rocm-pci-ids.js +57 -0
  55. package/dist/backend/select/amd-rocm-pci-ids.js.map +1 -0
  56. package/dist/backend/select/categories.d.ts +49 -0
  57. package/dist/backend/select/categories.js +178 -0
  58. package/dist/backend/select/categories.js.map +1 -0
  59. package/dist/backend/select/features.d.ts +81 -0
  60. package/dist/backend/select/features.js +221 -0
  61. package/dist/backend/select/features.js.map +1 -0
  62. package/dist/backend/select/index.d.ts +9 -0
  63. package/dist/backend/select/index.js +10 -0
  64. package/dist/backend/select/index.js.map +1 -0
  65. package/dist/backend/select/recovery.d.ts +51 -0
  66. package/dist/backend/select/recovery.js +108 -0
  67. package/dist/backend/select/recovery.js.map +1 -0
  68. package/dist/backend/select/tiers.d.ts +76 -0
  69. package/dist/backend/select/tiers.js +179 -0
  70. package/dist/backend/select/tiers.js.map +1 -0
  71. package/dist/backend/turboquant.d.ts +134 -0
  72. package/dist/backend/turboquant.js +587 -0
  73. package/dist/backend/turboquant.js.map +1 -0
  74. package/dist/backend/types.d.ts +139 -0
  75. package/dist/backend/types.js +13 -0
  76. package/dist/backend/types.js.map +1 -0
  77. package/dist/backend/version.d.ts +59 -0
  78. package/dist/backend/version.js +168 -0
  79. package/dist/backend/version.js.map +1 -0
  80. package/dist/cli/bin.d.ts +2 -0
  81. package/dist/cli/bin.js +10 -0
  82. package/dist/cli/bin.js.map +1 -0
  83. package/dist/cli/cloud.d.ts +13 -0
  84. package/dist/cli/cloud.js +146 -0
  85. package/dist/cli/cloud.js.map +1 -0
  86. package/dist/cli/commands/daemon.d.ts +4 -0
  87. package/dist/cli/commands/daemon.js +88 -0
  88. package/dist/cli/commands/daemon.js.map +1 -0
  89. package/dist/cli/commands/index.d.ts +16 -0
  90. package/dist/cli/commands/index.js +17 -0
  91. package/dist/cli/commands/index.js.map +1 -0
  92. package/dist/cli/commands/models.d.ts +4 -0
  93. package/dist/cli/commands/models.js +52 -0
  94. package/dist/cli/commands/models.js.map +1 -0
  95. package/dist/cli/commands/serve.d.ts +16 -0
  96. package/dist/cli/commands/serve.js +263 -0
  97. package/dist/cli/commands/serve.js.map +1 -0
  98. package/dist/cli/commands/server.d.ts +4 -0
  99. package/dist/cli/commands/server.js +126 -0
  100. package/dist/cli/commands/server.js.map +1 -0
  101. package/dist/cli/commands/shared.d.ts +10 -0
  102. package/dist/cli/commands/shared.js +34 -0
  103. package/dist/cli/commands/shared.js.map +1 -0
  104. package/dist/cli/commands/shutdown.d.ts +4 -0
  105. package/dist/cli/commands/shutdown.js +32 -0
  106. package/dist/cli/commands/shutdown.js.map +1 -0
  107. package/dist/cli/commands/telemetry.d.ts +8 -0
  108. package/dist/cli/commands/telemetry.js +50 -0
  109. package/dist/cli/commands/telemetry.js.map +1 -0
  110. package/dist/cli/index.d.ts +7 -0
  111. package/dist/cli/index.js +8 -0
  112. package/dist/cli/index.js.map +1 -0
  113. package/dist/cli/io.d.ts +46 -0
  114. package/dist/cli/io.js +101 -0
  115. package/dist/cli/io.js.map +1 -0
  116. package/dist/cli/launch.d.ts +50 -0
  117. package/dist/cli/launch.js +327 -0
  118. package/dist/cli/launch.js.map +1 -0
  119. package/dist/cli/main.d.ts +10 -0
  120. package/dist/cli/main.js +109 -0
  121. package/dist/cli/main.js.map +1 -0
  122. package/dist/cli/owner.d.ts +39 -0
  123. package/dist/cli/owner.js +179 -0
  124. package/dist/cli/owner.js.map +1 -0
  125. package/dist/client/control-client.d.ts +213 -0
  126. package/dist/client/control-client.js +368 -0
  127. package/dist/client/control-client.js.map +1 -0
  128. package/dist/client/index.d.ts +7 -0
  129. package/dist/client/index.js +8 -0
  130. package/dist/client/index.js.map +1 -0
  131. package/dist/cloud/chatgpt.d.ts +63 -0
  132. package/dist/cloud/chatgpt.js +233 -0
  133. package/dist/cloud/chatgpt.js.map +1 -0
  134. package/dist/cloud/index.d.ts +8 -0
  135. package/dist/cloud/index.js +9 -0
  136. package/dist/cloud/index.js.map +1 -0
  137. package/dist/cloud/registry.d.ts +51 -0
  138. package/dist/cloud/registry.js +148 -0
  139. package/dist/cloud/registry.js.map +1 -0
  140. package/dist/config/data-folder.d.ts +57 -0
  141. package/dist/config/data-folder.js +150 -0
  142. package/dist/config/data-folder.js.map +1 -0
  143. package/dist/config/index.d.ts +9 -0
  144. package/dist/config/index.js +10 -0
  145. package/dist/config/index.js.map +1 -0
  146. package/dist/config/paths.d.ts +98 -0
  147. package/dist/config/paths.js +109 -0
  148. package/dist/config/paths.js.map +1 -0
  149. package/dist/contracts/control-api.d.ts +61 -0
  150. package/dist/contracts/control-api.js +7 -0
  151. package/dist/contracts/control-api.js.map +1 -0
  152. package/dist/contracts/diffusion.d.ts +477 -0
  153. package/dist/contracts/diffusion.js +10 -0
  154. package/dist/contracts/diffusion.js.map +1 -0
  155. package/dist/contracts/errors.d.ts +61 -0
  156. package/dist/contracts/errors.js +70 -0
  157. package/dist/contracts/errors.js.map +1 -0
  158. package/dist/contracts/events.d.ts +270 -0
  159. package/dist/contracts/events.js +7 -0
  160. package/dist/contracts/events.js.map +1 -0
  161. package/dist/contracts/hardware.d.ts +53 -0
  162. package/dist/contracts/hardware.js +12 -0
  163. package/dist/contracts/hardware.js.map +1 -0
  164. package/dist/contracts/index.d.ts +12 -0
  165. package/dist/contracts/index.js +13 -0
  166. package/dist/contracts/index.js.map +1 -0
  167. package/dist/contracts/model-yml.d.ts +28 -0
  168. package/dist/contracts/model-yml.js +23 -0
  169. package/dist/contracts/model-yml.js.map +1 -0
  170. package/dist/contracts/remote-access.d.ts +43 -0
  171. package/dist/contracts/remote-access.js +12 -0
  172. package/dist/contracts/remote-access.js.map +1 -0
  173. package/dist/contracts/session.d.ts +39 -0
  174. package/dist/contracts/session.js +7 -0
  175. package/dist/contracts/session.js.map +1 -0
  176. package/dist/contracts/settings.d.ts +106 -0
  177. package/dist/contracts/settings.js +17 -0
  178. package/dist/contracts/settings.js.map +1 -0
  179. package/dist/core/atomic-core.d.ts +149 -0
  180. package/dist/core/atomic-core.js +289 -0
  181. package/dist/core/atomic-core.js.map +1 -0
  182. package/dist/core/create.d.ts +12 -0
  183. package/dist/core/create.js +393 -0
  184. package/dist/core/create.js.map +1 -0
  185. package/dist/core/index.d.ts +10 -0
  186. package/dist/core/index.js +9 -0
  187. package/dist/core/index.js.map +1 -0
  188. package/dist/core/public-server.d.ts +76 -0
  189. package/dist/core/public-server.js +143 -0
  190. package/dist/core/public-server.js.map +1 -0
  191. package/dist/core/reap-orphans.d.ts +7 -0
  192. package/dist/core/reap-orphans.js +40 -0
  193. package/dist/core/reap-orphans.js.map +1 -0
  194. package/dist/core/sessions.d.ts +60 -0
  195. package/dist/core/sessions.js +180 -0
  196. package/dist/core/sessions.js.map +1 -0
  197. package/dist/core/types.d.ts +61 -0
  198. package/dist/core/types.js +2 -0
  199. package/dist/core/types.js.map +1 -0
  200. package/dist/credentials/api-keys.d.ts +41 -0
  201. package/dist/credentials/api-keys.js +156 -0
  202. package/dist/credentials/api-keys.js.map +1 -0
  203. package/dist/credentials/chatgpt-auth.d.ts +73 -0
  204. package/dist/credentials/chatgpt-auth.js +167 -0
  205. package/dist/credentials/chatgpt-auth.js.map +1 -0
  206. package/dist/credentials/chatgpt-oauth.d.ts +97 -0
  207. package/dist/credentials/chatgpt-oauth.js +329 -0
  208. package/dist/credentials/chatgpt-oauth.js.map +1 -0
  209. package/dist/credentials/chatgpt-store.d.ts +33 -0
  210. package/dist/credentials/chatgpt-store.js +110 -0
  211. package/dist/credentials/chatgpt-store.js.map +1 -0
  212. package/dist/credentials/index.d.ts +11 -0
  213. package/dist/credentials/index.js +12 -0
  214. package/dist/credentials/index.js.map +1 -0
  215. package/dist/diffusion/args.d.ts +102 -0
  216. package/dist/diffusion/args.js +291 -0
  217. package/dist/diffusion/args.js.map +1 -0
  218. package/dist/diffusion/compat.d.ts +20 -0
  219. package/dist/diffusion/compat.js +58 -0
  220. package/dist/diffusion/compat.js.map +1 -0
  221. package/dist/diffusion/containment.d.ts +15 -0
  222. package/dist/diffusion/containment.js +32 -0
  223. package/dist/diffusion/containment.js.map +1 -0
  224. package/dist/diffusion/errors.d.ts +28 -0
  225. package/dist/diffusion/errors.js +63 -0
  226. package/dist/diffusion/errors.js.map +1 -0
  227. package/dist/diffusion/gallery.d.ts +76 -0
  228. package/dist/diffusion/gallery.js +307 -0
  229. package/dist/diffusion/gallery.js.map +1 -0
  230. package/dist/diffusion/http.d.ts +16 -0
  231. package/dist/diffusion/http.js +41 -0
  232. package/dist/diffusion/http.js.map +1 -0
  233. package/dist/diffusion/idle.d.ts +23 -0
  234. package/dist/diffusion/idle.js +45 -0
  235. package/dist/diffusion/idle.js.map +1 -0
  236. package/dist/diffusion/image-job.d.ts +25 -0
  237. package/dist/diffusion/image-job.js +176 -0
  238. package/dist/diffusion/image-job.js.map +1 -0
  239. package/dist/diffusion/index.d.ts +35 -0
  240. package/dist/diffusion/index.js +36 -0
  241. package/dist/diffusion/index.js.map +1 -0
  242. package/dist/diffusion/install.d.ts +61 -0
  243. package/dist/diffusion/install.js +287 -0
  244. package/dist/diffusion/install.js.map +1 -0
  245. package/dist/diffusion/job-kind.d.ts +74 -0
  246. package/dist/diffusion/job-kind.js +7 -0
  247. package/dist/diffusion/job-kind.js.map +1 -0
  248. package/dist/diffusion/jobs.d.ts +90 -0
  249. package/dist/diffusion/jobs.js +433 -0
  250. package/dist/diffusion/jobs.js.map +1 -0
  251. package/dist/diffusion/mutex.d.ts +16 -0
  252. package/dist/diffusion/mutex.js +46 -0
  253. package/dist/diffusion/mutex.js.map +1 -0
  254. package/dist/diffusion/parse.d.ts +19 -0
  255. package/dist/diffusion/parse.js +274 -0
  256. package/dist/diffusion/parse.js.map +1 -0
  257. package/dist/diffusion/png.d.ts +77 -0
  258. package/dist/diffusion/png.js +335 -0
  259. package/dist/diffusion/png.js.map +1 -0
  260. package/dist/diffusion/progress.d.ts +74 -0
  261. package/dist/diffusion/progress.js +223 -0
  262. package/dist/diffusion/progress.js.map +1 -0
  263. package/dist/diffusion/recipe.d.ts +26 -0
  264. package/dist/diffusion/recipe.js +206 -0
  265. package/dist/diffusion/recipe.js.map +1 -0
  266. package/dist/diffusion/server-process.d.ts +59 -0
  267. package/dist/diffusion/server-process.js +235 -0
  268. package/dist/diffusion/server-process.js.map +1 -0
  269. package/dist/diffusion/service.d.ts +107 -0
  270. package/dist/diffusion/service.js +431 -0
  271. package/dist/diffusion/service.js.map +1 -0
  272. package/dist/diffusion/session.d.ts +58 -0
  273. package/dist/diffusion/session.js +226 -0
  274. package/dist/diffusion/session.js.map +1 -0
  275. package/dist/diffusion/state.d.ts +90 -0
  276. package/dist/diffusion/state.js +122 -0
  277. package/dist/diffusion/state.js.map +1 -0
  278. package/dist/diffusion/tracker.d.ts +46 -0
  279. package/dist/diffusion/tracker.js +153 -0
  280. package/dist/diffusion/tracker.js.map +1 -0
  281. package/dist/diffusion/types.d.ts +62 -0
  282. package/dist/diffusion/types.js +10 -0
  283. package/dist/diffusion/types.js.map +1 -0
  284. package/dist/diffusion/validate.d.ts +36 -0
  285. package/dist/diffusion/validate.js +166 -0
  286. package/dist/diffusion/validate.js.map +1 -0
  287. package/dist/diffusion/video-gallery.d.ts +56 -0
  288. package/dist/diffusion/video-gallery.js +252 -0
  289. package/dist/diffusion/video-gallery.js.map +1 -0
  290. package/dist/diffusion/video-job.d.ts +33 -0
  291. package/dist/diffusion/video-job.js +150 -0
  292. package/dist/diffusion/video-job.js.map +1 -0
  293. package/dist/diffusion/video-recipe.d.ts +12 -0
  294. package/dist/diffusion/video-recipe.js +141 -0
  295. package/dist/diffusion/video-recipe.js.map +1 -0
  296. package/dist/diffusion/wiring.d.ts +24 -0
  297. package/dist/diffusion/wiring.js +38 -0
  298. package/dist/diffusion/wiring.js.map +1 -0
  299. package/dist/diffusion/workflow.d.ts +33 -0
  300. package/dist/diffusion/workflow.js +78 -0
  301. package/dist/diffusion/workflow.js.map +1 -0
  302. package/dist/downloads/archive.d.ts +15 -0
  303. package/dist/downloads/archive.js +121 -0
  304. package/dist/downloads/archive.js.map +1 -0
  305. package/dist/downloads/disk-space.d.ts +18 -0
  306. package/dist/downloads/disk-space.js +32 -0
  307. package/dist/downloads/disk-space.js.map +1 -0
  308. package/dist/downloads/disk.d.ts +38 -0
  309. package/dist/downloads/disk.js +88 -0
  310. package/dist/downloads/disk.js.map +1 -0
  311. package/dist/downloads/downloader.d.ts +75 -0
  312. package/dist/downloads/downloader.js +479 -0
  313. package/dist/downloads/downloader.js.map +1 -0
  314. package/dist/downloads/index.d.ts +14 -0
  315. package/dist/downloads/index.js +15 -0
  316. package/dist/downloads/index.js.map +1 -0
  317. package/dist/downloads/protocol.d.ts +52 -0
  318. package/dist/downloads/protocol.js +153 -0
  319. package/dist/downloads/protocol.js.map +1 -0
  320. package/dist/downloads/proxy-fetch.d.ts +45 -0
  321. package/dist/downloads/proxy-fetch.js +571 -0
  322. package/dist/downloads/proxy-fetch.js.map +1 -0
  323. package/dist/downloads/verify.d.ts +22 -0
  324. package/dist/downloads/verify.js +74 -0
  325. package/dist/downloads/verify.js.map +1 -0
  326. package/dist/events/emitter.d.ts +44 -0
  327. package/dist/events/emitter.js +104 -0
  328. package/dist/events/emitter.js.map +1 -0
  329. package/dist/events/index.d.ts +5 -0
  330. package/dist/events/index.js +6 -0
  331. package/dist/events/index.js.map +1 -0
  332. package/dist/hardware/index.d.ts +7 -0
  333. package/dist/hardware/index.js +8 -0
  334. package/dist/hardware/index.js.map +1 -0
  335. package/dist/hardware/override.d.ts +46 -0
  336. package/dist/hardware/override.js +81 -0
  337. package/dist/hardware/override.js.map +1 -0
  338. package/dist/host/index.d.ts +15 -0
  339. package/dist/host/index.js +16 -0
  340. package/dist/host/index.js.map +1 -0
  341. package/dist/index.d.ts +5 -0
  342. package/dist/index.js +6 -0
  343. package/dist/index.js.map +1 -0
  344. package/dist/integrations/catalog.d.ts +67 -0
  345. package/dist/integrations/catalog.js +385 -0
  346. package/dist/integrations/catalog.js.map +1 -0
  347. package/dist/integrations/config-io.d.ts +86 -0
  348. package/dist/integrations/config-io.js +229 -0
  349. package/dist/integrations/config-io.js.map +1 -0
  350. package/dist/integrations/configure/atomic-agent.d.ts +33 -0
  351. package/dist/integrations/configure/atomic-agent.js +127 -0
  352. package/dist/integrations/configure/atomic-agent.js.map +1 -0
  353. package/dist/integrations/configure/claude-code.d.ts +16 -0
  354. package/dist/integrations/configure/claude-code.js +45 -0
  355. package/dist/integrations/configure/claude-code.js.map +1 -0
  356. package/dist/integrations/configure/cline.d.ts +28 -0
  357. package/dist/integrations/configure/cline.js +70 -0
  358. package/dist/integrations/configure/cline.js.map +1 -0
  359. package/dist/integrations/configure/codex.d.ts +17 -0
  360. package/dist/integrations/configure/codex.js +43 -0
  361. package/dist/integrations/configure/codex.js.map +1 -0
  362. package/dist/integrations/configure/copilot.d.ts +10 -0
  363. package/dist/integrations/configure/copilot.js +14 -0
  364. package/dist/integrations/configure/copilot.js.map +1 -0
  365. package/dist/integrations/configure/droid.d.ts +12 -0
  366. package/dist/integrations/configure/droid.js +47 -0
  367. package/dist/integrations/configure/droid.js.map +1 -0
  368. package/dist/integrations/configure/dsh.d.ts +34 -0
  369. package/dist/integrations/configure/dsh.js +146 -0
  370. package/dist/integrations/configure/dsh.js.map +1 -0
  371. package/dist/integrations/configure/env-agent.d.ts +26 -0
  372. package/dist/integrations/configure/env-agent.js +41 -0
  373. package/dist/integrations/configure/env-agent.js.map +1 -0
  374. package/dist/integrations/configure/goose.d.ts +12 -0
  375. package/dist/integrations/configure/goose.js +16 -0
  376. package/dist/integrations/configure/goose.js.map +1 -0
  377. package/dist/integrations/configure/hermes.d.ts +41 -0
  378. package/dist/integrations/configure/hermes.js +247 -0
  379. package/dist/integrations/configure/hermes.js.map +1 -0
  380. package/dist/integrations/configure/index.d.ts +25 -0
  381. package/dist/integrations/configure/index.js +26 -0
  382. package/dist/integrations/configure/index.js.map +1 -0
  383. package/dist/integrations/configure/json-tree.d.ts +16 -0
  384. package/dist/integrations/configure/json-tree.js +19 -0
  385. package/dist/integrations/configure/json-tree.js.map +1 -0
  386. package/dist/integrations/configure/kilo.d.ts +9 -0
  387. package/dist/integrations/configure/kilo.js +19 -0
  388. package/dist/integrations/configure/kilo.js.map +1 -0
  389. package/dist/integrations/configure/mimo.d.ts +9 -0
  390. package/dist/integrations/configure/mimo.js +19 -0
  391. package/dist/integrations/configure/mimo.js.map +1 -0
  392. package/dist/integrations/configure/muse.d.ts +9 -0
  393. package/dist/integrations/configure/muse.js +13 -0
  394. package/dist/integrations/configure/muse.js.map +1 -0
  395. package/dist/integrations/configure/openclaude.d.ts +13 -0
  396. package/dist/integrations/configure/openclaude.js +56 -0
  397. package/dist/integrations/configure/openclaude.js.map +1 -0
  398. package/dist/integrations/configure/openclaw.d.ts +24 -0
  399. package/dist/integrations/configure/openclaw.js +99 -0
  400. package/dist/integrations/configure/openclaw.js.map +1 -0
  401. package/dist/integrations/configure/opencode-style.d.ts +25 -0
  402. package/dist/integrations/configure/opencode-style.js +43 -0
  403. package/dist/integrations/configure/opencode-style.js.map +1 -0
  404. package/dist/integrations/configure/opencode.d.ts +9 -0
  405. package/dist/integrations/configure/opencode.js +19 -0
  406. package/dist/integrations/configure/opencode.js.map +1 -0
  407. package/dist/integrations/configure/openhands.d.ts +8 -0
  408. package/dist/integrations/configure/openhands.js +12 -0
  409. package/dist/integrations/configure/openhands.js.map +1 -0
  410. package/dist/integrations/configure/pi.d.ts +14 -0
  411. package/dist/integrations/configure/pi.js +49 -0
  412. package/dist/integrations/configure/pi.js.map +1 -0
  413. package/dist/integrations/configure/poolside.d.ts +8 -0
  414. package/dist/integrations/configure/poolside.js +12 -0
  415. package/dist/integrations/configure/poolside.js.map +1 -0
  416. package/dist/integrations/configure/registry.d.ts +41 -0
  417. package/dist/integrations/configure/registry.js +50 -0
  418. package/dist/integrations/configure/registry.js.map +1 -0
  419. package/dist/integrations/configure/zcode.d.ts +59 -0
  420. package/dist/integrations/configure/zcode.js +260 -0
  421. package/dist/integrations/configure/zcode.js.map +1 -0
  422. package/dist/integrations/configure/zed.d.ts +16 -0
  423. package/dist/integrations/configure/zed.js +61 -0
  424. package/dist/integrations/configure/zed.js.map +1 -0
  425. package/dist/integrations/detect.d.ts +29 -0
  426. package/dist/integrations/detect.js +43 -0
  427. package/dist/integrations/detect.js.map +1 -0
  428. package/dist/integrations/index.d.ts +9 -0
  429. package/dist/integrations/index.js +10 -0
  430. package/dist/integrations/index.js.map +1 -0
  431. package/dist/lock/control-token.d.ts +19 -0
  432. package/dist/lock/control-token.js +58 -0
  433. package/dist/lock/control-token.js.map +1 -0
  434. package/dist/lock/index.d.ts +10 -0
  435. package/dist/lock/index.js +11 -0
  436. package/dist/lock/index.js.map +1 -0
  437. package/dist/lock/instance-lock.d.ts +93 -0
  438. package/dist/lock/instance-lock.js +244 -0
  439. package/dist/lock/instance-lock.js.map +1 -0
  440. package/dist/lock/legacy-guard.d.ts +46 -0
  441. package/dist/lock/legacy-guard.js +87 -0
  442. package/dist/lock/legacy-guard.js.map +1 -0
  443. package/dist/lock/model-claim.d.ts +20 -0
  444. package/dist/lock/model-claim.js +84 -0
  445. package/dist/lock/model-claim.js.map +1 -0
  446. package/dist/lock/process-identity.d.ts +48 -0
  447. package/dist/lock/process-identity.js +180 -0
  448. package/dist/lock/process-identity.js.map +1 -0
  449. package/dist/lock/process-journal.d.ts +56 -0
  450. package/dist/lock/process-journal.js +113 -0
  451. package/dist/lock/process-journal.js.map +1 -0
  452. package/dist/models/capabilities.d.ts +73 -0
  453. package/dist/models/capabilities.js +123 -0
  454. package/dist/models/capabilities.js.map +1 -0
  455. package/dist/models/embed.d.ts +30 -0
  456. package/dist/models/embed.js +83 -0
  457. package/dist/models/embed.js.map +1 -0
  458. package/dist/models/gguf/classify.d.ts +29 -0
  459. package/dist/models/gguf/classify.js +89 -0
  460. package/dist/models/gguf/classify.js.map +1 -0
  461. package/dist/models/gguf/index.d.ts +5 -0
  462. package/dist/models/gguf/index.js +6 -0
  463. package/dist/models/gguf/index.js.map +1 -0
  464. package/dist/models/gguf/kv-cache.d.ts +27 -0
  465. package/dist/models/gguf/kv-cache.js +101 -0
  466. package/dist/models/gguf/kv-cache.js.map +1 -0
  467. package/dist/models/gguf/read-file.d.ts +11 -0
  468. package/dist/models/gguf/read-file.js +21 -0
  469. package/dist/models/gguf/read-file.js.map +1 -0
  470. package/dist/models/gguf/reader.d.ts +40 -0
  471. package/dist/models/gguf/reader.js +271 -0
  472. package/dist/models/gguf/reader.js.map +1 -0
  473. package/dist/models/gguf/support.d.ts +47 -0
  474. package/dist/models/gguf/support.js +48 -0
  475. package/dist/models/gguf/support.js.map +1 -0
  476. package/dist/models/hf.d.ts +35 -0
  477. package/dist/models/hf.js +140 -0
  478. package/dist/models/hf.js.map +1 -0
  479. package/dist/models/index.d.ts +14 -0
  480. package/dist/models/index.js +15 -0
  481. package/dist/models/index.js.map +1 -0
  482. package/dist/models/model-yml.d.ts +22 -0
  483. package/dist/models/model-yml.js +63 -0
  484. package/dist/models/model-yml.js.map +1 -0
  485. package/dist/models/registry.d.ts +51 -0
  486. package/dist/models/registry.js +102 -0
  487. package/dist/models/registry.js.map +1 -0
  488. package/dist/models/shards.d.ts +20 -0
  489. package/dist/models/shards.js +46 -0
  490. package/dist/models/shards.js.map +1 -0
  491. package/dist/remote-access/cloudflared-args.d.ts +41 -0
  492. package/dist/remote-access/cloudflared-args.js +59 -0
  493. package/dist/remote-access/cloudflared-args.js.map +1 -0
  494. package/dist/remote-access/cloudflared-output.d.ts +26 -0
  495. package/dist/remote-access/cloudflared-output.js +51 -0
  496. package/dist/remote-access/cloudflared-output.js.map +1 -0
  497. package/dist/remote-access/index.d.ts +16 -0
  498. package/dist/remote-access/index.js +17 -0
  499. package/dist/remote-access/index.js.map +1 -0
  500. package/dist/remote-access/journal.d.ts +63 -0
  501. package/dist/remote-access/journal.js +140 -0
  502. package/dist/remote-access/journal.js.map +1 -0
  503. package/dist/remote-access/lan-probe.d.ts +28 -0
  504. package/dist/remote-access/lan-probe.js +63 -0
  505. package/dist/remote-access/lan-probe.js.map +1 -0
  506. package/dist/remote-access/lan.d.ts +31 -0
  507. package/dist/remote-access/lan.js +90 -0
  508. package/dist/remote-access/lan.js.map +1 -0
  509. package/dist/remote-access/manager.d.ts +111 -0
  510. package/dist/remote-access/manager.js +316 -0
  511. package/dist/remote-access/manager.js.map +1 -0
  512. package/dist/remote-access/probe.d.ts +92 -0
  513. package/dist/remote-access/probe.js +186 -0
  514. package/dist/remote-access/probe.js.map +1 -0
  515. package/dist/remote-access/process.d.ts +66 -0
  516. package/dist/remote-access/process.js +160 -0
  517. package/dist/remote-access/process.js.map +1 -0
  518. package/dist/remote-access/spawner.d.ts +25 -0
  519. package/dist/remote-access/spawner.js +49 -0
  520. package/dist/remote-access/spawner.js.map +1 -0
  521. package/dist/remote-access/status.d.ts +39 -0
  522. package/dist/remote-access/status.js +49 -0
  523. package/dist/remote-access/status.js.map +1 -0
  524. package/dist/remote-access/wiring.d.ts +34 -0
  525. package/dist/remote-access/wiring.js +47 -0
  526. package/dist/remote-access/wiring.js.map +1 -0
  527. package/dist/router/index.d.ts +7 -0
  528. package/dist/router/index.js +8 -0
  529. package/dist/router/index.js.map +1 -0
  530. package/dist/router/resolve.d.ts +41 -0
  531. package/dist/router/resolve.js +53 -0
  532. package/dist/router/resolve.js.map +1 -0
  533. package/dist/runtime/foundation-models/errors.d.ts +28 -0
  534. package/dist/runtime/foundation-models/errors.js +48 -0
  535. package/dist/runtime/foundation-models/errors.js.map +1 -0
  536. package/dist/runtime/foundation-models/index.d.ts +8 -0
  537. package/dist/runtime/foundation-models/index.js +9 -0
  538. package/dist/runtime/foundation-models/index.js.map +1 -0
  539. package/dist/runtime/foundation-models/runtime.d.ts +73 -0
  540. package/dist/runtime/foundation-models/runtime.js +186 -0
  541. package/dist/runtime/foundation-models/runtime.js.map +1 -0
  542. package/dist/runtime/index.d.ts +5 -0
  543. package/dist/runtime/index.js +6 -0
  544. package/dist/runtime/index.js.map +1 -0
  545. package/dist/runtime/llamacpp/args.d.ts +90 -0
  546. package/dist/runtime/llamacpp/args.js +379 -0
  547. package/dist/runtime/llamacpp/args.js.map +1 -0
  548. package/dist/runtime/llamacpp/ctx-ladder.d.ts +16 -0
  549. package/dist/runtime/llamacpp/ctx-ladder.js +28 -0
  550. package/dist/runtime/llamacpp/ctx-ladder.js.map +1 -0
  551. package/dist/runtime/llamacpp/devices.d.ts +26 -0
  552. package/dist/runtime/llamacpp/devices.js +86 -0
  553. package/dist/runtime/llamacpp/devices.js.map +1 -0
  554. package/dist/runtime/llamacpp/errors.d.ts +34 -0
  555. package/dist/runtime/llamacpp/errors.js +137 -0
  556. package/dist/runtime/llamacpp/errors.js.map +1 -0
  557. package/dist/runtime/llamacpp/index.d.ts +14 -0
  558. package/dist/runtime/llamacpp/index.js +15 -0
  559. package/dist/runtime/llamacpp/index.js.map +1 -0
  560. package/dist/runtime/llamacpp/load-plan.d.ts +113 -0
  561. package/dist/runtime/llamacpp/load-plan.js +259 -0
  562. package/dist/runtime/llamacpp/load-plan.js.map +1 -0
  563. package/dist/runtime/llamacpp/policy.d.ts +70 -0
  564. package/dist/runtime/llamacpp/policy.js +191 -0
  565. package/dist/runtime/llamacpp/policy.js.map +1 -0
  566. package/dist/runtime/llamacpp/probe.d.ts +13 -0
  567. package/dist/runtime/llamacpp/probe.js +35 -0
  568. package/dist/runtime/llamacpp/probe.js.map +1 -0
  569. package/dist/runtime/llamacpp/runtime-device.d.ts +33 -0
  570. package/dist/runtime/llamacpp/runtime-device.js +169 -0
  571. package/dist/runtime/llamacpp/runtime-device.js.map +1 -0
  572. package/dist/runtime/llamacpp/runtime.d.ts +151 -0
  573. package/dist/runtime/llamacpp/runtime.js +535 -0
  574. package/dist/runtime/llamacpp/runtime.js.map +1 -0
  575. package/dist/runtime/mlx/args.d.ts +10 -0
  576. package/dist/runtime/mlx/args.js +44 -0
  577. package/dist/runtime/mlx/args.js.map +1 -0
  578. package/dist/runtime/mlx/config.d.ts +71 -0
  579. package/dist/runtime/mlx/config.js +91 -0
  580. package/dist/runtime/mlx/config.js.map +1 -0
  581. package/dist/runtime/mlx/errors.d.ts +21 -0
  582. package/dist/runtime/mlx/errors.js +73 -0
  583. package/dist/runtime/mlx/errors.js.map +1 -0
  584. package/dist/runtime/mlx/index.d.ts +12 -0
  585. package/dist/runtime/mlx/index.js +13 -0
  586. package/dist/runtime/mlx/index.js.map +1 -0
  587. package/dist/runtime/mlx/model-files.d.ts +29 -0
  588. package/dist/runtime/mlx/model-files.js +82 -0
  589. package/dist/runtime/mlx/model-files.js.map +1 -0
  590. package/dist/runtime/mlx/runtime.d.ts +77 -0
  591. package/dist/runtime/mlx/runtime.js +223 -0
  592. package/dist/runtime/mlx/runtime.js.map +1 -0
  593. package/dist/runtime/mlx/shard-repair.d.ts +25 -0
  594. package/dist/runtime/mlx/shard-repair.js +44 -0
  595. package/dist/runtime/mlx/shard-repair.js.map +1 -0
  596. package/dist/runtime/shared/env.d.ts +49 -0
  597. package/dist/runtime/shared/env.js +155 -0
  598. package/dist/runtime/shared/env.js.map +1 -0
  599. package/dist/runtime/shared/external-sessions.d.ts +67 -0
  600. package/dist/runtime/shared/external-sessions.js +155 -0
  601. package/dist/runtime/shared/external-sessions.js.map +1 -0
  602. package/dist/runtime/shared/index.d.ts +17 -0
  603. package/dist/runtime/shared/index.js +18 -0
  604. package/dist/runtime/shared/index.js.map +1 -0
  605. package/dist/runtime/shared/load-cancel.d.ts +45 -0
  606. package/dist/runtime/shared/load-cancel.js +95 -0
  607. package/dist/runtime/shared/load-cancel.js.map +1 -0
  608. package/dist/runtime/shared/local-runtime.d.ts +68 -0
  609. package/dist/runtime/shared/local-runtime.js +12 -0
  610. package/dist/runtime/shared/local-runtime.js.map +1 -0
  611. package/dist/runtime/shared/log-stream.d.ts +4 -0
  612. package/dist/runtime/shared/log-stream.js +28 -0
  613. package/dist/runtime/shared/log-stream.js.map +1 -0
  614. package/dist/runtime/shared/paths.d.ts +21 -0
  615. package/dist/runtime/shared/paths.js +63 -0
  616. package/dist/runtime/shared/paths.js.map +1 -0
  617. package/dist/runtime/shared/ports.d.ts +26 -0
  618. package/dist/runtime/shared/ports.js +45 -0
  619. package/dist/runtime/shared/ports.js.map +1 -0
  620. package/dist/runtime/shared/process.d.ts +95 -0
  621. package/dist/runtime/shared/process.js +224 -0
  622. package/dist/runtime/shared/process.js.map +1 -0
  623. package/dist/runtime/shared/sidecar.d.ts +86 -0
  624. package/dist/runtime/shared/sidecar.js +214 -0
  625. package/dist/runtime/shared/sidecar.js.map +1 -0
  626. package/dist/server/clients.d.ts +40 -0
  627. package/dist/server/clients.js +74 -0
  628. package/dist/server/clients.js.map +1 -0
  629. package/dist/server/control/index.d.ts +12 -0
  630. package/dist/server/control/index.js +12 -0
  631. package/dist/server/control/index.js.map +1 -0
  632. package/dist/server/control/router.d.ts +9 -0
  633. package/dist/server/control/router.js +61 -0
  634. package/dist/server/control/router.js.map +1 -0
  635. package/dist/server/control/routes/backends.d.ts +4 -0
  636. package/dist/server/control/routes/backends.js +47 -0
  637. package/dist/server/control/routes/backends.js.map +1 -0
  638. package/dist/server/control/routes/clients.d.ts +4 -0
  639. package/dist/server/control/routes/clients.js +30 -0
  640. package/dist/server/control/routes/clients.js.map +1 -0
  641. package/dist/server/control/routes/cloud.d.ts +4 -0
  642. package/dist/server/control/routes/cloud.js +32 -0
  643. package/dist/server/control/routes/cloud.js.map +1 -0
  644. package/dist/server/control/routes/diffusion-video.d.ts +10 -0
  645. package/dist/server/control/routes/diffusion-video.js +33 -0
  646. package/dist/server/control/routes/diffusion-video.js.map +1 -0
  647. package/dist/server/control/routes/diffusion.d.ts +15 -0
  648. package/dist/server/control/routes/diffusion.js +71 -0
  649. package/dist/server/control/routes/diffusion.js.map +1 -0
  650. package/dist/server/control/routes/disk.d.ts +4 -0
  651. package/dist/server/control/routes/disk.js +11 -0
  652. package/dist/server/control/routes/disk.js.map +1 -0
  653. package/dist/server/control/routes/external-sessions.d.ts +4 -0
  654. package/dist/server/control/routes/external-sessions.js +27 -0
  655. package/dist/server/control/routes/external-sessions.js.map +1 -0
  656. package/dist/server/control/routes/hardware.d.ts +4 -0
  657. package/dist/server/control/routes/hardware.js +14 -0
  658. package/dist/server/control/routes/hardware.js.map +1 -0
  659. package/dist/server/control/routes/lifecycle.d.ts +12 -0
  660. package/dist/server/control/routes/lifecycle.js +67 -0
  661. package/dist/server/control/routes/lifecycle.js.map +1 -0
  662. package/dist/server/control/routes/models.d.ts +7 -0
  663. package/dist/server/control/routes/models.js +59 -0
  664. package/dist/server/control/routes/models.js.map +1 -0
  665. package/dist/server/control/routes/public-server.d.ts +4 -0
  666. package/dist/server/control/routes/public-server.js +30 -0
  667. package/dist/server/control/routes/public-server.js.map +1 -0
  668. package/dist/server/control/routes/remote-access.d.ts +7 -0
  669. package/dist/server/control/routes/remote-access.js +16 -0
  670. package/dist/server/control/routes/remote-access.js.map +1 -0
  671. package/dist/server/control/routes/settings.d.ts +4 -0
  672. package/dist/server/control/routes/settings.js +58 -0
  673. package/dist/server/control/routes/settings.js.map +1 -0
  674. package/dist/server/control/routes/telemetry.d.ts +7 -0
  675. package/dist/server/control/routes/telemetry.js +46 -0
  676. package/dist/server/control/routes/telemetry.js.map +1 -0
  677. package/dist/server/control/server.d.ts +26 -0
  678. package/dist/server/control/server.js +111 -0
  679. package/dist/server/control/server.js.map +1 -0
  680. package/dist/server/control/types.d.ts +271 -0
  681. package/dist/server/control/types.js +6 -0
  682. package/dist/server/control/types.js.map +1 -0
  683. package/dist/server/http.d.ts +62 -0
  684. package/dist/server/http.js +220 -0
  685. package/dist/server/http.js.map +1 -0
  686. package/dist/server/index.d.ts +9 -0
  687. package/dist/server/index.js +10 -0
  688. package/dist/server/index.js.map +1 -0
  689. package/dist/server/public/ctx.d.ts +23 -0
  690. package/dist/server/public/ctx.js +42 -0
  691. package/dist/server/public/ctx.js.map +1 -0
  692. package/dist/server/public/dynamic-hosts.d.ts +40 -0
  693. package/dist/server/public/dynamic-hosts.js +117 -0
  694. package/dist/server/public/dynamic-hosts.js.map +1 -0
  695. package/dist/server/public/errors.d.ts +36 -0
  696. package/dist/server/public/errors.js +120 -0
  697. package/dist/server/public/errors.js.map +1 -0
  698. package/dist/server/public/exchange.d.ts +42 -0
  699. package/dist/server/public/exchange.js +85 -0
  700. package/dist/server/public/exchange.js.map +1 -0
  701. package/dist/server/public/forward.d.ts +53 -0
  702. package/dist/server/public/forward.js +448 -0
  703. package/dist/server/public/forward.js.map +1 -0
  704. package/dist/server/public/gates.d.ts +49 -0
  705. package/dist/server/public/gates.js +181 -0
  706. package/dist/server/public/gates.js.map +1 -0
  707. package/dist/server/public/images-params.d.ts +50 -0
  708. package/dist/server/public/images-params.js +162 -0
  709. package/dist/server/public/images-params.js.map +1 -0
  710. package/dist/server/public/images.d.ts +12 -0
  711. package/dist/server/public/images.js +96 -0
  712. package/dist/server/public/images.js.map +1 -0
  713. package/dist/server/public/index.d.ts +58 -0
  714. package/dist/server/public/index.js +253 -0
  715. package/dist/server/public/index.js.map +1 -0
  716. package/dist/server/public/listing.d.ts +27 -0
  717. package/dist/server/public/listing.js +116 -0
  718. package/dist/server/public/listing.js.map +1 -0
  719. package/dist/server/public/responses.d.ts +11 -0
  720. package/dist/server/public/responses.js +158 -0
  721. package/dist/server/public/responses.js.map +1 -0
  722. package/dist/server/public/sse.d.ts +33 -0
  723. package/dist/server/public/sse.js +48 -0
  724. package/dist/server/public/sse.js.map +1 -0
  725. package/dist/server/public/static-assets.generated.d.ts +3 -0
  726. package/dist/server/public/static-assets.generated.js +6 -0
  727. package/dist/server/public/static-assets.generated.js.map +1 -0
  728. package/dist/server/public/static.d.ts +13 -0
  729. package/dist/server/public/static.js +75 -0
  730. package/dist/server/public/static.js.map +1 -0
  731. package/dist/server/public/subscription.d.ts +14 -0
  732. package/dist/server/public/subscription.js +56 -0
  733. package/dist/server/public/subscription.js.map +1 -0
  734. package/dist/server/public/telemetry.d.ts +65 -0
  735. package/dist/server/public/telemetry.js +284 -0
  736. package/dist/server/public/telemetry.js.map +1 -0
  737. package/dist/server/public/trace.d.ts +66 -0
  738. package/dist/server/public/trace.js +223 -0
  739. package/dist/server/public/trace.js.map +1 -0
  740. package/dist/server/public/types.d.ts +131 -0
  741. package/dist/server/public/types.js +9 -0
  742. package/dist/server/public/types.js.map +1 -0
  743. package/dist/server/public/videos-params.d.ts +95 -0
  744. package/dist/server/public/videos-params.js +220 -0
  745. package/dist/server/public/videos-params.js.map +1 -0
  746. package/dist/server/public/videos.d.ts +16 -0
  747. package/dist/server/public/videos.js +188 -0
  748. package/dist/server/public/videos.js.map +1 -0
  749. package/dist/server/public/wire.d.ts +53 -0
  750. package/dist/server/public/wire.js +174 -0
  751. package/dist/server/public/wire.js.map +1 -0
  752. package/dist/server/shims/anthropic.d.ts +52 -0
  753. package/dist/server/shims/anthropic.js +519 -0
  754. package/dist/server/shims/anthropic.js.map +1 -0
  755. package/dist/server/shims/chat-to-responses.d.ts +113 -0
  756. package/dist/server/shims/chat-to-responses.js +557 -0
  757. package/dist/server/shims/chat-to-responses.js.map +1 -0
  758. package/dist/server/shims/index.d.ts +8 -0
  759. package/dist/server/shims/index.js +9 -0
  760. package/dist/server/shims/index.js.map +1 -0
  761. package/dist/server/shims/json.d.ts +10 -0
  762. package/dist/server/shims/json.js +78 -0
  763. package/dist/server/shims/json.js.map +1 -0
  764. package/dist/server/shims/responses.d.ts +79 -0
  765. package/dist/server/shims/responses.js +543 -0
  766. package/dist/server/shims/responses.js.map +1 -0
  767. package/dist/server/state-file.d.ts +44 -0
  768. package/dist/server/state-file.js +107 -0
  769. package/dist/server/state-file.js.map +1 -0
  770. package/dist/settings/import.d.ts +61 -0
  771. package/dist/settings/import.js +104 -0
  772. package/dist/settings/import.js.map +1 -0
  773. package/dist/settings/index.d.ts +11 -0
  774. package/dist/settings/index.js +12 -0
  775. package/dist/settings/index.js.map +1 -0
  776. package/dist/settings/schema/foundation-models.json +1 -0
  777. package/dist/settings/schema/llamacpp-upstream.json +489 -0
  778. package/dist/settings/schema/llamacpp.json +475 -0
  779. package/dist/settings/schema/mlx.json +136 -0
  780. package/dist/settings/schema.d.ts +35 -0
  781. package/dist/settings/schema.js +196 -0
  782. package/dist/settings/schema.js.map +1 -0
  783. package/dist/settings/store.d.ts +168 -0
  784. package/dist/settings/store.js +350 -0
  785. package/dist/settings/store.js.map +1 -0
  786. package/dist/speculative/chat-template-overrides.d.ts +35 -0
  787. package/dist/speculative/chat-template-overrides.js +142 -0
  788. package/dist/speculative/chat-template-overrides.js.map +1 -0
  789. package/dist/speculative/dflash-registry.d.ts +50 -0
  790. package/dist/speculative/dflash-registry.js +258 -0
  791. package/dist/speculative/dflash-registry.js.map +1 -0
  792. package/dist/speculative/gemma-mtp-registry.d.ts +48 -0
  793. package/dist/speculative/gemma-mtp-registry.js +79 -0
  794. package/dist/speculative/gemma-mtp-registry.js.map +1 -0
  795. package/dist/speculative/index.d.ts +18 -0
  796. package/dist/speculative/index.js +19 -0
  797. package/dist/speculative/index.js.map +1 -0
  798. package/dist/speculative/mlx-dflash-registry.d.ts +39 -0
  799. package/dist/speculative/mlx-dflash-registry.js +230 -0
  800. package/dist/speculative/mlx-dflash-registry.js.map +1 -0
  801. package/dist/speculative/mlx-eagle3-registry.d.ts +24 -0
  802. package/dist/speculative/mlx-eagle3-registry.js +81 -0
  803. package/dist/speculative/mlx-eagle3-registry.js.map +1 -0
  804. package/dist/speculative/mlx-mtp-registry.d.ts +31 -0
  805. package/dist/speculative/mlx-mtp-registry.js +139 -0
  806. package/dist/speculative/mlx-mtp-registry.js.map +1 -0
  807. package/dist/speculative/transcription-registry.d.ts +72 -0
  808. package/dist/speculative/transcription-registry.js +94 -0
  809. package/dist/speculative/transcription-registry.js.map +1 -0
  810. package/dist/telemetry/config.d.ts +38 -0
  811. package/dist/telemetry/config.js +44 -0
  812. package/dist/telemetry/config.js.map +1 -0
  813. package/dist/telemetry/consent.d.ts +21 -0
  814. package/dist/telemetry/consent.js +35 -0
  815. package/dist/telemetry/consent.js.map +1 -0
  816. package/dist/telemetry/core-reporter.d.ts +47 -0
  817. package/dist/telemetry/core-reporter.js +72 -0
  818. package/dist/telemetry/core-reporter.js.map +1 -0
  819. package/dist/telemetry/daemon.d.ts +40 -0
  820. package/dist/telemetry/daemon.js +67 -0
  821. package/dist/telemetry/daemon.js.map +1 -0
  822. package/dist/telemetry/dsn.d.ts +15 -0
  823. package/dist/telemetry/dsn.js +32 -0
  824. package/dist/telemetry/dsn.js.map +1 -0
  825. package/dist/telemetry/envelope.d.ts +97 -0
  826. package/dist/telemetry/envelope.js +95 -0
  827. package/dist/telemetry/envelope.js.map +1 -0
  828. package/dist/telemetry/index.d.ts +18 -0
  829. package/dist/telemetry/index.js +19 -0
  830. package/dist/telemetry/index.js.map +1 -0
  831. package/dist/telemetry/policy.d.ts +39 -0
  832. package/dist/telemetry/policy.js +142 -0
  833. package/dist/telemetry/policy.js.map +1 -0
  834. package/dist/telemetry/reporter.d.ts +80 -0
  835. package/dist/telemetry/reporter.js +0 -0
  836. package/dist/telemetry/reporter.js.map +1 -0
  837. package/dist/telemetry/reports.d.ts +68 -0
  838. package/dist/telemetry/reports.js +212 -0
  839. package/dist/telemetry/reports.js.map +1 -0
  840. package/dist/telemetry/scrub.d.ts +19 -0
  841. package/dist/telemetry/scrub.js +75 -0
  842. package/dist/telemetry/scrub.js.map +1 -0
  843. package/dist/telemetry/stack.d.ts +21 -0
  844. package/dist/telemetry/stack.js +68 -0
  845. package/dist/telemetry/stack.js.map +1 -0
  846. package/dist/telemetry/store.d.ts +17 -0
  847. package/dist/telemetry/store.js +51 -0
  848. package/dist/telemetry/store.js.map +1 -0
  849. package/dist/telemetry/subscribe.d.ts +13 -0
  850. package/dist/telemetry/subscribe.js +19 -0
  851. package/dist/telemetry/subscribe.js.map +1 -0
  852. package/dist/telemetry/types.d.ts +40 -0
  853. package/dist/telemetry/types.js +2 -0
  854. package/dist/telemetry/types.js.map +1 -0
  855. package/dist/util/index.d.ts +5 -0
  856. package/dist/util/index.js +6 -0
  857. package/dist/util/index.js.map +1 -0
  858. package/dist/util/rust-number.d.ts +27 -0
  859. package/dist/util/rust-number.js +101 -0
  860. package/dist/util/rust-number.js.map +1 -0
  861. package/dist/version.d.ts +2 -0
  862. package/dist/version.js +3 -0
  863. package/dist/version.js.map +1 -0
  864. package/package.json +86 -0
  865. package/src/settings/schema/foundation-models.json +1 -0
  866. package/src/settings/schema/llamacpp-upstream.json +489 -0
  867. package/src/settings/schema/llamacpp.json +475 -0
  868. package/src/settings/schema/mlx.json +136 -0
@@ -0,0 +1,191 @@
1
+ /**
2
+ * Small policy helpers of the llama.cpp extension, ported verbatim from
3
+ * `extensions/llamacpp-upstream-extension/src/{util,index}.ts`: backend-id predicates, the AVX
4
+ * preflight, backend-mismatch classification, env parsing, readiness timeout, load-error shaping.
5
+ */
6
+ import { AtomicCoreError } from '../../contracts/index.js';
7
+ export const CPU_NO_AVX_ERROR_CODE = 'CPU_NO_AVX';
8
+ export const CPU_NO_AVX_MESSAGE = "Your CPU is too old to run this model: it doesn't support the AVX instruction set that the bundled engine requires. The app cannot run local models on this processor.";
9
+ export const BACKEND_NOT_CONFIGURED_MESSAGE = 'Llama.cpp backend is not configured (version_backend is missing or invalid). Check Settings → Llama.cpp — Version & Backend, or reinstall the application.';
10
+ /** Readiness wait floor (30 min): large models on cold storage outran the 600 s default. */
11
+ export const MODEL_LOAD_READY_TIMEOUT_FLOOR_SECS = 1800;
12
+ export function stripBom(s) {
13
+ return s.replace(/\uFEFF/g, '').trim();
14
+ }
15
+ /** The extension's strict build-number parser (`b6325` only; the unified fork tag yields null). */
16
+ export function parseBuildNumberStrict(version) {
17
+ const m = /^b(\d+)$/.exec(version);
18
+ return m ? parseInt(m[1], 10) : null;
19
+ }
20
+ /** A concrete `<version>/<backend>`: not empty, not `none`, has a `/`, not the `latest/` sentinel. */
21
+ export function isConcreteVersionBackend(vb) {
22
+ const v = stripBom(vb ?? '');
23
+ if (!v || v === 'none')
24
+ return false;
25
+ if (!v.includes('/'))
26
+ return false;
27
+ if (v.startsWith('latest/'))
28
+ return false;
29
+ return true;
30
+ }
31
+ /** `win-cpu-x64`, `linux-cpu-arm64`, … — never the macOS ids. */
32
+ export function isCpuBackend(backend) {
33
+ return stripBom(backend ?? '')
34
+ .toLowerCase()
35
+ .includes('-cpu-');
36
+ }
37
+ export function cpuHasAvx(extensions) {
38
+ if (!extensions || extensions.length === 0)
39
+ return false;
40
+ return extensions.some((e) => {
41
+ const x = e.toLowerCase();
42
+ return x === 'avx' || x === 'avx2' || x.startsWith('avx512');
43
+ });
44
+ }
45
+ /** Block only on a positive no-AVX signal: x86, a CPU backend, a non-empty list lacking AVX. */
46
+ export function isUnsupportedNoAvxCpu(arch, backend, extensions) {
47
+ const a = (arch ?? '').trim().toLowerCase();
48
+ const isX86 = a === 'x86_64' || a === 'x86' || a === 'amd64';
49
+ if (!isX86)
50
+ return false;
51
+ if (!isCpuBackend(backend))
52
+ return false;
53
+ if (!extensions || extensions.length === 0)
54
+ return false;
55
+ return !cpuHasAvx(extensions);
56
+ }
57
+ const GPU_BACKEND_CATEGORIES = new Set([
58
+ 'cuda-cu13',
59
+ 'cuda-cu13.0',
60
+ 'cuda-cu12.4',
61
+ 'cuda-cu12.0',
62
+ 'cuda-cu11.7',
63
+ 'vulkan',
64
+ ]);
65
+ export function isGpuBackendCategory(category) {
66
+ return GPU_BACKEND_CATEGORIES.has(category);
67
+ }
68
+ export function gpuKindOf(category) {
69
+ if (category.startsWith('cuda-'))
70
+ return 'cuda';
71
+ if (category === 'vulkan')
72
+ return 'vulkan';
73
+ return 'other';
74
+ }
75
+ /** Zero offloaded layers is conclusive; an absent device is not treated as CPU. */
76
+ export function runtimeRanOnCpu(runtimeDevice) {
77
+ if (!runtimeDevice)
78
+ return false;
79
+ if (runtimeDevice.gpu_layers_offloaded === 0)
80
+ return true;
81
+ const primary = (runtimeDevice.primary_device ?? '').trim();
82
+ if (!primary)
83
+ return false;
84
+ return primary === 'CPU' || primary.startsWith('CPU_');
85
+ }
86
+ /**
87
+ * Compare what the UI shows, what was launched and what the process reports. Precedence: silent
88
+ * swap, then a GPU build that ran on the CPU (unless `-ngl 0` was requested), then a better tier.
89
+ */
90
+ export function classifyBackendMismatch(input) {
91
+ const configured = stripBom(input.configuredBackend ?? '');
92
+ const effective = stripBom(input.effectiveBackend ?? '') || configured;
93
+ if (!configured)
94
+ return { kind: 'ok' };
95
+ if (effective && effective !== configured)
96
+ return { kind: 'silent-fallback', configured, effective };
97
+ const effectiveCategory = input.categoryOf(effective);
98
+ const cpuOnlyByRequest = input.requestedGpuLayers === 0;
99
+ if (isGpuBackendCategory(effectiveCategory) && !cpuOnlyByRequest && runtimeRanOnCpu(input.runtimeDevice)) {
100
+ return {
101
+ kind: 'runtime-cpu',
102
+ configured: effective,
103
+ primaryDevice: (input.runtimeDevice?.primary_device ?? '').trim() || 'CPU',
104
+ offloaded: input.runtimeDevice?.gpu_layers_offloaded ?? null,
105
+ total: input.runtimeDevice?.total_layers ?? null,
106
+ gpuKind: gpuKindOf(effectiveCategory),
107
+ cudaRuntimeMissing: input.runtimeDevice?.cuda_runtime_missing === true,
108
+ deviceInitError: input.runtimeDevice?.device_init_error ?? null,
109
+ };
110
+ }
111
+ const ideal = stripBom(input.idealBackend ?? '');
112
+ if (ideal) {
113
+ const idealCategory = input.categoryOf(ideal);
114
+ if (isGpuBackendCategory(idealCategory) && idealCategory !== effectiveCategory) {
115
+ return { kind: 'suboptimal-config', configured: effective, ideal };
116
+ }
117
+ }
118
+ return { kind: 'ok' };
119
+ }
120
+ /** `KEY=VALUE;KEY2=VALUE2` — keys starting with `LLAMA` are reserved and dropped. */
121
+ export function parseEnvString(envString, target = {}) {
122
+ envString
123
+ .split(';')
124
+ .filter((pair) => pair.trim())
125
+ .forEach((pair) => {
126
+ const [key, ...valueParts] = pair.split('=');
127
+ const cleanKey = key?.trim();
128
+ if (cleanKey && valueParts.length > 0 && !cleanKey.startsWith('LLAMA')) {
129
+ target[cleanKey] = valueParts.join('=').trim();
130
+ }
131
+ });
132
+ return target;
133
+ }
134
+ /** Never below the floor; honours a larger configured value; non-numbers read as 600. */
135
+ export function modelLoadReadyTimeoutSecs(configuredTimeoutSecs) {
136
+ const configured = Number(configuredTimeoutSecs);
137
+ const base = Number.isFinite(configured) && configured > 0 ? configured : 600;
138
+ return Math.max(base, MODEL_LOAD_READY_TIMEOUT_FLOOR_SECS);
139
+ }
140
+ /** Readable text of any load error: message + details + `[code]`; never `[object Object]`. */
141
+ export function formatLoadError(err) {
142
+ if (err instanceof Error) {
143
+ const e = err;
144
+ const parts = [err.message];
145
+ if (typeof e.details === 'string' && e.details.trim())
146
+ parts.push(e.details.trim());
147
+ const code = typeof e.code === 'string' && e.code ? ` [${e.code}]` : '';
148
+ return err.message ? `${parts.join('\n')}${code}` : String(err);
149
+ }
150
+ if (err && typeof err === 'object') {
151
+ const e = err;
152
+ const parts = [];
153
+ if (typeof e.message === 'string' && e.message.trim())
154
+ parts.push(e.message.trim());
155
+ if (typeof e.details === 'string' && e.details.trim())
156
+ parts.push(e.details.trim());
157
+ if (parts.length > 0) {
158
+ const code = typeof e.code === 'string' && e.code ? ` [${e.code}]` : '';
159
+ return `${parts.join('\n')}${code}`;
160
+ }
161
+ try {
162
+ const json = JSON.stringify(err);
163
+ if (json && json !== '{}' && json !== 'null')
164
+ return json;
165
+ }
166
+ catch {
167
+ /* fall through */
168
+ }
169
+ }
170
+ return String(err);
171
+ }
172
+ /** Codes that describe a recoverable user/environment condition, not a crash (kept out of Sentry). */
173
+ export const RECOVERABLE_LOAD_ERROR_CODES = new Set([
174
+ 'MODEL_FILE_NOT_FOUND',
175
+ 'MODEL_FILE_CORRUPT',
176
+ 'MODEL_SHARDS_INCOMPLETE',
177
+ 'MULTIMODAL_PROJECTOR_LOAD_FAILED',
178
+ 'BINARY_NOT_FOUND',
179
+ 'MODEL_ARCH_NOT_SUPPORTED',
180
+ 'OS_VERSION_UNSUPPORTED',
181
+ 'CPU_NO_AVX',
182
+ ]);
183
+ export function isRecoverableLoadError(err) {
184
+ const code = err?.code;
185
+ return typeof code === 'string' && RECOVERABLE_LOAD_ERROR_CODES.has(code);
186
+ }
187
+ /** The extension's `codedLoadError`, as an `AtomicCoreError`. */
188
+ export function codedLoadError(code, message, details) {
189
+ return new AtomicCoreError(code, message, details);
190
+ }
191
+ //# sourceMappingURL=policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../src/runtime/llamacpp/policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Capability probe: does the installed `llama-server` advertise a speculative type in its `-h`
3
+ * output? Port of `check_spec_type_support` in the plugin's `commands.rs` (5 s budget, substring
4
+ * match over stdout+stderr).
5
+ */
6
+ import type { ManagedProcess, SpawnSpec } from '../shared/index.js';
7
+ export declare const DFLASH_SPEC_TYPE = "draft-dflash";
8
+ export declare const PROBE_TIMEOUT_MS = 5000;
9
+ export interface ProbeDeps {
10
+ spawn?: (spec: SpawnSpec) => ManagedProcess;
11
+ timeoutMs?: number;
12
+ }
13
+ export declare function checkSpecTypeSupport(exePath: string, specType: string, env: Record<string, string>, cwd: string | undefined, deps?: ProbeDeps): Promise<boolean>;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Capability probe: does the installed `llama-server` advertise a speculative type in its `-h`
3
+ * output? Port of `check_spec_type_support` in the plugin's `commands.rs` (5 s budget, substring
4
+ * match over stdout+stderr).
5
+ */
6
+ import { AtomicCoreError } from '../../contracts/index.js';
7
+ import { spawnManaged } from '../shared/index.js';
8
+ export const DFLASH_SPEC_TYPE = 'draft-dflash';
9
+ export const PROBE_TIMEOUT_MS = 5000;
10
+ export async function checkSpecTypeSupport(exePath, specType, env, cwd, deps = {}) {
11
+ const spawn = deps.spawn ?? spawnManaged;
12
+ const timeoutMs = deps.timeoutMs ?? PROBE_TIMEOUT_MS;
13
+ let proc;
14
+ try {
15
+ proc = spawn({ exe: exePath, args: ['-h'], env, cwd });
16
+ }
17
+ catch (e) {
18
+ throw new AtomicCoreError('MODEL_LOAD_FAILED', 'Could not probe llama.cpp backend capabilities.', e.message);
19
+ }
20
+ const timeout = new Promise((r) => setTimeout(() => r('timeout'), timeoutMs).unref());
21
+ const outcome = await Promise.race([proc.exited.then(() => 'exited'), timeout]);
22
+ if (outcome === 'timeout') {
23
+ await proc.terminate(500);
24
+ throw new AtomicCoreError('MODEL_LOAD_TIMED_OUT', 'Timed out while probing llama.cpp backend capabilities.', `llama-server -h did not finish within ${Math.round(timeoutMs / 1000)}s for ${exePath}`);
25
+ }
26
+ const failure = proc.spawnFailure();
27
+ if (failure) {
28
+ throw new AtomicCoreError('MODEL_LOAD_FAILED', 'Could not probe llama.cpp backend capabilities.', failure.message);
29
+ }
30
+ // let the line readers drain
31
+ await new Promise((r) => setTimeout(r, 10));
32
+ const { stdout, stderr } = proc.output();
33
+ return `${stdout}\n${stderr}`.includes(specType);
34
+ }
35
+ //# sourceMappingURL=probe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"probe.js","sourceRoot":"","sources":["../../../src/runtime/llamacpp/probe.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAA;AAC9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAA;AAOpC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAe,EACf,QAAgB,EAChB,GAA2B,EAC3B,GAAuB,EACvB,OAAkB,EAAE;IAEpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,YAAY,CAAA;IACxC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,gBAAgB,CAAA;IACpD,IAAI,IAAoB,CAAA;IACxB,IAAI,CAAC;QACH,IAAI,GAAG,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;IACxD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,eAAe,CACvB,mBAAmB,EACnB,iDAAiD,EAChD,CAAW,CAAC,OAAO,CACrB,CAAA;IACH,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAY,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;IAChG,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAiB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IACxF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QACzB,MAAM,IAAI,eAAe,CACvB,sBAAsB,EACtB,yDAAyD,EACzD,yCAAyC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,OAAO,EAAE,CACxF,CAAA;IACH,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;IACnC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,IAAI,eAAe,CACvB,mBAAmB,EACnB,iDAAiD,EACjD,OAAO,CAAC,OAAO,CAChB,CAAA;IACH,CAAC;IACD,6BAA6B;IAC7B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAC3C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;IACxC,OAAO,GAAG,MAAM,KAAK,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAClD,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Which device the loaded model actually runs on, derived from the `llama-server` startup log.
3
+ * Port of `src-tauri/plugins/tauri-plugin-llamacpp-upstream/src/runtime_device.rs`.
4
+ * Pinned by `test/contract/runtime-device.test.ts`.
5
+ *
6
+ * `--list-devices` only says what a binary can enumerate; the startup log is the only signal that
7
+ * tells a healthy GPU load from a CUDA/Vulkan build that silently degraded to CPU.
8
+ */
9
+ import type { RuntimeDeviceInfo } from '../../contracts/index.js';
10
+ export declare function parseDeviceInitError(line: string): string | undefined;
11
+ /** `load_backend: loaded CUDA backend from /path/libggml-cuda.so` → `CUDA` */
12
+ export declare function parseLoadedBackend(line: string): string | undefined;
13
+ /** `load_tensors: offloaded 33/33 layers to GPU` → [33, 33] */
14
+ export declare function parseOffloadedLayers(line: string): [number, number] | undefined;
15
+ /** `load_tensors: offloading 32 repeating layers to GPU` → 32 */
16
+ export declare function parseRepeatingLayers(line: string): number | undefined;
17
+ export declare function parseSize(text: string): number | undefined;
18
+ /** `load_tensors: CUDA0 model buffer size = 4155.99 MiB` → ['CUDA0', bytes] */
19
+ export declare function parseModelBuffer(line: string): [string, number] | undefined;
20
+ export declare class RuntimeDeviceAccumulator {
21
+ private loadedBackends;
22
+ private buffers;
23
+ private gpuLayersOffloaded;
24
+ private totalLayers;
25
+ private cudaRuntimeMissing;
26
+ private deviceInitError;
27
+ /** Recorded at spawn time by the CUDA-path probe, before any log line. */
28
+ markCudaRuntimeMissing(): void;
29
+ ingest(line: string): void;
30
+ snapshot(): RuntimeDeviceInfo;
31
+ }
32
+ /** True when the log carried nothing recognisable; callers must not conclude anything from it. */
33
+ export declare function isInconclusive(info: RuntimeDeviceInfo): boolean;
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Which device the loaded model actually runs on, derived from the `llama-server` startup log.
3
+ * Port of `src-tauri/plugins/tauri-plugin-llamacpp-upstream/src/runtime_device.rs`.
4
+ * Pinned by `test/contract/runtime-device.test.ts`.
5
+ *
6
+ * `--list-devices` only says what a binary can enumerate; the startup log is the only signal that
7
+ * tells a healthy GPU load from a CUDA/Vulkan build that silently degraded to CPU.
8
+ */
9
+ import { floatAsU64, parseRustF64, parseRustI32 } from '../../util/index.js';
10
+ const DEVICE_INIT_ERROR_MARKERS = [
11
+ 'failed to initialize CUDA',
12
+ 'no CUDA devices found',
13
+ 'error while loading shared libraries',
14
+ 'failed to load backend',
15
+ 'ggml_vulkan: No devices found',
16
+ 'no usable GPU found',
17
+ ];
18
+ export function parseDeviceInitError(line) {
19
+ const trimmed = line.trim();
20
+ return DEVICE_INIT_ERROR_MARKERS.some((m) => trimmed.includes(m)) ? trimmed : undefined;
21
+ }
22
+ /** `load_backend: loaded CUDA backend from /path/libggml-cuda.so` → `CUDA` */
23
+ export function parseLoadedBackend(line) {
24
+ const i = line.indexOf('load_backend: loaded ');
25
+ if (i < 0)
26
+ return undefined;
27
+ const rest = line.slice(i + 'load_backend: loaded '.length);
28
+ const j = rest.indexOf(' backend');
29
+ if (j < 0)
30
+ return undefined;
31
+ const name = rest.slice(0, j).trim();
32
+ return name === '' ? undefined : name;
33
+ }
34
+ /** `load_tensors: offloaded 33/33 layers to GPU` → [33, 33] */
35
+ export function parseOffloadedLayers(line) {
36
+ if (!line.includes('layers to GPU'))
37
+ return undefined;
38
+ const i = line.indexOf('offloaded ');
39
+ if (i < 0)
40
+ return undefined;
41
+ const ratio = line
42
+ .slice(i + 'offloaded '.length)
43
+ .split(/\s+/)
44
+ .find((t) => t !== '');
45
+ if (ratio === undefined)
46
+ return undefined;
47
+ const slash = ratio.indexOf('/');
48
+ if (slash < 0)
49
+ return undefined;
50
+ const offloaded = parseRustI32(ratio.slice(0, slash).trim());
51
+ const total = parseRustI32(ratio.slice(slash + 1).trim());
52
+ return offloaded === undefined || total === undefined ? undefined : [offloaded, total];
53
+ }
54
+ /** `load_tensors: offloading 32 repeating layers to GPU` → 32 */
55
+ export function parseRepeatingLayers(line) {
56
+ if (!line.includes('repeating layers to GPU'))
57
+ return undefined;
58
+ const i = line.indexOf('offloading ');
59
+ if (i < 0)
60
+ return undefined;
61
+ const first = line
62
+ .slice(i + 'offloading '.length)
63
+ .split(/\s+/)
64
+ .find((t) => t !== '');
65
+ return first === undefined ? undefined : parseRustI32(first);
66
+ }
67
+ export function parseSize(text) {
68
+ const parts = text.split(/\s+/).filter((t) => t !== '');
69
+ const value = parts[0] === undefined ? undefined : parseRustF64(parts[0]);
70
+ if (value === undefined)
71
+ return undefined;
72
+ const unit = parts[1] ?? 'B';
73
+ const multiplier = unit === 'GiB' ? 1024 ** 3 : unit === 'MiB' ? 1024 ** 2 : unit === 'KiB' ? 1024 : 1;
74
+ if (value < 0)
75
+ return undefined;
76
+ return floatAsU64(value * multiplier);
77
+ }
78
+ /** `load_tensors: CUDA0 model buffer size = 4155.99 MiB` → ['CUDA0', bytes] */
79
+ export function parseModelBuffer(line) {
80
+ const i = line.indexOf(' model buffer size =');
81
+ if (i < 0)
82
+ return undefined;
83
+ const head = line.slice(0, i);
84
+ const tail = line.slice(i + ' model buffer size ='.length);
85
+ if (!head.includes('load_tensors:'))
86
+ return undefined;
87
+ const colon = head.lastIndexOf(':');
88
+ if (colon < 0)
89
+ return undefined;
90
+ const label = head.slice(colon + 1).trim();
91
+ if (label === '')
92
+ return undefined;
93
+ const bytes = parseSize(tail);
94
+ return bytes === undefined ? undefined : [label, bytes];
95
+ }
96
+ const isCpuBufferLabel = (label) => label === 'CPU' || label.startsWith('CPU_');
97
+ export class RuntimeDeviceAccumulator {
98
+ loadedBackends = [];
99
+ buffers = new Map();
100
+ gpuLayersOffloaded = null;
101
+ totalLayers = null;
102
+ cudaRuntimeMissing = false;
103
+ deviceInitError = null;
104
+ /** Recorded at spawn time by the CUDA-path probe, before any log line. */
105
+ markCudaRuntimeMissing() {
106
+ this.cudaRuntimeMissing = true;
107
+ }
108
+ ingest(line) {
109
+ if (this.deviceInitError === null) {
110
+ const err = parseDeviceInitError(line);
111
+ if (err !== undefined)
112
+ this.deviceInitError = err;
113
+ }
114
+ const backend = parseLoadedBackend(line);
115
+ if (backend !== undefined) {
116
+ if (!this.loadedBackends.includes(backend))
117
+ this.loadedBackends.push(backend);
118
+ return;
119
+ }
120
+ const offloaded = parseOffloadedLayers(line);
121
+ if (offloaded !== undefined) {
122
+ this.gpuLayersOffloaded = offloaded[0];
123
+ this.totalLayers = offloaded[1];
124
+ return;
125
+ }
126
+ const repeating = parseRepeatingLayers(line);
127
+ if (repeating !== undefined) {
128
+ if (this.gpuLayersOffloaded === null)
129
+ this.gpuLayersOffloaded = repeating;
130
+ return;
131
+ }
132
+ const buffer = parseModelBuffer(line);
133
+ if (buffer !== undefined) {
134
+ const [label, bytes] = buffer;
135
+ this.buffers.set(label, Math.max(this.buffers.get(label) ?? 0, bytes));
136
+ }
137
+ }
138
+ snapshot() {
139
+ let largest;
140
+ for (const [label, bytes] of this.buffers) {
141
+ if (isCpuBufferLabel(label) || bytes <= 0)
142
+ continue;
143
+ // Larger wins; on a tie the lexicographically smaller label wins (deterministic splits).
144
+ if (largest === undefined || bytes > largest[1] || (bytes === largest[1] && label < largest[0])) {
145
+ largest = [label, bytes];
146
+ }
147
+ }
148
+ const nothingOffloaded = this.gpuLayersOffloaded === 0;
149
+ const primaryDevice = largest !== undefined && !nothingOffloaded ? largest[0] : this.buffers.size > 0 ? 'CPU' : '';
150
+ return {
151
+ loaded_backends: [...this.loadedBackends],
152
+ primary_device: primaryDevice,
153
+ gpu_layers_offloaded: this.gpuLayersOffloaded,
154
+ total_layers: this.totalLayers,
155
+ gpu_buffer_bytes: largest === undefined ? null : largest[1],
156
+ cuda_runtime_missing: this.cudaRuntimeMissing,
157
+ device_init_error: this.deviceInitError,
158
+ };
159
+ }
160
+ }
161
+ /** True when the log carried nothing recognisable; callers must not conclude anything from it. */
162
+ export function isInconclusive(info) {
163
+ return (info.loaded_backends.length === 0 &&
164
+ info.primary_device === '' &&
165
+ info.gpu_layers_offloaded === null &&
166
+ !info.cuda_runtime_missing &&
167
+ info.device_init_error === null);
168
+ }
169
+ //# sourceMappingURL=runtime-device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-device.js","sourceRoot":"","sources":["../../../src/runtime/llamacpp/runtime-device.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * The live half of the llama.cpp runtime: it turns a load plan into a running `llama-server` and
3
+ * keeps the session table the app's `model-factory.ts`, the Rust agent and `/v1` all read
4
+ * (PLAN.md §3.2, §3.3). Policy lives in `load-plan.ts` and `args.ts`; this file owns processes.
5
+ *
6
+ * What it guarantees:
7
+ * - a session exists only while its process does — the exit watcher removes it and emits
8
+ * `session:died`, so nothing dials a dead port;
9
+ * - every spawned process is journalled *before* it can be forgotten, so a crashed owner leaves a
10
+ * trail the next owner can clean up (PLAN.md §3.4);
11
+ * - the two post-failure retries of `performLoad` (drop mmproj, drop MTP) happen here, once each;
12
+ * - stderr is fed to the device accumulator while loading, which is the only place llama.cpp says
13
+ * which device it actually used;
14
+ * - a load the user cancels stops wherever it is — queued, planning, spawning or just ready — kills
15
+ * what it started at once, and never falls into a retry.
16
+ */
17
+ import type { CoreEvents, DeviceInfo, LocalProviderId, RuntimeDeviceInfo, SessionInfo, UnloadResult } from '../../contracts/index.js';
18
+ import type { DataLayout } from '../../config/index.js';
19
+ import type { ProcessJournal } from '../../lock/index.js';
20
+ import type { ModelRegistry } from '../../models/index.js';
21
+ import { spawnAndAwaitReady } from '../shared/index.js';
22
+ import type { ManagedProcess, SpawnSpec, CtxIncreaseResult, LocalRuntime, RecreateResult } from '../shared/index.js';
23
+ import type { LlamacppConfigInput } from './args.js';
24
+ import type { LlamacppEngineSettings, LoadPlanDeps } from './load-plan.js';
25
+ export type EmitFn = <K extends keyof CoreEvents>(name: K, payload: CoreEvents[K]) => void;
26
+ export interface RuntimeSettings {
27
+ config: LlamacppConfigInput;
28
+ engine: LlamacppEngineSettings;
29
+ }
30
+ export type { CtxIncreaseResult } from '../shared/index.js';
31
+ export interface LoadOptions {
32
+ /** Per-model overrides, canonical keys (the `settings` argument of the extension's `load()`). */
33
+ overrides?: Partial<LlamacppConfigInput>;
34
+ isEmbedding?: boolean;
35
+ /** Use this executable instead of resolving one (CLI `--bin`). */
36
+ exePath?: string;
37
+ /** Feature-gating tag for an explicit executable; neutral when omitted. */
38
+ versionBackend?: string;
39
+ /** Explicit model/projector paths bypass `model.yml` resolution (CLI flags). */
40
+ modelPath?: string;
41
+ mmprojPath?: string;
42
+ /** Exact readiness timeout for CLI parity; provider loads keep the application floor. */
43
+ timeoutSecs?: number;
44
+ /** Append backend stdout/stderr to this path for the lifetime of the session. */
45
+ logPath?: string;
46
+ /** Relay backend stdout/stderr through authenticated `core:log` events. */
47
+ verbose?: boolean;
48
+ /** Bind the server to this port instead of a random free one (CLI `--port`). */
49
+ port?: number;
50
+ /** Skip the auto-unload of other text models. */
51
+ bypassAutoUnload?: boolean;
52
+ /** Aborted when the user cancels this load; the load rejects with `MODEL_LOAD_CANCELLED`. */
53
+ signal?: AbortSignal;
54
+ }
55
+ export interface LlamacppRuntimeOptions {
56
+ layout: DataLayout;
57
+ registry: ModelRegistry;
58
+ /** Owner instance that will be recorded as the parent of every spawned process. */
59
+ instanceId: string;
60
+ provider?: LocalProviderId;
61
+ journal?: ProcessJournal | undefined;
62
+ emit?: EmitFn;
63
+ platform?: NodeJS.Platform;
64
+ baseEnv?: NodeJS.ProcessEnv;
65
+ fetch?: typeof fetch;
66
+ /** Provider settings for a load; re-read per load so a settings change lands on the next one. */
67
+ readSettings: () => Promise<RuntimeSettings>;
68
+ /** Resolve `<version>/<backend>` to an installed executable (the backend service in a full core). */
69
+ ensureBackendReady?: LoadPlanDeps['ensureBackendReady'] | undefined;
70
+ resolveLatestBackend?: LoadPlanDeps['resolveLatestBackend'] | undefined;
71
+ cpuInfo?: LoadPlanDeps['cpuInfo'] | undefined;
72
+ ensureGemmaMtpDraft?: LoadPlanDeps['ensureGemmaMtpDraft'] | undefined;
73
+ ensureDflashDraft?: LoadPlanDeps['ensureDflashDraft'] | undefined;
74
+ /** Model that must never be auto-unloaded. */
75
+ transcriptionModelId?: string;
76
+ /**
77
+ * Read a model's GGUF metadata. A seam because the model's trained context comes from here, and
78
+ * it is what decides when the context ladder has nowhere left to climb — untestable otherwise
79
+ * without hand-building a GGUF file.
80
+ */
81
+ readGgufMetadata?: LoadPlanDeps['readGgufMetadata'] | undefined;
82
+ /** Test seam. */
83
+ spawn?: typeof spawnAndAwaitReady | undefined;
84
+ probeDevicesWith?: ((spec: SpawnSpec) => ManagedProcess) | undefined;
85
+ }
86
+ export declare const DEVICE_PROBE_TIMEOUT_MS = 10000;
87
+ export declare class LlamacppRuntime implements LocalRuntime {
88
+ private readonly options;
89
+ private readonly sessions;
90
+ private readonly loading;
91
+ private loadTail;
92
+ private readonly shutdownController;
93
+ private closing;
94
+ private shutdownPromise;
95
+ private readonly provider;
96
+ private readonly platform;
97
+ private readonly emit;
98
+ private readonly fetchImpl;
99
+ constructor(options: LlamacppRuntimeOptions);
100
+ list(): SessionInfo[];
101
+ findSession(modelId: string): SessionInfo | undefined;
102
+ getLoadedModels(): string[];
103
+ getRuntimeDeviceInfo(modelId: string): RuntimeDeviceInfo | undefined;
104
+ getMaxCtxTrain(modelId: string): number | undefined;
105
+ isLoading(modelId: string): boolean;
106
+ /** Load a model, or join the load already in flight for it. */
107
+ load(modelId: string, opts?: LoadOptions): Promise<SessionInfo>;
108
+ private loadOnce;
109
+ private enqueueLoad;
110
+ private planDeps;
111
+ /** Ports this runtime already handed out, so a second load never lands on the same one. */
112
+ private usedPorts;
113
+ private spawnSession;
114
+ private journalSpawn;
115
+ private watchExit;
116
+ private reportRuntimeDevice;
117
+ private healthy;
118
+ /** Stop one session. Unloading something that is not loaded is not an error. */
119
+ unload(modelId: string): Promise<UnloadResult>;
120
+ /** The context window a loaded session is actually running with. */
121
+ getCtxSize(modelId: string): number | undefined;
122
+ /**
123
+ * Reload a model with the next context size up the ladder, because a request did not fit.
124
+ *
125
+ * Ported from the app's `auto_increase_ctx` handler, including the two cases where it declines:
126
+ *
127
+ * - `fit`: with fit on, llama.cpp sizes the window itself at load and `--ctx-size` is not even
128
+ * emitted, so a reload would change nothing and cost the user a model load.
129
+ * - `at_max`: the ladder has reached what the model was trained for. Reloading at the same size
130
+ * would loop — the next request would overflow again and ask again.
131
+ *
132
+ * The unload is allowed to fail: a session that is already gone is still a reload candidate, and
133
+ * refusing to reload because the corpse would not die is worse than reloading.
134
+ */
135
+ autoIncreaseCtx(modelId: string, reason?: string): Promise<CtxIncreaseResult>;
136
+ /**
137
+ * Reload a model at the context it already has, because its engine is unusable: a fatal compute
138
+ * failure (a Metal OOM during prompt processing) leaves the ggml backend in an error state that
139
+ * only a new process clears. The window is deliberately not grown — more context would only make
140
+ * an out-of-memory failure more likely. As with `autoIncreaseCtx`, a failed unload does not stop
141
+ * the reload.
142
+ */
143
+ recreateSession(modelId: string): Promise<RecreateResult>;
144
+ private unloadSession;
145
+ unloadAll(): Promise<void>;
146
+ /** `llama-server --list-devices` against an installed backend. */
147
+ getDevices(exePath: string): Promise<DeviceInfo[]>;
148
+ shutdown(): Promise<void>;
149
+ dispose(): Promise<void>;
150
+ private assertRunning;
151
+ }