@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,58 @@
1
+ /**
2
+ * The Local API Server: the OpenAI- and Anthropic-compatible listener (`:1337/v1` by default) that
3
+ * external agents and the app's own chat talk to. Separate from the control listener on purpose: it
4
+ * can be started, stopped and rebound without touching control, sessions or the event stream
5
+ * (PLAN.md §3.6, risk 1).
6
+ *
7
+ * Ported from: src-tauri/src/core/server/proxy.rs (`inner_proxy_request`, `start_server_internal`).
8
+ * Contract: test/fixtures/app/proxy-http, replayed by test/contract/proxy-http.test.ts.
9
+ *
10
+ * A request passes, in this order: CORS preflight (answered outright), prefix removal, the
11
+ * host/key/hidden-path gates, then routing. The trusted hosts those gates read are the configured
12
+ * ones plus a group that is only known per request (the live tunnel name, the accepted socket's
13
+ * address); it is appended to a copy, so the gates themselves and the listener's identity stay as
14
+ * they were. Per-session engine keys never leave the server:
15
+ * clients authenticate with the server's own key and the upstream key is attached on the way out.
16
+ */
17
+ import type { IncomingMessage, ServerResponse } from 'node:http';
18
+ import type { LocalApiServerState } from '../../contracts/index.js';
19
+ import type { PublicServerConfig, PublicServerDeps } from './types.js';
20
+ export type { CtxIncreaseOutcome, ImagesBackend, LocalTarget, PublicServerConfig, PublicServerDeps, VideosBackend, } from './types.js';
21
+ export { isValidHost, removePrefix } from './gates.js';
22
+ export { DynamicTrustedHosts, socketAddressLiteral } from './dynamic-hosts.js';
23
+ export declare const DEFAULT_PUBLIC_PORT = 1337;
24
+ export declare const DEFAULT_PUBLIC_HOST = "127.0.0.1";
25
+ export declare const DEFAULT_PUBLIC_PREFIX = "/v1";
26
+ /** The app's default for "proxy timeout", in seconds. */
27
+ export declare const DEFAULT_PROXY_TIMEOUT_SECS = 600;
28
+ export interface PublicServerOptions {
29
+ host?: string;
30
+ port?: number;
31
+ prefix?: string;
32
+ /** Key clients must present; empty means the server is open (host checks still apply). */
33
+ apiKey?: string;
34
+ /** Hosts accepted besides the built-in loopback names; `*` accepts every host. */
35
+ trustedHosts?: string[];
36
+ proxyTimeoutSecs?: number;
37
+ /**
38
+ * When the requested port cannot be bound, take any free port instead of failing — what the app's
39
+ * own server has always done (ATO-189: a port held by another process, or inside a Windows
40
+ * excluded range). The bound port is reported back. Only a failure to bind even a free port fails.
41
+ */
42
+ fallbackPort?: boolean;
43
+ }
44
+ export declare function normalizePrefix(prefix: string): string;
45
+ export declare function handlePublicRequest(req: IncomingMessage, res: ServerResponse, listener: PublicServerConfig, deps: PublicServerDeps): Promise<void>;
46
+ export declare class PublicServer {
47
+ private readonly server;
48
+ private readonly config;
49
+ private constructor();
50
+ static start(deps: PublicServerDeps, options?: PublicServerOptions): Promise<PublicServer>;
51
+ get host(): string;
52
+ get port(): number;
53
+ get prefix(): string;
54
+ get url(): string;
55
+ state(): LocalApiServerState;
56
+ close(): Promise<void>;
57
+ }
58
+ export declare function stoppedState(previous?: LocalApiServerState): LocalApiServerState;
@@ -0,0 +1,253 @@
1
+ /**
2
+ * The Local API Server: the OpenAI- and Anthropic-compatible listener (`:1337/v1` by default) that
3
+ * external agents and the app's own chat talk to. Separate from the control listener on purpose: it
4
+ * can be started, stopped and rebound without touching control, sessions or the event stream
5
+ * (PLAN.md §3.6, risk 1).
6
+ *
7
+ * Ported from: src-tauri/src/core/server/proxy.rs (`inner_proxy_request`, `start_server_internal`).
8
+ * Contract: test/fixtures/app/proxy-http, replayed by test/contract/proxy-http.test.ts.
9
+ *
10
+ * A request passes, in this order: CORS preflight (answered outright), prefix removal, the
11
+ * host/key/hidden-path gates, then routing. The trusted hosts those gates read are the configured
12
+ * ones plus a group that is only known per request (the live tunnel name, the accepted socket's
13
+ * address); it is appended to a copy, so the gates themselves and the listener's identity stay as
14
+ * they were. Per-session engine keys never leave the server:
15
+ * clients authenticate with the server's own key and the upstream key is attached on the way out.
16
+ */
17
+ import { createServer } from 'node:http';
18
+ import { AtomicCoreError } from '../../contracts/index.js';
19
+ import { captureReport, internalErrorReport } from '../../telemetry/index.js';
20
+ import { answer, newExchange } from './exchange.js';
21
+ import { serveForward } from './forward.js';
22
+ import { serveImagesGenerations } from './images.js';
23
+ import { serveVideos } from './videos.js';
24
+ import { matchVideoPath } from './videos-params.js';
25
+ import { serveSubscriptionIfOwned } from './subscription.js';
26
+ import { gate, preflight, removePrefix } from './gates.js';
27
+ import { serveMetrics, serveModels, serveMuseCatalog } from './listing.js';
28
+ import { serveResponses } from './responses.js';
29
+ import { serveStatic } from './static.js';
30
+ import { RequestTrace, endpointFromPath } from './trace.js';
31
+ import { sendWhole } from './wire.js';
32
+ export { isValidHost, removePrefix } from './gates.js';
33
+ export { DynamicTrustedHosts, socketAddressLiteral } from './dynamic-hosts.js';
34
+ export const DEFAULT_PUBLIC_PORT = 1337;
35
+ export const DEFAULT_PUBLIC_HOST = '127.0.0.1';
36
+ export const DEFAULT_PUBLIC_PREFIX = '/v1';
37
+ /** The app's default for "proxy timeout", in seconds. */
38
+ export const DEFAULT_PROXY_TIMEOUT_SECS = 600;
39
+ /** Routes the server knows, and the only method each accepts: anything else there is a 405. */
40
+ const ALLOWED_METHODS = {
41
+ '/': 'GET',
42
+ '/openapi.json': 'GET',
43
+ '/docs/swagger-ui.css': 'GET',
44
+ '/docs/swagger-ui-bundle.js': 'GET',
45
+ '/models': 'GET',
46
+ '/metrics': 'GET',
47
+ '/muse-code/models': 'GET',
48
+ '/messages': 'POST',
49
+ '/chat/completions': 'POST',
50
+ '/responses': 'POST',
51
+ '/completions': 'POST',
52
+ '/embeddings': 'POST',
53
+ '/messages/count_tokens': 'POST',
54
+ '/images/generations': 'POST',
55
+ };
56
+ const FORWARDED = new Set([
57
+ '/messages',
58
+ '/chat/completions',
59
+ '/completions',
60
+ '/embeddings',
61
+ '/messages/count_tokens',
62
+ ]);
63
+ export function normalizePrefix(prefix) {
64
+ const trimmed = prefix.trim();
65
+ if (!trimmed || trimmed === '/')
66
+ return '';
67
+ const withSlash = trimmed.startsWith('/') ? trimmed : `/${trimmed}`;
68
+ return withSlash.endsWith('/') ? withSlash.slice(0, -1) : withSlash;
69
+ }
70
+ /** The path of a request target, whether origin-form (`/v1/models?x`) or absolute-form. */
71
+ function requestPath(url) {
72
+ let target = url ?? '/';
73
+ const scheme = /^[a-z][a-z0-9+.-]*:\/\/[^/]*/i.exec(target);
74
+ if (scheme)
75
+ target = target.slice(scheme[0].length) || '/';
76
+ const q = target.indexOf('?');
77
+ return q >= 0 ? target.slice(0, q) : target;
78
+ }
79
+ /** The configuration one request is checked against: the listener's, plus what is trusted just for it. */
80
+ function configFor(req, listener, deps) {
81
+ const dynamic = deps.dynamicTrustedHosts?.(req.socket.localAddress) ?? [];
82
+ return dynamic.length === 0
83
+ ? listener
84
+ : { ...listener, trustedHosts: [...listener.trustedHosts, ...dynamic] };
85
+ }
86
+ export async function handlePublicRequest(req, res, listener, deps) {
87
+ const trace = new RequestTrace(req.method ?? 'GET', deps);
88
+ trace.attach(res);
89
+ const config = configFor(req, listener, deps);
90
+ if (req.method === 'OPTIONS') {
91
+ // Preflight is browser bookkeeping, not a product signal, whatever its outcome.
92
+ trace.skipEmit = true;
93
+ const r = preflight(req, config);
94
+ sendWhole(res, r.status, r.headers, r.body);
95
+ return;
96
+ }
97
+ const path = removePrefix(requestPath(req.url), config.prefix);
98
+ const refused = gate(req, path, config);
99
+ if (refused) {
100
+ if (refused.kind === 'hidden')
101
+ trace.skipEmit = true;
102
+ else {
103
+ trace.endpoint = endpointFromPath(path);
104
+ trace.errorKind = refused.kind ?? null;
105
+ }
106
+ sendWhole(res, refused.status, refused.headers, refused.body);
107
+ return;
108
+ }
109
+ const ex = newExchange(req, res, path, config, deps, trace);
110
+ if (ex.method === 'POST') {
111
+ if (path === '/responses')
112
+ return serveResponses(ex);
113
+ // A model served by the ChatGPT subscription speaks another protocol and takes other headers,
114
+ // so it is answered in full here and never reaches the generic forwarder.
115
+ if (path === '/chat/completions' && deps.chatgpt && (await serveSubscriptionIfOwned(ex, deps.chatgpt)))
116
+ return;
117
+ if (FORWARDED.has(path))
118
+ return serveForward(ex);
119
+ // Served here, never forwarded: the image model is the core's own, and it is not in `/models`.
120
+ if (path === '/images/generations') {
121
+ trace.endpoint = endpointFromPath(path);
122
+ return serveImagesGenerations(ex);
123
+ }
124
+ }
125
+ if (ex.method === 'GET') {
126
+ // Model polling, metrics scraping and the docs are client bookkeeping: never reported.
127
+ if (path === '/models' || path === '/muse-code/models' || path === '/metrics') {
128
+ trace.endpoint = endpointFromPath(path);
129
+ trace.skipEmit = true;
130
+ }
131
+ if (path === '/models')
132
+ return serveModels(ex);
133
+ if (path === '/muse-code/models')
134
+ return serveMuseCatalog(ex);
135
+ if (path === '/metrics')
136
+ return serveMetrics(ex);
137
+ if (serveStatic(ex)) {
138
+ trace.skipEmit = true;
139
+ return;
140
+ }
141
+ }
142
+ // Served here, never forwarded: the video model is the core's own, and it is not in `/models`.
143
+ const video = matchVideoPath(path);
144
+ if (video) {
145
+ trace.endpoint = endpointFromPath(path);
146
+ return serveVideos(ex, video);
147
+ }
148
+ const allowed = ALLOWED_METHODS[path];
149
+ if (allowed) {
150
+ trace.endpoint = endpointFromPath(path);
151
+ trace.errorKind = 'method_not_allowed';
152
+ answer(ex, 405, 'Method Not Allowed', [['Allow', allowed]]);
153
+ return;
154
+ }
155
+ // Catch-all 404s are mostly scanners and misconfigured clients: no product signal.
156
+ trace.skipEmit = true;
157
+ answer(ex, 404, 'Not Found');
158
+ }
159
+ export class PublicServer {
160
+ server;
161
+ config;
162
+ constructor(server, config) {
163
+ this.server = server;
164
+ this.config = config;
165
+ }
166
+ static async start(deps, options = {}) {
167
+ const host = options.host ?? DEFAULT_PUBLIC_HOST;
168
+ const port = options.port ?? DEFAULT_PUBLIC_PORT;
169
+ // The OpenAPI document advertises the bound port, so the config is completed after listening.
170
+ const config = {
171
+ host,
172
+ port,
173
+ prefix: normalizePrefix(options.prefix ?? DEFAULT_PUBLIC_PREFIX),
174
+ apiKey: options.apiKey ?? '',
175
+ trustedHosts: [...(options.trustedHosts ?? [])],
176
+ proxyTimeoutSecs: options.proxyTimeoutSecs ?? DEFAULT_PROXY_TIMEOUT_SECS,
177
+ };
178
+ // `requireHostHeader: false` lets a request without `Host` reach the gate, which answers it with
179
+ // the proxy's own 400 instead of Node's bare one.
180
+ const server = createServer({ requireHostHeader: false }, (req, res) => {
181
+ handlePublicRequest(req, res, config, deps).catch((e) => {
182
+ captureReport(deps.errors, internalErrorReport({ source: 'public_server', error: e, status: 500 }));
183
+ if (res.headersSent)
184
+ res.destroy(e);
185
+ else
186
+ sendWhole(res, 500, [], 'Internal server error');
187
+ });
188
+ });
189
+ const listen = (bindPort) => new Promise((resolve, reject) => {
190
+ const onError = (e) => {
191
+ reject(e.code === 'EADDRINUSE'
192
+ ? new AtomicCoreError('IO_ERROR', `Port ${bindPort} is already in use.`, `${host}:${bindPort}`)
193
+ : e);
194
+ };
195
+ server.once('error', onError);
196
+ server.listen(bindPort, host, () => {
197
+ server.off('error', onError);
198
+ resolve();
199
+ });
200
+ });
201
+ try {
202
+ await listen(port);
203
+ }
204
+ catch (e) {
205
+ if (!options.fallbackPort || port === 0)
206
+ throw e;
207
+ await listen(0).catch((fallback) => {
208
+ throw new AtomicCoreError('IO_ERROR', `Cannot listen on ${host}:${port}, nor on any free port there.`, `${e.message}; fallback: ${fallback.message}`);
209
+ });
210
+ }
211
+ const address = server.address();
212
+ if (typeof address === 'object' && address)
213
+ config.port = address.port;
214
+ return new PublicServer(server, config);
215
+ }
216
+ get host() {
217
+ return this.config.host;
218
+ }
219
+ get port() {
220
+ return this.config.port;
221
+ }
222
+ get prefix() {
223
+ return this.config.prefix;
224
+ }
225
+ get url() {
226
+ return `http://${this.host}:${this.port}${this.prefix}`;
227
+ }
228
+ state() {
229
+ return {
230
+ running: true,
231
+ host: this.host,
232
+ port: this.port,
233
+ prefix: this.prefix,
234
+ requires_api_key: this.config.apiKey.length > 0,
235
+ pid: process.pid,
236
+ };
237
+ }
238
+ async close() {
239
+ this.server.closeAllConnections?.();
240
+ await new Promise((resolve) => this.server.close(() => resolve()));
241
+ }
242
+ }
243
+ export function stoppedState(previous) {
244
+ return {
245
+ running: false,
246
+ host: previous?.host ?? DEFAULT_PUBLIC_HOST,
247
+ port: previous?.port ?? DEFAULT_PUBLIC_PORT,
248
+ prefix: previous?.prefix ?? DEFAULT_PUBLIC_PREFIX,
249
+ requires_api_key: previous?.requires_api_key ?? false,
250
+ pid: null,
251
+ };
252
+ }
253
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/public/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * What the server can route to: the OpenAI model list, Muse Code's catalogue, and llama-server's
3
+ * Prometheus metrics for one loaded model.
4
+ *
5
+ * Ported from: src-tauri/src/core/server/proxy.rs (`collect_served_models`, `muse_catalog_entry`,
6
+ * the `/models`, `/muse-code/models` and `/metrics` arms).
7
+ */
8
+ import type { JsonValue } from '../shims/index.js';
9
+ import type { Exchange } from './exchange.js';
10
+ export declare function servedModels(ex: Exchange): Array<{
11
+ id: string;
12
+ ownedBy: string;
13
+ }>;
14
+ export declare function serveModels(ex: Exchange): void;
15
+ export declare function serveMuseCatalog(ex: Exchange): void;
16
+ /**
17
+ * One row of Muse Code's catalogue. `modalities.input` claims text only and `reasoning` is false,
18
+ * because the server cannot know either per model and the safe answer never sends a text-only model
19
+ * an image or a reasoning parameter. `tool_call` must stay true: without it Muse has no agent loop.
20
+ */
21
+ export declare function museCatalogEntry(modelId: string, ownedBy: string): JsonValue;
22
+ /**
23
+ * `GET /metrics?model=<id>` (or `X-Model`). llama.cpp is the only engine with a Prometheus exporter,
24
+ * so MLX sessions are deliberately not considered. llama-server serves it at its root, not under
25
+ * `/v1`, and behind the session key.
26
+ */
27
+ export declare function serveMetrics(ex: Exchange): Promise<void>;
@@ -0,0 +1,116 @@
1
+ /**
2
+ * What the server can route to: the OpenAI model list, Muse Code's catalogue, and llama-server's
3
+ * Prometheus metrics for one loaded model.
4
+ *
5
+ * Ported from: src-tauri/src/core/server/proxy.rs (`collect_served_models`, `muse_catalog_entry`,
6
+ * the `/models`, `/muse-code/models` and `/metrics` arms).
7
+ */
8
+ import { serdeToString } from '../shims/index.js';
9
+ import { answer, connectTimeoutMs, header } from './exchange.js';
10
+ import { readBody, sendUpstream } from './wire.js';
11
+ /**
12
+ * Advertised to Muse Code, which compacts a conversation as it nears the advertised context. The
13
+ * server does not know a session's real window, so these under-estimate on purpose: guessing low
14
+ * costs an earlier compaction, guessing high costs hard overflow errors mid-run.
15
+ */
16
+ const MUSE_LOCAL_CONTEXT_LIMIT = 32_768;
17
+ const MUSE_REMOTE_CONTEXT_LIMIT = 200_000;
18
+ const MUSE_OUTPUT_LIMIT = 32_768;
19
+ /** `owned_by` is the label this endpoint has always used, not the provider id. */
20
+ const OWNED_BY = {
21
+ 'llamacpp': 'llama.cpp',
22
+ 'llamacpp-upstream': 'llama.cpp-upstream',
23
+ 'mlx': 'mlx',
24
+ };
25
+ export function servedModels(ex) {
26
+ const models = ex.deps.listLocal().map((s) => ({ id: s.modelId, ownedBy: OWNED_BY[s.provider] }));
27
+ for (const provider of ex.deps.providers().values()) {
28
+ for (const id of provider.models)
29
+ models.push({ id, ownedBy: 'remote' });
30
+ }
31
+ return models;
32
+ }
33
+ export function serveModels(ex) {
34
+ const data = servedModels(ex).map((m) => ({ id: m.id, object: 'model', created: 1, owned_by: m.ownedBy }));
35
+ answer(ex, 200, serdeToString({ object: 'list', data }), [['Content-Type', 'application/json']]);
36
+ }
37
+ export function serveMuseCatalog(ex) {
38
+ const data = servedModels(ex).map((m) => museCatalogEntry(m.id, m.ownedBy));
39
+ answer(ex, 200, serdeToString({ object: 'list', data }), [['Content-Type', 'application/json']]);
40
+ }
41
+ /**
42
+ * One row of Muse Code's catalogue. `modalities.input` claims text only and `reasoning` is false,
43
+ * because the server cannot know either per model and the safe answer never sends a text-only model
44
+ * an image or a reasoning parameter. `tool_call` must stay true: without it Muse has no agent loop.
45
+ */
46
+ export function museCatalogEntry(modelId, ownedBy) {
47
+ const context = ownedBy === 'remote' ? MUSE_REMOTE_CONTEXT_LIMIT : MUSE_LOCAL_CONTEXT_LIMIT;
48
+ return {
49
+ id: modelId,
50
+ object: 'model',
51
+ created: 1,
52
+ owned_by: ownedBy,
53
+ metadata: {
54
+ 'muse-code': {
55
+ name: modelId,
56
+ family: ownedBy,
57
+ release_date: '2026-01-01',
58
+ is_hidden: false,
59
+ attachment: false,
60
+ reasoning: false,
61
+ temperature: false,
62
+ tool_call: true,
63
+ modalities: { input: ['text'], output: ['text'] },
64
+ limit: { context, output: MUSE_OUTPUT_LIMIT },
65
+ options: { include: [], temperature: 0.9, top_p: 0.9 },
66
+ variants: {},
67
+ description: `${modelId} via Atomic Chat`,
68
+ cost: { input: '0', output: '0', cached: '0', currency: 'USD' },
69
+ },
70
+ },
71
+ };
72
+ }
73
+ /**
74
+ * `GET /metrics?model=<id>` (or `X-Model`). llama.cpp is the only engine with a Prometheus exporter,
75
+ * so MLX sessions are deliberately not considered. llama-server serves it at its root, not under
76
+ * `/v1`, and behind the session key.
77
+ */
78
+ export async function serveMetrics(ex) {
79
+ // The query value is taken as sent, not percent-decoded, as the proxy did. An empty `model=` is
80
+ // still "given" and does not fall back to the header.
81
+ const fromQuery = ex.query
82
+ ?.split('&')
83
+ .map((pair) => {
84
+ const eq = pair.indexOf('=');
85
+ return eq < 0 ? undefined : pair.slice(0, eq) === 'model' ? pair.slice(eq + 1) : undefined;
86
+ })
87
+ .find((v) => v !== undefined);
88
+ const modelId = fromQuery ?? header(ex.req, 'x-model');
89
+ if (!modelId) {
90
+ answer(ex, 400, "Missing 'model' query parameter (use ?model=<model_id>)");
91
+ return;
92
+ }
93
+ const session = ex.deps.findLocal('llamacpp', modelId) ?? ex.deps.findLocal('llamacpp-upstream', modelId);
94
+ if (!session) {
95
+ answer(ex, 404, `No running llama.cpp session for model '${modelId}'`);
96
+ return;
97
+ }
98
+ const headers = session.apiKey
99
+ ? [['Authorization', `Bearer ${session.apiKey}`]]
100
+ : [];
101
+ try {
102
+ const upstream = await sendUpstream(`http://127.0.0.1:${session.port}/metrics`, {
103
+ method: 'GET',
104
+ headers,
105
+ connectTimeoutMs: connectTimeoutMs(ex),
106
+ });
107
+ const bytes = await readBody(upstream.body).catch(() => Buffer.alloc(0));
108
+ answer(ex, upstream.status, bytes, [
109
+ ['Content-Type', upstream.contentType ?? 'text/plain; version=0.0.4'],
110
+ ]);
111
+ }
112
+ catch (e) {
113
+ answer(ex, 502, `Failed to fetch metrics from llama-server: ${e.message}`);
114
+ }
115
+ }
116
+ //# sourceMappingURL=listing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listing.js","sourceRoot":"","sources":["../../../src/server/public/listing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAEhE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAGlD;;;;GAIG;AACH,MAAM,wBAAwB,GAAG,MAAM,CAAA;AACvC,MAAM,yBAAyB,GAAG,OAAO,CAAA;AACzC,MAAM,iBAAiB,GAAG,MAAM,CAAA;AAEhC,kFAAkF;AAClF,MAAM,QAAQ,GAAkC;IAC9C,UAAU,EAAE,WAAW;IACvB,mBAAmB,EAAE,oBAAoB;IACzC,KAAK,EAAE,KAAK;CACb,CAAA;AAED,MAAM,UAAU,YAAY,CAAC,EAAY;IACvC,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;IACjG,KAAK,MAAM,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;QACpD,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC1E,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAY;IACtC,MAAM,IAAI,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IAC1G,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAA;AAClG,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAY;IAC3C,MAAM,IAAI,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;IAC3E,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAA;AAClG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,OAAe;IAC/D,MAAM,OAAO,GAAG,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,wBAAwB,CAAA;IAC3F,OAAO;QACL,EAAE,EAAE,OAAO;QACX,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE;YACR,WAAW,EAAE;gBACX,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,OAAO;gBACf,YAAY,EAAE,YAAY;gBAC1B,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,KAAK;gBACjB,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE,KAAK;gBAClB,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE;gBACjD,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE;gBAC7C,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;gBACtD,QAAQ,EAAE,EAAE;gBACZ,WAAW,EAAE,GAAG,OAAO,kBAAkB;gBACzC,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;aAChE;SACF;KACF,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EAAY;IAC7C,gGAAgG;IAChG,sDAAsD;IACtD,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK;QACxB,EAAE,KAAK,CAAC,GAAG,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC5B,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC5F,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAA;IAC/B,MAAM,OAAO,GAAG,SAAS,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IACtD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,yDAAyD,CAAC,CAAA;QAC1E,OAAM;IACR,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAA;IACzG,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,2CAA2C,OAAO,GAAG,CAAC,CAAA;QACtE,OAAM;IACR,CAAC;IAED,MAAM,OAAO,GAA4B,OAAO,CAAC,MAAM;QACrD,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,UAAU,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC,EAAE,CAAA;IACN,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,oBAAoB,OAAO,CAAC,IAAI,UAAU,EAAE;YAC9E,MAAM,EAAE,KAAK;YACb,OAAO;YACP,gBAAgB,EAAE,gBAAgB,CAAC,EAAE,CAAC;SACvC,CAAC,CAAA;QACF,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QACxE,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE;YACjC,CAAC,cAAc,EAAE,QAAQ,CAAC,WAAW,IAAI,2BAA2B,CAAC;SACtE,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,8CAA+C,CAAW,CAAC,OAAO,EAAE,CAAC,CAAA;IACvF,CAAC;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * `POST /responses` for Responses-only clients such as Codex CLI.
3
+ *
4
+ * Backends that serve the Responses API natively — MLX and remote providers — get a passthrough.
5
+ * llama.cpp only speaks Chat Completions, so its requests are translated on the way in and its
6
+ * answers (whole or streamed) on the way out.
7
+ *
8
+ * Ported from: src-tauri/src/core/server/proxy.rs (`handle_responses_request`).
9
+ */
10
+ import type { Exchange } from './exchange.js';
11
+ export declare function serveResponses(ex: Exchange): Promise<void>;
@@ -0,0 +1,158 @@
1
+ /**
2
+ * `POST /responses` for Responses-only clients such as Codex CLI.
3
+ *
4
+ * Backends that serve the Responses API natively — MLX and remote providers — get a passthrough.
5
+ * llama.cpp only speaks Chat Completions, so its requests are translated on the way in and its
6
+ * answers (whole or streamed) on the way out.
7
+ *
8
+ * Ported from: src-tauri/src/core/server/proxy.rs (`handle_responses_request`).
9
+ */
10
+ import { ResponsesStreamConverter, chatResponseToResponses, newResponseId, responsesRequestToChat, serdeToString, } from '../shims/index.js';
11
+ import { resolveRemoteProvider } from '../../router/index.js';
12
+ import { answer, clientGone, connectTimeoutMs } from './exchange.js';
13
+ import { outboundHeaders, readModelRequest, sseEvent } from './forward.js';
14
+ import { SseLineReader } from './sse.js';
15
+ import { bodyIndicatesOom, isContextLimitError } from './errors.js';
16
+ import { pipeBody, readBody, readUpstreamText, relay, sendUpstream } from './wire.js';
17
+ export async function serveResponses(ex) {
18
+ const parsed = await readModelRequest(ex);
19
+ if (!parsed)
20
+ return;
21
+ const { raw, json, modelId, stream } = parsed;
22
+ const trace = ex.trace;
23
+ const remote = resolveRemoteProvider(modelId, ex.deps.providers());
24
+ if (remote) {
25
+ trace.backend = 'remote';
26
+ trace.provider = remote.provider;
27
+ if (!remote.baseUrl) {
28
+ trace.errorKind = 'proxy_internal';
29
+ answer(ex, 500, 'Provider has no base_url');
30
+ return;
31
+ }
32
+ const url = `${remote.baseUrl.replace(/\/+$/, '')}/responses`;
33
+ await passthrough(ex, { kind: 'remote', provider: remote }, url, remote.apiKey ?? undefined, raw);
34
+ return;
35
+ }
36
+ // Unlike the chat routes, MLX is the passthrough here and llama.cpp is translated.
37
+ const session = ex.deps.findLocal('llamacpp', modelId) ??
38
+ ex.deps.findLocal('llamacpp-upstream', modelId) ??
39
+ ex.deps.findLocal('mlx', modelId);
40
+ if (!session) {
41
+ trace.errorKind = 'not_found';
42
+ answer(ex, 404, `No running session found for model '${modelId}'`);
43
+ return;
44
+ }
45
+ trace.backend = session.provider;
46
+ const backend = { kind: 'local', session };
47
+ if (session.provider === 'mlx') {
48
+ await passthrough(ex, backend, `http://127.0.0.1:${session.port}/v1/responses`, session.apiKey, raw);
49
+ return;
50
+ }
51
+ await translate(ex, `http://127.0.0.1:${session.port}/v1/chat/completions`, session.apiKey, json, modelId, stream);
52
+ }
53
+ async function passthrough(ex, backend, url, key, raw) {
54
+ const signal = clientGone(ex);
55
+ let response;
56
+ try {
57
+ response = await sendUpstream(url, {
58
+ method: 'POST',
59
+ headers: outboundHeaders(ex, ['host', 'authorization', 'content-length', 'content-type'], backend, key, [['Content-Type', 'application/json']]),
60
+ body: raw,
61
+ connectTimeoutMs: connectTimeoutMs(ex),
62
+ signal,
63
+ });
64
+ }
65
+ catch (e) {
66
+ ex.trace.errorKind = ex.trace.backend === 'remote' ? 'remote_provider_error' : 'local_model_unreachable';
67
+ if (!signal.aborted)
68
+ answer(ex, 502, `Proxy request to model failed: ${e.message}`);
69
+ return;
70
+ }
71
+ await relay(ex.res, response, ex.cors);
72
+ }
73
+ /** Only the translated body and the session key go to llama.cpp; the client's headers do not. */
74
+ async function translate(ex, url, key, json, modelId, stream) {
75
+ const signal = clientGone(ex);
76
+ let response;
77
+ try {
78
+ response = await sendUpstream(url, {
79
+ method: 'POST',
80
+ headers: [
81
+ ['Content-Type', 'application/json'],
82
+ ['Accept-Encoding', 'identity'],
83
+ ['Authorization', `Bearer ${key}`],
84
+ ],
85
+ body: serdeToString(responsesRequestToChat(json)),
86
+ connectTimeoutMs: connectTimeoutMs(ex),
87
+ signal,
88
+ });
89
+ }
90
+ catch (e) {
91
+ ex.trace.errorKind = ex.trace.backend === 'remote' ? 'remote_provider_error' : 'local_model_unreachable';
92
+ if (!signal.aborted)
93
+ answer(ex, 502, `Proxy request to model failed: ${e.message}`);
94
+ return;
95
+ }
96
+ if (response.status < 200 || response.status >= 300) {
97
+ const errorBody = await readUpstreamText(response);
98
+ ex.trace.errorKind = 'local_model_error';
99
+ ex.trace.upstreamStatus = response.status;
100
+ ex.trace.oomDetected = bodyIndicatesOom(errorBody);
101
+ ex.trace.ctxOverflowDetected = isContextLimitError(response.status, errorBody);
102
+ answer(ex, response.status, errorBody);
103
+ return;
104
+ }
105
+ const responseId = newResponseId();
106
+ if (!stream) {
107
+ const bytes = await readBody(response.body).catch(() => Buffer.alloc(0));
108
+ let chat = null;
109
+ try {
110
+ chat = JSON.parse(bytes.toString('utf8'));
111
+ }
112
+ catch {
113
+ chat = null;
114
+ }
115
+ answer(ex, 200, serdeToString(chatResponseToResponses(chat, responseId, modelId)), [
116
+ ['Content-Type', 'application/json'],
117
+ ]);
118
+ return;
119
+ }
120
+ ex.res.writeHead(200, [['Content-Type', 'text/event-stream'], ['Cache-Control', 'no-cache'], ...ex.cors].flat());
121
+ await pipeBody(ex.res, responsesEvents(response, responseId, modelId, ex.trace), () => response.body.destroy());
122
+ }
123
+ async function* responsesEvents(upstream, responseId, modelId, trace) {
124
+ const telemetry = trace.startTelemetry();
125
+ const conv = new ResponsesStreamConverter(responseId, modelId);
126
+ yield sseEvent(conv.createdEvent());
127
+ const reader = new SseLineReader();
128
+ let usage;
129
+ for await (const chunk of upstream.body) {
130
+ reader.push(chunk);
131
+ for (let line = reader.nextLine(); line; line = reader.nextLine()) {
132
+ if (line.kind !== 'data')
133
+ continue;
134
+ const payload = line.payload;
135
+ if (payload.kind === 'done') {
136
+ for (const event of conv.finish(usage))
137
+ yield sseEvent(event);
138
+ upstream.body.destroy();
139
+ return;
140
+ }
141
+ if (payload.kind === 'json') {
142
+ const u = payload.json !== null && typeof payload.json === 'object' && !Array.isArray(payload.json)
143
+ ? payload.json['usage']
144
+ : undefined;
145
+ if (u !== undefined && u !== null)
146
+ usage = u;
147
+ telemetry?.onJson(payload.json, performance.now());
148
+ for (const event of conv.onChunk(payload.json))
149
+ yield sseEvent(event);
150
+ trace.progress();
151
+ }
152
+ }
153
+ }
154
+ // The upstream closed without `[DONE]`: close the response anyway.
155
+ for (const event of conv.finish(usage))
156
+ yield sseEvent(event);
157
+ }
158
+ //# sourceMappingURL=responses.js.map