@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 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/server/public/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * One request as the route handlers see it: where it is going, who sent it, and how to answer with
3
+ * the proxy's CORS headers attached.
4
+ */
5
+ import type { IncomingMessage, ServerResponse } from 'node:http';
6
+ import type { HeaderPairs } from './wire.js';
7
+ import type { PublicServerConfig, PublicServerDeps } from './types.js';
8
+ import type { RequestTrace } from './trace.js';
9
+ export interface Exchange {
10
+ req: IncomingMessage;
11
+ res: ServerResponse;
12
+ method: string;
13
+ /** The path after prefix removal. */
14
+ path: string;
15
+ /** The raw query string, without `?`; `undefined` when the URL had none. */
16
+ query: string | undefined;
17
+ cors: HeaderPairs;
18
+ config: PublicServerConfig;
19
+ deps: PublicServerDeps;
20
+ /** The request body, when a route already had to read it to decide where the request goes. */
21
+ body?: Buffer;
22
+ trace: RequestTrace;
23
+ }
24
+ export declare function newExchange(req: IncomingMessage, res: ServerResponse, path: string, config: PublicServerConfig, deps: PublicServerDeps, trace: RequestTrace): Exchange;
25
+ /** A plain-text (or pre-serialised) answer carrying the CORS headers, and `extra` before them. */
26
+ export declare function answer(ex: Exchange, status: number, body: string | Buffer, extra?: HeaderPairs): void;
27
+ export declare function header(req: IncomingMessage, name: string): string | undefined;
28
+ /** Upstream connect timeout: the configured proxy timeout, which bounds connecting only. */
29
+ export declare function connectTimeoutMs(ex: Exchange): number;
30
+ /** How often a request still waiting for its answer is checked for a client that already left. */
31
+ export declare const CLIENT_GONE_POLL_MS = 500;
32
+ /** Whether the client of this request has already gone away, on either runtime. */
33
+ export declare function requestAborted(req: IncomingMessage, res: ServerResponse): boolean;
34
+ /**
35
+ * An `AbortSignal` that fires when the client disconnects before the answer is complete. Node says
36
+ * so with `close` on the response; under Bun that event never comes for a request whose answer has
37
+ * not started, so the request is also polled while it waits (ADR
38
+ * 2026-09-22-detect-a-client-that-hangs-up-before-the-answer-under-bun).
39
+ */
40
+ export declare function clientGone(ex: Exchange, pollMs?: number): AbortSignal;
41
+ /** `serde_json` would reject this body; the proxy answers with its own wording. */
42
+ export declare function invalidJsonMessage(e: unknown): string;
@@ -0,0 +1,85 @@
1
+ /**
2
+ * One request as the route handlers see it: where it is going, who sent it, and how to answer with
3
+ * the proxy's CORS headers attached.
4
+ */
5
+ import { corsHeaders } from './gates.js';
6
+ import { sendWhole } from './wire.js';
7
+ export function newExchange(req, res, path, config, deps, trace) {
8
+ const url = req.url ?? '/';
9
+ const q = url.indexOf('?');
10
+ const origin = typeof req.headers.origin === 'string' ? req.headers.origin : '';
11
+ return {
12
+ req,
13
+ res,
14
+ method: req.method ?? 'GET',
15
+ path,
16
+ query: q >= 0 ? url.slice(q + 1) : undefined,
17
+ cors: corsHeaders(origin, config.trustedHosts),
18
+ config,
19
+ deps,
20
+ trace,
21
+ };
22
+ }
23
+ /** A plain-text (or pre-serialised) answer carrying the CORS headers, and `extra` before them. */
24
+ export function answer(ex, status, body, extra = []) {
25
+ sendWhole(ex.res, status, [...extra, ...ex.cors], body);
26
+ }
27
+ export function header(req, name) {
28
+ const value = req.headers[name.toLowerCase()];
29
+ return typeof value === 'string' ? value : Array.isArray(value) ? value[0] : undefined;
30
+ }
31
+ /** Upstream connect timeout: the configured proxy timeout, which bounds connecting only. */
32
+ export function connectTimeoutMs(ex) {
33
+ return Math.max(1, ex.config.proxyTimeoutSecs) * 1000;
34
+ }
35
+ /** How often a request still waiting for its answer is checked for a client that already left. */
36
+ export const CLIENT_GONE_POLL_MS = 500;
37
+ /**
38
+ * Bun's `node:http` (1.3.10) tells nobody when the client hangs up before the response has started:
39
+ * no `close` on the response or the socket, `socket.readyState` stays `open`. The native handle
40
+ * behind the pair does flip an `aborted` flag, which is the only trace left. It hangs off the
41
+ * response (the request drops it once its body is consumed) under a symbol described `handle`,
42
+ * looked up once per process; absent under Node, whose `close` event is enough.
43
+ */
44
+ let handleSymbol;
45
+ function bunHandleAborted(res) {
46
+ if (handleSymbol === undefined)
47
+ handleSymbol = Object.getOwnPropertySymbols(res).find((s) => s.description === 'handle') ?? null;
48
+ if (handleSymbol === null)
49
+ return false;
50
+ const handle = res[handleSymbol];
51
+ return typeof handle === 'object' && handle !== null && handle.aborted === true;
52
+ }
53
+ /** Whether the client of this request has already gone away, on either runtime. */
54
+ export function requestAborted(req, res) {
55
+ return req.socket?.destroyed === true || bunHandleAborted(res);
56
+ }
57
+ /**
58
+ * An `AbortSignal` that fires when the client disconnects before the answer is complete. Node says
59
+ * so with `close` on the response; under Bun that event never comes for a request whose answer has
60
+ * not started, so the request is also polled while it waits (ADR
61
+ * 2026-09-22-detect-a-client-that-hangs-up-before-the-answer-under-bun).
62
+ */
63
+ export function clientGone(ex, pollMs = CLIENT_GONE_POLL_MS) {
64
+ const controller = new AbortController();
65
+ const timer = setInterval(() => {
66
+ if (!requestAborted(ex.req, ex.res))
67
+ return;
68
+ clearInterval(timer);
69
+ if (!ex.res.writableFinished)
70
+ controller.abort();
71
+ }, pollMs);
72
+ timer.unref();
73
+ ex.res.once('finish', () => clearInterval(timer));
74
+ ex.res.once('close', () => {
75
+ clearInterval(timer);
76
+ if (!ex.res.writableFinished)
77
+ controller.abort();
78
+ });
79
+ return controller.signal;
80
+ }
81
+ /** `serde_json` would reject this body; the proxy answers with its own wording. */
82
+ export function invalidJsonMessage(e) {
83
+ return `Invalid JSON body: ${e.message}`;
84
+ }
85
+ //# sourceMappingURL=exchange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exchange.js","sourceRoot":"","sources":["../../../src/server/public/exchange.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * The model-bearing POST routes: `/chat/completions`, `/completions`, `/embeddings`,
3
+ * `/messages/count_tokens` and Anthropic `/messages`. Picks the backend from the body's `model`,
4
+ * forwards the request, and handles what can go wrong on the way back.
5
+ *
6
+ * Ported from: src-tauri/src/core/server/proxy.rs (`inner_proxy_request` from the model lookup to
7
+ * the end, `retry_local_upstream`, `transform_and_forward_stream`, `forward_non_streaming`).
8
+ *
9
+ * The recovery paths, in the order they are tried:
10
+ * - `/messages` that the engine rejects is retried as `/chat/completions` and the answer translated
11
+ * back, because most local engines do not speak the Anthropic API;
12
+ * - a local context overflow asks the runtime for a larger context and replays the request once;
13
+ * - a poisoned compute backend (a Metal OOM) gets a same-context reload and a clear, non-retryable
14
+ * 400 — replaying the request would only poison the fresh backend again;
15
+ * - a non-streamed 200 cut off by the context window (`finish_reason: length` with no client cap)
16
+ * is grown and replayed like an overflow;
17
+ * - a local engine's unstructured error is wrapped in an OpenAI error envelope.
18
+ *
19
+ * One deliberate difference from the Rust: a remote provider's configured custom headers are sent.
20
+ * The app stored them but the proxy never applied them (recorded as `known_divergence` in the
21
+ * proxy-http fixtures).
22
+ */
23
+ import type { JsonValue } from '../shims/index.js';
24
+ import type { RemoteProvider } from '../../router/index.js';
25
+ import type { Exchange } from './exchange.js';
26
+ import type { LocalTarget } from './types.js';
27
+ import type { HeaderPairs } from './wire.js';
28
+ export type Backend = {
29
+ kind: 'remote';
30
+ provider: RemoteProvider;
31
+ } | {
32
+ kind: 'local';
33
+ session: LocalTarget;
34
+ };
35
+ /** The first local session serving `modelId`, in the proxy's provider order. */
36
+ export declare function findLocalSession(ex: Exchange, modelId: string): LocalTarget | undefined;
37
+ /** The request body parsed, with the `model` it names; `undefined` once an error has been answered. */
38
+ export declare function readModelRequest(ex: Exchange): Promise<{
39
+ raw: Buffer;
40
+ json: JsonValue;
41
+ modelId: string;
42
+ stream: boolean;
43
+ } | undefined>;
44
+ /**
45
+ * Headers for a request to a remote provider or a local engine: the client's own minus `exclude`,
46
+ * then the provider's custom headers (replacing a client header of the same name), then the bearer.
47
+ * `key === undefined` sends no `Authorization` at all; a local session always has a key, even an
48
+ * empty one, and the proxy sends it as-is.
49
+ */
50
+ export declare function outboundHeaders(ex: Exchange, exclude: readonly string[], backend: Backend, key: string | undefined, leading?: HeaderPairs): HeaderPairs;
51
+ /** One SSE frame named after the event's `type`, as the proxy writes Anthropic events. */
52
+ export declare function sseEvent(event: JsonValue): string;
53
+ export declare function serveForward(ex: Exchange): Promise<void>;
@@ -0,0 +1,448 @@
1
+ /**
2
+ * The model-bearing POST routes: `/chat/completions`, `/completions`, `/embeddings`,
3
+ * `/messages/count_tokens` and Anthropic `/messages`. Picks the backend from the body's `model`,
4
+ * forwards the request, and handles what can go wrong on the way back.
5
+ *
6
+ * Ported from: src-tauri/src/core/server/proxy.rs (`inner_proxy_request` from the model lookup to
7
+ * the end, `retry_local_upstream`, `transform_and_forward_stream`, `forward_non_streaming`).
8
+ *
9
+ * The recovery paths, in the order they are tried:
10
+ * - `/messages` that the engine rejects is retried as `/chat/completions` and the answer translated
11
+ * back, because most local engines do not speak the Anthropic API;
12
+ * - a local context overflow asks the runtime for a larger context and replays the request once;
13
+ * - a poisoned compute backend (a Metal OOM) gets a same-context reload and a clear, non-retryable
14
+ * 400 — replaying the request would only poison the fresh backend again;
15
+ * - a non-streamed 200 cut off by the context window (`finish_reason: length` with no client cap)
16
+ * is grown and replayed like an overflow;
17
+ * - a local engine's unstructured error is wrapped in an OpenAI error envelope.
18
+ *
19
+ * One deliberate difference from the Rust: a remote provider's configured custom headers are sent.
20
+ * The app stored them but the proxy never applied them (recorded as `known_divergence` in the
21
+ * proxy-http fixtures).
22
+ */
23
+ import { AnthropicStreamConverter, anthropicRequestToChat, chatResponseToAnthropic, isJsonObject, serdeToString, } from '../shims/index.js';
24
+ import { LOCAL_SEARCH_ORDER, resolveRemoteProvider } from '../../router/index.js';
25
+ import { captureReport, inferenceFailureReport } from '../../telemetry/index.js';
26
+ import { autoIncreaseCtx } from './ctx.js';
27
+ import { SseLineReader } from './sse.js';
28
+ import { StreamTelemetry, isUsageOnlyChunk, maybeInjectStreamUsage } from './telemetry.js';
29
+ import { endpointFromPath } from './trace.js';
30
+ import { bodyIndicatesOom, computeErrorEnvelope, isComputeBackendError, isContextLimitError, isContextOverflowFinishLength, structureBackendErrorBody, structuredErrorJson, } from './errors.js';
31
+ import { answer, clientGone, connectTimeoutMs, invalidJsonMessage } from './exchange.js';
32
+ import { forwardableHeaders, pipeBody, readBody, readUpstreamText, relay, relayedHeaders, sendUpstream, } from './wire.js';
33
+ /** The first local session serving `modelId`, in the proxy's provider order. */
34
+ export function findLocalSession(ex, modelId) {
35
+ for (const provider of LOCAL_SEARCH_ORDER) {
36
+ const session = ex.deps.findLocal(provider, modelId);
37
+ if (session)
38
+ return session;
39
+ }
40
+ return undefined;
41
+ }
42
+ /** The request body parsed, with the `model` it names; `undefined` once an error has been answered. */
43
+ export async function readModelRequest(ex) {
44
+ const trace = ex.trace;
45
+ trace.endpoint = endpointFromPath(ex.path);
46
+ let raw;
47
+ try {
48
+ raw = ex.body ?? (await readBody(ex.req));
49
+ }
50
+ catch {
51
+ trace.errorKind = 'bad_request';
52
+ answer(ex, 500, 'Failed to read request body');
53
+ return undefined;
54
+ }
55
+ let json;
56
+ try {
57
+ json = JSON.parse(raw.toString('utf8'));
58
+ }
59
+ catch (e) {
60
+ trace.errorKind = 'bad_request';
61
+ answer(ex, 400, invalidJsonMessage(e));
62
+ return undefined;
63
+ }
64
+ const model = isJsonObject(json) ? json['model'] : undefined;
65
+ const stream = isJsonObject(json) && json['stream'] === true;
66
+ trace.stream = stream;
67
+ trace.modelId = typeof model === 'string' ? model : null;
68
+ trace.announce(json, raw);
69
+ if (typeof model !== 'string') {
70
+ trace.errorKind = 'bad_request';
71
+ answer(ex, 400, "Request body must contain a 'model' field");
72
+ return undefined;
73
+ }
74
+ return { raw, json, modelId: model, stream };
75
+ }
76
+ /**
77
+ * Headers for a request to a remote provider or a local engine: the client's own minus `exclude`,
78
+ * then the provider's custom headers (replacing a client header of the same name), then the bearer.
79
+ * `key === undefined` sends no `Authorization` at all; a local session always has a key, even an
80
+ * empty one, and the proxy sends it as-is.
81
+ */
82
+ export function outboundHeaders(ex, exclude, backend, key, leading = []) {
83
+ let headers = [...leading, ...forwardableHeaders(ex.req, exclude)];
84
+ if (backend.kind === 'remote') {
85
+ for (const { header, value } of backend.provider.customHeaders) {
86
+ const lower = header.toLowerCase();
87
+ headers = headers.filter(([name]) => name.toLowerCase() !== lower);
88
+ headers.push([header, value]);
89
+ }
90
+ }
91
+ if (key !== undefined) {
92
+ headers = headers.filter(([name]) => name.toLowerCase() !== 'authorization');
93
+ headers.push(['Authorization', `Bearer ${key}`]);
94
+ }
95
+ return headers;
96
+ }
97
+ function isSuccess(status) {
98
+ return status >= 200 && status < 300;
99
+ }
100
+ /** One SSE frame named after the event's `type`, as the proxy writes Anthropic events. */
101
+ export function sseEvent(event) {
102
+ const type = isJsonObject(event) && typeof event['type'] === 'string' ? event['type'] : 'message';
103
+ return `event: ${type}\ndata: ${serdeToString(event)}\n\n`;
104
+ }
105
+ export async function serveForward(ex) {
106
+ const isMessages = ex.path === '/messages';
107
+ const parsed = await readModelRequest(ex);
108
+ if (!parsed)
109
+ return;
110
+ const { raw, json, modelId, stream } = parsed;
111
+ let backend;
112
+ let url;
113
+ let key;
114
+ const remote = resolveRemoteProvider(modelId, ex.deps.providers());
115
+ const trace = ex.trace;
116
+ if (remote) {
117
+ backend = { kind: 'remote', provider: remote };
118
+ trace.backend = 'remote';
119
+ trace.provider = remote.provider;
120
+ key = remote.apiKey ?? undefined;
121
+ if (remote.baseUrl) {
122
+ url = isMessages ? `${remote.baseUrl.replace(/\/+$/, '')}/messages` : `${remote.baseUrl}${ex.path}`;
123
+ }
124
+ }
125
+ else {
126
+ // "Nothing is loaded" (503) and "that model is not loaded" (404) are told apart so a client can
127
+ // tell a cold server from a typo. `/messages` has always answered 404 for both.
128
+ if (!isMessages && ex.deps.listLocal().length === 0) {
129
+ trace.errorKind = 'not_found';
130
+ answer(ex, 503, 'No models are available');
131
+ return;
132
+ }
133
+ const session = findLocalSession(ex, modelId);
134
+ if (!session) {
135
+ trace.errorKind = 'not_found';
136
+ answer(ex, 404, `No running session found for model '${modelId}'`);
137
+ return;
138
+ }
139
+ backend = { kind: 'local', session };
140
+ trace.backend = session.provider;
141
+ key = session.apiKey;
142
+ url = `http://127.0.0.1:${session.port}/v1${ex.path}`;
143
+ }
144
+ if (url === undefined) {
145
+ trace.errorKind = 'proxy_internal';
146
+ answer(ex, 500, 'Internal routing error');
147
+ return;
148
+ }
149
+ // While the inspector watches, a local streaming chat is asked for real token counts. Only local
150
+ // backends: a remote provider that rejects unknown fields would turn diagnostics into an outage.
151
+ const injected = trace.inspecting && stream && ex.path === '/chat/completions' && backend.kind === 'local'
152
+ ? maybeInjectStreamUsage(raw)
153
+ : undefined;
154
+ const signal = clientGone(ex);
155
+ let response;
156
+ try {
157
+ response = await sendUpstream(url, {
158
+ method: ex.method,
159
+ headers: outboundHeaders(ex, ['host', 'authorization'], backend, key),
160
+ body: injected ?? raw,
161
+ connectTimeoutMs: connectTimeoutMs(ex),
162
+ signal,
163
+ });
164
+ }
165
+ catch (e) {
166
+ if (signal.aborted)
167
+ return;
168
+ answerUnreachable(ex, backend, e);
169
+ return;
170
+ }
171
+ if (!isSuccess(response.status)) {
172
+ if (isMessages)
173
+ await messagesFallback(ex, backend, url, key, json, response);
174
+ else
175
+ await upstreamError(ex, backend, modelId, raw, response);
176
+ return;
177
+ }
178
+ if (!stream && backend.kind === 'local') {
179
+ await inspectFinish(ex, backend.session, modelId, raw, response);
180
+ return;
181
+ }
182
+ await relayObserved(ex, response, injected !== undefined);
183
+ }
184
+ /** The largest non-SSE body kept for telemetry: a chat completion envelope, not an arbitrary file. */
185
+ const NON_SSE_CAPTURE_LIMIT = 256 * 1024;
186
+ /**
187
+ * Relay the upstream answer; while the inspector watches, fold what streams past into telemetry and
188
+ * drop the usage-only trailer this proxy asked for itself — the client never opted into an extra chunk
189
+ * with empty `choices`, and some clients throw on one. The bytes otherwise pass unchanged.
190
+ */
191
+ async function relayObserved(ex, upstream, stripUsageTrailer) {
192
+ const telemetry = ex.trace.startTelemetry();
193
+ if (!telemetry)
194
+ return relay(ex.res, upstream, ex.cors);
195
+ const trace = ex.trace;
196
+ const sse = (upstream.contentType ?? '').startsWith('text/event-stream');
197
+ ex.res.writeHead(upstream.status, relayedHeaders(upstream, ex.cors).flat());
198
+ async function* observed() {
199
+ const reader = new SseLineReader();
200
+ let captured = 0;
201
+ let droppingTrailer = false;
202
+ for await (const chunk of upstream.body) {
203
+ if (!sse) {
204
+ if (captured < NON_SSE_CAPTURE_LIMIT) {
205
+ const take = chunk.subarray(0, NON_SSE_CAPTURE_LIMIT - captured);
206
+ reader.push(take);
207
+ captured += take.length;
208
+ }
209
+ yield chunk;
210
+ continue;
211
+ }
212
+ reader.push(chunk);
213
+ const forward = [];
214
+ for (let line = reader.nextLine(); line; line = reader.nextLine()) {
215
+ if (line.kind === 'data' && line.payload.kind === 'json') {
216
+ telemetry?.onJson(line.payload.json, performance.now());
217
+ if (stripUsageTrailer && isUsageOnlyChunk(line.payload.json)) {
218
+ droppingTrailer = true;
219
+ continue;
220
+ }
221
+ }
222
+ if (droppingTrailer) {
223
+ droppingTrailer = false;
224
+ // Also swallow the blank line that ended the dropped event.
225
+ if (line.kind === 'other' && line.raw.toString('utf8').trim() === '')
226
+ continue;
227
+ }
228
+ forward.push(line.raw);
229
+ }
230
+ if (forward.length > 0)
231
+ yield Buffer.concat(forward);
232
+ trace.progress();
233
+ }
234
+ const tail = reader.takeTail();
235
+ if (tail.length === 0)
236
+ return;
237
+ if (sse) {
238
+ yield tail;
239
+ }
240
+ else {
241
+ try {
242
+ // Non-SSE: the buffer holds the whole document, which has no time to first token.
243
+ telemetry?.onJson(JSON.parse(tail.toString('utf8')), performance.now());
244
+ if (telemetry)
245
+ telemetry.firstContentAt = undefined;
246
+ }
247
+ catch {
248
+ // not a JSON document
249
+ }
250
+ }
251
+ }
252
+ await pipeBody(ex.res, observed(), () => upstream.body.destroy());
253
+ }
254
+ /**
255
+ * A local engine that cannot be reached is down, crashed or still starting: 503 with `Retry-After`,
256
+ * which clients treat as transient. A remote one that cannot be reached is a real gateway failure.
257
+ */
258
+ function answerUnreachable(ex, backend, e) {
259
+ const local = backend.kind === 'local';
260
+ ex.trace.errorKind = local ? 'local_model_unreachable' : 'remote_provider_error';
261
+ const body = structuredErrorJson(`The model backend is not reachable: ${e.message}`, 'server_error', local ? 'backend_unavailable' : 'upstream_unreachable');
262
+ const extra = [['Content-Type', 'application/json']];
263
+ if (local)
264
+ extra.push(['Retry-After', '1']);
265
+ answer(ex, local ? 503 : 502, body, extra);
266
+ }
267
+ /** Replay a request against a reloaded local session; the bearer is omitted when the key is empty. */
268
+ async function retryLocal(ex, port, apiKey, raw) {
269
+ const headers = forwardableHeaders(ex.req, ['host', 'authorization']);
270
+ if (apiKey)
271
+ headers.push(['Authorization', `Bearer ${apiKey}`]);
272
+ try {
273
+ const retry = await sendUpstream(`http://127.0.0.1:${port}/v1${ex.path}`, {
274
+ method: ex.method,
275
+ headers,
276
+ body: raw,
277
+ connectTimeoutMs: connectTimeoutMs(ex),
278
+ signal: clientGone(ex),
279
+ });
280
+ if (isSuccess(retry.status))
281
+ return retry;
282
+ retry.body.resume();
283
+ }
284
+ catch {
285
+ // The original error is what the client gets.
286
+ }
287
+ return undefined;
288
+ }
289
+ async function growAndRetry(ex, provider, modelId, raw, trigger) {
290
+ const reloaded = await autoIncreaseCtx(ex.deps, provider, modelId, trigger);
291
+ if (!reloaded)
292
+ return false;
293
+ const retry = await retryLocal(ex, reloaded.port, reloaded.apiKey, raw);
294
+ if (!retry)
295
+ return false;
296
+ await relay(ex.res, retry, ex.cors);
297
+ return true;
298
+ }
299
+ async function upstreamError(ex, backend, modelId, raw, response) {
300
+ const errorBody = await readUpstreamText(response);
301
+ const status = response.status;
302
+ const trace = ex.trace;
303
+ const recordFailure = () => {
304
+ trace.errorKind = backend.kind === 'local' ? 'local_model_error' : 'remote_provider_error';
305
+ trace.upstreamStatus = status;
306
+ trace.oomDetected = bodyIndicatesOom(errorBody);
307
+ trace.ctxOverflowDetected = isContextLimitError(status, errorBody);
308
+ };
309
+ if (backend.kind === 'local') {
310
+ const provider = backend.session.provider;
311
+ if (isContextLimitError(status, errorBody) && (await growAndRetry(ex, provider, modelId, raw, 'error')))
312
+ return;
313
+ if (isComputeBackendError(status, errorBody)) {
314
+ // Only the llama.cpp upstream runtime understands a same-context reload; the others would
315
+ // read the request as "grow the context". The outcome does not change this answer.
316
+ if (provider === 'llamacpp-upstream') {
317
+ await autoIncreaseCtx(ex.deps, provider, modelId, 'compute_error_recovery');
318
+ }
319
+ recordFailure();
320
+ trace.oomDetected = true;
321
+ trace.ctxOverflowDetected = false;
322
+ const oom = bodyIndicatesOom(errorBody);
323
+ captureReport(ex.deps.errors, inferenceFailureReport({ provider, modelId, status, body: errorBody, compute: true, oom }));
324
+ answer(ex, 400, computeErrorEnvelope(oom));
325
+ return;
326
+ }
327
+ recordFailure();
328
+ captureReport(ex.deps.errors, inferenceFailureReport({
329
+ provider,
330
+ modelId,
331
+ status,
332
+ body: errorBody,
333
+ compute: false,
334
+ oom: trace.oomDetected,
335
+ }));
336
+ answer(ex, status, structureBackendErrorBody(errorBody, trace.oomDetected, trace.ctxOverflowDetected));
337
+ return;
338
+ }
339
+ // Remote providers already answer with their own structured errors.
340
+ recordFailure();
341
+ answer(ex, status, errorBody);
342
+ }
343
+ /**
344
+ * A non-streamed local answer is read whole so a context-window cut-off can be caught and replayed.
345
+ * The upstream's headers are consumed with it; the client gets the minimal set for a JSON reply.
346
+ */
347
+ async function inspectFinish(ex, session, modelId, raw, response) {
348
+ const bytes = await readBody(response.body).catch(() => Buffer.alloc(0));
349
+ let parsed;
350
+ try {
351
+ parsed = JSON.parse(bytes.toString('utf8'));
352
+ }
353
+ catch {
354
+ parsed = undefined;
355
+ }
356
+ if (parsed !== undefined && ex.trace.inspecting) {
357
+ const telemetry = new StreamTelemetry();
358
+ telemetry.onJson(parsed, performance.now());
359
+ ex.trace.stash(telemetry.finishFields(0));
360
+ }
361
+ if (parsed !== undefined &&
362
+ isContextOverflowFinishLength(parsed, raw) &&
363
+ (await growAndRetry(ex, session.provider, modelId, raw, 'finish_length'))) {
364
+ return;
365
+ }
366
+ answer(ex, response.status, bytes, [['Content-Type', 'application/json']]);
367
+ }
368
+ /**
369
+ * `/messages` was rejected: retry it as Chat Completions at the same base and translate the answer
370
+ * back into Anthropic's shape. If the fallback cannot be attempted or cannot be reached, the client
371
+ * gets the original error; if it answers with an error, the client gets that one.
372
+ */
373
+ async function messagesFallback(ex, backend, url, key, json, response) {
374
+ const errorBody = await readUpstreamText(response);
375
+ const trace = ex.trace;
376
+ trace.anthropicFallback = true;
377
+ const errorKind = backend.kind === 'local' ? 'local_model_error' : 'remote_provider_error';
378
+ const chat = anthropicRequestToChat(json);
379
+ if (chat !== null) {
380
+ let base = url;
381
+ while (base.endsWith('/messages'))
382
+ base = base.slice(0, -'/messages'.length);
383
+ base = base.replace(/\/+$/, '');
384
+ const signal = clientGone(ex);
385
+ try {
386
+ const fallback = await sendUpstream(`${base}/chat/completions`, {
387
+ method: 'POST',
388
+ headers: outboundHeaders(ex, ['host', 'authorization', 'content-type', 'content-length', 'accept-encoding'], backend, key, [
389
+ ['Content-Type', 'application/json'],
390
+ ['Accept-Encoding', 'identity'],
391
+ ]),
392
+ body: serdeToString(chat),
393
+ connectTimeoutMs: connectTimeoutMs(ex),
394
+ signal,
395
+ });
396
+ if (!isSuccess(fallback.status)) {
397
+ const fallbackError = await readUpstreamText(fallback);
398
+ trace.errorKind = errorKind;
399
+ trace.upstreamStatus = fallback.status;
400
+ trace.oomDetected = bodyIndicatesOom(fallbackError);
401
+ trace.ctxOverflowDetected = isContextLimitError(fallback.status, fallbackError);
402
+ answer(ex, fallback.status, fallbackError);
403
+ return;
404
+ }
405
+ ex.res.writeHead(fallback.status, relayedHeaders(fallback, ex.cors).flat());
406
+ const streaming = isJsonObject(chat) && chat['stream'] === true;
407
+ await pipeBody(ex.res, streaming ? anthropicStream(fallback) : anthropicWhole(fallback), () => fallback.body.destroy());
408
+ return;
409
+ }
410
+ catch {
411
+ if (signal.aborted)
412
+ return;
413
+ }
414
+ }
415
+ trace.errorKind = errorKind;
416
+ trace.upstreamStatus = response.status;
417
+ trace.oomDetected = bodyIndicatesOom(errorBody);
418
+ trace.ctxOverflowDetected = isContextLimitError(response.status, errorBody);
419
+ answer(ex, response.status, errorBody);
420
+ }
421
+ async function* anthropicStream(upstream) {
422
+ const conv = new AnthropicStreamConverter();
423
+ const decoder = new TextDecoder();
424
+ for await (const chunk of upstream.body) {
425
+ for (const event of conv.onNetworkChunk(decoder.decode(chunk, { stream: true })))
426
+ yield sseEvent(event);
427
+ if (conv.done) {
428
+ upstream.body.destroy();
429
+ return;
430
+ }
431
+ }
432
+ const tail = decoder.decode();
433
+ for (const event of [...conv.onNetworkChunk(tail), ...conv.finish()])
434
+ yield sseEvent(event);
435
+ }
436
+ async function* anthropicWhole(upstream) {
437
+ const bytes = await readBody(upstream.body);
438
+ let parsed;
439
+ try {
440
+ parsed = JSON.parse(bytes.toString('utf8'));
441
+ }
442
+ catch {
443
+ yield bytes;
444
+ return;
445
+ }
446
+ yield serdeToString(chatResponseToAnthropic(parsed));
447
+ }
448
+ //# sourceMappingURL=forward.js.map