9router 0.3.29 → 0.3.31

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 (518) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/app-path-routes-manifest.json +44 -42
  3. package/app/.next/build-manifest.json +2 -2
  4. package/app/.next/prerender-manifest.json +24 -0
  5. package/app/.next/routes-manifest.json +12 -0
  6. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -16
  7. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js +2 -0
  19. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -0
  20. package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -0
  21. package/app/.next/server/app/(dashboard)/dashboard/page.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  28. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  32. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  34. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  35. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  36. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  37. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  38. package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  40. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  41. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  42. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  43. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  44. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  45. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  46. package/app/.next/server/app/_global-error.html +2 -2
  47. package/app/.next/server/app/_global-error.rsc +1 -1
  48. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  49. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  50. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  51. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  52. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  53. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  54. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/_not-found.html +1 -1
  56. package/app/.next/server/app/_not-found.rsc +3 -3
  57. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  58. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  59. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  60. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  61. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  62. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  63. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  64. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  66. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +2 -2
  67. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  68. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  69. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  70. package/app/.next/server/app/api/cli-tools/copilot-settings/route_client-reference-manifest.js +1 -1
  71. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  72. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  73. package/app/.next/server/app/api/cli-tools/opencode-settings/route_client-reference-manifest.js +1 -1
  74. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  75. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  76. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  77. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  78. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  79. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  80. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  81. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  82. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  83. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  84. package/app/.next/server/app/api/models/route.js +1 -1
  85. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/api/models/test/route.js +1 -1
  87. package/app/.next/server/app/api/models/test/route_client-reference-manifest.js +1 -1
  88. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  89. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  90. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  91. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  92. package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -0
  93. package/app/.next/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -0
  94. package/app/.next/server/app/api/oauth/iflow/cookie/route_client-reference-manifest.js +1 -0
  95. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  96. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  97. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  98. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  99. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  100. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  101. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  102. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  103. package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
  104. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  105. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  106. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  107. package/app/.next/server/app/api/providers/[id]/test-models/route_client-reference-manifest.js +1 -1
  108. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  109. package/app/.next/server/app/api/providers/route.js +1 -1
  110. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  111. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  112. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  113. package/app/.next/server/app/api/settings/database/route_client-reference-manifest.js +1 -1
  114. package/app/.next/server/app/api/settings/proxy-test/route_client-reference-manifest.js +1 -1
  115. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  116. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  117. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  118. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  119. package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
  120. package/app/.next/server/app/api/translator/console-logs/route_client-reference-manifest.js +1 -1
  121. package/app/.next/server/app/api/translator/console-logs/stream/route.js +1 -1
  122. package/app/.next/server/app/api/translator/console-logs/stream/route_client-reference-manifest.js +1 -1
  123. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  124. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  125. package/app/.next/server/app/api/translator/send/route.js +1 -1
  126. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  127. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  128. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  129. package/app/.next/server/app/api/tunnel/disable/route_client-reference-manifest.js +1 -1
  130. package/app/.next/server/app/api/tunnel/enable/route_client-reference-manifest.js +1 -1
  131. package/app/.next/server/app/api/tunnel/status/route_client-reference-manifest.js +1 -1
  132. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  133. package/app/.next/server/app/api/usage/chart/route_client-reference-manifest.js +1 -1
  134. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  135. package/app/.next/server/app/api/usage/providers/route_client-reference-manifest.js +1 -1
  136. package/app/.next/server/app/api/usage/request-details/route_client-reference-manifest.js +1 -1
  137. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  138. package/app/.next/server/app/api/usage/stats/route_client-reference-manifest.js +1 -1
  139. package/app/.next/server/app/api/usage/stream/route_client-reference-manifest.js +1 -1
  140. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  141. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  142. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  143. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  144. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  145. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  146. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  147. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  148. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  149. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  150. package/app/.next/server/app/api/version/route.js +1 -1
  151. package/app/.next/server/app/api/version/route_client-reference-manifest.js +1 -1
  152. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  153. package/app/.next/server/app/callback.html +1 -1
  154. package/app/.next/server/app/callback.rsc +3 -3
  155. package/app/.next/server/app/callback.segments/_full.segment.rsc +3 -3
  156. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  157. package/app/.next/server/app/callback.segments/_index.segment.rsc +3 -3
  158. package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
  159. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  160. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  161. package/app/.next/server/app/dashboard/cli-tools.html +1 -1
  162. package/app/.next/server/app/dashboard/cli-tools.rsc +5 -5
  163. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  164. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  165. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  166. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  167. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  168. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  169. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  170. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  171. package/app/.next/server/app/dashboard/combos.html +1 -1
  172. package/app/.next/server/app/dashboard/combos.rsc +5 -5
  173. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  174. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  175. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  176. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  177. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  178. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  179. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  180. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  181. package/app/.next/server/app/dashboard/endpoint.html +1 -1
  182. package/app/.next/server/app/dashboard/endpoint.rsc +5 -5
  183. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  184. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  185. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  186. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  187. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  188. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  189. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  190. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  191. package/app/.next/server/app/dashboard/mitm.html +1 -0
  192. package/app/.next/server/app/dashboard/mitm.meta +17 -0
  193. package/app/.next/server/app/dashboard/mitm.rsc +20 -0
  194. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +6 -0
  195. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +4 -0
  196. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +4 -0
  197. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -0
  198. package/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +20 -0
  199. package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +6 -0
  200. package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +7 -0
  201. package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +5 -0
  202. package/app/.next/server/app/dashboard/profile.html +1 -1
  203. package/app/.next/server/app/dashboard/profile.rsc +5 -5
  204. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  205. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  206. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  207. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  208. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  209. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  210. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  211. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  212. package/app/.next/server/app/dashboard/providers/new.html +1 -1
  213. package/app/.next/server/app/dashboard/providers/new.rsc +5 -5
  214. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  215. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  216. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  217. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  218. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  219. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  220. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  221. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  222. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  223. package/app/.next/server/app/dashboard/providers.html +1 -1
  224. package/app/.next/server/app/dashboard/providers.rsc +5 -5
  225. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  226. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  227. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  228. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  229. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  230. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  231. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  232. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  233. package/app/.next/server/app/dashboard/quota.html +2 -1
  234. package/app/.next/server/app/dashboard/quota.rsc +6 -6
  235. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  236. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  237. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  238. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  239. package/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  240. package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  241. package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  242. package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  243. package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  244. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  245. package/app/.next/server/app/dashboard/settings/pricing.rsc +3 -3
  246. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  247. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  248. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  249. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  250. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  251. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  252. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  253. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  254. package/app/.next/server/app/dashboard/translator.html +1 -1
  255. package/app/.next/server/app/dashboard/translator.rsc +5 -5
  256. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  257. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  258. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  259. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  260. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  261. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  262. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  263. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  264. package/app/.next/server/app/dashboard/usage.html +1 -1
  265. package/app/.next/server/app/dashboard/usage.rsc +5 -5
  266. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  267. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  268. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  269. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  270. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  271. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  272. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  273. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  274. package/app/.next/server/app/dashboard.html +1 -1
  275. package/app/.next/server/app/dashboard.rsc +5 -5
  276. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  277. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  278. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  279. package/app/.next/server/app/dashboard.segments/_full.segment.rsc +5 -5
  280. package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  281. package/app/.next/server/app/dashboard.segments/_index.segment.rsc +3 -3
  282. package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  283. package/app/.next/server/app/index.html +1 -1
  284. package/app/.next/server/app/index.rsc +3 -3
  285. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  286. package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
  287. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  288. package/app/.next/server/app/index.segments/_index.segment.rsc +3 -3
  289. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  290. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  291. package/app/.next/server/app/landing.html +1 -1
  292. package/app/.next/server/app/landing.rsc +3 -3
  293. package/app/.next/server/app/landing.segments/_full.segment.rsc +3 -3
  294. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  295. package/app/.next/server/app/landing.segments/_index.segment.rsc +3 -3
  296. package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
  297. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  298. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  299. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  300. package/app/.next/server/app/login.html +1 -1
  301. package/app/.next/server/app/login.rsc +4 -4
  302. package/app/.next/server/app/login.segments/_full.segment.rsc +4 -4
  303. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  304. package/app/.next/server/app/login.segments/_index.segment.rsc +3 -3
  305. package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  306. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  307. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  308. package/app/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  309. package/app/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  310. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  311. package/app/.next/server/app-paths-manifest.json +44 -42
  312. package/app/.next/server/chunks/1238.js +1 -1
  313. package/app/.next/server/chunks/2280.js +1 -1
  314. package/app/.next/server/chunks/3832.js +1 -1
  315. package/app/.next/server/chunks/412.js +2 -2
  316. package/app/.next/server/chunks/4841.js +1 -1
  317. package/app/.next/server/chunks/6182.js +16 -10
  318. package/app/.next/server/chunks/6384.js +1 -0
  319. package/app/.next/server/chunks/649.js +15 -0
  320. package/app/.next/server/chunks/7647.js +1 -1
  321. package/app/.next/server/chunks/8590.js +1 -1
  322. package/app/.next/server/chunks/8756.js +1 -1
  323. package/app/.next/server/pages/404.html +1 -1
  324. package/app/.next/server/pages/500.html +2 -2
  325. package/app/.next/server/server-reference-manifest.js +1 -1
  326. package/app/.next/server/server-reference-manifest.json +1 -1
  327. package/app/.next/static/24vSaT3cvf72GHKm3J7Mb/_buildManifest.js +1 -0
  328. package/app/.next/static/chunks/4495-97a066cea645caef.js +1 -0
  329. package/app/.next/static/chunks/5497-55c93d32928bd3b6.js +7 -0
  330. package/app/.next/static/chunks/9242-572cb7c592af9377.js +15 -0
  331. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-8caef34f3e144a20.js +1 -0
  332. package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/page-7f5a8700b96d31b1.js +1 -0
  333. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-d3eea801999e8eaf.js +1 -0
  334. package/app/.next/static/chunks/app/(dashboard)/layout-e85ef8386b3bd547.js +1 -0
  335. package/app/.next/static/chunks/app/_global-error/page-3afc9e982dbedc92.js +1 -0
  336. package/app/.next/static/chunks/app/api/auth/login/route-3afc9e982dbedc92.js +1 -0
  337. package/app/.next/static/chunks/app/api/auth/logout/route-3afc9e982dbedc92.js +1 -0
  338. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-3afc9e982dbedc92.js +1 -0
  339. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-3afc9e982dbedc92.js +1 -0
  340. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-3afc9e982dbedc92.js +1 -0
  341. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-3afc9e982dbedc92.js +1 -0
  342. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-3afc9e982dbedc92.js +1 -0
  343. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-3afc9e982dbedc92.js +1 -0
  344. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-3afc9e982dbedc92.js +1 -0
  345. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-3afc9e982dbedc92.js +1 -0
  346. package/app/.next/static/chunks/app/api/cloud/auth/route-3afc9e982dbedc92.js +1 -0
  347. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-3afc9e982dbedc92.js +1 -0
  348. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-3afc9e982dbedc92.js +1 -0
  349. package/app/.next/static/chunks/app/api/cloud/models/alias/route-3afc9e982dbedc92.js +1 -0
  350. package/app/.next/static/chunks/app/api/combos/[id]/route-3afc9e982dbedc92.js +1 -0
  351. package/app/.next/static/chunks/app/api/combos/route-3afc9e982dbedc92.js +1 -0
  352. package/app/.next/static/chunks/app/api/init/route-3afc9e982dbedc92.js +1 -0
  353. package/app/.next/static/chunks/app/api/keys/[id]/route-3afc9e982dbedc92.js +1 -0
  354. package/app/.next/static/chunks/app/api/keys/route-3afc9e982dbedc92.js +1 -0
  355. package/app/.next/static/chunks/app/api/models/alias/route-3afc9e982dbedc92.js +1 -0
  356. package/app/.next/static/chunks/app/api/models/route-3afc9e982dbedc92.js +1 -0
  357. package/app/.next/static/chunks/app/api/models/test/route-3afc9e982dbedc92.js +1 -0
  358. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-3afc9e982dbedc92.js +1 -0
  359. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-3afc9e982dbedc92.js +1 -0
  360. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-3afc9e982dbedc92.js +1 -0
  361. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-3afc9e982dbedc92.js +1 -0
  362. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-3afc9e982dbedc92.js +1 -0
  363. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-3afc9e982dbedc92.js +1 -0
  364. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-3afc9e982dbedc92.js +1 -0
  365. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-3afc9e982dbedc92.js +1 -0
  366. package/app/.next/static/chunks/app/api/pricing/route-3afc9e982dbedc92.js +1 -0
  367. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-3afc9e982dbedc92.js +1 -0
  368. package/app/.next/static/chunks/app/api/provider-nodes/route-3afc9e982dbedc92.js +1 -0
  369. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-3afc9e982dbedc92.js +1 -0
  370. package/app/.next/static/chunks/app/api/providers/[id]/models/route-3afc9e982dbedc92.js +1 -0
  371. package/app/.next/static/chunks/app/api/providers/[id]/route-3afc9e982dbedc92.js +1 -0
  372. package/app/.next/static/chunks/app/api/providers/[id]/test/route-3afc9e982dbedc92.js +1 -0
  373. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-3afc9e982dbedc92.js +1 -0
  374. package/app/.next/static/chunks/app/api/providers/client/route-3afc9e982dbedc92.js +1 -0
  375. package/app/.next/static/chunks/app/api/providers/route-3afc9e982dbedc92.js +1 -0
  376. package/app/.next/static/chunks/app/api/providers/test-batch/route-3afc9e982dbedc92.js +1 -0
  377. package/app/.next/static/chunks/app/api/providers/validate/route-3afc9e982dbedc92.js +1 -0
  378. package/app/.next/static/chunks/app/api/settings/database/route-3afc9e982dbedc92.js +1 -0
  379. package/app/.next/static/chunks/app/api/settings/proxy-test/route-3afc9e982dbedc92.js +1 -0
  380. package/app/.next/static/chunks/app/api/settings/require-login/route-3afc9e982dbedc92.js +1 -0
  381. package/app/.next/static/chunks/app/api/settings/route-3afc9e982dbedc92.js +1 -0
  382. package/app/.next/static/chunks/app/api/shutdown/route-3afc9e982dbedc92.js +1 -0
  383. package/app/.next/static/chunks/app/api/tags/route-3afc9e982dbedc92.js +1 -0
  384. package/app/.next/static/chunks/app/api/translator/console-logs/route-3afc9e982dbedc92.js +1 -0
  385. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-3afc9e982dbedc92.js +1 -0
  386. package/app/.next/static/chunks/app/api/translator/load/route-3afc9e982dbedc92.js +1 -0
  387. package/app/.next/static/chunks/app/api/translator/save/route-3afc9e982dbedc92.js +1 -0
  388. package/app/.next/static/chunks/app/api/translator/send/route-3afc9e982dbedc92.js +1 -0
  389. package/app/.next/static/chunks/app/api/translator/translate/route-3afc9e982dbedc92.js +1 -0
  390. package/app/.next/static/chunks/app/api/tunnel/disable/route-3afc9e982dbedc92.js +1 -0
  391. package/app/.next/static/chunks/app/api/tunnel/enable/route-3afc9e982dbedc92.js +1 -0
  392. package/app/.next/static/chunks/app/api/tunnel/status/route-3afc9e982dbedc92.js +1 -0
  393. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-3afc9e982dbedc92.js +1 -0
  394. package/app/.next/static/chunks/app/api/usage/chart/route-3afc9e982dbedc92.js +1 -0
  395. package/app/.next/static/chunks/app/api/usage/history/route-3afc9e982dbedc92.js +1 -0
  396. package/app/.next/static/chunks/app/api/usage/providers/route-3afc9e982dbedc92.js +1 -0
  397. package/app/.next/static/chunks/app/api/usage/request-details/route-3afc9e982dbedc92.js +1 -0
  398. package/app/.next/static/chunks/app/api/usage/request-logs/route-3afc9e982dbedc92.js +1 -0
  399. package/app/.next/static/chunks/app/api/usage/stats/route-3afc9e982dbedc92.js +1 -0
  400. package/app/.next/static/chunks/app/api/usage/stream/route-3afc9e982dbedc92.js +1 -0
  401. package/app/.next/static/chunks/app/api/v1/api/chat/route-3afc9e982dbedc92.js +1 -0
  402. package/app/.next/static/chunks/app/api/v1/chat/completions/route-3afc9e982dbedc92.js +1 -0
  403. package/app/.next/static/chunks/app/api/v1/embeddings/route-3afc9e982dbedc92.js +1 -0
  404. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-3afc9e982dbedc92.js +1 -0
  405. package/app/.next/static/chunks/app/api/v1/messages/route-3afc9e982dbedc92.js +1 -0
  406. package/app/.next/static/chunks/app/api/v1/models/route-3afc9e982dbedc92.js +1 -0
  407. package/app/.next/static/chunks/app/api/v1/responses/route-3afc9e982dbedc92.js +1 -0
  408. package/app/.next/static/chunks/app/api/v1/route-3afc9e982dbedc92.js +1 -0
  409. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-3afc9e982dbedc92.js +1 -0
  410. package/app/.next/static/chunks/app/api/v1beta/models/route-3afc9e982dbedc92.js +1 -0
  411. package/app/.next/static/chunks/app/api/version/route-3afc9e982dbedc92.js +1 -0
  412. package/app/.next/static/chunks/app/{layout-75a17c7e6aea5a13.js → layout-8a56242f992801a8.js} +1 -1
  413. package/app/.next/static/chunks/app/manifest.webmanifest/route-3afc9e982dbedc92.js +1 -0
  414. package/app/.next/static/chunks/app/page-3afc9e982dbedc92.js +1 -0
  415. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-3afc9e982dbedc92.js +1 -0
  416. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-3afc9e982dbedc92.js +1 -0
  417. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-3afc9e982dbedc92.js +1 -0
  418. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-3afc9e982dbedc92.js +1 -0
  419. package/app/.next/static/css/fb5ab131d55b40e1.css +3 -0
  420. package/app/package.json +1 -1
  421. package/app/src/mitm/cert/generate.js +16 -5
  422. package/app/src/mitm/cert/install.js +7 -3
  423. package/app/src/mitm/dns/dnsConfig.js +79 -66
  424. package/app/src/mitm/manager.js +111 -177
  425. package/app/src/mitm/server.js +37 -44
  426. package/hooks/postinstall.js +73 -0
  427. package/package.json +2 -1
  428. package/app/.next/server/chunks/1164.js +0 -1
  429. package/app/.next/static/3zOZ19iwThxWJSFLWgyzs/_buildManifest.js +0 -1
  430. package/app/.next/static/chunks/4495-bc9f104bf7b22419.js +0 -1
  431. package/app/.next/static/chunks/5497-cb22fa6d2bb73c4a.js +0 -7
  432. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-2fbd60d069c77b8f.js +0 -15
  433. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-96232c1eaa074aae.js +0 -1
  434. package/app/.next/static/chunks/app/(dashboard)/layout-626a5cf4ccea1e63.js +0 -1
  435. package/app/.next/static/chunks/app/_global-error/page-6094e45f32dd5e2c.js +0 -1
  436. package/app/.next/static/chunks/app/api/auth/login/route-6094e45f32dd5e2c.js +0 -1
  437. package/app/.next/static/chunks/app/api/auth/logout/route-6094e45f32dd5e2c.js +0 -1
  438. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-6094e45f32dd5e2c.js +0 -1
  439. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-6094e45f32dd5e2c.js +0 -1
  440. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-6094e45f32dd5e2c.js +0 -1
  441. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-6094e45f32dd5e2c.js +0 -1
  442. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-6094e45f32dd5e2c.js +0 -1
  443. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-6094e45f32dd5e2c.js +0 -1
  444. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-6094e45f32dd5e2c.js +0 -1
  445. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-6094e45f32dd5e2c.js +0 -1
  446. package/app/.next/static/chunks/app/api/cloud/auth/route-6094e45f32dd5e2c.js +0 -1
  447. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-6094e45f32dd5e2c.js +0 -1
  448. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-6094e45f32dd5e2c.js +0 -1
  449. package/app/.next/static/chunks/app/api/cloud/models/alias/route-6094e45f32dd5e2c.js +0 -1
  450. package/app/.next/static/chunks/app/api/combos/[id]/route-6094e45f32dd5e2c.js +0 -1
  451. package/app/.next/static/chunks/app/api/combos/route-6094e45f32dd5e2c.js +0 -1
  452. package/app/.next/static/chunks/app/api/init/route-6094e45f32dd5e2c.js +0 -1
  453. package/app/.next/static/chunks/app/api/keys/[id]/route-6094e45f32dd5e2c.js +0 -1
  454. package/app/.next/static/chunks/app/api/keys/route-6094e45f32dd5e2c.js +0 -1
  455. package/app/.next/static/chunks/app/api/models/alias/route-6094e45f32dd5e2c.js +0 -1
  456. package/app/.next/static/chunks/app/api/models/route-6094e45f32dd5e2c.js +0 -1
  457. package/app/.next/static/chunks/app/api/models/test/route-6094e45f32dd5e2c.js +0 -1
  458. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-6094e45f32dd5e2c.js +0 -1
  459. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-6094e45f32dd5e2c.js +0 -1
  460. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-6094e45f32dd5e2c.js +0 -1
  461. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-6094e45f32dd5e2c.js +0 -1
  462. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-6094e45f32dd5e2c.js +0 -1
  463. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-6094e45f32dd5e2c.js +0 -1
  464. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-6094e45f32dd5e2c.js +0 -1
  465. package/app/.next/static/chunks/app/api/pricing/route-6094e45f32dd5e2c.js +0 -1
  466. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-6094e45f32dd5e2c.js +0 -1
  467. package/app/.next/static/chunks/app/api/provider-nodes/route-6094e45f32dd5e2c.js +0 -1
  468. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-6094e45f32dd5e2c.js +0 -1
  469. package/app/.next/static/chunks/app/api/providers/[id]/models/route-6094e45f32dd5e2c.js +0 -1
  470. package/app/.next/static/chunks/app/api/providers/[id]/route-6094e45f32dd5e2c.js +0 -1
  471. package/app/.next/static/chunks/app/api/providers/[id]/test/route-6094e45f32dd5e2c.js +0 -1
  472. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-6094e45f32dd5e2c.js +0 -1
  473. package/app/.next/static/chunks/app/api/providers/client/route-6094e45f32dd5e2c.js +0 -1
  474. package/app/.next/static/chunks/app/api/providers/route-6094e45f32dd5e2c.js +0 -1
  475. package/app/.next/static/chunks/app/api/providers/test-batch/route-6094e45f32dd5e2c.js +0 -1
  476. package/app/.next/static/chunks/app/api/providers/validate/route-6094e45f32dd5e2c.js +0 -1
  477. package/app/.next/static/chunks/app/api/settings/database/route-6094e45f32dd5e2c.js +0 -1
  478. package/app/.next/static/chunks/app/api/settings/proxy-test/route-6094e45f32dd5e2c.js +0 -1
  479. package/app/.next/static/chunks/app/api/settings/require-login/route-6094e45f32dd5e2c.js +0 -1
  480. package/app/.next/static/chunks/app/api/settings/route-6094e45f32dd5e2c.js +0 -1
  481. package/app/.next/static/chunks/app/api/shutdown/route-6094e45f32dd5e2c.js +0 -1
  482. package/app/.next/static/chunks/app/api/tags/route-6094e45f32dd5e2c.js +0 -1
  483. package/app/.next/static/chunks/app/api/translator/console-logs/route-6094e45f32dd5e2c.js +0 -1
  484. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-6094e45f32dd5e2c.js +0 -1
  485. package/app/.next/static/chunks/app/api/translator/load/route-6094e45f32dd5e2c.js +0 -1
  486. package/app/.next/static/chunks/app/api/translator/save/route-6094e45f32dd5e2c.js +0 -1
  487. package/app/.next/static/chunks/app/api/translator/send/route-6094e45f32dd5e2c.js +0 -1
  488. package/app/.next/static/chunks/app/api/translator/translate/route-6094e45f32dd5e2c.js +0 -1
  489. package/app/.next/static/chunks/app/api/tunnel/disable/route-6094e45f32dd5e2c.js +0 -1
  490. package/app/.next/static/chunks/app/api/tunnel/enable/route-6094e45f32dd5e2c.js +0 -1
  491. package/app/.next/static/chunks/app/api/tunnel/status/route-6094e45f32dd5e2c.js +0 -1
  492. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-6094e45f32dd5e2c.js +0 -1
  493. package/app/.next/static/chunks/app/api/usage/chart/route-6094e45f32dd5e2c.js +0 -1
  494. package/app/.next/static/chunks/app/api/usage/history/route-6094e45f32dd5e2c.js +0 -1
  495. package/app/.next/static/chunks/app/api/usage/providers/route-6094e45f32dd5e2c.js +0 -1
  496. package/app/.next/static/chunks/app/api/usage/request-details/route-6094e45f32dd5e2c.js +0 -1
  497. package/app/.next/static/chunks/app/api/usage/request-logs/route-6094e45f32dd5e2c.js +0 -1
  498. package/app/.next/static/chunks/app/api/usage/stats/route-6094e45f32dd5e2c.js +0 -1
  499. package/app/.next/static/chunks/app/api/usage/stream/route-6094e45f32dd5e2c.js +0 -1
  500. package/app/.next/static/chunks/app/api/v1/api/chat/route-6094e45f32dd5e2c.js +0 -1
  501. package/app/.next/static/chunks/app/api/v1/chat/completions/route-6094e45f32dd5e2c.js +0 -1
  502. package/app/.next/static/chunks/app/api/v1/embeddings/route-6094e45f32dd5e2c.js +0 -1
  503. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-6094e45f32dd5e2c.js +0 -1
  504. package/app/.next/static/chunks/app/api/v1/messages/route-6094e45f32dd5e2c.js +0 -1
  505. package/app/.next/static/chunks/app/api/v1/models/route-6094e45f32dd5e2c.js +0 -1
  506. package/app/.next/static/chunks/app/api/v1/responses/route-6094e45f32dd5e2c.js +0 -1
  507. package/app/.next/static/chunks/app/api/v1/route-6094e45f32dd5e2c.js +0 -1
  508. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-6094e45f32dd5e2c.js +0 -1
  509. package/app/.next/static/chunks/app/api/v1beta/models/route-6094e45f32dd5e2c.js +0 -1
  510. package/app/.next/static/chunks/app/api/version/route-6094e45f32dd5e2c.js +0 -1
  511. package/app/.next/static/chunks/app/manifest.webmanifest/route-6094e45f32dd5e2c.js +0 -1
  512. package/app/.next/static/chunks/app/page-6094e45f32dd5e2c.js +0 -1
  513. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-6094e45f32dd5e2c.js +0 -1
  514. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-6094e45f32dd5e2c.js +0 -1
  515. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-6094e45f32dd5e2c.js +0 -1
  516. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-6094e45f32dd5e2c.js +0 -1
  517. package/app/.next/static/css/62123907b7f6e3ce.css +0 -3
  518. /package/app/.next/static/{3zOZ19iwThxWJSFLWgyzs → 24vSaT3cvf72GHKm3J7Mb}/_ssgManifest.js +0 -0
@@ -3,19 +3,22 @@ const fs = require("fs");
3
3
  const path = require("path");
4
4
  const dns = require("dns");
5
5
  const { promisify } = require("util");
6
- // Configuration
6
+
7
7
  const INTERNAL_REQUEST_HEADER = { name: "x-request-source", value: "local" };
8
+
9
+ // All intercepted domains across all tools
8
10
  const TARGET_HOSTS = [
9
11
  "daily-cloudcode-pa.googleapis.com",
10
- "cloudcode-pa.googleapis.com"
12
+ "cloudcode-pa.googleapis.com",
13
+ "api.individual.githubcopilot.com",
11
14
  ];
15
+
12
16
  const LOCAL_PORT = 443;
13
17
  const ROUTER_URL = "http://localhost:20128/v1/chat/completions";
14
18
  const API_KEY = process.env.ROUTER_API_KEY;
15
19
  const { DATA_DIR, MITM_DIR } = require("./paths");
16
20
  const DB_FILE = path.join(DATA_DIR, "db.json");
17
21
 
18
- // Toggle logging (set true to enable file logging for debugging)
19
22
  const ENABLE_FILE_LOG = false;
20
23
 
21
24
  if (!API_KEY) {
@@ -23,7 +26,6 @@ if (!API_KEY) {
23
26
  process.exit(1);
24
27
  }
25
28
 
26
- // Load SSL certificates
27
29
  const certDir = MITM_DIR;
28
30
  let sslOptions;
29
31
  try {
@@ -36,10 +38,11 @@ try {
36
38
  process.exit(1);
37
39
  }
38
40
 
39
- // Chat endpoints that should be intercepted
40
- const CHAT_URL_PATTERNS = [":generateContent", ":streamGenerateContent"];
41
+ // Antigravity: Gemini generateContent endpoints
42
+ const ANTIGRAVITY_URL_PATTERNS = [":generateContent", ":streamGenerateContent"];
43
+ // Copilot: OpenAI-compatible + Anthropic endpoints
44
+ const COPILOT_URL_PATTERNS = ["/chat/completions", "/v1/messages", "/responses"];
41
45
 
42
- // Log directory for request/response dumps
43
46
  const LOG_DIR = path.join(__dirname, "../../logs/mitm");
44
47
  if (ENABLE_FILE_LOG && !fs.existsSync(LOG_DIR)) fs.mkdirSync(LOG_DIR, { recursive: true });
45
48
 
@@ -51,26 +54,9 @@ function saveRequestLog(url, bodyBuffer) {
51
54
  const filePath = path.join(LOG_DIR, `${ts}_${urlSlug}.json`);
52
55
  const body = JSON.parse(bodyBuffer.toString());
53
56
  fs.writeFileSync(filePath, JSON.stringify(body, null, 2));
54
- console.log(`💾 Saved request: ${filePath}`);
55
- } catch {
56
- // Ignore
57
- }
58
- }
59
-
60
- function saveResponseLog(url, data) {
61
- if (!ENABLE_FILE_LOG) return;
62
- try {
63
- const ts = new Date().toISOString().replace(/[:.]/g, "-");
64
- const urlSlug = url.replace(/[^a-zA-Z0-9]/g, "_").substring(0, 60);
65
- const filePath = path.join(LOG_DIR, `${ts}_${urlSlug}_response.txt`);
66
- fs.writeFileSync(filePath, data);
67
- console.log(`💾 Saved response: ${filePath}`);
68
- } catch {
69
- // Ignore
70
- }
57
+ } catch { /* ignore */ }
71
58
  }
72
59
 
73
- // Resolve real IP of target host (bypass /etc/hosts)
74
60
  const cachedTargetIPs = {};
75
61
  async function resolveTargetIP(hostname) {
76
62
  if (cachedTargetIPs[hostname]) return cachedTargetIPs[hostname];
@@ -91,27 +77,36 @@ function collectBodyRaw(req) {
91
77
  });
92
78
  }
93
79
 
94
- // Extract model from URL path (Gemini format: /v1beta/models/gemini-2.0-flash:generateContent)
95
- // Fallback to body.model (OpenAI format)
80
+ // Extract model from URL path (Gemini) or body (OpenAI/Anthropic)
96
81
  function extractModel(url, body) {
97
82
  const urlMatch = url.match(/\/models\/([^/:]+)/);
98
83
  if (urlMatch) return urlMatch[1];
99
84
  try { return JSON.parse(body.toString()).model || null; } catch { return null; }
100
85
  }
101
86
 
102
- function getMappedModel(model) {
87
+ function getMappedModel(tool, model) {
103
88
  if (!model) return null;
104
89
  try {
105
90
  if (!fs.existsSync(DB_FILE)) return null;
106
91
  const db = JSON.parse(fs.readFileSync(DB_FILE, "utf-8"));
107
- return db.mitmAlias?.antigravity?.[model] || null;
92
+ return db.mitmAlias?.[tool]?.[model] || null;
108
93
  } catch {
109
94
  return null;
110
95
  }
111
96
  }
112
97
 
98
+ /**
99
+ * Determine which tool this request belongs to based on hostname
100
+ */
101
+ function getToolForHost(host) {
102
+ const h = (host || "").split(":")[0];
103
+ if (h === "api.individual.githubcopilot.com") return "copilot";
104
+ if (h === "daily-cloudcode-pa.googleapis.com" || h === "cloudcode-pa.googleapis.com") return "antigravity";
105
+ return null;
106
+ }
107
+
113
108
  async function passthrough(req, res, bodyBuffer) {
114
- const targetHost = req.headers.host || TARGET_HOSTS[0];
109
+ const targetHost = (req.headers.host || TARGET_HOSTS[0]).split(":")[0];
115
110
  const targetIP = await resolveTargetIP(targetHost);
116
111
 
117
112
  const forwardReq = https.request({
@@ -163,7 +158,6 @@ async function intercept(req, res, bodyBuffer, mappedModel) {
163
158
 
164
159
  const reader = response.body.getReader();
165
160
  const decoder = new TextDecoder();
166
-
167
161
  while (true) {
168
162
  const { done, value } = await reader.read();
169
163
  if (done) { res.end(); break; }
@@ -177,7 +171,6 @@ async function intercept(req, res, bodyBuffer, mappedModel) {
177
171
  }
178
172
 
179
173
  const server = https.createServer(sslOptions, async (req, res) => {
180
- // Health check endpoint for startup verification
181
174
  if (req.url === "/_mitm_health") {
182
175
  res.writeHead(200, { "Content-Type": "application/json" });
183
176
  res.end(JSON.stringify({ ok: true, pid: process.pid }));
@@ -185,27 +178,28 @@ const server = https.createServer(sslOptions, async (req, res) => {
185
178
  }
186
179
 
187
180
  const bodyBuffer = await collectBodyRaw(req);
188
-
189
- // Save request log if enabled
190
181
  if (bodyBuffer.length > 0) saveRequestLog(req.url, bodyBuffer);
191
182
 
192
- // Anti-loop: requests from 9Router bypass interception
183
+ // Anti-loop: requests originating from 9Router bypass interception
193
184
  if (req.headers[INTERNAL_REQUEST_HEADER.name] === INTERNAL_REQUEST_HEADER.value) {
194
185
  return passthrough(req, res, bodyBuffer);
195
186
  }
196
187
 
197
- const isChatRequest = CHAT_URL_PATTERNS.some(p => req.url.includes(p));
188
+ const tool = getToolForHost(req.headers.host);
189
+ if (!tool) return passthrough(req, res, bodyBuffer);
198
190
 
199
- if (!isChatRequest) {
200
- return passthrough(req, res, bodyBuffer);
201
- }
191
+ // Check if this URL should be intercepted based on tool
192
+ const isChat = tool === "antigravity"
193
+ ? ANTIGRAVITY_URL_PATTERNS.some(p => req.url.includes(p))
194
+ : COPILOT_URL_PATTERNS.some(p => req.url.includes(p));
195
+
196
+ if (!isChat) return passthrough(req, res, bodyBuffer);
202
197
 
203
198
  const model = extractModel(req.url, bodyBuffer);
204
- const mappedModel = getMappedModel(model);
199
+ console.log("Extracted model:", model)
200
+ const mappedModel = getMappedModel(tool, model);
205
201
 
206
- if (!mappedModel) {
207
- return passthrough(req, res, bodyBuffer);
208
- }
202
+ if (!mappedModel) return passthrough(req, res, bodyBuffer);
209
203
 
210
204
  return intercept(req, res, bodyBuffer, mappedModel);
211
205
  });
@@ -225,7 +219,6 @@ server.on("error", (error) => {
225
219
  process.exit(1);
226
220
  });
227
221
 
228
- // Graceful shutdown (SIGBREAK for Windows, SIGTERM/SIGINT for Unix)
229
222
  const shutdown = () => { server.close(() => process.exit(0)); };
230
223
  process.on("SIGTERM", shutdown);
231
224
  process.on("SIGINT", shutdown);
@@ -0,0 +1,73 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Postinstall hook for 9router CLI
5
+ * Rebuilds better-sqlite3 native addon for the current platform
6
+ */
7
+
8
+ const { execSync } = require("child_process");
9
+ const fs = require("fs");
10
+ const path = require("path");
11
+
12
+ const appDir = path.join(__dirname, "..", "app");
13
+ const betterSqlitePath = path.join(appDir, "node_modules", "better-sqlite3");
14
+
15
+ // Check if better-sqlite3 exists
16
+ if (!fs.existsSync(betterSqlitePath)) {
17
+ console.log("better-sqlite3 not found, skipping rebuild");
18
+ process.exit(0);
19
+ }
20
+
21
+ // Check if native binary is valid for current platform
22
+ function isValidBinary() {
23
+ const buildDir = path.join(betterSqlitePath, "build", "Release");
24
+ const binaryPath = path.join(buildDir, "better_sqlite3.node");
25
+
26
+ if (!fs.existsSync(binaryPath)) {
27
+ return false;
28
+ }
29
+
30
+ const fd = fs.openSync(binaryPath, "r");
31
+ const buffer = Buffer.alloc(4);
32
+ fs.readSync(fd, buffer, 0, 4, 0);
33
+ fs.closeSync(fd);
34
+
35
+ const magic = buffer.toString("hex");
36
+
37
+ // ELF (Linux): 7f454c46
38
+ // Mach-O (macOS): cffaedfe or cefaedfe (little/big endian)
39
+ // PE (Windows): 4d5a (MZ)
40
+ const isLinux = magic.startsWith("7f454c46");
41
+ const isMacOS = magic.startsWith("cffaedfe") || magic.startsWith("cefaedfe");
42
+ const isWindows = magic.startsWith("4d5a");
43
+
44
+ const platform = process.platform;
45
+ const expectedLinux = platform === "linux" && isLinux;
46
+ const expectedMacOS = platform === "darwin" && isMacOS;
47
+ const expectedWindows = platform === "win32" && isWindows;
48
+
49
+ return expectedLinux || expectedMacOS || expectedWindows;
50
+ }
51
+
52
+ // Skip rebuild if binary is already valid
53
+ if (isValidBinary()) {
54
+ console.log("better-sqlite3 binary is valid for this platform, skipping rebuild");
55
+ process.exit(0);
56
+ }
57
+
58
+ console.log("Rebuilding better-sqlite3 for current platform...");
59
+
60
+ try {
61
+ execSync("npm rebuild better-sqlite3 --build-from-source", {
62
+ cwd: appDir,
63
+ stdio: "inherit",
64
+ timeout: 120000
65
+ });
66
+ console.log("better-sqlite3 rebuilt successfully");
67
+ } catch (error) {
68
+ console.warn("Failed to rebuild better-sqlite3. The app may not work correctly.");
69
+ console.warn("Make sure you have build tools installed (python, make, gcc/node-gyp)");
70
+ console.warn("Error:", error.message);
71
+ // Don't exit with error code - allow install to complete
72
+ process.exit(0);
73
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "9router",
3
- "version": "0.3.29",
3
+ "version": "0.3.31",
4
4
  "description": "9Router CLI - Start and manage 9Router server",
5
5
  "bin": {
6
6
  "9router": "./cli.js"
@@ -14,6 +14,7 @@
14
14
  "LICENSE"
15
15
  ],
16
16
  "scripts": {
17
+ "postinstall": "node hooks/postinstall.js",
17
18
  "prepublishOnly": "cd .. && npm run build:cli"
18
19
  },
19
20
  "dependencies": {
@@ -1 +0,0 @@
1
- exports.id=1164,exports.ids=[1164],exports.modules={2422:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/UsageStats.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/UsageStats.js","default")},3080:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/OAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/OAuthModal.js","default")},7290:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Card.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Card.js","default")},10079:(a,b,c)=>{"use strict";c.d(b,{ConfirmModal:()=>f,default:()=>e});var d=c(77943);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Modal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Modal.js","default"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call ConfirmModal() from the server but ConfirmModal is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Modal.js","ConfirmModal")},14285:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js","default")},19083:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/RequestLogger.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/RequestLogger.js","default")},26866:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Sidebar.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Sidebar.js","default")},30508:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(5735);c(45512),c(71230),c(83784),c(7290),c(10079),c(92082),c(70061),c(33893),c(70092),c(40515),c(89886),c(26866),c(92669),c(49123),c(3080),c(94582),c(70603),c(2422),c(19083),c(82448),c(14285),c(87228),c(40167),c(54065);var e=c(61780);function f({children:a}){return(0,d.jsx)(e.default,{children:a})}c(64420)},33893:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Badge.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Badge.js","default")},40167:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js","default")},40515:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/ThemeToggle.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js","default")},45512:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Button.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Button.js","default")},49123:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Footer.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Footer.js","default")},54065:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/SegmentedControl.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js","default")},61780:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js","default")},62220:(a,b,c)=>{Promise.resolve().then(c.bind(c,25919)),Promise.resolve().then(c.bind(c,75171)),Promise.resolve().then(c.bind(c,99070)),Promise.resolve().then(c.bind(c,17660)),Promise.resolve().then(c.bind(c,51109)),Promise.resolve().then(c.bind(c,48781)),Promise.resolve().then(c.bind(c,86739)),Promise.resolve().then(c.bind(c,83552)),Promise.resolve().then(c.bind(c,86209)),Promise.resolve().then(c.bind(c,5291)),Promise.resolve().then(c.bind(c,56110)),Promise.resolve().then(c.bind(c,53838)),Promise.resolve().then(c.bind(c,85306)),Promise.resolve().then(c.bind(c,74812)),Promise.resolve().then(c.bind(c,39645)),Promise.resolve().then(c.bind(c,95145)),Promise.resolve().then(c.bind(c,83352)),Promise.resolve().then(c.bind(c,79346)),Promise.resolve().then(c.bind(c,91809)),Promise.resolve().then(c.bind(c,91099)),Promise.resolve().then(c.bind(c,4770)),Promise.resolve().then(c.bind(c,42196)),Promise.resolve().then(c.bind(c,19308)),Promise.resolve().then(c.bind(c,53845)),Promise.resolve().then(c.bind(c,95514)),Promise.resolve().then(c.bind(c,87226))},64420:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js","default")},70061:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Avatar.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Avatar.js","default")},70092:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Toggle.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Toggle.js","default")},70603:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js","default")},71230:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Input.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Input.js","default")},75372:(a,b,c)=>{Promise.resolve().then(c.bind(c,70061)),Promise.resolve().then(c.bind(c,33893)),Promise.resolve().then(c.bind(c,45512)),Promise.resolve().then(c.bind(c,7290)),Promise.resolve().then(c.bind(c,40167)),Promise.resolve().then(c.bind(c,49123)),Promise.resolve().then(c.bind(c,92669)),Promise.resolve().then(c.bind(c,71230)),Promise.resolve().then(c.bind(c,82448)),Promise.resolve().then(c.bind(c,14285)),Promise.resolve().then(c.bind(c,87228)),Promise.resolve().then(c.bind(c,64420)),Promise.resolve().then(c.bind(c,61780)),Promise.resolve().then(c.bind(c,92082)),Promise.resolve().then(c.bind(c,70603)),Promise.resolve().then(c.bind(c,10079)),Promise.resolve().then(c.bind(c,94582)),Promise.resolve().then(c.bind(c,3080)),Promise.resolve().then(c.bind(c,19083)),Promise.resolve().then(c.bind(c,54065)),Promise.resolve().then(c.bind(c,83784)),Promise.resolve().then(c.bind(c,26866)),Promise.resolve().then(c.bind(c,89886)),Promise.resolve().then(c.bind(c,40515)),Promise.resolve().then(c.bind(c,70092)),Promise.resolve().then(c.bind(c,2422))},82448:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js","default")},83784:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Select.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Select.js","default")},87228:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js","default")},92082:(a,b,c)=>{"use strict";c.d(b,{CardSkeleton:()=>h,PageLoading:()=>f,Skeleton:()=>g,Spinner:()=>e,default:()=>i});var d=c(77943);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call Spinner() from the server but Spinner is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Loading.js","Spinner"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call PageLoading() from the server but PageLoading is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Loading.js","PageLoading"),g=(0,d.registerClientReference)(function(){throw Error("Attempted to call Skeleton() from the server but Skeleton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Loading.js","Skeleton"),h=(0,d.registerClientReference)(function(){throw Error("Attempted to call CardSkeleton() from the server but CardSkeleton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Loading.js","CardSkeleton"),i=(0,d.registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Loading.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Loading.js","default")},92669:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Header.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Header.js","default")},94582:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js","default")}};
@@ -1 +0,0 @@
1
- self.__BUILD_MANIFEST=function(e,s,t,a,r,i,n){return{__rewrites:{afterFiles:[{has:t,source:"/v1/v1/:path*",destination:a},{has:t,source:"/v1/v1",destination:r},{has:t,source:"/codex/:path*",destination:"/api/v1/responses"},{has:t,source:"/v1/:path*",destination:a},{has:t,source:"/v1",destination:r}],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:86,errorRate:1e-4,numBits:1649,numHashes:14,bitArray:[0,1,0,0,1,1,0,0,1,1,1,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,0,1,1,1,0,1,0,0,1,0,1,1,1,0,0,0,0,1,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,0,1,0,0,0,1,0,1,1,1,1,1,1,0,1,0,1,0,0,0,1,0,0,0,1,0,0,1,1,1,0,1,1,1,0,1,0,1,1,0,0,1,0,0,1,1,1,1,1,1,0,1,0,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,0,1,0,0,1,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,0,0,0,1,0,0,1,0,1,1,1,0,0,0,0,1,1,1,0,1,1,1,1,1,0,0,0,0,1,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,1,1,1,1,0,0,1,0,1,1,1,0,1,0,0,1,0,1,0,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,0,0,1,0,1,0,0,0,0,0,0,1,0,0,1,0,1,1,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,1,1,1,1,1,1,0,0,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,0,0,0,1,0,0,0,1,0,0,1,1,1,1,0,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,0,1,0,0,0,0,1,1,0,1,1,1,1,0,1,0,1,1,1,0,0,0,0,0,1,0,1,1,1,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,1,0,1,1,1,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,1,1,1,1,0,0,0,0,1,0,0,0,1,1,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,1,0,0,1,0,1,0,0,0,1,0,1,1,0,1,0,0,1,1,0,0,0,1,1,1,1,1,0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,1,0,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,0,1,1,0,1,0,1,1,0,1,0,0,1,0,0,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,0,0,1,0,0,1,1,1,0,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,1,0,1,0,0,0,1,1,1,0,0,0,1,0,1,1,1,0,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,1,1,0,1,0,0,0,0,0,1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,1,0,1,1,1,0,1,1,1,0,0,1,0,1,1,1,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,0,1,0,1,1,0,0,0,0,0,0,1,0,0,1,0,1,0,1,0,1,0,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,1,0,0,1,1,0,0,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,1,0,1,1,1,1,0,1,1,1,0,0,1,1,1,1,0,1,0,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,0,0,0,0,1,1,0,1,1,0,0,1,1,1,1,1,1,1,0,1,0,1,0,0,1,1,0,0,0,1,1,0,1,0,0,1,1,1,0,0,0,0,0,1,0,0,1,0,0,1,1,1,0,1,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,1,1,0,1,0,1,1,0,1,0,1,1,0,0,0,1,1,0,1,1,1,1,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,0,1,1,0,1,0,0,1,1,1,0,0,1,0,0,0,1,0,1,1,0,0,1,0,0,0,1,0,1,1,0,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,0,0,0,0,1,1,0,1,0,1,1,1,0,1,1,0,1,1,1,0,0,1,1,1,0,1,1,0,0,1,1,1,1,1,1,0,0,1,1,0,0,0,0,0,1,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,1,1,1,1,0,1,1,1,0,0,0,1,1,0,1,1,0,0,1,1,1,1,0,1,0,0,0,0,1,1,0,1,1,1,1,1,0,0,1,0,1,0,1,0,1,0,1,0,0,1,1,0,1,0,1,0,1,1,0,1,1,0,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,0,1,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,0,1,0,1,1,0,0,1,1,0,0,1,0,0,1,0,0,0,1,1,1,0,0,1,0,0,0,1,0,1,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,1,1,1,1,0,1,1,0,1,1,0,0,1,1,0,0,1,1,1,0,0,0,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0,1,0,1,0,1,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,1,1,1,1,0,0,1,0,0,0,1,1,0,1,1,0,1,0,0,0,0,1,1,1,1,1,0,1,1,0,1,1,0,1,1,0,0,0,1,1,0,1,0,1,0,1,0,0,0,1,1,0,1,0,1,1,0,0,0,0,1,1,0,1,1,0,1,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,1,0,1,1,1,1,1,0,1,0,0,1,1,0,0,1,0,0,0,1,1,1,0,1,1,0,1,0,0,0,1,0,0,1,0,0,1,1,1,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,1,1,0,0,0,0]},__routerFilterDynamic:{numItems:8,errorRate:1e-4,numBits:154,numHashes:14,bitArray:[1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,1,1,0,0,1,1,0,1,1,0,0,1,0,1,1,0,0,1,0,0,1,0,0,1,1,0,0,0,0,0,1,0,1,0,0,1,1,1,0,1,1,1,0,0,0,1,0,1,1,1,0,1,0,0,0,1,1,1,0,0,1,1,0,1,1,0,1,0,1,0,1,0,0,1,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,0,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,1,0,0,0,1,1,0,1,0,0,1,0,1,0,1]},sortedPages:["/_app"]}}(0,0,void 0,"/api/v1/:path*","/api/v1",0,0),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4495],{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"}],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"},{id:"claude-4.6-opus-max",name:"Claude 4.6 Opus Max"},{id:"claude-4.6-sonnet-medium-thinking",name:"Claude 4.6 Sonnet Medium Thinking"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.3-codex",name:"GPT 5.3 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"}],alicode:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-max-2026-01-23",name:"Qwen3 Max"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}],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",alicode:"alicode",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]||[]}},52679:(e,i,a)=>{a.d(i,{DI:()=>t,IS:()=>n,JH:()=>d,MA:()=>r,Q2:()=>s,fg:()=>m,gb:()=>c,mq:()=>l,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"},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC"},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL"}},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"},"glm-cn":{id:"glm-cn",alias:"glm-cn",name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",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"},alicode:{id:"alicode",alias:"alicode",name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi"},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"},chutes:{id:"chutes",alias:"ch",name:"Chutes AI",icon:"water_drop",color:"#5B6EF5",textIcon:"CH",website:"https://chutes.ai"}},d="openai-compatible-",t="anthropic-compatible-";function l(e){return"string"==typeof e&&e.startsWith(d)}function c(e){return"string"==typeof e&&e.startsWith(t)}let s={...n,...o,...m},r={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"]}}]);