@rabbi696/ezrouter 0.6.15 → 0.6.16

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 (863) hide show
  1. package/README.md +72 -1
  2. package/app/.next-cli-build/BUILD_ID +1 -1
  3. package/app/.next-cli-build/app-path-routes-manifest.json +27 -27
  4. package/app/.next-cli-build/build-manifest.json +2 -2
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/convoy/page.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/convoy/page.js.nft.json +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/convoy/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/error-log/page.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/error-log/page.js.nft.json +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/error-log/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/keys/page.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/keys/page.js.nft.json +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/keys/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/page.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/page.js.nft.json +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/page_client-reference-manifest.js +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/servers/page.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/servers/page.js.nft.json +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/servers/page_client-reference-manifest.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +10 -6
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +3 -3
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  77. package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-health/page.js +1 -1
  78. package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-health/page.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-health/page_client-reference-manifest.js +1 -1
  80. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  81. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  83. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  84. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  85. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  86. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  87. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  89. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  90. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  91. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  92. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  94. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  95. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  96. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  97. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  98. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  99. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  100. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  101. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  102. package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
  103. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  105. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  106. package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  107. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  108. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  109. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
  110. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  111. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  112. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  113. package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  114. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  116. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  118. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  120. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  122. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
  124. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
  126. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +1 -1
  128. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js +1 -1
  130. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js +1 -1
  132. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  134. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/changelog/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/cli/providers/codex/route.js +1 -1
  137. package/app/.next-cli-build/server/app/api/cli/providers/codex/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +1 -1
  139. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  141. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  143. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js +1 -1
  147. package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/cli-tools/codex-native/models/route.js +1 -1
  149. package/app/.next-cli-build/server/app/api/cli-tools/codex-native/models/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/cli-tools/codex-native/readiness/route.js +1 -1
  151. package/app/.next-cli-build/server/app/api/cli-tools/codex-native/readiness/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +1 -1
  155. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  158. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  160. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js +1 -1
  162. package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +1 -1
  164. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js +1 -1
  168. package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +1 -1
  170. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js +1 -1
  175. package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  178. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +1 -1
  180. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js +1 -1
  182. package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  184. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/combos/[id]/test/route.js +1 -1
  186. package/app/.next-cli-build/server/app/api/combos/[id]/test/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/combos/export/route.js +1 -1
  188. package/app/.next-cli-build/server/app/api/combos/export/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/combos/import/route.js +1 -1
  190. package/app/.next-cli-build/server/app/api/combos/import/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/combos/presets/route.js +1 -1
  192. package/app/.next-cli-build/server/app/api/combos/presets/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  194. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/combos/test/route.js +1 -1
  196. package/app/.next-cli-build/server/app/api/combos/test/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/convoy/rules/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  199. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  201. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  203. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  205. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  207. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  209. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/internal/codex-native/lease/[action]/route.js +1 -1
  213. package/app/.next-cli-build/server/app/api/internal/codex-native/lease/[action]/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  215. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  217. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
  220. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +1 -1
  222. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/mcp-gateway/instances/[id]/route.js +1 -1
  224. package/app/.next-cli-build/server/app/api/mcp-gateway/instances/[id]/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/mcp-gateway/instances/[id]/test/route.js +1 -1
  226. package/app/.next-cli-build/server/app/api/mcp-gateway/instances/[id]/test/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/mcp-gateway/instances/route.js +1 -1
  228. package/app/.next-cli-build/server/app/api/mcp-gateway/instances/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/mcp-gateway/keys/[id]/route.js +1 -1
  230. package/app/.next-cli-build/server/app/api/mcp-gateway/keys/[id]/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/mcp-gateway/keys/route.js +1 -1
  232. package/app/.next-cli-build/server/app/api/mcp-gateway/keys/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/mcp-gateway/message/route.js +1 -1
  234. package/app/.next-cli-build/server/app/api/mcp-gateway/message/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/mcp-gateway/oauth/[id]/[action]/route.js +2 -2
  236. package/app/.next-cli-build/server/app/api/mcp-gateway/oauth/[id]/[action]/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/mcp-gateway/route.js +1 -1
  238. package/app/.next-cli-build/server/app/api/mcp-gateway/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/mcp-gateway/sse/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  241. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  243. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  245. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  246. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  247. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  248. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  250. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  252. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  255. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  257. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/models/enabled/route.js +1 -1
  259. package/app/.next-cli-build/server/app/api/models/enabled/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  261. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  262. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  263. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  265. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/oauth/callback/route.js.nft.json +1 -1
  267. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  268. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  269. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  270. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  271. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +1 -1
  272. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  273. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  274. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  275. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  276. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  277. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
  278. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  279. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  280. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  281. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  282. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  283. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  284. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  285. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  286. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  287. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  288. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  289. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  290. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  291. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  292. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js +1 -1
  293. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
  294. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
  295. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js.nft.json +1 -1
  296. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js.nft.json +1 -1
  297. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
  298. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js +1 -1
  299. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
  300. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  301. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  302. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  303. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  304. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  305. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  306. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  307. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  308. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  309. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  310. package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js +1 -1
  311. package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js.nft.json +1 -1
  312. package/app/.next-cli-build/server/app/api/providers/[id]/refresh-profile/route.js +1 -1
  313. package/app/.next-cli-build/server/app/api/providers/[id]/refresh-profile/route.js.nft.json +1 -1
  314. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  315. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  316. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  317. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  318. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  319. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  320. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  321. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  322. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  323. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  324. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  325. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  326. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  327. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  328. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  329. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  330. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  331. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  332. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  333. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  334. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +1 -1
  335. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  336. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +1 -1
  337. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  338. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  339. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  340. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +1 -1
  341. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  342. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  343. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  344. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  345. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  346. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js +1 -1
  347. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  348. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  349. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +1 -1
  350. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  351. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  352. package/app/.next-cli-build/server/app/api/routing-health/route.js +1 -1
  353. package/app/.next-cli-build/server/app/api/routing-health/route.js.nft.json +1 -1
  354. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  355. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  356. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  357. package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  358. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  359. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  360. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  361. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  362. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  363. package/app/.next-cli-build/server/app/api/token-saver/stats/route.js +1 -1
  364. package/app/.next-cli-build/server/app/api/token-saver/stats/route.js.nft.json +1 -1
  365. package/app/.next-cli-build/server/app/api/token-saver/stream/route.js +2 -2
  366. package/app/.next-cli-build/server/app/api/token-saver/stream/route.js.nft.json +1 -1
  367. package/app/.next-cli-build/server/app/api/tool-disclosure/stats/route.js.nft.json +1 -1
  368. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  369. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  370. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  371. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  372. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  373. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  374. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  375. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  376. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  377. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  378. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  379. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  380. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  381. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  382. package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  383. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  384. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  385. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  386. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  387. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  388. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  389. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  390. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +1 -1
  391. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  392. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
  393. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
  394. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  395. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  396. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  397. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  398. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  399. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  400. package/app/.next-cli-build/server/app/api/usage/error-logs/route.js.nft.json +1 -1
  401. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  402. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  403. package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  404. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  405. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  406. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  407. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  408. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  409. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  410. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  411. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  412. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  413. package/app/.next-cli-build/server/app/api/usage/stream/route.js +1 -1
  414. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  415. package/app/.next-cli-build/server/app/api/v1/alpha/search/route.js +1 -1
  416. package/app/.next-cli-build/server/app/api/v1/alpha/search/route.js.nft.json +1 -1
  417. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  418. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  419. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  420. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  421. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  422. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  423. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  424. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  425. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  426. package/app/.next-cli-build/server/app/api/v1/codex/alpha/search/route.js +1 -1
  427. package/app/.next-cli-build/server/app/api/v1/codex/alpha/search/route.js.nft.json +1 -1
  428. package/app/.next-cli-build/server/app/api/v1/codex/images/edits/route.js +1 -1
  429. package/app/.next-cli-build/server/app/api/v1/codex/images/edits/route.js.nft.json +1 -1
  430. package/app/.next-cli-build/server/app/api/v1/codex/images/generations/route.js +1 -1
  431. package/app/.next-cli-build/server/app/api/v1/codex/images/generations/route.js.nft.json +1 -1
  432. package/app/.next-cli-build/server/app/api/v1/codex/memories/trace_summarize/route.js +1 -1
  433. package/app/.next-cli-build/server/app/api/v1/codex/memories/trace_summarize/route.js.nft.json +1 -1
  434. package/app/.next-cli-build/server/app/api/v1/codex/models/route.js +1 -1
  435. package/app/.next-cli-build/server/app/api/v1/codex/models/route.js.nft.json +1 -1
  436. package/app/.next-cli-build/server/app/api/v1/codex/responses/compact/route.js +1 -1
  437. package/app/.next-cli-build/server/app/api/v1/codex/responses/compact/route.js.nft.json +1 -1
  438. package/app/.next-cli-build/server/app/api/v1/codex/responses/route.js +1 -1
  439. package/app/.next-cli-build/server/app/api/v1/codex/responses/route.js.nft.json +1 -1
  440. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  441. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  442. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +3 -3
  443. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  444. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  445. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  446. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  447. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js +1 -1
  448. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
  449. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  450. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  451. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  452. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  453. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  454. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  455. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  456. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  457. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  458. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  459. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  460. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  461. package/app/.next-cli-build/server/app/api/v1/systemone/route.js +1 -1
  462. package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
  463. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  464. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  465. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  466. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  467. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  468. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  469. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  470. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  471. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  472. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  473. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  474. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  475. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  476. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  477. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  478. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  479. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  480. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  481. package/app/.next-cli-build/server/app/callback/page.js +1 -1
  482. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  483. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  484. package/app/.next-cli-build/server/app/callback.html +1 -1
  485. package/app/.next-cli-build/server/app/callback.rsc +3 -3
  486. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  487. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  488. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  489. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  490. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  491. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  492. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  493. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  494. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  495. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  496. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  497. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  498. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  499. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  500. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  501. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  502. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  503. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  504. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  505. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  506. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  507. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  508. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  509. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  510. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  511. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  512. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  513. package/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  514. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  515. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  516. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  517. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  518. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  519. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  520. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  521. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  522. package/app/.next-cli-build/server/app/dashboard/convoy.html +1 -1
  523. package/app/.next-cli-build/server/app/dashboard/convoy.rsc +5 -5
  524. package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk/dashboard/convoy/__PAGE__.segment.rsc +2 -2
  525. package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk/dashboard/convoy.segment.rsc +1 -1
  526. package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  527. package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  528. package/app/.next-cli-build/server/app/dashboard/convoy.segments/_full.segment.rsc +5 -5
  529. package/app/.next-cli-build/server/app/dashboard/convoy.segments/_head.segment.rsc +1 -1
  530. package/app/.next-cli-build/server/app/dashboard/convoy.segments/_index.segment.rsc +3 -3
  531. package/app/.next-cli-build/server/app/dashboard/convoy.segments/_tree.segment.rsc +1 -1
  532. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  533. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  534. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  535. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  536. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  537. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  538. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  539. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  540. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  541. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  542. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.html +1 -1
  543. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.rsc +5 -5
  544. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/keys/__PAGE__.segment.rsc +2 -2
  545. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/keys.segment.rsc +1 -1
  546. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway.segment.rsc +1 -1
  547. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  548. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  549. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/_full.segment.rsc +5 -5
  550. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/_head.segment.rsc +1 -1
  551. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/_index.segment.rsc +3 -3
  552. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/_tree.segment.rsc +1 -1
  553. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.html +1 -1
  554. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.rsc +5 -5
  555. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/servers/__PAGE__.segment.rsc +2 -2
  556. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/servers.segment.rsc +1 -1
  557. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway.segment.rsc +1 -1
  558. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  559. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  560. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/_full.segment.rsc +5 -5
  561. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/_head.segment.rsc +1 -1
  562. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/_index.segment.rsc +3 -3
  563. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/_tree.segment.rsc +1 -1
  564. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.html +1 -1
  565. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.rsc +5 -5
  566. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/__PAGE__.segment.rsc +2 -2
  567. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway.segment.rsc +1 -1
  568. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  569. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  570. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/_full.segment.rsc +5 -5
  571. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/_head.segment.rsc +1 -1
  572. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/_index.segment.rsc +3 -3
  573. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/_tree.segment.rsc +1 -1
  574. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  575. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  576. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  577. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  578. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  579. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  580. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  581. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  582. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  583. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  584. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  585. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  586. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  587. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  588. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  589. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  590. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  591. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  592. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  593. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  594. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  595. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  596. package/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  597. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  598. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  599. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  600. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  601. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  602. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  603. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  604. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  605. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  606. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  607. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  608. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  609. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  610. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  611. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  612. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  613. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  614. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  615. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  616. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  617. package/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  618. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  619. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  620. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  621. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  622. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  623. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  624. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  625. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  626. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  627. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  628. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  629. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  630. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  631. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  632. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  633. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  634. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  635. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  636. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  637. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
  638. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  639. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  640. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  641. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  642. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
  643. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  644. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
  645. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  646. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  647. package/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  648. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  649. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  650. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  651. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  652. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  653. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  654. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  655. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  656. package/app/.next-cli-build/server/app/dashboard/routing-health.html +1 -1
  657. package/app/.next-cli-build/server/app/dashboard/routing-health.rsc +5 -5
  658. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk/dashboard/routing-health/__PAGE__.segment.rsc +2 -2
  659. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk/dashboard/routing-health.segment.rsc +1 -1
  660. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  661. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  662. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_full.segment.rsc +5 -5
  663. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_head.segment.rsc +1 -1
  664. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_index.segment.rsc +3 -3
  665. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_tree.segment.rsc +1 -1
  666. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
  667. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  668. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  669. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  670. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  671. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  672. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  673. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  674. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  675. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  676. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  677. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  678. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  679. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  680. package/app/.next-cli-build/server/app/dashboard/skills.rsc +5 -5
  681. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  682. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  683. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  684. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  685. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +5 -5
  686. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  687. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +3 -3
  688. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  689. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  690. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
  691. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  692. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  693. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  694. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  695. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
  696. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  697. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +3 -3
  698. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  699. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  700. package/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  701. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  702. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  703. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  704. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  705. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  706. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  707. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  708. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  709. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  710. package/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  711. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  712. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  713. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  714. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  715. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  716. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  717. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  718. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  719. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  720. package/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  721. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  722. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  723. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  724. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  725. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  726. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  727. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  728. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  729. package/app/.next-cli-build/server/app/index.html +1 -1
  730. package/app/.next-cli-build/server/app/index.rsc +3 -3
  731. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  732. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  733. package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  734. package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
  735. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  736. package/app/.next-cli-build/server/app/landing/page.js +1 -1
  737. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  738. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  739. package/app/.next-cli-build/server/app/landing.html +1 -1
  740. package/app/.next-cli-build/server/app/landing.rsc +3 -3
  741. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  742. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  743. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  744. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  745. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  746. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  747. package/app/.next-cli-build/server/app/login/page.js +1 -1
  748. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  749. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  750. package/app/.next-cli-build/server/app/login.html +1 -1
  751. package/app/.next-cli-build/server/app/login.rsc +4 -4
  752. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  753. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  754. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  755. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  756. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  757. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  758. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  759. package/app/.next-cli-build/server/app/page.js +1 -1
  760. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  761. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  762. package/app/.next-cli-build/server/app-paths-manifest.json +27 -27
  763. package/app/.next-cli-build/server/chunks/1253.js +1 -1
  764. package/app/.next-cli-build/server/chunks/1482.js +4 -2
  765. package/app/.next-cli-build/server/chunks/1531.js +1 -1
  766. package/app/.next-cli-build/server/chunks/1641.js +1 -0
  767. package/app/.next-cli-build/server/chunks/1733.js +1 -1
  768. package/app/.next-cli-build/server/chunks/1847.js +1 -1
  769. package/app/.next-cli-build/server/chunks/2269.js +1 -1
  770. package/app/.next-cli-build/server/chunks/2348.js +1 -1
  771. package/app/.next-cli-build/server/chunks/2898.js +1 -1
  772. package/app/.next-cli-build/server/chunks/3583.js +2 -2
  773. package/app/.next-cli-build/server/chunks/3593.js +2 -2
  774. package/app/.next-cli-build/server/chunks/369.js +22 -22
  775. package/app/.next-cli-build/server/chunks/3886.js +1 -1
  776. package/app/.next-cli-build/server/chunks/3912.js +1 -1
  777. package/app/.next-cli-build/server/chunks/3977.js +2 -2
  778. package/app/.next-cli-build/server/chunks/412.js +1 -1
  779. package/app/.next-cli-build/server/chunks/4378.js +3 -3
  780. package/app/.next-cli-build/server/chunks/4485.js +1 -1
  781. package/app/.next-cli-build/server/chunks/4574.js +1 -1
  782. package/app/.next-cli-build/server/chunks/4646.js +1 -1
  783. package/app/.next-cli-build/server/chunks/4704.js +2 -2
  784. package/app/.next-cli-build/server/chunks/4739.js +2 -2
  785. package/app/.next-cli-build/server/chunks/4768.js +1 -1
  786. package/app/.next-cli-build/server/chunks/4780.js +2 -2
  787. package/app/.next-cli-build/server/chunks/4803.js +2 -2
  788. package/app/.next-cli-build/server/chunks/4827.js +1 -1
  789. package/app/.next-cli-build/server/chunks/4878.js +1 -1
  790. package/app/.next-cli-build/server/chunks/5011.js +1 -1
  791. package/app/.next-cli-build/server/chunks/507.js +2 -2
  792. package/app/.next-cli-build/server/chunks/5130.js +1 -1
  793. package/app/.next-cli-build/server/chunks/{8421.js → 5251.js} +1 -1
  794. package/app/.next-cli-build/server/chunks/5258.js +2 -2
  795. package/app/.next-cli-build/server/chunks/5434.js +1 -1
  796. package/app/.next-cli-build/server/chunks/5460.js +40 -0
  797. package/app/.next-cli-build/server/chunks/5704.js +254 -0
  798. package/app/.next-cli-build/server/chunks/5872.js +1 -0
  799. package/app/.next-cli-build/server/chunks/5875.js +1 -1
  800. package/app/.next-cli-build/server/chunks/6252.js +2 -2
  801. package/app/.next-cli-build/server/chunks/6420.js +1 -1
  802. package/app/.next-cli-build/server/chunks/6670.js +2 -2
  803. package/app/.next-cli-build/server/chunks/6769.js +1 -0
  804. package/app/.next-cli-build/server/chunks/6799.js +2 -2
  805. package/app/.next-cli-build/server/chunks/698.js +2 -2
  806. package/app/.next-cli-build/server/chunks/7073.js +2 -2
  807. package/app/.next-cli-build/server/chunks/7218.js +1 -1
  808. package/app/.next-cli-build/server/chunks/7239.js +2 -2
  809. package/app/.next-cli-build/server/chunks/7362.js +1 -1
  810. package/app/.next-cli-build/server/chunks/7594.js +6 -6
  811. package/app/.next-cli-build/server/chunks/7663.js +1 -1
  812. package/app/.next-cli-build/server/chunks/7677.js +1 -1
  813. package/app/.next-cli-build/server/chunks/7775.js +1 -1
  814. package/app/.next-cli-build/server/chunks/7811.js +1 -0
  815. package/app/.next-cli-build/server/chunks/7965.js +2 -2
  816. package/app/.next-cli-build/server/chunks/8062.js +2 -2
  817. package/app/.next-cli-build/server/chunks/8129.js +1 -1
  818. package/app/.next-cli-build/server/chunks/8231.js +1 -1
  819. package/app/.next-cli-build/server/chunks/8243.js +5 -5
  820. package/app/.next-cli-build/server/chunks/8306.js +1 -1
  821. package/app/.next-cli-build/server/chunks/8469.js +2 -2
  822. package/app/.next-cli-build/server/chunks/8520.js +2 -2
  823. package/app/.next-cli-build/server/chunks/8644.js +1 -1
  824. package/app/.next-cli-build/server/chunks/8772.js +1 -1
  825. package/app/.next-cli-build/server/chunks/8976.js +1 -1
  826. package/app/.next-cli-build/server/chunks/9026.js +24 -24
  827. package/app/.next-cli-build/server/chunks/9062.js +1 -1
  828. package/app/.next-cli-build/server/chunks/9303.js +1 -1
  829. package/app/.next-cli-build/server/chunks/9485.js +1 -1
  830. package/app/.next-cli-build/server/chunks/9718.js +1 -1
  831. package/app/.next-cli-build/server/instrumentation.js +1 -1
  832. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  833. package/app/.next-cli-build/server/middleware.js +3 -3
  834. package/app/.next-cli-build/server/pages/404.html +1 -1
  835. package/app/.next-cli-build/server/pages/500.html +1 -1
  836. package/app/.next-cli-build/static/chunks/1321-73fdccd2b1bf151d.js +1 -0
  837. package/app/.next-cli-build/static/chunks/{5497-8766958582f95dc7.js → 5497-ff58e90f4053e184.js} +3 -3
  838. package/app/.next-cli-build/static/chunks/{6252-34f2d410651e1103.js → 6252-886aa8324e135e9c.js} +13 -13
  839. package/app/.next-cli-build/static/chunks/8105-9b41dc96e4b019cf.js +1 -0
  840. package/app/.next-cli-build/static/chunks/9227-4471c8f39a105c5f.js +5 -0
  841. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-89b4f70958736f2a.js → page-c35f746b4bd9fc90.js} +18 -14
  842. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-fa195b4f7348e2d6.js → page-0868ecc0d2f1bd04.js} +2 -2
  843. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/{page-a31d9ca05cc3d528.js → page-6cb070834a750fdd.js} +1 -1
  844. package/app/CHANGELOG.md +54 -32
  845. package/app/package.json +1 -1
  846. package/app/public/CHANGELOG.md +54 -32
  847. package/app/src/mitm/server.js +24 -24
  848. package/cli.js +71 -69
  849. package/package.json +1 -1
  850. package/src/cli/commands/connect.js +157 -15
  851. package/src/cli/commands/connectTools.js +222 -4
  852. package/src/cli/commands/show.js +101 -0
  853. package/src/cli/menus/providers.js +8 -0
  854. package/app/.next-cli-build/server/chunks/3252.js +0 -1
  855. package/app/.next-cli-build/server/chunks/3267.js +0 -40
  856. package/app/.next-cli-build/server/chunks/6707.js +0 -1
  857. package/app/.next-cli-build/server/chunks/8450.js +0 -254
  858. package/app/.next-cli-build/server/chunks/9143.js +0 -1
  859. package/app/.next-cli-build/static/chunks/1321-043afc56cba448b8.js +0 -1
  860. package/app/.next-cli-build/static/chunks/8105-9dfc2c5ffef6e778.js +0 -1
  861. package/app/.next-cli-build/static/chunks/9227-af65f6ac1fca28c9.js +0 -3
  862. /package/app/.next-cli-build/static/{zQapcWqcr7oLVi5jh7t01 → Y5Sk8uSUyB0vJ-ZgW1X1U}/_buildManifest.js +0 -0
  863. /package/app/.next-cli-build/static/{zQapcWqcr7oLVi5jh7t01 → Y5Sk8uSUyB0vJ-ZgW1X1U}/_ssgManifest.js +0 -0
@@ -4,6 +4,8 @@
4
4
  * tool configured here looks identical to one applied from the dashboard.
5
5
  *
6
6
  * Each tool: { id, name, paths(), apply(ctx) → string[] written, reset() → string[] touched }
7
+ * Optional: route + serverModel(data) to inherit the server's model; needsModel: false
8
+ * for tools that discover models themselves (omp).
7
9
  * ctx: { baseUrl (origin, no /v1), apiKey, model, claudeModels: { envKey: model } }
8
10
  */
9
11
 
@@ -13,6 +15,7 @@ const os = require("os");
13
15
 
14
16
  const home = () => os.homedir();
15
17
  const v1 = (baseUrl) => (baseUrl.endsWith("/v1") ? baseUrl : `${baseUrl}/v1`);
18
+ const isStr = (v) => typeof v === "string" && v.length > 0;
16
19
 
17
20
  // Drop trailing commas (JSONC) outside string literals, so values like "a,}" survive.
18
21
  function stripTrailingCommas(text) {
@@ -50,7 +53,7 @@ function writeFile(file, content) {
50
53
 
51
54
  const writeJson = (file, data) => writeFile(file, JSON.stringify(data, null, 2));
52
55
 
53
- // confbox is ESM-only; loaded lazily so non-codex runs don't need it.
56
+ // confbox (TOML/YAML) is ESM-only; loaded lazily so other tools don't need it.
54
57
  async function toml() {
55
58
  return import("confbox");
56
59
  }
@@ -73,10 +76,23 @@ const claude = {
73
76
  const file = claudePath();
74
77
  const cur = readJson(file) || {};
75
78
  cur.hasCompletedOnboarding = true;
76
- cur.env = { ...(cur.env || {}), ANTHROPIC_BASE_URL: v1(baseUrl), ANTHROPIC_AUTH_TOKEN: apiKey, ...claudeModels };
79
+ cur.env = { ...(cur.env || {}), ANTHROPIC_BASE_URL: v1(baseUrl), ANTHROPIC_AUTH_TOKEN: apiKey };
80
+ // A tier with no model (null) is removed so Claude Code uses its own default
81
+ // instead of a stale value from an earlier run.
82
+ for (const m of CLAUDE_MODELS) {
83
+ if (claudeModels[m.envKey]) cur.env[m.envKey] = claudeModels[m.envKey];
84
+ else delete cur.env[m.envKey];
85
+ }
77
86
  writeJson(file, cur);
78
87
  return [file];
79
88
  },
89
+ async show() {
90
+ const env = readJson(claudePath())?.env || {};
91
+ const models = {};
92
+ if (isStr(env.ANTHROPIC_MODEL)) models.main = env.ANTHROPIC_MODEL;
93
+ for (const m of CLAUDE_MODELS) if (isStr(env[m.envKey])) models[m.flag] = env[m.envKey];
94
+ return { baseUrl: env.ANTHROPIC_BASE_URL, apiKey: env.ANTHROPIC_AUTH_TOKEN, models };
95
+ },
80
96
  async reset() {
81
97
  const file = claudePath();
82
98
  const cur = readJson(file);
@@ -97,6 +113,14 @@ const codex = {
97
113
  id: "codex",
98
114
  name: "OpenAI Codex CLI",
99
115
  paths: () => [codexPath()],
116
+ route: "codex-settings",
117
+ // GET returns raw TOML text; only trust `model` when the provider is 9router.
118
+ async serverModel(data) {
119
+ if (!isStr(data?.config)) return null;
120
+ const { parseTOML } = await toml();
121
+ const cfg = parseTOML(data.config) || {};
122
+ return cfg.model_provider === "9router" && isStr(cfg.model) ? cfg.model : null;
123
+ },
100
124
  async apply({ baseUrl, apiKey, model }) {
101
125
  const { parseTOML, stringifyTOML } = await toml();
102
126
  const file = codexPath();
@@ -118,6 +142,28 @@ const codex = {
118
142
  writeFile(file, stringifyTOML(cfg));
119
143
  return [file];
120
144
  },
145
+ async show() {
146
+ let cfg;
147
+ try {
148
+ const { parseTOML } = await toml();
149
+ cfg = parseTOML(fs.readFileSync(codexPath(), "utf8")) || {};
150
+ } catch (err) {
151
+ if (err.code === "ENOENT") return {};
152
+ throw new Error(`Cannot parse ${codexPath()}: ${err.message}`);
153
+ }
154
+ const p = cfg.model_providers?.["9router"];
155
+ const auth = p?.http_headers?.Authorization;
156
+ return {
157
+ baseUrl: p?.base_url,
158
+ apiKey: isStr(auth) ? auth.replace(/^Bearer\s+/i, "") : undefined,
159
+ models: {
160
+ ...(isStr(cfg.model) ? { main: cfg.model } : {}),
161
+ ...(isStr(cfg.agents?.default_subagent_model) ? { subagent: cfg.agents.default_subagent_model } : {}),
162
+ },
163
+ // Codex only routes through 9router when this provider is the active one.
164
+ active: cfg.model_provider === "9router",
165
+ };
166
+ },
121
167
  async reset() {
122
168
  const { parseTOML, stringifyTOML } = await toml();
123
169
  const file = codexPath();
@@ -141,6 +187,11 @@ const opencode = {
141
187
  id: "opencode",
142
188
  name: "OpenCode",
143
189
  paths: () => [opencodePath()],
190
+ route: "opencode-settings",
191
+ serverModel(data) {
192
+ const m = data?.config?.model;
193
+ return isStr(m) && m.startsWith("9router/") ? m.slice("9router/".length) : null;
194
+ },
144
195
  async apply({ baseUrl, apiKey, model }) {
145
196
  const file = opencodePath();
146
197
  const cfg = readJson(file) || {};
@@ -160,6 +211,16 @@ const opencode = {
160
211
  writeJson(file, cfg);
161
212
  return [file];
162
213
  },
214
+ async show() {
215
+ const cfg = readJson(opencodePath()) || {};
216
+ const p = cfg.provider?.["9router"];
217
+ const models = {};
218
+ if (isStr(cfg.model)) models.main = cfg.model;
219
+ if (isStr(cfg.agent?.explorer?.model)) models.explorer = cfg.agent.explorer.model;
220
+ const listed = Object.keys(p?.models || {});
221
+ if (listed.length) models.available = listed.join(", ");
222
+ return { baseUrl: p?.options?.baseURL, apiKey: p?.options?.apiKey, models, active: !!cfg.model?.startsWith("9router/") };
223
+ },
163
224
  async reset() {
164
225
  const file = opencodePath();
165
226
  const cfg = readJson(file);
@@ -183,6 +244,11 @@ const droid = {
183
244
  id: "droid",
184
245
  name: "Factory Droid",
185
246
  paths: () => [droidPath()],
247
+ route: "droid-settings",
248
+ serverModel(data) {
249
+ const m = (data?.settings?.customModels || []).find(isDroid9r)?.model;
250
+ return isStr(m) ? m : null;
251
+ },
186
252
  async apply({ baseUrl, apiKey, model }) {
187
253
  const file = droidPath();
188
254
  const cfg = readJson(file) || {};
@@ -205,6 +271,14 @@ const droid = {
205
271
  writeJson(file, cfg);
206
272
  return [file];
207
273
  },
274
+ async show() {
275
+ const ours = (readJson(droidPath())?.customModels || []).filter(isDroid9r);
276
+ return {
277
+ baseUrl: ours[0]?.baseUrl,
278
+ apiKey: ours[0]?.apiKey,
279
+ models: ours.length ? { main: ours[0].model, ...(ours.length > 1 ? { available: ours.map((m) => m.model).join(", ") } : {}) } : {},
280
+ };
281
+ },
208
282
  async reset() {
209
283
  const file = droidPath();
210
284
  const cfg = readJson(file);
@@ -225,6 +299,11 @@ const crush = {
225
299
  id: "crush",
226
300
  name: "Crush",
227
301
  paths: () => [crushPath()],
302
+ route: "crush-settings",
303
+ serverModel(data) {
304
+ const m = data?.config?.providers?.["9router"]?.models?.[0]?.id;
305
+ return isStr(m) ? m : null;
306
+ },
228
307
  async apply({ baseUrl, apiKey, model }) {
229
308
  const file = crushPath();
230
309
  const cfg = readJson(file) || {};
@@ -238,6 +317,11 @@ const crush = {
238
317
  writeJson(file, cfg);
239
318
  return [file];
240
319
  },
320
+ async show() {
321
+ const p = readJson(crushPath())?.providers?.["9router"];
322
+ const ids = (p?.models || []).map((m) => m.id).filter(isStr);
323
+ return { baseUrl: p?.base_url, apiKey: p?.api_key, models: ids.length ? { main: ids[0] } : {} };
324
+ },
241
325
  async reset() {
242
326
  const file = crushPath();
243
327
  const cfg = readJson(file);
@@ -263,6 +347,10 @@ const kilo = {
263
347
  writeJson(file, auth);
264
348
  return [file];
265
349
  },
350
+ async show() {
351
+ const a = readJson(kiloPath())?.["openai-compatible"];
352
+ return { baseUrl: a?.baseUrl, apiKey: a?.apiKey, models: isStr(a?.model) ? { main: a.model } : {} };
353
+ },
266
354
  async reset() {
267
355
  const file = kiloPath();
268
356
  const auth = readJson(file);
@@ -283,6 +371,11 @@ const cline = {
283
371
  id: "cline",
284
372
  name: "Cline CLI",
285
373
  paths: () => [clineState(), clineSecrets()],
374
+ route: "cline-settings",
375
+ serverModel(data) {
376
+ const st = data?.settings;
377
+ return st?.actModeApiProvider === "openai" && isStr(st.openAiModelId) ? st.openAiModelId : null;
378
+ },
286
379
  async apply({ baseUrl, apiKey, model }) {
287
380
  const state = readJson(clineState()) || {};
288
381
  state.actModeApiProvider = "openai";
@@ -296,6 +389,18 @@ const cline = {
296
389
  writeJson(clineSecrets(), secrets);
297
390
  return [clineState(), clineSecrets()];
298
391
  },
392
+ async show() {
393
+ const st = readJson(clineState()) || {};
394
+ const models = {};
395
+ if (isStr(st.openAiModelId)) models.act = st.openAiModelId;
396
+ if (isStr(st.planModeOpenAiModelId)) models.plan = st.planModeOpenAiModelId;
397
+ return {
398
+ baseUrl: st.openAiBaseUrl,
399
+ apiKey: readJson(clineSecrets())?.openAiApiKey,
400
+ models,
401
+ active: st.actModeApiProvider === "openai",
402
+ };
403
+ },
299
404
  async reset() {
300
405
  const state = readJson(clineState());
301
406
  if (!state) return [];
@@ -318,9 +423,122 @@ const cline = {
318
423
  },
319
424
  };
320
425
 
321
- const TOOLS = [claude, codex, opencode, droid, crush, kilo, cline];
426
+ // ── Pi (pi-coding-agent) ────────────────────────────────────────────────────
427
+ // Prefers ~/.pi/agent/models.json; an existing legacy ~/.pi/models.json is used instead.
428
+ const piPath = () => {
429
+ const agent = path.join(home(), ".pi", "agent", "models.json");
430
+ const root = path.join(home(), ".pi", "models.json");
431
+ return !fs.existsSync(agent) && fs.existsSync(root) ? root : agent;
432
+ };
433
+
434
+ const pi = {
435
+ id: "pi",
436
+ name: "Pi",
437
+ paths: () => [piPath()],
438
+ route: "pi-settings",
439
+ serverModel(data) {
440
+ const m = data?.config?.providers?.["9router"]?.models?.[0];
441
+ const id = typeof m === "string" ? m : m?.id;
442
+ return isStr(id) ? id : null;
443
+ },
444
+ async apply({ baseUrl, apiKey, model }) {
445
+ const file = piPath();
446
+ const cfg = readJson(file) || {};
447
+ cfg.providers = cfg.providers || {};
448
+ cfg.providers["9router"] = {
449
+ ...(cfg.providers["9router"] || {}),
450
+ baseUrl: v1(baseUrl),
451
+ apiKey,
452
+ api: "openai-completions",
453
+ models: [{ id: model, name: model, contextWindow: 128000, maxTokens: 16384 }],
454
+ };
455
+ writeJson(file, cfg);
456
+ return [file];
457
+ },
458
+ async show() {
459
+ const p = readJson(piPath())?.providers?.["9router"];
460
+ const ids = (p?.models || []).map((m) => (typeof m === "string" ? m : m?.id)).filter(isStr);
461
+ return {
462
+ baseUrl: p?.baseUrl,
463
+ apiKey: p?.apiKey,
464
+ models: ids.length ? { main: ids[0], ...(ids.length > 1 ? { available: ids.join(", ") } : {}) } : {},
465
+ };
466
+ },
467
+ async reset() {
468
+ const file = piPath();
469
+ const cfg = readJson(file);
470
+ if (!cfg?.providers?.["9router"]) return [];
471
+ delete cfg.providers["9router"];
472
+ if (Object.keys(cfg.providers).length === 0) delete cfg.providers;
473
+ rewriteFile(file, JSON.stringify(cfg, null, 2));
474
+ return [file];
475
+ },
476
+ };
477
+
478
+ // ── Oh My Pi ────────────────────────────────────────────────────────────────
479
+ // Proxy discovery lists every server model under /model, so no model is written.
480
+ // The dashboard also mirrors the key into agent.db; models.yml is the primary
481
+ // source, so that best-effort sqlite write is skipped here.
482
+ const ompPath = () => path.join(home(), ".omp", "agent", "models.yml");
483
+
484
+ async function readYaml(file) {
485
+ let text;
486
+ try { text = fs.readFileSync(file, "utf8"); } catch (err) { if (err.code === "ENOENT") return null; throw err; }
487
+ try {
488
+ const { parseYAML } = await toml();
489
+ return parseYAML(text) || {};
490
+ } catch (err) {
491
+ throw new Error(`Cannot parse ${file}: ${err.message}`);
492
+ }
493
+ }
494
+
495
+ const omp = {
496
+ id: "omp",
497
+ name: "Oh My Pi",
498
+ paths: () => [ompPath()],
499
+ needsModel: false,
500
+ async apply({ baseUrl, apiKey }) {
501
+ const { stringifyYAML } = await toml();
502
+ const file = ompPath();
503
+ const cfg = (await readYaml(file)) || {};
504
+ cfg.providers = cfg.providers || {};
505
+ cfg.providers["9router"] = {
506
+ baseUrl: v1(baseUrl),
507
+ apiKey,
508
+ api: "openai-completions",
509
+ authHeader: true,
510
+ disableStrictTools: true,
511
+ discovery: { type: "proxy" },
512
+ };
513
+ writeFile(file, stringifyYAML(cfg));
514
+ return [file];
515
+ },
516
+ async show() {
517
+ const p = (await readYaml(ompPath()))?.providers?.["9router"];
518
+ return {
519
+ baseUrl: p?.baseUrl,
520
+ apiKey: p?.apiKey,
521
+ models: p?.discovery?.type === "proxy" ? { main: "(all server models, via discovery)" } : {},
522
+ };
523
+ },
524
+ async reset() {
525
+ const { stringifyYAML } = await toml();
526
+ const file = ompPath();
527
+ const cfg = await readYaml(file);
528
+ if (!cfg?.providers?.["9router"]) return [];
529
+ delete cfg.providers["9router"];
530
+ if (Object.keys(cfg.providers).length === 0) delete cfg.providers;
531
+ rewriteFile(file, Object.keys(cfg).length ? stringifyYAML(cfg) : "");
532
+ return [file];
533
+ },
534
+ };
535
+
536
+ const TOOLS = [claude, codex, opencode, droid, crush, kilo, cline, pi, omp];
322
537
  const TOOL_IDS = TOOLS.map((t) => t.id);
323
- const TOOL_ALIASES = { "claude-code": "claude", "claudecode": "claude", "factory": "droid", "kilocode": "kilo" };
538
+ const TOOL_ALIASES = {
539
+ "claude-code": "claude", "claudecode": "claude", "factory": "droid", "kilocode": "kilo",
540
+ "pi-coding-agent": "pi", "oh-my-pi": "omp",
541
+ };
324
542
 
325
543
  function resolveTools(list) {
326
544
  const ids = new Set();
@@ -0,0 +1,101 @@
1
+ /**
2
+ * `9router show [tools…]` — print the 9router settings currently written in
3
+ * each CLI tool's LOCAL config: base URL, (masked) API key and models.
4
+ *
5
+ * Read-only and offline: never contacts a server and never prints a full key.
6
+ */
7
+
8
+ const { TOOLS, TOOL_IDS, resolveTools } = require("./connectTools");
9
+ const { __test__: { maskKey } } = require("./connect");
10
+
11
+ const HELP = `
12
+ Usage: ezrouter show [tool…] [options]
13
+
14
+ Show the EzRouter settings each CLI tool on THIS machine is currently using.
15
+ Read-only: reads local config files, contacts no server.
16
+
17
+ ezrouter show # every supported tool
18
+ ezrouter show claude # one tool
19
+ ezrouter show claude codex # several (or: --tools claude,codex)
20
+
21
+ Tools: ${TOOL_IDS.join(", ")}, all
22
+
23
+ Options:
24
+ --tools <list> Comma-separated tools (same as positional names)
25
+ --json Machine-readable output (API key still masked)
26
+ -h, --help Show this help
27
+ `;
28
+
29
+ function parseArgs(argv) {
30
+ const opts = { tools: [] };
31
+ for (let i = 0; i < argv.length; i++) {
32
+ const a = argv[i];
33
+ if (a === "--tools") {
34
+ const v = argv[++i];
35
+ if (v === undefined) throw new Error("Missing value for --tools");
36
+ opts.tools.push(...v.split(","));
37
+ } else if (a === "--json") opts.json = true;
38
+ else if (a === "-h" || a === "--help") opts.help = true;
39
+ else if (!a.startsWith("-")) opts.tools.push(a);
40
+ else throw new Error(`Unknown option: ${a}`);
41
+ }
42
+ return opts;
43
+ }
44
+
45
+ // Normalise one tool's show() output into a printable, key-safe record.
46
+ async function inspect(tool) {
47
+ const record = { id: tool.id, name: tool.name, files: tool.paths() };
48
+ try {
49
+ const s = await tool.show();
50
+ record.configured = !!(s.baseUrl || s.apiKey || Object.keys(s.models || {}).length);
51
+ record.baseUrl = s.baseUrl || null;
52
+ record.apiKey = s.apiKey ? maskKey(s.apiKey) : null;
53
+ record.models = s.models || {};
54
+ // `active` is only reported by tools where 9router can be present but not selected.
55
+ if (typeof s.active === "boolean") record.active = s.active;
56
+ } catch (err) {
57
+ record.error = err.message;
58
+ }
59
+ return record;
60
+ }
61
+
62
+ function printRecord(r) {
63
+ if (r.error) {
64
+ console.log(`❌ ${r.name}: ${r.error}`);
65
+ return;
66
+ }
67
+ if (!r.configured) {
68
+ console.log(`• ${r.name}: not configured for EzRouter (${r.files[0]})`);
69
+ return;
70
+ }
71
+ const inactive = r.active === false ? " \x1b[33m(EzRouter present but not the active provider)\x1b[0m" : "";
72
+ console.log(`✅ ${r.name}${inactive}`);
73
+ console.log(` File: ${r.files.join(", ")}`);
74
+ console.log(` Base URL: ${r.baseUrl || "(none)"}`);
75
+ console.log(` API key: ${r.apiKey || "(none)"}`);
76
+ const entries = Object.entries(r.models);
77
+ if (!entries.length) console.log(" Models: (none set — the tool's own default applies)");
78
+ else {
79
+ const width = Math.max(...entries.map(([k]) => k.length));
80
+ console.log(" Models:");
81
+ for (const [k, v] of entries) console.log(` ${k.padEnd(width)} ${v}`);
82
+ }
83
+ }
84
+
85
+ async function run(argv) {
86
+ const opts = parseArgs(argv);
87
+ if (opts.help) {
88
+ console.log(HELP);
89
+ return 0;
90
+ }
91
+ const tools = opts.tools.length ? resolveTools(opts.tools) : TOOLS;
92
+ const records = [];
93
+ for (const t of tools) records.push(await inspect(t));
94
+
95
+ if (opts.json) console.log(JSON.stringify(records, null, 2));
96
+ else records.forEach((r, i) => { if (i) console.log(""); printRecord(r); });
97
+
98
+ return records.some((r) => r.error) ? 1 : 0;
99
+ }
100
+
101
+ module.exports = { run, __test__: { parseArgs, inspect } };
@@ -68,6 +68,14 @@ ag: [
68
68
  { id: "gemini-3.5-flash-extra-low" },
69
69
  { id: "gemini-pro-agent" },
70
70
  { id: "gemini-3.1-pro-low" },
71
+ { id: "claude-sonnet-5-5" },
72
+ { id: "claude-sonnet-5-5-low" },
73
+ { id: "claude-sonnet-5-5-medium" },
74
+ { id: "claude-sonnet-5-5-high" },
75
+ { id: "claude-opus-5-5" },
76
+ { id: "claude-opus-5-5-low" },
77
+ { id: "claude-opus-5-5-medium" },
78
+ { id: "claude-opus-5-5-high" },
71
79
  { id: "claude-sonnet-4-6" },
72
80
  { id: "claude-opus-4-6-thinking" },
73
81
  { id: "gpt-oss-120b-medium" },
@@ -1 +0,0 @@
1
- "use strict";exports.id=3252,exports.ids=[3252],exports.modules={2364:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>R,OPTIONS:()=>Q,buildModelsList:()=>N,fetchCompatibleModelIds:()=>J,getCachedModelsList:()=>P,getModelListPolicy:()=>T});var d=c(81329),e=c(40615),f=c(89718),g=c(23433),h=c(99471);c(38775);var i=c(16655),j=c(74452),k=c(50287),l=c(72162),m=c(58569),n=c(86925),o=c(9155),p=c(89843),q=c(28730),r=c(85640),s=c(11847);let t=new Map;async function u(a,b){let c=new AbortController,d=setTimeout(()=>c.abort(),1e4);try{let d=await (0,p.proxyAwareFetch)("https://api.githubcopilot.com/models",{method:"GET",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json","Copilot-Integration-Id":"vscode-chat","editor-version":`vscode/${q.x0.VSCODE_VERSION}`,"editor-plugin-version":`copilot-chat/${q.x0.COPILOT_CHAT_VERSION}`,"user-agent":q.x0.USER_AGENT,"x-github-api-version":q.x0.API_VERSION},cache:"no-store",signal:b||c.signal});if(!d.ok){let a=Error(`Copilot /models returned ${d.status}`);throw a.status=d.status,a}let e=await d.json();return Array.isArray(e?.data)?e.data:[]}finally{clearTimeout(d)}}async function v(a,b={}){let c,d=a?.providerSpecificData?.copilotToken||a?.accessToken;if(!d)return b.log?.debug?.("COPILOT_MODELS","No copilotToken/accessToken; skipping live fetch"),null;let e=a?.providerSpecificData?.copilotToken||a?.accessToken||"copilot-anonymous",f=Date.now();if(!b.forceRefresh){let a=t.get(e);if(a&&a.expiresAt>f)return{models:a.models}}try{c=await u(d,b.signal)}catch(d){if(!d||401!==d.status&&403!==d.status||!a.accessToken)return b.log?.warn?.("COPILOT_MODELS",`Live model fetch failed: ${d?.message||d}`),null;{b.log?.info?.("COPILOT_MODELS",`Got ${d.status}; refreshing Copilot token`);let e=await (0,r.jR)(a.accessToken);if(!e?.token)return b.log?.warn?.("COPILOT_MODELS","Token refresh did not return a token"),null;if("function"==typeof b.onCredentialsRefreshed)try{await b.onCredentialsRefreshed({copilotToken:e.token,copilotTokenExpiresAt:e.expiresAt})}catch(a){b.log?.warn?.("COPILOT_MODELS",`onCredentialsRefreshed failed: ${a?.message||a}`)}try{c=await u(e.token,b.signal)}catch(a){return b.log?.warn?.("COPILOT_MODELS",`Retry after refresh failed: ${a?.message||a}`),null}}}let g=function(a){let b=new Set(["auto"]),c=[{id:"auto",name:"Auto"}];for(let d of a){if(!d||"object"!=typeof d||d.capabilities?.type!=="chat"||d.policy&&"enabled"!==d.policy.state)continue;let a=d.id;if(!a||b.has(a))continue;b.add(a);let e=d.capabilities||{},f=e.limits||{},g=e.supports||{},h={...(0,s.getCapabilitiesForModel)("github",a),...Number.isFinite(f.max_context_window_tokens)?{contextWindow:f.max_context_window_tokens}:{},...Number.isFinite(f.max_prompt_tokens)?{maxPrompt:f.max_prompt_tokens}:{},...Number.isFinite(f.max_output_tokens)?{maxOutput:f.max_output_tokens}:{},..."boolean"==typeof g.vision?{vision:g.vision}:{},..."boolean"==typeof g.tool_calls?{tools:g.tool_calls}:{},...!0===g.adaptive_thinking||Array.isArray(g.reasoning_effort)?{reasoning:!0}:{}};c.push({id:a,name:d.name||a,capabilities:h})}return c}(c);return g.length?(t.set(e,{expiresAt:f+3e5,models:g}),{models:g}):null}var w=c(40694),x=c(63123),y=c(26588);c(49934);var z=c(17218),A=c(67828),B=c(39326);async function C(a,b){let c=await (0,o.EV)({provider:b,accessToken:a.accessToken,apiKey:a.apiKey,refreshToken:a.refreshToken,email:a.email,displayName:a.displayName,providerSpecificData:a.providerSpecificData||{}}),d=(0,o.So)(c);return d.length?{models:d.map(a=>({id:a.id,name:a.name}))}:null}let D={...Object.fromEntries(Object.entries(d.Xg).map(([a,b])=>[b,a])),...e.js};function E(a){let b=a.indexOf("/");if(b<=0)return null;let c=a.slice(0,b);return(0,s.getCapabilitiesForModel)(D[c]||c,a.slice(b+1))}let F={kiro:async a=>{let b=await (0,m.cW)({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null},qoder:async a=>C(a,"qoder"),"qoder-cn":async a=>C(a,"qoder-cn"),kimchi:async a=>{let b=await (0,n.av)({accessToken:a.accessToken,apiKey:a.apiKey,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null},github:async a=>{let b=await v({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console,onCredentialsRefreshed:async b=>{await (0,A.vN)(a.id,{copilotToken:b.copilotToken,copilotTokenExpiresAt:b.copilotTokenExpiresAt,existingProviderSpecificData:a.providerSpecificData||{}})}});return b?.models?.length?{models:b.models}:null},clinepass:async a=>{let b=await (0,w.P)({accessToken:a.accessToken,apiKey:a.apiKey});return b?.models?.length?{models:b.models}:null},cline:async a=>{let b=await (0,w.M)({accessToken:a.accessToken,apiKey:a.apiKey});return b?.models?.length?{models:b.models}:null},"grok-cli":async a=>{let b=await (0,B.B)(a.providerSpecificData||{}),c=await (0,x.M)({...a,connectionId:a.id},{log:console,proxyOptions:{connectionProxyEnabled:!0===b.connectionProxyEnabled,connectionProxyUrl:b.connectionProxyUrl||"",connectionNoProxy:b.connectionNoProxy||"",vercelRelayUrl:b.vercelRelayUrl||"",strictProxy:!0===b.strictProxy},onCredentialsRefreshed:async b=>{await (0,A.vN)(a.id,{...b,existingProviderSpecificData:a.providerSpecificData||{}})}});return c?.models?.length?{models:c.models}:null},cursor:async a=>{let b=await (0,y.FD)({accessToken:a.accessToken,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null}},G="x-9r-internal-models-fetch",H={image:"image",tts:"tts",embedding:"embedding",stt:"stt",imageToText:"imageToText",video:"video"};function I(a){let b=a?.kind||a?.type;return b&&H[b]||"llm"}async function J(a){if(!a?.apiKey)return[];let b="string"==typeof a?.providerSpecificData?.baseUrl?a.providerSpecificData.baseUrl.trim().replace(/\/$/,""):"";if(!b)return[];let c=`${b}/models`,d={"Content-Type":"application/json"};if((0,e.mq)(a.provider))d.Authorization=`Bearer ${a.apiKey}`;else{if(!(0,e.gb)(a.provider))return[];c.endsWith("/messages/models")?c=c.slice(0,-9):c.endsWith("/messages")&&(c=`${c.slice(0,-9)}/models`),d["x-api-key"]=a.apiKey,d["anthropic-version"]="2023-06-01",d.Authorization=`Bearer ${a.apiKey}`}try{var f;let a=new AbortController,b=setTimeout(()=>a.abort(),5e3),e=await fetch(c,{method:"GET",headers:{...d,[G]:"1"},cache:"no-store",signal:a.signal});if(clearTimeout(b),!e.ok)return[];let g=(f=await e.json(),Array.isArray(f)?f:f?.data||f?.models||f?.results||[]);return Array.from(new Set(g.map(a=>a?.id||a?.name||a?.model).filter(a=>"string"==typeof a&&""!==a.trim())))}catch{return[]}}function K(a,b){let c=e.AI_PROVIDERS[a],d=Array.isArray(c?.serviceKinds)&&c.serviceKinds.length>0?c.serviceKinds:["llm"];return b.some(a=>d.includes(a))}function L(a,b){let c=a?.kind||"llm";return b.includes(c)}function M(a,b,c){let d={id:a.name,object:"model",owned_by:"combo"};if("webSearch"===a.kind||"webFetch"===a.kind)d.kind=a.kind;else{let e=(0,s.aggregateComboCapabilities)(a.models,b,E);e&&(d.capabilities=e);let{contextWindow:f,maxOutput:g}=function a(b,c,d=new Set){let e="string"==typeof b?.name?b.name:null;if(e){if(d.has(e))return{contextWindow:void 0,maxOutput:void 0};d.add(e)}let f=1/0,g=1/0;try{for(let e of Array.isArray(b?.models)?b.models:[]){if("string"!=typeof e)continue;if(0>=e.indexOf("/")){let b=c.get(e);if(b){let e=a(b,c,d);Number.isFinite(e.contextWindow)&&(f=Math.min(f,e.contextWindow)),Number.isFinite(e.maxOutput)&&(g=Math.min(g,e.maxOutput));continue}}let b=E(e)||(0,s.getCapabilitiesForModel)(null,e);Number.isFinite(b?.contextWindow)&&(f=Math.min(f,b.contextWindow)),Number.isFinite(b?.maxOutput)&&(g=Math.min(g,b.maxOutput))}}finally{e&&d.delete(e)}return{contextWindow:Number.isFinite(f)?f:void 0,maxOutput:Number.isFinite(g)?g:void 0}}(a,c);Number.isFinite(f)&&(d.context_length=f),Number.isFinite(g)&&(d.max_completion_tokens=g)}return d}async function N(a,b={}){let c=!0===b.skipDynamicFetch,g=[],j=!1;try{g=(g=await (0,f.getProviderConnections)()).filter(a=>!1!==a.isActive)}catch(a){j=!0,console.log("Could not fetch providers, returning all models")}let k=[];try{k=await (0,f.Uv)()}catch(a){console.log("Could not fetch combos")}let m=Object.fromEntries(k.map(a=>[a.name,a.models])),n={};try{n=await (0,f.mt)()}catch(a){console.log("Could not fetch settings, using defaults")}if(n.exposeComboOnly){let b=new Set,c=[];for(let d of k){if(!L(d,a))continue;let e=M(d,m);b.has(e.id)||(b.add(e.id),c.push(e))}return c}let o=[];try{o=await (0,f.uv)()}catch(a){console.log("Could not fetch custom models")}let p={};try{p=await (0,f.OM)()}catch(a){console.log("Could not fetch model aliases")}let q={};try{q=await (0,i.vF)()}catch(a){console.log("Could not fetch disabled models")}let r=(a,b)=>Array.isArray(q[a])&&q[a].includes(b),t={};try{t=await (0,l.Kz)()}catch(a){console.log("Could not fetch enabled models")}let u=(a,b)=>{let c=d.Xg[a]||a;for(let d of[t[(b?.providerSpecificData?.prefix||(0,e.wG)(a)||c).trim()],t[c],t[a],b?.providerSpecificData?.enabledModels]){if(!Array.isArray(d))continue;let a=Array.from(new Set(d.filter(a=>"string"==typeof a&&""!==a.trim())));if(a.length>0)return a}return[]},v=new Map;for(let a of g)v.has(a.provider)||v.set(a.provider,a);let w=[],x=new Map(k.filter(a=>"string"==typeof a?.name).map(a=>[a.name,a]));for(let b of k){if(!L(b,a))continue;let c=M(b,m,x);w.push(c)}if(0===g.length){let b=new Set;if(!j)for(let a of z.default)(!0===a.noAuth||a.transport?.noAuth===!0)&&b.add(a.id);for(let[c,e]of Object.entries(d.vq)){let d=D[c]||c;if(!K(d,a)||!j&&!b.has(d))continue;let f=u(d,null);for(let b of e)a.includes(I(b))&&(!(f.length>0)||f.includes(b.id))&&(r(c,b.id)||w.push({id:`${c}/${b.id}`,object:"model",owned_by:c,capabilities:(0,s.getCapabilitiesForModel)(c,b.id)}))}for(let b of o){if(!b?.id||b.type&&"llm"!==b.type||!a.includes("llm"))continue;let c=b.providerAlias;if(!c)continue;let d=String(b.id).trim();d&&w.push({id:`${c}/${d}`,object:"model",owned_by:c})}}else for(let[b,f]of v.entries()){if(!K(b,a))continue;let g=d.Xg[b]||b,h=(f?.providerSpecificData?.prefix||(0,e.wG)(b)||g).trim(),i=d.vq[g]||[],j=u(b,f),k=j.length>0,l=(0,e.mq)(b)||(0,e.gb)(b),m=new Map(i.map(a=>[a.id,I(a)])),n=new Map,q=new Map,t=k?j:i.map(a=>a.id),v=l&&o.some(a=>{if(!a?.id)return!1;let c=a.providerAlias;return c===g||c===h||c===b});!l||0!==t.length||v||c||(t=await J(f));let x=F[b];if(x&&!k)try{let a=await x(f);a?.models?.length&&(t=a.models.map(a=>a.id),n=new Map(a.models.filter(a=>a?.id).map(a=>[a.id,I(a)])),q=new Map(a.models.filter(a=>a?.id&&a.capabilities).map(a=>[a.id,a.capabilities])))}catch(a){console.log(`Live model fetch failed for ${b}: ${a?.message||a}`)}let y=t.map(a=>a.startsWith(`${h}/`)?a.slice(h.length+1):a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim()),z=new Map,A=new Map;for(let c of Array.from(new Set([...y,...o.filter(c=>{if(!c?.id)return!1;let e=(0,d.CP)(c)||"llm";if(!a.includes(e)&&!("imageToText"===e&&a.includes("llm")))return!1;let f=c.providerAlias;return f===g||f===h||f===b}).map(a=>{let b=String(a.id).trim();return b&&(z.set(b,(0,d.CP)(a)||"llm"),a.caps&&"object"==typeof a.caps&&A.set(b,a.caps)),b}).filter(a=>""!==a),...Object.values(p||{}).filter(a=>"string"==typeof a&&!!a.includes("/")&&(a.startsWith(`${h}/`)||a.startsWith(`${g}/`)||a.startsWith(`${b}/`))).map(a=>a.startsWith(`${h}/`)?a.slice(h.length+1):a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim())]))){let d=z.get(c),e=n.get(c),f=d||e||m.get(c)||function(a){let b=String(a).toLowerCase();return/embed/.test(b)?"embedding":/tts|speech|audio|voice/.test(b)?"tts":/image|imagen|dall-?e|flux|sdxl|sd-|stable-diffusion/.test(b)?"image":"llm"}(c),i="imageToText"===f&&a.includes("llm");if(!a.includes(f)&&!i||r(h,c)||r(g,c))continue;let j={id:`${h}/${c}`,object:"model",owned_by:h},k=q.get(c)||(0,s.capabilitiesFromServiceKind)(d||e)||("llm"===f?(0,s.getCapabilitiesForModel)(b,c):null),l=(0,s.withDeclaredCapabilities)(k,A.get(c));if(l&&(j.capabilities=l),"llm"===f||i){let a=l?.contextWindow,d=l?.maxOutput;if(!Number.isFinite(a)||!Number.isFinite(d)){let e=(0,s.getCapabilitiesForModel)(b,c);Number.isFinite(a)||(a=e.contextWindow),Number.isFinite(d)||(d=e.maxOutput)}Number.isFinite(a)&&(j.context_length=a),Number.isFinite(d)&&(j.max_completion_tokens=d)}w.push(j)}let B=e.AI_PROVIDERS[b];a.includes("webSearch")&&B?.searchConfig&&w.push({id:`${h}/search`,object:"model",kind:"webSearch",owned_by:h}),a.includes("webFetch")&&B?.fetchConfig&&w.push({id:`${h}/fetch`,object:"model",kind:"webFetch",owned_by:h})}let y=[],A=new Set;for(let a of w)!a?.id||A.has(a.id)||(A.add(a.id),y.push(a));if(a.includes("llm")){let b=new Set;for(let a of g){let c=a.provider,f=d.Xg[c]||c,g=(a?.providerSpecificData?.prefix||(0,e.wG)(c)||f).trim();b.add(g),b.add(f),b.add(c)}for(let c of o){if(!c?.id)continue;let e=(0,d.CP)(c)||"llm",f="imageToText"===e;if(!a.includes(e)&&!f)continue;let g=c.providerAlias;if(!g||b.has(g))continue;let h=String(c.id).trim();if(!h||r(g,h))continue;let i=`${g}/${h}`;if(A.has(i))continue;A.add(i);let j={id:i,object:"model",owned_by:g},k=(0,s.getCapabilitiesForModel)(g,h);k&&(j.capabilities=k),Number.isFinite(k?.contextWindow)&&(j.context_length=k.contextWindow),Number.isFinite(k?.maxOutput)&&(j.max_completion_tokens=k.maxOutput),y.push(j)}for(let a of(await (0,h.Y)())){if(!a?.id)continue;let b=String(a.id).trim();if(!b||r("oc",b))continue;let c=`oc/${b}`;if(A.has(c))continue;A.add(c);let d={id:c,object:"model",owned_by:"oc"},e=(0,s.getCapabilitiesForModel)("oc",b);e&&(d.capabilities=e),Number.isFinite(e?.contextWindow)&&(d.context_length=e.contextWindow),Number.isFinite(e?.maxOutput)&&(d.max_completion_tokens=e.maxOutput),y.push(d)}}let B=b.apiKey,C=B?.allowedModels;return Array.isArray(C)&&0!==C.length?y.filter(a=>C.includes(a.id)):y}let O=new Map;async function P(a,b={}){var c,d;let e=(c=!0===b.skipDynamicFetch,d=b.apiKey?.id,`${c?"internal":"full"}::${d||"public"}::${a.join("|")}`),f=O.get(e);if(!0===b.forceFresh){let c=await N(a,b);return O.set(e,{data:c,builtAt:Date.now()}),c}if(f?.building)return f.data??f.building;if(f&&Date.now()-f.builtAt<3e4)return f.data;let g=N(a,b).then(a=>{let b=O.get(e),c=Array.isArray(b?.data)&&b.data.length>0;return 0===a.length&&c?b.data:(O.set(e,{data:a,builtAt:Date.now()}),a)}).catch(a=>{let b=O.get(e);throw b?.data?O.set(e,{data:b.data,builtAt:b.builtAt}):O.delete(e),a});return(O.set(e,f?{...f,building:g}:{data:null,builtAt:0,building:g}),f)?(g.catch(()=>{}),f.data):g}async function Q(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function R(a){try{let b=a?.headers?.get(G)==="1",c=await T(a);if(c.error)return Response.json({error:{message:"Invalid API key",type:"authentication_error"}},{status:401,headers:{"Access-Control-Allow-Origin":"*"}});let d=await P(["llm"],{skipDynamicFetch:b,apiKey:c.key}),e=(0,g.Tr)(a),f=e?await (0,j.getApiKeyScopeByKey)(e):null;return Response.json({object:"list",data:(0,k.C)(d,f)},{headers:{"Access-Control-Allow-Origin":"*"}})}catch(a){return console.log("Error fetching models:",a),Response.json({error:{message:a.message,type:"server_error"}},{status:500})}}async function S(a){let b=(0,g.Tr)(a);if(!b)return{present:!1,key:null};let c=await (0,f.y7)(b),d=c?.expiresAt&&new Date(c.expiresAt).getTime()<=Date.now();return{present:!0,key:c?.isActive&&!d?c:null}}async function T(a){let b=await (0,f.mt)(),c=await S(a);return b.requireApiKey&&!c.key||c.present&&!c.key?{error:!0}:{key:c.key}}},16655:(a,b,c)=>{c.d(b,{oF:()=>d.oF,tm:()=>d.tm,vF:()=>d.vF});var d=c(53267)},38775:(a,b,c)=>{c.d(b,{d_:()=>j,mA:()=>h,pe:()=>k});var d=c(89718),e=c(66451),f=c(99471);c(17218);let g={xmtp:"xiaomi-tokenplan","xiaomi-tokenplan":"xiaomi-tokenplan"};async function h(a){let b,c=(b=(0,e.Xh)(a),b?.providerAlias&&g[b.providerAlias]?{...b,provider:g[b.providerAlias]}:b);if(!c.isAlias){let a=(await (0,d.Fh)({type:"openai-compatible"})).find(a=>a.prefix===c.providerAlias);if(a)return{provider:a.id,model:c.model};let b=(await (0,d.Fh)({type:"anthropic-compatible"})).find(a=>a.prefix===c.providerAlias);if(b)return{provider:b.id,model:c.model};let e=(await (0,d.Fh)({type:"custom-embedding"})).find(a=>a.prefix===c.providerAlias);if(e)return{provider:e.id,model:c.model};let f=(await (0,d.Fh)({type:"custom-video"})).find(a=>a.prefix===c.providerAlias);return f?{provider:f.id,model:c.model}:{provider:c.provider,model:c.model}}if(await (0,d.Dj)(c.model))return{provider:null,model:c.model};let f=await i(c.model);return f||(0,e.js)(a,d.OM)}async function i(a){try{let b=(await (0,d.uv)()).find(b=>b&&b.id===a&&("llm"===b.type||!b.type));if(b&&b.providerAlias)return{provider:(0,e.g2)(b.providerAlias),model:b.id}}catch{}try{let b=await (0,d.OM)(),c=(0,e.sc)(a,b);if(c)return c}catch{}let b=(0,e.PN)(a);if(b)return{provider:b,model:a};try{let b=await (0,f.w)(a);if(b)return b}catch{}return null}async function j(a){if(a.includes("/"))return null;let b=await (0,d.Dj)(a);return b&&b.models&&b.models.length>0?b.models:null}async function k(a){if(a.includes("/"))return null;let b=await (0,d.Dj)(a);return b?{models:b.models||[],members:b.members||(b.models||[]).map(a=>({id:a,weight:1})),policy:b.policy||null,accountPolicy:b.accountPolicy||null,fusion:b.fusion||null,config:b.config||null,name:b.name,kind:b.kind}:null}},49263:(a,b,c)=>{c.d(b,{Bl:()=>k,Ib:()=>e,Qo:()=>g,S5:()=>m,hk:()=>f,kJ:()=>l});var d=c(87252);function e(a,b=Date.now()){let c;if(!a)return null;let d="string"==typeof a?a:JSON.stringify(a);if(c=d.match(/"?retry[_-]?delay"?\s*[:=]\s*"?\s*([0-9]+(?:\.[0-9]+)?)\s*s/i))return Math.round(1e3*parseFloat(c[1]));if(c=d.match(/"?(?:resets?_at|x-?ratelimit-?reset|ratelimit-?reset)"?\s*[:=]\s*"?\s*([0-9]{9,})/i)){let a=parseInt(c[1],10);a<1e12&&(a*=1e3);let d=a-b;return d>0?d:null}return(c=d.match(/"?retry[_-]?after"?\s*[:=]\s*"?\s*([0-9]+)\b/i))?1e3*parseInt(c[1],10):null}function f(a,b,c=0,g=null){let h=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"",i=h.includes("invalid_encrypted_content")||h.includes("encrypted content")&&(h.includes("could not be verified")||h.includes("could not be decrypted or parsed"));if(400===a&&i)return{shouldFallback:!1,cooldownMs:0};if(d.t2.find(b=>b.status===a&&!1===b.fallback))return{shouldFallback:!1,cooldownMs:0,newBackoffLevel:c};for(let f of d.t2)if((!f.provider||f.provider===g)&&(f.pattern&&h&&f.pattern.test(h)||f.text&&h&&h.includes(f.text)||f.status&&f.status===a)){if(f.permanent||!1===f.fallback)return{shouldFallback:!1,cooldownMs:0};if(f.backoff){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:function(a,b){let c=function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(a),f=e(b);return null!=f&&f>0?Math.min(Math.max(f,c),d.fh):c}(a,b),newBackoffLevel:a}}return{shouldFallback:!0,cooldownMs:f.cooldownMs}}return d.w6.has(a)?{shouldFallback:!1,cooldownMs:0}:{shouldFallback:!0,cooldownMs:d.wf}}function g(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let h="modelLock_",i=`${h}__all`;function j(a){return a?`${h}${a}`:i}function k(a,b){let c=Date.now(),d=a=>{if(!a)return!1;let b=new Date(a).getTime();return Number.isFinite(b)&&b>c};return d(a[j(b)])||d(a[i])}function l(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(h)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function m(a,b){return{[j(a)]:new Date(Date.now()+b).toISOString()}}},50287:(a,b,c)=>{c.d(b,{C:()=>e});var d=c(29686);function e(a,b){return b&&Array.isArray(a)?a.filter(a=>(0,d.MH)(b,a?.id)):a}},66451:(a,b,c)=>{c.d(b,{PN:()=>j,Xh:()=>k,g2:()=>i,js:()=>m,sc:()=>l});var d=c(17218),e=c(29485);let f={el:"elevenlabs",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly"};for(let a of d.default)for(let b of(f[a.id]=a.id,a.alias&&(f[a.alias]=a.id),a.aliases||[]))f[b]=a.id;let g={"grok-build":"gcli/grok-build"},h=new Map;for(let a of d.default)a.noAuth&&a.modelsFetcher&&a.alias&&h.set(a.id,a.alias);function i(a){return f[a]||a}function j(a){if(!a)return null;let b=[];for(let[c,d]of Object.entries(e.PROVIDER_MODELS))Array.isArray(d)&&d.some(b=>b&&b.id===a)&&b.push(c);if(0===b.length)return null;if(1===b.length)return i(b[0]);let c=b.find(b=>a.startsWith(b));return c?i(c):null}function k(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),d=a.slice(b+1);return{provider:i(c),model:d,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}function l(a,b){if(!b)return null;let c=b[a];if(!c)return null;if("string"==typeof c&&c.includes("/")){let a=c.indexOf("/");return{provider:i(c.slice(0,a)),model:c.slice(a+1)}}return"object"==typeof c&&c.provider&&c.model?{provider:i(c.provider),model:c.model}:null}async function m(a,b){let c=k(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let d="function"==typeof b?await b():b,e=l(c.model,d)||l(c.model,g);return e||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return"default"===b||"auto"===b?"cursor":n.find(([a])=>a.test(b))?.[1]||"openai"}(c.model),model:c.model}}let n=[[/^codex-auto-review$/,"codex"],[/^gpt-[56]\./,"codex"],[/^gpt-6-/,"codex"],[/^gpt-daybreak-/,"codex"],[/^gpt-reserve/,"codex"],[/^claude-/,"anthropic"],[/^gemini-/,"gemini"],[/^grok-/,"xai"],[/^gpt-/,"openai"],[/^o[134]/,"openai"],[/^deepseek-/,"openrouter"]]},68001:(a,b,c)=>{c.d(b,{S:()=>g});var d=c(38071);let e=["big-pickle"],f=new Set(["deepseek-v4-flash-free"]),g={"openrouter-free":a=>a.filter(a=>a.pricing?.prompt==="0"&&a.pricing?.completion==="0"&&a.context_length>=2e5).map(a=>({id:a.id,name:a.name,contextLength:a.context_length})).sort((a,b)=>b.contextLength-a.contextLength),"opencode-free":a=>a.filter(a=>(a.id?.endsWith("-free")||e.includes(a.id))&&!f.has(a.id)).map(a=>({id:a.id,name:a.id})),"mimo-free":a=>(Array.isArray(a)?a:[]).filter(a=>a.id?.startsWith("mimo")||a.name?.toLowerCase().includes("mimo")).map(a=>({id:a.id,name:a.name||a.id})),"nous-free":d.pD,"airforce-free":a=>(Array.isArray(a)?a:[]).filter(a=>("free"===a.tier||a.id?.endsWith(":free"))&&!0===a.supports_chat&&(!a.media_type||"chat"===a.media_type||"text"===a.media_type)).map(a=>({id:a.id,name:a.name||a.id,contextLength:a.context_length})).sort((a,b)=>String(a.id).localeCompare(String(b.id)))}},72162:(a,b,c)=>{c.d(b,{Kz:()=>d.Kz,gy:()=>d.gy});var d=c(53267)},81329:(a,b,c)=>{c.d(b,{CP:()=>f,Xg:()=>d.Xg,bs:()=>g,eh:()=>e,vq:()=>d.PROVIDER_MODELS,zc:()=>i});var d=c(29485);Object.entries(c(40615).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.PROVIDER_MODELS).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),f=(a,b=null)=>a?.kind||a?.type||b,g={vision:{icon:"visibility",label:"Vision",desc:"Supports image input",color:"text-blue-500"},reasoning:{icon:"neurology",label:"Reasoning",desc:"Supports reasoning / thinking",color:"text-amber-500"}},h={"gemini-live":{label:"Gemini Live (realtime WebSocket)",desc:"Streams audio over bidiGenerateContent and returns incremental transcription segments"}};function i(a){return"string"==typeof a&&Object.prototype.hasOwnProperty.call(h,a.trim())}Object.freeze(Object.keys(h))},99471:(a,b,c)=>{c.d(b,{Y:()=>k,w:()=>j});var d=c(68001);let e=null,f=0,g=null;async function h(){let a=new AbortController,b=setTimeout(()=>a.abort(),5e3);try{let b=await fetch("https://opencode.ai/zen/v1/models",{signal:a.signal});if(!b.ok)return e||[];let c=await b.json(),g=c.data??c.models??c,h=d.S["opencode-free"](Array.isArray(g)?g:[]);return e=h,f=Date.now(),h}catch{return e||[]}finally{clearTimeout(b)}}async function i(){if(e&&Date.now()-f<6e5)return e;if(!g){g=h();try{return await g}finally{g=null}}return g}async function j(a){let b=(await i()).find(b=>b&&b.id===a);return b?{provider:"opencode",model:b.id}:"big-pickle"===a||String(a).endsWith("-free")?{provider:"opencode",model:a}:null}async function k(){return await i()}}};