@fased/fased 0.1.49 → 0.1.52

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 (337) hide show
  1. package/dist/acp/client.js +2 -2
  2. package/dist/acp/secret-file.js +2 -2
  3. package/dist/agents/agent-scope.js +2 -2
  4. package/dist/agents/apply-patch.js +8 -8
  5. package/dist/agents/auth-profiles/paths.js +2 -2
  6. package/dist/agents/auth-profiles/store.js +2 -2
  7. package/dist/agents/bash-tools.shared.js +2 -2
  8. package/dist/agents/cli-credentials.js +4 -4
  9. package/dist/agents/current-model-catalog.js +45 -0
  10. package/dist/agents/docs-path.js +3 -3
  11. package/dist/agents/embedded-pi-mcp.js +4 -4
  12. package/dist/agents/identity-avatar.js +3 -3
  13. package/dist/agents/identity-file.js +2 -2
  14. package/dist/agents/model-catalog-source.js +28 -3
  15. package/dist/agents/pi-embedded-subscribe.raw-stream.js +3 -3
  16. package/dist/agents/pi-extensions/compaction-safeguard.js +3 -3
  17. package/dist/agents/pi-model-discovery.js +6 -6
  18. package/dist/agents/pi-project-settings.js +3 -3
  19. package/dist/agents/provider-id.js +1 -1
  20. package/dist/agents/sandbox/fs-bridge.js +2 -2
  21. package/dist/agents/session-dirs.js +4 -4
  22. package/dist/agents/session-write-lock.js +13 -13
  23. package/dist/agents/shell-utils.js +5 -5
  24. package/dist/agents/skills/bundled-dir.js +4 -4
  25. package/dist/agents/skills/local-loader.js +6 -6
  26. package/dist/agents/skills/plugin-skills.js +2 -2
  27. package/dist/agents/skills/workspace.js +13 -13
  28. package/dist/agents/skills-install-download.js +7 -7
  29. package/dist/agents/skills-install-plan.js +2 -2
  30. package/dist/agents/skills-install.js +2 -2
  31. package/dist/agents/skills-status.js +2 -2
  32. package/dist/agents/subagent-depth.js +2 -2
  33. package/dist/agents/system-prompt-params.js +2 -2
  34. package/dist/agents/workspace.js +22 -22
  35. package/dist/auto-reply/reply/agent-runner-execution.js +2 -2
  36. package/dist/auto-reply/reply/agent-runner.js +2 -2
  37. package/dist/auto-reply/reply/commands-export-session.js +7 -7
  38. package/dist/auto-reply/reply/post-compaction-audit.js +3 -3
  39. package/dist/auto-reply/reply/post-compaction-context.js +3 -3
  40. package/dist/auto-reply/reply/session.js +3 -3
  41. package/dist/auto-reply/skill-commands.js +3 -3
  42. package/dist/auto-reply/status.js +6 -6
  43. package/dist/brand.js +1 -1
  44. package/dist/browser/chrome.executables.js +3 -3
  45. package/dist/browser/chrome.js +3 -3
  46. package/dist/browser/chrome.profile-decoration.js +6 -6
  47. package/dist/browser/profiles-service.js +2 -2
  48. package/dist/browser/server-context.js +2 -2
  49. package/dist/browser/trash.js +4 -4
  50. package/dist/build-info.json +3 -3
  51. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  52. package/dist/canvas-host/server.js +4 -4
  53. package/dist/capabilities/catalog.js +3 -3
  54. package/dist/channels/plugins/catalog.js +3 -3
  55. package/dist/cli/browser-cli-extension.js +6 -6
  56. package/dist/cli/command-format.js +2 -2
  57. package/dist/cli/cron-cli/register.cron-simple.js +2 -2
  58. package/dist/cli/dns-cli.js +9 -9
  59. package/dist/cli/gateway-cli/dev.js +5 -5
  60. package/dist/cli/gateway-cli/run.js +2 -2
  61. package/dist/cli/hooks-cli.js +5 -5
  62. package/dist/cli/lightweight/gateway-runtime-probe.js +50 -0
  63. package/dist/cli/memory-cli.js +7 -7
  64. package/dist/cli/nodes-media-utils.js +2 -2
  65. package/dist/cli/plugins-cli.js +2 -2
  66. package/dist/cli/secrets-cli.js +3 -3
  67. package/dist/cli/update-cli/update-command.js +120 -0
  68. package/dist/cli/windows-argv.js +2 -2
  69. package/dist/commands/dashboard-link.js +3 -3
  70. package/dist/commands/doctor-install.js +5 -5
  71. package/dist/commands/doctor-memory-search.js +2 -2
  72. package/dist/commands/doctor-platform-notes.js +2 -2
  73. package/dist/commands/doctor-sandbox.js +2 -2
  74. package/dist/commands/doctor-state-integrity.js +23 -23
  75. package/dist/commands/doctor-workspace.js +3 -3
  76. package/dist/commands/doctor.js +3 -3
  77. package/dist/commands/managed-up.js +2 -2
  78. package/dist/commands/onboard-auth.credentials.js +3 -3
  79. package/dist/commands/onboarding/plugin-install.js +2 -2
  80. package/dist/commands/sessions-cleanup.js +2 -2
  81. package/dist/commands/signal-install.js +6 -6
  82. package/dist/commands/status-all/channels.js +2 -2
  83. package/dist/commands/wallet.js +47 -47
  84. package/dist/config/cache-utils.js +2 -2
  85. package/dist/config/includes.js +5 -5
  86. package/dist/config/io.js +2 -2
  87. package/dist/config/paths.js +3 -3
  88. package/dist/config/sat-runtime-ids.js +3 -3
  89. package/dist/config/sessions/disk-budget.js +6 -6
  90. package/dist/config/sessions/paths.js +2 -2
  91. package/dist/config/sessions/store.js +17 -17
  92. package/dist/config/sessions/transcript.js +4 -4
  93. package/dist/config/talk.js +2 -2
  94. package/dist/control-ui/assets/{app-6iCry787.js → app-Bf5WlHKE.js} +1743 -1738
  95. package/dist/control-ui/assets/{chat-model-ref-C6CFR-GR.js → chat-model-ref-NT82zapt.js} +2 -2
  96. package/dist/control-ui/assets/{index-CNFgocD9.js → index-DWM6gKjy.js} +3 -3
  97. package/dist/control-ui/assets/{providers-WTJ1kMKy.js → providers-rQMhp1fb.js} +2 -11
  98. package/dist/control-ui/index.html +1 -1
  99. package/dist/cron/service/store.js +2 -2
  100. package/dist/cron/store.js +6 -6
  101. package/dist/daemon/systemd-system.js +5 -5
  102. package/dist/discord/monitor/thread-bindings.state.js +2 -2
  103. package/dist/extensions/sat-mining/src/sat-bond-layout.js +9 -9
  104. package/dist/gateway/control-ui-boot-check.js +6 -6
  105. package/dist/gateway/control-ui-login.js +7 -7
  106. package/dist/gateway/control-ui.js +9 -9
  107. package/dist/gateway/hooks-mapping.js +4 -4
  108. package/dist/gateway/probe-payload.js +14 -0
  109. package/dist/gateway/probe.js +8 -4
  110. package/dist/gateway/server-discovery.js +2 -2
  111. package/dist/gateway/server-http-lazy.js +2 -4
  112. package/dist/gateway/server-http.js +6 -8
  113. package/dist/gateway/server-methods/chat.js +3 -3
  114. package/dist/gateway/server-methods/models.js +3 -2
  115. package/dist/gateway/server-methods/sessions.js +6 -6
  116. package/dist/gateway/server-methods/usage.js +2 -2
  117. package/dist/gateway/server.impl.js +3 -3
  118. package/dist/gateway/session-compaction-checkpoints.js +4 -4
  119. package/dist/gateway/session-utils.fs.js +24 -24
  120. package/dist/gateway/session-utils.js +6 -6
  121. package/dist/hooks/bundled-dir.js +4 -4
  122. package/dist/hooks/gmail-setup-utils.js +6 -6
  123. package/dist/hooks/import-url.js +2 -2
  124. package/dist/hooks/loader.js +4 -4
  125. package/dist/hooks/workspace.js +7 -7
  126. package/dist/infra/archive.js +17 -17
  127. package/dist/infra/boundary-file-read.js +2 -2
  128. package/dist/infra/boundary-path.js +15 -15
  129. package/dist/infra/brew.js +2 -2
  130. package/dist/infra/control-ui-assets.js +14 -14
  131. package/dist/infra/device-auth-store.js +8 -8
  132. package/dist/infra/device-identity.js +8 -8
  133. package/dist/infra/dotenv.js +2 -2
  134. package/dist/infra/exec-approvals.js +8 -8
  135. package/dist/infra/exec-command-resolution.js +4 -4
  136. package/dist/infra/exec-safe-bin-trust.js +2 -2
  137. package/dist/infra/fased-root.js +5 -5
  138. package/dist/infra/fs-safe.js +14 -14
  139. package/dist/infra/gateway-lock.js +11 -11
  140. package/dist/infra/git-commit.js +5 -5
  141. package/dist/infra/git-root.js +4 -4
  142. package/dist/infra/hosted-runtime-artifact.js +3 -3
  143. package/dist/infra/is-main.js +2 -2
  144. package/dist/infra/json-file.js +7 -7
  145. package/dist/infra/outbound/delivery-queue.js +16 -16
  146. package/dist/infra/path-env.js +3 -3
  147. package/dist/infra/ports-lsof.js +4 -4
  148. package/dist/infra/provider-usage.auth.js +3 -3
  149. package/dist/infra/safe-open-sync.js +2 -2
  150. package/dist/infra/session-cost-usage.js +9 -9
  151. package/dist/infra/shell-env.js +2 -2
  152. package/dist/infra/state-migrations.fs.js +6 -6
  153. package/dist/infra/state-migrations.js +23 -23
  154. package/dist/infra/tmp-fased-dir.js +6 -6
  155. package/dist/infra/widearea-dns.js +3 -3
  156. package/dist/infra/wsl.js +2 -2
  157. package/dist/light-update-precheck.js +1 -1
  158. package/dist/light-update-status.js +1 -1
  159. package/dist/line/accounts.js +2 -2
  160. package/dist/line/download.js +2 -2
  161. package/dist/logging/config.js +3 -3
  162. package/dist/logging/logger.js +7 -7
  163. package/dist/managed/federation.js +3 -3
  164. package/dist/managed/tunnel.js +3 -3
  165. package/dist/media/store.js +13 -13
  166. package/dist/media-understanding/runner.js +3 -3
  167. package/dist/memory/embeddings.js +2 -2
  168. package/dist/memory/internal.js +10 -10
  169. package/dist/memory/manager-sync-ops.js +7 -7
  170. package/dist/memory/repair-executor.js +17 -17
  171. package/dist/node-host/invoke-system-run-plan.js +8 -8
  172. package/dist/node-host/invoke.js +2 -2
  173. package/dist/node-host/runner.js +3 -3
  174. package/dist/pairing/pairing-store.js +3 -3
  175. package/dist/plugin-sdk/{accounts-B5fY9hZy.js → accounts-BZrfqJmO.js} +1 -1
  176. package/dist/plugin-sdk/{actions-D-9SsSEy.js → actions-7_zTh8zC.js} +2 -2
  177. package/dist/plugin-sdk/{active-listener-BH7rDR47.js → active-listener-D8NVRD8J.js} +1 -1
  178. package/dist/plugin-sdk/{audio-preflight-4faayz5S.js → audio-preflight-D6IPconF.js} +26 -26
  179. package/dist/plugin-sdk/{audit-BQfsboqd.js → audit-2iRlVyQF.js} +1 -1
  180. package/dist/plugin-sdk/{channel-access-CDZ-cJPq.js → channel-access-BCf1rJsn.js} +1 -1
  181. package/dist/plugin-sdk/{channel-access-configure-DlpuhlH6.js → channel-access-configure-B-Z51Qsd.js} +1 -1
  182. package/dist/plugin-sdk/channel-plugin-common.d.ts +2 -2
  183. package/dist/plugin-sdk/channel-plugin-common.js +4 -4
  184. package/dist/plugin-sdk/{chunk-CZuCyS7k.js → chunk-BREC9ijl.js} +1 -1
  185. package/dist/plugin-sdk/{chunk-items-Cyc4Kl6A.js → chunk-items-CTp30xzl.js} +1 -1
  186. package/dist/plugin-sdk/command-status.js +26 -26
  187. package/dist/plugin-sdk/{commands-registry-COIbIjGO.js → commands-registry-D3-bFLsz.js} +2 -2
  188. package/dist/plugin-sdk/{common-LMHJe8KW.js → common-BlqMqEqn.js} +1 -1
  189. package/dist/plugin-sdk/{config-ZMbTT0kM.js → config-442EDe7Z.js} +81 -13
  190. package/dist/plugin-sdk/{config-schema-Cku0a8Tm.js → config-schema-DAyzv2C6.js} +2001 -449
  191. package/dist/plugin-sdk/device-pair.d.ts +1 -1
  192. package/dist/plugin-sdk/discord.d.ts +4 -4
  193. package/dist/plugin-sdk/discord.js +19 -19
  194. package/dist/plugin-sdk/{handle-action-C8ZZfORB.js → handle-action-pNaP87Dr.js} +13 -13
  195. package/dist/plugin-sdk/{helpers-vfzH9tBn.js → helpers-B994qqVW.js} +1 -1
  196. package/dist/plugin-sdk/{image-ops-BnOmQA5d.js → image-ops-Doq8nZQw.js} +1 -1
  197. package/dist/plugin-sdk/index.d.ts +18 -18
  198. package/dist/plugin-sdk/index.js +28 -28
  199. package/dist/plugin-sdk/json-store.js +6 -6
  200. package/dist/plugin-sdk/{login-C73Wpiw8.js → login-CK2zTIJA.js} +3 -3
  201. package/dist/plugin-sdk/{login-qr-CRKHA7i8.js → login-qr-u8Mn1mCp.js} +3 -3
  202. package/dist/plugin-sdk/{manager-CHYhpKHn.js → manager-CeJNf2bH.js} +2 -2
  203. package/dist/plugin-sdk/{markdown-tables-B84dPWNG.js → markdown-tables-DeZztrY6.js} +1 -1
  204. package/dist/plugin-sdk/{media-4daDcNER.js → media-CgUAEfhs.js} +2 -2
  205. package/dist/plugin-sdk/{monitor-DJhU-J5u.js → monitor-CY1W4VTW.js} +31 -31
  206. package/dist/plugin-sdk/{monitor-CChc6bQV.js → monitor-CkDlxeW5.js} +30 -30
  207. package/dist/plugin-sdk/{openresponses-http-Dvyczr35.js → openresponses-http-Cu7NLyPf.js} +26 -26
  208. package/dist/plugin-sdk/{optional-runtime-dependency-BFpqaCzp.js → optional-runtime-dependency-D0BdXz1C.js} +1 -1
  209. package/dist/plugin-sdk/{outbound-C1xBxfNb.js → outbound-DXGuFrdx.js} +6 -6
  210. package/dist/plugin-sdk/{outbound-attachment-DvcxPP7b.js → outbound-attachment-oxhGO33g.js} +2 -2
  211. package/dist/plugin-sdk/{pairing-message-DpYT614h.js → pairing-message-C29ixrvn.js} +1 -1
  212. package/dist/plugin-sdk/{pairing-message-DWXHX-jt.d.ts → pairing-message-DfIyssV_.d.ts} +1 -1
  213. package/dist/plugin-sdk/{pairing-store-CprpGco9.js → pairing-store-1kcsOWRs.js} +2 -2
  214. package/dist/plugin-sdk/{pi-model-discovery-BQ6fFRBA.js → pi-model-discovery-l-xqaEd0.js} +1 -1
  215. package/dist/plugin-sdk/{pi-model-discovery-runtime-BF_89lVj.js → pi-model-discovery-runtime-CibV8F8G.js} +2 -2
  216. package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +1 -1
  217. package/dist/plugin-sdk/{pw-ai-xgpIbHOr.js → pw-ai-9qEBW5-k.js} +3 -3
  218. package/dist/plugin-sdk/{replies-AzJ6U6Ut.js → replies-BX3L8fX7.js} +2 -2
  219. package/dist/plugin-sdk/{resolve-outbound-target-COo_TR7B.js → resolve-outbound-target-D0AK10E7.js} +1 -1
  220. package/dist/plugin-sdk/{resolve-route-CZFzHOIe.js → resolve-route-UO6XLYH3.js} +1 -1
  221. package/dist/plugin-sdk/{retry-policy-BSdqqXsI.js → retry-policy-C5N8JiHL.js} +1 -1
  222. package/dist/plugin-sdk/{runtime-CeoGffDi.js → runtime-Dnzwux3G.js} +3 -3
  223. package/dist/plugin-sdk/{runtime-dependency-Cvbs0GXf.js → runtime-dependency-BDDpVKBO.js} +2 -2
  224. package/dist/plugin-sdk/sat-runtime.d.ts +2 -2
  225. package/dist/plugin-sdk/sat-runtime.js +5 -5
  226. package/dist/plugin-sdk/{send-B_-UtG9F.js → send-B4XLsTL0.js} +6 -6
  227. package/dist/plugin-sdk/{send-DCxAv7bV.js → send-D5rgCP1r.js} +6 -6
  228. package/dist/plugin-sdk/{send-CGE7OgsA.js → send-DGEgo_6f.js} +5 -5
  229. package/dist/plugin-sdk/{send-DVpCBUuL.js → send-DcsYRH2f.js} +7 -7
  230. package/dist/plugin-sdk/{send-C0Q1u7N1.js → send-bcKv8F5E.js} +8 -8
  231. package/dist/plugin-sdk/{session-ETYBbhLn.js → session-BoGNOlwv.js} +2 -2
  232. package/dist/plugin-sdk/{skill-commands-BQL6TBIv.js → skill-commands-Be8s4TGQ.js} +2 -2
  233. package/dist/plugin-sdk/{slack-actions-CBPZkfTS.js → slack-actions-TNnAXiUx.js} +11 -11
  234. package/dist/plugin-sdk/{slack-Bs_4uivd.js → slack-papUjf_h.js} +38 -38
  235. package/dist/plugin-sdk/slack.d.ts +4 -4
  236. package/dist/plugin-sdk/slack.js +9 -9
  237. package/dist/plugin-sdk/{sticker-cache-BBZMp-oQ.js → sticker-cache-CPNu_LEe.js} +3 -3
  238. package/dist/plugin-sdk/{tables-B-G7Bb0l.js → tables-Ch4js2qy.js} +1 -1
  239. package/dist/plugin-sdk/{targets-D8UaoWHd.js → targets-BGfRUJPE.js} +1 -1
  240. package/dist/plugin-sdk/{telegram-actions-BARLx9zc.js → telegram-actions-BO-giM1s.js} +29 -29
  241. package/dist/plugin-sdk/telegram.d.ts +4 -4
  242. package/dist/plugin-sdk/telegram.js +8 -8
  243. package/dist/plugin-sdk/{thread-bindings.lifecycle-DwYKCLLq.js → thread-bindings.lifecycle-_uQ2EF17.js} +3 -3
  244. package/dist/plugin-sdk/{thread-bindings.state-BNWfHA0f.js → thread-bindings.state-DUg0s_1X.js} +2 -2
  245. package/dist/plugin-sdk/{tmp-fased-dir-Be1wBhVz.d.ts → tmp-fased-dir-Bcp1DTSV.d.ts} +1 -1
  246. package/dist/plugin-sdk/{types-CJGVZX6j.d.ts → types-BTkcYtOt.d.ts} +2 -2
  247. package/dist/plugin-sdk/{types-CXLEOrJX.d.ts → types-CMoLtViq.d.ts} +1 -1
  248. package/dist/plugin-sdk/{wallet-status-Coekn_SJ.js → wallet-status-M6aK3abH.js} +3 -3
  249. package/dist/plugin-sdk/{web-BwolzGVF.js → web-QpstZjDX.js} +31 -31
  250. package/dist/plugin-sdk/{whatsapp-actions-CSvf6eev.js → whatsapp-actions-CID_tqAX.js} +13 -13
  251. package/dist/plugin-sdk/{whatsapp-heartbeat-Bw7OtTe6.js → whatsapp-heartbeat-Bk-aZVMa.js} +2 -2
  252. package/dist/plugin-sdk/whatsapp.d.ts +9 -9
  253. package/dist/plugin-sdk/whatsapp.js +12 -12
  254. package/dist/plugin-sdk/{wsl-By1Mc-oS.js → wsl-C_STtED7.js} +3 -3
  255. package/dist/plugin-sdk/{zod-schema.providers-core-TI6sL-6B.d.ts → zod-schema.providers-core-CIzCjXH9.d.ts} +75 -75
  256. package/dist/plugins/bundled-dir.js +3 -3
  257. package/dist/plugins/discovery.js +11 -11
  258. package/dist/plugins/loader.js +13 -13
  259. package/dist/plugins/manifest-registry.js +2 -2
  260. package/dist/plugins/manifest.js +4 -4
  261. package/dist/plugins/path-safety.js +3 -3
  262. package/dist/plugins/status-cache.js +10 -10
  263. package/dist/plugins/update.js +3 -3
  264. package/dist/plugins/web-search-install-catalog.js +3 -3
  265. package/dist/providers/refresh.js +1 -1
  266. package/dist/providers/refreshed-model-capabilities.js +1935 -406
  267. package/dist/providers/registry.js +15 -12
  268. package/dist/secrets/apply.js +16 -16
  269. package/dist/secrets/audit.js +11 -11
  270. package/dist/secrets/shared.js +9 -9
  271. package/dist/security/scan-paths.js +2 -2
  272. package/dist/shared/config-eval.js +2 -2
  273. package/dist/shared/pid-alive.js +2 -2
  274. package/dist/tasks/standing-orders.js +5 -5
  275. package/dist/tasks/task-flow-registry.js +5 -5
  276. package/dist/tasks/task-registry.js +5 -5
  277. package/dist/tasks/workflow-definitions.js +6 -6
  278. package/dist/telegram/token.js +5 -5
  279. package/dist/utils.js +5 -5
  280. package/dist/wallet/local-socket-signer-broker.js +16 -16
  281. package/dist/wallet/providers/embedded-keystore-adapter.js +5 -5
  282. package/dist/wallet/providers/local-socket-signer-adapter.js +2 -2
  283. package/dist/wallet/wallet-approval-auth.js +5 -5
  284. package/dist/wallet/wallet-audit-log.js +5 -5
  285. package/dist/wallet/wallet-custody.js +21 -21
  286. package/dist/wallet/wallet-inbound-events.js +5 -5
  287. package/dist/wallet/wallet-observability.js +5 -5
  288. package/dist/wallet/wallet-policy.js +9 -9
  289. package/dist/wallet/wallet-provider-registry.js +7 -7
  290. package/dist/wallet/wallet-runtime-config.js +3 -3
  291. package/dist/wallet/wallet-secrets-store.js +22 -22
  292. package/dist/wallet/wallet-send-approvals.js +5 -5
  293. package/dist/wallet/wallet-settlement-links.js +5 -5
  294. package/dist/web/accounts.js +3 -3
  295. package/dist/web/auth-store.js +18 -18
  296. package/dist/web/session.js +4 -4
  297. package/dist/wizard/host-security-capability.js +2 -2
  298. package/dist/wizard/onboarding.host-security.js +7 -7
  299. package/dist/wizard/onboarding.js +7 -7
  300. package/dist/wizard/onboarding.wallet.js +44 -44
  301. package/extensions/acpx/package.json +1 -1
  302. package/extensions/bluebubbles/package.json +1 -1
  303. package/extensions/copilot-proxy/package.json +1 -1
  304. package/extensions/diagnostics-otel/package.json +1 -1
  305. package/extensions/fased-federation/package.json +1 -1
  306. package/extensions/google-gemini-cli-auth/package.json +1 -1
  307. package/extensions/imessage/package.json +1 -1
  308. package/extensions/irc/package.json +1 -1
  309. package/extensions/line/package.json +1 -1
  310. package/extensions/llm-task/package.json +1 -1
  311. package/extensions/lobster/package.json +1 -1
  312. package/extensions/matrix/CHANGELOG.md +18 -0
  313. package/extensions/matrix/package.json +1 -1
  314. package/extensions/mattermost/package.json +1 -1
  315. package/extensions/memory-core/package.json +2 -2
  316. package/extensions/memory-lancedb/package.json +1 -1
  317. package/extensions/minimax-portal-auth/package.json +1 -1
  318. package/extensions/msteams/CHANGELOG.md +18 -0
  319. package/extensions/msteams/package.json +1 -1
  320. package/extensions/nextcloud-talk/package.json +1 -1
  321. package/extensions/nostr/CHANGELOG.md +18 -0
  322. package/extensions/nostr/package.json +1 -1
  323. package/extensions/open-prose/package.json +1 -1
  324. package/extensions/sat-mining/package.json +1 -1
  325. package/extensions/signal/package.json +1 -1
  326. package/extensions/synology-chat/package.json +1 -1
  327. package/extensions/tlon/package.json +1 -1
  328. package/extensions/twitch/CHANGELOG.md +18 -0
  329. package/extensions/twitch/package.json +1 -1
  330. package/extensions/voice-call/CHANGELOG.md +18 -0
  331. package/extensions/voice-call/package.json +1 -1
  332. package/extensions/zalo/CHANGELOG.md +18 -0
  333. package/extensions/zalo/package.json +1 -1
  334. package/extensions/zalouser/CHANGELOG.md +18 -0
  335. package/extensions/zalouser/package.json +1 -1
  336. package/package.json +1 -1
  337. package/scripts/start-managed.sh +14 -0
@@ -1,2 +1,2 @@
1
- var e=[`off`,`minimal`,`low`,`medium`,`high`],t=[...e,`xhigh`],n=[`openai/gpt-5.6`,`openai/gpt-5.6-terra`,`openai/gpt-5.6-luna`,`openai/gpt-5.5`,`openai/gpt-5.4`,`openai/gpt-5.4-mini`,`openai/gpt-5.4-nano`,`openai-codex/gpt-5.5`,`openai-codex/gpt-5.4`,`openai-codex/gpt-5.4-mini`,`openai-codex/gpt-5.3-codex-spark`,`github-copilot/gpt-5.5`,`github-copilot/gpt-5.4`,`github-copilot/gpt-5.4-mini`,`github-copilot/gpt-5.3-codex-spark`],r=new Set(n.map(e=>e.toLowerCase())),i=new Set(n.map(e=>e.split(`/`)[1]?.toLowerCase()).filter(e=>!!e));function a(e){if(!e)return``;let t=e.trim().toLowerCase();return t===`z.ai`||t===`z-ai`?`zai`:t}function o(e){return a(e)===`zai`}function ee(e){if(!e)return;let t=e.trim().toLowerCase(),n=t.replace(/[\s_-]+/g,``);if(n===`xhigh`||n===`extrahigh`)return`xhigh`;if(t===`off`)return`off`;if([`on`,`enable`,`enabled`].includes(t))return`low`;if([`min`,`minimal`].includes(t))return`minimal`;if([`low`,`thinkhard`,`think-hard`,`think_hard`].includes(t))return`low`;if([`mid`,`med`,`medium`,`thinkharder`,`think-harder`,`harder`].includes(t))return`medium`;if([`high`,`ultra`,`ultrathink`,`think-hard`,`thinkhardest`,`highest`,`max`].includes(t))return`high`;if(t===`think`)return`minimal`}function te(e,t){let n=t?.trim().toLowerCase();if(!n)return!1;let a=e?.trim().toLowerCase();return a?r.has(`${a}/${n}`):i.has(n)}function ne(e){let t=new Set,n=[];for(let r of e??[]){let e=ee(r);!e||t.has(e)||(t.add(e),n.push(e))}return n}function re(n,r){return te(n,r)?[...t]:[...e]}function ie(e){let t=e?.trim().toLowerCase()??``;return t.includes(`fable-5`)||t.includes(`opus-4-8`)||t.includes(`opus-4.8`)||t.includes(`opus-4-6`)||t.includes(`opus-4.6`)||t.includes(`opus-4-7`)||t.includes(`opus-4.7`)||t.includes(`sonnet-5`)||t.includes(`sonnet-4-6`)||t.includes(`sonnet-4.6`)||t.includes(`sonnet-4-7`)||t.includes(`sonnet-4.7`)}function ae(e,t){let n=a(e);return n===`openai`||n===`openai-codex`||n===`github-copilot`||n===`copilot-proxy`?{thinkingMode:`openai-reasoning-effort`,reasoningBudgetSupported:!1}:n===`anthropic`?{thinkingMode:ie(t)?`anthropic-adaptive`:`anthropic-thinking-budget`,reasoningBudgetSupported:!ie(t)}:n===`google`||n===`google-gemini-cli`?{thinkingMode:`google-thinking-budget`,reasoningBudgetSupported:!0}:n===`zai`?{thinkingMode:`zai-binary`,reasoningBudgetSupported:!1}:n===`qwen`||n===`qwen-coding-plan`?{thinkingMode:`qwen-thinking`,reasoningBudgetSupported:!0}:n===`moonshot`||n===`kimi-coding`?{thinkingMode:`moonshot-thinking`,reasoningBudgetSupported:!1}:{thinkingMode:`generic-reasoning`,reasoningBudgetSupported:!1}}function oe(e,t){let n=a(e),r=t?.trim().toLowerCase()??``;return!n||!r?!1:n===`openai`||n===`openai-codex`||n===`github-copilot`||n===`copilot-proxy`?/^gpt-5(?:[.-]|$)/.test(r):n===`anthropic`?r.startsWith(`claude-`)||r.includes(`claude-`):n===`google`||n===`google-gemini-cli`?r.startsWith(`gemini-`):n===`zai`?r.startsWith(`glm-`):n===`qwen`||n===`qwen-coding-plan`?r.includes(`qwen`):n===`moonshot`||n===`kimi-coding`?r.includes(`kimi`):n===`minimax`||n===`minimax-cn`?r.includes(`minimax-m2`):[`openrouter`,`vercel-ai-gateway`,`opencode`,`huggingface`,`venice`,`together`,`synthetic`,`litellm`].includes(n)?/(gpt-5|claude-|gemini-|grok-|qwen|kimi|glm-|deepseek-r1|reasoning|thinking)/.test(r):!1}function s(e){let t=ne(e.capabilities?.thinkingLevels),n=t.length>0||typeof e.capabilities?.thinkingMode==`string`||typeof e.capabilities?.defaultThinkingLevel==`string`;if(e.capabilities?.fixedReasoning===!0&&!n||!(e.reasoning===!0||e.reasoning!==!1&&oe(e.provider,e.model))&&!n)return null;let r=ae(e.provider,e.model),i=r.thinkingMode===`zai-binary`?[`off`,`low`]:re(e.provider,e.model),a=t.length>0?t:i,o=ee(e.capabilities?.defaultThinkingLevel);return{thinkingLevels:a,defaultThinkingLevel:o&&a.includes(o)?o:a.includes(`low`)?`low`:a[0]??`off`,thinkingMode:e.capabilities?.thinkingMode??r.thinkingMode,reasoningBudgetSupported:e.capabilities?.reasoningBudgetSupported??r.reasoningBudgetSupported}}function se(e,t){return o(e)?[`off`,`low`]:re(e,t)}function ce(e,t){return se(e,t)}var le=`cloudflare-ai-gateway`,c=`cloudflare-ai-gateway`,ue=`claude-sonnet-5`;`${c}${ue}`;var de={input:0,output:0,cacheRead:0,cacheWrite:0},fe={tools:!0,json:!0},pe={thinkingLevels:[...e],defaultThinkingLevel:`low`,reasoningBudgetSupported:!0},me=[{id:ue,name:`Claude Sonnet 5`,reasoning:!0,input:[`text`,`image`],cost:de,contextWindow:1e6,maxTokens:128e3,capabilities:{...fe,...pe,thinkingMode:`anthropic-adaptive`}},{id:`claude-opus-4-8`,name:`Claude Opus 4.8`,reasoning:!0,input:[`text`,`image`],cost:de,contextWindow:1e6,maxTokens:128e3,capabilities:{...fe,...pe,thinkingMode:`anthropic-adaptive`,reasoningBudgetSupported:!1}},{id:`claude-haiku-4-5`,name:`Claude Haiku 4.5`,reasoning:!0,input:[`text`,`image`],cost:de,contextWindow:2e5,maxTokens:64e3,capabilities:{...fe,...pe,thinkingMode:`anthropic-thinking-budget`}}],he=me.map(e=>e.id).map(e=>`${c}/${e}`);function ge(e=c){return Object.fromEntries(me.map(t=>[`${e}/${t.id}`.toLowerCase(),t.capabilities?{...t.capabilities}:{}]))}var _e=`openai/gpt-oss-120b`;`${_e}`;var l={tools:!0,json:!0},ve=[{id:_e,name:`GPT-OSS 120B`,reasoning:!0,input:[`text`],contextWindow:131072,maxTokens:8192,cost:{input:.15,output:.75,cacheRead:0,cacheWrite:0},capabilities:l},{id:`deepseek-ai/DeepSeek-V4-Pro`,name:`DeepSeek V4 Pro`,reasoning:!0,input:[`text`],contextWindow:1048576,maxTokens:8192,cost:{input:1.69,output:3.38,cacheRead:0,cacheWrite:0},capabilities:l},{id:`deepseek-ai/DeepSeek-V4-Flash`,name:`DeepSeek V4 Flash`,reasoning:!1,input:[`text`],contextWindow:1048576,maxTokens:8192,cost:{input:.14,output:.28,cacheRead:0,cacheWrite:0},capabilities:l},{id:`moonshotai/Kimi-K2.6`,name:`Kimi K2.6`,reasoning:!0,input:[`text`,`image`],contextWindow:262144,maxTokens:8192,cost:{input:.95,output:4,cacheRead:0,cacheWrite:0},capabilities:l},{id:`MiniMaxAI/MiniMax-M2.7`,name:`MiniMax M2.7`,reasoning:!0,input:[`text`],contextWindow:204800,maxTokens:8192,cost:{input:.3,output:1.2,cacheRead:0,cacheWrite:0},capabilities:l},{id:`zai-org/GLM-5.1`,name:`GLM-5.1`,reasoning:!0,input:[`text`],contextWindow:202752,maxTokens:8192,cost:{input:1.4,output:4.4,cacheRead:0,cacheWrite:0},capabilities:l},{id:`Qwen/Qwen3.6-35B-A3B`,name:`Qwen3.6 35B A3B`,reasoning:!0,input:[`text`,`image`],contextWindow:262144,maxTokens:8192,cost:{input:.15,output:.95,cacheRead:0,cacheWrite:0},capabilities:l},{id:`Qwen/Qwen3.5-397B-A17B`,name:`Qwen3.5 397B A17B`,reasoning:!0,input:[`text`,`image`],contextWindow:262144,maxTokens:8192,cost:{input:.6,output:3.6,cacheRead:0,cacheWrite:0},capabilities:l},{id:`Qwen/Qwen3-Coder-Next`,name:`Qwen3 Coder Next`,reasoning:!1,input:[`text`],contextWindow:262144,maxTokens:8192,cost:{input:.2,output:1.5,cacheRead:0,cacheWrite:0},capabilities:{tools:!0,json:!1}},{id:`Qwen/Qwen3-Coder-480B-A35B-Instruct`,name:`Qwen3 Coder 480B A35B Instruct`,reasoning:!1,input:[`text`],contextWindow:262144,maxTokens:8192,cost:{input:.3,output:1.3,cacheRead:0,cacheWrite:0},capabilities:l},{id:`google/gemma-4-31B-it`,name:`Gemma 4 31B Instruct`,reasoning:!1,input:[`text`,`image`],contextWindow:262144,maxTokens:8192,cost:{input:.14,output:.4,cacheRead:0,cacheWrite:0},capabilities:l},{id:`google/gemma-4-26B-A4B-it`,name:`Gemma 4 26B A4B Instruct`,reasoning:!1,input:[`text`,`image`],contextWindow:262144,maxTokens:8192,cost:{input:.13,output:.4,cacheRead:0,cacheWrite:0},capabilities:l},{id:`openai/gpt-oss-20b`,name:`GPT-OSS 20B`,reasoning:!0,input:[`text`],contextWindow:131072,maxTokens:8192,cost:{input:.1,output:.5,cacheRead:0,cacheWrite:0},capabilities:l},{id:`deepseek-ai/DeepSeek-R1`,name:`DeepSeek R1`,reasoning:!0,input:[`text`],contextWindow:163840,maxTokens:8192,cost:{input:.7,output:2.5,cacheRead:0,cacheWrite:0},capabilities:l},{id:`deepseek-ai/DeepSeek-V3.2`,name:`DeepSeek V3.2`,reasoning:!1,input:[`text`],contextWindow:163840,maxTokens:8192,cost:{input:.269,output:.4,cacheRead:0,cacheWrite:0},capabilities:l},{id:`meta-llama/Llama-3.3-70B-Instruct`,name:`Llama 3.3 70B Instruct`,reasoning:!1,input:[`text`],contextWindow:131072,maxTokens:8192,cost:{input:.59,output:.79,cacheRead:0,cacheWrite:0},capabilities:l},{id:`Qwen/Qwen3-VL-235B-A22B-Instruct`,name:`Qwen3 VL 235B A22B Instruct`,reasoning:!1,input:[`text`,`image`],contextWindow:131072,maxTokens:8192,cost:{input:.3,output:1.5,cacheRead:0,cacheWrite:0},capabilities:l},{id:`Qwen/Qwen3-235B-A22B-Instruct-2507`,name:`Qwen3 235B A22B Instruct 2507`,reasoning:!0,input:[`text`],contextWindow:262144,maxTokens:8192,cost:{input:.09,output:.58,cacheRead:0,cacheWrite:0},capabilities:l},{id:`Qwen/Qwen3-Coder-Next-FP8`,name:`Qwen3 Coder Next FP8`,reasoning:!1,input:[`text`],contextWindow:262144,maxTokens:8192,cost:{input:.5,output:1.2,cacheRead:0,cacheWrite:0},capabilities:l},{id:`google/gemma-3n-E4B-it`,name:`Gemma 3N E4B Instruct`,reasoning:!1,input:[`text`,`image`],contextWindow:32768,maxTokens:8192,cost:{input:.06,output:.12,cacheRead:0,cacheWrite:0},capabilities:{tools:!1,json:!0}},{id:`EssentialAI/rnj-1-instruct`,name:`Rnj-1 Instruct`,reasoning:!1,input:[`text`],contextWindow:32768,maxTokens:8192,cost:{input:.15,output:.15,cacheRead:0,cacheWrite:0},capabilities:l},{id:`inclusionAI/Ling-2.6-1T`,name:`Ling 2.6 1T`,reasoning:!1,input:[`text`],contextWindow:262144,maxTokens:8192,cost:{input:.3,output:2.5,cacheRead:0,cacheWrite:0},capabilities:l}],ye=ve.map(e=>e.id).map(e=>`huggingface/${e}`);function be(e){return{...e.capabilities?{...e.capabilities}:{},...e.reasoning?{fixedReasoning:!0}:{}}}function xe(e=`huggingface`){return Object.fromEntries(ve.map(t=>[`${e}/${t.id}`.toLowerCase(),be(t)]))}var Se=`default`;`${Se}`;var Ce=[{id:Se,name:`LiteLLM proxy default`,reasoning:!1,input:[`text`],contextWindow:128e3,maxTokens:8192,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},capabilities:{}}],we=Ce.map(e=>e.id).map(e=>`litellm/${e}`);function Te(e=`litellm`){return Object.fromEntries(Ce.map(t=>[`${e}/${t.id}`.toLowerCase(),t.capabilities?{...t.capabilities}:{}]))}var Ee=[`gpt-5.5`,`gpt-5.4`,`gpt-5.4-mini`,`gpt-5.4-nano`,`gpt-5.3-codex-spark`,`claude-fable-5`,`claude-opus-4-8`,`claude-sonnet-5`,`claude-haiku-4-5`,`gemini-3.5-flash`,`gemini-3.1-pro`,`gemini-3-flash`,`qwen3.7-plus`,`minimax-m2.7`,`glm-5.2`,`kimi-k2.6`].map(e=>`opencode/${e}`);function De(e){let t=e.trim().toLowerCase();return t.startsWith(`claude-`)?{provider:`anthropic`,model:t}:t.startsWith(`gemini-`)?{provider:`google`,model:t}:t.startsWith(`glm-`)?{provider:`zai`,model:t}:t.startsWith(`kimi-`)?{provider:`moonshot`,model:t}:t.startsWith(`qwen`)?{provider:`qwen`,model:t}:t.startsWith(`gpt-`)?{provider:`openai`,model:t}:{provider:`opencode`,model:t}}function Oe(e){let t=De(e),n=s({provider:t.provider,model:t.model,reasoning:!0});return{tools:!0,json:!0,...n?{thinkingLevels:n.thinkingLevels,defaultThinkingLevel:n.defaultThinkingLevel,thinkingMode:n.thinkingMode,reasoningBudgetSupported:n.reasoningBudgetSupported}:{}}}function ke(e){return Object.fromEntries(e.map(e=>[e,Oe(e.replace(/^opencode\//,``))]))}var Ae=`hf:MiniMaxAI/MiniMax-M2.5`;`${Ae}`;var u={tools:!0,json:!0},je=[{id:`hf:zai-org/GLM-5.1`,name:`GLM-5.1`,reasoning:!0,input:[`text`],contextWindow:196608,maxTokens:65536,capabilities:u},{id:`hf:moonshotai/Kimi-K2.6`,name:`Kimi K2.6`,reasoning:!0,input:[`text`,`image`],contextWindow:262144,maxTokens:65536,capabilities:u},{id:Ae,name:`MiniMax M2.5`,reasoning:!1,input:[`text`],contextWindow:191488,maxTokens:65536,capabilities:u},{id:`hf:zai-org/GLM-4.7-Flash`,name:`GLM-4.7 Flash`,reasoning:!1,input:[`text`],contextWindow:196608,maxTokens:65536,capabilities:u},{id:`hf:zai-org/GLM-5`,name:`GLM-5`,reasoning:!0,input:[`text`],contextWindow:196608,maxTokens:65536,capabilities:u},{id:`hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4`,name:`NVIDIA Nemotron 3 Super 120B`,reasoning:!1,input:[`text`],contextWindow:262144,maxTokens:65536,capabilities:u},{id:`hf:zai-org/GLM-4.7`,name:`GLM-4.7`,reasoning:!1,input:[`text`],contextWindow:202752,maxTokens:65536,capabilities:u},{id:`hf:deepseek-ai/DeepSeek-V3.2`,name:`DeepSeek V3.2`,reasoning:!1,input:[`text`],contextWindow:159e3,maxTokens:8192,capabilities:u},{id:`hf:openai/gpt-oss-120b`,name:`GPT OSS 120B`,reasoning:!1,input:[`text`],contextWindow:128e3,maxTokens:8192,capabilities:u},{id:`hf:deepseek-ai/DeepSeek-R1-0528`,name:`DeepSeek R1 0528`,reasoning:!0,input:[`text`],contextWindow:128e3,maxTokens:8192,capabilities:u},{id:`hf:deepseek-ai/DeepSeek-V3`,name:`DeepSeek V3`,reasoning:!1,input:[`text`],contextWindow:128e3,maxTokens:8192,capabilities:u},{id:`hf:meta-llama/Llama-3.3-70B-Instruct`,name:`Llama 3.3 70B Instruct`,reasoning:!1,input:[`text`],contextWindow:128e3,maxTokens:8192,capabilities:u},{id:`hf:moonshotai/Kimi-K2.5`,name:`Kimi K2.5`,reasoning:!0,input:[`text`,`image`],contextWindow:262144,maxTokens:8192,capabilities:u},{id:`hf:nvidia/Kimi-K2.5-NVFP4`,name:`Kimi K2.5 NVFP4`,reasoning:!1,input:[`text`,`image`],contextWindow:262144,maxTokens:8192,capabilities:u},{id:`hf:Qwen/Qwen3-235B-A22B-Thinking-2507`,name:`Qwen3 235B A22B Thinking 2507`,reasoning:!0,input:[`text`],contextWindow:262144,maxTokens:8192,capabilities:u},{id:`hf:Qwen/Qwen3-Coder-480B-A35B-Instruct`,name:`Qwen3 Coder 480B A35B Instruct`,reasoning:!1,input:[`text`],contextWindow:262144,maxTokens:8192,capabilities:u},{id:`hf:Qwen/Qwen3.5-397B-A17B`,name:`Qwen3.5 397B A17B`,reasoning:!1,input:[`text`,`image`],contextWindow:262144,maxTokens:8192,capabilities:u}],Me=je.map(e=>e.id);function Ne(e=`synthetic`){return Object.fromEntries(je.map(t=>[`${e}/${t.id}`,t.capabilities?{...t.capabilities}:{}]))}var Pe=`moonshotai/Kimi-K2.6`;`${Pe}`;var d={tools:!0,json:!0},f={tools:!1,json:!1},Fe=[{id:Pe,name:`Kimi K2.6`,reasoning:!0,input:[`text`,`image`],contextWindow:262144,maxTokens:16384,cost:{input:1.2,output:4.5,cacheRead:.2,cacheWrite:1.2},capabilities:{...d,video:!0}},{id:`moonshotai/Kimi-K2.5`,name:`Kimi K2.5`,reasoning:!0,input:[`text`,`image`],contextWindow:262144,maxTokens:32768,cost:{input:.5,output:2.8,cacheRead:.5,cacheWrite:2.8},capabilities:d},{id:`MiniMaxAI/MiniMax-M2.7`,name:`MiniMax M2.7`,reasoning:!0,input:[`text`],contextWindow:202752,maxTokens:32768,cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:.3},capabilities:d},{id:`zai-org/GLM-5.1`,name:`GLM-5.1`,reasoning:!0,input:[`text`],contextWindow:202752,maxTokens:128e3,cost:{input:1.4,output:4.4,cacheRead:1.4,cacheWrite:1.4},capabilities:d},{id:`zai-org/GLM-5`,name:`GLM-5`,reasoning:!0,input:[`text`],contextWindow:202752,maxTokens:128e3,cost:{input:1,output:3.2,cacheRead:1,cacheWrite:1},capabilities:d},{id:`Qwen/Qwen3.6-Plus`,name:`Qwen3.6 Plus`,reasoning:!0,input:[`text`],contextWindow:1e6,maxTokens:32768,cost:{input:.5,output:3,cacheRead:.5,cacheWrite:.5},capabilities:f},{id:`Qwen/Qwen3.5-397B-A17B`,name:`Qwen3.5 397B A17B`,reasoning:!0,input:[`text`,`image`],contextWindow:262144,maxTokens:32768,cost:{input:.6,output:3.6,cacheRead:.6,cacheWrite:.6},capabilities:d},{id:`Qwen/Qwen3.5-9B`,name:`Qwen3.5 9B`,reasoning:!1,input:[`text`,`image`],contextWindow:262144,maxTokens:32768,cost:{input:.1,output:.15,cacheRead:.1,cacheWrite:.1},capabilities:d},{id:`openai/gpt-oss-120b`,name:`GPT-OSS 120B`,reasoning:!0,input:[`text`],contextWindow:128e3,maxTokens:32768,cost:{input:.15,output:.6,cacheRead:.15,cacheWrite:.15},capabilities:d},{id:`openai/gpt-oss-20b`,name:`GPT-OSS 20B`,reasoning:!0,input:[`text`],contextWindow:128e3,maxTokens:32768,cost:{input:.05,output:.2,cacheRead:.05,cacheWrite:.05},capabilities:d},{id:`deepseek-ai/DeepSeek-V4-Pro`,name:`DeepSeek V4 Pro`,reasoning:!0,input:[`text`],contextWindow:512e3,maxTokens:32768,cost:{input:2.1,output:4.4,cacheRead:.2,cacheWrite:2.1},capabilities:d},{id:`deepseek-ai/DeepSeek-R1`,name:`DeepSeek R1 0528`,reasoning:!0,input:[`text`],contextWindow:163840,maxTokens:32768,cost:{input:3,output:7,cacheRead:3,cacheWrite:3},capabilities:f},{id:`deepseek-ai/DeepSeek-V3.1`,name:`DeepSeek V3.1`,reasoning:!1,input:[`text`],contextWindow:131072,maxTokens:32768,cost:{input:.6,output:1.7,cacheRead:.6,cacheWrite:.6},capabilities:f},{id:`Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8`,name:`Qwen3 Coder 480B A35B Instruct FP8`,reasoning:!1,input:[`text`],contextWindow:256e3,maxTokens:32768,cost:{input:2,output:2,cacheRead:2,cacheWrite:2},capabilities:d},{id:`Qwen/Qwen3-235B-A22B-Instruct-2507-tput`,name:`Qwen3 235B A22B Instruct 2507`,reasoning:!0,input:[`text`],contextWindow:262144,maxTokens:32768,cost:{input:.2,output:.6,cacheRead:.2,cacheWrite:.2},capabilities:d},{id:`Qwen/Qwen3-Coder-Next-FP8`,name:`Qwen3 Coder Next FP8`,reasoning:!1,input:[`text`],contextWindow:262144,maxTokens:32768,cost:{input:.5,output:1.2,cacheRead:.5,cacheWrite:.5},capabilities:f},{id:`meta-llama/Llama-3.3-70B-Instruct-Turbo`,name:`Llama 3.3 70B Instruct Turbo`,reasoning:!1,input:[`text`],contextWindow:131072,maxTokens:8192,cost:{input:.88,output:.88,cacheRead:.88,cacheWrite:.88},capabilities:d},{id:`essentialai/rnj-1-instruct`,name:`Rnj-1 Instruct`,reasoning:!1,input:[`text`],contextWindow:32768,maxTokens:8192,cost:{input:.15,output:.15,cacheRead:.15,cacheWrite:.15},capabilities:d},{id:`google/gemma-4-31B-it`,name:`Gemma 4 31B Instruct`,reasoning:!1,input:[`text`,`image`],contextWindow:262144,maxTokens:32768,cost:{input:.2,output:.5,cacheRead:.2,cacheWrite:.2},capabilities:d},{id:`google/gemma-3n-E4B-it`,name:`Gemma 3N E4B Instruct`,reasoning:!1,input:[`text`,`image`],contextWindow:32768,maxTokens:8192,cost:{input:.06,output:.12,cacheRead:.06,cacheWrite:.06},capabilities:{tools:!1,json:!0}}],Ie=Fe.map(e=>e.id).map(e=>`together/${e}`);function Le(e=`together`){return Object.fromEntries(Fe.map(t=>[`${e}/${t.id}`,t.capabilities?{...t.capabilities}:{}]))}var Re=`zai-org-glm-5-1`;`${Re}`;var p={thinkingMode:`generic-reasoning`,reasoningBudgetSupported:!1},m={tools:!0,json:!0},ze={tools:!0,json:!1},Be=[{id:Re,name:`GLM 5.1`,reasoning:!0,input:[`text`],cost:{input:1.75,output:5.5,cacheRead:.325,cacheWrite:0},contextWindow:2e5,maxTokens:24e3,capabilities:{...m,thinkingLevels:[`off`,`low`,`medium`,`high`],defaultThinkingLevel:`low`,...p}},{id:`venice-uncensored-1-2`,name:`Venice Uncensored 1.2`,reasoning:!1,input:[`text`,`image`],cost:{input:.2,output:.9,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192,capabilities:m},{id:`qwen-3-6-plus`,name:`Qwen 3.6 Plus Uncensored`,reasoning:!0,input:[`text`,`image`],cost:{input:.625,output:3.75,cacheRead:.0625,cacheWrite:.78},contextWindow:1e6,maxTokens:65536,capabilities:{...m,video:!0,fixedReasoning:!0}},{id:`qwen3-5-397b-a17b`,name:`Qwen 3.5 397B`,reasoning:!0,input:[`text`,`image`],cost:{input:.75,output:4.5,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:32768,capabilities:{...m,video:!0,thinkingLevels:[`off`,`low`,`medium`,`high`],defaultThinkingLevel:`low`,...p}},{id:`qwen3-235b-a22b-thinking-2507`,name:`Qwen 3 235B A22B Thinking`,reasoning:!0,input:[`text`],cost:{input:.45,output:3.5,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384,capabilities:{...m,thinkingLevels:[`low`,`medium`,`high`],defaultThinkingLevel:`low`,...p}},{id:`qwen3-coder-480b-a35b-instruct-turbo`,name:`Qwen 3 Coder 480B Turbo`,reasoning:!1,input:[`text`],cost:{input:.35,output:1.5,cacheRead:.04,cacheWrite:0},contextWindow:256e3,maxTokens:65536,capabilities:m},{id:`qwen3-vl-235b-a22b`,name:`Qwen3 VL 235B`,reasoning:!1,input:[`text`,`image`],cost:{input:.25,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:16384,capabilities:m},{id:`deepseek-v4-pro`,name:`DeepSeek V4 Pro`,reasoning:!0,input:[`text`],cost:{input:1.73,output:3.796,cacheRead:.33,cacheWrite:0},contextWindow:1e6,maxTokens:32768,capabilities:{...m,fixedReasoning:!0}},{id:`deepseek-v4-flash`,name:`DeepSeek V4 Flash`,reasoning:!0,input:[`text`],cost:{input:.17,output:.35,cacheRead:.028,cacheWrite:0},contextWindow:1e6,maxTokens:32768,capabilities:{...m,fixedReasoning:!0}},{id:`kimi-k2-6`,name:`Kimi K2.6`,reasoning:!0,input:[`text`,`image`],cost:{input:.85,output:4.655,cacheRead:.22,cacheWrite:0},contextWindow:256e3,maxTokens:65536,capabilities:{...m,thinkingLevels:[`off`,`low`,`medium`,`high`],defaultThinkingLevel:`high`,...p}},{id:`claude-opus-4-7`,name:`Claude Opus 4.7`,reasoning:!0,input:[`text`,`image`],cost:{input:6,output:30,cacheRead:.6,cacheWrite:7.5},contextWindow:1e6,maxTokens:128e3,capabilities:{...m,fixedReasoning:!0}},{id:`claude-sonnet-4-6`,name:`Claude Sonnet 4.6`,reasoning:!0,input:[`text`,`image`],cost:{input:3.6,output:18,cacheRead:.36,cacheWrite:4.5},contextWindow:1e6,maxTokens:64e3,capabilities:{...m,fixedReasoning:!0}},{id:`openai-gpt-55`,name:`GPT-5.5`,reasoning:!0,input:[`text`,`image`],cost:{input:6.25,output:37.5,cacheRead:.625,cacheWrite:0},contextWindow:1e6,maxTokens:131072,capabilities:{...m,thinkingLevels:[`off`,`minimal`,`low`,`medium`,`high`],defaultThinkingLevel:`high`,...p}},{id:`openai-gpt-55-pro`,name:`GPT-5.5 Pro`,reasoning:!0,input:[`text`,`image`],cost:{input:37.5,output:225,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:128e3,capabilities:{...m,thinkingLevels:[`off`,`minimal`,`low`,`medium`,`high`],defaultThinkingLevel:`medium`,...p}},{id:`openai-gpt-54`,name:`GPT-5.4`,reasoning:!0,input:[`text`,`image`],cost:{input:3.13,output:18.8,cacheRead:.313,cacheWrite:0},contextWindow:1e6,maxTokens:131072,capabilities:{...m,thinkingLevels:[`off`,`minimal`,`low`,`medium`,`high`],defaultThinkingLevel:`high`,...p}},{id:`openai-gpt-54-mini`,name:`GPT-5.4 Mini`,reasoning:!0,input:[`text`,`image`],cost:{input:.9375,output:5.625,cacheRead:.09375,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,capabilities:{...m,thinkingLevels:[`off`,`minimal`,`low`,`medium`,`high`],defaultThinkingLevel:`high`,...p}},{id:`gemini-3-1-pro-preview`,name:`Gemini 3.1 Pro Preview`,reasoning:!0,input:[`text`,`image`],cost:{input:2.5,output:15,cacheRead:.5,cacheWrite:.5},contextWindow:1e6,maxTokens:32768,capabilities:{...m,audio:!0,video:!0,thinkingLevels:[`low`,`medium`,`high`],defaultThinkingLevel:`low`,...p}},{id:`grok-4-20`,name:`Grok 4.20`,reasoning:!0,input:[`text`,`image`],cost:{input:1.42,output:2.83,cacheRead:.23,cacheWrite:0},contextWindow:2e6,maxTokens:128e3,capabilities:{...m,fixedReasoning:!0}},{id:`minimax-m27`,name:`MiniMax M2.7`,reasoning:!0,input:[`text`],cost:{input:.375,output:1.5,cacheRead:.075,cacheWrite:0},contextWindow:198e3,maxTokens:32768,capabilities:{...ze,thinkingLevels:[`low`,`medium`,`high`],defaultThinkingLevel:`low`,...p}},{id:`openai-gpt-oss-120b`,name:`OpenAI GPT OSS 120B`,reasoning:!0,input:[`text`],cost:{input:.07,output:.3,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384,capabilities:{...ze,thinkingLevels:[`off`,`low`,`medium`,`high`],defaultThinkingLevel:`low`,...p}},{id:`google-gemma-4-31b-it`,name:`Google Gemma 4 31B Instruct`,reasoning:!0,input:[`text`,`image`],cost:{input:.175,output:.5,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:8192,capabilities:{...m,video:!0,thinkingLevels:[`off`,`low`,`medium`,`high`],defaultThinkingLevel:`low`,...p}},{id:`mistral-small-2603`,name:`Mistral Small 4`,reasoning:!0,input:[`text`,`image`],cost:{input:.1875,output:.75,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:65536,capabilities:{...m,thinkingLevels:[`off`,`high`],defaultThinkingLevel:`high`,...p}}],Ve=Be.map(e=>e.id).map(e=>`venice/${e}`);function He(e=`venice`){return Object.fromEntries(Be.map(t=>[`${e}/${t.id}`.toLowerCase(),t.capabilities?{...t.capabilities}:{}]))}var Ue=[{id:`openai/gpt-5.5`,contextWindow:1e6,maxTokens:128e3,tags:[`reasoning`,`tool-use`,`web-search`,`implicit-caching`,`file-input`,`vision`]},{id:`openai/gpt-5.4`,contextWindow:1e6,maxTokens:128e3,tags:[`reasoning`,`tool-use`,`vision`,`file-input`,`implicit-caching`,`web-search`]},{id:`openai/gpt-5.4-mini`,contextWindow:4e5,maxTokens:128e3,tags:[`reasoning`,`tool-use`,`vision`,`file-input`,`implicit-caching`,`web-search`]},{id:`openai/gpt-5.4-nano`,contextWindow:4e5,maxTokens:128e3,tags:[`reasoning`,`tool-use`,`implicit-caching`,`web-search`,`vision`,`file-input`]},{id:`anthropic/claude-fable-5`,contextWindow:1e6,maxTokens:128e3,tags:[`tool-use`,`reasoning`,`vision`,`file-input`,`explicit-caching`,`web-search`]},{id:`anthropic/claude-opus-4.8`,contextWindow:1e6,maxTokens:128e3,tags:[`tool-use`,`reasoning`,`vision`,`file-input`,`explicit-caching`,`web-search`]},{id:`anthropic/claude-sonnet-5`,contextWindow:1e6,maxTokens:128e3,tags:[`file-input`,`reasoning`,`tool-use`,`vision`,`explicit-caching`,`web-search`]},{id:`anthropic/claude-haiku-4.5`,contextWindow:2e5,maxTokens:64e3,tags:[`file-input`,`reasoning`,`tool-use`,`vision`,`explicit-caching`]},{id:`google/gemini-3.5-flash`,contextWindow:1e6,maxTokens:65e3,tags:[`reasoning`,`tool-use`,`file-input`,`vision`,`web-search`,`implicit-caching`]},{id:`google/gemini-3.1-pro-preview`,contextWindow:1e6,maxTokens:64e3,tags:[`file-input`,`tool-use`,`reasoning`,`vision`,`web-search`,`implicit-caching`]},{id:`google/gemini-3-flash-preview`,contextWindow:1e6,maxTokens:65e3,tags:[`reasoning`,`tool-use`,`file-input`,`vision`,`web-search`,`implicit-caching`]},{id:`google/gemini-3.1-flash-lite`,contextWindow:1e6,maxTokens:65e3,tags:[`reasoning`,`tool-use`,`implicit-caching`,`file-input`,`vision`,`web-search`]},{id:`xai/grok-4.3`,contextWindow:1e6,maxTokens:1e6,tags:[`reasoning`,`tool-use`,`implicit-caching`,`file-input`,`vision`,`web-search`]},{id:`xai/grok-build-0.1`,contextWindow:256e3,maxTokens:256e3,tags:[`tool-use`,`implicit-caching`]},{id:`mistral/mistral-medium-3.5`,contextWindow:256e3,maxTokens:256e3,tags:[`reasoning`,`tool-use`,`vision`]},{id:`mistral/mistral-small-2603`,contextWindow:256e3,maxTokens:256e3,tags:[`reasoning`,`tool-use`,`vision`]},{id:`mistral/mistral-large-2512`,contextWindow:256e3,maxTokens:256e3,tags:[`vision`]},{id:`mistral/devstral-2512`,contextWindow:256e3,maxTokens:256e3,tags:[`tool-use`]},{id:`minimax/minimax-m2.7`,contextWindow:204800,maxTokens:131e3,tags:[`reasoning`,`tool-use`,`implicit-caching`,`file-input`,`vision`]},{id:`minimax/minimax-m2.7-highspeed`,contextWindow:204800,maxTokens:131100,tags:[`reasoning`,`tool-use`,`implicit-caching`,`vision`]},{id:`moonshotai/kimi-k2.6`,contextWindow:262e3,maxTokens:262e3,tags:[`reasoning`,`tool-use`,`vision`,`file-input`,`implicit-caching`]}],We=Ue.map(e=>e.id).map(e=>`vercel-ai-gateway/${e}`);function Ge(e){let t=e.trim().replace(/^vercel-ai-gateway\//,``).toLowerCase();return Ue.find(e=>e.id.toLowerCase()===t)}function Ke(e){let[t,...n]=e.trim().replace(/^vercel-ai-gateway\//,``).split(`/`),r=n.join(`/`);switch(t){case`anthropic`:return{provider:`anthropic`,model:r};case`google`:return{provider:`google`,model:r};case`minimax`:return{provider:`minimax`,model:r};case`moonshotai`:return{provider:`moonshot`,model:r};case`openai`:return{provider:`openai`,model:r};case`xai`:return{provider:`xai`,model:r};default:return{provider:`vercel-ai-gateway`,model:e}}}function qe(e){let t=Ge(e);if(!t)return;let n=new Set(t.tags.map(e=>e.toLowerCase())),r=Ke(t.id),i=n.has(`reasoning`)?s({provider:r.provider,model:r.model,reasoning:!0}):null;return{tools:n.has(`tool-use`),...i?{thinkingLevels:i.thinkingLevels,defaultThinkingLevel:i.defaultThinkingLevel,thinkingMode:i.thinkingMode,reasoningBudgetSupported:i.reasoningBudgetSupported}:{}}}function Je(e){return Object.fromEntries(e.flatMap(e=>{let t=qe(e);return t?[[e,t]]:[]}))}var h={tools:!0,json:!0,thinkingLevels:[...e],defaultThinkingLevel:`low`,thinkingMode:`generic-reasoning`,reasoningBudgetSupported:!1},Ye={...h,audio:!0,video:!0},Xe=[{id:`mimo-v2.5-pro`,name:`Xiaomi MiMo V2.5 Pro`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072,capabilities:h},{id:`mimo-v2.5`,name:`Xiaomi MiMo V2.5`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:1048576,maxTokens:131072,capabilities:Ye},{id:`mimo-v2-pro`,name:`Xiaomi MiMo V2 Pro`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072,capabilities:h},{id:`mimo-v2-omni`,name:`Xiaomi MiMo V2 Omni`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:262144,maxTokens:128e3,capabilities:Ye},{id:`mimo-v2-flash`,name:`Xiaomi MiMo V2 Flash`,reasoning:!0,input:[`text`],cost:{input:.11,output:.32,cacheRead:.01,cacheWrite:0},contextWindow:262144,maxTokens:64e3,capabilities:h}],Ze=Xe.map(e=>e.id);function Qe(e=`xiaomi`){return Object.fromEntries(Xe.map(t=>[`${e}/${t.id}`,t.capabilities?{...t.capabilities}:{}]))}new Map(`openai.anthropic.chutes.ollama.lmstudio.vllm.minimax.moonshot.google.xai.mistral.volcengine.byteplus.openrouter.qwen.zai.qianfan.copilot.ai-gateway.opencode-zen.xiaomi.synthetic.together.huggingface.venice.litellm.cloudflare-ai-gateway.custom`.split(`.`).map((e,t)=>[e,t]));var $e=`openai`,et=`openai`,g=`openai-codex`,tt=`anthropic`,_=`anthropic`,nt=`chutes`,v=`chutes`,rt=`ollama`,y=`ollama`,it=`lmstudio`,b=`lmstudio`,at=`vllm`,x=`vllm`,ot=`minimax`,S=`minimax`,C=`minimax-cn`,w=`minimax-portal`,st=`moonshot`,T=`moonshot`,E=`kimi-coding`,ct=`google`,D=`google`,O=`google-gemini-cli`,lt=`mistral`,k=`mistral`,ut=`volcengine`,A=`volcengine`,j=`volcengine-coding`,M=`volcengine-plan`,dt=`byteplus`,N=`byteplus`,ft=`byteplus-coding`,P=`byteplus-plan`,pt=`openrouter`,F=`openrouter`,mt=`qwen`,I=`qwen`,L=`qwen-coding-plan`,ht=`qianfan`,R=`qianfan`,gt=`copilot`,z=`github-copilot`,B=`copilot-proxy`,_t=`ai-gateway`,V=`vercel-ai-gateway`,vt=`opencode-zen`,H=`opencode`,yt=`xiaomi`,U=`xiaomi`,bt=`synthetic`,W=`synthetic`,xt=`together`,G=`together`,St=`huggingface`,K=`huggingface`,Ct=`venice`,q=`venice`,wt=`litellm`,J=`litellm`,Tt=`custom`,Y=`custom`,Et=[`gpt-5.6`,`gpt-5.6-terra`,`gpt-5.6-luna`,`gpt-5.5`,`gpt-5.4`,`gpt-5.4-mini`,`gpt-5.4-nano`],Dt=[`gpt-5.5`,`gpt-5.4`,`gpt-5.4-mini`,`gpt-5.3-codex-spark`],Ot=Et.map(e=>`${et}/${e}`),kt=Dt.map(e=>`${g}/${e}`),At=[`claude-fable-5`,`claude-opus-4-8`,`claude-sonnet-5`,`claude-haiku-4-5`].map(e=>`${_}/${e}`),jt=[`google/gemma-4-31B-turbo-TEE`,`Qwen/Qwen3-32B-TEE`,`deepseek-ai/DeepSeek-V3.2-TEE`,`zai-org/GLM-5.1-TEE`,`moonshotai/Kimi-K2.6-TEE`,`Qwen/Qwen3.6-27B-TEE`,`Qwen/Qwen3.5-397B-A17B-TEE`,`zai-org/GLM-5-TEE`],Mt=jt.map(e=>`${v}/${e}`),Nt=[],Pt=[],Ft=[],It=[`MiniMax-M2.7`,`MiniMax-M2.7-highspeed`,`MiniMax-M2.5`,`MiniMax-M2.5-highspeed`],Lt=It.map(e=>`${S}/${e}`),Rt=It.map(e=>`${C}/${e}`),zt=[`MiniMax-M2.7`,`MiniMax-M2.7-highspeed`].map(e=>`${w}/${e}`),Bt=[`kimi-k2.6`,`kimi-k2.5`].map(e=>`${T}/${e}`),Vt=[`kimi-for-coding`].map(e=>`${E}/${e}`),Ht=[`gemini-3.5-flash`,`gemini-3.1-pro-preview`,`gemini-3-flash-preview`,`gemini-3.1-flash-lite`],Ut=Ht.map(e=>`${D}/${e}`),Wt=Ht.map(e=>`${O}/${e}`),Gt=[`grok-4.5`,`grok-4.3`,`grok-build-0.1`].map(e=>`xai/${e}`),Kt=[`mistral-medium-3.5`,`mistral-small-2603`,`mistral-large-2512`,`devstral-2512`,`ministral-14b-2512`,`ministral-8b-2512`,`ministral-3b-2512`].map(e=>`${k}/${e}`),qt=[`doubao-seed-2-0-pro-260215`,`doubao-seed-2-0-lite-260215`,`doubao-seed-2-0-mini-260215`,`doubao-seed-2-0-code-preview-260215`,`deepseek-v3-2-251201`,`glm-4-7-251222`].map(e=>`${A}/${e}`),Jt=[`ark-code-latest`,`doubao-seed-2.0-code`,`doubao-seed-2.0-pro`,`doubao-seed-2.0-lite`,`doubao-seed-code`,`minimax-m2.5`,`glm-4.7`,`deepseek-v3.2`,`kimi-k2.5`].flatMap(e=>[`${j}/${e}`,`${M}/${e}`]),Yt=[`seed-2-0-pro-260328`,`seed-2-0-lite-260228`,`seed-2-0-mini-260215`,`seed-2-0-code-preview-260328`,`deepseek-v3-2-251201`,`glm-4-7-251222`].map(e=>`${N}/${e}`),Xt=[`ark-code-latest`,`dola-seed-2.0-pro`,`dola-seed-2.0-lite`,`dola-seed-2.0-code`,`bytedance-seed-code`,`glm-5.1`,`glm-4.7`,`kimi-k2.5`,`gpt-oss-120b`].flatMap(e=>[`${ft}/${e}`,`${P}/${e}`]),Zt=`openrouter/owl-alpha,openai/gpt-5.6-sol,openai/gpt-5.6-terra,openai/gpt-5.6-luna,openai/gpt-5.5,openai/gpt-5.4,openai/gpt-5.4-mini,openai/gpt-5.4-nano,anthropic/claude-fable-5,anthropic/claude-opus-4.8,anthropic/claude-sonnet-5,anthropic/claude-haiku-4.5,google/gemini-3.5-flash,google/gemini-3.1-pro-preview,google/gemini-3-flash-preview,google/gemini-3.1-flash-lite,x-ai/grok-4.5,x-ai/grok-4.3,x-ai/grok-build-0.1,mistralai/mistral-medium-3-5,mistralai/mistral-small-2603,mistralai/mistral-large-2512,mistralai/devstral-2512,qwen/qwen3.7-max,qwen/qwen3.7-plus,qwen/qwen3.6-flash,z-ai/glm-5.2,deepseek/deepseek-v4-pro,deepseek/deepseek-v4-flash,minimax/minimax-m2.7,moonshotai/kimi-k2.6`.split(`,`).map(e=>`${F}/${e}`),Qt=[`qwen3.7-max`,`qwen3.7-plus`,`qwen3.6-flash`].map(e=>`${I}/${e}`),$t=[`qwen3.7-max`,`qwen3.7-plus`,`qwen3.6-flash`,`deepseek-v4-pro`,`deepseek-v4-flash`,`kimi-k2.7-code`,`glm-5.2`,`MiniMax-M2.5`].map(e=>`${L}/${e}`),en=[`glm-5.2`,`glm-5.1`,`glm-5`,`glm-5-turbo`,`glm-5v-turbo`,`glm-4.7`,`glm-4.7-flashx`,`glm-4.7-flash`].map(e=>`zai/${e}`),tn={tools:!0,json:!0,thinkingLevels:[`off`,`low`],defaultThinkingLevel:`low`,thinkingMode:`zai-binary`,reasoningBudgetSupported:!1},nn=Object.fromEntries(en.map(e=>[e,e.endsWith(`/glm-5v-turbo`)?{...tn,video:!0}:tn])),rn=[`ernie-5.1`,`ernie-5.0`,`ernie-5.0-thinking-latest`,`ernie-5.0-thinking-preview`,`ernie-x1.1-preview`,`ernie-x1.1`,`ernie-x1-turbo-32k`,`deepseek-v4-pro`,`deepseek-v4-flash`,`deepseek-v3.2-think`,`deepseek-v3.2`].map(e=>`${R}/${e}`),an=new Set([`qianfan/ernie-5.1`,`qianfan/ernie-5.0`,`qianfan/ernie-5.0-thinking-latest`,`qianfan/ernie-5.0-thinking-preview`,`qianfan/ernie-x1.1-preview`,`qianfan/ernie-x1.1`,`qianfan/ernie-x1-turbo-32k`]),on=new Set([`qianfan/deepseek-v4-pro`,`qianfan/deepseek-v4-flash`,`qianfan/deepseek-v3.2-think`,`qianfan/deepseek-v3.2`]),sn=Object.fromEntries(rn.map(t=>[t,{tools:!0,json:!0,...an.has(t)?{fixedReasoning:!0}:on.has(t)?{thinkingLevels:[...e],defaultThinkingLevel:`low`,thinkingMode:`generic-reasoning`,reasoningBudgetSupported:!0}:{}}])),cn=[`gpt-5.5`,`gpt-5.4`,`gpt-5.4-mini`,`gpt-5.3-codex-spark`,`gpt-4.1`,`claude-fable-5`,`claude-opus-4.8`,`claude-sonnet-5`,`claude-haiku-4.5`,`gemini-3.5-flash`,`gemini-3.1-pro`,`gemini-3-flash`,`grok-build-0.1`],ln=cn.map(e=>`${z}/${e}`),un=[...cn].map(e=>`${B}/${e}`);`${z}`;var dn=new Set([`gpt-5.5`,`gpt-5.4`,`gpt-5.4-mini`,`gpt-5.3-codex-spark`]),fn=new Set([`claude-fable-5`,`claude-opus-4.8`,`claude-sonnet-5`]),pn=new Set([`claude-haiku-4.5`]),mn=new Set([`gemini-3.5-flash`,`gemini-3.1-pro`,`gemini-3-flash`]);function hn(t){return Object.fromEntries(t.map(t=>{let n=t.slice(t.indexOf(`/`)+1);return[t,{tools:!0,json:!0,...dn.has(n)?{thinkingLevels:[...e],defaultThinkingLevel:`low`,thinkingMode:`openai-reasoning-effort`,reasoningBudgetSupported:!1}:fn.has(n)?{thinkingLevels:[...e],defaultThinkingLevel:`low`,thinkingMode:`anthropic-adaptive`,reasoningBudgetSupported:!0}:pn.has(n)?{thinkingLevels:[...e],defaultThinkingLevel:`low`,thinkingMode:`anthropic-thinking-budget`,reasoningBudgetSupported:!0}:mn.has(n)?{thinkingLevels:[...e],defaultThinkingLevel:`low`,thinkingMode:`google-thinking-budget`,reasoningBudgetSupported:!0}:{}}]}))}var gn={...hn(ln),...hn(un)},_n=Je(We),vn=ke(Ee),yn=Ze.map(e=>`${U}/${e}`);`${U}`;var bn=Qe(U),xn=Me.map(e=>`${W}/${e}`);`${W}`;var Sn=Ne(W),Cn=Le(G),wn=xe(K),Tn=He(q),En=Te(J),Dn=ge(c),On=[];function kn(e){let t=e.indexOf(`/`);return t<=0||t===e.length-1?null:{route:e.slice(0,t).trim(),model:e.slice(t+1).trim()}}function An(e,t){let n=t.trim().toLowerCase(),r=(e,r)=>n.startsWith(`${e}/`)?{provider:r,model:t.slice(e.length+1)}:null;return r(`openai`,`openai`)??r(`anthropic`,`anthropic`)??r(`google`,`google`)??r(`x-ai`,`xai`)??r(`xai`,`xai`)??r(`mistralai`,`mistral`)??r(`minimax`,`minimax`)??r(`qwen`,`qwen`)??r(`moonshotai`,`moonshot`)??r(`z-ai`,`zai`)??r(`zai-org`,`zai`)??r(`glm`,`zai`)??{provider:n.includes(`claude-`)||n.includes(`claude_`)?`anthropic`:n.includes(`gemini-`)?`google`:n.includes(`qwen`)?`qwen`:n.includes(`kimi`)?`moonshot`:n.includes(`glm-`)?`zai`:e,model:t}}function jn(e){let t=An(e.route,e.model),n=s({provider:t.provider,model:t.model,reasoning:e.reasoning});if(n)return{thinkingLevels:n.thinkingLevels,defaultThinkingLevel:n.defaultThinkingLevel,thinkingMode:n.thinkingMode,reasoningBudgetSupported:n.reasoningBudgetSupported}}function Mn(e){let t=kn(e);if(t)return jn({route:t.route,model:t.model})}function X(e){return Object.fromEntries(e.map(e=>[e.toLowerCase(),Mn(e)??{}]))}function Z(e,t){let n=X(e);for(let[e,r]of Object.entries(t))n[e.toLowerCase()]={...n[e.toLowerCase()],...r};return n}var Nn=[...e],Pn={"anthropic/claude-fable-5":{thinkingLevels:Nn,defaultThinkingLevel:`low`,thinkingMode:`anthropic-adaptive`,reasoningBudgetSupported:!1},"anthropic/claude-opus-4-8":{thinkingLevels:Nn,defaultThinkingLevel:`low`,thinkingMode:`anthropic-adaptive`,reasoningBudgetSupported:!1},"anthropic/claude-sonnet-5":{thinkingLevels:Nn,defaultThinkingLevel:`low`,thinkingMode:`anthropic-adaptive`,reasoningBudgetSupported:!1},"anthropic/claude-haiku-4-5":{thinkingLevels:Nn,defaultThinkingLevel:`low`,thinkingMode:`anthropic-thinking-budget`,reasoningBudgetSupported:!0}},Fn=Object.fromEntries(jt.map(e=>[`${v}/${e}`,{tools:!0,json:!0,...jn({route:v,model:e,reasoning:!0}),...e===`moonshotai/Kimi-K2.6-TEE`?{video:!0}:{}}])),In=[...e],Ln=Object.fromEntries([...Lt,...Rt,...zt].map(e=>[e,{tools:!0,thinkingLevels:In,defaultThinkingLevel:`off`,thinkingMode:`anthropic-thinking-budget`,reasoningBudgetSupported:!1}])),Rn=Object.fromEntries([...Bt,...Vt].map(t=>[t,{tools:!0,...t===`moonshot/kimi-k2.6`?{video:!0}:{},thinkingLevels:[...e],defaultThinkingLevel:`low`,thinkingMode:`moonshot-thinking`,reasoningBudgetSupported:!1}])),zn=Object.fromEntries([...Ut,...Wt].map(t=>[t,{tools:!0,json:!0,audio:!0,video:!0,thinkingLevels:[...e],defaultThinkingLevel:`low`,thinkingMode:`google-thinking-budget`,reasoningBudgetSupported:!0}])),Bn={"xai/grok-4.5":{tools:!0,json:!0,thinkingLevels:[`off`,`low`,`medium`,`high`],defaultThinkingLevel:`low`,thinkingMode:`xai-reasoning-effort`,reasoningBudgetSupported:!1},"xai/grok-4.3":{tools:!0,json:!0,thinkingLevels:[`off`,`low`,`medium`,`high`],defaultThinkingLevel:`low`,thinkingMode:`xai-reasoning-effort`,reasoningBudgetSupported:!1},"xai/grok-build-0.1":{tools:!0,json:!0}},Vn=[`off`,`high`],Hn=Object.fromEntries(Kt.map(e=>[e,{tools:!0,json:!0,...e===`mistral/mistral-medium-3.5`||e===`mistral/mistral-small-2603`?{thinkingLevels:[...Vn],defaultThinkingLevel:`high`,thinkingMode:`mistral-reasoning-effort`,reasoningBudgetSupported:!1}:{}}])),Un=[`minimal`,`low`,`medium`,`high`],Wn=new Set([`volcengine/doubao-seed-2-0-pro-260215`,`volcengine/doubao-seed-2-0-lite-260215`,`volcengine/doubao-seed-2-0-mini-260215`,`volcengine/doubao-seed-2-0-code-preview-260215`,`volcengine-coding/doubao-seed-2.0-code`,`volcengine-plan/doubao-seed-2.0-code`,`volcengine-coding/doubao-seed-2.0-pro`,`volcengine-plan/doubao-seed-2.0-pro`,`volcengine-coding/doubao-seed-2.0-lite`,`volcengine-plan/doubao-seed-2.0-lite`,`volcengine-coding/doubao-seed-code`,`volcengine-plan/doubao-seed-code`]),Gn=new Set([`volcengine/doubao-seed-2-0-pro-260215`,`volcengine/doubao-seed-2-0-lite-260215`,`volcengine/doubao-seed-2-0-mini-260215`,`volcengine/doubao-seed-2-0-code-preview-260215`,`volcengine-coding/doubao-seed-2.0-code`,`volcengine-plan/doubao-seed-2.0-code`,`volcengine-coding/doubao-seed-2.0-pro`,`volcengine-plan/doubao-seed-2.0-pro`,`volcengine-coding/doubao-seed-2.0-lite`,`volcengine-plan/doubao-seed-2.0-lite`,`volcengine-coding/doubao-seed-code`,`volcengine-plan/doubao-seed-code`]),Kn=Object.fromEntries([...qt,...Jt].map(e=>[e,{tools:!0,json:!0,...Wn.has(e)?{thinkingLevels:[...Un],defaultThinkingLevel:`medium`,thinkingMode:`volcengine-reasoning-effort`,reasoningBudgetSupported:!1}:{},...Gn.has(e)?{video:!0}:{}}])),qn=[`off`,`high`],Jn=new Set([`byteplus/seed-2-0-pro-260328`,`byteplus/seed-2-0-lite-260228`,`byteplus/seed-2-0-mini-260215`,`byteplus/seed-2-0-code-preview-260328`,`byteplus-coding/dola-seed-2.0-pro`,`byteplus-plan/dola-seed-2.0-pro`,`byteplus-coding/dola-seed-2.0-lite`,`byteplus-plan/dola-seed-2.0-lite`,`byteplus-coding/dola-seed-2.0-code`,`byteplus-plan/dola-seed-2.0-code`,`byteplus-coding/bytedance-seed-code`,`byteplus-plan/bytedance-seed-code`]),Yn=Object.fromEntries([...Yt,...Xt].map(e=>[e,{tools:!0,json:!0,...Jn.has(e)?{thinkingLevels:[...qn],defaultThinkingLevel:`high`,thinkingMode:`byteplus-thinking-type`,reasoningBudgetSupported:!1}:{}}])),Xn=new Set([`openrouter/google/gemini-3.5-flash`,`openrouter/google/gemini-3.1-pro-preview`,`openrouter/google/gemini-3-flash-preview`,`openrouter/google/gemini-3.1-flash-lite`]),Zn=new Set([`openrouter/google/gemini-3.5-flash`,`openrouter/google/gemini-3.1-pro-preview`,`openrouter/google/gemini-3-flash-preview`,`openrouter/google/gemini-3.1-flash-lite`,`openrouter/qwen/qwen3.7-max`,`openrouter/qwen/qwen3.7-plus`,`openrouter/qwen/qwen3.6-flash`]),Qn=new Set([`openrouter/mistralai/mistral-medium-3-5`,`openrouter/mistralai/mistral-small-2603`]),$n=new Set([`openrouter/minimax/minimax-m2.7`]),er=new Set([`openrouter/deepseek/deepseek-v4-pro`,`openrouter/deepseek/deepseek-v4-flash`]),tr=new Set([`openrouter/openai/gpt-5.6-sol`,`openrouter/openai/gpt-5.6-terra`,`openrouter/openai/gpt-5.6-luna`,`openrouter/openai/gpt-5.5`,`openrouter/openai/gpt-5.4`,`openrouter/openai/gpt-5.4-mini`,`openrouter/openai/gpt-5.4-nano`]),nr=new Set([`openrouter/x-ai/grok-4.5`,`openrouter/x-ai/grok-4.3`]),rr=Object.fromEntries(Zt.map(n=>[n,{tools:!0,json:!0,...Xn.has(n)?{audio:!0}:{},...Zn.has(n)?{video:!0}:{},...Qn.has(n)?{thinkingLevels:[...Vn],defaultThinkingLevel:`high`,thinkingMode:`mistral-reasoning-effort`,reasoningBudgetSupported:!1}:{},...$n.has(n)?{thinkingLevels:[...In],defaultThinkingLevel:`off`,thinkingMode:`anthropic-thinking-budget`,reasoningBudgetSupported:!1}:{},...er.has(n)?{thinkingLevels:[...e],defaultThinkingLevel:`low`,thinkingMode:`generic-reasoning`,reasoningBudgetSupported:!1}:{},...tr.has(n)?{thinkingLevels:[...t],defaultThinkingLevel:`low`,thinkingMode:`openai-reasoning-effort`,reasoningBudgetSupported:!1}:{},...nr.has(n)?{thinkingLevels:[`off`,`low`,`medium`,`high`],defaultThinkingLevel:`low`,thinkingMode:`xai-reasoning-effort`,reasoningBudgetSupported:!1}:{}}])),ir=new Set([`qwen-coding-plan/kimi-k2.7-code`,`qwen-coding-plan/glm-5.2`,`qwen-coding-plan/MiniMax-M2.5`]),ar=Object.fromEntries([...Qt,...$t].map(t=>[t,{tools:!0,json:!0,...ir.has(t)?{}:{thinkingLevels:[...e],defaultThinkingLevel:`low`,thinkingMode:`qwen-thinking`,reasoningBudgetSupported:!0}}])),or={id:$e,label:`OpenAI`,priority:1,hint:`OpenAI sign-in + API key`,methods:[{id:`openai-codex`,route:g,kind:`oauth`,label:`Sign in`,hint:`Open the OpenAI sign-in URL, finish login in the browser, then Fased completes the OAuth flow.`},{id:`openai-api-key`,route:et,kind:`api-key`,label:`API key`}],models:{recommended:[...Ot,...kt],routeRules:{[et]:[`${et}/*`],[g]:[`${g}/*`]}},modelCapabilities:X([...Ot,...kt])},sr={id:tt,label:`Anthropic`,priority:2,hint:`Claude Code OAuth + setup-token + API key`,methods:[{id:`anthropic-oauth`,route:_,kind:`oauth`,label:`Sign in (Claude Code)`,hint:`Claude or Console account; Pro, Max, Team, Enterprise, or Console access`,buttonLabel:`Sign in`},{id:`token`,route:_,kind:`token`,label:`Token (setup-token)`,hint:"run `claude setup-token` elsewhere, then paste the token here",buttonLabel:`Paste token`},{id:`apiKey`,route:_,kind:`api-key`,label:`API key`}],models:{recommended:[...At],routeRules:{[_]:[`${_}/*`]}},modelCapabilities:Z(At,Pn)},cr={id:nt,label:`Chutes`,priority:3,hint:`Sign in + API key`,methods:[{id:`chutes`,route:v,kind:`oauth`,label:`Sign in`,hint:`Requires a Chutes OAuth app client id. Enter the cid, then Fased generates the Chutes sign-in URL.`,buttonLabel:`Sign in`},{id:`chutes-api-key`,route:v,kind:`api-key`,label:`API key`}],models:{recommended:[...Mt],routeRules:{[v]:[`${v}/*`]}},modelCapabilities:Z(Mt,Fn)},lr={id:rt,label:`Ollama`,priority:4,hint:`Local, cloud, or hybrid Ollama through the native API`,modelProviderIds:[y],methods:[{id:`ollama`,route:y,kind:`manual`,label:`Ollama native URL + model`,hint:`Use the native Ollama base URL, for example http://127.0.0.1:11434. Do not use /v1.`,buttonLabel:`Configure`}],models:{recommended:Nt,dynamic:!0,routeRules:{[y]:[`${y}/*`]}},modelCapabilities:X(Nt)},ur={id:it,label:`LM Studio`,priority:4,hint:`Local LM Studio server on localhost:1234`,modelProviderIds:[b],methods:[{id:`lmstudio`,route:b,kind:`manual`,label:`LM Studio URL + model`,hint:`Use http://127.0.0.1:1234/v1, optional API token, and a model key from LM Studio.`,buttonLabel:`Configure`}],models:{recommended:Pt,dynamic:!0,routeRules:{[b]:[`${b}/*`]}},modelCapabilities:X(Pt)},dr={id:at,label:`vLLM-compatible`,priority:4,hint:`OpenAI-compatible local server: vLLM, SGLang, TGI, LocalAI, or FastChat`,modelProviderIds:[x],methods:[{id:`vllm`,route:x,kind:`manual`,label:`vLLM-compatible URL + model`,hint:`Enter the /v1 base URL, API key or local placeholder, and served model ID for vLLM, SGLang, TGI, LocalAI, or FastChat.`,buttonLabel:`Configure`}],models:{recommended:Ft,dynamic:!0,routeRules:{[x]:[`${x}/*`]}},modelCapabilities:X(Ft)},fr={id:ot,label:`MiniMax`,priority:5,hint:`MiniMax OAuth + API key`,modelProviderIds:[S,C,w],methods:[{id:`minimax-portal`,route:w,kind:`oauth`,label:`Sign in`,hint:`Global or CN endpoint; uses MiniMax portal sign-in`,setupRequirement:`Requires MiniMax portal/coding-plan access. Choose Global or CN, then open the approval URL and approve before the code expires.`,buttonLabel:`Sign in`},{id:`minimax-api`,route:S,kind:`api-key`,label:`API key`},{id:`minimax-api-key-cn`,route:C,kind:`api-key`,label:`API key (CN)`,hint:`China endpoint (api.minimaxi.com)`},{id:`minimax-api-lightning`,route:S,configProviderId:`minimax-lightning`,statusRoute:S,kind:`api-key`,label:`Highspeed API key`,hint:`Fast M2.7 tier`}],models:{recommended:[...Lt,...Rt,...zt],routeRules:{[S]:[`${S}/*`],[C]:[`${C}/*`],[w]:[`${w}/*`]}},modelCapabilities:Z([...Lt,...Rt,...zt],Ln)},pr={id:st,label:`Moonshot AI`,priority:6,hint:`Kimi API + Kimi Code`,modelProviderIds:[T,E],methods:[{id:`moonshot-api-key`,route:T,kind:`api-key`,label:`Kimi API key (.ai)`,hint:`Kimi Open Platform endpoint (api.moonshot.ai)`},{id:`moonshot-api-key-cn`,route:T,configProviderId:`moonshot-cn`,statusRoute:T,kind:`api-key`,label:`Kimi API key (.cn)`,hint:`China endpoint (api.moonshot.cn)`},{id:`kimi-code-api-key`,route:E,kind:`api-key`,label:`Kimi Code API key (subscription)`,hint:`Kimi Code membership endpoint (api.kimi.com/coding)`}],models:{recommended:[...Bt,...Vt],routeRules:{[T]:[`${T}/*`],[E]:[`${E}/*`]}},modelCapabilities:Z([...Bt,...Vt],Rn)},mr={id:ct,label:`Google`,priority:7,hint:`Gemini API key + OAuth`,routeAliases:[`gemini`],modelProviderIds:[D,`gemini`,O],methods:[{id:`gemini-api-key`,route:D,kind:`api-key`,label:`Gemini API key`},{id:`google-gemini-cli`,route:O,kind:`oauth`,label:`Sign in (Gemini CLI)`,hint:`Unofficial flow; review account-risk warning before use`,setupRequirement:`Requires gemini-cli installed on the gateway machine, or GEMINI_CLI_OAUTH_CLIENT_ID set before sign-in.`}],models:{recommended:[...Ut,...Wt],routeRules:{[D]:[`${D}/*`,`gemini/*`],[O]:[`${O}/*`]}},modelCapabilities:Z([...Ut,...Wt],zn)},hr={id:`xai`,label:`xAI (Grok)`,priority:8,hint:`Grok API key or xAI account sign-in`,methods:[{id:`xai-oauth`,route:`xai`,kind:`oauth`,label:`xAI sign-in`,hint:`Browser sign-in for eligible xAI/Grok accounts`,buttonLabel:`Sign in`},{id:`xai-device-code`,route:`xai`,kind:`device`,label:`xAI device code`,hint:`Remote-friendly sign-in for eligible xAI/Grok accounts`,buttonLabel:`Device code`},{id:`xai-api-key`,route:`xai`,kind:`api-key`,label:`xAI API key`}],models:{recommended:[...Gt],routeRules:{xai:[`xai/*`]}},modelCapabilities:Z(Gt,Bn)},gr={id:lt,label:`Mistral AI`,priority:9,hint:`Mistral API key`,methods:[{id:`mistral-api-key`,route:k,kind:`api-key`,label:`Mistral API key`}],models:{recommended:[...Kt],routeRules:{[k]:[`${k}/*`]}},modelCapabilities:Z(Kt,Hn)},_r={id:ut,label:`Volcano Engine`,priority:10,hint:`Ark API key + Coding Plan`,modelProviderIds:[A,j,M],methods:[{id:`volcengine-api-key`,route:A,kind:`api-key`,label:`Volcano Engine API key`}],models:{recommended:[...qt,...Jt],routeRules:{[A]:[`${A}/*`],[j]:[`${j}/*`],[M]:[`${M}/*`]}},modelCapabilities:Z([...qt,...Jt],Kn)},vr={id:dt,label:`BytePlus`,priority:11,hint:`ModelArk API key + Coding Plan`,modelProviderIds:[N,ft,P],methods:[{id:`byteplus-api-key`,route:N,kind:`api-key`,label:`BytePlus API key`}],models:{recommended:[...Yt,...Xt],routeRules:{[N]:[`${N}/*`],[ft]:[`${ft}/*`],[P]:[`${P}/*`]}},modelCapabilities:Z([...Yt,...Xt],Yn)},yr={id:pt,label:`OpenRouter`,priority:12,hint:`API key`,methods:[{id:`openrouter-api-key`,route:F,kind:`api-key`,label:`OpenRouter API key`}],models:{recommended:[...Zt],dynamic:!0,routeRules:{[F]:[`${F}/*`]}},modelCapabilities:Z(Zt,rr)},br={id:mt,label:`Qwen`,priority:14,hint:`Coding Plan + DashScope API key`,modelProviderIds:[L,I],methods:[{id:`qwen-coding-plan-api-key`,route:L,kind:`api-key`,label:`Coding Plan API key`,hint:`Alibaba Cloud Coding Plan endpoint (coding.dashscope.aliyuncs.com)`},{id:`qwen-api-key`,route:I,kind:`api-key`,label:`DashScope API key`,hint:`DashScope OpenAI-compatible endpoint (dashscope.aliyuncs.com)`}],models:{recommended:[...$t,...Qt],routeRules:{[L]:[`${L}/*`],[I]:[`${I}/*`]}},modelCapabilities:Z([...$t,...Qt],ar)},xr={id:`zai`,label:`Z.AI`,priority:15,hint:`GLM Coding Plan / Global / CN`,modelProviderIds:[`zai`],methods:[{id:`zai-coding-global`,route:`zai`,configProviderId:`zai-coding-global`,statusRoute:`zai`,kind:`api-key`,label:`Coding-Plan-Global`,hint:`GLM Coding Plan Global (api.z.ai)`},{id:`zai-coding-cn`,route:`zai`,configProviderId:`zai-coding-cn`,statusRoute:`zai`,kind:`api-key`,label:`Coding-Plan-CN`,hint:`GLM Coding Plan CN (open.bigmodel.cn)`},{id:`zai-global`,route:`zai`,configProviderId:`zai`,kind:`api-key`,label:`Global`,hint:`Z.AI Global (api.z.ai)`},{id:`zai-cn`,route:`zai`,configProviderId:`zai-cn`,statusRoute:`zai`,kind:`api-key`,label:`CN`,hint:`Z.AI CN (open.bigmodel.cn)`}],models:{recommended:[...en],routeRules:{zai:[`zai/*`]}},modelCapabilities:Z(en,nn)},Sr={id:ht,label:`Qianfan`,priority:16,hint:`Baidu Qianfan API key`,methods:[{id:`qianfan-api-key`,route:R,kind:`api-key`,label:`Qianfan API key`}],models:{recommended:[...rn],routeRules:{[R]:[`${R}/*`]}},modelCapabilities:Z(rn,sn)},Cr={id:gt,label:`Copilot`,priority:17,hint:`GitHub device login + local proxy`,modelProviderIds:[z,B],methods:[{id:`github-copilot`,route:z,kind:`device`,label:`GitHub sign in`,hint:`GitHub OAuth device flow; requires an active Copilot subscription`,buttonLabel:`Sign in`},{id:`copilot-proxy`,route:B,kind:`device`,label:`Proxy sign in`,hint:`Local VS Code Copilot Proxy bridge`,buttonLabel:`Configure`}],models:{recommended:[...ln,...un],dynamic:!0,routeRules:{[z]:[`${z}/*`],[B]:[`${B}/*`]}},modelCapabilities:Z([...ln,...un],gn)},wr={id:_t,label:`Vercel AI`,priority:18,hint:`API key`,modelProviderIds:[V],methods:[{id:`ai-gateway-api-key`,route:V,kind:`api-key`,label:`Vercel AI API key`}],models:{recommended:[...We],dynamic:!0,routeRules:{[V]:[`${V}/*`]}},modelCapabilities:Z(We,_n)},Tr={id:vt,label:`OpenCode Zen`,priority:19,hint:`API key`,modelProviderIds:[H],methods:[{id:`opencode-zen`,route:H,kind:`api-key`,label:`OpenCode Zen API key`,hint:`Sign in to OpenCode Zen, then paste the API key`}],models:{recommended:[...Ee],dynamic:!0,routeRules:{[H]:[`${H}/*`]}},modelCapabilities:Z(Ee,vn)},Er={id:yt,label:`Xiaomi`,priority:20,hint:`MiMo API key`,modelProviderIds:[U],methods:[{id:`xiaomi-api-key`,route:U,kind:`api-key`,label:`Xiaomi API key`,hint:`Create an API key in the Xiaomi MiMo API Open Platform`}],models:{recommended:[...yn],routeRules:{[U]:[`${U}/*`]}},modelCapabilities:Z(yn,bn)},Dr={id:bt,label:`Synthetic`,priority:21,hint:`Anthropic-compatible API key`,modelProviderIds:[W],methods:[{id:`synthetic-api-key`,route:W,kind:`api-key`,label:`Synthetic API key`,hint:`Create an API key in Synthetic`}],models:{recommended:[...xn],routeRules:{[W]:[`${W}/*`]}},modelCapabilities:Z(xn,Sn)},Or={id:xt,label:`Together AI`,priority:22,hint:`API key`,modelProviderIds:[G],methods:[{id:`together-api-key`,route:G,kind:`api-key`,label:`Together AI API key`,hint:`Create an API key in Together AI`}],models:{recommended:[...Ie],routeRules:{[G]:[`${G}/*`]}},modelCapabilities:Z(Ie,Cn)},kr={id:St,label:`Hugging Face`,priority:23,hint:`Inference Providers token`,modelProviderIds:[K],methods:[{id:`huggingface-api-key`,route:K,kind:`api-key`,label:`Hugging Face token`,hint:`Create a fine-grained token with Inference Providers access`}],models:{recommended:[...ye],dynamic:!0,routeRules:{[K]:[`${K}/*`]}},modelCapabilities:wn},Ar={id:Ct,label:`Venice AI`,priority:24,hint:`Privacy-focused API key`,modelProviderIds:[q],methods:[{id:`venice-api-key`,route:q,kind:`api-key`,label:`Venice AI API key`,hint:`Create an API key in Venice settings`}],models:{recommended:[...Ve],dynamic:!0,routeRules:{[q]:[`${q}/*`]}},modelCapabilities:Tn},jr={id:wt,label:`LiteLLM`,priority:25,hint:`OpenAI-compatible LLM proxy`,modelProviderIds:[J],methods:[{id:`litellm-api-key`,route:J,kind:`api-key`,label:`LiteLLM API key`,hint:`LiteLLM Proxy virtual key or master key plus /v1 base URL`}],models:{recommended:[...we],dynamic:!0,routeRules:{[J]:[`${J}/*`]}},modelCapabilities:En},Mr={id:le,label:`Cloudflare AI`,priority:26,hint:`Anthropic through Cloudflare AI`,modelProviderIds:[c],methods:[{id:`cloudflare-ai-gateway-api-key`,route:c,kind:`manual`,label:`Cloudflare AI API key`,hint:`Requires Cloudflare Account ID, Gateway ID, and Anthropic provider API key`,buttonLabel:`Configure`}],models:{recommended:[...he],routeRules:{[c]:[`${c}/*`]}},modelCapabilities:Dn},Nr={id:Tt,label:`Custom Provider`,priority:27,hint:`OpenAI or Anthropic-compatible endpoint outside the built-in provider cards`,modelProviderIds:[Y],methods:[{id:`custom-api-key`,route:Y,kind:`manual`,label:`Custom Provider`,hint:`Requires base URL, endpoint compatibility, model ID, and optional API key. Use this for SGLang or other compatible endpoints when the vLLM-compatible shortcut does not fit.`,buttonLabel:`Configure`}],models:{recommended:On,dynamic:!0,routeRules:{[Y]:[`${Y}/*`]}},modelCapabilities:X(On)},Q=[or,sr,cr,lr,ur,dr,fr,pr,mr,hr,gr,_r,vr,yr,br,xr,Sr,Cr,wr,Tr,Er,Dr,Or,kr,Ar,jr,Mr,Nr],Pr=new Map(Q.map(e=>[e.id,e])),Fr=new Map(Q.flatMap(e=>[...e.methods.map(t=>[t.route,e]),...(e.routeAliases??[]).map(t=>[t,e]),...(e.modelProviderIds??[]).map(t=>[t,e])])),Ir=new Set(Q.flatMap(e=>e.models.recommended.map(e=>e.toLowerCase()))),Lr=new Map(Q.flatMap(e=>Object.entries(e.modelCapabilities??{}).map(([e,t])=>[e.toLowerCase(),t])));new Set(Dt);function Rr(){return[...Q]}function zr(e){return Pr.get(e.trim().toLowerCase())}function $(e){return Fr.get(e.trim().toLowerCase())}function Br(e,t){let n=e.trim().toLowerCase(),r=t.trim().toLowerCase();if(!(!n||!r))return Lr.get(`${n}/${r}`)}function Vr(e){let t=e.trim();if(!t)return!1;let n=t.indexOf(`/`);if(n===-1)return!0;let r=t.slice(0,n).trim().toLowerCase();return $(r)?$(r)?.models.dynamic?!0:Ir.has(t.toLowerCase()):!1}function Hr(e){let t=e.provider.trim(),n=e.id.trim();return!t||!n?!1:Vr(`${t}/${n}`)}function Ur(e,t){let n=e.trim();if(!n)return``;if(n.includes(`/`))return n;let r=t?.trim();return r?`${r}/${n}`:n}function Wr(e){let t=e.trim();return t?t.includes(`/`)?{kind:`qualified`,value:t}:{kind:`raw`,value:t}:null}function Gr(e,t){return Kr(e,t).value}function Kr(e,t){if(!e)return{value:``,source:`empty`,reason:`empty`};let n=e?.value.trim();if(!n)return{value:``,source:`empty`,reason:`empty`};if(e.kind===`qualified`)return{value:n,source:`qualified`};let r=``;for(let e of t){if(e.id.trim().toLowerCase()!==n.toLowerCase())continue;let t=Ur(e.id,e.provider);if(!r){r=t;continue}if(r.toLowerCase()!==t.toLowerCase())return{value:n,source:`raw`,reason:`ambiguous`}}return r?{value:r,source:`catalog`}:{value:n,source:`raw`,reason:`missing`}}function qr(e,t){return typeof e==`string`?Ur(e,t):``}function Jr(e,t,n){if(typeof e!=`string`)return{value:``,source:`empty`,reason:`empty`};let r=e.trim();if(!r)return{value:``,source:`empty`,reason:`empty`};let i=t?.trim();if(i){let e=n.find(e=>e.provider?.trim().toLowerCase()===i.toLowerCase()&&e.id.trim().toLowerCase()===r.toLowerCase());if(e)return{value:Qr(e).value,source:`server`}}let a=Kr(Wr(r),n);return a.source===`qualified`||a.source===`catalog`?a:{value:qr(r,t),source:`server`,reason:a.reason}}function Yr(e,t,n){return Jr(e,t,n).value}function Xr(e){let t=e.trim();if(!t)return``;let n=t.indexOf(`/`);if(n<=0)return t;let r=t.slice(0,n);return`${t.slice(n+1)} · ${Zr(r)}`}function Zr(e){return $(e)?.label??e}function Qr(e){let t=e.provider?.trim();return{value:(()=>{if(!t)return e.id;let n=`${t.toLowerCase()}/`;return e.id.toLowerCase().startsWith(n)?e.id:`${t}/${e.id}`})(),label:t?`${e.id} · ${Zr(t)}`:e.id}}export{dr as A,Br as B,yr as C,Or as D,Dr as E,zr as F,ee as H,$ as I,Hr as L,hr as M,Er as N,Ar as O,xr as P,Vr as R,Tr as S,br as T,s as U,ce as V,fr as _,Kr as a,lr as b,vr as c,Cr as d,Nr as f,ur as g,jr as h,Gr as i,_r as j,wr as k,cr as l,kr as m,Wr as n,Yr as o,mr as p,Xr as r,sr as s,Qr as t,Mr as u,gr as v,Sr as w,or as x,pr as y,Rr as z};
2
- //# sourceMappingURL=chat-model-ref-C6CFR-GR.js.map
1
+ var e=[`off`,`minimal`,`low`,`medium`,`high`],t=[...e,`xhigh`],n=[`openai/gpt-5.6`,`openai/gpt-5.6-terra`,`openai/gpt-5.6-luna`,`openai/gpt-5.5`,`openai/gpt-5.4`,`openai/gpt-5.4-mini`,`openai/gpt-5.4-nano`,`openai-codex/gpt-5.5`,`openai-codex/gpt-5.4`,`openai-codex/gpt-5.4-mini`,`openai-codex/gpt-5.3-codex-spark`,`github-copilot/gpt-5.5`,`github-copilot/gpt-5.4`,`github-copilot/gpt-5.4-mini`,`github-copilot/gpt-5.3-codex-spark`],r=new Set(n.map(e=>e.toLowerCase())),i=new Set(n.map(e=>e.split(`/`)[1]?.toLowerCase()).filter(e=>!!e));function a(e){if(!e)return``;let t=e.trim().toLowerCase();return t===`z.ai`||t===`z-ai`?`zai`:t}function o(e){return a(e)===`zai`}function ee(e){if(!e)return;let t=e.trim().toLowerCase(),n=t.replace(/[\s_-]+/g,``);if(n===`xhigh`||n===`extrahigh`)return`xhigh`;if(t===`off`)return`off`;if([`on`,`enable`,`enabled`].includes(t))return`low`;if([`min`,`minimal`].includes(t))return`minimal`;if([`low`,`thinkhard`,`think-hard`,`think_hard`].includes(t))return`low`;if([`mid`,`med`,`medium`,`thinkharder`,`think-harder`,`harder`].includes(t))return`medium`;if([`high`,`ultra`,`ultrathink`,`think-hard`,`thinkhardest`,`highest`,`max`].includes(t))return`high`;if(t===`think`)return`minimal`}function te(e,t){let n=t?.trim().toLowerCase();if(!n)return!1;let a=e?.trim().toLowerCase();return a?r.has(`${a}/${n}`):i.has(n)}function ne(e){let t=new Set,n=[];for(let r of e??[]){let e=ee(r);!e||t.has(e)||(t.add(e),n.push(e))}return n}function re(n,r){return te(n,r)?[...t]:[...e]}function ie(e){let t=e?.trim().toLowerCase()??``;return t.includes(`fable-5`)||t.includes(`opus-4-8`)||t.includes(`opus-4.8`)||t.includes(`opus-4-6`)||t.includes(`opus-4.6`)||t.includes(`opus-4-7`)||t.includes(`opus-4.7`)||t.includes(`sonnet-5`)||t.includes(`sonnet-4-6`)||t.includes(`sonnet-4.6`)||t.includes(`sonnet-4-7`)||t.includes(`sonnet-4.7`)}function ae(e,t){let n=a(e);return n===`openai`||n===`openai-codex`||n===`github-copilot`||n===`copilot-proxy`?{thinkingMode:`openai-reasoning-effort`,reasoningBudgetSupported:!1}:n===`anthropic`?{thinkingMode:ie(t)?`anthropic-adaptive`:`anthropic-thinking-budget`,reasoningBudgetSupported:!ie(t)}:n===`google`||n===`google-gemini-cli`?{thinkingMode:`google-thinking-budget`,reasoningBudgetSupported:!0}:n===`zai`?{thinkingMode:`zai-binary`,reasoningBudgetSupported:!1}:n===`qwen`||n===`qwen-coding-plan`?{thinkingMode:`qwen-thinking`,reasoningBudgetSupported:!0}:n===`moonshot`||n===`kimi-coding`?{thinkingMode:`moonshot-thinking`,reasoningBudgetSupported:!1}:{thinkingMode:`generic-reasoning`,reasoningBudgetSupported:!1}}function oe(e,t){let n=a(e),r=t?.trim().toLowerCase()??``;return!n||!r?!1:n===`openai`||n===`openai-codex`||n===`github-copilot`||n===`copilot-proxy`?/^gpt-5(?:[.-]|$)/.test(r):n===`anthropic`?r.startsWith(`claude-`)||r.includes(`claude-`):n===`google`||n===`google-gemini-cli`?r.startsWith(`gemini-`):n===`zai`?r.startsWith(`glm-`):n===`qwen`||n===`qwen-coding-plan`?r.includes(`qwen`):n===`moonshot`||n===`kimi-coding`?r.includes(`kimi`):n===`minimax`||n===`minimax-cn`?r.includes(`minimax-m2`):[`openrouter`,`vercel-ai-gateway`,`opencode`,`huggingface`,`venice`,`together`,`synthetic`,`litellm`].includes(n)?/(gpt-5|claude-|gemini-|grok-|qwen|kimi|glm-|deepseek-r1|reasoning|thinking)/.test(r):!1}function s(e){let t=ne(e.capabilities?.thinkingLevels),n=t.length>0||typeof e.capabilities?.thinkingMode==`string`||typeof e.capabilities?.defaultThinkingLevel==`string`;if(e.capabilities?.fixedReasoning===!0&&!n||!(e.reasoning===!0||e.reasoning!==!1&&oe(e.provider,e.model))&&!n)return null;let r=ae(e.provider,e.model),i=r.thinkingMode===`zai-binary`?[`off`,`low`]:re(e.provider,e.model),a=t.length>0?t:i,o=ee(e.capabilities?.defaultThinkingLevel);return{thinkingLevels:a,defaultThinkingLevel:o&&a.includes(o)?o:a.includes(`low`)?`low`:a[0]??`off`,thinkingMode:e.capabilities?.thinkingMode??r.thinkingMode,reasoningBudgetSupported:e.capabilities?.reasoningBudgetSupported??r.reasoningBudgetSupported}}function se(e,t){return o(e)?[`off`,`low`]:re(e,t)}function ce(e,t){return se(e,t)}var le=`cloudflare-ai-gateway`,c=`cloudflare-ai-gateway`,ue=`claude-sonnet-5`;`${c}${ue}`;var de={input:0,output:0,cacheRead:0,cacheWrite:0},fe={tools:!0,json:!0},pe={thinkingLevels:[...e],defaultThinkingLevel:`low`,reasoningBudgetSupported:!0},me=[{id:ue,name:`Claude Sonnet 5`,reasoning:!0,input:[`text`,`image`],cost:de,contextWindow:1e6,maxTokens:128e3,capabilities:{...fe,...pe,thinkingMode:`anthropic-adaptive`}},{id:`claude-opus-4-8`,name:`Claude Opus 4.8`,reasoning:!0,input:[`text`,`image`],cost:de,contextWindow:1e6,maxTokens:128e3,capabilities:{...fe,...pe,thinkingMode:`anthropic-adaptive`,reasoningBudgetSupported:!1}},{id:`claude-haiku-4-5`,name:`Claude Haiku 4.5`,reasoning:!0,input:[`text`,`image`],cost:de,contextWindow:2e5,maxTokens:64e3,capabilities:{...fe,...pe,thinkingMode:`anthropic-thinking-budget`}}],he=me.map(e=>e.id).map(e=>`${c}/${e}`);function ge(e=c){return Object.fromEntries(me.map(t=>[`${e}/${t.id}`.toLowerCase(),t.capabilities?{...t.capabilities}:{}]))}var _e=`openai/gpt-oss-120b`;`${_e}`;var l={tools:!0,json:!0},ve=[{id:_e,name:`GPT-OSS 120B`,reasoning:!0,input:[`text`],contextWindow:131072,maxTokens:8192,cost:{input:.15,output:.75,cacheRead:0,cacheWrite:0},capabilities:l},{id:`deepseek-ai/DeepSeek-V4-Pro`,name:`DeepSeek V4 Pro`,reasoning:!0,input:[`text`],contextWindow:1048576,maxTokens:8192,cost:{input:1.69,output:3.38,cacheRead:0,cacheWrite:0},capabilities:l},{id:`deepseek-ai/DeepSeek-V4-Flash`,name:`DeepSeek V4 Flash`,reasoning:!1,input:[`text`],contextWindow:1048576,maxTokens:8192,cost:{input:.14,output:.28,cacheRead:0,cacheWrite:0},capabilities:l},{id:`moonshotai/Kimi-K2.6`,name:`Kimi K2.6`,reasoning:!0,input:[`text`,`image`],contextWindow:262144,maxTokens:8192,cost:{input:.95,output:4,cacheRead:0,cacheWrite:0},capabilities:l},{id:`MiniMaxAI/MiniMax-M2.7`,name:`MiniMax M2.7`,reasoning:!0,input:[`text`],contextWindow:204800,maxTokens:8192,cost:{input:.3,output:1.2,cacheRead:0,cacheWrite:0},capabilities:l},{id:`zai-org/GLM-5.1`,name:`GLM-5.1`,reasoning:!0,input:[`text`],contextWindow:202752,maxTokens:8192,cost:{input:1.4,output:4.4,cacheRead:0,cacheWrite:0},capabilities:l},{id:`Qwen/Qwen3.6-35B-A3B`,name:`Qwen3.6 35B A3B`,reasoning:!0,input:[`text`,`image`],contextWindow:262144,maxTokens:8192,cost:{input:.15,output:.95,cacheRead:0,cacheWrite:0},capabilities:l},{id:`Qwen/Qwen3.5-397B-A17B`,name:`Qwen3.5 397B A17B`,reasoning:!0,input:[`text`,`image`],contextWindow:262144,maxTokens:8192,cost:{input:.6,output:3.6,cacheRead:0,cacheWrite:0},capabilities:l},{id:`Qwen/Qwen3-Coder-Next`,name:`Qwen3 Coder Next`,reasoning:!1,input:[`text`],contextWindow:262144,maxTokens:8192,cost:{input:.2,output:1.5,cacheRead:0,cacheWrite:0},capabilities:{tools:!0,json:!1}},{id:`Qwen/Qwen3-Coder-480B-A35B-Instruct`,name:`Qwen3 Coder 480B A35B Instruct`,reasoning:!1,input:[`text`],contextWindow:262144,maxTokens:8192,cost:{input:.3,output:1.3,cacheRead:0,cacheWrite:0},capabilities:l},{id:`google/gemma-4-31B-it`,name:`Gemma 4 31B Instruct`,reasoning:!1,input:[`text`,`image`],contextWindow:262144,maxTokens:8192,cost:{input:.14,output:.4,cacheRead:0,cacheWrite:0},capabilities:l},{id:`google/gemma-4-26B-A4B-it`,name:`Gemma 4 26B A4B Instruct`,reasoning:!1,input:[`text`,`image`],contextWindow:262144,maxTokens:8192,cost:{input:.13,output:.4,cacheRead:0,cacheWrite:0},capabilities:l},{id:`openai/gpt-oss-20b`,name:`GPT-OSS 20B`,reasoning:!0,input:[`text`],contextWindow:131072,maxTokens:8192,cost:{input:.1,output:.5,cacheRead:0,cacheWrite:0},capabilities:l},{id:`deepseek-ai/DeepSeek-R1`,name:`DeepSeek R1`,reasoning:!0,input:[`text`],contextWindow:163840,maxTokens:8192,cost:{input:.7,output:2.5,cacheRead:0,cacheWrite:0},capabilities:l},{id:`deepseek-ai/DeepSeek-V3.2`,name:`DeepSeek V3.2`,reasoning:!1,input:[`text`],contextWindow:163840,maxTokens:8192,cost:{input:.269,output:.4,cacheRead:0,cacheWrite:0},capabilities:l},{id:`meta-llama/Llama-3.3-70B-Instruct`,name:`Llama 3.3 70B Instruct`,reasoning:!1,input:[`text`],contextWindow:131072,maxTokens:8192,cost:{input:.59,output:.79,cacheRead:0,cacheWrite:0},capabilities:l},{id:`Qwen/Qwen3-VL-235B-A22B-Instruct`,name:`Qwen3 VL 235B A22B Instruct`,reasoning:!1,input:[`text`,`image`],contextWindow:131072,maxTokens:8192,cost:{input:.3,output:1.5,cacheRead:0,cacheWrite:0},capabilities:l},{id:`Qwen/Qwen3-235B-A22B-Instruct-2507`,name:`Qwen3 235B A22B Instruct 2507`,reasoning:!0,input:[`text`],contextWindow:262144,maxTokens:8192,cost:{input:.09,output:.58,cacheRead:0,cacheWrite:0},capabilities:l},{id:`Qwen/Qwen3-Coder-Next-FP8`,name:`Qwen3 Coder Next FP8`,reasoning:!1,input:[`text`],contextWindow:262144,maxTokens:8192,cost:{input:.5,output:1.2,cacheRead:0,cacheWrite:0},capabilities:l},{id:`google/gemma-3n-E4B-it`,name:`Gemma 3N E4B Instruct`,reasoning:!1,input:[`text`,`image`],contextWindow:32768,maxTokens:8192,cost:{input:.06,output:.12,cacheRead:0,cacheWrite:0},capabilities:{tools:!1,json:!0}},{id:`EssentialAI/rnj-1-instruct`,name:`Rnj-1 Instruct`,reasoning:!1,input:[`text`],contextWindow:32768,maxTokens:8192,cost:{input:.15,output:.15,cacheRead:0,cacheWrite:0},capabilities:l},{id:`inclusionAI/Ling-2.6-1T`,name:`Ling 2.6 1T`,reasoning:!1,input:[`text`],contextWindow:262144,maxTokens:8192,cost:{input:.3,output:2.5,cacheRead:0,cacheWrite:0},capabilities:l}],ye=ve.map(e=>e.id).map(e=>`huggingface/${e}`);function be(e){return{...e.capabilities?{...e.capabilities}:{},...e.reasoning?{fixedReasoning:!0}:{}}}function xe(e=`huggingface`){return Object.fromEntries(ve.map(t=>[`${e}/${t.id}`.toLowerCase(),be(t)]))}var Se=`default`;`${Se}`;var Ce=[{id:Se,name:`LiteLLM proxy default`,reasoning:!1,input:[`text`],contextWindow:128e3,maxTokens:8192,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},capabilities:{}}],we=Ce.map(e=>e.id).map(e=>`litellm/${e}`);function Te(e=`litellm`){return Object.fromEntries(Ce.map(t=>[`${e}/${t.id}`.toLowerCase(),t.capabilities?{...t.capabilities}:{}]))}var Ee=[`gpt-5.5`,`gpt-5.4`,`gpt-5.4-mini`,`gpt-5.4-nano`,`gpt-5.3-codex-spark`,`claude-fable-5`,`claude-opus-4-8`,`claude-sonnet-5`,`claude-haiku-4-5`,`gemini-3.5-flash`,`gemini-3.1-pro`,`gemini-3-flash`,`qwen3.7-plus`,`minimax-m2.7`,`glm-5.2`,`kimi-k2.6`].map(e=>`opencode/${e}`);function De(e){let t=e.trim().toLowerCase();return t.startsWith(`claude-`)?{provider:`anthropic`,model:t}:t.startsWith(`gemini-`)?{provider:`google`,model:t}:t.startsWith(`glm-`)?{provider:`zai`,model:t}:t.startsWith(`kimi-`)?{provider:`moonshot`,model:t}:t.startsWith(`qwen`)?{provider:`qwen`,model:t}:t.startsWith(`gpt-`)?{provider:`openai`,model:t}:{provider:`opencode`,model:t}}function Oe(e){let t=De(e),n=s({provider:t.provider,model:t.model,reasoning:!0});return{tools:!0,json:!0,...n?{thinkingLevels:n.thinkingLevels,defaultThinkingLevel:n.defaultThinkingLevel,thinkingMode:n.thinkingMode,reasoningBudgetSupported:n.reasoningBudgetSupported}:{}}}function ke(e){return Object.fromEntries(e.map(e=>[e,Oe(e.replace(/^opencode\//,``))]))}var Ae=`hf:MiniMaxAI/MiniMax-M2.5`;`${Ae}`;var u={tools:!0,json:!0},je=[{id:`hf:zai-org/GLM-5.1`,name:`GLM-5.1`,reasoning:!0,input:[`text`],contextWindow:196608,maxTokens:65536,capabilities:u},{id:`hf:moonshotai/Kimi-K2.6`,name:`Kimi K2.6`,reasoning:!0,input:[`text`,`image`],contextWindow:262144,maxTokens:65536,capabilities:u},{id:Ae,name:`MiniMax M2.5`,reasoning:!1,input:[`text`],contextWindow:191488,maxTokens:65536,capabilities:u},{id:`hf:zai-org/GLM-4.7-Flash`,name:`GLM-4.7 Flash`,reasoning:!1,input:[`text`],contextWindow:196608,maxTokens:65536,capabilities:u},{id:`hf:zai-org/GLM-5`,name:`GLM-5`,reasoning:!0,input:[`text`],contextWindow:196608,maxTokens:65536,capabilities:u},{id:`hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4`,name:`NVIDIA Nemotron 3 Super 120B`,reasoning:!1,input:[`text`],contextWindow:262144,maxTokens:65536,capabilities:u},{id:`hf:zai-org/GLM-4.7`,name:`GLM-4.7`,reasoning:!1,input:[`text`],contextWindow:202752,maxTokens:65536,capabilities:u},{id:`hf:deepseek-ai/DeepSeek-V3.2`,name:`DeepSeek V3.2`,reasoning:!1,input:[`text`],contextWindow:159e3,maxTokens:8192,capabilities:u},{id:`hf:openai/gpt-oss-120b`,name:`GPT OSS 120B`,reasoning:!1,input:[`text`],contextWindow:128e3,maxTokens:8192,capabilities:u},{id:`hf:deepseek-ai/DeepSeek-R1-0528`,name:`DeepSeek R1 0528`,reasoning:!0,input:[`text`],contextWindow:128e3,maxTokens:8192,capabilities:u},{id:`hf:deepseek-ai/DeepSeek-V3`,name:`DeepSeek V3`,reasoning:!1,input:[`text`],contextWindow:128e3,maxTokens:8192,capabilities:u},{id:`hf:meta-llama/Llama-3.3-70B-Instruct`,name:`Llama 3.3 70B Instruct`,reasoning:!1,input:[`text`],contextWindow:128e3,maxTokens:8192,capabilities:u},{id:`hf:moonshotai/Kimi-K2.5`,name:`Kimi K2.5`,reasoning:!0,input:[`text`,`image`],contextWindow:262144,maxTokens:8192,capabilities:u},{id:`hf:nvidia/Kimi-K2.5-NVFP4`,name:`Kimi K2.5 NVFP4`,reasoning:!1,input:[`text`,`image`],contextWindow:262144,maxTokens:8192,capabilities:u},{id:`hf:Qwen/Qwen3-235B-A22B-Thinking-2507`,name:`Qwen3 235B A22B Thinking 2507`,reasoning:!0,input:[`text`],contextWindow:262144,maxTokens:8192,capabilities:u},{id:`hf:Qwen/Qwen3-Coder-480B-A35B-Instruct`,name:`Qwen3 Coder 480B A35B Instruct`,reasoning:!1,input:[`text`],contextWindow:262144,maxTokens:8192,capabilities:u},{id:`hf:Qwen/Qwen3.5-397B-A17B`,name:`Qwen3.5 397B A17B`,reasoning:!1,input:[`text`,`image`],contextWindow:262144,maxTokens:8192,capabilities:u}],Me=je.map(e=>e.id);function Ne(e=`synthetic`){return Object.fromEntries(je.map(t=>[`${e}/${t.id}`,t.capabilities?{...t.capabilities}:{}]))}var Pe=`moonshotai/Kimi-K2.6`;`${Pe}`;var d={tools:!0,json:!0},f={tools:!1,json:!1},Fe=[{id:Pe,name:`Kimi K2.6`,reasoning:!0,input:[`text`,`image`],contextWindow:262144,maxTokens:16384,cost:{input:1.2,output:4.5,cacheRead:.2,cacheWrite:1.2},capabilities:{...d,video:!0}},{id:`moonshotai/Kimi-K2.5`,name:`Kimi K2.5`,reasoning:!0,input:[`text`,`image`],contextWindow:262144,maxTokens:32768,cost:{input:.5,output:2.8,cacheRead:.5,cacheWrite:2.8},capabilities:d},{id:`MiniMaxAI/MiniMax-M2.7`,name:`MiniMax M2.7`,reasoning:!0,input:[`text`],contextWindow:202752,maxTokens:32768,cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:.3},capabilities:d},{id:`zai-org/GLM-5.1`,name:`GLM-5.1`,reasoning:!0,input:[`text`],contextWindow:202752,maxTokens:128e3,cost:{input:1.4,output:4.4,cacheRead:1.4,cacheWrite:1.4},capabilities:d},{id:`zai-org/GLM-5`,name:`GLM-5`,reasoning:!0,input:[`text`],contextWindow:202752,maxTokens:128e3,cost:{input:1,output:3.2,cacheRead:1,cacheWrite:1},capabilities:d},{id:`Qwen/Qwen3.6-Plus`,name:`Qwen3.6 Plus`,reasoning:!0,input:[`text`],contextWindow:1e6,maxTokens:32768,cost:{input:.5,output:3,cacheRead:.5,cacheWrite:.5},capabilities:f},{id:`Qwen/Qwen3.5-397B-A17B`,name:`Qwen3.5 397B A17B`,reasoning:!0,input:[`text`,`image`],contextWindow:262144,maxTokens:32768,cost:{input:.6,output:3.6,cacheRead:.6,cacheWrite:.6},capabilities:d},{id:`Qwen/Qwen3.5-9B`,name:`Qwen3.5 9B`,reasoning:!1,input:[`text`,`image`],contextWindow:262144,maxTokens:32768,cost:{input:.1,output:.15,cacheRead:.1,cacheWrite:.1},capabilities:d},{id:`openai/gpt-oss-120b`,name:`GPT-OSS 120B`,reasoning:!0,input:[`text`],contextWindow:128e3,maxTokens:32768,cost:{input:.15,output:.6,cacheRead:.15,cacheWrite:.15},capabilities:d},{id:`openai/gpt-oss-20b`,name:`GPT-OSS 20B`,reasoning:!0,input:[`text`],contextWindow:128e3,maxTokens:32768,cost:{input:.05,output:.2,cacheRead:.05,cacheWrite:.05},capabilities:d},{id:`deepseek-ai/DeepSeek-V4-Pro`,name:`DeepSeek V4 Pro`,reasoning:!0,input:[`text`],contextWindow:512e3,maxTokens:32768,cost:{input:2.1,output:4.4,cacheRead:.2,cacheWrite:2.1},capabilities:d},{id:`deepseek-ai/DeepSeek-R1`,name:`DeepSeek R1 0528`,reasoning:!0,input:[`text`],contextWindow:163840,maxTokens:32768,cost:{input:3,output:7,cacheRead:3,cacheWrite:3},capabilities:f},{id:`deepseek-ai/DeepSeek-V3.1`,name:`DeepSeek V3.1`,reasoning:!1,input:[`text`],contextWindow:131072,maxTokens:32768,cost:{input:.6,output:1.7,cacheRead:.6,cacheWrite:.6},capabilities:f},{id:`Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8`,name:`Qwen3 Coder 480B A35B Instruct FP8`,reasoning:!1,input:[`text`],contextWindow:256e3,maxTokens:32768,cost:{input:2,output:2,cacheRead:2,cacheWrite:2},capabilities:d},{id:`Qwen/Qwen3-235B-A22B-Instruct-2507-tput`,name:`Qwen3 235B A22B Instruct 2507`,reasoning:!0,input:[`text`],contextWindow:262144,maxTokens:32768,cost:{input:.2,output:.6,cacheRead:.2,cacheWrite:.2},capabilities:d},{id:`Qwen/Qwen3-Coder-Next-FP8`,name:`Qwen3 Coder Next FP8`,reasoning:!1,input:[`text`],contextWindow:262144,maxTokens:32768,cost:{input:.5,output:1.2,cacheRead:.5,cacheWrite:.5},capabilities:f},{id:`meta-llama/Llama-3.3-70B-Instruct-Turbo`,name:`Llama 3.3 70B Instruct Turbo`,reasoning:!1,input:[`text`],contextWindow:131072,maxTokens:8192,cost:{input:.88,output:.88,cacheRead:.88,cacheWrite:.88},capabilities:d},{id:`essentialai/rnj-1-instruct`,name:`Rnj-1 Instruct`,reasoning:!1,input:[`text`],contextWindow:32768,maxTokens:8192,cost:{input:.15,output:.15,cacheRead:.15,cacheWrite:.15},capabilities:d},{id:`google/gemma-4-31B-it`,name:`Gemma 4 31B Instruct`,reasoning:!1,input:[`text`,`image`],contextWindow:262144,maxTokens:32768,cost:{input:.2,output:.5,cacheRead:.2,cacheWrite:.2},capabilities:d},{id:`google/gemma-3n-E4B-it`,name:`Gemma 3N E4B Instruct`,reasoning:!1,input:[`text`,`image`],contextWindow:32768,maxTokens:8192,cost:{input:.06,output:.12,cacheRead:.06,cacheWrite:.06},capabilities:{tools:!1,json:!0}}],Ie=Fe.map(e=>e.id).map(e=>`together/${e}`);function Le(e=`together`){return Object.fromEntries(Fe.map(t=>[`${e}/${t.id}`,t.capabilities?{...t.capabilities}:{}]))}var Re=`zai-org-glm-5-1`;`${Re}`;var p={thinkingMode:`generic-reasoning`,reasoningBudgetSupported:!1},m={tools:!0,json:!0},ze={tools:!0,json:!1},Be=[{id:Re,name:`GLM 5.1`,reasoning:!0,input:[`text`],cost:{input:1.75,output:5.5,cacheRead:.325,cacheWrite:0},contextWindow:2e5,maxTokens:24e3,capabilities:{...m,thinkingLevels:[`off`,`low`,`medium`,`high`],defaultThinkingLevel:`low`,...p}},{id:`venice-uncensored-1-2`,name:`Venice Uncensored 1.2`,reasoning:!1,input:[`text`,`image`],cost:{input:.2,output:.9,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192,capabilities:m},{id:`qwen-3-6-plus`,name:`Qwen 3.6 Plus Uncensored`,reasoning:!0,input:[`text`,`image`],cost:{input:.625,output:3.75,cacheRead:.0625,cacheWrite:.78},contextWindow:1e6,maxTokens:65536,capabilities:{...m,video:!0,fixedReasoning:!0}},{id:`qwen3-5-397b-a17b`,name:`Qwen 3.5 397B`,reasoning:!0,input:[`text`,`image`],cost:{input:.75,output:4.5,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:32768,capabilities:{...m,video:!0,thinkingLevels:[`off`,`low`,`medium`,`high`],defaultThinkingLevel:`low`,...p}},{id:`qwen3-235b-a22b-thinking-2507`,name:`Qwen 3 235B A22B Thinking`,reasoning:!0,input:[`text`],cost:{input:.45,output:3.5,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384,capabilities:{...m,thinkingLevels:[`low`,`medium`,`high`],defaultThinkingLevel:`low`,...p}},{id:`qwen3-coder-480b-a35b-instruct-turbo`,name:`Qwen 3 Coder 480B Turbo`,reasoning:!1,input:[`text`],cost:{input:.35,output:1.5,cacheRead:.04,cacheWrite:0},contextWindow:256e3,maxTokens:65536,capabilities:m},{id:`qwen3-vl-235b-a22b`,name:`Qwen3 VL 235B`,reasoning:!1,input:[`text`,`image`],cost:{input:.25,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:16384,capabilities:m},{id:`deepseek-v4-pro`,name:`DeepSeek V4 Pro`,reasoning:!0,input:[`text`],cost:{input:1.73,output:3.796,cacheRead:.33,cacheWrite:0},contextWindow:1e6,maxTokens:32768,capabilities:{...m,fixedReasoning:!0}},{id:`deepseek-v4-flash`,name:`DeepSeek V4 Flash`,reasoning:!0,input:[`text`],cost:{input:.17,output:.35,cacheRead:.028,cacheWrite:0},contextWindow:1e6,maxTokens:32768,capabilities:{...m,fixedReasoning:!0}},{id:`kimi-k2-6`,name:`Kimi K2.6`,reasoning:!0,input:[`text`,`image`],cost:{input:.85,output:4.655,cacheRead:.22,cacheWrite:0},contextWindow:256e3,maxTokens:65536,capabilities:{...m,thinkingLevels:[`off`,`low`,`medium`,`high`],defaultThinkingLevel:`high`,...p}},{id:`claude-opus-4-7`,name:`Claude Opus 4.7`,reasoning:!0,input:[`text`,`image`],cost:{input:6,output:30,cacheRead:.6,cacheWrite:7.5},contextWindow:1e6,maxTokens:128e3,capabilities:{...m,fixedReasoning:!0}},{id:`claude-sonnet-4-6`,name:`Claude Sonnet 4.6`,reasoning:!0,input:[`text`,`image`],cost:{input:3.6,output:18,cacheRead:.36,cacheWrite:4.5},contextWindow:1e6,maxTokens:64e3,capabilities:{...m,fixedReasoning:!0}},{id:`openai-gpt-55`,name:`GPT-5.5`,reasoning:!0,input:[`text`,`image`],cost:{input:6.25,output:37.5,cacheRead:.625,cacheWrite:0},contextWindow:1e6,maxTokens:131072,capabilities:{...m,thinkingLevels:[`off`,`minimal`,`low`,`medium`,`high`],defaultThinkingLevel:`high`,...p}},{id:`openai-gpt-55-pro`,name:`GPT-5.5 Pro`,reasoning:!0,input:[`text`,`image`],cost:{input:37.5,output:225,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:128e3,capabilities:{...m,thinkingLevels:[`off`,`minimal`,`low`,`medium`,`high`],defaultThinkingLevel:`medium`,...p}},{id:`openai-gpt-54`,name:`GPT-5.4`,reasoning:!0,input:[`text`,`image`],cost:{input:3.13,output:18.8,cacheRead:.313,cacheWrite:0},contextWindow:1e6,maxTokens:131072,capabilities:{...m,thinkingLevels:[`off`,`minimal`,`low`,`medium`,`high`],defaultThinkingLevel:`high`,...p}},{id:`openai-gpt-54-mini`,name:`GPT-5.4 Mini`,reasoning:!0,input:[`text`,`image`],cost:{input:.9375,output:5.625,cacheRead:.09375,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,capabilities:{...m,thinkingLevels:[`off`,`minimal`,`low`,`medium`,`high`],defaultThinkingLevel:`high`,...p}},{id:`gemini-3-1-pro-preview`,name:`Gemini 3.1 Pro Preview`,reasoning:!0,input:[`text`,`image`],cost:{input:2.5,output:15,cacheRead:.5,cacheWrite:.5},contextWindow:1e6,maxTokens:32768,capabilities:{...m,audio:!0,video:!0,thinkingLevels:[`low`,`medium`,`high`],defaultThinkingLevel:`low`,...p}},{id:`grok-4-20`,name:`Grok 4.20`,reasoning:!0,input:[`text`,`image`],cost:{input:1.42,output:2.83,cacheRead:.23,cacheWrite:0},contextWindow:2e6,maxTokens:128e3,capabilities:{...m,fixedReasoning:!0}},{id:`minimax-m27`,name:`MiniMax M2.7`,reasoning:!0,input:[`text`],cost:{input:.375,output:1.5,cacheRead:.075,cacheWrite:0},contextWindow:198e3,maxTokens:32768,capabilities:{...ze,thinkingLevels:[`low`,`medium`,`high`],defaultThinkingLevel:`low`,...p}},{id:`openai-gpt-oss-120b`,name:`OpenAI GPT OSS 120B`,reasoning:!0,input:[`text`],cost:{input:.07,output:.3,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384,capabilities:{...ze,thinkingLevels:[`off`,`low`,`medium`,`high`],defaultThinkingLevel:`low`,...p}},{id:`google-gemma-4-31b-it`,name:`Google Gemma 4 31B Instruct`,reasoning:!0,input:[`text`,`image`],cost:{input:.175,output:.5,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:8192,capabilities:{...m,video:!0,thinkingLevels:[`off`,`low`,`medium`,`high`],defaultThinkingLevel:`low`,...p}},{id:`mistral-small-2603`,name:`Mistral Small 4`,reasoning:!0,input:[`text`,`image`],cost:{input:.1875,output:.75,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:65536,capabilities:{...m,thinkingLevels:[`off`,`high`],defaultThinkingLevel:`high`,...p}}],Ve=Be.map(e=>e.id).map(e=>`venice/${e}`);function He(e=`venice`){return Object.fromEntries(Be.map(t=>[`${e}/${t.id}`.toLowerCase(),t.capabilities?{...t.capabilities}:{}]))}var Ue=[{id:`openai/gpt-5.5`,contextWindow:1e6,maxTokens:128e3,tags:[`reasoning`,`tool-use`,`web-search`,`implicit-caching`,`file-input`,`vision`]},{id:`openai/gpt-5.4`,contextWindow:1e6,maxTokens:128e3,tags:[`reasoning`,`tool-use`,`vision`,`file-input`,`implicit-caching`,`web-search`]},{id:`openai/gpt-5.4-mini`,contextWindow:4e5,maxTokens:128e3,tags:[`reasoning`,`tool-use`,`vision`,`file-input`,`implicit-caching`,`web-search`]},{id:`openai/gpt-5.4-nano`,contextWindow:4e5,maxTokens:128e3,tags:[`reasoning`,`tool-use`,`implicit-caching`,`web-search`,`vision`,`file-input`]},{id:`anthropic/claude-fable-5`,contextWindow:1e6,maxTokens:128e3,tags:[`tool-use`,`reasoning`,`vision`,`file-input`,`explicit-caching`,`web-search`]},{id:`anthropic/claude-opus-4.8`,contextWindow:1e6,maxTokens:128e3,tags:[`tool-use`,`reasoning`,`vision`,`file-input`,`explicit-caching`,`web-search`]},{id:`anthropic/claude-sonnet-5`,contextWindow:1e6,maxTokens:128e3,tags:[`file-input`,`reasoning`,`tool-use`,`vision`,`explicit-caching`,`web-search`]},{id:`anthropic/claude-haiku-4.5`,contextWindow:2e5,maxTokens:64e3,tags:[`file-input`,`reasoning`,`tool-use`,`vision`,`explicit-caching`]},{id:`google/gemini-3.5-flash`,contextWindow:1e6,maxTokens:65e3,tags:[`reasoning`,`tool-use`,`file-input`,`vision`,`web-search`,`implicit-caching`]},{id:`google/gemini-3.1-pro-preview`,contextWindow:1e6,maxTokens:64e3,tags:[`file-input`,`tool-use`,`reasoning`,`vision`,`web-search`,`implicit-caching`]},{id:`google/gemini-3-flash-preview`,contextWindow:1e6,maxTokens:65e3,tags:[`reasoning`,`tool-use`,`file-input`,`vision`,`web-search`,`implicit-caching`]},{id:`google/gemini-3.1-flash-lite`,contextWindow:1e6,maxTokens:65e3,tags:[`reasoning`,`tool-use`,`implicit-caching`,`file-input`,`vision`,`web-search`]},{id:`xai/grok-4.3`,contextWindow:1e6,maxTokens:1e6,tags:[`reasoning`,`tool-use`,`implicit-caching`,`file-input`,`vision`,`web-search`]},{id:`xai/grok-build-0.1`,contextWindow:256e3,maxTokens:256e3,tags:[`tool-use`,`implicit-caching`]},{id:`mistral/mistral-medium-3.5`,contextWindow:256e3,maxTokens:256e3,tags:[`reasoning`,`tool-use`,`vision`]},{id:`mistral/mistral-small-2603`,contextWindow:256e3,maxTokens:256e3,tags:[`reasoning`,`tool-use`,`vision`]},{id:`mistral/mistral-large-2512`,contextWindow:256e3,maxTokens:256e3,tags:[`vision`]},{id:`mistral/devstral-2512`,contextWindow:256e3,maxTokens:256e3,tags:[`tool-use`]},{id:`minimax/minimax-m2.7`,contextWindow:204800,maxTokens:131e3,tags:[`reasoning`,`tool-use`,`implicit-caching`,`file-input`,`vision`]},{id:`minimax/minimax-m2.7-highspeed`,contextWindow:204800,maxTokens:131100,tags:[`reasoning`,`tool-use`,`implicit-caching`,`vision`]},{id:`moonshotai/kimi-k2.6`,contextWindow:262e3,maxTokens:262e3,tags:[`reasoning`,`tool-use`,`vision`,`file-input`,`implicit-caching`]}],We=Ue.map(e=>e.id).map(e=>`vercel-ai-gateway/${e}`);function Ge(e){let t=e.trim().replace(/^vercel-ai-gateway\//,``).toLowerCase();return Ue.find(e=>e.id.toLowerCase()===t)}function Ke(e){let[t,...n]=e.trim().replace(/^vercel-ai-gateway\//,``).split(`/`),r=n.join(`/`);switch(t){case`anthropic`:return{provider:`anthropic`,model:r};case`google`:return{provider:`google`,model:r};case`minimax`:return{provider:`minimax`,model:r};case`moonshotai`:return{provider:`moonshot`,model:r};case`openai`:return{provider:`openai`,model:r};case`xai`:return{provider:`xai`,model:r};default:return{provider:`vercel-ai-gateway`,model:e}}}function qe(e){let t=Ge(e);if(!t)return;let n=new Set(t.tags.map(e=>e.toLowerCase())),r=Ke(t.id),i=n.has(`reasoning`)?s({provider:r.provider,model:r.model,reasoning:!0}):null;return{tools:n.has(`tool-use`),...i?{thinkingLevels:i.thinkingLevels,defaultThinkingLevel:i.defaultThinkingLevel,thinkingMode:i.thinkingMode,reasoningBudgetSupported:i.reasoningBudgetSupported}:{}}}function Je(e){return Object.fromEntries(e.flatMap(e=>{let t=qe(e);return t?[[e,t]]:[]}))}var h={tools:!0,json:!0,thinkingLevels:[...e],defaultThinkingLevel:`low`,thinkingMode:`generic-reasoning`,reasoningBudgetSupported:!1},Ye={...h,audio:!0,video:!0},Xe=[{id:`mimo-v2.5-pro`,name:`Xiaomi MiMo V2.5 Pro`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072,capabilities:h},{id:`mimo-v2.5`,name:`Xiaomi MiMo V2.5`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:1048576,maxTokens:131072,capabilities:Ye},{id:`mimo-v2-pro`,name:`Xiaomi MiMo V2 Pro`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072,capabilities:h},{id:`mimo-v2-omni`,name:`Xiaomi MiMo V2 Omni`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:262144,maxTokens:128e3,capabilities:Ye},{id:`mimo-v2-flash`,name:`Xiaomi MiMo V2 Flash`,reasoning:!0,input:[`text`],cost:{input:.11,output:.32,cacheRead:.01,cacheWrite:0},contextWindow:262144,maxTokens:64e3,capabilities:h}],Ze=Xe.map(e=>e.id);function Qe(e=`xiaomi`){return Object.fromEntries(Xe.map(t=>[`${e}/${t.id}`,t.capabilities?{...t.capabilities}:{}]))}new Map(`openai.anthropic.chutes.ollama.lmstudio.vllm.minimax.moonshot.google.xai.mistral.volcengine.byteplus.openrouter.qwen.zai.qianfan.copilot.ai-gateway.opencode-zen.xiaomi.synthetic.together.huggingface.venice.litellm.cloudflare-ai-gateway.custom`.split(`.`).map((e,t)=>[e,t]));var $e=`openai`,et=`openai`,g=`openai-codex`,tt=`anthropic`,_=`anthropic`,nt=`chutes`,v=`chutes`,rt=`ollama`,y=`ollama`,it=`lmstudio`,b=`lmstudio`,at=`vllm`,x=`vllm`,ot=`minimax`,S=`minimax`,C=`minimax-cn`,w=`minimax-portal`,st=`moonshot`,T=`moonshot`,E=`kimi-coding`,ct=`google`,D=`google`,O=`google-gemini-cli`,lt=`mistral`,k=`mistral`,ut=`volcengine`,A=`volcengine`,j=`volcengine-coding`,M=`volcengine-plan`,dt=`byteplus`,N=`byteplus`,ft=`byteplus-coding`,P=`byteplus-plan`,pt=`openrouter`,F=`openrouter`,mt=`qwen`,I=`qwen`,L=`qwen-coding-plan`,ht=`qianfan`,R=`qianfan`,gt=`copilot`,z=`github-copilot`,B=`copilot-proxy`,_t=`ai-gateway`,V=`vercel-ai-gateway`,vt=`opencode-zen`,H=`opencode`,yt=`xiaomi`,U=`xiaomi`,bt=`synthetic`,W=`synthetic`,xt=`together`,G=`together`,St=`huggingface`,K=`huggingface`,Ct=`venice`,q=`venice`,wt=`litellm`,J=`litellm`,Tt=`custom`,Y=`custom`,Et=[`gpt-5.6`,`gpt-5.6-terra`,`gpt-5.6-luna`,`gpt-5.5`],Dt=[`gpt-5.5`],Ot=Et.map(e=>`${et}/${e}`),kt=Dt.map(e=>`${g}/${e}`),At=[`claude-fable-5`,`claude-opus-4-8`,`claude-sonnet-5`,`claude-haiku-4-5`].map(e=>`${_}/${e}`),jt=[`google/gemma-4-31B-turbo-TEE`,`Qwen/Qwen3-32B-TEE`,`deepseek-ai/DeepSeek-V3.2-TEE`,`zai-org/GLM-5.1-TEE`,`moonshotai/Kimi-K2.6-TEE`,`Qwen/Qwen3.6-27B-TEE`,`Qwen/Qwen3.5-397B-A17B-TEE`,`zai-org/GLM-5-TEE`,`Qwen/Qwen3-235B-A22B-Thinking-2507-TEE`,`zai-org/GLM-5.2-TEE`],Mt=jt.map(e=>`${v}/${e}`),Nt=[],Pt=[],Ft=[],It=[`MiniMax-M2.7`,`MiniMax-M2.7-highspeed`,`MiniMax-M2.5`,`MiniMax-M2.5-highspeed`],Lt=It.map(e=>`${S}/${e}`),Rt=It.map(e=>`${C}/${e}`),zt=[`MiniMax-M2.7`,`MiniMax-M2.7-highspeed`].map(e=>`${w}/${e}`),Bt=[`kimi-k2.6`,`kimi-k2.5`].map(e=>`${T}/${e}`),Vt=[`kimi-for-coding`].map(e=>`${E}/${e}`),Ht=[`gemini-3.5-flash`,`gemini-3.1-pro-preview`,`gemini-3-flash-preview`,`gemini-3.1-flash-lite`],Ut=Ht.map(e=>`${D}/${e}`),Wt=Ht.map(e=>`${O}/${e}`),Gt=[`grok-4.5`,`grok-4.3`,`grok-build-0.1`].map(e=>`xai/${e}`),Kt=[`mistral-medium-3.5`,`mistral-small-2603`,`mistral-large-2512`,`devstral-2512`,`ministral-14b-2512`,`ministral-8b-2512`,`ministral-3b-2512`].map(e=>`${k}/${e}`),qt=[`doubao-seed-2-0-pro-260215`,`doubao-seed-2-0-lite-260215`,`doubao-seed-2-0-mini-260215`,`doubao-seed-2-0-code-preview-260215`,`deepseek-v3-2-251201`,`glm-4-7-251222`].map(e=>`${A}/${e}`),Jt=[`ark-code-latest`,`doubao-seed-2.0-code`,`doubao-seed-2.0-pro`,`doubao-seed-2.0-lite`,`doubao-seed-code`,`minimax-m2.5`,`glm-4.7`,`deepseek-v3.2`,`kimi-k2.5`].flatMap(e=>[`${j}/${e}`,`${M}/${e}`]),Yt=[`seed-2-0-pro-260328`,`seed-2-0-lite-260228`,`seed-2-0-mini-260215`,`seed-2-0-code-preview-260328`,`deepseek-v3-2-251201`,`glm-4-7-251222`].map(e=>`${N}/${e}`),Xt=[`ark-code-latest`,`dola-seed-2.0-pro`,`dola-seed-2.0-lite`,`dola-seed-2.0-code`,`bytedance-seed-code`,`glm-5.1`,`glm-4.7`,`kimi-k2.5`,`gpt-oss-120b`].flatMap(e=>[`${ft}/${e}`,`${P}/${e}`]),Zt=`openrouter/owl-alpha,openai/gpt-5.6-sol,openai/gpt-5.6-terra,openai/gpt-5.6-luna,openai/gpt-5.5,openai/gpt-5.4,openai/gpt-5.4-mini,openai/gpt-5.4-nano,anthropic/claude-fable-5,anthropic/claude-opus-4.8,anthropic/claude-sonnet-5,anthropic/claude-haiku-4.5,google/gemini-3.5-flash,google/gemini-3.1-pro-preview,google/gemini-3-flash-preview,google/gemini-3.1-flash-lite,x-ai/grok-4.5,x-ai/grok-4.3,x-ai/grok-build-0.1,mistralai/mistral-medium-3-5,mistralai/mistral-small-2603,mistralai/mistral-large-2512,mistralai/devstral-2512,qwen/qwen3.7-max,qwen/qwen3.7-plus,qwen/qwen3.6-flash,z-ai/glm-5.2,deepseek/deepseek-v4-pro,deepseek/deepseek-v4-flash,minimax/minimax-m2.7,moonshotai/kimi-k2.6`.split(`,`).map(e=>`${F}/${e}`),Qt=[`qwen3.7-max`,`qwen3.7-plus`,`qwen3.6-flash`].map(e=>`${I}/${e}`),$t=[`qwen3.7-max`,`qwen3.7-plus`,`qwen3.6-flash`,`deepseek-v4-pro`,`deepseek-v4-flash`,`kimi-k2.7-code`,`glm-5.2`,`MiniMax-M2.5`].map(e=>`${L}/${e}`),en=[`glm-5.2`,`glm-5.1`,`glm-5`,`glm-5-turbo`,`glm-5v-turbo`,`glm-4.7`,`glm-4.7-flashx`,`glm-4.7-flash`].map(e=>`zai/${e}`),tn={tools:!0,json:!0,thinkingLevels:[`off`,`low`],defaultThinkingLevel:`low`,thinkingMode:`zai-binary`,reasoningBudgetSupported:!1},nn=Object.fromEntries(en.map(e=>[e,e.endsWith(`/glm-5v-turbo`)?{...tn,video:!0}:tn])),rn=[`ernie-5.1`,`ernie-5.0`,`ernie-5.0-thinking-latest`,`ernie-5.0-thinking-preview`,`ernie-x1.1-preview`,`ernie-x1.1`,`ernie-x1-turbo-32k`,`deepseek-v4-pro`,`deepseek-v4-flash`,`deepseek-v3.2-think`,`deepseek-v3.2`].map(e=>`${R}/${e}`),an=new Set([`qianfan/ernie-5.1`,`qianfan/ernie-5.0`,`qianfan/ernie-5.0-thinking-latest`,`qianfan/ernie-5.0-thinking-preview`,`qianfan/ernie-x1.1-preview`,`qianfan/ernie-x1.1`,`qianfan/ernie-x1-turbo-32k`]),on=new Set([`qianfan/deepseek-v4-pro`,`qianfan/deepseek-v4-flash`,`qianfan/deepseek-v3.2-think`,`qianfan/deepseek-v3.2`]),sn=Object.fromEntries(rn.map(t=>[t,{tools:!0,json:!0,...an.has(t)?{fixedReasoning:!0}:on.has(t)?{thinkingLevels:[...e],defaultThinkingLevel:`low`,thinkingMode:`generic-reasoning`,reasoningBudgetSupported:!0}:{}}])),cn=[`gpt-5.5`,`gpt-5.4`,`gpt-5.4-mini`,`gpt-5.3-codex-spark`,`gpt-4.1`,`claude-fable-5`,`claude-opus-4.8`,`claude-sonnet-5`,`claude-haiku-4.5`,`gemini-3.5-flash`,`gemini-3.1-pro`,`gemini-3-flash`,`grok-build-0.1`],ln=cn.map(e=>`${z}/${e}`),un=[...cn].map(e=>`${B}/${e}`);`${z}`;var dn=new Set([`gpt-5.5`,`gpt-5.4`,`gpt-5.4-mini`,`gpt-5.3-codex-spark`]),fn=new Set([`claude-fable-5`,`claude-opus-4.8`,`claude-sonnet-5`]),pn=new Set([`claude-haiku-4.5`]),mn=new Set([`gemini-3.5-flash`,`gemini-3.1-pro`,`gemini-3-flash`]);function hn(t){return Object.fromEntries(t.map(t=>{let n=t.slice(t.indexOf(`/`)+1);return[t,{tools:!0,json:!0,...dn.has(n)?{thinkingLevels:[...e],defaultThinkingLevel:`low`,thinkingMode:`openai-reasoning-effort`,reasoningBudgetSupported:!1}:fn.has(n)?{thinkingLevels:[...e],defaultThinkingLevel:`low`,thinkingMode:`anthropic-adaptive`,reasoningBudgetSupported:!0}:pn.has(n)?{thinkingLevels:[...e],defaultThinkingLevel:`low`,thinkingMode:`anthropic-thinking-budget`,reasoningBudgetSupported:!0}:mn.has(n)?{thinkingLevels:[...e],defaultThinkingLevel:`low`,thinkingMode:`google-thinking-budget`,reasoningBudgetSupported:!0}:{}}]}))}var gn={...hn(ln),...hn(un)},_n=Je(We),vn=ke(Ee),yn=Ze.map(e=>`${U}/${e}`);`${U}`;var bn=Qe(U),xn=Me.map(e=>`${W}/${e}`);`${W}`;var Sn=Ne(W),Cn=Le(G),wn=xe(K),Tn=He(q),En=Te(J),Dn=ge(c),On=[];function kn(e){let t=e.indexOf(`/`);return t<=0||t===e.length-1?null:{route:e.slice(0,t).trim(),model:e.slice(t+1).trim()}}function An(e,t){let n=t.trim().toLowerCase(),r=(e,r)=>n.startsWith(`${e}/`)?{provider:r,model:t.slice(e.length+1)}:null;return r(`openai`,`openai`)??r(`anthropic`,`anthropic`)??r(`google`,`google`)??r(`x-ai`,`xai`)??r(`xai`,`xai`)??r(`mistralai`,`mistral`)??r(`minimax`,`minimax`)??r(`qwen`,`qwen`)??r(`moonshotai`,`moonshot`)??r(`z-ai`,`zai`)??r(`zai-org`,`zai`)??r(`glm`,`zai`)??{provider:n.includes(`claude-`)||n.includes(`claude_`)?`anthropic`:n.includes(`gemini-`)?`google`:n.includes(`qwen`)?`qwen`:n.includes(`kimi`)?`moonshot`:n.includes(`glm-`)?`zai`:e,model:t}}function jn(e){let t=An(e.route,e.model),n=s({provider:t.provider,model:t.model,reasoning:e.reasoning});if(n)return{thinkingLevels:n.thinkingLevels,defaultThinkingLevel:n.defaultThinkingLevel,thinkingMode:n.thinkingMode,reasoningBudgetSupported:n.reasoningBudgetSupported}}function Mn(e){let t=kn(e);if(t)return jn({route:t.route,model:t.model})}function X(e){return Object.fromEntries(e.map(e=>[e.toLowerCase(),Mn(e)??{}]))}function Z(e,t){let n=X(e);for(let[e,r]of Object.entries(t))n[e.toLowerCase()]={...n[e.toLowerCase()],...r};return n}var Nn=[...e],Pn={"anthropic/claude-fable-5":{thinkingLevels:Nn,defaultThinkingLevel:`low`,thinkingMode:`anthropic-adaptive`,reasoningBudgetSupported:!1},"anthropic/claude-opus-4-8":{thinkingLevels:Nn,defaultThinkingLevel:`low`,thinkingMode:`anthropic-adaptive`,reasoningBudgetSupported:!1},"anthropic/claude-sonnet-5":{thinkingLevels:Nn,defaultThinkingLevel:`low`,thinkingMode:`anthropic-adaptive`,reasoningBudgetSupported:!1},"anthropic/claude-haiku-4-5":{thinkingLevels:Nn,defaultThinkingLevel:`low`,thinkingMode:`anthropic-thinking-budget`,reasoningBudgetSupported:!0}},Fn=Object.fromEntries(jt.map(e=>[`${v}/${e}`,{tools:!0,json:!0,...jn({route:v,model:e,reasoning:!0}),...e===`moonshotai/Kimi-K2.6-TEE`?{video:!0}:{}}])),In=[...e],Ln=Object.fromEntries([...Lt,...Rt,...zt].map(e=>[e,{tools:!0,thinkingLevels:In,defaultThinkingLevel:`off`,thinkingMode:`anthropic-thinking-budget`,reasoningBudgetSupported:!1}])),Rn=Object.fromEntries([...Bt,...Vt].map(t=>[t,{tools:!0,...t===`moonshot/kimi-k2.6`?{video:!0}:{},thinkingLevels:[...e],defaultThinkingLevel:`low`,thinkingMode:`moonshot-thinking`,reasoningBudgetSupported:!1}])),zn=Object.fromEntries([...Ut,...Wt].map(t=>[t,{tools:!0,json:!0,audio:!0,video:!0,thinkingLevels:[...e],defaultThinkingLevel:`low`,thinkingMode:`google-thinking-budget`,reasoningBudgetSupported:!0}])),Bn={"xai/grok-4.5":{tools:!0,json:!0,thinkingLevels:[`off`,`low`,`medium`,`high`],defaultThinkingLevel:`low`,thinkingMode:`xai-reasoning-effort`,reasoningBudgetSupported:!1},"xai/grok-4.3":{tools:!0,json:!0,thinkingLevels:[`off`,`low`,`medium`,`high`],defaultThinkingLevel:`low`,thinkingMode:`xai-reasoning-effort`,reasoningBudgetSupported:!1},"xai/grok-build-0.1":{tools:!0,json:!0}},Vn=[`off`,`high`],Hn=Object.fromEntries(Kt.map(e=>[e,{tools:!0,json:!0,...e===`mistral/mistral-medium-3.5`||e===`mistral/mistral-small-2603`?{thinkingLevels:[...Vn],defaultThinkingLevel:`high`,thinkingMode:`mistral-reasoning-effort`,reasoningBudgetSupported:!1}:{}}])),Un=[`minimal`,`low`,`medium`,`high`],Wn=new Set([`volcengine/doubao-seed-2-0-pro-260215`,`volcengine/doubao-seed-2-0-lite-260215`,`volcengine/doubao-seed-2-0-mini-260215`,`volcengine/doubao-seed-2-0-code-preview-260215`,`volcengine-coding/doubao-seed-2.0-code`,`volcengine-plan/doubao-seed-2.0-code`,`volcengine-coding/doubao-seed-2.0-pro`,`volcengine-plan/doubao-seed-2.0-pro`,`volcengine-coding/doubao-seed-2.0-lite`,`volcengine-plan/doubao-seed-2.0-lite`,`volcengine-coding/doubao-seed-code`,`volcengine-plan/doubao-seed-code`]),Gn=new Set([`volcengine/doubao-seed-2-0-pro-260215`,`volcengine/doubao-seed-2-0-lite-260215`,`volcengine/doubao-seed-2-0-mini-260215`,`volcengine/doubao-seed-2-0-code-preview-260215`,`volcengine-coding/doubao-seed-2.0-code`,`volcengine-plan/doubao-seed-2.0-code`,`volcengine-coding/doubao-seed-2.0-pro`,`volcengine-plan/doubao-seed-2.0-pro`,`volcengine-coding/doubao-seed-2.0-lite`,`volcengine-plan/doubao-seed-2.0-lite`,`volcengine-coding/doubao-seed-code`,`volcengine-plan/doubao-seed-code`]),Kn=Object.fromEntries([...qt,...Jt].map(e=>[e,{tools:!0,json:!0,...Wn.has(e)?{thinkingLevels:[...Un],defaultThinkingLevel:`medium`,thinkingMode:`volcengine-reasoning-effort`,reasoningBudgetSupported:!1}:{},...Gn.has(e)?{video:!0}:{}}])),qn=[`off`,`high`],Jn=new Set([`byteplus/seed-2-0-pro-260328`,`byteplus/seed-2-0-lite-260228`,`byteplus/seed-2-0-mini-260215`,`byteplus/seed-2-0-code-preview-260328`,`byteplus-coding/dola-seed-2.0-pro`,`byteplus-plan/dola-seed-2.0-pro`,`byteplus-coding/dola-seed-2.0-lite`,`byteplus-plan/dola-seed-2.0-lite`,`byteplus-coding/dola-seed-2.0-code`,`byteplus-plan/dola-seed-2.0-code`,`byteplus-coding/bytedance-seed-code`,`byteplus-plan/bytedance-seed-code`]),Yn=Object.fromEntries([...Yt,...Xt].map(e=>[e,{tools:!0,json:!0,...Jn.has(e)?{thinkingLevels:[...qn],defaultThinkingLevel:`high`,thinkingMode:`byteplus-thinking-type`,reasoningBudgetSupported:!1}:{}}])),Xn=new Set([`openrouter/google/gemini-3.5-flash`,`openrouter/google/gemini-3.1-pro-preview`,`openrouter/google/gemini-3-flash-preview`,`openrouter/google/gemini-3.1-flash-lite`]),Zn=new Set([`openrouter/google/gemini-3.5-flash`,`openrouter/google/gemini-3.1-pro-preview`,`openrouter/google/gemini-3-flash-preview`,`openrouter/google/gemini-3.1-flash-lite`,`openrouter/qwen/qwen3.7-max`,`openrouter/qwen/qwen3.7-plus`,`openrouter/qwen/qwen3.6-flash`]),Qn=new Set([`openrouter/mistralai/mistral-medium-3-5`,`openrouter/mistralai/mistral-small-2603`]),$n=new Set([`openrouter/minimax/minimax-m2.7`]),er=new Set([`openrouter/deepseek/deepseek-v4-pro`,`openrouter/deepseek/deepseek-v4-flash`]),tr=new Set([`openrouter/openai/gpt-5.6-sol`,`openrouter/openai/gpt-5.6-terra`,`openrouter/openai/gpt-5.6-luna`,`openrouter/openai/gpt-5.5`,`openrouter/openai/gpt-5.4`,`openrouter/openai/gpt-5.4-mini`,`openrouter/openai/gpt-5.4-nano`]),nr=new Set([`openrouter/x-ai/grok-4.5`,`openrouter/x-ai/grok-4.3`]),rr=Object.fromEntries(Zt.map(n=>[n,{tools:!0,json:!0,...Xn.has(n)?{audio:!0}:{},...Zn.has(n)?{video:!0}:{},...Qn.has(n)?{thinkingLevels:[...Vn],defaultThinkingLevel:`high`,thinkingMode:`mistral-reasoning-effort`,reasoningBudgetSupported:!1}:{},...$n.has(n)?{thinkingLevels:[...In],defaultThinkingLevel:`off`,thinkingMode:`anthropic-thinking-budget`,reasoningBudgetSupported:!1}:{},...er.has(n)?{thinkingLevels:[...e],defaultThinkingLevel:`low`,thinkingMode:`generic-reasoning`,reasoningBudgetSupported:!1}:{},...tr.has(n)?{thinkingLevels:[...t],defaultThinkingLevel:`low`,thinkingMode:`openai-reasoning-effort`,reasoningBudgetSupported:!1}:{},...nr.has(n)?{thinkingLevels:[`off`,`low`,`medium`,`high`],defaultThinkingLevel:`low`,thinkingMode:`xai-reasoning-effort`,reasoningBudgetSupported:!1}:{}}])),ir=new Set([`qwen-coding-plan/kimi-k2.7-code`,`qwen-coding-plan/glm-5.2`,`qwen-coding-plan/MiniMax-M2.5`]),ar=Object.fromEntries([...Qt,...$t].map(t=>[t,{tools:!0,json:!0,...ir.has(t)?{}:{thinkingLevels:[...e],defaultThinkingLevel:`low`,thinkingMode:`qwen-thinking`,reasoningBudgetSupported:!0}}])),or={id:$e,label:`OpenAI`,priority:1,hint:`OpenAI sign-in + API key`,methods:[{id:`openai-codex`,route:g,kind:`oauth`,label:`Sign in`,hint:`Open the OpenAI sign-in URL, finish login in the browser, then Fased completes the OAuth flow.`},{id:`openai-api-key`,route:et,kind:`api-key`,label:`API key`}],models:{recommended:[...Ot,...kt],routeRules:{[et]:[`${et}/*`],[g]:[`${g}/*`]}},modelCapabilities:X([...Ot,...kt])},sr={id:tt,label:`Anthropic`,priority:2,hint:`Claude Code OAuth + setup-token + API key`,methods:[{id:`anthropic-oauth`,route:_,kind:`oauth`,label:`Sign in (Claude Code)`,hint:`Claude or Console account; Pro, Max, Team, Enterprise, or Console access`,buttonLabel:`Sign in`},{id:`token`,route:_,kind:`token`,label:`Token (setup-token)`,hint:"run `claude setup-token` elsewhere, then paste the token here",buttonLabel:`Paste token`},{id:`apiKey`,route:_,kind:`api-key`,label:`API key`}],models:{recommended:[...At],routeRules:{[_]:[`${_}/*`]}},modelCapabilities:Z(At,Pn)},cr={id:nt,label:`Chutes`,priority:3,hint:`Sign in + API key`,methods:[{id:`chutes`,route:v,kind:`oauth`,label:`Sign in`,hint:`Requires a Chutes OAuth app client id. Enter the cid, then Fased generates the Chutes sign-in URL.`,buttonLabel:`Sign in`},{id:`chutes-api-key`,route:v,kind:`api-key`,label:`API key`}],models:{recommended:[...Mt],routeRules:{[v]:[`${v}/*`]}},modelCapabilities:Z(Mt,Fn)},lr={id:rt,label:`Ollama`,priority:4,hint:`Local, cloud, or hybrid Ollama through the native API`,modelProviderIds:[y],methods:[{id:`ollama`,route:y,kind:`manual`,label:`Ollama native URL + model`,hint:`Use the native Ollama base URL, for example http://127.0.0.1:11434. Do not use /v1.`,buttonLabel:`Configure`}],models:{recommended:Nt,dynamic:!0,operatorCatalog:!0,routeRules:{[y]:[`${y}/*`]}},modelCapabilities:X(Nt)},ur={id:it,label:`LM Studio`,priority:4,hint:`Local LM Studio server on localhost:1234`,modelProviderIds:[b],methods:[{id:`lmstudio`,route:b,kind:`manual`,label:`LM Studio URL + model`,hint:`Use http://127.0.0.1:1234/v1, optional API token, and a model key from LM Studio.`,buttonLabel:`Configure`}],models:{recommended:Pt,dynamic:!0,operatorCatalog:!0,routeRules:{[b]:[`${b}/*`]}},modelCapabilities:X(Pt)},dr={id:at,label:`vLLM-compatible`,priority:4,hint:`OpenAI-compatible local server: vLLM, SGLang, TGI, LocalAI, or FastChat`,modelProviderIds:[x],methods:[{id:`vllm`,route:x,kind:`manual`,label:`vLLM-compatible URL + model`,hint:`Enter the /v1 base URL, API key or local placeholder, and served model ID for vLLM, SGLang, TGI, LocalAI, or FastChat.`,buttonLabel:`Configure`}],models:{recommended:Ft,dynamic:!0,operatorCatalog:!0,routeRules:{[x]:[`${x}/*`]}},modelCapabilities:X(Ft)},fr={id:ot,label:`MiniMax`,priority:5,hint:`MiniMax OAuth + API key`,modelProviderIds:[S,C,w],methods:[{id:`minimax-portal`,route:w,kind:`oauth`,label:`Sign in`,hint:`Global or CN endpoint; uses MiniMax portal sign-in`,setupRequirement:`Requires MiniMax portal/coding-plan access. Choose Global or CN, then open the approval URL and approve before the code expires.`,buttonLabel:`Sign in`},{id:`minimax-api`,route:S,kind:`api-key`,label:`API key`},{id:`minimax-api-key-cn`,route:C,kind:`api-key`,label:`API key (CN)`,hint:`China endpoint (api.minimaxi.com)`},{id:`minimax-api-lightning`,route:S,configProviderId:`minimax-lightning`,statusRoute:S,kind:`api-key`,label:`Highspeed API key`,hint:`Fast M2.7 tier`}],models:{recommended:[...Lt,...Rt,...zt],routeRules:{[S]:[`${S}/*`],[C]:[`${C}/*`],[w]:[`${w}/*`]}},modelCapabilities:Z([...Lt,...Rt,...zt],Ln)},pr={id:st,label:`Moonshot AI`,priority:6,hint:`Kimi API + Kimi Code`,modelProviderIds:[T,E],methods:[{id:`moonshot-api-key`,route:T,kind:`api-key`,label:`Kimi API key (.ai)`,hint:`Kimi Open Platform endpoint (api.moonshot.ai)`},{id:`moonshot-api-key-cn`,route:T,configProviderId:`moonshot-cn`,statusRoute:T,kind:`api-key`,label:`Kimi API key (.cn)`,hint:`China endpoint (api.moonshot.cn)`},{id:`kimi-code-api-key`,route:E,kind:`api-key`,label:`Kimi Code API key (subscription)`,hint:`Kimi Code membership endpoint (api.kimi.com/coding)`}],models:{recommended:[...Bt,...Vt],routeRules:{[T]:[`${T}/*`],[E]:[`${E}/*`]}},modelCapabilities:Z([...Bt,...Vt],Rn)},mr={id:ct,label:`Google`,priority:7,hint:`Gemini API key + OAuth`,routeAliases:[`gemini`],modelProviderIds:[D,`gemini`,O],methods:[{id:`gemini-api-key`,route:D,kind:`api-key`,label:`Gemini API key`},{id:`google-gemini-cli`,route:O,kind:`oauth`,label:`Sign in (Gemini CLI)`,hint:`Unofficial flow; review account-risk warning before use`,setupRequirement:`Requires gemini-cli installed on the gateway machine, or GEMINI_CLI_OAUTH_CLIENT_ID set before sign-in.`}],models:{recommended:[...Ut,...Wt],routeRules:{[D]:[`${D}/*`,`gemini/*`],[O]:[`${O}/*`]}},modelCapabilities:Z([...Ut,...Wt],zn)},hr={id:`xai`,label:`xAI (Grok)`,priority:8,hint:`Grok API key or xAI account sign-in`,methods:[{id:`xai-oauth`,route:`xai`,kind:`oauth`,label:`xAI sign-in`,hint:`Browser sign-in for eligible xAI/Grok accounts`,buttonLabel:`Sign in`},{id:`xai-device-code`,route:`xai`,kind:`device`,label:`xAI device code`,hint:`Remote-friendly sign-in for eligible xAI/Grok accounts`,buttonLabel:`Device code`},{id:`xai-api-key`,route:`xai`,kind:`api-key`,label:`xAI API key`}],models:{recommended:[...Gt],routeRules:{xai:[`xai/*`]}},modelCapabilities:Z(Gt,Bn)},gr={id:lt,label:`Mistral AI`,priority:9,hint:`Mistral API key`,methods:[{id:`mistral-api-key`,route:k,kind:`api-key`,label:`Mistral API key`}],models:{recommended:[...Kt],routeRules:{[k]:[`${k}/*`]}},modelCapabilities:Z(Kt,Hn)},_r={id:ut,label:`Volcano Engine`,priority:10,hint:`Ark API key + Coding Plan`,modelProviderIds:[A,j,M],methods:[{id:`volcengine-api-key`,route:A,kind:`api-key`,label:`Volcano Engine API key`}],models:{recommended:[...qt,...Jt],routeRules:{[A]:[`${A}/*`],[j]:[`${j}/*`],[M]:[`${M}/*`]}},modelCapabilities:Z([...qt,...Jt],Kn)},vr={id:dt,label:`BytePlus`,priority:11,hint:`ModelArk API key + Coding Plan`,modelProviderIds:[N,ft,P],methods:[{id:`byteplus-api-key`,route:N,kind:`api-key`,label:`BytePlus API key`}],models:{recommended:[...Yt,...Xt],routeRules:{[N]:[`${N}/*`],[ft]:[`${ft}/*`],[P]:[`${P}/*`]}},modelCapabilities:Z([...Yt,...Xt],Yn)},yr={id:pt,label:`OpenRouter`,priority:12,hint:`API key`,methods:[{id:`openrouter-api-key`,route:F,kind:`api-key`,label:`OpenRouter API key`}],models:{recommended:[...Zt],dynamic:!0,routeRules:{[F]:[`${F}/*`]}},modelCapabilities:Z(Zt,rr)},br={id:mt,label:`Qwen`,priority:14,hint:`Coding Plan + DashScope API key`,modelProviderIds:[L,I],methods:[{id:`qwen-coding-plan-api-key`,route:L,kind:`api-key`,label:`Coding Plan API key`,hint:`Alibaba Cloud Coding Plan endpoint (coding.dashscope.aliyuncs.com)`},{id:`qwen-api-key`,route:I,kind:`api-key`,label:`DashScope API key`,hint:`DashScope OpenAI-compatible endpoint (dashscope.aliyuncs.com)`}],models:{recommended:[...$t,...Qt],routeRules:{[L]:[`${L}/*`],[I]:[`${I}/*`]}},modelCapabilities:Z([...$t,...Qt],ar)},xr={id:`zai`,label:`Z.AI`,priority:15,hint:`GLM Coding Plan / Global / CN`,modelProviderIds:[`zai`],methods:[{id:`zai-coding-global`,route:`zai`,configProviderId:`zai-coding-global`,statusRoute:`zai`,kind:`api-key`,label:`Coding-Plan-Global`,hint:`GLM Coding Plan Global (api.z.ai)`},{id:`zai-coding-cn`,route:`zai`,configProviderId:`zai-coding-cn`,statusRoute:`zai`,kind:`api-key`,label:`Coding-Plan-CN`,hint:`GLM Coding Plan CN (open.bigmodel.cn)`},{id:`zai-global`,route:`zai`,configProviderId:`zai`,kind:`api-key`,label:`Global`,hint:`Z.AI Global (api.z.ai)`},{id:`zai-cn`,route:`zai`,configProviderId:`zai-cn`,statusRoute:`zai`,kind:`api-key`,label:`CN`,hint:`Z.AI CN (open.bigmodel.cn)`}],models:{recommended:[...en],routeRules:{zai:[`zai/*`]}},modelCapabilities:Z(en,nn)},Sr={id:ht,label:`Qianfan`,priority:16,hint:`Baidu Qianfan API key`,methods:[{id:`qianfan-api-key`,route:R,kind:`api-key`,label:`Qianfan API key`}],models:{recommended:[...rn],routeRules:{[R]:[`${R}/*`]}},modelCapabilities:Z(rn,sn)},Cr={id:gt,label:`Copilot`,priority:17,hint:`GitHub device login + local proxy`,modelProviderIds:[z,B],methods:[{id:`github-copilot`,route:z,kind:`device`,label:`GitHub sign in`,hint:`GitHub OAuth device flow; requires an active Copilot subscription`,buttonLabel:`Sign in`},{id:`copilot-proxy`,route:B,kind:`device`,label:`Proxy sign in`,hint:`Local VS Code Copilot Proxy bridge`,buttonLabel:`Configure`}],models:{recommended:[...ln,...un],dynamic:!0,routeRules:{[z]:[`${z}/*`],[B]:[`${B}/*`]}},modelCapabilities:Z([...ln,...un],gn)},wr={id:_t,label:`Vercel AI`,priority:18,hint:`API key`,modelProviderIds:[V],methods:[{id:`ai-gateway-api-key`,route:V,kind:`api-key`,label:`Vercel AI API key`}],models:{recommended:[...We],dynamic:!0,routeRules:{[V]:[`${V}/*`]}},modelCapabilities:Z(We,_n)},Tr={id:vt,label:`OpenCode Zen`,priority:19,hint:`API key`,modelProviderIds:[H],methods:[{id:`opencode-zen`,route:H,kind:`api-key`,label:`OpenCode Zen API key`,hint:`Sign in to OpenCode Zen, then paste the API key`}],models:{recommended:[...Ee],dynamic:!0,routeRules:{[H]:[`${H}/*`]}},modelCapabilities:Z(Ee,vn)},Er={id:yt,label:`Xiaomi`,priority:20,hint:`MiMo API key`,modelProviderIds:[U],methods:[{id:`xiaomi-api-key`,route:U,kind:`api-key`,label:`Xiaomi API key`,hint:`Create an API key in the Xiaomi MiMo API Open Platform`}],models:{recommended:[...yn],routeRules:{[U]:[`${U}/*`]}},modelCapabilities:Z(yn,bn)},Dr={id:bt,label:`Synthetic`,priority:21,hint:`Anthropic-compatible API key`,modelProviderIds:[W],methods:[{id:`synthetic-api-key`,route:W,kind:`api-key`,label:`Synthetic API key`,hint:`Create an API key in Synthetic`}],models:{recommended:[...xn],routeRules:{[W]:[`${W}/*`]}},modelCapabilities:Z(xn,Sn)},Or={id:xt,label:`Together AI`,priority:22,hint:`API key`,modelProviderIds:[G],methods:[{id:`together-api-key`,route:G,kind:`api-key`,label:`Together AI API key`,hint:`Create an API key in Together AI`}],models:{recommended:[...Ie],routeRules:{[G]:[`${G}/*`]}},modelCapabilities:Z(Ie,Cn)},kr={id:St,label:`Hugging Face`,priority:23,hint:`Inference Providers token`,modelProviderIds:[K],methods:[{id:`huggingface-api-key`,route:K,kind:`api-key`,label:`Hugging Face token`,hint:`Create a fine-grained token with Inference Providers access`}],models:{recommended:[...ye],dynamic:!0,routeRules:{[K]:[`${K}/*`]}},modelCapabilities:wn},Ar={id:Ct,label:`Venice AI`,priority:24,hint:`Privacy-focused API key`,modelProviderIds:[q],methods:[{id:`venice-api-key`,route:q,kind:`api-key`,label:`Venice AI API key`,hint:`Create an API key in Venice settings`}],models:{recommended:[...Ve],dynamic:!0,routeRules:{[q]:[`${q}/*`]}},modelCapabilities:Tn},jr={id:wt,label:`LiteLLM`,priority:25,hint:`OpenAI-compatible LLM proxy`,modelProviderIds:[J],methods:[{id:`litellm-api-key`,route:J,kind:`api-key`,label:`LiteLLM API key`,hint:`LiteLLM Proxy virtual key or master key plus /v1 base URL`}],models:{recommended:[...we],dynamic:!0,operatorCatalog:!0,routeRules:{[J]:[`${J}/*`]}},modelCapabilities:En},Mr={id:le,label:`Cloudflare AI`,priority:26,hint:`Anthropic through Cloudflare AI`,modelProviderIds:[c],methods:[{id:`cloudflare-ai-gateway-api-key`,route:c,kind:`manual`,label:`Cloudflare AI API key`,hint:`Requires Cloudflare Account ID, Gateway ID, and Anthropic provider API key`,buttonLabel:`Configure`}],models:{recommended:[...he],routeRules:{[c]:[`${c}/*`]}},modelCapabilities:Dn},Nr={id:Tt,label:`Custom Provider`,priority:27,hint:`OpenAI or Anthropic-compatible endpoint outside the built-in provider cards`,modelProviderIds:[Y],methods:[{id:`custom-api-key`,route:Y,kind:`manual`,label:`Custom Provider`,hint:`Requires base URL, endpoint compatibility, model ID, and optional API key. Use this for SGLang or other compatible endpoints when the vLLM-compatible shortcut does not fit.`,buttonLabel:`Configure`}],models:{recommended:On,dynamic:!0,operatorCatalog:!0,routeRules:{[Y]:[`${Y}/*`]}},modelCapabilities:X(On)},Q=[or,sr,cr,lr,ur,dr,fr,pr,mr,hr,gr,_r,vr,yr,br,xr,Sr,Cr,wr,Tr,Er,Dr,Or,kr,Ar,jr,Mr,Nr],Pr=new Map(Q.map(e=>[e.id,e])),Fr=new Map(Q.flatMap(e=>[...e.methods.map(t=>[t.route,e]),...(e.routeAliases??[]).map(t=>[t,e]),...(e.modelProviderIds??[]).map(t=>[t,e])])),Ir=new Set(Q.flatMap(e=>e.models.recommended.map(e=>e.toLowerCase()))),Lr=new Map(Q.flatMap(e=>Object.entries(e.modelCapabilities??{}).map(([e,t])=>[e.toLowerCase(),t])));new Set(Dt);function Rr(){return[...Q]}function zr(e){return Pr.get(e.trim().toLowerCase())}function $(e){return Fr.get(e.trim().toLowerCase())}function Br(e,t){let n=e.trim().toLowerCase(),r=t.trim().toLowerCase();if(!(!n||!r))return Lr.get(`${n}/${r}`)}function Vr(e){let t=e.trim();if(!t)return!1;let n=t.indexOf(`/`);if(n===-1)return!0;let r=t.slice(0,n).trim().toLowerCase();if(!$(r))return!1;let i=$(r);return i?i.models.operatorCatalog?!0:Ir.has(t.toLowerCase()):!1}function Hr(e){let t=e.provider.trim(),n=e.id.trim();return!t||!n?!1:Vr(`${t}/${n}`)}function Ur(e,t){let n=e.trim();if(!n)return``;if(n.includes(`/`))return n;let r=t?.trim();return r?`${r}/${n}`:n}function Wr(e){let t=e.trim();return t?t.includes(`/`)?{kind:`qualified`,value:t}:{kind:`raw`,value:t}:null}function Gr(e,t){return Kr(e,t).value}function Kr(e,t){if(!e)return{value:``,source:`empty`,reason:`empty`};let n=e?.value.trim();if(!n)return{value:``,source:`empty`,reason:`empty`};if(e.kind===`qualified`)return{value:n,source:`qualified`};let r=``;for(let e of t){if(e.id.trim().toLowerCase()!==n.toLowerCase())continue;let t=Ur(e.id,e.provider);if(!r){r=t;continue}if(r.toLowerCase()!==t.toLowerCase())return{value:n,source:`raw`,reason:`ambiguous`}}return r?{value:r,source:`catalog`}:{value:n,source:`raw`,reason:`missing`}}function qr(e,t){return typeof e==`string`?Ur(e,t):``}function Jr(e,t,n){if(typeof e!=`string`)return{value:``,source:`empty`,reason:`empty`};let r=e.trim();if(!r)return{value:``,source:`empty`,reason:`empty`};let i=t?.trim();if(i){let e=n.find(e=>e.provider?.trim().toLowerCase()===i.toLowerCase()&&e.id.trim().toLowerCase()===r.toLowerCase());if(e)return{value:Qr(e).value,source:`server`}}let a=Kr(Wr(r),n);return a.source===`qualified`||a.source===`catalog`?a:{value:qr(r,t),source:`server`,reason:a.reason}}function Yr(e,t,n){return Jr(e,t,n).value}function Xr(e){let t=e.trim();if(!t)return``;let n=t.indexOf(`/`);if(n<=0)return t;let r=t.slice(0,n);return`${t.slice(n+1)} · ${Zr(r)}`}function Zr(e){return $(e)?.label??e}function Qr(e){let t=e.provider?.trim();return{value:(()=>{if(!t)return e.id;let n=`${t.toLowerCase()}/`;return e.id.toLowerCase().startsWith(n)?e.id:`${t}/${e.id}`})(),label:t?`${e.id} · ${Zr(t)}`:e.id}}export{dr as A,Br as B,yr as C,Or as D,Dr as E,zr as F,ee as H,$ as I,Hr as L,hr as M,Er as N,Ar as O,xr as P,Vr as R,Tr as S,br as T,s as U,ce as V,fr as _,Kr as a,lr as b,vr as c,Cr as d,Nr as f,ur as g,jr as h,Gr as i,_r as j,wr as k,cr as l,kr as m,Wr as n,Yr as o,mr as p,Xr as r,sr as s,Qr as t,Mr as u,gr as v,Sr as w,or as x,pr as y,Rr as z};
2
+ //# sourceMappingURL=chat-model-ref-NT82zapt.js.map
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./app-6iCry787.js","./icons-D3-vEvih.js","./open-external-url-DwSiwMPl.js","./chat-model-ref-C6CFR-GR.js","./marketplace-order-evidence-DkR0ZRHa.js","./mining-commit-R-6nu87p.js","./task-ledger-source-route-C-yTp0QU.js","./wallet-policy-C3ZS66Rl.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./app-Bf5WlHKE.js","./icons-D3-vEvih.js","./open-external-url-DwSiwMPl.js","./chat-model-ref-NT82zapt.js","./marketplace-order-evidence-DkR0ZRHa.js","./mining-commit-R-6nu87p.js","./task-ledger-source-route-C-yTp0QU.js","./wallet-policy-C3ZS66Rl.js"])))=>i.map(i=>d[i]);
2
2
  (function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var e={"entry-loaded":10,"app-import-start":20,"app-imported":30,"custom-element-defined":40,connected:50,"first-updated":60,rendered:70,"boot-failed":100};function t(t,n){if(typeof window>`u`)return;let r=window.__FASED_CONTROL_UI_BOOT=window.__FASED_CONTROL_UI_BOOT??{},i=e[r.stage]??0;e[t]<i&&r.stage!==`boot-failed`||(r.stage=t,r.detail=n??``,r.updatedAt=Date.now(),typeof r.mark==`function`&&r.mark(t,n),typeof window.dispatchEvent==`function`&&typeof CustomEvent==`function`&&window.dispatchEvent(new CustomEvent(`fased-control-ui-boot`,{detail:{stage:t,detail:n??``}})))}var n=`modulepreload`,r=function(e,t){return new URL(e,t).href},i={},a=function(e,t,a){let o=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),s=document.querySelector(`meta[property=csp-nonce]`),c=s?.nonce||s?.getAttribute(`nonce`);function l(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function u(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,new URL(`../../../src/node/plugins/importAnalysisBuild.ts`,import.meta.url)).href}o=l(t.map(t=>{if(t=r(t,a),t=u(t),t in i)return;i[t]=!0;let o=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let r=e[n];if(r.href===t&&(!o||r.rel===`stylesheet`))return}let s=document.createElement(`link`);if(s.rel=o?`stylesheet`:n,o||(s.as=`script`),s.crossOrigin=``,s.href=t,c&&s.setAttribute(`nonce`,c),document.head.appendChild(s),o)return new Promise((e,n)=>{s.addEventListener(`load`,e),s.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function s(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return o.then(t=>{for(let e of t||[])e.status===`rejected`&&s(e.reason);return e().catch(s)})};function o(e){let n=e instanceof Error?e.stack??e.message:String(e);t(`boot-failed`,n||`Unknown dashboard boot error.`);let r=document.querySelector(`fased-app`);if(!r)return;r.innerHTML=``;let i=document.createElement(`style`);i.textContent=`
3
3
  body {
4
4
  margin: 0;
@@ -57,5 +57,5 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./app-6iCry787.js","./
57
57
  font-weight: 650;
58
58
  cursor: pointer;
59
59
  }
60
- `;let a=document.createElement(`div`);a.className=`boot-page`;let o=document.createElement(`section`);o.className=`boot-card`;let s=document.createElement(`h1`);s.className=`boot-title`,s.textContent=`Dashboard bundle could not load`;let c=document.createElement(`p`);c.className=`boot-desc`,c.textContent=`The gateway page loaded, but the browser could not start the dashboard bundle. Reload first. If it keeps happening after an update, clear this site's browser data and sign in again.`;let l=document.createElement(`div`);l.className=`boot-error`,l.textContent=n||`Unknown dashboard boot error.`;let u=document.createElement(`button`);u.className=`boot-button`,u.textContent=`Reload`,u.addEventListener(`click`,()=>window.location.reload()),o.append(s,c,l,u),a.append(o),r.append(i,a)}t(`entry-loaded`),t(`app-import-start`),a(()=>import(`./app-6iCry787.js`).then(()=>t(`app-imported`)),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url).catch(o);export{t as n,a as t};
61
- //# sourceMappingURL=index-CNFgocD9.js.map
60
+ `;let a=document.createElement(`div`);a.className=`boot-page`;let o=document.createElement(`section`);o.className=`boot-card`;let s=document.createElement(`h1`);s.className=`boot-title`,s.textContent=`Dashboard bundle could not load`;let c=document.createElement(`p`);c.className=`boot-desc`,c.textContent=`The gateway page loaded, but the browser could not start the dashboard bundle. Reload first. If it keeps happening after an update, clear this site's browser data and sign in again.`;let l=document.createElement(`div`);l.className=`boot-error`,l.textContent=n||`Unknown dashboard boot error.`;let u=document.createElement(`button`);u.className=`boot-button`,u.textContent=`Reload`,u.addEventListener(`click`,()=>window.location.reload()),o.append(s,c,l,u),a.append(o),r.append(i,a)}t(`entry-loaded`),t(`app-import-start`),a(()=>import(`./app-Bf5WlHKE.js`).then(()=>t(`app-imported`)),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url).catch(o);export{t as n,a as t};
61
+ //# sourceMappingURL=index-DWM6gKjy.js.map
@@ -1,4 +1,4 @@
1
- import{a as e,r as t,t as n}from"./icons-D3-vEvih.js";import{A as r,C as i,D as a,E as o,F as s,I as c,M as l,N as u,O as d,P as f,R as p,S as m,T as h,_ as g,b as _,c as v,d as y,f as b,g as x,h as S,j as ee,k as te,l as ne,m as re,p as ie,s as ae,t as oe,u as C,v as w,w as T,x as E,y as D}from"./chat-model-ref-C6CFR-GR.js";import{buildOrderedProviderProfiles as se,buildProviderAuthSummary as O,calloutClassForProviderAuthActionTone as k}from"./config-CU5Zi8Dh.js";function A(e){return e===`api-key`?`api`:e===`token`?`token`:e===`manual`?`manual`:`interactive`}function j(e){return{id:e.id,label:e.label,routeIds:[...new Set([...e.methods.map(e=>e.route),...e.routeAliases??[]])],authMethods:e.methods.map(e=>({kind:A(e.kind),providerId:e.configProviderId??e.route,statusProviderId:e.statusRoute,methodId:e.id,label:e.label,buttonLabel:e.buttonLabel,reason:e.hint,setupRequirement:e.setupRequirement})),modelProviderIds:e.modelProviderIds,modelRefs:e.models.recommended}}var M=[j(E),j(ae),j(ne),j(_),j(x),j(r),j(g),j(D),j(ie),j(l),j(w),j(ee),j(v),j(i),j(h),j(f),j(T),j(y),j(te),j(m),j(u),j(o),j(a),j(re),j(d),j(S),j(C),j(b)],N={anthropic:`Anthropic API key`,byteplus:`BytePlus API key`,chutes:`Chutes API key`,gemini:`Google Gemini API key`,google:`Google Gemini API key`,huggingface:`Hugging Face token`,"kimi-code":`Kimi Code API key`,"kimi-coding":`Kimi Code API key`,litellm:`LiteLLM API key`,minimax:`MiniMax API key`,"minimax-cn":`MiniMax CN API key`,"minimax-lightning":`MiniMax Highspeed API key`,mistral:`Mistral API key`,moonshot:`Moonshot API key`,"moonshot-cn":`Moonshot CN API key`,opencode:`OpenCode Zen API key`,"opencode-zen":`OpenCode Zen API key`,openai:`OpenAI API key`,openrouter:`OpenRouter API key`,qianfan:`Qianfan API key`,qwen:`Qwen DashScope API key`,"qwen-coding-plan":`Qwen Coding Plan API key`,synthetic:`Synthetic API key`,together:`Together AI API key`,venice:`Venice API key`,"vercel-ai-gateway":`Vercel AI API key`,volcengine:`Volcano Engine API key`,xai:`xAI API key`,xiaomi:`Xiaomi API key`,zai:`Z.AI API key`,"zai-cn":`Z.AI CN API key`,"zai-coding-cn":`Z.AI Coding CN API key`,"zai-coding-global":`Z.AI Coding Global API key`},P={anthropic:`Sign in`,chutes:`Sign in`,"copilot-proxy":`Proxy sign in`,"github-copilot":`GitHub sign in`,"google-gemini-cli":`Sign in`,"minimax-portal":`Sign in`,"openai-codex":`Sign in`,xai:`xAI sign-in`},F={"cloudflare-ai-gateway":`Cloudflare AI uses the Configure form for Account ID, Gateway ID, and Anthropic API key.`,"copilot-proxy":`Copilot Proxy uses a local sign-in/proxy flow, not API-key setup.`,"github-copilot":`GitHub Copilot uses GitHub device login, not API-key setup.`,"google-gemini-cli":`Google Gemini CLI uses OAuth. Use the Google provider row for Gemini API keys.`,"minimax-portal":`MiniMax Portal uses OAuth. Use the MiniMax provider row for API keys.`,"openai-codex":`OpenAI sign-in uses ChatGPT OAuth. Use the OpenAI provider row for OpenAI API keys.`,ollama:`Ollama needs native endpoint/model fields, not generic API-key setup.`,lmstudio:`LM Studio needs endpoint/model fields, not generic API-key setup.`,vllm:`vLLM needs endpoint/model fields, not API-key setup.`},I={gemini:`Use the Google Gemini CLI row for OAuth, or save a Gemini API key here.`,google:`Use the Google Gemini CLI row for OAuth, or save a Gemini API key here.`,minimax:`Use the MiniMax Portal row for OAuth, or save a MiniMax API key here.`,openai:`Use OpenAI sign-in for ChatGPT OAuth, or save an OpenAI API key here.`};function L(e,t){return e?.providers.find(e=>e.provider===t)??null}function R(e,t){return e?.providers.find(e=>e.provider===t)??null}function z(e){return e===`ready`||e===`ok`||e===`configured`||e===`expiring`||e===`static`?`chip ok`:e===`missing`||e===`unauthenticated`||e===`unconfigured`||e===`refresh-required`?`chip warn`:e===`error`?`chip danger`:`chip`}function B(e){return e===`ready`||e===`ok`||e===`configured`||e===`expiring`||e===`static`}function V(e){return e?B(e.status)||e.profiles.some(e=>B(e.status)):!1}function H(e,t){return(t.modelProviderIds??t.routeIds).map(t=>L(e,t)).filter(e=>!!e)}function U(e){return e===`ok`?`chip ok`:e===`fail`?`chip danger`:`chip`}function W(e,t,n){return e===`ok`?t:e===`fail`?n:`unknown`}function G(n){let r=n.find(e=>e.health)?.health;return r?e`
1
+ import{a as e,r as t,t as n}from"./icons-D3-vEvih.js";import{A as r,C as i,D as a,E as o,F as s,I as c,M as l,N as u,O as d,P as f,R as p,S as m,T as h,_ as g,b as _,c as v,d as y,f as b,g as x,h as S,j as ee,k as te,l as ne,m as re,p as ie,s as ae,t as oe,u as C,v as w,w as T,x as E,y as D}from"./chat-model-ref-NT82zapt.js";import{buildOrderedProviderProfiles as se,buildProviderAuthSummary as O,calloutClassForProviderAuthActionTone as k}from"./config-CU5Zi8Dh.js";function A(e){return e===`api-key`?`api`:e===`token`?`token`:e===`manual`?`manual`:`interactive`}function j(e){return{id:e.id,label:e.label,routeIds:[...new Set([...e.methods.map(e=>e.route),...e.routeAliases??[]])],authMethods:e.methods.map(e=>({kind:A(e.kind),providerId:e.configProviderId??e.route,statusProviderId:e.statusRoute,methodId:e.id,label:e.label,buttonLabel:e.buttonLabel,reason:e.hint,setupRequirement:e.setupRequirement})),modelProviderIds:e.modelProviderIds,modelRefs:e.models.recommended}}var M=[j(E),j(ae),j(ne),j(_),j(x),j(r),j(g),j(D),j(ie),j(l),j(w),j(ee),j(v),j(i),j(h),j(f),j(T),j(y),j(te),j(m),j(u),j(o),j(a),j(re),j(d),j(S),j(C),j(b)],N={anthropic:`Anthropic API key`,byteplus:`BytePlus API key`,chutes:`Chutes API key`,gemini:`Google Gemini API key`,google:`Google Gemini API key`,huggingface:`Hugging Face token`,"kimi-code":`Kimi Code API key`,"kimi-coding":`Kimi Code API key`,litellm:`LiteLLM API key`,minimax:`MiniMax API key`,"minimax-cn":`MiniMax CN API key`,"minimax-lightning":`MiniMax Highspeed API key`,mistral:`Mistral API key`,moonshot:`Moonshot API key`,"moonshot-cn":`Moonshot CN API key`,opencode:`OpenCode Zen API key`,"opencode-zen":`OpenCode Zen API key`,openai:`OpenAI API key`,openrouter:`OpenRouter API key`,qianfan:`Qianfan API key`,qwen:`Qwen DashScope API key`,"qwen-coding-plan":`Qwen Coding Plan API key`,synthetic:`Synthetic API key`,together:`Together AI API key`,venice:`Venice API key`,"vercel-ai-gateway":`Vercel AI API key`,volcengine:`Volcano Engine API key`,xai:`xAI API key`,xiaomi:`Xiaomi API key`,zai:`Z.AI API key`,"zai-cn":`Z.AI CN API key`,"zai-coding-cn":`Z.AI Coding CN API key`,"zai-coding-global":`Z.AI Coding Global API key`},P={anthropic:`Sign in`,chutes:`Sign in`,"copilot-proxy":`Proxy sign in`,"github-copilot":`GitHub sign in`,"google-gemini-cli":`Sign in`,"minimax-portal":`Sign in`,"openai-codex":`Sign in`,xai:`xAI sign-in`},F={"cloudflare-ai-gateway":`Cloudflare AI uses the Configure form for Account ID, Gateway ID, and Anthropic API key.`,"copilot-proxy":`Copilot Proxy uses a local sign-in/proxy flow, not API-key setup.`,"github-copilot":`GitHub Copilot uses GitHub device login, not API-key setup.`,"google-gemini-cli":`Google Gemini CLI uses OAuth. Use the Google provider row for Gemini API keys.`,"minimax-portal":`MiniMax Portal uses OAuth. Use the MiniMax provider row for API keys.`,"openai-codex":`OpenAI sign-in uses ChatGPT OAuth. Use the OpenAI provider row for OpenAI API keys.`,ollama:`Ollama needs native endpoint/model fields, not generic API-key setup.`,lmstudio:`LM Studio needs endpoint/model fields, not generic API-key setup.`,vllm:`vLLM needs endpoint/model fields, not API-key setup.`},I={gemini:`Use the Google Gemini CLI row for OAuth, or save a Gemini API key here.`,google:`Use the Google Gemini CLI row for OAuth, or save a Gemini API key here.`,minimax:`Use the MiniMax Portal row for OAuth, or save a MiniMax API key here.`,openai:`Use OpenAI sign-in for ChatGPT OAuth, or save an OpenAI API key here.`};function L(e,t){return e?.providers.find(e=>e.provider===t)??null}function R(e,t){return e?.providers.find(e=>e.provider===t)??null}function z(e){return e===`ready`||e===`ok`||e===`configured`||e===`expiring`||e===`static`?`chip ok`:e===`missing`||e===`unauthenticated`||e===`unconfigured`||e===`refresh-required`?`chip warn`:e===`error`?`chip danger`:`chip`}function B(e){return e===`ready`||e===`ok`||e===`configured`||e===`expiring`||e===`static`}function V(e){return e?B(e.status)||e.profiles.some(e=>B(e.status)):!1}function H(e,t){return(t.modelProviderIds??t.routeIds).map(t=>L(e,t)).filter(e=>!!e)}function U(e){return e===`ok`?`chip ok`:e===`fail`?`chip danger`:`chip`}function W(e,t,n){return e===`ok`?t:e===`fail`?n:`unknown`}function G(n){let r=n.find(e=>e.health)?.health;return r?e`
2
2
  <div class="providers-health" role="note">
3
3
  <span class=${U(r.reachable)}>
4
4
  reachable ${W(r.reachable,`ok`,`failed`)}
@@ -868,15 +868,6 @@ import{a as e,r as t,t as n}from"./icons-D3-vEvih.js";import{A as r,C as i,D as
868
868
  </div>
869
869
  </summary>
870
870
  <div class="providers-provider__body">
871
- ${n.id===`openai`?e`
872
- <div class="providers-catalog-gap is-info" role="note">
873
- <div class="providers-catalog-gap__title">Two OpenAI routes</div>
874
- <div class="providers-catalog-gap__detail">
875
- ChatGPT sign-in unlocks <code>openai-codex</code> models. OpenAI API keys unlock the direct
876
- <code>openai</code> catalog, including GPT-5.6.
877
- </div>
878
- </div>
879
- `:t}
880
871
  ${G(u)}
881
872
  ${K({providerIds:n.modelProviderIds??n.routeIds,modelCatalog:r.modelCatalog})}
882
873
  ${t}
@@ -1150,4 +1141,4 @@ import{a as e,r as t,t as n}from"./icons-D3-vEvih.js";import{A as r,C as i,D as
1150
1141
  </section>
1151
1142
  </section>
1152
1143
  `}export{Ae as renderProviders};
1153
- //# sourceMappingURL=providers-WTJ1kMKy.js.map
1144
+ //# sourceMappingURL=providers-rQMhp1fb.js.map
@@ -14,7 +14,7 @@
14
14
  <link rel="icon" type="image/png" sizes="32x32" href="./favicon-32.png" />
15
15
  <link rel="apple-touch-icon" sizes="180x180" href="./apple-touch-icon.png" />
16
16
  <script data-fased-boot-watchdog src="./boot-watchdog.js" defer></script>
17
- <script type="module" crossorigin src="./assets/index-CNFgocD9.js"></script>
17
+ <script type="module" crossorigin src="./assets/index-DWM6gKjy.js"></script>
18
18
  <link rel="stylesheet" crossorigin href="./assets/index-RwVraC3c.css">
19
19
  </head>
20
20
  <body>
@@ -5,7 +5,7 @@ import { inferLegacyName, normalizeOptionalText } from "./normalize.js";
5
5
  import { normalizeCronStaggerMs, resolveDefaultCronStaggerMs } from "../stagger.js";
6
6
  import { loadCronStore, saveCronStore } from "../store.js";
7
7
  import { recomputeNextRuns } from "./jobs.js";
8
- import syncFs from "node:fs";
8
+ import fs from "node:fs";
9
9
 
10
10
  //#region src/cron/service/store.ts
11
11
  function buildDeliveryPatchFromLegacyPayload(payload) {
@@ -179,7 +179,7 @@ function stripLegacyTopLevelFields(raw) {
179
179
  }
180
180
  async function getFileMtimeMs(path) {
181
181
  try {
182
- const stats = await syncFs.promises.stat(path);
182
+ const stats = await fs.promises.stat(path);
183
183
  return stats.mtimeMs;
184
184
  } catch {
185
185
  return null;
@@ -1,6 +1,6 @@
1
1
  import { expandHomePrefix } from "../infra/home-dir.js";
2
2
  import { CONFIG_DIR } from "../utils.js";
3
- import syncFs from "node:fs";
3
+ import fs from "node:fs";
4
4
  import path from "node:path";
5
5
  import JSON5 from "json5";
6
6
 
@@ -19,7 +19,7 @@ function resolveCronStorePath(storePath) {
19
19
  }
20
20
  async function loadCronStore(storePath) {
21
21
  try {
22
- const raw = await syncFs.promises.readFile(storePath, "utf-8");
22
+ const raw = await fs.promises.readFile(storePath, "utf-8");
23
23
  let parsed;
24
24
  try {
25
25
  parsed = JSON5.parse(raw);
@@ -45,14 +45,14 @@ async function loadCronStore(storePath) {
45
45
  }
46
46
  }
47
47
  async function saveCronStore(storePath, store) {
48
- await syncFs.promises.mkdir(path.dirname(storePath), { recursive: true });
48
+ await fs.promises.mkdir(path.dirname(storePath), { recursive: true });
49
49
  const { randomBytes } = await import("node:crypto");
50
50
  const tmp = `${storePath}.${process.pid}.${randomBytes(8).toString("hex")}.tmp`;
51
51
  const json = JSON.stringify(store, null, 2);
52
- await syncFs.promises.writeFile(tmp, json, "utf-8");
53
- await syncFs.promises.rename(tmp, storePath);
52
+ await fs.promises.writeFile(tmp, json, "utf-8");
53
+ await fs.promises.rename(tmp, storePath);
54
54
  try {
55
- await syncFs.promises.copyFile(storePath, `${storePath}.bak`);
55
+ await fs.promises.copyFile(storePath, `${storePath}.bak`);
56
56
  } catch {}
57
57
  }
58
58
 
@@ -4,7 +4,7 @@ import { parseSystemdShow } from "./systemd.js";
4
4
  import { existsSync } from "node:fs";
5
5
  import os from "node:os";
6
6
  import path from "node:path";
7
- import fs from "node:fs/promises";
7
+ import fs$1 from "node:fs/promises";
8
8
  import { spawn } from "node:child_process";
9
9
 
10
10
  //#region src/daemon/systemd-system.ts
@@ -26,7 +26,7 @@ function buildHostedSystemctlControlArgs(action) {
26
26
  }
27
27
  async function readHostedSystemdCommand(unitPath) {
28
28
  try {
29
- const content = await fs.readFile(unitPath, "utf8");
29
+ const content = await fs$1.readFile(unitPath, "utf8");
30
30
  let workingDirectory = "";
31
31
  let execStart = "";
32
32
  const environment = {};
@@ -150,7 +150,7 @@ function buildHostedSystemdUnit(params) {
150
150
  return lines.join("\n");
151
151
  }
152
152
  async function runHelper(unit, runAsUser) {
153
- await fs.access(INSTALL_HELPER);
153
+ await fs$1.access(INSTALL_HELPER);
154
154
  await new Promise((resolve, reject) => {
155
155
  const child = spawn("sudo", [
156
156
  "-n",
@@ -205,8 +205,8 @@ async function installHostedSystemdService(params) {
205
205
  `${SERVICE_NAME}.service`
206
206
  ]).catch(() => undefined);
207
207
  const userUnit = path.join(os.homedir(), ".config", "systemd", "user", `${SERVICE_NAME}.service`);
208
- await fs.rm(userUnit, { force: true }).catch(() => undefined);
209
- await fs.rm(`${userUnit}.d`, {
208
+ await fs$1.rm(userUnit, { force: true }).catch(() => undefined);
209
+ await fs$1.rm(`${userUnit}.d`, {
210
210
  recursive: true,
211
211
  force: true
212
212
  }).catch(() => undefined);
@@ -3,7 +3,7 @@ import { normalizeAccountId } from "../../routing/account-id.js";
3
3
  import { resolveAgentIdFromSessionKey } from "../../routing/session-key.js";
4
4
  import { loadJsonFile, saveJsonFile } from "../../infra/json-file.js";
5
5
  import { DEFAULT_THREAD_BINDING_IDLE_TIMEOUT_MS, DEFAULT_THREAD_BINDING_MAX_AGE_MS, RECENT_UNBOUND_WEBHOOK_ECHO_WINDOW_MS, THREAD_BINDINGS_VERSION } from "./thread-bindings.types.js";
6
- import syncFs from "node:fs";
6
+ import fs from "node:fs";
7
7
  import path from "node:path";
8
8
 
9
9
  //#region src/discord/monitor/thread-bindings.state.ts
@@ -320,7 +320,7 @@ function shouldPersistBindingMutations() {
320
320
  if (shouldPersistAnyBindingState()) {
321
321
  return true;
322
322
  }
323
- return syncFs.existsSync(resolveThreadBindingsPath());
323
+ return fs.existsSync(resolveThreadBindingsPath());
324
324
  }
325
325
  function saveBindingsToDisk(params = {}) {
326
326
  if (!params.force && !shouldPersistAnyBindingState()) {
@@ -1,6 +1,6 @@
1
1
  import { SAT_RUNTIME_DEFAULTS } from "../../../config/sat-runtime-ids.js";
2
2
  import "../../../plugin-sdk/sat-runtime.js";
3
- import syncFs from "node:fs";
3
+ import fs from "node:fs";
4
4
  import path from "node:path";
5
5
 
6
6
  //#region extensions/sat-mining/src/sat-bond-layout.ts
@@ -162,7 +162,7 @@ function resolveLayoutPath(env = process.env) {
162
162
  path.resolve(import.meta.dirname, "..", "..", "..", "..", "..", "token", "sat", "bond-api", "bond-position-layout.json")
163
163
  ];
164
164
  for (const candidate of candidates) {
165
- if (candidate && syncFs.existsSync(candidate)) {
165
+ if (candidate && fs.existsSync(candidate)) {
166
166
  return candidate;
167
167
  }
168
168
  }
@@ -178,7 +178,7 @@ function resolvePolicyLayoutPath(env = process.env) {
178
178
  path.resolve(import.meta.dirname, "..", "..", "..", "..", "..", "token", "sat", "bond-api", "bond-tier-policy-layout.json")
179
179
  ];
180
180
  for (const candidate of candidates) {
181
- if (candidate && syncFs.existsSync(candidate)) {
181
+ if (candidate && fs.existsSync(candidate)) {
182
182
  return candidate;
183
183
  }
184
184
  }
@@ -194,7 +194,7 @@ function resolveStakingDistributorLayoutPath(env = process.env) {
194
194
  path.resolve(import.meta.dirname, "..", "..", "..", "..", "..", "token", "sat", "bond-api", "bond-staking-distributor-layout.json")
195
195
  ];
196
196
  for (const candidate of candidates) {
197
- if (candidate && syncFs.existsSync(candidate)) {
197
+ if (candidate && fs.existsSync(candidate)) {
198
198
  return candidate;
199
199
  }
200
200
  }
@@ -210,7 +210,7 @@ function resolveStakingPositionLayoutPath(env = process.env) {
210
210
  path.resolve(import.meta.dirname, "..", "..", "..", "..", "..", "token", "sat", "bond-api", "bond-staking-position-layout.json")
211
211
  ];
212
212
  for (const candidate of candidates) {
213
- if (candidate && syncFs.existsSync(candidate)) {
213
+ if (candidate && fs.existsSync(candidate)) {
214
214
  return candidate;
215
215
  }
216
216
  }
@@ -224,7 +224,7 @@ function loadSatBondLayout(env = process.env) {
224
224
  }
225
225
  const layoutPath = resolveLayoutPath(env);
226
226
  if (layoutPath) {
227
- const loaded = JSON.parse(syncFs.readFileSync(layoutPath, "utf-8"));
227
+ const loaded = JSON.parse(fs.readFileSync(layoutPath, "utf-8"));
228
228
  cachedLayout = {
229
229
  mode,
230
230
  value: loaded
@@ -244,7 +244,7 @@ function loadSatBondPolicyLayout(env = process.env) {
244
244
  }
245
245
  const layoutPath = resolvePolicyLayoutPath(env);
246
246
  if (layoutPath) {
247
- cachedPolicyLayout = JSON.parse(syncFs.readFileSync(layoutPath, "utf-8"));
247
+ cachedPolicyLayout = JSON.parse(fs.readFileSync(layoutPath, "utf-8"));
248
248
  return cachedPolicyLayout;
249
249
  }
250
250
  cachedPolicyLayout = DEDICATED_FALLBACK_POLICY_LAYOUT;
@@ -257,7 +257,7 @@ function loadSatBondStakingDistributorLayout(env = process.env) {
257
257
  }
258
258
  const layoutPath = resolveStakingDistributorLayoutPath(env);
259
259
  if (layoutPath) {
260
- cachedStakingDistributorLayout = JSON.parse(syncFs.readFileSync(layoutPath, "utf-8"));
260
+ cachedStakingDistributorLayout = JSON.parse(fs.readFileSync(layoutPath, "utf-8"));
261
261
  return cachedStakingDistributorLayout;
262
262
  }
263
263
  cachedStakingDistributorLayout ??= DEDICATED_FALLBACK_STAKING_DISTRIBUTOR_LAYOUT;
@@ -270,7 +270,7 @@ function loadSatBondStakingPositionLayout(env = process.env) {
270
270
  }
271
271
  const layoutPath = resolveStakingPositionLayoutPath(env);
272
272
  if (layoutPath) {
273
- cachedStakingPositionLayout = JSON.parse(syncFs.readFileSync(layoutPath, "utf-8"));
273
+ cachedStakingPositionLayout = JSON.parse(fs.readFileSync(layoutPath, "utf-8"));
274
274
  return cachedStakingPositionLayout;
275
275
  }
276
276
  cachedStakingPositionLayout ??= DEDICATED_FALLBACK_STAKING_POSITION_LAYOUT;
@@ -2,7 +2,7 @@ import { openBoundaryFileSync } from "../infra/boundary-file-read.js";
2
2
  import { isWithinDir } from "../infra/path-safety.js";
3
3
  import { normalizeControlUiBasePath } from "./control-ui-shared.js";
4
4
  import { resolveControlUiRootSync } from "../infra/control-ui-assets.js";
5
- import syncFs from "node:fs";
5
+ import fs from "node:fs";
6
6
  import path from "node:path";
7
7
 
8
8
  //#region src/gateway/control-ui-boot-check.ts
@@ -189,7 +189,7 @@ function readControlUiBootAsset(params) {
189
189
  };
190
190
  }
191
191
  try {
192
- const body = syncFs.readFileSync(safeFile.fd);
192
+ const body = fs.readFileSync(safeFile.fd);
193
193
  return {
194
194
  check: {
195
195
  url: params.url,
@@ -200,7 +200,7 @@ function readControlUiBootAsset(params) {
200
200
  text: body.toString("utf8")
201
201
  };
202
202
  } finally {
203
- syncFs.closeSync(safeFile.fd);
203
+ fs.closeSync(safeFile.fd);
204
204
  }
205
205
  }
206
206
  function resolveBootCheckRoot(rootState) {
@@ -231,7 +231,7 @@ function resolveBootCheckRoot(rootState) {
231
231
  return {
232
232
  ok: true,
233
233
  root,
234
- rootReal: syncFs.realpathSync(root)
234
+ rootReal: fs.realpathSync(root)
235
235
  };
236
236
  } catch (error) {
237
237
  if (isExpectedSafePathError(error)) {
@@ -268,9 +268,9 @@ function resolveControlUiBootCheck(params) {
268
268
  }
269
269
  let html = "";
270
270
  try {
271
- html = syncFs.readFileSync(safeIndex.fd, "utf8");
271
+ html = fs.readFileSync(safeIndex.fd, "utf8");
272
272
  } finally {
273
- syncFs.closeSync(safeIndex.fd);
273
+ fs.closeSync(safeIndex.fd);
274
274
  }
275
275
  const entryJsUrl = extractHtmlScriptAssetUrls(html, indexUrl)[0] ?? null;
276
276
  const entry = entryJsUrl == null ? {