9router 0.2.92 → 0.2.94

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 (300) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/app-path-routes-manifest.json +35 -35
  3. package/app/.next/build-manifest.json +2 -2
  4. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +3 -3
  5. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  6. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  8. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  11. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  14. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  17. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  20. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  23. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  26. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  29. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  32. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  33. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/_global-error.html +2 -2
  36. package/app/.next/server/app/_global-error.rsc +1 -1
  37. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  38. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  39. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  40. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  41. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  42. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  43. package/app/.next/server/app/_not-found/page.js +2 -2
  44. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  45. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  46. package/app/.next/server/app/_not-found.html +1 -1
  47. package/app/.next/server/app/_not-found.rsc +2 -2
  48. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  49. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  50. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  51. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  52. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  53. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  54. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +2 -5
  58. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  59. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  60. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  61. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  62. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  63. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  64. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  66. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  67. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  68. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  69. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  70. package/app/.next/server/app/api/init/route.js +1 -1
  71. package/app/.next/server/app/api/init/route.js.nft.json +1 -1
  72. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  73. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  74. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  75. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  76. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  77. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  78. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  79. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +7 -1
  80. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  81. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  82. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  83. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  84. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  85. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  87. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  88. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  89. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  90. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  91. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  92. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  93. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  94. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  95. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  96. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  97. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  98. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  99. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  100. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  101. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  102. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  103. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  104. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  105. package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
  106. package/app/.next/server/app/api/tunnel/disable/route_client-reference-manifest.js +1 -1
  107. package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
  108. package/app/.next/server/app/api/tunnel/enable/route_client-reference-manifest.js +1 -1
  109. package/app/.next/server/app/api/tunnel/status/route.js +1 -1
  110. package/app/.next/server/app/api/tunnel/status/route_client-reference-manifest.js +1 -1
  111. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  112. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  113. package/app/.next/server/app/api/usage/chart/route_client-reference-manifest.js +1 -1
  114. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  115. package/app/.next/server/app/api/usage/providers/route_client-reference-manifest.js +1 -1
  116. package/app/.next/server/app/api/usage/request-details/route_client-reference-manifest.js +1 -1
  117. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  118. package/app/.next/server/app/api/usage/stream/route_client-reference-manifest.js +1 -1
  119. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  120. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  121. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  122. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  123. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  124. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  125. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  126. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  127. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  128. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  129. package/app/.next/server/app/callback/page.js +2 -2
  130. package/app/.next/server/app/callback/page.js.nft.json +1 -1
  131. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  132. package/app/.next/server/app/callback.html +1 -1
  133. package/app/.next/server/app/callback.rsc +2 -2
  134. package/app/.next/server/app/callback.segments/_full.segment.rsc +2 -2
  135. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  136. package/app/.next/server/app/callback.segments/_index.segment.rsc +2 -2
  137. package/app/.next/server/app/callback.segments/_tree.segment.rsc +1 -1
  138. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  139. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  140. package/app/.next/server/app/dashboard/cli-tools.html +1 -1
  141. package/app/.next/server/app/dashboard/cli-tools.rsc +4 -4
  142. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  143. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  144. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  145. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  146. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +4 -4
  147. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  148. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +2 -2
  149. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  150. package/app/.next/server/app/dashboard/combos.html +1 -1
  151. package/app/.next/server/app/dashboard/combos.rsc +4 -4
  152. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  153. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  154. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  155. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  156. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +4 -4
  157. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  158. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +2 -2
  159. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  160. package/app/.next/server/app/dashboard/endpoint.html +1 -1
  161. package/app/.next/server/app/dashboard/endpoint.rsc +4 -4
  162. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  163. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  164. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  165. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  166. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +4 -4
  167. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  168. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +2 -2
  169. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  170. package/app/.next/server/app/dashboard/profile.html +1 -1
  171. package/app/.next/server/app/dashboard/profile.rsc +4 -4
  172. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  173. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  174. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  175. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  176. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +4 -4
  177. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  178. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +2 -2
  179. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  180. package/app/.next/server/app/dashboard/providers/new.html +1 -1
  181. package/app/.next/server/app/dashboard/providers/new.rsc +4 -4
  182. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  183. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  184. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  185. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  186. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  187. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +4 -4
  188. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  189. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +2 -2
  190. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  191. package/app/.next/server/app/dashboard/providers.html +1 -1
  192. package/app/.next/server/app/dashboard/providers.rsc +4 -4
  193. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  194. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  195. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  196. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  197. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +4 -4
  198. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  199. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +2 -2
  200. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  201. package/app/.next/server/app/dashboard/settings/pricing/page.js +1 -1
  202. package/app/.next/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  203. package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  204. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  205. package/app/.next/server/app/dashboard/settings/pricing.rsc +3 -3
  206. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  207. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  208. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +2 -2
  209. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  210. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +2 -2
  211. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  212. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  213. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  214. package/app/.next/server/app/dashboard/translator.html +1 -1
  215. package/app/.next/server/app/dashboard/translator.rsc +4 -4
  216. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  217. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  218. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  219. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  220. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +4 -4
  221. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  222. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +2 -2
  223. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  224. package/app/.next/server/app/dashboard/usage.html +1 -1
  225. package/app/.next/server/app/dashboard/usage.rsc +4 -4
  226. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  227. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  228. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  229. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  230. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +4 -4
  231. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  232. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +2 -2
  233. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  234. package/app/.next/server/app/dashboard.html +1 -1
  235. package/app/.next/server/app/dashboard.rsc +4 -4
  236. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  237. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  238. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  239. package/app/.next/server/app/dashboard.segments/_full.segment.rsc +4 -4
  240. package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  241. package/app/.next/server/app/dashboard.segments/_index.segment.rsc +2 -2
  242. package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  243. package/app/.next/server/app/index.html +1 -1
  244. package/app/.next/server/app/index.rsc +2 -2
  245. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  246. package/app/.next/server/app/index.segments/_full.segment.rsc +2 -2
  247. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  248. package/app/.next/server/app/index.segments/_index.segment.rsc +2 -2
  249. package/app/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  250. package/app/.next/server/app/landing/page.js +2 -2
  251. package/app/.next/server/app/landing/page.js.nft.json +1 -1
  252. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  253. package/app/.next/server/app/landing.html +1 -1
  254. package/app/.next/server/app/landing.rsc +2 -2
  255. package/app/.next/server/app/landing.segments/_full.segment.rsc +2 -2
  256. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  257. package/app/.next/server/app/landing.segments/_index.segment.rsc +2 -2
  258. package/app/.next/server/app/landing.segments/_tree.segment.rsc +1 -1
  259. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  260. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  261. package/app/.next/server/app/login/page.js +2 -2
  262. package/app/.next/server/app/login/page.js.nft.json +1 -1
  263. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  264. package/app/.next/server/app/login.html +1 -1
  265. package/app/.next/server/app/login.rsc +3 -3
  266. package/app/.next/server/app/login.segments/_full.segment.rsc +3 -3
  267. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  268. package/app/.next/server/app/login.segments/_index.segment.rsc +2 -2
  269. package/app/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  270. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  271. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  272. package/app/.next/server/app/page.js +2 -2
  273. package/app/.next/server/app/page.js.nft.json +1 -1
  274. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  275. package/app/.next/server/app-paths-manifest.json +35 -35
  276. package/app/.next/server/chunks/2044.js +2 -0
  277. package/app/.next/server/chunks/2243.js +1 -1
  278. package/app/.next/server/chunks/3110.js +6 -2
  279. package/app/.next/server/chunks/6186.js +4 -0
  280. package/app/.next/server/chunks/7189.js +5 -5
  281. package/app/.next/server/chunks/7341.js +1 -1
  282. package/app/.next/server/chunks/8694.js +1 -0
  283. package/app/.next/server/chunks/9201.js +1 -0
  284. package/app/.next/server/chunks/9489.js +2 -2
  285. package/app/.next/server/pages/404.html +1 -1
  286. package/app/.next/server/pages/500.html +2 -2
  287. package/app/.next/server/server-reference-manifest.js +1 -1
  288. package/app/.next/server/server-reference-manifest.json +1 -1
  289. package/app/.next/static/chunks/8729-a400665e59674a47.js +1 -0
  290. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-64adecc2f3ed9dd3.js → page-64d91a290c68fb09.js} +1 -1
  291. package/app/.next/static/chunks/app/dashboard/settings/pricing/page-d8e891687abeea66.js +1 -0
  292. package/app/package.json +1 -1
  293. package/app/src/mitm/manager.js +321 -99
  294. package/app/src/mitm/server.js +14 -10
  295. package/package.json +1 -1
  296. package/app/.next/server/chunks/8954.js +0 -1
  297. package/app/.next/static/chunks/8729-f0c4f2fa30fbd381.js +0 -1
  298. package/app/.next/static/chunks/app/dashboard/settings/pricing/page-2fbbb9dee6ce7c09.js +0 -1
  299. /package/app/.next/static/{jZwrCvsLGufeXsRxxj1hX → BrLPf6yJlpsLD6WkIP0hO}/_buildManifest.js +0 -0
  300. /package/app/.next/static/{jZwrCvsLGufeXsRxxj1hX → BrLPf6yJlpsLD6WkIP0hO}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- self.__RSC_SERVER_MANIFEST="{\"node\":{\"00abc210d509c2a5babe45934cdf44cae1726962fc\":{\"workers\":{\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"83722\",\"async\":false}},\"layer\":{\"app/api/cli-tools/codex-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/codex-settings/route.js\",\"exportedName\":\"DELETE\"},\"00fef668d38ed6414dbbb7377ecfdac61e74ecd9c2\":{\"workers\":{\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"83722\",\"async\":false}},\"layer\":{\"app/api/cli-tools/codex-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/codex-settings/route.js\",\"exportedName\":\"GET\"},\"401d76d3f257906bfd6662f16431180c76be75d9f0\":{\"workers\":{\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"83722\",\"async\":false}},\"layer\":{\"app/api/cli-tools/codex-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/codex-settings/route.js\",\"exportedName\":\"POST\"},\"00b830cb3ad8ae488716b54de8f59f7a5dff59a87a\":{\"workers\":{\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"48101\",\"async\":false}},\"layer\":{\"app/api/cli-tools/claude-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/claude-settings/route.js\",\"exportedName\":\"GET\"},\"00f0521a01f1371abc196c1a806c7d817aba6f24fd\":{\"workers\":{\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"48101\",\"async\":false}},\"layer\":{\"app/api/cli-tools/claude-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/claude-settings/route.js\",\"exportedName\":\"DELETE\"},\"406b5421c0d9278c73508c39a731577bf6ed4d02ca\":{\"workers\":{\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"48101\",\"async\":false}},\"layer\":{\"app/api/cli-tools/claude-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/claude-settings/route.js\",\"exportedName\":\"POST\"},\"0037d08db2fa5d1389469ea6e9a3d0ff9d7423e1c7\":{\"workers\":{\"app/api/cli-tools/droid-settings/route\":{\"moduleId\":\"49043\",\"async\":false}},\"layer\":{\"app/api/cli-tools/droid-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/droid-settings/route.js\",\"exportedName\":\"DELETE\"},\"009d98e0ae529f78f46e8404a9524e03a3321240f5\":{\"workers\":{\"app/api/cli-tools/droid-settings/route\":{\"moduleId\":\"49043\",\"async\":false}},\"layer\":{\"app/api/cli-tools/droid-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/droid-settings/route.js\",\"exportedName\":\"GET\"},\"40613914d9a56a3a4950332d356a40550e1766b3c9\":{\"workers\":{\"app/api/cli-tools/droid-settings/route\":{\"moduleId\":\"49043\",\"async\":false}},\"layer\":{\"app/api/cli-tools/droid-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/droid-settings/route.js\",\"exportedName\":\"POST\"},\"4020dc1456d7b92cfc27cdc401d0f2b121fc9377c4\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":{\"moduleId\":\"76200\",\"async\":false}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/alias/route.js\",\"exportedName\":\"GET\"},\"40c6354f22d4b97d20eaf7f65d95101321602958f5\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":{\"moduleId\":\"76200\",\"async\":false}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/alias/route.js\",\"exportedName\":\"PUT\"},\"00ae22a114a5e0ea29ffb51186f926f0a14a628651\":{\"workers\":{\"app/api/cli-tools/openclaw-settings/route\":{\"moduleId\":\"85589\",\"async\":false}},\"layer\":{\"app/api/cli-tools/openclaw-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/openclaw-settings/route.js\",\"exportedName\":\"DELETE\"},\"00edbbed331af43249c958f0d2d72f5e24364912a1\":{\"workers\":{\"app/api/cli-tools/openclaw-settings/route\":{\"moduleId\":\"85589\",\"async\":false}},\"layer\":{\"app/api/cli-tools/openclaw-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/openclaw-settings/route.js\",\"exportedName\":\"GET\"},\"40b069e711997d56fd1cd254d764ab93da9bc876b6\":{\"workers\":{\"app/api/cli-tools/openclaw-settings/route\":{\"moduleId\":\"85589\",\"async\":false}},\"layer\":{\"app/api/cli-tools/openclaw-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/openclaw-settings/route.js\",\"exportedName\":\"POST\"},\"00dcc02aeae88f74d9ec0124fb371c6b098b79905c\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/route\":{\"moduleId\":\"85298\",\"async\":false}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/route.js\",\"exportedName\":\"GET\"},\"400d20ae0577d77ba3f21d96e3193f2eab341eaca1\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/route\":{\"moduleId\":\"85298\",\"async\":false}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/route.js\",\"exportedName\":\"DELETE\"},\"40fb22a5994d3f3d53998969358fe69c9b793a2552\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/route\":{\"moduleId\":\"85298\",\"async\":false}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/route.js\",\"exportedName\":\"POST\"}},\"edge\":{},\"encryptionKey\":\"process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY\"}"
1
+ self.__RSC_SERVER_MANIFEST="{\"node\":{\"4020dc1456d7b92cfc27cdc401d0f2b121fc9377c4\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":{\"moduleId\":\"76200\",\"async\":false}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/alias/route.js\",\"exportedName\":\"GET\"},\"40c6354f22d4b97d20eaf7f65d95101321602958f5\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":{\"moduleId\":\"76200\",\"async\":false}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/alias/route.js\",\"exportedName\":\"PUT\"},\"00abc210d509c2a5babe45934cdf44cae1726962fc\":{\"workers\":{\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"83722\",\"async\":false}},\"layer\":{\"app/api/cli-tools/codex-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/codex-settings/route.js\",\"exportedName\":\"DELETE\"},\"00fef668d38ed6414dbbb7377ecfdac61e74ecd9c2\":{\"workers\":{\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"83722\",\"async\":false}},\"layer\":{\"app/api/cli-tools/codex-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/codex-settings/route.js\",\"exportedName\":\"GET\"},\"401d76d3f257906bfd6662f16431180c76be75d9f0\":{\"workers\":{\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"83722\",\"async\":false}},\"layer\":{\"app/api/cli-tools/codex-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/codex-settings/route.js\",\"exportedName\":\"POST\"},\"00ae22a114a5e0ea29ffb51186f926f0a14a628651\":{\"workers\":{\"app/api/cli-tools/openclaw-settings/route\":{\"moduleId\":\"85589\",\"async\":false}},\"layer\":{\"app/api/cli-tools/openclaw-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/openclaw-settings/route.js\",\"exportedName\":\"DELETE\"},\"00edbbed331af43249c958f0d2d72f5e24364912a1\":{\"workers\":{\"app/api/cli-tools/openclaw-settings/route\":{\"moduleId\":\"85589\",\"async\":false}},\"layer\":{\"app/api/cli-tools/openclaw-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/openclaw-settings/route.js\",\"exportedName\":\"GET\"},\"40b069e711997d56fd1cd254d764ab93da9bc876b6\":{\"workers\":{\"app/api/cli-tools/openclaw-settings/route\":{\"moduleId\":\"85589\",\"async\":false}},\"layer\":{\"app/api/cli-tools/openclaw-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/openclaw-settings/route.js\",\"exportedName\":\"POST\"},\"00b830cb3ad8ae488716b54de8f59f7a5dff59a87a\":{\"workers\":{\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"48101\",\"async\":false}},\"layer\":{\"app/api/cli-tools/claude-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/claude-settings/route.js\",\"exportedName\":\"GET\"},\"00f0521a01f1371abc196c1a806c7d817aba6f24fd\":{\"workers\":{\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"48101\",\"async\":false}},\"layer\":{\"app/api/cli-tools/claude-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/claude-settings/route.js\",\"exportedName\":\"DELETE\"},\"406b5421c0d9278c73508c39a731577bf6ed4d02ca\":{\"workers\":{\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"48101\",\"async\":false}},\"layer\":{\"app/api/cli-tools/claude-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/claude-settings/route.js\",\"exportedName\":\"POST\"},\"0037d08db2fa5d1389469ea6e9a3d0ff9d7423e1c7\":{\"workers\":{\"app/api/cli-tools/droid-settings/route\":{\"moduleId\":\"49043\",\"async\":false}},\"layer\":{\"app/api/cli-tools/droid-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/droid-settings/route.js\",\"exportedName\":\"DELETE\"},\"009d98e0ae529f78f46e8404a9524e03a3321240f5\":{\"workers\":{\"app/api/cli-tools/droid-settings/route\":{\"moduleId\":\"49043\",\"async\":false}},\"layer\":{\"app/api/cli-tools/droid-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/droid-settings/route.js\",\"exportedName\":\"GET\"},\"40613914d9a56a3a4950332d356a40550e1766b3c9\":{\"workers\":{\"app/api/cli-tools/droid-settings/route\":{\"moduleId\":\"49043\",\"async\":false}},\"layer\":{\"app/api/cli-tools/droid-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/droid-settings/route.js\",\"exportedName\":\"POST\"},\"00dcc02aeae88f74d9ec0124fb371c6b098b79905c\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/route\":{\"moduleId\":\"85298\",\"async\":false}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/route.js\",\"exportedName\":\"GET\"},\"400d20ae0577d77ba3f21d96e3193f2eab341eaca1\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/route\":{\"moduleId\":\"85298\",\"async\":false}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/route.js\",\"exportedName\":\"DELETE\"},\"40fb22a5994d3f3d53998969358fe69c9b793a2552\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/route\":{\"moduleId\":\"85298\",\"async\":false}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/route.js\",\"exportedName\":\"POST\"}},\"edge\":{},\"encryptionKey\":\"process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY\"}"
@@ -1 +1 @@
1
- {"node":{"00abc210d509c2a5babe45934cdf44cae1726962fc":{"workers":{"app/api/cli-tools/codex-settings/route":{"moduleId":"83722","async":false}},"layer":{"app/api/cli-tools/codex-settings/route":"rsc"},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"DELETE"},"00fef668d38ed6414dbbb7377ecfdac61e74ecd9c2":{"workers":{"app/api/cli-tools/codex-settings/route":{"moduleId":"83722","async":false}},"layer":{"app/api/cli-tools/codex-settings/route":"rsc"},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"GET"},"401d76d3f257906bfd6662f16431180c76be75d9f0":{"workers":{"app/api/cli-tools/codex-settings/route":{"moduleId":"83722","async":false}},"layer":{"app/api/cli-tools/codex-settings/route":"rsc"},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"POST"},"00b830cb3ad8ae488716b54de8f59f7a5dff59a87a":{"workers":{"app/api/cli-tools/claude-settings/route":{"moduleId":"48101","async":false}},"layer":{"app/api/cli-tools/claude-settings/route":"rsc"},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"GET"},"00f0521a01f1371abc196c1a806c7d817aba6f24fd":{"workers":{"app/api/cli-tools/claude-settings/route":{"moduleId":"48101","async":false}},"layer":{"app/api/cli-tools/claude-settings/route":"rsc"},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"DELETE"},"406b5421c0d9278c73508c39a731577bf6ed4d02ca":{"workers":{"app/api/cli-tools/claude-settings/route":{"moduleId":"48101","async":false}},"layer":{"app/api/cli-tools/claude-settings/route":"rsc"},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"POST"},"0037d08db2fa5d1389469ea6e9a3d0ff9d7423e1c7":{"workers":{"app/api/cli-tools/droid-settings/route":{"moduleId":"49043","async":false}},"layer":{"app/api/cli-tools/droid-settings/route":"rsc"},"filename":"app/api/cli-tools/droid-settings/route.js","exportedName":"DELETE"},"009d98e0ae529f78f46e8404a9524e03a3321240f5":{"workers":{"app/api/cli-tools/droid-settings/route":{"moduleId":"49043","async":false}},"layer":{"app/api/cli-tools/droid-settings/route":"rsc"},"filename":"app/api/cli-tools/droid-settings/route.js","exportedName":"GET"},"40613914d9a56a3a4950332d356a40550e1766b3c9":{"workers":{"app/api/cli-tools/droid-settings/route":{"moduleId":"49043","async":false}},"layer":{"app/api/cli-tools/droid-settings/route":"rsc"},"filename":"app/api/cli-tools/droid-settings/route.js","exportedName":"POST"},"4020dc1456d7b92cfc27cdc401d0f2b121fc9377c4":{"workers":{"app/api/cli-tools/antigravity-mitm/alias/route":{"moduleId":"76200","async":false}},"layer":{"app/api/cli-tools/antigravity-mitm/alias/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/alias/route.js","exportedName":"GET"},"40c6354f22d4b97d20eaf7f65d95101321602958f5":{"workers":{"app/api/cli-tools/antigravity-mitm/alias/route":{"moduleId":"76200","async":false}},"layer":{"app/api/cli-tools/antigravity-mitm/alias/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/alias/route.js","exportedName":"PUT"},"00ae22a114a5e0ea29ffb51186f926f0a14a628651":{"workers":{"app/api/cli-tools/openclaw-settings/route":{"moduleId":"85589","async":false}},"layer":{"app/api/cli-tools/openclaw-settings/route":"rsc"},"filename":"app/api/cli-tools/openclaw-settings/route.js","exportedName":"DELETE"},"00edbbed331af43249c958f0d2d72f5e24364912a1":{"workers":{"app/api/cli-tools/openclaw-settings/route":{"moduleId":"85589","async":false}},"layer":{"app/api/cli-tools/openclaw-settings/route":"rsc"},"filename":"app/api/cli-tools/openclaw-settings/route.js","exportedName":"GET"},"40b069e711997d56fd1cd254d764ab93da9bc876b6":{"workers":{"app/api/cli-tools/openclaw-settings/route":{"moduleId":"85589","async":false}},"layer":{"app/api/cli-tools/openclaw-settings/route":"rsc"},"filename":"app/api/cli-tools/openclaw-settings/route.js","exportedName":"POST"},"00dcc02aeae88f74d9ec0124fb371c6b098b79905c":{"workers":{"app/api/cli-tools/antigravity-mitm/route":{"moduleId":"85298","async":false}},"layer":{"app/api/cli-tools/antigravity-mitm/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/route.js","exportedName":"GET"},"400d20ae0577d77ba3f21d96e3193f2eab341eaca1":{"workers":{"app/api/cli-tools/antigravity-mitm/route":{"moduleId":"85298","async":false}},"layer":{"app/api/cli-tools/antigravity-mitm/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/route.js","exportedName":"DELETE"},"40fb22a5994d3f3d53998969358fe69c9b793a2552":{"workers":{"app/api/cli-tools/antigravity-mitm/route":{"moduleId":"85298","async":false}},"layer":{"app/api/cli-tools/antigravity-mitm/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/route.js","exportedName":"POST"}},"edge":{},"encryptionKey":"E6OgI/JOYq7mbTvnRXFd/GnwtbNhE8Dcgo/IQqnzEws="}
1
+ {"node":{"4020dc1456d7b92cfc27cdc401d0f2b121fc9377c4":{"workers":{"app/api/cli-tools/antigravity-mitm/alias/route":{"moduleId":"76200","async":false}},"layer":{"app/api/cli-tools/antigravity-mitm/alias/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/alias/route.js","exportedName":"GET"},"40c6354f22d4b97d20eaf7f65d95101321602958f5":{"workers":{"app/api/cli-tools/antigravity-mitm/alias/route":{"moduleId":"76200","async":false}},"layer":{"app/api/cli-tools/antigravity-mitm/alias/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/alias/route.js","exportedName":"PUT"},"00abc210d509c2a5babe45934cdf44cae1726962fc":{"workers":{"app/api/cli-tools/codex-settings/route":{"moduleId":"83722","async":false}},"layer":{"app/api/cli-tools/codex-settings/route":"rsc"},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"DELETE"},"00fef668d38ed6414dbbb7377ecfdac61e74ecd9c2":{"workers":{"app/api/cli-tools/codex-settings/route":{"moduleId":"83722","async":false}},"layer":{"app/api/cli-tools/codex-settings/route":"rsc"},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"GET"},"401d76d3f257906bfd6662f16431180c76be75d9f0":{"workers":{"app/api/cli-tools/codex-settings/route":{"moduleId":"83722","async":false}},"layer":{"app/api/cli-tools/codex-settings/route":"rsc"},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"POST"},"00ae22a114a5e0ea29ffb51186f926f0a14a628651":{"workers":{"app/api/cli-tools/openclaw-settings/route":{"moduleId":"85589","async":false}},"layer":{"app/api/cli-tools/openclaw-settings/route":"rsc"},"filename":"app/api/cli-tools/openclaw-settings/route.js","exportedName":"DELETE"},"00edbbed331af43249c958f0d2d72f5e24364912a1":{"workers":{"app/api/cli-tools/openclaw-settings/route":{"moduleId":"85589","async":false}},"layer":{"app/api/cli-tools/openclaw-settings/route":"rsc"},"filename":"app/api/cli-tools/openclaw-settings/route.js","exportedName":"GET"},"40b069e711997d56fd1cd254d764ab93da9bc876b6":{"workers":{"app/api/cli-tools/openclaw-settings/route":{"moduleId":"85589","async":false}},"layer":{"app/api/cli-tools/openclaw-settings/route":"rsc"},"filename":"app/api/cli-tools/openclaw-settings/route.js","exportedName":"POST"},"00b830cb3ad8ae488716b54de8f59f7a5dff59a87a":{"workers":{"app/api/cli-tools/claude-settings/route":{"moduleId":"48101","async":false}},"layer":{"app/api/cli-tools/claude-settings/route":"rsc"},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"GET"},"00f0521a01f1371abc196c1a806c7d817aba6f24fd":{"workers":{"app/api/cli-tools/claude-settings/route":{"moduleId":"48101","async":false}},"layer":{"app/api/cli-tools/claude-settings/route":"rsc"},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"DELETE"},"406b5421c0d9278c73508c39a731577bf6ed4d02ca":{"workers":{"app/api/cli-tools/claude-settings/route":{"moduleId":"48101","async":false}},"layer":{"app/api/cli-tools/claude-settings/route":"rsc"},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"POST"},"0037d08db2fa5d1389469ea6e9a3d0ff9d7423e1c7":{"workers":{"app/api/cli-tools/droid-settings/route":{"moduleId":"49043","async":false}},"layer":{"app/api/cli-tools/droid-settings/route":"rsc"},"filename":"app/api/cli-tools/droid-settings/route.js","exportedName":"DELETE"},"009d98e0ae529f78f46e8404a9524e03a3321240f5":{"workers":{"app/api/cli-tools/droid-settings/route":{"moduleId":"49043","async":false}},"layer":{"app/api/cli-tools/droid-settings/route":"rsc"},"filename":"app/api/cli-tools/droid-settings/route.js","exportedName":"GET"},"40613914d9a56a3a4950332d356a40550e1766b3c9":{"workers":{"app/api/cli-tools/droid-settings/route":{"moduleId":"49043","async":false}},"layer":{"app/api/cli-tools/droid-settings/route":"rsc"},"filename":"app/api/cli-tools/droid-settings/route.js","exportedName":"POST"},"00dcc02aeae88f74d9ec0124fb371c6b098b79905c":{"workers":{"app/api/cli-tools/antigravity-mitm/route":{"moduleId":"85298","async":false}},"layer":{"app/api/cli-tools/antigravity-mitm/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/route.js","exportedName":"GET"},"400d20ae0577d77ba3f21d96e3193f2eab341eaca1":{"workers":{"app/api/cli-tools/antigravity-mitm/route":{"moduleId":"85298","async":false}},"layer":{"app/api/cli-tools/antigravity-mitm/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/route.js","exportedName":"DELETE"},"40fb22a5994d3f3d53998969358fe69c9b793a2552":{"workers":{"app/api/cli-tools/antigravity-mitm/route":{"moduleId":"85298","async":false}},"layer":{"app/api/cli-tools/antigravity-mitm/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/route.js","exportedName":"POST"}},"edge":{},"encryptionKey":"E6OgI/JOYq7mbTvnRXFd/GnwtbNhE8Dcgo/IQqnzEws="}
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8729],{13097:(e,i,a)=>{a.d(i,{KC:()=>m,Xg:()=>o,vq:()=>n});let n={cc:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4-5-20251101",name:"Claude 4.5 Opus"},{id:"claude-sonnet-4-5-20250929",name:"Claude 4.5 Sonnet"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"}],cx:[{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"},{id:"gpt-5.3-codex-xhigh",name:"GPT 5.3 Codex (xHigh)"},{id:"gpt-5.3-codex-high",name:"GPT 5.3 Codex (High)"},{id:"gpt-5.3-codex-low",name:"GPT 5.3 Codex (Low)"},{id:"gpt-5.3-codex-none",name:"GPT 5.3 Codex (None)"},{id:"gpt-5.3-codex-spark",name:"GPT 5.3 Codex Spark"},{id:"gpt-5.1-codex-mini",name:"GPT 5.1 Codex Mini"},{id:"gpt-5.1-codex-mini-high",name:"GPT 5.1 Codex Mini (High)"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.1-codex-max",name:"GPT 5.1 Codex Max"},{id:"gpt-5.1-codex",name:"GPT 5.1 Codex"},{id:"gpt-5.1",name:"GPT 5.1"},{id:"gpt-5-codex",name:"GPT 5 Codex"},{id:"gpt-5-codex-mini",name:"GPT 5 Codex Mini"}],gc:[{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"}],qw:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-coder-flash",name:"Qwen3 Coder Flash"},{id:"vision-model",name:"Qwen3 Vision Model"},{id:"coder-model",name:"Qwen3.5 Coder Model"}],if:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"kimi-k2",name:"Kimi K2"},{id:"kimi-k2-thinking",name:"Kimi K2 Thinking"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"deepseek-v3.2-chat",name:"DeepSeek V3.2 Chat"},{id:"minimax-m2.1",name:"MiniMax M2.1"},{id:"minimax-m2.5",name:"MiniMax M2.5"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6",name:"GLM 4.6"},{id:"glm-5",name:"GLM 5"}],ag:[{id:"gemini-3.1-pro-high",name:"Gemini 3 Pro High"},{id:"gemini-3.1-pro-low",name:"Gemini 3 Pro Low"},{id:"gemini-3-flash",name:"Gemini 3 Flash"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking"},{id:"gpt-oss-120b-medium",name:"GPT OSS 120B Medium"}],gh:[{id:"gpt-3.5-turbo",name:"GPT-3.5 Turbo"},{id:"gpt-4",name:"GPT-4"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o mini"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-codex",name:"GPT-5 Codex"},{id:"gpt-5.1",name:"GPT-5.1"},{id:"gpt-5.1-codex",name:"GPT-5.1 Codex"},{id:"gpt-5.1-codex-mini",name:"GPT-5.1 Codex Mini"},{id:"gpt-5.1-codex-max",name:"GPT-5.1 Codex Max"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.2-codex",name:"GPT-5.2 Codex"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"claude-opus-4.1",name:"Claude Opus 4.1"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro"},{id:"grok-code-fast-1",name:"Grok Code Fast 1"},{id:"oswe-vscode-prime",name:"Raptor Mini"}],kr:[{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"}],cu:[{id:"default",name:"Auto (Server Picks)"},{id:"claude-4.5-opus-high-thinking",name:"Claude 4.5 Opus High Thinking"},{id:"claude-4.5-opus-high",name:"Claude 4.5 Opus High"},{id:"claude-4.5-sonnet-thinking",name:"Claude 4.5 Sonnet Thinking"},{id:"claude-4.5-sonnet",name:"Claude 4.5 Sonnet"},{id:"claude-4.5-haiku",name:"Claude 4.5 Haiku"},{id:"claude-4.5-opus",name:"Claude 4.5 Opus"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"}],kmc:[{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],kc:[{id:"anthropic/claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"anthropic/claude-opus-4-20250514",name:"Claude Opus 4"},{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"openai/gpt-4.1",name:"GPT-4.1"},{id:"openai/o3",name:"o3"},{id:"deepseek/deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek/deepseek-reasoner",name:"DeepSeek Reasoner"}],cl:[{id:"anthropic/claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"anthropic/claude-opus-4-20250514",name:"Claude Opus 4"},{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"openai/gpt-4.1",name:"GPT-4.1"},{id:"openai/o3",name:"o3"},{id:"deepseek/deepseek-chat",name:"DeepSeek Chat"}],openai:[{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"o1",name:"O1"},{id:"o1-mini",name:"O1 Mini"}],anthropic:[{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"claude-opus-4-20250514",name:"Claude Opus 4"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet"}],gemini:[{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"},{id:"gemini-embedding-001",name:"Gemini Embedding 001",type:"embedding"},{id:"text-embedding-005",name:"Text Embedding 005",type:"embedding"},{id:"text-embedding-004",name:"Text Embedding 004 (Legacy)",type:"embedding"}],openrouter:[{id:"auto",name:"Auto (Best Available)"}],glm:[{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],"glm-cn":[{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM-4.7"},{id:"glm-4.6",name:"GLM-4.6"},{id:"glm-4.5-air",name:"GLM-4.5-Air"}],kimi:[{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],minimax:[{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"}],"minimax-cn":[{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"}],deepseek:[{id:"deepseek-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-reasoner",name:"DeepSeek V3.2 Reasoner"}],groq:[{id:"llama-3.3-70b-versatile",name:"Llama 3.3 70B"},{id:"meta-llama/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"qwen/qwen3-32b",name:"Qwen3 32B"},{id:"openai/gpt-oss-120b",name:"GPT-OSS 120B"}],xai:[{id:"grok-4",name:"Grok 4"},{id:"grok-4-fast-reasoning",name:"Grok 4 Fast Reasoning"},{id:"grok-code-fast-1",name:"Grok Code Fast"},{id:"grok-3",name:"Grok 3"}],mistral:[{id:"mistral-large-latest",name:"Mistral Large 3"},{id:"codestral-latest",name:"Codestral"},{id:"mistral-medium-latest",name:"Mistral Medium 3"}],perplexity:[{id:"sonar-pro",name:"Sonar Pro"},{id:"sonar",name:"Sonar"}],together:[{id:"meta-llama/Llama-3.3-70B-Instruct-Turbo",name:"Llama 3.3 70B Turbo"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B",name:"Qwen3 235B"},{id:"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick"}],fireworks:[{id:"accounts/fireworks/models/deepseek-v3p1",name:"DeepSeek V3.1"},{id:"accounts/fireworks/models/llama-v3p3-70b-instruct",name:"Llama 3.3 70B"},{id:"accounts/fireworks/models/qwen3-235b-a22b",name:"Qwen3 235B"}],cerebras:[{id:"gpt-oss-120b",name:"GPT OSS 120B"},{id:"zai-glm-4.7",name:"ZAI GLM 4.7"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"llama-4-scout-17b-16e-instruct",name:"Llama 4 Scout"},{id:"qwen-3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B"},{id:"qwen-3-32b",name:"Qwen3 32B"}],cohere:[{id:"command-r-plus-08-2024",name:"Command R+ (Aug 2024)"},{id:"command-r-08-2024",name:"Command R (Aug 2024)"},{id:"command-a-03-2025",name:"Command A (Mar 2025)"}],nvidia:[{id:"moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"z-ai/glm4.7",name:"GLM 4.7"},{id:"deepseek-ai/deepseek-v3.2",name:"DeepSeek V3.2"},{id:"nvidia/llama-3.3-70b-instruct",name:"Llama 3.3 70B"},{id:"meta/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"deepseek/deepseek-r1",name:"DeepSeek R1"}],nebius:[{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"}],siliconflow:[{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"deepseek-ai/DeepSeek-V3.1",name:"DeepSeek V3.1"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B-Instruct-2507",name:"Qwen3 235B"},{id:"Qwen/Qwen3-Coder-480B-A35B-Instruct",name:"Qwen3 Coder 480B"},{id:"Qwen/Qwen3-32B",name:"Qwen3 32B"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"zai-org/GLM-4.7",name:"GLM 4.7"},{id:"openai/gpt-oss-120b",name:"GPT OSS 120B"},{id:"baidu/ERNIE-4.5-300B-A47B",name:"ERNIE 4.5 300B"}],hyperbolic:[{id:"Qwen/QwQ-32B",name:"QwQ 32B"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3"},{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B"},{id:"meta-llama/Llama-3.2-3B-Instruct",name:"Llama 3.2 3B"},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B"},{id:"Qwen/Qwen2.5-Coder-32B-Instruct",name:"Qwen 2.5 Coder 32B"},{id:"NousResearch/Hermes-3-Llama-3.1-70B",name:"Hermes 3 70B"}]},o={claude:"cc",codex:"cx","gemini-cli":"gc",qwen:"qw",iflow:"if",antigravity:"ag",github:"gh",kiro:"kr",cursor:"cu","kimi-coding":"kmc",kilocode:"kc",cline:"cl",openai:"openai",anthropic:"anthropic",gemini:"gemini",openrouter:"openrouter",glm:"glm","glm-cn":"glm-cn",kimi:"kimi",minimax:"minimax","minimax-cn":"minimax-cn",deepseek:"deepseek",groq:"groq",xai:"xai",mistral:"mistral",perplexity:"perplexity",together:"together",fireworks:"fireworks",cerebras:"cerebras",cohere:"cohere",nvidia:"nvidia",nebius:"nebius",siliconflow:"siliconflow",hyperbolic:"hyperbolic"};function m(e){return n[o[e]||e]||[]}},21110:(e,i,a)=>{a.d(i,{ThemeProvider:()=>d});var n=a(95155),o=a(12115),m=a(90085);function d({children:e}){let{initTheme:i}=(0,m.A)();return(0,o.useEffect)(()=>{i()},[i]),(0,n.jsx)(n.Fragment,{children:e})}},28777:(e,i,a)=>{a.d(i,{KC:()=>n.KC,Xg:()=>n.Xg});var n=a(13097);Object.entries(a(52679).Q2).filter(([,e])=>e.passthroughModels).map(([e])=>e),Object.entries(n.vq).flatMap(([e,i])=>i.map(i=>({provider:e,model:i.id,name:i.name})))},52679:(e,i,a)=>{a.d(i,{DI:()=>t,IS:()=>n,JH:()=>d,MA:()=>c,Q2:()=>s,fg:()=>m,gb:()=>l,mq:()=>r,wG:()=>u,wb:()=>g,zN:()=>o,zt:()=>p});let n={iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4"},kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"}},o={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B"},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6"},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333"},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA"}},m={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai"},glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com"},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com"},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com"},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com"},gemini:{id:"gemini",alias:"gemini",name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev"},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com"},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com"},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai"},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai"},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai"},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai"},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai"},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://www.cerebras.ai"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim"},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com"},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com"},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz"},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com"},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com"},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana",icon:"image",color:"#FFD700",textIcon:"NB",website:"https://nanobananaapi.ai"}},d="openai-compatible-",t="anthropic-compatible-";function r(e){return"string"==typeof e&&e.startsWith(d)}function l(e){return"string"==typeof e&&e.startsWith(t)}let s={...n,...o,...m},c={oauth:{id:"oauth",name:"OAuth",icon:"lock"},apikey:{id:"apikey",name:"API Key",icon:"key"}};function p(e){for(let i of Object.values(s))if(i.alias===e||i.id===e)return i;return null}function u(e){let i=s[e];return i?.alias||e}Object.values(s).reduce((e,i)=>(e[i.alias]=i.id,e),{}),Object.values(s).reduce((e,i)=>(e[i.id]=i.alias,e),{});let g=["antigravity","kiro","github","codex"]},90085:(e,i,a)=>{a.d(i,{A:()=>t});var n=a(1934),o=a(31692),m=a(90620);function d(e){let i=document.documentElement,a=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";"dark"===("system"===e?a:e)?i.classList.add("dark"):i.classList.remove("dark")}let t=(0,n.v)((0,o.Zr)((e,i)=>({theme:m.B2.defaultTheme,setTheme:i=>{e({theme:i}),d(i)},toggleTheme:()=>{let a="dark"===i().theme?"light":"dark";e({theme:a}),d(a)},initTheme:()=>{d(i().theme)}}),{name:m.B2.storageKey}))},90620:(e,i,a)=>{a.d(i,{Q2:()=>n.Q2,fg:()=>n.fg,vQ:()=>o,MA:()=>n.MA,zN:()=>n.zN,B2:()=>m});var n=a(52679);a(28777);let o={name:"Endpoint Proxy",description:"AI Infrastructure Management",version:"0.2.94"},m={storageKey:"theme",defaultTheme:"system"}}}]);
@@ -4,7 +4,7 @@
4
4
  "model": "{{model}}",
5
5
  "provider": "openai",
6
6
  "apiKey": "{{apiKey}}"
7
- }`}},antigravity:{id:"antigravity",name:"Antigravity",image:"/providers/antigravity.png",color:"#4285F4",description:"Google Antigravity IDE with MITM",configType:"mitm",modelAliases:["claude-opus-4-6-thinking","claude-sonnet-4-6","gemini-3-flash","gpt-oss-120b-medium","gemini-3-pro-high","gemini-3-pro-low"],defaultModels:[{id:"gemini-3-pro-high",name:"Gemini 3 Pro High",alias:"gemini-3-pro-high"},{id:"gemini-3-pro-low",name:"Gemini 3 Pro Low",alias:"gemini-3-pro-low"},{id:"gemini-3-flash",name:"Gemini 3 Flash",alias:"gemini-3-flash"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",alias:"claude-sonnet-4-6"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking",alias:"claude-opus-4-6-thinking"},{id:"gpt-oss-120b-medium",name:"GPT OSS 120B Medium",alias:"gpt-oss-120b-medium"}]}};var n=s(28777),o=s(5772);let d="https://9router.com";function c({tool:e,isExpanded:t,onToggle:s,activeProviders:i,modelMappings:n,onModelMappingChange:c,baseUrl:x,hasActiveProviders:m,apiKeys:p,cloudEnabled:u}){let h,g,f,[y,b]=(0,a.useState)(null),[j,v]=(0,a.useState)(!1),[N,w]=(0,a.useState)(!1),[k,C]=(0,a.useState)(!1),[S,_]=(0,a.useState)(null),[A,E]=(0,a.useState)(!1),[O,I]=(0,a.useState)(!1),[P,M]=(0,a.useState)(null),[R,T]=(0,a.useState)(""),[$,K]=(0,a.useState)({}),[L,U]=(0,a.useState)(!1),[F,z]=(0,a.useState)(""),D=(0,a.useRef)(!1),H=(()=>{if(!y?.installed)return null;let e=y.settings?.env?.ANTHROPIC_BASE_URL;if(!e)return"not_configured";let t=e.includes("localhost")||e.includes("127.0.0.1"),s=u&&d&&e.startsWith(d),l=x&&e.startsWith(x);return t||s||l?"configured":"other"})();(0,a.useEffect)(()=>{p?.length>0&&!R&&T(p[0].key)},[p,R]),(0,a.useEffect)(()=>{t&&!y&&(W(),B())},[t,y]);let B=async()=>{try{let e=await fetch("/api/models/alias"),t=await e.json();e.ok&&K(t.aliases||{})}catch(e){console.log("Error fetching model aliases:",e)}};(0,a.useEffect)(()=>{if(y?.installed&&!D.current){D.current=!0;let t=y.settings?.env||{};e.defaultModels.forEach(e=>{if(e.envKey){let s=t[e.envKey]||e.defaultValue||"";s&&c(e.alias,s)}});let s=t.ANTHROPIC_AUTH_TOKEN;s&&p?.some(e=>e.key===s)&&T(s)}},[y,p,e.defaultModels,c]);let W=async()=>{v(!0);try{let e=await fetch("/api/cli-tools/claude-settings"),t=await e.json();b(t)}catch(e){b({installed:!1,error:e.message})}finally{v(!1)}},q=()=>{let e=F||x;return e.endsWith("/v1")?e:`${e}/v1`},G=async()=>{w(!0),_(null);try{let t={ANTHROPIC_BASE_URL:q()},s=R?.trim()||(p?.length>0?p[0].key:null)||(u?null:"sk_9router");s&&(t.ANTHROPIC_AUTH_TOKEN=s),e.defaultModels.forEach(e=>{let s=n[e.alias];s&&e.envKey&&(t[e.envKey]=s)});let l=await fetch("/api/cli-tools/claude-settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({env:t})}),a=await l.json();l.ok?(_({type:"success",text:"Settings applied successfully!"}),b(e=>({...e,hasBackup:!0,settings:{...e?.settings,env:t}}))):_({type:"error",text:a.error||"Failed to apply settings"})}catch(e){_({type:"error",text:e.message})}finally{w(!1)}},J=async()=>{C(!0),_(null);try{let t=await fetch("/api/cli-tools/claude-settings",{method:"DELETE"}),s=await t.json();t.ok?(_({type:"success",text:"Settings reset successfully!"}),e.defaultModels.forEach(e=>c(e.alias,e.defaultValue||"")),T("")):_({type:"error",text:s.error||"Failed to reset settings"})}catch(e){_({type:"error",text:e.message})}finally{C(!1)}};return(0,l.jsxs)(r.Zp,{padding:"sm",className:"overflow-hidden",children:[(0,l.jsxs)("div",{className:"flex items-center justify-between hover:cursor-pointer",onClick:s,children:[(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)("div",{className:"size-8 flex items-center justify-center shrink-0",children:(0,l.jsx)(o.default,{src:"/providers/claude.png",alt:e.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:e=>{e.target.style.display="none"}})}),(0,l.jsxs)("div",{className:"min-w-0",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("h3",{className:"font-medium text-sm",children:e.name}),"configured"===H&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-green-500/10 text-green-600 dark:text-green-400 rounded-full",children:"Connected"}),"not_configured"===H&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-yellow-500/10 text-yellow-600 dark:text-yellow-400 rounded-full",children:"Not configured"}),"other"===H&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-blue-500/10 text-blue-600 dark:text-blue-400 rounded-full",children:"Other"})]}),(0,l.jsx)("p",{className:"text-xs text-text-muted truncate",children:e.description})]})]}),(0,l.jsx)("span",{className:`material-symbols-outlined text-text-muted text-[20px] transition-transform ${t?"rotate-180":""}`,children:"expand_more"})]}),t&&(0,l.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex flex-col gap-4",children:[j&&(0,l.jsxs)("div",{className:"flex items-center gap-2 text-text-muted",children:[(0,l.jsx)("span",{className:"material-symbols-outlined animate-spin",children:"progress_activity"}),(0,l.jsx)("span",{children:"Checking Claude CLI..."})]}),!j&&y&&!y.installed&&(0,l.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,l.jsxs)("div",{className:"flex items-center gap-3 p-4 bg-yellow-500/10 border border-yellow-500/30 rounded-lg",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-yellow-500",children:"warning"}),(0,l.jsxs)("div",{className:"flex-1",children:[(0,l.jsx)("p",{className:"font-medium text-yellow-600 dark:text-yellow-400",children:"Claude CLI not installed"}),(0,l.jsx)("p",{className:"text-sm text-text-muted",children:"Please install Claude CLI to use this feature."})]}),(0,l.jsxs)(r.$n,{variant:"outline",size:"sm",onClick:()=>E(!A),children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px] mr-1",children:A?"expand_less":"help"}),A?"Hide":"How to Install"]})]}),A&&(0,l.jsxs)("div",{className:"p-4 bg-surface border border-border rounded-lg",children:[(0,l.jsx)("h4",{className:"font-medium mb-3",children:"Installation Guide"}),(0,l.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-text-muted mb-1",children:"macOS / Linux / Windows:"}),(0,l.jsx)("code",{className:"block px-3 py-2 bg-black/5 dark:bg-white/5 rounded font-mono text-xs",children:"npm install -g @anthropic-ai/claude-code"})]}),(0,l.jsxs)("p",{className:"text-text-muted",children:["After installation, run ",(0,l.jsx)("code",{className:"px-1 bg-black/5 dark:bg-white/5 rounded",children:"claude"})," to verify."]})]})]})]}),!j&&y?.installed&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"flex flex-col gap-2",children:[y?.settings?.env?.ANTHROPIC_BASE_URL&&(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"Current"}),(0,l.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,l.jsx)("span",{className:"flex-1 px-2 py-1.5 text-xs text-text-muted truncate",children:y.settings.env.ANTHROPIC_BASE_URL})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"Base URL"}),(0,l.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,l.jsx)("input",{type:"text",value:(h=F||x).endsWith("/v1")?h:`${h}/v1`,onChange:e=>z(e.target.value),placeholder:"https://.../v1",className:"flex-1 px-2 py-1.5 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50"}),F&&F!==x&&(0,l.jsx)("button",{onClick:()=>z(""),className:"p-1 text-text-muted hover:text-primary rounded transition-colors",title:"Reset to default",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"restart_alt"})})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"API Key"}),(0,l.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),p.length>0?(0,l.jsx)("select",{value:R,onChange:e=>T(e.target.value),className:"flex-1 px-2 py-1.5 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50",children:p.map(e=>(0,l.jsx)("option",{value:e.key,children:e.key},e.id))}):(0,l.jsx)("span",{className:"flex-1 text-xs text-text-muted px-2 py-1.5",children:u?"No API keys - Create one in Keys page":"sk_9router (default)"})]}),e.defaultModels.map(e=>(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:e.name}),(0,l.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,l.jsx)("input",{type:"text",value:n[e.alias]||"",onChange:t=>c(e.alias,t.target.value),placeholder:"provider/model-id",className:"flex-1 px-2 py-1.5 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50"}),(0,l.jsx)("button",{onClick:()=>{M(e.alias),I(!0)},disabled:!m,className:`px-2 py-1.5 rounded border text-xs transition-colors shrink-0 whitespace-nowrap ${m?"bg-surface border-border text-text-main hover:border-primary cursor-pointer":"opacity-50 cursor-not-allowed border-border"}`,children:"Select Model"}),n[e.alias]&&(0,l.jsx)("button",{onClick:()=>c(e.alias,""),className:"p-1 text-text-muted hover:text-red-500 rounded transition-colors",title:"Clear",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]},e.alias))]}),S&&(0,l.jsxs)("div",{className:`flex items-center gap-2 px-2 py-1.5 rounded text-xs ${"success"===S.type?"bg-green-500/10 text-green-600":"bg-red-500/10 text-red-600"}`,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"success"===S.type?"check_circle":"error"}),(0,l.jsx)("span",{children:S.text})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsxs)(r.$n,{variant:"primary",size:"sm",onClick:G,disabled:!m,loading:N,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"save"}),"Apply"]}),(0,l.jsxs)(r.$n,{variant:"outline",size:"sm",onClick:J,disabled:!y?.has9Router,loading:k,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"restore"}),"Reset"]}),(0,l.jsxs)(r.$n,{variant:"ghost",size:"sm",onClick:()=>U(!0),children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"content_copy"}),"Manual Config"]})]})]})]}),(0,l.jsx)(r.rq,{isOpen:O,onClose:()=>I(!1),onSelect:e=>{P&&c(P,e.value)},selectedModel:P?n[P]:null,activeProviders:i,modelAliases:$,title:`Select model for ${P}`}),(0,l.jsx)(r.uR,{isOpen:L,onClose:()=>U(!1),title:"Claude CLI - Manual Configuration",configs:(g=R&&R.trim()?R:u?"<API_KEY_FROM_DASHBOARD>":"sk_9router",f={ANTHROPIC_BASE_URL:q(),ANTHROPIC_AUTH_TOKEN:g},e.defaultModels.forEach(e=>{let t=n[e.alias];t&&e.envKey&&(f[e.envKey]=t)}),[{filename:"~/.claude/settings.json",content:JSON.stringify({env:f},null,2)}])})]})}function x({tool:e,isExpanded:t,onToggle:s,baseUrl:i,apiKeys:n,activeProviders:d,cloudEnabled:c}){let x,m,p,[u,h]=(0,a.useState)(null),[g,f]=(0,a.useState)(!1),[y,b]=(0,a.useState)(!1),[j,v]=(0,a.useState)(!1),[N,w]=(0,a.useState)(null),[k,C]=(0,a.useState)(!1),[S,_]=(0,a.useState)(""),[A,E]=(0,a.useState)(""),[O,I]=(0,a.useState)(!1),[P,M]=(0,a.useState)({}),[R,T]=(0,a.useState)(!1),[$,K]=(0,a.useState)("");(0,a.useEffect)(()=>{n?.length>0&&!S&&_(n[0].key)},[n,S]),(0,a.useEffect)(()=>{t&&!u&&(z(),L())},[t,u]);let L=async()=>{try{let e=await fetch("/api/models/alias"),t=await e.json();e.ok&&M(t.aliases||{})}catch(e){console.log("Error fetching model aliases:",e)}};(0,a.useEffect)(()=>{if(u?.config){let e=u.config.match(/^model\s*=\s*"([^"]+)"/m);e&&E(e[1])}},[u]);let U=u?.installed?u.config?u.config.includes(i)||u.config.includes("localhost")||u.config.includes("127.0.0.1")?"configured":"other":"not_configured":null,F=()=>{let e=$||`${i}/v1`;return e.endsWith("/v1")?e:`${e}/v1`},z=async()=>{f(!0);try{let e=await fetch("/api/cli-tools/codex-settings"),t=await e.json();h(t)}catch(e){h({installed:!1,error:e.message})}finally{f(!1)}},D=async()=>{b(!0),w(null);try{let e=S&&S.trim()||c?S:"sk_9router",t=await fetch("/api/cli-tools/codex-settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:F(),apiKey:e,model:A})}),s=await t.json();t.ok?(w({type:"success",text:"Settings applied successfully!"}),z()):w({type:"error",text:s.error||"Failed to apply settings"})}catch(e){w({type:"error",text:e.message})}finally{b(!1)}},H=async()=>{v(!0),w(null);try{let e=await fetch("/api/cli-tools/codex-settings",{method:"DELETE"}),t=await e.json();e.ok?(w({type:"success",text:"Settings reset successfully!"}),E(""),z()):w({type:"error",text:t.error||"Failed to reset settings"})}catch(e){w({type:"error",text:e.message})}finally{v(!1)}};return(0,l.jsxs)(r.Zp,{padding:"sm",className:"overflow-hidden",children:[(0,l.jsxs)("div",{className:"flex items-center justify-between hover:cursor-pointer",onClick:s,children:[(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)("div",{className:"size-8 flex items-center justify-center shrink-0",children:(0,l.jsx)(o.default,{src:"/providers/codex.png",alt:e.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:e=>{e.target.style.display="none"}})}),(0,l.jsxs)("div",{className:"min-w-0",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("h3",{className:"font-medium text-sm",children:e.name}),"configured"===U&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-green-500/10 text-green-600 dark:text-green-400 rounded-full",children:"Connected"}),"not_configured"===U&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-yellow-500/10 text-yellow-600 dark:text-yellow-400 rounded-full",children:"Not configured"}),"other"===U&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-blue-500/10 text-blue-600 dark:text-blue-400 rounded-full",children:"Other"})]}),(0,l.jsx)("p",{className:"text-xs text-text-muted truncate",children:e.description})]})]}),(0,l.jsx)("span",{className:`material-symbols-outlined text-text-muted text-[20px] transition-transform ${t?"rotate-180":""}`,children:"expand_more"})]}),t&&(0,l.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex flex-col gap-4",children:[g&&(0,l.jsxs)("div",{className:"flex items-center gap-2 text-text-muted",children:[(0,l.jsx)("span",{className:"material-symbols-outlined animate-spin",children:"progress_activity"}),(0,l.jsx)("span",{children:"Checking Codex CLI..."})]}),!g&&u&&!u.installed&&(0,l.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,l.jsxs)("div",{className:"flex items-center gap-3 p-4 bg-yellow-500/10 border border-yellow-500/30 rounded-lg",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-yellow-500",children:"warning"}),(0,l.jsxs)("div",{className:"flex-1",children:[(0,l.jsx)("p",{className:"font-medium text-yellow-600 dark:text-yellow-400",children:"Codex CLI not installed"}),(0,l.jsx)("p",{className:"text-sm text-text-muted",children:"Please install Codex CLI to use auto-apply feature."})]}),(0,l.jsxs)(r.$n,{variant:"outline",size:"sm",onClick:()=>C(!k),children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px] mr-1",children:k?"expand_less":"help"}),k?"Hide":"How to Install"]})]}),k&&(0,l.jsxs)("div",{className:"p-4 bg-surface border border-border rounded-lg",children:[(0,l.jsx)("h4",{className:"font-medium mb-3",children:"Installation Guide"}),(0,l.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-text-muted mb-1",children:"macOS / Linux / Windows:"}),(0,l.jsx)("code",{className:"block px-3 py-2 bg-black/5 dark:bg-white/5 rounded font-mono text-xs",children:"npm install -g @openai/codex"})]}),(0,l.jsxs)("p",{className:"text-text-muted",children:["After installation, run ",(0,l.jsx)("code",{className:"px-1 bg-black/5 dark:bg-white/5 rounded",children:"codex"})," to verify."]}),(0,l.jsx)("div",{className:"pt-2 border-t border-border",children:(0,l.jsxs)("p",{className:"text-text-muted text-xs",children:["Codex uses ",(0,l.jsx)("code",{className:"px-1 bg-black/5 dark:bg-white/5 rounded",children:"~/.codex/auth.json"})," with ",(0,l.jsx)("code",{className:"px-1 bg-black/5 dark:bg-white/5 rounded",children:"OPENAI_API_KEY"}),'. Click "Apply" to auto-configure.']})})]})]})]}),!g&&u?.installed&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"flex flex-col gap-2",children:[u?.config&&((m=(x=u.config.match(/base_url\s*=\s*"([^"]+)"/))?x[1]:null)?(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"Current"}),(0,l.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,l.jsx)("span",{className:"flex-1 px-2 py-1.5 text-xs text-text-muted truncate",children:m})]}):null),(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"Base URL"}),(0,l.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,l.jsx)("input",{type:"text",value:$||`${i}/v1`,onChange:e=>K(e.target.value),placeholder:"https://.../v1",className:"flex-1 px-2 py-1.5 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50"}),$&&$!==`${i}/v1`&&(0,l.jsx)("button",{onClick:()=>K(""),className:"p-1 text-text-muted hover:text-primary rounded transition-colors",title:"Reset to default",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"restart_alt"})})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"API Key"}),(0,l.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),n.length>0?(0,l.jsx)("select",{value:S,onChange:e=>_(e.target.value),className:"flex-1 px-2 py-1.5 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50",children:n.map(e=>(0,l.jsx)("option",{value:e.key,children:e.key},e.id))}):(0,l.jsx)("span",{className:"flex-1 text-xs text-text-muted px-2 py-1.5",children:c?"No API keys - Create one in Keys page":"sk_9router (default)"})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"Model"}),(0,l.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,l.jsx)("input",{type:"text",value:A,onChange:e=>E(e.target.value),placeholder:"provider/model-id",className:"flex-1 px-2 py-1.5 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50"}),(0,l.jsx)("button",{onClick:()=>I(!0),disabled:!d?.length,className:`px-2 py-1.5 rounded border text-xs transition-colors shrink-0 whitespace-nowrap ${d?.length?"bg-surface border-border text-text-main hover:border-primary cursor-pointer":"opacity-50 cursor-not-allowed border-border"}`,children:"Select Model"}),A&&(0,l.jsx)("button",{onClick:()=>E(""),className:"p-1 text-text-muted hover:text-red-500 rounded transition-colors",title:"Clear",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]})]}),N&&(0,l.jsxs)("div",{className:`flex items-center gap-2 px-2 py-1.5 rounded text-xs ${"success"===N.type?"bg-green-500/10 text-green-600":"bg-red-500/10 text-red-600"}`,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"success"===N.type?"check_circle":"error"}),(0,l.jsx)("span",{children:N.text})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsxs)(r.$n,{variant:"primary",size:"sm",onClick:D,disabled:!S||!A,loading:y,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"save"}),"Apply"]}),(0,l.jsxs)(r.$n,{variant:"outline",size:"sm",onClick:H,disabled:!u.has9Router,loading:j,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"restore"}),"Reset"]}),(0,l.jsxs)(r.$n,{variant:"ghost",size:"sm",onClick:()=>T(!0),children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"content_copy"}),"Manual Config"]})]})]})]}),(0,l.jsx)(r.rq,{isOpen:O,onClose:()=>I(!1),onSelect:e=>{E(e.value),I(!1)},selectedModel:A,activeProviders:d,modelAliases:P,title:"Select Model for Codex"}),(0,l.jsx)(r.uR,{isOpen:R,onClose:()=>T(!1),title:"Codex CLI - Manual Configuration",configs:(p=S&&S.trim()?S:c?"<API_KEY_FROM_DASHBOARD>":"sk_9router",[{filename:"~/.codex/config.toml",content:`# 9Router Configuration for Codex CLI
7
+ }`}},antigravity:{id:"antigravity",name:"Antigravity",image:"/providers/antigravity.png",color:"#4285F4",description:"Google Antigravity IDE with MITM",configType:"mitm",modelAliases:["claude-opus-4-6-thinking","claude-sonnet-4-6","gemini-3-flash","gpt-oss-120b-medium","gemini-3-pro-high","gemini-3-pro-low"],defaultModels:[{id:"gemini-3.1-pro-high",name:"Gemini 3.1 Pro High",alias:"gemini-3.1-pro-high"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro Low",alias:"gemini-3.1-pro-low"},{id:"gemini-3-flash",name:"Gemini 3 Flash",alias:"gemini-3-flash"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",alias:"claude-sonnet-4-6"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking",alias:"claude-opus-4-6-thinking"},{id:"gpt-oss-120b-medium",name:"GPT OSS 120B Medium",alias:"gpt-oss-120b-medium"}]}};var n=s(28777),o=s(5772);let d="https://9router.com";function c({tool:e,isExpanded:t,onToggle:s,activeProviders:i,modelMappings:n,onModelMappingChange:c,baseUrl:x,hasActiveProviders:m,apiKeys:p,cloudEnabled:u}){let h,g,f,[y,b]=(0,a.useState)(null),[j,v]=(0,a.useState)(!1),[N,w]=(0,a.useState)(!1),[k,C]=(0,a.useState)(!1),[S,_]=(0,a.useState)(null),[A,E]=(0,a.useState)(!1),[O,I]=(0,a.useState)(!1),[P,M]=(0,a.useState)(null),[R,T]=(0,a.useState)(""),[$,K]=(0,a.useState)({}),[L,U]=(0,a.useState)(!1),[F,z]=(0,a.useState)(""),D=(0,a.useRef)(!1),H=(()=>{if(!y?.installed)return null;let e=y.settings?.env?.ANTHROPIC_BASE_URL;if(!e)return"not_configured";let t=e.includes("localhost")||e.includes("127.0.0.1"),s=u&&d&&e.startsWith(d),l=x&&e.startsWith(x);return t||s||l?"configured":"other"})();(0,a.useEffect)(()=>{p?.length>0&&!R&&T(p[0].key)},[p,R]),(0,a.useEffect)(()=>{t&&!y&&(W(),B())},[t,y]);let B=async()=>{try{let e=await fetch("/api/models/alias"),t=await e.json();e.ok&&K(t.aliases||{})}catch(e){console.log("Error fetching model aliases:",e)}};(0,a.useEffect)(()=>{if(y?.installed&&!D.current){D.current=!0;let t=y.settings?.env||{};e.defaultModels.forEach(e=>{if(e.envKey){let s=t[e.envKey]||e.defaultValue||"";s&&c(e.alias,s)}});let s=t.ANTHROPIC_AUTH_TOKEN;s&&p?.some(e=>e.key===s)&&T(s)}},[y,p,e.defaultModels,c]);let W=async()=>{v(!0);try{let e=await fetch("/api/cli-tools/claude-settings"),t=await e.json();b(t)}catch(e){b({installed:!1,error:e.message})}finally{v(!1)}},q=()=>{let e=F||x;return e.endsWith("/v1")?e:`${e}/v1`},G=async()=>{w(!0),_(null);try{let t={ANTHROPIC_BASE_URL:q()},s=R?.trim()||(p?.length>0?p[0].key:null)||(u?null:"sk_9router");s&&(t.ANTHROPIC_AUTH_TOKEN=s),e.defaultModels.forEach(e=>{let s=n[e.alias];s&&e.envKey&&(t[e.envKey]=s)});let l=await fetch("/api/cli-tools/claude-settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({env:t})}),a=await l.json();l.ok?(_({type:"success",text:"Settings applied successfully!"}),b(e=>({...e,hasBackup:!0,settings:{...e?.settings,env:t}}))):_({type:"error",text:a.error||"Failed to apply settings"})}catch(e){_({type:"error",text:e.message})}finally{w(!1)}},J=async()=>{C(!0),_(null);try{let t=await fetch("/api/cli-tools/claude-settings",{method:"DELETE"}),s=await t.json();t.ok?(_({type:"success",text:"Settings reset successfully!"}),e.defaultModels.forEach(e=>c(e.alias,e.defaultValue||"")),T("")):_({type:"error",text:s.error||"Failed to reset settings"})}catch(e){_({type:"error",text:e.message})}finally{C(!1)}};return(0,l.jsxs)(r.Zp,{padding:"sm",className:"overflow-hidden",children:[(0,l.jsxs)("div",{className:"flex items-center justify-between hover:cursor-pointer",onClick:s,children:[(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)("div",{className:"size-8 flex items-center justify-center shrink-0",children:(0,l.jsx)(o.default,{src:"/providers/claude.png",alt:e.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:e=>{e.target.style.display="none"}})}),(0,l.jsxs)("div",{className:"min-w-0",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("h3",{className:"font-medium text-sm",children:e.name}),"configured"===H&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-green-500/10 text-green-600 dark:text-green-400 rounded-full",children:"Connected"}),"not_configured"===H&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-yellow-500/10 text-yellow-600 dark:text-yellow-400 rounded-full",children:"Not configured"}),"other"===H&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-blue-500/10 text-blue-600 dark:text-blue-400 rounded-full",children:"Other"})]}),(0,l.jsx)("p",{className:"text-xs text-text-muted truncate",children:e.description})]})]}),(0,l.jsx)("span",{className:`material-symbols-outlined text-text-muted text-[20px] transition-transform ${t?"rotate-180":""}`,children:"expand_more"})]}),t&&(0,l.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex flex-col gap-4",children:[j&&(0,l.jsxs)("div",{className:"flex items-center gap-2 text-text-muted",children:[(0,l.jsx)("span",{className:"material-symbols-outlined animate-spin",children:"progress_activity"}),(0,l.jsx)("span",{children:"Checking Claude CLI..."})]}),!j&&y&&!y.installed&&(0,l.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,l.jsxs)("div",{className:"flex items-center gap-3 p-4 bg-yellow-500/10 border border-yellow-500/30 rounded-lg",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-yellow-500",children:"warning"}),(0,l.jsxs)("div",{className:"flex-1",children:[(0,l.jsx)("p",{className:"font-medium text-yellow-600 dark:text-yellow-400",children:"Claude CLI not installed"}),(0,l.jsx)("p",{className:"text-sm text-text-muted",children:"Please install Claude CLI to use this feature."})]}),(0,l.jsxs)(r.$n,{variant:"outline",size:"sm",onClick:()=>E(!A),children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px] mr-1",children:A?"expand_less":"help"}),A?"Hide":"How to Install"]})]}),A&&(0,l.jsxs)("div",{className:"p-4 bg-surface border border-border rounded-lg",children:[(0,l.jsx)("h4",{className:"font-medium mb-3",children:"Installation Guide"}),(0,l.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-text-muted mb-1",children:"macOS / Linux / Windows:"}),(0,l.jsx)("code",{className:"block px-3 py-2 bg-black/5 dark:bg-white/5 rounded font-mono text-xs",children:"npm install -g @anthropic-ai/claude-code"})]}),(0,l.jsxs)("p",{className:"text-text-muted",children:["After installation, run ",(0,l.jsx)("code",{className:"px-1 bg-black/5 dark:bg-white/5 rounded",children:"claude"})," to verify."]})]})]})]}),!j&&y?.installed&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"flex flex-col gap-2",children:[y?.settings?.env?.ANTHROPIC_BASE_URL&&(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"Current"}),(0,l.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,l.jsx)("span",{className:"flex-1 px-2 py-1.5 text-xs text-text-muted truncate",children:y.settings.env.ANTHROPIC_BASE_URL})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"Base URL"}),(0,l.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,l.jsx)("input",{type:"text",value:(h=F||x).endsWith("/v1")?h:`${h}/v1`,onChange:e=>z(e.target.value),placeholder:"https://.../v1",className:"flex-1 px-2 py-1.5 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50"}),F&&F!==x&&(0,l.jsx)("button",{onClick:()=>z(""),className:"p-1 text-text-muted hover:text-primary rounded transition-colors",title:"Reset to default",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"restart_alt"})})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"API Key"}),(0,l.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),p.length>0?(0,l.jsx)("select",{value:R,onChange:e=>T(e.target.value),className:"flex-1 px-2 py-1.5 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50",children:p.map(e=>(0,l.jsx)("option",{value:e.key,children:e.key},e.id))}):(0,l.jsx)("span",{className:"flex-1 text-xs text-text-muted px-2 py-1.5",children:u?"No API keys - Create one in Keys page":"sk_9router (default)"})]}),e.defaultModels.map(e=>(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:e.name}),(0,l.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,l.jsx)("input",{type:"text",value:n[e.alias]||"",onChange:t=>c(e.alias,t.target.value),placeholder:"provider/model-id",className:"flex-1 px-2 py-1.5 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50"}),(0,l.jsx)("button",{onClick:()=>{M(e.alias),I(!0)},disabled:!m,className:`px-2 py-1.5 rounded border text-xs transition-colors shrink-0 whitespace-nowrap ${m?"bg-surface border-border text-text-main hover:border-primary cursor-pointer":"opacity-50 cursor-not-allowed border-border"}`,children:"Select Model"}),n[e.alias]&&(0,l.jsx)("button",{onClick:()=>c(e.alias,""),className:"p-1 text-text-muted hover:text-red-500 rounded transition-colors",title:"Clear",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]},e.alias))]}),S&&(0,l.jsxs)("div",{className:`flex items-center gap-2 px-2 py-1.5 rounded text-xs ${"success"===S.type?"bg-green-500/10 text-green-600":"bg-red-500/10 text-red-600"}`,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"success"===S.type?"check_circle":"error"}),(0,l.jsx)("span",{children:S.text})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsxs)(r.$n,{variant:"primary",size:"sm",onClick:G,disabled:!m,loading:N,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"save"}),"Apply"]}),(0,l.jsxs)(r.$n,{variant:"outline",size:"sm",onClick:J,disabled:!y?.has9Router,loading:k,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"restore"}),"Reset"]}),(0,l.jsxs)(r.$n,{variant:"ghost",size:"sm",onClick:()=>U(!0),children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"content_copy"}),"Manual Config"]})]})]})]}),(0,l.jsx)(r.rq,{isOpen:O,onClose:()=>I(!1),onSelect:e=>{P&&c(P,e.value)},selectedModel:P?n[P]:null,activeProviders:i,modelAliases:$,title:`Select model for ${P}`}),(0,l.jsx)(r.uR,{isOpen:L,onClose:()=>U(!1),title:"Claude CLI - Manual Configuration",configs:(g=R&&R.trim()?R:u?"<API_KEY_FROM_DASHBOARD>":"sk_9router",f={ANTHROPIC_BASE_URL:q(),ANTHROPIC_AUTH_TOKEN:g},e.defaultModels.forEach(e=>{let t=n[e.alias];t&&e.envKey&&(f[e.envKey]=t)}),[{filename:"~/.claude/settings.json",content:JSON.stringify({env:f},null,2)}])})]})}function x({tool:e,isExpanded:t,onToggle:s,baseUrl:i,apiKeys:n,activeProviders:d,cloudEnabled:c}){let x,m,p,[u,h]=(0,a.useState)(null),[g,f]=(0,a.useState)(!1),[y,b]=(0,a.useState)(!1),[j,v]=(0,a.useState)(!1),[N,w]=(0,a.useState)(null),[k,C]=(0,a.useState)(!1),[S,_]=(0,a.useState)(""),[A,E]=(0,a.useState)(""),[O,I]=(0,a.useState)(!1),[P,M]=(0,a.useState)({}),[R,T]=(0,a.useState)(!1),[$,K]=(0,a.useState)("");(0,a.useEffect)(()=>{n?.length>0&&!S&&_(n[0].key)},[n,S]),(0,a.useEffect)(()=>{t&&!u&&(z(),L())},[t,u]);let L=async()=>{try{let e=await fetch("/api/models/alias"),t=await e.json();e.ok&&M(t.aliases||{})}catch(e){console.log("Error fetching model aliases:",e)}};(0,a.useEffect)(()=>{if(u?.config){let e=u.config.match(/^model\s*=\s*"([^"]+)"/m);e&&E(e[1])}},[u]);let U=u?.installed?u.config?u.config.includes(i)||u.config.includes("localhost")||u.config.includes("127.0.0.1")?"configured":"other":"not_configured":null,F=()=>{let e=$||`${i}/v1`;return e.endsWith("/v1")?e:`${e}/v1`},z=async()=>{f(!0);try{let e=await fetch("/api/cli-tools/codex-settings"),t=await e.json();h(t)}catch(e){h({installed:!1,error:e.message})}finally{f(!1)}},D=async()=>{b(!0),w(null);try{let e=S&&S.trim()||c?S:"sk_9router",t=await fetch("/api/cli-tools/codex-settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:F(),apiKey:e,model:A})}),s=await t.json();t.ok?(w({type:"success",text:"Settings applied successfully!"}),z()):w({type:"error",text:s.error||"Failed to apply settings"})}catch(e){w({type:"error",text:e.message})}finally{b(!1)}},H=async()=>{v(!0),w(null);try{let e=await fetch("/api/cli-tools/codex-settings",{method:"DELETE"}),t=await e.json();e.ok?(w({type:"success",text:"Settings reset successfully!"}),E(""),z()):w({type:"error",text:t.error||"Failed to reset settings"})}catch(e){w({type:"error",text:e.message})}finally{v(!1)}};return(0,l.jsxs)(r.Zp,{padding:"sm",className:"overflow-hidden",children:[(0,l.jsxs)("div",{className:"flex items-center justify-between hover:cursor-pointer",onClick:s,children:[(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)("div",{className:"size-8 flex items-center justify-center shrink-0",children:(0,l.jsx)(o.default,{src:"/providers/codex.png",alt:e.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:e=>{e.target.style.display="none"}})}),(0,l.jsxs)("div",{className:"min-w-0",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("h3",{className:"font-medium text-sm",children:e.name}),"configured"===U&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-green-500/10 text-green-600 dark:text-green-400 rounded-full",children:"Connected"}),"not_configured"===U&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-yellow-500/10 text-yellow-600 dark:text-yellow-400 rounded-full",children:"Not configured"}),"other"===U&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-blue-500/10 text-blue-600 dark:text-blue-400 rounded-full",children:"Other"})]}),(0,l.jsx)("p",{className:"text-xs text-text-muted truncate",children:e.description})]})]}),(0,l.jsx)("span",{className:`material-symbols-outlined text-text-muted text-[20px] transition-transform ${t?"rotate-180":""}`,children:"expand_more"})]}),t&&(0,l.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex flex-col gap-4",children:[g&&(0,l.jsxs)("div",{className:"flex items-center gap-2 text-text-muted",children:[(0,l.jsx)("span",{className:"material-symbols-outlined animate-spin",children:"progress_activity"}),(0,l.jsx)("span",{children:"Checking Codex CLI..."})]}),!g&&u&&!u.installed&&(0,l.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,l.jsxs)("div",{className:"flex items-center gap-3 p-4 bg-yellow-500/10 border border-yellow-500/30 rounded-lg",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-yellow-500",children:"warning"}),(0,l.jsxs)("div",{className:"flex-1",children:[(0,l.jsx)("p",{className:"font-medium text-yellow-600 dark:text-yellow-400",children:"Codex CLI not installed"}),(0,l.jsx)("p",{className:"text-sm text-text-muted",children:"Please install Codex CLI to use auto-apply feature."})]}),(0,l.jsxs)(r.$n,{variant:"outline",size:"sm",onClick:()=>C(!k),children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px] mr-1",children:k?"expand_less":"help"}),k?"Hide":"How to Install"]})]}),k&&(0,l.jsxs)("div",{className:"p-4 bg-surface border border-border rounded-lg",children:[(0,l.jsx)("h4",{className:"font-medium mb-3",children:"Installation Guide"}),(0,l.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-text-muted mb-1",children:"macOS / Linux / Windows:"}),(0,l.jsx)("code",{className:"block px-3 py-2 bg-black/5 dark:bg-white/5 rounded font-mono text-xs",children:"npm install -g @openai/codex"})]}),(0,l.jsxs)("p",{className:"text-text-muted",children:["After installation, run ",(0,l.jsx)("code",{className:"px-1 bg-black/5 dark:bg-white/5 rounded",children:"codex"})," to verify."]}),(0,l.jsx)("div",{className:"pt-2 border-t border-border",children:(0,l.jsxs)("p",{className:"text-text-muted text-xs",children:["Codex uses ",(0,l.jsx)("code",{className:"px-1 bg-black/5 dark:bg-white/5 rounded",children:"~/.codex/auth.json"})," with ",(0,l.jsx)("code",{className:"px-1 bg-black/5 dark:bg-white/5 rounded",children:"OPENAI_API_KEY"}),'. Click "Apply" to auto-configure.']})})]})]})]}),!g&&u?.installed&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"flex flex-col gap-2",children:[u?.config&&((m=(x=u.config.match(/base_url\s*=\s*"([^"]+)"/))?x[1]:null)?(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"Current"}),(0,l.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,l.jsx)("span",{className:"flex-1 px-2 py-1.5 text-xs text-text-muted truncate",children:m})]}):null),(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"Base URL"}),(0,l.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,l.jsx)("input",{type:"text",value:$||`${i}/v1`,onChange:e=>K(e.target.value),placeholder:"https://.../v1",className:"flex-1 px-2 py-1.5 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50"}),$&&$!==`${i}/v1`&&(0,l.jsx)("button",{onClick:()=>K(""),className:"p-1 text-text-muted hover:text-primary rounded transition-colors",title:"Reset to default",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"restart_alt"})})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"API Key"}),(0,l.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),n.length>0?(0,l.jsx)("select",{value:S,onChange:e=>_(e.target.value),className:"flex-1 px-2 py-1.5 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50",children:n.map(e=>(0,l.jsx)("option",{value:e.key,children:e.key},e.id))}):(0,l.jsx)("span",{className:"flex-1 text-xs text-text-muted px-2 py-1.5",children:c?"No API keys - Create one in Keys page":"sk_9router (default)"})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"Model"}),(0,l.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,l.jsx)("input",{type:"text",value:A,onChange:e=>E(e.target.value),placeholder:"provider/model-id",className:"flex-1 px-2 py-1.5 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50"}),(0,l.jsx)("button",{onClick:()=>I(!0),disabled:!d?.length,className:`px-2 py-1.5 rounded border text-xs transition-colors shrink-0 whitespace-nowrap ${d?.length?"bg-surface border-border text-text-main hover:border-primary cursor-pointer":"opacity-50 cursor-not-allowed border-border"}`,children:"Select Model"}),A&&(0,l.jsx)("button",{onClick:()=>E(""),className:"p-1 text-text-muted hover:text-red-500 rounded transition-colors",title:"Clear",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]})]}),N&&(0,l.jsxs)("div",{className:`flex items-center gap-2 px-2 py-1.5 rounded text-xs ${"success"===N.type?"bg-green-500/10 text-green-600":"bg-red-500/10 text-red-600"}`,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"success"===N.type?"check_circle":"error"}),(0,l.jsx)("span",{children:N.text})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsxs)(r.$n,{variant:"primary",size:"sm",onClick:D,disabled:!S||!A,loading:y,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"save"}),"Apply"]}),(0,l.jsxs)(r.$n,{variant:"outline",size:"sm",onClick:H,disabled:!u.has9Router,loading:j,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"restore"}),"Reset"]}),(0,l.jsxs)(r.$n,{variant:"ghost",size:"sm",onClick:()=>T(!0),children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"content_copy"}),"Manual Config"]})]})]})]}),(0,l.jsx)(r.rq,{isOpen:O,onClose:()=>I(!1),onSelect:e=>{E(e.value),I(!1)},selectedModel:A,activeProviders:d,modelAliases:P,title:"Select Model for Codex"}),(0,l.jsx)(r.uR,{isOpen:R,onClose:()=>T(!1),title:"Codex CLI - Manual Configuration",configs:(p=S&&S.trim()?S:c?"<API_KEY_FROM_DASHBOARD>":"sk_9router",[{filename:"~/.codex/config.toml",content:`# 9Router Configuration for Codex CLI
8
8
  model = "${A}"
9
9
  model_provider = "9router"
10
10
 
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7370],{22977:(e,t,c)=>{Promise.resolve().then(c.bind(c,87304))},31474:(e,t,c)=>{"use strict";function a(...e){return e.filter(Boolean).join(" ").replace(/\s+/g," ").trim()}c.d(t,{cn:()=>a})},73321:(e,t,c)=>{"use strict";var a=c(74645);c.o(a,"useParams")&&c.d(t,{useParams:function(){return a.useParams}}),c.o(a,"usePathname")&&c.d(t,{usePathname:function(){return a.usePathname}}),c.o(a,"useRouter")&&c.d(t,{useRouter:function(){return a.useRouter}}),c.o(a,"useSearchParams")&&c.d(t,{useSearchParams:function(){return a.useSearchParams}})},84588:(e,t,c)=>{"use strict";c.d(t,{default:()=>i});var a=c(95155),n=c(31474);function i({children:e,title:t,subtitle:c,icon:i,action:r,padding:o="md",hover:s=!1,className:u,...d}){return(0,a.jsxs)("div",{className:(0,n.cn)("bg-surface","border border-black/5 dark:border-white/5","rounded-lg shadow-sm",s&&"hover:shadow-md hover:border-primary/30 transition-all cursor-pointer",{none:"",xs:"p-3",sm:"p-4",md:"p-6",lg:"p-8"}[o],u),...d,children:[(t||r)&&(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[i&&(0,a.jsx)("div",{className:"p-2 rounded-lg bg-bg text-text-muted",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:i})}),(0,a.jsxs)("div",{children:[t&&(0,a.jsx)("h3",{className:"text-text-main font-semibold",children:t}),c&&(0,a.jsx)("p",{className:"text-sm text-text-muted",children:c})]})]}),r]}),e]})}i.Section=function({children:e,className:t,...c}){return(0,a.jsx)("div",{className:(0,n.cn)("p-4 rounded-lg","bg-black/[0.02] dark:bg-white/[0.02]","border border-black/5 dark:border-white/5",t),...c,children:e})},i.Row=function({children:e,className:t,...c}){return(0,a.jsx)("div",{className:(0,n.cn)("p-3 -mx-3 px-3 transition-colors","border-b border-black/5 dark:border-white/5 last:border-b-0","hover:bg-black/[0.02] dark:hover:bg-white/[0.02]",t),...c,children:e})},i.ListItem=function({children:e,actions:t,className:c,...i}){return(0,a.jsxs)("div",{className:(0,n.cn)("group flex items-center justify-between p-3 -mx-3 px-3","border-b border-black/[0.03] dark:border-white/[0.03] last:border-b-0","hover:bg-black/[0.02] dark:hover:bg-white/[0.02]","transition-colors",c),...i,children:[(0,a.jsx)("div",{className:"flex-1 min-w-0",children:e}),t&&(0,a.jsx)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:t})]})}},87304:(e,t,c)=>{"use strict";c.r(t),c.d(t,{default:()=>u});var a=c(95155),n=c(12115),i=c(73321),r=c(84588);let o={cc:{"claude-opus-4-6":{input:15,output:25,cached:2.5,reasoning:15,cache_creation:15},"claude-opus-4-5-20251101":{input:15,output:25,cached:2.5,reasoning:15,cache_creation:15},"claude-sonnet-4-5-20250929":{input:3,output:15,cached:1.5,reasoning:15,cache_creation:3},"claude-haiku-4-5-20251001":{input:.5,output:2.5,cached:.25,reasoning:2.5,cache_creation:.5}},cx:{"gpt-5.3-codex":{input:6,output:24,cached:3,reasoning:36,cache_creation:6},"gpt-5.3-codex-xhigh":{input:10,output:40,cached:5,reasoning:60,cache_creation:10},"gpt-5.3-codex-high":{input:8,output:32,cached:4,reasoning:48,cache_creation:8},"gpt-5.3-codex-low":{input:4,output:16,cached:2,reasoning:24,cache_creation:4},"gpt-5.3-codex-none":{input:3,output:12,cached:1.5,reasoning:18,cache_creation:3},"gpt-5.3-codex-spark":{input:3,output:12,cached:.3,reasoning:12,cache_creation:3},"gpt-5.2-codex":{input:5,output:20,cached:2.5,reasoning:30,cache_creation:5},"gpt-5.2":{input:5,output:20,cached:2.5,reasoning:30,cache_creation:5},"gpt-5.1-codex-max":{input:8,output:32,cached:4,reasoning:48,cache_creation:8},"gpt-5.1-codex":{input:4,output:16,cached:2,reasoning:24,cache_creation:4},"gpt-5.1-codex-mini":{input:1.5,output:6,cached:.75,reasoning:9,cache_creation:1.5},"gpt-5.1-codex-mini-high":{input:2,output:8,cached:1,reasoning:12,cache_creation:2},"gpt-5.1":{input:4,output:16,cached:2,reasoning:24,cache_creation:4},"gpt-5-codex":{input:3,output:12,cached:1.5,reasoning:18,cache_creation:3},"gpt-5-codex-mini":{input:1,output:4,cached:.5,reasoning:6,cache_creation:1}},gc:{"gemini-3-flash-preview":{input:.5,output:3,cached:.03,reasoning:4.5,cache_creation:.5},"gemini-3-pro-preview":{input:2,output:12,cached:.25,reasoning:18,cache_creation:2},"gemini-2.5-pro":{input:2,output:12,cached:.25,reasoning:18,cache_creation:2},"gemini-2.5-flash":{input:.3,output:2.5,cached:.03,reasoning:3.75,cache_creation:.3},"gemini-2.5-flash-lite":{input:.15,output:1.25,cached:.015,reasoning:1.875,cache_creation:.15}},qw:{"qwen3-coder-plus":{input:1,output:4,cached:.5,reasoning:6,cache_creation:1},"qwen3-coder-flash":{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5},"vision-model":{input:1.5,output:6,cached:.75,reasoning:9,cache_creation:1.5},"coder-model":{input:1.5,output:6,cached:.75,reasoning:9,cache_creation:1.5}},if:{"qwen3-coder-plus":{input:1,output:4,cached:.5,reasoning:6,cache_creation:1},"kimi-k2":{input:1,output:4,cached:.5,reasoning:6,cache_creation:1},"kimi-k2-thinking":{input:1.5,output:6,cached:.75,reasoning:9,cache_creation:1.5},"kimi-k2.5":{input:1.2,output:4.8,cached:.6,reasoning:7.2,cache_creation:1.2},"deepseek-r1":{input:.75,output:3,cached:.375,reasoning:4.5,cache_creation:.75},"deepseek-v3.2-chat":{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5},"deepseek-v3.2-reasoner":{input:.75,output:3,cached:.375,reasoning:4.5,cache_creation:.75},"minimax-m2.1":{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5},"minimax-m2.5":{input:.6,output:2.4,cached:.3,reasoning:3.6,cache_creation:.6},"glm-4.6":{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5},"glm-4.7":{input:.75,output:3,cached:.375,reasoning:4.5,cache_creation:.75},"glm-5":{input:1,output:4,cached:.5,reasoning:6,cache_creation:1}},ag:{"gemini-3.1-pro-low":{input:2,output:12,cached:.25,reasoning:18,cache_creation:2},"gemini-3.1-pro-high":{input:4,output:18,cached:.5,reasoning:27,cache_creation:4},"gemini-3-flash":{input:.5,output:3,cached:.03,reasoning:4.5,cache_creation:.5},"gemini-2.5-flash":{input:.3,output:2.5,cached:.03,reasoning:3.75,cache_creation:.3},"claude-sonnet-4-6":{input:3,output:15,cached:.3,reasoning:22.5,cache_creation:3},"claude-opus-4-5-thinking":{input:5,output:25,cached:.5,reasoning:37.5,cache_creation:5},"claude-opus-4-6-thinking":{input:5,output:25,cached:.5,reasoning:37.5,cache_creation:5},"gpt-oss-120b-medium":{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5}},gh:{"gpt-3.5-turbo":{input:.5,output:1.5,cached:.25,reasoning:2.25,cache_creation:.5},"gpt-4":{input:2.5,output:10,cached:1.25,reasoning:15,cache_creation:2.5},"gpt-4o":{input:2.5,output:10,cached:1.25,reasoning:15,cache_creation:2.5},"gpt-4o-mini":{input:.15,output:.6,cached:.075,reasoning:.9,cache_creation:.15},"gpt-4.1":{input:2.5,output:10,cached:1.25,reasoning:15,cache_creation:2.5},"gpt-5":{input:3,output:12,cached:1.5,reasoning:18,cache_creation:3},"gpt-5-mini":{input:.75,output:3,cached:.375,reasoning:4.5,cache_creation:.75},"gpt-5-codex":{input:3,output:12,cached:1.5,reasoning:18,cache_creation:3},"gpt-5.1":{input:4,output:16,cached:2,reasoning:24,cache_creation:4},"gpt-5.1-codex":{input:4,output:16,cached:2,reasoning:24,cache_creation:4},"gpt-5.1-codex-mini":{input:1.5,output:6,cached:.75,reasoning:9,cache_creation:1.5},"gpt-5.1-codex-max":{input:8,output:32,cached:4,reasoning:48,cache_creation:8},"gpt-5.2":{input:5,output:20,cached:2.5,reasoning:30,cache_creation:5},"gpt-5.2-codex":{input:5,output:20,cached:2.5,reasoning:30,cache_creation:5},"gpt-5.3-codex":{input:1.75,output:14,cached:.175,reasoning:14,cache_creation:1.75},"claude-haiku-4.5":{input:.5,output:2.5,cached:.05,reasoning:3.75,cache_creation:.5},"claude-opus-4.1":{input:5,output:25,cached:.5,reasoning:37.5,cache_creation:5},"claude-opus-4.5":{input:5,output:25,cached:.5,reasoning:37.5,cache_creation:5},"claude-sonnet-4":{input:3,output:15,cached:.3,reasoning:22.5,cache_creation:3},"claude-sonnet-4.5":{input:3,output:15,cached:.3,reasoning:22.5,cache_creation:3},"claude-sonnet-4.6":{input:3,output:15,cached:.3,reasoning:22.5,cache_creation:3},"claude-opus-4.6":{input:5,output:25,cached:.5,reasoning:37.5,cache_creation:5},"gemini-2.5-pro":{input:2,output:12,cached:.25,reasoning:18,cache_creation:2},"gemini-3-flash-preview":{input:.5,output:3,cached:.03,reasoning:4.5,cache_creation:.5},"gemini-3-pro-preview":{input:2,output:12,cached:.25,reasoning:18,cache_creation:2},"grok-code-fast-1":{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5},"oswe-vscode-prime":{input:1,output:4,cached:.5,reasoning:6,cache_creation:1}},kr:{"claude-sonnet-4.5":{input:3,output:15,cached:.3,reasoning:22.5,cache_creation:3},"claude-haiku-4.5":{input:.5,output:2.5,cached:.05,reasoning:3.75,cache_creation:.5}},openai:{"gpt-4o":{input:2.5,output:10,cached:1.25,reasoning:15,cache_creation:2.5},"gpt-4o-mini":{input:.15,output:.6,cached:.075,reasoning:.9,cache_creation:.15},"gpt-4-turbo":{input:10,output:30,cached:5,reasoning:45,cache_creation:10},o1:{input:15,output:60,cached:7.5,reasoning:90,cache_creation:15},"o1-mini":{input:3,output:12,cached:1.5,reasoning:18,cache_creation:3}},anthropic:{"claude-sonnet-4-20250514":{input:3,output:15,cached:1.5,reasoning:15,cache_creation:3},"claude-opus-4-20250514":{input:15,output:25,cached:7.5,reasoning:112.5,cache_creation:15},"claude-3-5-sonnet-20241022":{input:3,output:15,cached:1.5,reasoning:15,cache_creation:3}},gemini:{"gemini-3-pro-preview":{input:2,output:12,cached:.25,reasoning:18,cache_creation:2},"gemini-2.5-pro":{input:2,output:12,cached:.25,reasoning:18,cache_creation:2},"gemini-2.5-flash":{input:.3,output:2.5,cached:.03,reasoning:3.75,cache_creation:.3},"gemini-2.5-flash-lite":{input:.15,output:1.25,cached:.015,reasoning:1.875,cache_creation:.15}},openrouter:{auto:{input:2,output:8,cached:1,reasoning:12,cache_creation:2}},glm:{"glm-4.7":{input:.75,output:3,cached:.375,reasoning:4.5,cache_creation:.75},"glm-4.6":{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5},"glm-4.6v":{input:.75,output:3,cached:.375,reasoning:4.5,cache_creation:.75}},kimi:{"kimi-k2.5":{input:1.2,output:4.8,cached:.6,reasoning:7.2,cache_creation:1.2},"kimi-k2.5-thinking":{input:1.8,output:7.2,cached:.9,reasoning:10.8,cache_creation:1.8},"kimi-latest":{input:1,output:4,cached:.5,reasoning:6,cache_creation:1}},minimax:{"MiniMax-M2.1":{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5}}};function s({isOpen:e,onClose:t,onSave:c}){let[i,r]=(0,n.useState)({}),[s,u]=(0,n.useState)(!0),[d,l]=(0,n.useState)(!1);(0,n.useEffect)(()=>{e&&p()},[e]);let p=async()=>{u(!0);try{let e=await fetch("/api/pricing");if(e.ok){let t=await e.json();r(t)}else r(o)}catch(e){console.error("Failed to load pricing:",e),r(o)}finally{u(!1)}},h=async()=>{l(!0);try{let e=await fetch("/api/pricing",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});if(e.ok)c?.(),t();else{let t=await e.json();alert(`Failed to save pricing: ${t.error}`)}}catch(e){console.error("Failed to save pricing:",e),alert("Failed to save pricing")}finally{l(!1)}},g=async()=>{if(confirm("Reset all pricing to defaults? This cannot be undone."))try{(await fetch("/api/pricing",{method:"DELETE"})).ok&&r(o)}catch(e){console.error("Failed to reset pricing:",e),alert("Failed to reset pricing")}};if(!e)return null;let x=Object.keys(i).sort(),m=["input","output","cached","reasoning","cache_creation"];return(0,a.jsx)("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4",children:(0,a.jsxs)("div",{className:"bg-bg-base border border-border rounded-lg shadow-xl max-w-6xl w-full max-h-[90vh] overflow-hidden flex flex-col",children:[(0,a.jsxs)("div",{className:"p-4 border-b border-border flex items-center justify-between",children:[(0,a.jsx)("h2",{className:"text-xl font-semibold",children:"Pricing Configuration"}),(0,a.jsx)("button",{onClick:t,className:"text-text-muted hover:text-text text-2xl leading-none",children:"\xd7"})]}),(0,a.jsx)("div",{className:"flex-1 overflow-auto p-4",children:s?(0,a.jsx)("div",{className:"text-center py-8 text-text-muted",children:"Loading pricing data..."}):(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsxs)("div",{className:"bg-bg-subtle border border-border rounded-lg p-3 text-sm",children:[(0,a.jsx)("p",{className:"font-medium mb-1",children:"Pricing Rates Format"}),(0,a.jsxs)("p",{className:"text-text-muted",children:["All rates are in ",(0,a.jsx)("strong",{children:"dollars per million tokens"})," ($/1M tokens). Example: Input rate of 2.50 means $2.50 per 1,000,000 input tokens."]})]}),x.map(e=>{let t=Object.keys(i[e]).sort();return(0,a.jsxs)("div",{className:"border border-border rounded-lg overflow-hidden",children:[(0,a.jsx)("div",{className:"bg-bg-subtle px-4 py-2 font-semibold text-sm",children:e.toUpperCase()}),(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:"w-full text-sm",children:[(0,a.jsx)("thead",{className:"bg-bg-hover text-text-muted uppercase text-xs",children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{className:"px-3 py-2 text-left",children:"Model"}),(0,a.jsx)("th",{className:"px-3 py-2 text-right",children:"Input"}),(0,a.jsx)("th",{className:"px-3 py-2 text-right",children:"Output"}),(0,a.jsx)("th",{className:"px-3 py-2 text-right",children:"Cached"}),(0,a.jsx)("th",{className:"px-3 py-2 text-right",children:"Reasoning"}),(0,a.jsx)("th",{className:"px-3 py-2 text-right",children:"Cache Creation"})]})}),(0,a.jsx)("tbody",{className:"divide-y divide-border",children:t.map(t=>(0,a.jsxs)("tr",{className:"hover:bg-bg-subtle/50",children:[(0,a.jsx)("td",{className:"px-3 py-2 font-medium",children:t}),m.map(c=>(0,a.jsx)("td",{className:"px-3 py-2",children:(0,a.jsx)("input",{type:"number",step:"0.01",min:"0",value:i[e][t][c]||0,onChange:a=>{let n;!isNaN(n=parseFloat(a.target.value))&&!(n<0)&&r(a=>{let i={...a};return i[e]||(i[e]={}),i[e][t]||(i[e][t]={}),i[e][t][c]=n,i})},className:"w-20 px-2 py-1 text-right bg-bg-base border border-border rounded focus:outline-none focus:border-primary"})},c))]},t))})]})})]},e)}),0===x.length&&(0,a.jsx)("div",{className:"text-center py-8 text-text-muted",children:"No pricing data available"})]})}),(0,a.jsxs)("div",{className:"p-4 border-t border-border flex items-center justify-between gap-2",children:[(0,a.jsx)("button",{onClick:g,className:"px-4 py-2 text-sm text-red-500 hover:bg-red-500/10 rounded border border-red-500/20 transition-colors",disabled:d,children:"Reset to Defaults"}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)("button",{onClick:t,className:"px-4 py-2 text-sm text-text-muted hover:text-text border border-border rounded transition-colors",disabled:d,children:"Cancel"}),(0,a.jsx)("button",{onClick:h,className:"px-4 py-2 text-sm bg-primary text-white rounded hover:bg-primary/90 transition-colors disabled:opacity-50",disabled:d,children:d?"Saving...":"Save Changes"})]})]})]})})}function u(){(0,i.useRouter)();let[e,t]=(0,n.useState)(!1),[c,o]=(0,n.useState)(null),[u,d]=(0,n.useState)(!0);(0,n.useEffect)(()=>{l()},[]);let l=async()=>{d(!0);try{let e=await fetch("/api/pricing");if(e.ok){let t=await e.json();o(t)}}catch(e){console.error("Failed to load pricing:",e)}finally{d(!1)}};return(0,a.jsxs)("div",{className:"max-w-6xl mx-auto p-6 space-y-6",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"text-3xl font-bold",children:"Pricing Settings"}),(0,a.jsx)("p",{className:"text-text-muted mt-1",children:"Configure pricing rates for cost tracking and calculations"})]}),(0,a.jsx)("button",{onClick:()=>t(!0),className:"px-4 py-2 bg-primary text-white rounded hover:bg-primary/90 transition-colors",children:"Edit Pricing"})]}),(0,a.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[(0,a.jsxs)(r.default,{className:"p-4",children:[(0,a.jsx)("div",{className:"text-text-muted text-sm uppercase font-semibold",children:"Total Models"}),(0,a.jsx)("div",{className:"text-2xl font-bold mt-1",children:u?"...":(()=>{if(!c)return 0;let e=0;for(let t in c)e+=Object.keys(c[t]).length;return e})()})]}),(0,a.jsxs)(r.default,{className:"p-4",children:[(0,a.jsx)("div",{className:"text-text-muted text-sm uppercase font-semibold",children:"Providers"}),(0,a.jsx)("div",{className:"text-2xl font-bold mt-1",children:u?"...":(!c?[]:Object.keys(c).sort()).length})]}),(0,a.jsxs)(r.default,{className:"p-4",children:[(0,a.jsx)("div",{className:"text-text-muted text-sm uppercase font-semibold",children:"Status"}),(0,a.jsx)("div",{className:"text-2xl font-bold mt-1 text-success",children:u?"...":"Active"})]})]}),(0,a.jsxs)(r.default,{className:"p-6",children:[(0,a.jsx)("h2",{className:"text-xl font-semibold mb-4",children:"How Pricing Works"}),(0,a.jsxs)("div",{className:"space-y-3 text-sm text-text-muted",children:[(0,a.jsxs)("p",{children:[(0,a.jsx)("strong",{children:"Cost Calculation:"})," Costs are calculated based on token usage and pricing rates. Each request's cost is determined by: (input_tokens \xd7 input_rate) + (output_tokens \xd7 output_rate) + (cached_tokens \xd7 cached_rate)"]}),(0,a.jsxs)("p",{children:[(0,a.jsx)("strong",{children:"Pricing Format:"})," All rates are in ",(0,a.jsx)("strong",{children:"dollars per million tokens"})," ($/1M tokens). Example: An input rate of 2.50 means $2.50 per 1,000,000 input tokens."]}),(0,a.jsx)("p",{children:(0,a.jsx)("strong",{children:"Token Types:"})}),(0,a.jsxs)("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[(0,a.jsxs)("li",{children:[(0,a.jsx)("strong",{children:"Input:"})," Standard prompt tokens"]}),(0,a.jsxs)("li",{children:[(0,a.jsx)("strong",{children:"Output:"})," Completion/response tokens"]}),(0,a.jsxs)("li",{children:[(0,a.jsx)("strong",{children:"Cached:"})," Cached input tokens (typically 50% of input rate)"]}),(0,a.jsxs)("li",{children:[(0,a.jsx)("strong",{children:"Reasoning:"})," Special reasoning/thinking tokens (fallback to output rate)"]}),(0,a.jsxs)("li",{children:[(0,a.jsx)("strong",{children:"Cache Creation:"})," Tokens used to create cache entries (fallback to input rate)"]})]}),(0,a.jsxs)("p",{children:[(0,a.jsx)("strong",{children:"Custom Pricing:"})," You can override default pricing for specific models. Reset to defaults anytime to restore standard rates."]})]})]}),(0,a.jsxs)(r.default,{className:"p-6",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,a.jsx)("h2",{className:"text-xl font-semibold",children:"Current Pricing Overview"}),(0,a.jsx)("button",{onClick:()=>t(!0),className:"text-primary hover:underline text-sm",children:"View Full Details"})]}),u?(0,a.jsx)("div",{className:"text-center py-4 text-text-muted",children:"Loading pricing data..."}):c?(0,a.jsxs)("div",{className:"space-y-3",children:[Object.keys(c).slice(0,5).map(e=>(0,a.jsxs)("div",{className:"text-sm",children:[(0,a.jsxs)("span",{className:"font-semibold",children:[e.toUpperCase(),":"]})," ",(0,a.jsxs)("span",{className:"text-text-muted",children:[Object.keys(c[e]).length," models"]})]},e)),Object.keys(c).length>5&&(0,a.jsxs)("div",{className:"text-sm text-text-muted",children:["+ ",Object.keys(c).length-5," more providers"]})]}):(0,a.jsx)("div",{className:"text-text-muted",children:"No pricing data available"})]}),e&&(0,a.jsx)(s,{isOpen:e,onClose:()=>t(!1),onSave:()=>{l()}})]})}}},e=>{e.O(0,[8441,3794,7358],()=>e(e.s=22977)),_N_E=e.O()}]);
package/app/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "9router-app",
3
- "version": "0.2.92",
3
+ "version": "0.2.94",
4
4
  "description": "9Router web dashboard",
5
5
  "private": true,
6
6
  "scripts": {