9router 0.2.76 → 0.2.78

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 (251) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/app-path-routes-manifest.json +34 -34
  3. package/app/.next/build-manifest.json +2 -2
  4. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  5. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  6. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/_global-error.html +2 -2
  16. package/app/.next/server/app/_global-error.rsc +1 -1
  17. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  18. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  19. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  20. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  21. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  22. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  23. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/_not-found.html +1 -1
  25. package/app/.next/server/app/_not-found.rsc +2 -2
  26. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  27. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  28. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  29. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  30. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  31. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  32. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  36. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  40. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  42. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  43. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  44. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  45. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  46. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  47. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  48. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  49. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  51. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  58. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  60. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  61. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  62. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  63. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  64. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  66. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  67. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  68. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  69. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  70. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  71. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  72. package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
  73. package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
  74. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  75. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  76. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  77. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  78. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  79. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  80. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  81. package/app/.next/server/app/api/usage/providers/route_client-reference-manifest.js +1 -1
  82. package/app/.next/server/app/api/usage/request-details/route_client-reference-manifest.js +1 -1
  83. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  84. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  85. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  87. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  88. package/app/.next/server/app/api/v1/models/route.js +1 -1
  89. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  90. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  91. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  92. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  93. package/app/.next/server/app/api/v1beta/models/route.js +1 -1
  94. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  95. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  96. package/app/.next/server/app/callback.html +1 -1
  97. package/app/.next/server/app/callback.rsc +2 -2
  98. package/app/.next/server/app/callback.segments/_full.segment.rsc +2 -2
  99. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  100. package/app/.next/server/app/callback.segments/_index.segment.rsc +2 -2
  101. package/app/.next/server/app/callback.segments/_tree.segment.rsc +1 -1
  102. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  103. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  104. package/app/.next/server/app/dashboard/cli-tools.html +1 -1
  105. package/app/.next/server/app/dashboard/cli-tools.rsc +4 -4
  106. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  107. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  108. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  109. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  110. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +4 -4
  111. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  112. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +2 -2
  113. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  114. package/app/.next/server/app/dashboard/combos.html +1 -1
  115. package/app/.next/server/app/dashboard/combos.rsc +4 -4
  116. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  117. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  118. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  119. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  120. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +4 -4
  121. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  122. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +2 -2
  123. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  124. package/app/.next/server/app/dashboard/endpoint.html +1 -1
  125. package/app/.next/server/app/dashboard/endpoint.rsc +4 -4
  126. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  127. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  128. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  129. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  130. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +4 -4
  131. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  132. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +2 -2
  133. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  134. package/app/.next/server/app/dashboard/profile.html +1 -1
  135. package/app/.next/server/app/dashboard/profile.rsc +4 -4
  136. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  137. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  138. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  139. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  140. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +4 -4
  141. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  142. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +2 -2
  143. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  144. package/app/.next/server/app/dashboard/providers/new.html +1 -1
  145. package/app/.next/server/app/dashboard/providers/new.rsc +4 -4
  146. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  147. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  148. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  149. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  150. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  151. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +4 -4
  152. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  153. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +2 -2
  154. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  155. package/app/.next/server/app/dashboard/providers.html +1 -1
  156. package/app/.next/server/app/dashboard/providers.rsc +4 -4
  157. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  158. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  159. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  160. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  161. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +4 -4
  162. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  163. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +2 -2
  164. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  165. package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  166. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  167. package/app/.next/server/app/dashboard/settings/pricing.rsc +2 -2
  168. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +2 -2
  169. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  170. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +2 -2
  171. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  172. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  173. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  174. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  175. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  176. package/app/.next/server/app/dashboard/translator.html +1 -1
  177. package/app/.next/server/app/dashboard/translator.rsc +4 -4
  178. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  179. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  180. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  181. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  182. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +4 -4
  183. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  184. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +2 -2
  185. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  186. package/app/.next/server/app/dashboard/usage.html +1 -1
  187. package/app/.next/server/app/dashboard/usage.rsc +4 -4
  188. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  189. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  190. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  191. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  192. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +4 -4
  193. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  194. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +2 -2
  195. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  196. package/app/.next/server/app/dashboard.html +1 -1
  197. package/app/.next/server/app/dashboard.rsc +4 -4
  198. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  199. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  200. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  201. package/app/.next/server/app/dashboard.segments/_full.segment.rsc +4 -4
  202. package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  203. package/app/.next/server/app/dashboard.segments/_index.segment.rsc +2 -2
  204. package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  205. package/app/.next/server/app/index.html +1 -1
  206. package/app/.next/server/app/index.rsc +2 -2
  207. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  208. package/app/.next/server/app/index.segments/_full.segment.rsc +2 -2
  209. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  210. package/app/.next/server/app/index.segments/_index.segment.rsc +2 -2
  211. package/app/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  212. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  213. package/app/.next/server/app/landing.html +1 -1
  214. package/app/.next/server/app/landing.rsc +2 -2
  215. package/app/.next/server/app/landing.segments/_full.segment.rsc +2 -2
  216. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  217. package/app/.next/server/app/landing.segments/_index.segment.rsc +2 -2
  218. package/app/.next/server/app/landing.segments/_tree.segment.rsc +1 -1
  219. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  220. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  221. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  222. package/app/.next/server/app/login.html +1 -1
  223. package/app/.next/server/app/login.rsc +3 -3
  224. package/app/.next/server/app/login.segments/_full.segment.rsc +3 -3
  225. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  226. package/app/.next/server/app/login.segments/_index.segment.rsc +2 -2
  227. package/app/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  228. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  229. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  230. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  231. package/app/.next/server/app-paths-manifest.json +34 -34
  232. package/app/.next/server/chunks/412.js +1 -1
  233. package/app/.next/server/chunks/8152.js +1 -1
  234. package/app/.next/server/chunks/8954.js +1 -1
  235. package/app/.next/server/pages/404.html +1 -1
  236. package/app/.next/server/pages/500.html +2 -2
  237. package/app/.next/server/server-reference-manifest.js +1 -1
  238. package/app/.next/server/server-reference-manifest.json +1 -1
  239. package/app/.next/static/chunks/{1393-ec22348a03d98802.js → 1393-e72d9173010b9d65.js} +1 -1
  240. package/app/.next/static/chunks/{3624-b4d607564b40b24d.js → 3624-e096f4cf594e2fc8.js} +1 -1
  241. package/app/.next/static/chunks/{8729-d0b4e0c8d88b1814.js → 8729-fc0f92ed5e5d2411.js} +1 -1
  242. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-ebe23b0367ddebdc.js +1 -0
  243. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-4940a5acf1d029cb.js +1 -0
  244. package/app/package.json +1 -1
  245. package/app/src/mitm/manager.js +45 -25
  246. package/app/src/mitm/server.js +7 -2
  247. package/package.json +1 -1
  248. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-000eaf8021eb5f32.js +0 -1
  249. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-acb031d56db92fdf.js +0 -1
  250. /package/app/.next/static/{4_-SlrTLGXafpky2yrplN → jfmN0W_9Gk1asYjgWltrV}/_buildManifest.js +0 -0
  251. /package/app/.next/static/{4_-SlrTLGXafpky2yrplN → jfmN0W_9Gk1asYjgWltrV}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- <!DOCTYPE html><!--4__SlrTLGXafpky2yrplN--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/e4a2c774b676c378.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-34add7e75711617f.js"/><script src="/_next/static/chunks/4bd1b696-bf5e0dbacfa5baef.js" async=""></script><script src="/_next/static/chunks/3794-cd98b5cd5fb65b19.js" async=""></script><script src="/_next/static/chunks/main-app-8bfa111f852aed9b.js" async=""></script><script src="/_next/static/chunks/600-698f3e9fe5d9a2a4.js" async=""></script><script src="/_next/static/chunks/3624-b4d607564b40b24d.js" async=""></script><script src="/_next/static/chunks/8729-d0b4e0c8d88b1814.js" async=""></script><script src="/_next/static/chunks/5497-ad7fb90ac4a481cb.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-2951a18467171aa4.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&amp;display=swap" as="style"/><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><title>404: This page could not be found.</title><title>9Router - AI Infrastructure Management</title><meta name="description" content="One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."/><link rel="icon" href="/favicon.ico?603d046c9a6fdfbb" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/favicon.svg"/><link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&amp;display=swap" rel="stylesheet"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_f367f3 font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-34add7e75711617f.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[1110,[\"600\",\"static/chunks/600-698f3e9fe5d9a2a4.js\",\"3624\",\"static/chunks/3624-b4d607564b40b24d.js\",\"8729\",\"static/chunks/8729-d0b4e0c8d88b1814.js\",\"5497\",\"static/chunks/5497-ad7fb90ac4a481cb.js\",\"9305\",\"static/chunks/app/(dashboard)/layout-2951a18467171aa4.js\"],\"ThemeProvider\"]\n3:I[7121,[],\"\"]\n4:I[4581,[],\"\"]\n5:I[484,[],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n8:I[484,[],\"ViewportBoundary\"]\na:I[484,[],\"MetadataBoundary\"]\nc:I[7123,[],\"\"]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/e4a2c774b676c378.css\",\"style\"]\n:HL[\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"4_-SlrTLGXafpky2yrplN\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e4a2c774b676c378.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"__variable_f367f3 font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"d:I[6869,[],\"IconMark\"]\n7:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"9Router - AI Infrastructure Management\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?603d046c9a6fdfbb\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$Ld\",\"4\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--jfmN0W_9Gk1asYjgWltrV--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/e4a2c774b676c378.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-34add7e75711617f.js"/><script src="/_next/static/chunks/4bd1b696-bf5e0dbacfa5baef.js" async=""></script><script src="/_next/static/chunks/3794-cd98b5cd5fb65b19.js" async=""></script><script src="/_next/static/chunks/main-app-8bfa111f852aed9b.js" async=""></script><script src="/_next/static/chunks/600-698f3e9fe5d9a2a4.js" async=""></script><script src="/_next/static/chunks/3624-e096f4cf594e2fc8.js" async=""></script><script src="/_next/static/chunks/8729-fc0f92ed5e5d2411.js" async=""></script><script src="/_next/static/chunks/5497-ad7fb90ac4a481cb.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-2951a18467171aa4.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&amp;display=swap" as="style"/><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><title>404: This page could not be found.</title><title>9Router - AI Infrastructure Management</title><meta name="description" content="One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."/><link rel="icon" href="/favicon.ico?603d046c9a6fdfbb" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/favicon.svg"/><link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&amp;display=swap" rel="stylesheet"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_f367f3 font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-34add7e75711617f.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[1110,[\"600\",\"static/chunks/600-698f3e9fe5d9a2a4.js\",\"3624\",\"static/chunks/3624-e096f4cf594e2fc8.js\",\"8729\",\"static/chunks/8729-fc0f92ed5e5d2411.js\",\"5497\",\"static/chunks/5497-ad7fb90ac4a481cb.js\",\"9305\",\"static/chunks/app/(dashboard)/layout-2951a18467171aa4.js\"],\"ThemeProvider\"]\n3:I[7121,[],\"\"]\n4:I[4581,[],\"\"]\n5:I[484,[],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n8:I[484,[],\"ViewportBoundary\"]\na:I[484,[],\"MetadataBoundary\"]\nc:I[7123,[],\"\"]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/e4a2c774b676c378.css\",\"style\"]\n:HL[\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"jfmN0W_9Gk1asYjgWltrV\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e4a2c774b676c378.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"__variable_f367f3 font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"d:I[6869,[],\"IconMark\"]\n7:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"9Router - AI Infrastructure Management\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?603d046c9a6fdfbb\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$Ld\",\"4\",{}]]\n"])</script></body></html>
@@ -1,2 +1,2 @@
1
- <!DOCTYPE html><!--4__SlrTLGXafpky2yrplN--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-34add7e75711617f.js"/><script src="/_next/static/chunks/4bd1b696-bf5e0dbacfa5baef.js" async=""></script><script src="/_next/static/chunks/3794-cd98b5cd5fb65b19.js" async=""></script><script src="/_next/static/chunks/main-app-8bfa111f852aed9b.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
- @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-34add7e75711617f.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7121,[],\"\"]\n3:I[4581,[],\"\"]\n4:I[484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[484,[],\"ViewportBoundary\"]\n9:I[484,[],\"MetadataBoundary\"]\nb:I[7123,[],\"\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"4_-SlrTLGXafpky2yrplN\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--jfmN0W_9Gk1asYjgWltrV--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-34add7e75711617f.js"/><script src="/_next/static/chunks/4bd1b696-bf5e0dbacfa5baef.js" async=""></script><script src="/_next/static/chunks/3794-cd98b5cd5fb65b19.js" async=""></script><script src="/_next/static/chunks/main-app-8bfa111f852aed9b.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
+ @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-34add7e75711617f.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7121,[],\"\"]\n3:I[4581,[],\"\"]\n4:I[484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[484,[],\"ViewportBoundary\"]\n9:I[484,[],\"MetadataBoundary\"]\nb:I[7123,[],\"\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"jfmN0W_9Gk1asYjgWltrV\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>
@@ -1 +1 @@
1
- self.__RSC_SERVER_MANIFEST="{\"node\":{\"4020dc1456d7b92cfc27cdc401d0f2b121fc9377c4\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":{\"moduleId\":\"76200\",\"async\":false}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/alias/route.js\",\"exportedName\":\"GET\"},\"40c6354f22d4b97d20eaf7f65d95101321602958f5\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":{\"moduleId\":\"76200\",\"async\":false}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/alias/route.js\",\"exportedName\":\"PUT\"},\"00b830cb3ad8ae488716b54de8f59f7a5dff59a87a\":{\"workers\":{\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"48101\",\"async\":false}},\"layer\":{\"app/api/cli-tools/claude-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/claude-settings/route.js\",\"exportedName\":\"GET\"},\"00f0521a01f1371abc196c1a806c7d817aba6f24fd\":{\"workers\":{\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"48101\",\"async\":false}},\"layer\":{\"app/api/cli-tools/claude-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/claude-settings/route.js\",\"exportedName\":\"DELETE\"},\"406b5421c0d9278c73508c39a731577bf6ed4d02ca\":{\"workers\":{\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"48101\",\"async\":false}},\"layer\":{\"app/api/cli-tools/claude-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/claude-settings/route.js\",\"exportedName\":\"POST\"},\"00ae22a114a5e0ea29ffb51186f926f0a14a628651\":{\"workers\":{\"app/api/cli-tools/openclaw-settings/route\":{\"moduleId\":\"85589\",\"async\":false}},\"layer\":{\"app/api/cli-tools/openclaw-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/openclaw-settings/route.js\",\"exportedName\":\"DELETE\"},\"00edbbed331af43249c958f0d2d72f5e24364912a1\":{\"workers\":{\"app/api/cli-tools/openclaw-settings/route\":{\"moduleId\":\"85589\",\"async\":false}},\"layer\":{\"app/api/cli-tools/openclaw-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/openclaw-settings/route.js\",\"exportedName\":\"GET\"},\"40b069e711997d56fd1cd254d764ab93da9bc876b6\":{\"workers\":{\"app/api/cli-tools/openclaw-settings/route\":{\"moduleId\":\"85589\",\"async\":false}},\"layer\":{\"app/api/cli-tools/openclaw-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/openclaw-settings/route.js\",\"exportedName\":\"POST\"},\"00abc210d509c2a5babe45934cdf44cae1726962fc\":{\"workers\":{\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"83722\",\"async\":false}},\"layer\":{\"app/api/cli-tools/codex-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/codex-settings/route.js\",\"exportedName\":\"DELETE\"},\"00fef668d38ed6414dbbb7377ecfdac61e74ecd9c2\":{\"workers\":{\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"83722\",\"async\":false}},\"layer\":{\"app/api/cli-tools/codex-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/codex-settings/route.js\",\"exportedName\":\"GET\"},\"401d76d3f257906bfd6662f16431180c76be75d9f0\":{\"workers\":{\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"83722\",\"async\":false}},\"layer\":{\"app/api/cli-tools/codex-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/codex-settings/route.js\",\"exportedName\":\"POST\"},\"0037d08db2fa5d1389469ea6e9a3d0ff9d7423e1c7\":{\"workers\":{\"app/api/cli-tools/droid-settings/route\":{\"moduleId\":\"49043\",\"async\":false}},\"layer\":{\"app/api/cli-tools/droid-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/droid-settings/route.js\",\"exportedName\":\"DELETE\"},\"009d98e0ae529f78f46e8404a9524e03a3321240f5\":{\"workers\":{\"app/api/cli-tools/droid-settings/route\":{\"moduleId\":\"49043\",\"async\":false}},\"layer\":{\"app/api/cli-tools/droid-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/droid-settings/route.js\",\"exportedName\":\"GET\"},\"40613914d9a56a3a4950332d356a40550e1766b3c9\":{\"workers\":{\"app/api/cli-tools/droid-settings/route\":{\"moduleId\":\"49043\",\"async\":false}},\"layer\":{\"app/api/cli-tools/droid-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/droid-settings/route.js\",\"exportedName\":\"POST\"},\"00dcc02aeae88f74d9ec0124fb371c6b098b79905c\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/route\":{\"moduleId\":\"85298\",\"async\":false}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/route.js\",\"exportedName\":\"GET\"},\"400d20ae0577d77ba3f21d96e3193f2eab341eaca1\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/route\":{\"moduleId\":\"85298\",\"async\":false}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/route.js\",\"exportedName\":\"DELETE\"},\"40fb22a5994d3f3d53998969358fe69c9b793a2552\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/route\":{\"moduleId\":\"85298\",\"async\":false}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/route.js\",\"exportedName\":\"POST\"}},\"edge\":{},\"encryptionKey\":\"process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY\"}"
1
+ self.__RSC_SERVER_MANIFEST="{\"node\":{\"00b830cb3ad8ae488716b54de8f59f7a5dff59a87a\":{\"workers\":{\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"48101\",\"async\":false}},\"layer\":{\"app/api/cli-tools/claude-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/claude-settings/route.js\",\"exportedName\":\"GET\"},\"00f0521a01f1371abc196c1a806c7d817aba6f24fd\":{\"workers\":{\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"48101\",\"async\":false}},\"layer\":{\"app/api/cli-tools/claude-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/claude-settings/route.js\",\"exportedName\":\"DELETE\"},\"406b5421c0d9278c73508c39a731577bf6ed4d02ca\":{\"workers\":{\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"48101\",\"async\":false}},\"layer\":{\"app/api/cli-tools/claude-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/claude-settings/route.js\",\"exportedName\":\"POST\"},\"00abc210d509c2a5babe45934cdf44cae1726962fc\":{\"workers\":{\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"83722\",\"async\":false}},\"layer\":{\"app/api/cli-tools/codex-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/codex-settings/route.js\",\"exportedName\":\"DELETE\"},\"00fef668d38ed6414dbbb7377ecfdac61e74ecd9c2\":{\"workers\":{\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"83722\",\"async\":false}},\"layer\":{\"app/api/cli-tools/codex-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/codex-settings/route.js\",\"exportedName\":\"GET\"},\"401d76d3f257906bfd6662f16431180c76be75d9f0\":{\"workers\":{\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"83722\",\"async\":false}},\"layer\":{\"app/api/cli-tools/codex-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/codex-settings/route.js\",\"exportedName\":\"POST\"},\"0037d08db2fa5d1389469ea6e9a3d0ff9d7423e1c7\":{\"workers\":{\"app/api/cli-tools/droid-settings/route\":{\"moduleId\":\"49043\",\"async\":false}},\"layer\":{\"app/api/cli-tools/droid-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/droid-settings/route.js\",\"exportedName\":\"DELETE\"},\"009d98e0ae529f78f46e8404a9524e03a3321240f5\":{\"workers\":{\"app/api/cli-tools/droid-settings/route\":{\"moduleId\":\"49043\",\"async\":false}},\"layer\":{\"app/api/cli-tools/droid-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/droid-settings/route.js\",\"exportedName\":\"GET\"},\"40613914d9a56a3a4950332d356a40550e1766b3c9\":{\"workers\":{\"app/api/cli-tools/droid-settings/route\":{\"moduleId\":\"49043\",\"async\":false}},\"layer\":{\"app/api/cli-tools/droid-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/droid-settings/route.js\",\"exportedName\":\"POST\"},\"00ae22a114a5e0ea29ffb51186f926f0a14a628651\":{\"workers\":{\"app/api/cli-tools/openclaw-settings/route\":{\"moduleId\":\"85589\",\"async\":false}},\"layer\":{\"app/api/cli-tools/openclaw-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/openclaw-settings/route.js\",\"exportedName\":\"DELETE\"},\"00edbbed331af43249c958f0d2d72f5e24364912a1\":{\"workers\":{\"app/api/cli-tools/openclaw-settings/route\":{\"moduleId\":\"85589\",\"async\":false}},\"layer\":{\"app/api/cli-tools/openclaw-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/openclaw-settings/route.js\",\"exportedName\":\"GET\"},\"40b069e711997d56fd1cd254d764ab93da9bc876b6\":{\"workers\":{\"app/api/cli-tools/openclaw-settings/route\":{\"moduleId\":\"85589\",\"async\":false}},\"layer\":{\"app/api/cli-tools/openclaw-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/openclaw-settings/route.js\",\"exportedName\":\"POST\"},\"4020dc1456d7b92cfc27cdc401d0f2b121fc9377c4\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":{\"moduleId\":\"76200\",\"async\":false}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/alias/route.js\",\"exportedName\":\"GET\"},\"40c6354f22d4b97d20eaf7f65d95101321602958f5\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":{\"moduleId\":\"76200\",\"async\":false}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/alias/route.js\",\"exportedName\":\"PUT\"},\"00dcc02aeae88f74d9ec0124fb371c6b098b79905c\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/route\":{\"moduleId\":\"85298\",\"async\":false}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/route.js\",\"exportedName\":\"GET\"},\"400d20ae0577d77ba3f21d96e3193f2eab341eaca1\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/route\":{\"moduleId\":\"85298\",\"async\":false}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/route.js\",\"exportedName\":\"DELETE\"},\"40fb22a5994d3f3d53998969358fe69c9b793a2552\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/route\":{\"moduleId\":\"85298\",\"async\":false}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/route.js\",\"exportedName\":\"POST\"}},\"edge\":{},\"encryptionKey\":\"process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY\"}"
@@ -1 +1 @@
1
- {"node":{"4020dc1456d7b92cfc27cdc401d0f2b121fc9377c4":{"workers":{"app/api/cli-tools/antigravity-mitm/alias/route":{"moduleId":"76200","async":false}},"layer":{"app/api/cli-tools/antigravity-mitm/alias/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/alias/route.js","exportedName":"GET"},"40c6354f22d4b97d20eaf7f65d95101321602958f5":{"workers":{"app/api/cli-tools/antigravity-mitm/alias/route":{"moduleId":"76200","async":false}},"layer":{"app/api/cli-tools/antigravity-mitm/alias/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/alias/route.js","exportedName":"PUT"},"00b830cb3ad8ae488716b54de8f59f7a5dff59a87a":{"workers":{"app/api/cli-tools/claude-settings/route":{"moduleId":"48101","async":false}},"layer":{"app/api/cli-tools/claude-settings/route":"rsc"},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"GET"},"00f0521a01f1371abc196c1a806c7d817aba6f24fd":{"workers":{"app/api/cli-tools/claude-settings/route":{"moduleId":"48101","async":false}},"layer":{"app/api/cli-tools/claude-settings/route":"rsc"},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"DELETE"},"406b5421c0d9278c73508c39a731577bf6ed4d02ca":{"workers":{"app/api/cli-tools/claude-settings/route":{"moduleId":"48101","async":false}},"layer":{"app/api/cli-tools/claude-settings/route":"rsc"},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"POST"},"00ae22a114a5e0ea29ffb51186f926f0a14a628651":{"workers":{"app/api/cli-tools/openclaw-settings/route":{"moduleId":"85589","async":false}},"layer":{"app/api/cli-tools/openclaw-settings/route":"rsc"},"filename":"app/api/cli-tools/openclaw-settings/route.js","exportedName":"DELETE"},"00edbbed331af43249c958f0d2d72f5e24364912a1":{"workers":{"app/api/cli-tools/openclaw-settings/route":{"moduleId":"85589","async":false}},"layer":{"app/api/cli-tools/openclaw-settings/route":"rsc"},"filename":"app/api/cli-tools/openclaw-settings/route.js","exportedName":"GET"},"40b069e711997d56fd1cd254d764ab93da9bc876b6":{"workers":{"app/api/cli-tools/openclaw-settings/route":{"moduleId":"85589","async":false}},"layer":{"app/api/cli-tools/openclaw-settings/route":"rsc"},"filename":"app/api/cli-tools/openclaw-settings/route.js","exportedName":"POST"},"00abc210d509c2a5babe45934cdf44cae1726962fc":{"workers":{"app/api/cli-tools/codex-settings/route":{"moduleId":"83722","async":false}},"layer":{"app/api/cli-tools/codex-settings/route":"rsc"},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"DELETE"},"00fef668d38ed6414dbbb7377ecfdac61e74ecd9c2":{"workers":{"app/api/cli-tools/codex-settings/route":{"moduleId":"83722","async":false}},"layer":{"app/api/cli-tools/codex-settings/route":"rsc"},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"GET"},"401d76d3f257906bfd6662f16431180c76be75d9f0":{"workers":{"app/api/cli-tools/codex-settings/route":{"moduleId":"83722","async":false}},"layer":{"app/api/cli-tools/codex-settings/route":"rsc"},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"POST"},"0037d08db2fa5d1389469ea6e9a3d0ff9d7423e1c7":{"workers":{"app/api/cli-tools/droid-settings/route":{"moduleId":"49043","async":false}},"layer":{"app/api/cli-tools/droid-settings/route":"rsc"},"filename":"app/api/cli-tools/droid-settings/route.js","exportedName":"DELETE"},"009d98e0ae529f78f46e8404a9524e03a3321240f5":{"workers":{"app/api/cli-tools/droid-settings/route":{"moduleId":"49043","async":false}},"layer":{"app/api/cli-tools/droid-settings/route":"rsc"},"filename":"app/api/cli-tools/droid-settings/route.js","exportedName":"GET"},"40613914d9a56a3a4950332d356a40550e1766b3c9":{"workers":{"app/api/cli-tools/droid-settings/route":{"moduleId":"49043","async":false}},"layer":{"app/api/cli-tools/droid-settings/route":"rsc"},"filename":"app/api/cli-tools/droid-settings/route.js","exportedName":"POST"},"00dcc02aeae88f74d9ec0124fb371c6b098b79905c":{"workers":{"app/api/cli-tools/antigravity-mitm/route":{"moduleId":"85298","async":false}},"layer":{"app/api/cli-tools/antigravity-mitm/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/route.js","exportedName":"GET"},"400d20ae0577d77ba3f21d96e3193f2eab341eaca1":{"workers":{"app/api/cli-tools/antigravity-mitm/route":{"moduleId":"85298","async":false}},"layer":{"app/api/cli-tools/antigravity-mitm/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/route.js","exportedName":"DELETE"},"40fb22a5994d3f3d53998969358fe69c9b793a2552":{"workers":{"app/api/cli-tools/antigravity-mitm/route":{"moduleId":"85298","async":false}},"layer":{"app/api/cli-tools/antigravity-mitm/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/route.js","exportedName":"POST"}},"edge":{},"encryptionKey":"E6OgI/JOYq7mbTvnRXFd/GnwtbNhE8Dcgo/IQqnzEws="}
1
+ {"node":{"00b830cb3ad8ae488716b54de8f59f7a5dff59a87a":{"workers":{"app/api/cli-tools/claude-settings/route":{"moduleId":"48101","async":false}},"layer":{"app/api/cli-tools/claude-settings/route":"rsc"},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"GET"},"00f0521a01f1371abc196c1a806c7d817aba6f24fd":{"workers":{"app/api/cli-tools/claude-settings/route":{"moduleId":"48101","async":false}},"layer":{"app/api/cli-tools/claude-settings/route":"rsc"},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"DELETE"},"406b5421c0d9278c73508c39a731577bf6ed4d02ca":{"workers":{"app/api/cli-tools/claude-settings/route":{"moduleId":"48101","async":false}},"layer":{"app/api/cli-tools/claude-settings/route":"rsc"},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"POST"},"00abc210d509c2a5babe45934cdf44cae1726962fc":{"workers":{"app/api/cli-tools/codex-settings/route":{"moduleId":"83722","async":false}},"layer":{"app/api/cli-tools/codex-settings/route":"rsc"},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"DELETE"},"00fef668d38ed6414dbbb7377ecfdac61e74ecd9c2":{"workers":{"app/api/cli-tools/codex-settings/route":{"moduleId":"83722","async":false}},"layer":{"app/api/cli-tools/codex-settings/route":"rsc"},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"GET"},"401d76d3f257906bfd6662f16431180c76be75d9f0":{"workers":{"app/api/cli-tools/codex-settings/route":{"moduleId":"83722","async":false}},"layer":{"app/api/cli-tools/codex-settings/route":"rsc"},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"POST"},"0037d08db2fa5d1389469ea6e9a3d0ff9d7423e1c7":{"workers":{"app/api/cli-tools/droid-settings/route":{"moduleId":"49043","async":false}},"layer":{"app/api/cli-tools/droid-settings/route":"rsc"},"filename":"app/api/cli-tools/droid-settings/route.js","exportedName":"DELETE"},"009d98e0ae529f78f46e8404a9524e03a3321240f5":{"workers":{"app/api/cli-tools/droid-settings/route":{"moduleId":"49043","async":false}},"layer":{"app/api/cli-tools/droid-settings/route":"rsc"},"filename":"app/api/cli-tools/droid-settings/route.js","exportedName":"GET"},"40613914d9a56a3a4950332d356a40550e1766b3c9":{"workers":{"app/api/cli-tools/droid-settings/route":{"moduleId":"49043","async":false}},"layer":{"app/api/cli-tools/droid-settings/route":"rsc"},"filename":"app/api/cli-tools/droid-settings/route.js","exportedName":"POST"},"00ae22a114a5e0ea29ffb51186f926f0a14a628651":{"workers":{"app/api/cli-tools/openclaw-settings/route":{"moduleId":"85589","async":false}},"layer":{"app/api/cli-tools/openclaw-settings/route":"rsc"},"filename":"app/api/cli-tools/openclaw-settings/route.js","exportedName":"DELETE"},"00edbbed331af43249c958f0d2d72f5e24364912a1":{"workers":{"app/api/cli-tools/openclaw-settings/route":{"moduleId":"85589","async":false}},"layer":{"app/api/cli-tools/openclaw-settings/route":"rsc"},"filename":"app/api/cli-tools/openclaw-settings/route.js","exportedName":"GET"},"40b069e711997d56fd1cd254d764ab93da9bc876b6":{"workers":{"app/api/cli-tools/openclaw-settings/route":{"moduleId":"85589","async":false}},"layer":{"app/api/cli-tools/openclaw-settings/route":"rsc"},"filename":"app/api/cli-tools/openclaw-settings/route.js","exportedName":"POST"},"4020dc1456d7b92cfc27cdc401d0f2b121fc9377c4":{"workers":{"app/api/cli-tools/antigravity-mitm/alias/route":{"moduleId":"76200","async":false}},"layer":{"app/api/cli-tools/antigravity-mitm/alias/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/alias/route.js","exportedName":"GET"},"40c6354f22d4b97d20eaf7f65d95101321602958f5":{"workers":{"app/api/cli-tools/antigravity-mitm/alias/route":{"moduleId":"76200","async":false}},"layer":{"app/api/cli-tools/antigravity-mitm/alias/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/alias/route.js","exportedName":"PUT"},"00dcc02aeae88f74d9ec0124fb371c6b098b79905c":{"workers":{"app/api/cli-tools/antigravity-mitm/route":{"moduleId":"85298","async":false}},"layer":{"app/api/cli-tools/antigravity-mitm/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/route.js","exportedName":"GET"},"400d20ae0577d77ba3f21d96e3193f2eab341eaca1":{"workers":{"app/api/cli-tools/antigravity-mitm/route":{"moduleId":"85298","async":false}},"layer":{"app/api/cli-tools/antigravity-mitm/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/route.js","exportedName":"DELETE"},"40fb22a5994d3f3d53998969358fe69c9b793a2552":{"workers":{"app/api/cli-tools/antigravity-mitm/route":{"moduleId":"85298","async":false}},"layer":{"app/api/cli-tools/antigravity-mitm/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/route.js","exportedName":"POST"}},"edge":{},"encryptionKey":"E6OgI/JOYq7mbTvnRXFd/GnwtbNhE8Dcgo/IQqnzEws="}
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1393],{1393:(e,s,t)=>{Promise.resolve().then(t.bind(t,5907))},5907:(e,s,t)=>{"use strict";t.d(s,{default:()=>x});var l=t(5155),r=t(2115),a=t(4051),i=t.n(a),n=t(5497),d=t(1059);let o="https://9router.com",c=15e3;function x({machineId:e}){let[s,t]=(0,r.useState)([]),[a,i]=(0,r.useState)(!0),[x,m]=(0,r.useState)(!1),[u,h]=(0,r.useState)(""),[y,p]=(0,r.useState)(null),[g,b]=(0,r.useState)(!1),[f,j]=(0,r.useState)(o),[k,v]=(0,r.useState)(o),[N,w]=(0,r.useState)(!1),[C,S]=(0,r.useState)(!1),[$,_]=(0,r.useState)(!1),[E,P]=(0,r.useState)(!1),[A,W]=(0,r.useState)(null),[O,D]=(0,r.useState)(!1),[T,F]=(0,r.useState)(null),[I,K]=(0,r.useState)(""),{copied:U,copy:L}=(0,d.C)();(0,r.useEffect)(()=>{J(),q()},[]);let R=async(e,s=c)=>{let t=new AbortController,l=setTimeout(()=>t.abort(),s);try{let s=await fetch("/api/sync/cloud",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e}),signal:t.signal}),l=await s.json().catch(()=>({}));return{ok:s.ok,status:s.status,data:l}}catch(e){if(e?.name==="AbortError")return{ok:!1,status:408,data:{error:"Cloud request timeout"}};return{ok:!1,status:500,data:{error:e.message||"Cloud request failed"}}}finally{clearTimeout(l)}},q=async()=>{try{let e=await fetch("/api/settings");if(e.ok){let s=await e.json();b(s.cloudEnabled||!1);let t=s.cloudUrl||o;j(t),v(t)}}catch(e){console.log("Error loading cloud settings:",e)}},J=async()=>{try{let e=await fetch("/api/keys"),s=await e.json();e.ok&&t(s.keys||[])}catch(e){console.log("Error fetching data:",e)}finally{i(!1)}},z=e=>{e?S(!0):_(!0)},Q=async()=>{D(!0),K("syncing");try{let{ok:e,data:s}=await R("enable");e?(K("verifying"),s.verified?(b(!0),F({type:"success",message:"Cloud Proxy connected and verified!"})):(b(!0),F({type:"warning",message:s.verifyError||"Connected but verification failed"})),S(!1),s.createdKey&&await J()):F({type:"error",message:s.error||"Failed to enable cloud"})}catch(e){F({type:"error",message:e.message})}finally{D(!1),K("")}},V=async()=>{D(!0),K("syncing");try{await R("sync"),K("disabling");let{ok:e,data:s}=await R("disable");e?(b(!1),F({type:"success",message:"Cloud disabled"}),_(!1)):F({type:"error",message:s.error||"Failed to disable cloud"})}catch(e){console.log("Error disabling cloud:",e),F({type:"error",message:"Failed to disable cloud"})}finally{D(!1),K("")}},Z=async()=>{let e=k.trim().replace(/\/v1\/?$/,"").replace(/\/+$/,"");if(e){w(!0),W(null);try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cloudUrl:e})})).ok?(j(e),v(e),W({type:"success",message:"Worker URL saved"})):W({type:"error",message:"Failed to save Worker URL"})}catch(e){W({type:"error",message:e.message})}finally{w(!1)}}},H=async()=>{if(f){D(!0),W(null);try{let{ok:e,data:s}=await R("check",8e3);e?W({type:"success",message:s.message||"Worker is running"}):W({type:"error",message:s.error||"Check failed"})}catch{W({type:"error",message:"Cannot reach worker"})}finally{D(!1)}}},Y=async()=>{if(u.trim())try{let e=await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:u})}),s=await e.json();e.ok&&(p(s.key),await J(),h(""),m(!1))}catch(e){console.log("Error creating key:",e)}},B=async e=>{if(confirm("Delete this API key?"))try{(await fetch(`/api/keys/${e}`,{method:"DELETE"})).ok&&t(s.filter(s=>s.id!==e))}catch(e){console.log("Error deleting key:",e)}},[G,M]=(0,r.useState)("/v1"),X=f?`${f}/v1`:"";if((0,r.useEffect)(()=>{M(`${window.location.origin}/v1`)},[]),a)return(0,l.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,l.jsx)(n.Qv,{}),(0,l.jsx)(n.Qv,{})]});let ee=g?X:G;return(0,l.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,l.jsxs)(n.Zp,{children:[(0,l.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("h2",{className:"text-lg font-semibold",children:"API Endpoint"}),(0,l.jsx)("p",{className:"text-sm text-text-muted",children:g?"Using Cloud Proxy":"Using Local Server"})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)(n.$n,{size:"sm",variant:"secondary",icon:"settings",onClick:()=>P(!0),children:"Setup Cloudflare"}),g?(0,l.jsx)(n.$n,{size:"sm",variant:"secondary",icon:"cloud_off",onClick:()=>z(!1),disabled:O,className:"bg-red-500/10! text-red-500! hover:bg-red-500/20! border-red-500/30!",children:"Disable Cloud"}):(0,l.jsx)(n.$n,{variant:"primary",icon:"cloud_upload",onClick:()=>z(!0),disabled:O||!f,className:"bg-linear-to-r from-primary to-blue-500 hover:from-primary-hover hover:to-blue-600",children:"Enable Cloud"})]})]}),(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)(n.pd,{value:ee,readOnly:!0,className:`flex-1 font-mono text-sm ${g?"animate-border-glow":""}`}),(0,l.jsx)(n.$n,{variant:"secondary",icon:"endpoint_url"===U?"check":"content_copy",onClick:()=>L(ee,"endpoint_url"),children:"endpoint_url"===U?"Copied!":"Copy"})]}),T&&(0,l.jsx)("div",{className:`mt-3 p-2 rounded text-sm ${"success"===T.type?"bg-green-500/10 text-green-600 dark:text-green-400":"warning"===T.type?"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400":"bg-red-500/10 text-red-600 dark:text-red-400"}`,children:T.message})]}),(0,l.jsxs)(n.Zp,{children:[(0,l.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,l.jsx)("h2",{className:"text-lg font-semibold",children:"API Keys"}),(0,l.jsx)(n.$n,{icon:"add",onClick:()=>m(!0),children:"Create Key"})]}),0===s.length?(0,l.jsxs)("div",{className:"text-center py-12",children:[(0,l.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 text-primary mb-4",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:"vpn_key"})}),(0,l.jsx)("p",{className:"text-text-main font-medium mb-1",children:"No API keys yet"}),(0,l.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Create your first API key to get started"}),(0,l.jsx)(n.$n,{icon:"add",onClick:()=>m(!0),children:"Create Key"})]}):(0,l.jsx)("div",{className:"flex flex-col",children:s.map(e=>(0,l.jsxs)("div",{className:"group flex items-center justify-between py-3 border-b border-black/[0.03] dark:border-white/[0.03] last:border-b-0",children:[(0,l.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,l.jsx)("p",{className:"text-sm font-medium",children:e.name}),(0,l.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[(0,l.jsx)("code",{className:"text-xs text-text-muted font-mono",children:e.key}),(0,l.jsx)("button",{onClick:()=>L(e.key,e.id),className:"p-1 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary opacity-0 group-hover:opacity-100 transition-all",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:U===e.id?"check":"content_copy"})})]}),(0,l.jsxs)("p",{className:"text-xs text-text-muted mt-1",children:["Created ",new Date(e.createdAt).toLocaleDateString()]})]}),(0,l.jsx)("button",{onClick:()=>B(e.id),className:"p-2 hover:bg-red-500/10 rounded text-red-500 opacity-0 group-hover:opacity-100 transition-all",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"})})]},e.id))})]}),(0,l.jsx)(n.aF,{isOpen:E,title:"Setup Cloudflare Worker",onClose:()=>{P(!1),W(null)},children:(0,l.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,l.jsx)("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-3",children:(0,l.jsxs)("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[(0,l.jsx)("code",{className:"font-semibold",children:"https://9router.com"})," is a pre-configured worker ready to use. You can also deploy your own."]})}),(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-sm font-medium mb-2",children:"Worker URL"}),(0,l.jsx)("div",{className:"flex gap-2",children:(0,l.jsx)(n.pd,{value:k,onChange:e=>v(e.target.value),placeholder:"https://9router.your-subdomain.workers.dev",className:"flex-1 font-mono text-sm"})}),(0,l.jsxs)("p",{className:"text-xs text-text-muted mt-2",children:["Deploy your own worker from ",(0,l.jsx)("code",{className:"text-xs bg-sidebar px-1 py-0.5 rounded",children:"app/cloud/"})," directory."," ",(0,l.jsx)("a",{href:"https://github.com/decolua/9router/tree/main/app/cloud",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"Setup guide →"})]})]}),A&&(0,l.jsx)("div",{className:`p-2 rounded text-sm ${"success"===A.type?"bg-green-500/10 text-green-600 dark:text-green-400":"bg-red-500/10 text-red-600 dark:text-red-400"}`,children:A.message}),(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)(n.$n,{onClick:Z,fullWidth:!0,disabled:N||!k.trim()||k.trim().replace(/\/v1\/?$/,"").replace(/\/+$/,"")===f,children:N?"Saving...":"Save"}),(0,l.jsx)(n.$n,{onClick:H,variant:"secondary",fullWidth:!0,disabled:O||!f,icon:"check_circle",children:O?"Checking...":"Check"})]})]})}),(0,l.jsx)(n.aF,{isOpen:C,title:"Enable Cloud Proxy",onClose:()=>S(!1),children:(0,l.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,l.jsxs)("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-4",children:[(0,l.jsx)("p",{className:"text-sm text-blue-800 dark:text-blue-200 font-medium mb-2",children:"What you will get"}),(0,l.jsxs)("ul",{className:"text-sm text-blue-700 dark:text-blue-300 space-y-1",children:[(0,l.jsx)("li",{children:"• Access your API from anywhere in the world"}),(0,l.jsx)("li",{children:"• Share endpoint with your team easily"}),(0,l.jsx)("li",{children:"• No need to open ports or configure firewall"}),(0,l.jsx)("li",{children:"• Fast global edge network"})]})]}),(0,l.jsxs)("div",{className:"bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg p-4",children:[(0,l.jsx)("p",{className:"text-sm text-yellow-800 dark:text-yellow-200 font-medium mb-1",children:"Note"}),(0,l.jsxs)("ul",{className:"text-sm text-yellow-700 dark:text-yellow-300 space-y-1",children:[(0,l.jsx)("li",{children:"• Cloud will keep your auth session for 1 day. If not used, it will be automatically deleted."}),(0,l.jsx)("li",{children:"• Cloud is currently unstable with Claude Code OAuth in some cases."})]})]}),O&&(0,l.jsxs)("div",{className:"flex items-center gap-3 p-3 bg-primary/10 border border-primary/30 rounded-lg",children:[(0,l.jsx)("span",{className:"material-symbols-outlined animate-spin text-primary",children:"progress_activity"}),(0,l.jsx)("div",{className:"flex-1",children:(0,l.jsxs)("p",{className:"text-sm font-medium text-primary",children:["syncing"===I&&"Syncing data to cloud...","verifying"===I&&"Verifying connection..."]})})]}),(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)(n.$n,{onClick:Q,fullWidth:!0,disabled:O,children:O?(0,l.jsxs)("span",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"syncing"===I?"Syncing...":"Verifying..."]}):"Enable Cloud"}),(0,l.jsx)(n.$n,{onClick:()=>S(!1),variant:"ghost",fullWidth:!0,disabled:O,children:"Cancel"})]})]})}),(0,l.jsx)(n.aF,{isOpen:x,title:"Create API Key",onClose:()=>{m(!1),h("")},children:(0,l.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,l.jsx)(n.pd,{label:"Key Name",value:u,onChange:e=>h(e.target.value),placeholder:"Production Key"}),(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)(n.$n,{onClick:Y,fullWidth:!0,disabled:!u.trim(),children:"Create"}),(0,l.jsx)(n.$n,{onClick:()=>{m(!1),h("")},variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,l.jsx)(n.aF,{isOpen:!!y,title:"API Key Created",onClose:()=>p(null),children:(0,l.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,l.jsxs)("div",{className:"bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg p-4",children:[(0,l.jsx)("p",{className:"text-sm text-yellow-800 dark:text-yellow-200 mb-2 font-medium",children:"Save this key now!"}),(0,l.jsx)("p",{className:"text-sm text-yellow-700 dark:text-yellow-300",children:"This is the only time you will see this key. Store it securely."})]}),(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)(n.pd,{value:y||"",readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,l.jsx)(n.$n,{variant:"secondary",icon:"created_key"===U?"check":"content_copy",onClick:()=>L(y,"created_key"),children:"created_key"===U?"Copied!":"Copy"})]}),(0,l.jsx)(n.$n,{onClick:()=>p(null),fullWidth:!0,children:"Done"})]})}),(0,l.jsx)(n.aF,{isOpen:$,title:"Disable Cloud Proxy",onClose:()=>!O&&_(!1),children:(0,l.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,l.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4",children:(0,l.jsxs)("div",{className:"flex items-start gap-3",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-red-600 dark:text-red-400",children:"warning"}),(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-sm text-red-800 dark:text-red-200 font-medium mb-1",children:"Warning"}),(0,l.jsx)("p",{className:"text-sm text-red-700 dark:text-red-300",children:"All auth sessions will be deleted from cloud."})]})]})}),O&&(0,l.jsxs)("div",{className:"flex items-center gap-3 p-3 bg-primary/10 border border-primary/30 rounded-lg",children:[(0,l.jsx)("span",{className:"material-symbols-outlined animate-spin text-primary",children:"progress_activity"}),(0,l.jsx)("div",{className:"flex-1",children:(0,l.jsxs)("p",{className:"text-sm font-medium text-primary",children:["syncing"===I&&"Syncing latest data...","disabling"===I&&"Disabling cloud..."]})})]}),(0,l.jsx)("p",{className:"text-sm text-text-muted",children:"Are you sure you want to disable cloud proxy?"}),(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)(n.$n,{onClick:V,fullWidth:!0,disabled:O,className:"bg-red-500! hover:bg-red-600! text-white!",children:O?(0,l.jsxs)("span",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"syncing"===I?"Syncing...":"Disabling..."]}):"Disable Cloud"}),(0,l.jsx)(n.$n,{onClick:()=>_(!1),variant:"ghost",fullWidth:!0,disabled:O,children:"Cancel"})]})]})})]})}x.propTypes={machineId:i().string.isRequired}}}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1393],{3774:(e,s,t)=>{Promise.resolve().then(t.bind(t,5907))},5907:(e,s,t)=>{"use strict";t.d(s,{default:()=>x});var l=t(5155),r=t(2115),a=t(4051),i=t.n(a),n=t(5497),d=t(1059);let o="https://9router.com",c=15e3;function x({machineId:e}){let[s,t]=(0,r.useState)([]),[a,i]=(0,r.useState)(!0),[x,m]=(0,r.useState)(!1),[u,h]=(0,r.useState)(""),[y,p]=(0,r.useState)(null),[g,b]=(0,r.useState)(!1),[f,j]=(0,r.useState)(o),[k,v]=(0,r.useState)(o),[N,w]=(0,r.useState)(!1),[C,S]=(0,r.useState)(!1),[$,_]=(0,r.useState)(!1),[E,P]=(0,r.useState)(!1),[A,W]=(0,r.useState)(null),[O,D]=(0,r.useState)(!1),[T,F]=(0,r.useState)(null),[I,K]=(0,r.useState)(""),{copied:U,copy:L}=(0,d.C)();(0,r.useEffect)(()=>{J(),q()},[]);let R=async(e,s=c)=>{let t=new AbortController,l=setTimeout(()=>t.abort(),s);try{let s=await fetch("/api/sync/cloud",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e}),signal:t.signal}),l=await s.json().catch(()=>({}));return{ok:s.ok,status:s.status,data:l}}catch(e){if(e?.name==="AbortError")return{ok:!1,status:408,data:{error:"Cloud request timeout"}};return{ok:!1,status:500,data:{error:e.message||"Cloud request failed"}}}finally{clearTimeout(l)}},q=async()=>{try{let e=await fetch("/api/settings");if(e.ok){let s=await e.json();b(s.cloudEnabled||!1);let t=s.cloudUrl||o;j(t),v(t)}}catch(e){console.log("Error loading cloud settings:",e)}},J=async()=>{try{let e=await fetch("/api/keys"),s=await e.json();e.ok&&t(s.keys||[])}catch(e){console.log("Error fetching data:",e)}finally{i(!1)}},z=e=>{e?S(!0):_(!0)},Q=async()=>{D(!0),K("syncing");try{let{ok:e,data:s}=await R("enable");e?(K("verifying"),s.verified?(b(!0),F({type:"success",message:"Cloud Proxy connected and verified!"})):(b(!0),F({type:"warning",message:s.verifyError||"Connected but verification failed"})),S(!1),s.createdKey&&await J()):F({type:"error",message:s.error||"Failed to enable cloud"})}catch(e){F({type:"error",message:e.message})}finally{D(!1),K("")}},V=async()=>{D(!0),K("syncing");try{await R("sync"),K("disabling");let{ok:e,data:s}=await R("disable");e?(b(!1),F({type:"success",message:"Cloud disabled"}),_(!1)):F({type:"error",message:s.error||"Failed to disable cloud"})}catch(e){console.log("Error disabling cloud:",e),F({type:"error",message:"Failed to disable cloud"})}finally{D(!1),K("")}},Z=async()=>{let e=k.trim().replace(/\/v1\/?$/,"").replace(/\/+$/,"");if(e){w(!0),W(null);try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cloudUrl:e})})).ok?(j(e),v(e),W({type:"success",message:"Worker URL saved"})):W({type:"error",message:"Failed to save Worker URL"})}catch(e){W({type:"error",message:e.message})}finally{w(!1)}}},H=async()=>{if(f){D(!0),W(null);try{let{ok:e,data:s}=await R("check",8e3);e?W({type:"success",message:s.message||"Worker is running"}):W({type:"error",message:s.error||"Check failed"})}catch{W({type:"error",message:"Cannot reach worker"})}finally{D(!1)}}},Y=async()=>{if(u.trim())try{let e=await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:u})}),s=await e.json();e.ok&&(p(s.key),await J(),h(""),m(!1))}catch(e){console.log("Error creating key:",e)}},B=async e=>{if(confirm("Delete this API key?"))try{(await fetch(`/api/keys/${e}`,{method:"DELETE"})).ok&&t(s.filter(s=>s.id!==e))}catch(e){console.log("Error deleting key:",e)}},[G,M]=(0,r.useState)("/v1"),X=f?`${f}/v1`:"";if((0,r.useEffect)(()=>{M(`${window.location.origin}/v1`)},[]),a)return(0,l.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,l.jsx)(n.Qv,{}),(0,l.jsx)(n.Qv,{})]});let ee=g?X:G;return(0,l.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,l.jsxs)(n.Zp,{children:[(0,l.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("h2",{className:"text-lg font-semibold",children:"API Endpoint"}),(0,l.jsx)("p",{className:"text-sm text-text-muted",children:g?"Using Cloud Proxy":"Using Local Server"})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)(n.$n,{size:"sm",variant:"secondary",icon:"settings",onClick:()=>P(!0),children:"Setup Cloudflare"}),g?(0,l.jsx)(n.$n,{size:"sm",variant:"secondary",icon:"cloud_off",onClick:()=>z(!1),disabled:O,className:"bg-red-500/10! text-red-500! hover:bg-red-500/20! border-red-500/30!",children:"Disable Cloud"}):(0,l.jsx)(n.$n,{variant:"primary",icon:"cloud_upload",onClick:()=>z(!0),disabled:O||!f,className:"bg-linear-to-r from-primary to-blue-500 hover:from-primary-hover hover:to-blue-600",children:"Enable Cloud"})]})]}),(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)(n.pd,{value:ee,readOnly:!0,className:`flex-1 font-mono text-sm ${g?"animate-border-glow":""}`}),(0,l.jsx)(n.$n,{variant:"secondary",icon:"endpoint_url"===U?"check":"content_copy",onClick:()=>L(ee,"endpoint_url"),children:"endpoint_url"===U?"Copied!":"Copy"})]}),T&&(0,l.jsx)("div",{className:`mt-3 p-2 rounded text-sm ${"success"===T.type?"bg-green-500/10 text-green-600 dark:text-green-400":"warning"===T.type?"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400":"bg-red-500/10 text-red-600 dark:text-red-400"}`,children:T.message})]}),(0,l.jsxs)(n.Zp,{children:[(0,l.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,l.jsx)("h2",{className:"text-lg font-semibold",children:"API Keys"}),(0,l.jsx)(n.$n,{icon:"add",onClick:()=>m(!0),children:"Create Key"})]}),0===s.length?(0,l.jsxs)("div",{className:"text-center py-12",children:[(0,l.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 text-primary mb-4",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:"vpn_key"})}),(0,l.jsx)("p",{className:"text-text-main font-medium mb-1",children:"No API keys yet"}),(0,l.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Create your first API key to get started"}),(0,l.jsx)(n.$n,{icon:"add",onClick:()=>m(!0),children:"Create Key"})]}):(0,l.jsx)("div",{className:"flex flex-col",children:s.map(e=>(0,l.jsxs)("div",{className:"group flex items-center justify-between py-3 border-b border-black/[0.03] dark:border-white/[0.03] last:border-b-0",children:[(0,l.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,l.jsx)("p",{className:"text-sm font-medium",children:e.name}),(0,l.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[(0,l.jsx)("code",{className:"text-xs text-text-muted font-mono",children:e.key}),(0,l.jsx)("button",{onClick:()=>L(e.key,e.id),className:"p-1 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary opacity-0 group-hover:opacity-100 transition-all",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:U===e.id?"check":"content_copy"})})]}),(0,l.jsxs)("p",{className:"text-xs text-text-muted mt-1",children:["Created ",new Date(e.createdAt).toLocaleDateString()]})]}),(0,l.jsx)("button",{onClick:()=>B(e.id),className:"p-2 hover:bg-red-500/10 rounded text-red-500 opacity-0 group-hover:opacity-100 transition-all",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"})})]},e.id))})]}),(0,l.jsx)(n.aF,{isOpen:E,title:"Setup Cloudflare Worker",onClose:()=>{P(!1),W(null)},children:(0,l.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,l.jsx)("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-3",children:(0,l.jsxs)("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[(0,l.jsx)("code",{className:"font-semibold",children:"https://9router.com"})," is a pre-configured worker ready to use. You can also deploy your own."]})}),(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-sm font-medium mb-2",children:"Worker URL"}),(0,l.jsx)("div",{className:"flex gap-2",children:(0,l.jsx)(n.pd,{value:k,onChange:e=>v(e.target.value),placeholder:"https://9router.your-subdomain.workers.dev",className:"flex-1 font-mono text-sm"})}),(0,l.jsxs)("p",{className:"text-xs text-text-muted mt-2",children:["Deploy your own worker from ",(0,l.jsx)("code",{className:"text-xs bg-sidebar px-1 py-0.5 rounded",children:"app/cloud/"})," directory."," ",(0,l.jsx)("a",{href:"https://github.com/decolua/9router/tree/main/app/cloud",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"Setup guide →"})]})]}),A&&(0,l.jsx)("div",{className:`p-2 rounded text-sm ${"success"===A.type?"bg-green-500/10 text-green-600 dark:text-green-400":"bg-red-500/10 text-red-600 dark:text-red-400"}`,children:A.message}),(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)(n.$n,{onClick:Z,fullWidth:!0,disabled:N||!k.trim()||k.trim().replace(/\/v1\/?$/,"").replace(/\/+$/,"")===f,children:N?"Saving...":"Save"}),(0,l.jsx)(n.$n,{onClick:H,variant:"secondary",fullWidth:!0,disabled:O||!f,icon:"check_circle",children:O?"Checking...":"Check"})]})]})}),(0,l.jsx)(n.aF,{isOpen:C,title:"Enable Cloud Proxy",onClose:()=>S(!1),children:(0,l.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,l.jsxs)("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-4",children:[(0,l.jsx)("p",{className:"text-sm text-blue-800 dark:text-blue-200 font-medium mb-2",children:"What you will get"}),(0,l.jsxs)("ul",{className:"text-sm text-blue-700 dark:text-blue-300 space-y-1",children:[(0,l.jsx)("li",{children:"• Access your API from anywhere in the world"}),(0,l.jsx)("li",{children:"• Share endpoint with your team easily"}),(0,l.jsx)("li",{children:"• No need to open ports or configure firewall"}),(0,l.jsx)("li",{children:"• Fast global edge network"})]})]}),(0,l.jsxs)("div",{className:"bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg p-4",children:[(0,l.jsx)("p",{className:"text-sm text-yellow-800 dark:text-yellow-200 font-medium mb-1",children:"Note"}),(0,l.jsxs)("ul",{className:"text-sm text-yellow-700 dark:text-yellow-300 space-y-1",children:[(0,l.jsx)("li",{children:"• Cloud will keep your auth session for 1 day. If not used, it will be automatically deleted."}),(0,l.jsx)("li",{children:"• Cloud is currently unstable with Claude Code OAuth in some cases."})]})]}),O&&(0,l.jsxs)("div",{className:"flex items-center gap-3 p-3 bg-primary/10 border border-primary/30 rounded-lg",children:[(0,l.jsx)("span",{className:"material-symbols-outlined animate-spin text-primary",children:"progress_activity"}),(0,l.jsx)("div",{className:"flex-1",children:(0,l.jsxs)("p",{className:"text-sm font-medium text-primary",children:["syncing"===I&&"Syncing data to cloud...","verifying"===I&&"Verifying connection..."]})})]}),(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)(n.$n,{onClick:Q,fullWidth:!0,disabled:O,children:O?(0,l.jsxs)("span",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"syncing"===I?"Syncing...":"Verifying..."]}):"Enable Cloud"}),(0,l.jsx)(n.$n,{onClick:()=>S(!1),variant:"ghost",fullWidth:!0,disabled:O,children:"Cancel"})]})]})}),(0,l.jsx)(n.aF,{isOpen:x,title:"Create API Key",onClose:()=>{m(!1),h("")},children:(0,l.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,l.jsx)(n.pd,{label:"Key Name",value:u,onChange:e=>h(e.target.value),placeholder:"Production Key"}),(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)(n.$n,{onClick:Y,fullWidth:!0,disabled:!u.trim(),children:"Create"}),(0,l.jsx)(n.$n,{onClick:()=>{m(!1),h("")},variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,l.jsx)(n.aF,{isOpen:!!y,title:"API Key Created",onClose:()=>p(null),children:(0,l.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,l.jsxs)("div",{className:"bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg p-4",children:[(0,l.jsx)("p",{className:"text-sm text-yellow-800 dark:text-yellow-200 mb-2 font-medium",children:"Save this key now!"}),(0,l.jsx)("p",{className:"text-sm text-yellow-700 dark:text-yellow-300",children:"This is the only time you will see this key. Store it securely."})]}),(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)(n.pd,{value:y||"",readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,l.jsx)(n.$n,{variant:"secondary",icon:"created_key"===U?"check":"content_copy",onClick:()=>L(y,"created_key"),children:"created_key"===U?"Copied!":"Copy"})]}),(0,l.jsx)(n.$n,{onClick:()=>p(null),fullWidth:!0,children:"Done"})]})}),(0,l.jsx)(n.aF,{isOpen:$,title:"Disable Cloud Proxy",onClose:()=>!O&&_(!1),children:(0,l.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,l.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4",children:(0,l.jsxs)("div",{className:"flex items-start gap-3",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-red-600 dark:text-red-400",children:"warning"}),(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-sm text-red-800 dark:text-red-200 font-medium mb-1",children:"Warning"}),(0,l.jsx)("p",{className:"text-sm text-red-700 dark:text-red-300",children:"All auth sessions will be deleted from cloud."})]})]})}),O&&(0,l.jsxs)("div",{className:"flex items-center gap-3 p-3 bg-primary/10 border border-primary/30 rounded-lg",children:[(0,l.jsx)("span",{className:"material-symbols-outlined animate-spin text-primary",children:"progress_activity"}),(0,l.jsx)("div",{className:"flex-1",children:(0,l.jsxs)("p",{className:"text-sm font-medium text-primary",children:["syncing"===I&&"Syncing latest data...","disabling"===I&&"Disabling cloud..."]})})]}),(0,l.jsx)("p",{className:"text-sm text-text-muted",children:"Are you sure you want to disable cloud proxy?"}),(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)(n.$n,{onClick:V,fullWidth:!0,disabled:O,className:"bg-red-500! hover:bg-red-600! text-white!",children:O?(0,l.jsxs)("span",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"syncing"===I?"Syncing...":"Disabling..."]}):"Disable Cloud"}),(0,l.jsx)(n.$n,{onClick:()=>_(!1),variant:"ghost",fullWidth:!0,disabled:O,children:"Cancel"})]})]})})]})}x.propTypes={machineId:i().string.isRequired}}}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3624],{91:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={formatUrl:function(){return u},formatWithValidation:function(){return l},urlObjectKeys:function(){return s}};for(var o in n)Object.defineProperty(t,o,{enumerable:!0,get:n[o]});let a=r(6388)._(r(3774)),i=/https?|ftp|gopher|file/;function u(e){let{auth:t,hostname:r}=e,n=e.protocol||"",o=e.pathname||"",u=e.hash||"",s=e.query||"",l=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?l=t+e.host:r&&(l=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(l+=":"+e.port)),s&&"object"==typeof s&&(s=String(a.urlQueryToSearchParams(s)));let c=e.search||s&&`?${s}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||i.test(n))&&!1!==l?(l="//"+(l||""),o&&"/"!==o[0]&&(o="/"+o)):l||(l=""),u&&"#"!==u[0]&&(u="#"+u),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${l}${o}${c}${u}`}let s=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function l(e){return u(e)}},857:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return S},MissingStaticPage:function(){return b},NormalizeError:function(){return m},PageNotFoundError:function(){return v},SP:function(){return h},ST:function(){return g},WEB_VITALS:function(){return o},execOnce:function(){return a},getDisplayName:function(){return c},getLocationOrigin:function(){return s},getURL:function(){return l},isAbsoluteUrl:function(){return u},isResSent:function(){return f},loadGetInitialProps:function(){return d},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return P}};for(var n in r)Object.defineProperty(t,n,{enumerable:!0,get:r[n]});let o=["CLS","FCP","FID","INP","LCP","TTFB"];function a(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let i=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,u=e=>i.test(e);function s(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function l(){let{href:e}=window.location,t=s();return e.substring(t.length)}function c(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function d(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await d(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${c(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let h="u">typeof performance,g=h&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class m extends Error{}class v extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class b extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class S extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function P(e){return JSON.stringify({message:e.message,stack:e.stack})}},1934:(e,t,r)=>{"use strict";r.d(t,{v:()=>i});var n=r(2115);let o=e=>{let t,r=new Set,n=(e,n)=>{let o="function"==typeof e?e(t):e;if(!Object.is(o,t)){let e=t;t=(null!=n?n:"object"!=typeof o||null===o)?o:Object.assign({},t,o),r.forEach(r=>r(t,e))}},o=()=>t,a={setState:n,getState:o,getInitialState:()=>i,subscribe:e=>(r.add(e),()=>r.delete(e))},i=t=e(n,o,a);return a},a=e=>{let t=e?o(e):o,r=e=>(function(e,t=e=>e){let r=n.useSyncExternalStore(e.subscribe,n.useCallback(()=>t(e.getState()),[e,t]),n.useCallback(()=>t(e.getInitialState()),[e,t]));return n.useDebugValue(r),r})(t,e);return Object.assign(r,t),r},i=e=>e?a(e):a},2114:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},3774:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={assign:function(){return u},searchParamsToUrlQuery:function(){return o},urlQueryToSearchParams:function(){return i}};for(var n in r)Object.defineProperty(t,n,{enumerable:!0,get:r[n]});function o(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function a(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function i(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,a(e));else t.set(r,a(n));return t}function u(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},4051:(e,t,r)=>{e.exports=r(4701)()},4701:(e,t,r)=>{"use strict";var n=r(2114);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,r,o,a,i){if(i!==n){var u=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}function t(){return e}e.isRequired=e;var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return r.PropTypes=r,r}},8500:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={default:function(){return m},useLinkStatus:function(){return b}};for(var o in n)Object.defineProperty(t,o,{enumerable:!0,get:n[o]});let a=r(6388),i=r(5155),u=a._(r(2115)),s=r(91),l=r(2909),c=r(1172),f=r(857),p=r(127);r(7284);let d=r(4972),h=r(9470),g=r(7565);function y(e){return"string"==typeof e?e:(0,s.formatUrl)(e)}function m(e){var t;let n,o,a,[s,m]=(0,u.useOptimistic)(d.IDLE_LINK_STATUS),b=(0,u.useRef)(null),{href:S,as:P,children:E,prefetch:O=null,passHref:_,replace:T,shallow:C,scroll:I,onClick:j,onMouseEnter:w,onTouchStart:N,legacyBehavior:R=!1,onNavigate:k,ref:x,unstable_dynamicOnHover:L,...U}=e;n=E,R&&("string"==typeof n||"number"==typeof n)&&(n=(0,i.jsx)("a",{children:n}));let $=u.default.useContext(l.AppRouterContext),A=!1!==O,M=!1!==O?null===(t=O)||"auto"===t?g.FetchStrategy.PPR:g.FetchStrategy.Full:g.FetchStrategy.PPR,{href:F,as:D}=u.default.useMemo(()=>{let e=y(S);return{href:e,as:P?y(P):e}},[S,P]);if(R){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});o=u.default.Children.only(n)}let z=R?o&&"object"==typeof o&&o.ref:x,B=u.default.useCallback(e=>(null!==$&&(b.current=(0,d.mountLinkInstance)(e,F,$,M,A,m)),()=>{b.current&&((0,d.unmountLinkForCurrentNavigation)(b.current),b.current=null),(0,d.unmountPrefetchableInstance)(e)}),[A,F,$,M,m]),K={ref:(0,c.useMergedRef)(B,z),onClick(e){R||"function"!=typeof j||j(e),R&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(e),!$||e.defaultPrevented||function(e,t,n,o,a,i,s){{let l,{nodeName:c}=e.currentTarget;if("A"===c.toUpperCase()&&((l=e.currentTarget.getAttribute("target"))&&"_self"!==l||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which)||e.currentTarget.hasAttribute("download"))return;if(!(0,h.isLocalURL)(t)){a&&(e.preventDefault(),location.replace(t));return}if(e.preventDefault(),s){let e=!1;if(s({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=r(156);u.default.startTransition(()=>{f(n||t,a?"replace":"push",i??!0,o.current)})}}(e,F,D,b,T,I,k)},onMouseEnter(e){R||"function"!=typeof w||w(e),R&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),$&&A&&(0,d.onNavigationIntent)(e.currentTarget,!0===L)},onTouchStart:function(e){R||"function"!=typeof N||N(e),R&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),$&&A&&(0,d.onNavigationIntent)(e.currentTarget,!0===L)}};return(0,f.isAbsoluteUrl)(D)?K.href=D:R&&!_&&("a"!==o.type||"href"in o.props)||(K.href=(0,p.addBasePath)(D)),a=R?u.default.cloneElement(o,K):(0,i.jsx)("a",{...U,...K,children:n}),(0,i.jsx)(v.Provider,{value:s,children:a})}r(9842);let v=(0,u.createContext)(d.IDLE_LINK_STATUS),b=()=>(0,u.useContext)(v);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},9311:(e,t,r)=>{"use strict";r.d(t,{Zr:()=>o});let n=e=>t=>{try{let r=e(t);if(r instanceof Promise)return r;return{then:e=>n(e)(r),catch(e){return this}}}catch(e){return{then(e){return this},catch:t=>n(t)(e)}}},o=(e,t)=>(r,o,a)=>{let i,u={storage:function(e,t){let r;try{r=e()}catch(e){return}return{getItem:e=>{var t;let n=e=>null===e?null:JSON.parse(e,void 0),o=null!=(t=r.getItem(e))?t:null;return o instanceof Promise?o.then(n):n(o)},setItem:(e,t)=>r.setItem(e,JSON.stringify(t,void 0)),removeItem:e=>r.removeItem(e)}}(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},s=!1,l=0,c=new Set,f=new Set,p=u.storage;if(!p)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${u.name}', the given storage is currently unavailable.`),r(...e)},o,a);let d=()=>{let e=u.partialize({...o()});return p.setItem(u.name,{state:e,version:u.version})},h=a.setState;a.setState=(e,t)=>(h(e,t),d());let g=e((...e)=>(r(...e),d()),o,a);a.getInitialState=()=>g;let y=()=>{var e,t;if(!p)return;let a=++l;s=!1,c.forEach(e=>{var t;return e(null!=(t=o())?t:g)});let h=(null==(t=u.onRehydrateStorage)?void 0:t.call(u,null!=(e=o())?e:g))||void 0;return n(p.getItem.bind(p))(u.name).then(e=>{if(e)if("number"!=typeof e.version||e.version===u.version)return[!1,e.state];else{if(u.migrate){let t=u.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(e=>{var t;if(a!==l)return;let[n,s]=e;if(r(i=u.merge(s,null!=(t=o())?t:g),!0),n)return d()}).then(()=>{a===l&&(null==h||h(i,void 0),i=o(),s=!0,f.forEach(e=>e(i)))}).catch(e=>{a===l&&(null==h||h(void 0,e))})};return a.persist={setOptions:e=>{u={...u,...e},e.storage&&(p=e.storage)},clearStorage:()=>{null==p||p.removeItem(u.name)},getOptions:()=>u,rehydrate:()=>y(),hasHydrated:()=>s,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(f.add(e),()=>{f.delete(e)})},u.skipHydration||y(),i||g}},9470:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isLocalURL",{enumerable:!0,get:function(){return a}});let n=r(857),o=r(8512);function a(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},9842:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"errorOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}}}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3624],{91:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={formatUrl:function(){return u},formatWithValidation:function(){return l},urlObjectKeys:function(){return s}};for(var o in n)Object.defineProperty(t,o,{enumerable:!0,get:n[o]});let a=r(6388)._(r(1393)),i=/https?|ftp|gopher|file/;function u(e){let{auth:t,hostname:r}=e,n=e.protocol||"",o=e.pathname||"",u=e.hash||"",s=e.query||"",l=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?l=t+e.host:r&&(l=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(l+=":"+e.port)),s&&"object"==typeof s&&(s=String(a.urlQueryToSearchParams(s)));let c=e.search||s&&`?${s}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||i.test(n))&&!1!==l?(l="//"+(l||""),o&&"/"!==o[0]&&(o="/"+o)):l||(l=""),u&&"#"!==u[0]&&(u="#"+u),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${l}${o}${c}${u}`}let s=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function l(e){return u(e)}},857:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return S},MissingStaticPage:function(){return b},NormalizeError:function(){return m},PageNotFoundError:function(){return v},SP:function(){return h},ST:function(){return g},WEB_VITALS:function(){return o},execOnce:function(){return a},getDisplayName:function(){return c},getLocationOrigin:function(){return s},getURL:function(){return l},isAbsoluteUrl:function(){return u},isResSent:function(){return f},loadGetInitialProps:function(){return d},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return P}};for(var n in r)Object.defineProperty(t,n,{enumerable:!0,get:r[n]});let o=["CLS","FCP","FID","INP","LCP","TTFB"];function a(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let i=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,u=e=>i.test(e);function s(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function l(){let{href:e}=window.location,t=s();return e.substring(t.length)}function c(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function d(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await d(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${c(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let h="u">typeof performance,g=h&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class m extends Error{}class v extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class b extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class S extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function P(e){return JSON.stringify({message:e.message,stack:e.stack})}},1393:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={assign:function(){return u},searchParamsToUrlQuery:function(){return o},urlQueryToSearchParams:function(){return i}};for(var n in r)Object.defineProperty(t,n,{enumerable:!0,get:r[n]});function o(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function a(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function i(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,a(e));else t.set(r,a(n));return t}function u(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},1934:(e,t,r)=>{"use strict";r.d(t,{v:()=>i});var n=r(2115);let o=e=>{let t,r=new Set,n=(e,n)=>{let o="function"==typeof e?e(t):e;if(!Object.is(o,t)){let e=t;t=(null!=n?n:"object"!=typeof o||null===o)?o:Object.assign({},t,o),r.forEach(r=>r(t,e))}},o=()=>t,a={setState:n,getState:o,getInitialState:()=>i,subscribe:e=>(r.add(e),()=>r.delete(e))},i=t=e(n,o,a);return a},a=e=>{let t=e?o(e):o,r=e=>(function(e,t=e=>e){let r=n.useSyncExternalStore(e.subscribe,n.useCallback(()=>t(e.getState()),[e,t]),n.useCallback(()=>t(e.getInitialState()),[e,t]));return n.useDebugValue(r),r})(t,e);return Object.assign(r,t),r},i=e=>e?a(e):a},2114:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4051:(e,t,r)=>{e.exports=r(4701)()},4701:(e,t,r)=>{"use strict";var n=r(2114);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,r,o,a,i){if(i!==n){var u=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}function t(){return e}e.isRequired=e;var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return r.PropTypes=r,r}},8500:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={default:function(){return m},useLinkStatus:function(){return b}};for(var o in n)Object.defineProperty(t,o,{enumerable:!0,get:n[o]});let a=r(6388),i=r(5155),u=a._(r(2115)),s=r(91),l=r(2909),c=r(1172),f=r(857),p=r(127);r(7284);let d=r(4972),h=r(9470),g=r(7565);function y(e){return"string"==typeof e?e:(0,s.formatUrl)(e)}function m(e){var t;let n,o,a,[s,m]=(0,u.useOptimistic)(d.IDLE_LINK_STATUS),b=(0,u.useRef)(null),{href:S,as:P,children:E,prefetch:O=null,passHref:_,replace:T,shallow:C,scroll:I,onClick:j,onMouseEnter:w,onTouchStart:N,legacyBehavior:R=!1,onNavigate:k,ref:x,unstable_dynamicOnHover:L,...U}=e;n=E,R&&("string"==typeof n||"number"==typeof n)&&(n=(0,i.jsx)("a",{children:n}));let $=u.default.useContext(l.AppRouterContext),A=!1!==O,M=!1!==O?null===(t=O)||"auto"===t?g.FetchStrategy.PPR:g.FetchStrategy.Full:g.FetchStrategy.PPR,{href:F,as:D}=u.default.useMemo(()=>{let e=y(S);return{href:e,as:P?y(P):e}},[S,P]);if(R){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});o=u.default.Children.only(n)}let z=R?o&&"object"==typeof o&&o.ref:x,B=u.default.useCallback(e=>(null!==$&&(b.current=(0,d.mountLinkInstance)(e,F,$,M,A,m)),()=>{b.current&&((0,d.unmountLinkForCurrentNavigation)(b.current),b.current=null),(0,d.unmountPrefetchableInstance)(e)}),[A,F,$,M,m]),K={ref:(0,c.useMergedRef)(B,z),onClick(e){R||"function"!=typeof j||j(e),R&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(e),!$||e.defaultPrevented||function(e,t,n,o,a,i,s){{let l,{nodeName:c}=e.currentTarget;if("A"===c.toUpperCase()&&((l=e.currentTarget.getAttribute("target"))&&"_self"!==l||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which)||e.currentTarget.hasAttribute("download"))return;if(!(0,h.isLocalURL)(t)){a&&(e.preventDefault(),location.replace(t));return}if(e.preventDefault(),s){let e=!1;if(s({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=r(156);u.default.startTransition(()=>{f(n||t,a?"replace":"push",i??!0,o.current)})}}(e,F,D,b,T,I,k)},onMouseEnter(e){R||"function"!=typeof w||w(e),R&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),$&&A&&(0,d.onNavigationIntent)(e.currentTarget,!0===L)},onTouchStart:function(e){R||"function"!=typeof N||N(e),R&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),$&&A&&(0,d.onNavigationIntent)(e.currentTarget,!0===L)}};return(0,f.isAbsoluteUrl)(D)?K.href=D:R&&!_&&("a"!==o.type||"href"in o.props)||(K.href=(0,p.addBasePath)(D)),a=R?u.default.cloneElement(o,K):(0,i.jsx)("a",{...U,...K,children:n}),(0,i.jsx)(v.Provider,{value:s,children:a})}r(9842);let v=(0,u.createContext)(d.IDLE_LINK_STATUS),b=()=>(0,u.useContext)(v);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},9311:(e,t,r)=>{"use strict";r.d(t,{Zr:()=>o});let n=e=>t=>{try{let r=e(t);if(r instanceof Promise)return r;return{then:e=>n(e)(r),catch(e){return this}}}catch(e){return{then(e){return this},catch:t=>n(t)(e)}}},o=(e,t)=>(r,o,a)=>{let i,u={storage:function(e,t){let r;try{r=e()}catch(e){return}return{getItem:e=>{var t;let n=e=>null===e?null:JSON.parse(e,void 0),o=null!=(t=r.getItem(e))?t:null;return o instanceof Promise?o.then(n):n(o)},setItem:(e,t)=>r.setItem(e,JSON.stringify(t,void 0)),removeItem:e=>r.removeItem(e)}}(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},s=!1,l=0,c=new Set,f=new Set,p=u.storage;if(!p)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${u.name}', the given storage is currently unavailable.`),r(...e)},o,a);let d=()=>{let e=u.partialize({...o()});return p.setItem(u.name,{state:e,version:u.version})},h=a.setState;a.setState=(e,t)=>(h(e,t),d());let g=e((...e)=>(r(...e),d()),o,a);a.getInitialState=()=>g;let y=()=>{var e,t;if(!p)return;let a=++l;s=!1,c.forEach(e=>{var t;return e(null!=(t=o())?t:g)});let h=(null==(t=u.onRehydrateStorage)?void 0:t.call(u,null!=(e=o())?e:g))||void 0;return n(p.getItem.bind(p))(u.name).then(e=>{if(e)if("number"!=typeof e.version||e.version===u.version)return[!1,e.state];else{if(u.migrate){let t=u.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(e=>{var t;if(a!==l)return;let[n,s]=e;if(r(i=u.merge(s,null!=(t=o())?t:g),!0),n)return d()}).then(()=>{a===l&&(null==h||h(i,void 0),i=o(),s=!0,f.forEach(e=>e(i)))}).catch(e=>{a===l&&(null==h||h(void 0,e))})};return a.persist={setOptions:e=>{u={...u,...e},e.storage&&(p=e.storage)},clearStorage:()=>{null==p||p.removeItem(u.name)},getOptions:()=>u,rehydrate:()=>y(),hasHydrated:()=>s,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(f.add(e),()=>{f.delete(e)})},u.skipHydration||y(),i||g}},9470:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isLocalURL",{enumerable:!0,get:function(){return a}});let n=r(857),o=r(8512);function a(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},9842:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"errorOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}}}]);
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8729],{85:(i,e,n)=>{n.d(e,{A:()=>t});var a=n(1934),o=n(9311),d=n(620);function m(i){let e=document.documentElement,n=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";"dark"===("system"===i?n:i)?e.classList.add("dark"):e.classList.remove("dark")}let t=(0,a.v)((0,o.Zr)((i,e)=>({theme:d.B2.defaultTheme,setTheme:e=>{i({theme:e}),m(e)},toggleTheme:()=>{let n="dark"===e().theme?"light":"dark";i({theme:n}),m(n)},initTheme:()=>{m(e().theme)}}),{name:d.B2.storageKey}))},620:(i,e,n)=>{n.d(e,{Q2:()=>a.Q2,fg:()=>a.fg,vQ:()=>o,MA:()=>a.MA,zN:()=>a.zN,B2:()=>d});var a=n(2679);n(8777);let o={name:"Endpoint Proxy",description:"AI Infrastructure Management",version:"0.2.76"},d={storageKey:"theme",defaultTheme:"system"}},1110:(i,e,n)=>{n.d(e,{ThemeProvider:()=>m});var a=n(5155),o=n(2115),d=n(85);function m({children:i}){let{initTheme:e}=(0,d.A)();return(0,o.useEffect)(()=>{e()},[e]),(0,a.jsx)(a.Fragment,{children:i})}},2679:(i,e,n)=>{n.d(e,{DI:()=>t,IS:()=>a,JH:()=>m,MA:()=>u,Q2:()=>r,fg:()=>d,gb:()=>c,mq:()=>l,wG:()=>s,wb:()=>p,zN:()=>o,zt:()=>g});let a={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"}},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"},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4"},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333"},kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA"}},d={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#6366F1",textIcon:"OR",passthroughModels:!0},glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL"},"glm-cn":{id:"glm-cn",alias:"glm-cn",name:"GLM Coding (China)",icon:"code",color:"#DC2626",textIcon:"GC"},kimi:{id:"kimi",alias:"kimi",name:"Kimi Coding",icon:"psychology",color:"#1E3A8A",textIcon:"KM"},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM"},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC"},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA"},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN"},gemini:{id:"gemini",alias:"gemini",name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE"}},m="openai-compatible-",t="anthropic-compatible-";function l(i){return"string"==typeof i&&i.startsWith(m)}function c(i){return"string"==typeof i&&i.startsWith(t)}let r={...a,...o,...d},u={oauth:{id:"oauth",name:"OAuth",icon:"lock"},apikey:{id:"apikey",name:"API Key",icon:"key"}};function g(i){for(let e of Object.values(r))if(e.alias===i||e.id===i)return e;return null}function s(i){let e=r[i];return e?.alias||i}Object.values(r).reduce((i,e)=>(i[e.alias]=e.id,i),{}),Object.values(r).reduce((i,e)=>(i[e.id]=e.alias,i),{});let p=["antigravity","kiro","github"]},3097:(i,e,n)=>{n.d(e,{KC:()=>d,Xg:()=>o,vq:()=>a});let a={cc:[{id:"claude-opus-4-6",name:"Claude Opus 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.1-codex-mini",name:"GPT 5.1 Codex Mini"},{id:"gpt-5.1-codex-mini-high",name:"GPT 5.1 Codex Mini (High)"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.1-codex-max",name:"GPT 5.1 Codex Max"},{id:"gpt-5.1-codex",name:"GPT 5.1 Codex"},{id:"gpt-5.1",name:"GPT 5.1"},{id:"gpt-5-codex",name:"GPT 5 Codex"},{id:"gpt-5-codex-mini",name:"GPT 5 Codex Mini"}],gc:[{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"}],qw:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-coder-flash",name:"Qwen3 Coder Flash"},{id:"vision-model",name:"Qwen3 Vision Model"}],if:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"kimi-k2",name:"Kimi K2"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"glm-4.6",name:"GLM 4.6"}],ag:[{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking"},{id:"claude-opus-4-5-thinking",name:"Claude Opus 4.5 Thinking"},{id:"claude-sonnet-4-5-thinking",name:"Claude Sonnet 4.5 Thinking"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"gemini-3-pro-high",name:"Gemini 3 Pro High"},{id:"gemini-3-pro-low",name:"Gemini 3 Pro Low"},{id:"gemini-3-flash",name:"Gemini 3 Flash"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"}],gh:[{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:"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:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-3-flash",name:"Gemini 3 Flash"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro"},{id:"grok-code-fast-1",name:"Grok Code Fast 1"},{id:"raptor-mini",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"}],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"}],openrouter:[{id:"auto",name:"Auto (Best Available)"}],glm:[{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],"glm-cn":[{id:"glm-4.7",name:"GLM-4.7"},{id:"glm-4.6",name:"GLM-4.6"},{id:"glm-4.5",name:"GLM-4.5"},{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.1",name:"MiniMax M2.1"}]},o={claude:"cc",codex:"cx","gemini-cli":"gc",qwen:"qw",iflow:"if",antigravity:"ag",github:"gh",kiro:"kr",cursor:"cu",openai:"openai",anthropic:"anthropic",gemini:"gemini",openrouter:"openrouter",glm:"glm","glm-cn":"glm-cn",kimi:"kimi",minimax:"minimax","minimax-cn":"minimax"};function d(i){return a[o[i]||i]||[]}},8777:(i,e,n)=>{n.d(e,{KC:()=>a.KC,Xg:()=>a.Xg});var a=n(3097);Object.entries(n(2679).Q2).filter(([,i])=>i.passthroughModels).map(([i])=>i),Object.entries(a.vq).flatMap(([i,e])=>e.map(e=>({provider:i,model:e.id,name:e.name})))}}]);
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8729],{85:(i,e,n)=>{n.d(e,{A:()=>t});var a=n(1934),o=n(9311),d=n(620);function m(i){let e=document.documentElement,n=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";"dark"===("system"===i?n:i)?e.classList.add("dark"):e.classList.remove("dark")}let t=(0,a.v)((0,o.Zr)((i,e)=>({theme:d.B2.defaultTheme,setTheme:e=>{i({theme:e}),m(e)},toggleTheme:()=>{let n="dark"===e().theme?"light":"dark";i({theme:n}),m(n)},initTheme:()=>{m(e().theme)}}),{name:d.B2.storageKey}))},620:(i,e,n)=>{n.d(e,{Q2:()=>a.Q2,fg:()=>a.fg,vQ:()=>o,MA:()=>a.MA,zN:()=>a.zN,B2:()=>d});var a=n(2679);n(8777);let o={name:"Endpoint Proxy",description:"AI Infrastructure Management",version:"0.2.78"},d={storageKey:"theme",defaultTheme:"system"}},1110:(i,e,n)=>{n.d(e,{ThemeProvider:()=>m});var a=n(5155),o=n(2115),d=n(85);function m({children:i}){let{initTheme:e}=(0,d.A)();return(0,o.useEffect)(()=>{e()},[e]),(0,a.jsx)(a.Fragment,{children:i})}},2679:(i,e,n)=>{n.d(e,{DI:()=>t,IS:()=>a,JH:()=>m,MA:()=>u,Q2:()=>r,fg:()=>d,gb:()=>c,mq:()=>l,wG:()=>s,wb:()=>p,zN:()=>o,zt:()=>g});let a={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"}},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"},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4"},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333"},kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA"}},d={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#6366F1",textIcon:"OR",passthroughModels:!0},glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL"},"glm-cn":{id:"glm-cn",alias:"glm-cn",name:"GLM Coding (China)",icon:"code",color:"#DC2626",textIcon:"GC"},kimi:{id:"kimi",alias:"kimi",name:"Kimi Coding",icon:"psychology",color:"#1E3A8A",textIcon:"KM"},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM"},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC"},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA"},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN"},gemini:{id:"gemini",alias:"gemini",name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE"}},m="openai-compatible-",t="anthropic-compatible-";function l(i){return"string"==typeof i&&i.startsWith(m)}function c(i){return"string"==typeof i&&i.startsWith(t)}let r={...a,...o,...d},u={oauth:{id:"oauth",name:"OAuth",icon:"lock"},apikey:{id:"apikey",name:"API Key",icon:"key"}};function g(i){for(let e of Object.values(r))if(e.alias===i||e.id===i)return e;return null}function s(i){let e=r[i];return e?.alias||i}Object.values(r).reduce((i,e)=>(i[e.alias]=e.id,i),{}),Object.values(r).reduce((i,e)=>(i[e.id]=e.alias,i),{});let p=["antigravity","kiro","github"]},3097:(i,e,n)=>{n.d(e,{KC:()=>d,Xg:()=>o,vq:()=>a});let a={cc:[{id:"claude-opus-4-6",name:"Claude Opus 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.1-codex-mini",name:"GPT 5.1 Codex Mini"},{id:"gpt-5.1-codex-mini-high",name:"GPT 5.1 Codex Mini (High)"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.1-codex-max",name:"GPT 5.1 Codex Max"},{id:"gpt-5.1-codex",name:"GPT 5.1 Codex"},{id:"gpt-5.1",name:"GPT 5.1"},{id:"gpt-5-codex",name:"GPT 5 Codex"},{id:"gpt-5-codex-mini",name:"GPT 5 Codex Mini"}],gc:[{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"}],qw:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-coder-flash",name:"Qwen3 Coder Flash"},{id:"vision-model",name:"Qwen3 Vision Model"}],if:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"kimi-k2",name:"Kimi K2"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"glm-4.6",name:"GLM 4.6"}],ag:[{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking"},{id:"claude-opus-4-5-thinking",name:"Claude Opus 4.5 Thinking"},{id:"claude-sonnet-4-5-thinking",name:"Claude Sonnet 4.5 Thinking"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"gemini-3-pro-high",name:"Gemini 3 Pro High"},{id:"gemini-3-pro-low",name:"Gemini 3 Pro Low"},{id:"gemini-3-flash",name:"Gemini 3 Flash"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"}],gh:[{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:"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:"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:"raptor-mini",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"}],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"}],openrouter:[{id:"auto",name:"Auto (Best Available)"}],glm:[{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],"glm-cn":[{id:"glm-4.7",name:"GLM-4.7"},{id:"glm-4.6",name:"GLM-4.6"},{id:"glm-4.5",name:"GLM-4.5"},{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.1",name:"MiniMax M2.1"}]},o={claude:"cc",codex:"cx","gemini-cli":"gc",qwen:"qw",iflow:"if",antigravity:"ag",github:"gh",kiro:"kr",cursor:"cu",openai:"openai",anthropic:"anthropic",gemini:"gemini",openrouter:"openrouter",glm:"glm","glm-cn":"glm-cn",kimi:"kimi",minimax:"minimax","minimax-cn":"minimax"};function d(i){return a[o[i]||i]||[]}},8777:(i,e,n)=>{n.d(e,{KC:()=>a.KC,Xg:()=>a.Xg});var a=n(3097);Object.entries(n(2679).Q2).filter(([,i])=>i.passthroughModels).map(([i])=>i),Object.entries(a.vq).flatMap(([i,e])=>e.map(e=>({provider:i,model:e.id,name:e.name})))}}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6099],{},_=>{_.O(0,[600,3624,8729,5497,1393,8441,3794,7358],()=>_(_.s=3774)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6337],{},_=>{_.O(0,[600,3624,8729,5497,1393,8441,3794,7358],()=>_(_.s=3774)),_N_E=_.O()}]);
package/app/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "9router-app",
3
- "version": "0.2.76",
3
+ "version": "0.2.78",
4
4
  "description": "9Router web dashboard",
5
5
  "private": true,
6
6
  "scripts": {
@@ -1,8 +1,10 @@
1
- const { spawn } = require("child_process");
1
+ const { spawn, exec } = require("child_process");
2
2
  const path = require("path");
3
3
  const fs = require("fs");
4
4
  const os = require("os");
5
- const { addDNSEntry, removeDNSEntry } = require("./dns/dnsConfig");
5
+ const { addDNSEntry, removeDNSEntry, checkDNSEntry } = require("./dns/dnsConfig");
6
+
7
+ const IS_WIN = process.platform === "win32";
6
8
  const { generateCert } = require("./cert/generate");
7
9
  const { installCert } = require("./cert/install");
8
10
 
@@ -26,6 +28,16 @@ function isProcessAlive(pid) {
26
28
  }
27
29
  }
28
30
 
31
+ // Cross-platform process kill
32
+ function killProcess(pid, force = false) {
33
+ if (IS_WIN) {
34
+ const flag = force ? "/F " : "";
35
+ exec(`taskkill ${flag}/PID ${pid}`, () => {});
36
+ } else {
37
+ process.kill(pid, force ? "SIGKILL" : "SIGTERM");
38
+ }
39
+ }
40
+
29
41
  /**
30
42
  * Get MITM status
31
43
  */
@@ -51,14 +63,8 @@ async function getMitmStatus() {
51
63
  }
52
64
  }
53
65
 
54
- // Check DNS configuration
55
- let dnsConfigured = false;
56
- try {
57
- const hostsContent = fs.readFileSync("/etc/hosts", "utf-8");
58
- dnsConfigured = hostsContent.includes("daily-cloudcode-pa.googleapis.com");
59
- } catch {
60
- // Ignore
61
- }
66
+ // Check DNS configuration (cross-platform via dnsConfig)
67
+ const dnsConfigured = checkDNSEntry();
62
68
 
63
69
  // Check cert
64
70
  const certDir = path.join(os.homedir(), ".9router", "mitm");
@@ -92,18 +98,32 @@ async function startMitm(apiKey, sudoPassword) {
92
98
  console.log("Adding DNS entry...");
93
99
  await addDNSEntry(sudoPassword);
94
100
 
95
- // 4. Start MITM server
101
+ // 4. Start MITM server (port 443 requires elevated privileges)
96
102
  console.log("Starting MITM server...");
97
103
  const serverPath = path.join(process.cwd(), "src/mitm/server.js");
98
- serverProcess = spawn("node", [serverPath], {
99
- env: {
100
- ...process.env,
101
- ROUTER_API_KEY: apiKey,
102
- NODE_ENV: "production"
103
- },
104
- detached: false,
105
- stdio: ["ignore", "pipe", "pipe"]
106
- });
104
+
105
+ if (IS_WIN) {
106
+ // Windows: spawn via powershell elevated to bind port 443
107
+ const nodePath = process.execPath;
108
+ const envArgs = `$env:ROUTER_API_KEY='${apiKey}'; $env:NODE_ENV='production'; & '${nodePath}' '${serverPath}'`;
109
+ serverProcess = spawn("powershell", [
110
+ "-Command",
111
+ `Start-Process powershell -ArgumentList '-NoProfile','-Command','${envArgs.replace(/'/g, "''")}' -Verb RunAs -PassThru`
112
+ ], {
113
+ detached: false,
114
+ stdio: ["ignore", "pipe", "pipe"]
115
+ });
116
+ } else {
117
+ serverProcess = spawn("node", [serverPath], {
118
+ env: {
119
+ ...process.env,
120
+ ROUTER_API_KEY: apiKey,
121
+ NODE_ENV: "production"
122
+ },
123
+ detached: false,
124
+ stdio: ["ignore", "pipe", "pipe"]
125
+ });
126
+ }
107
127
 
108
128
  serverPid = serverProcess.pid;
109
129
 
@@ -173,10 +193,10 @@ async function stopMitm(sudoPassword) {
173
193
  const proc = serverProcess;
174
194
  if (proc && !proc.killed) {
175
195
  console.log("Stopping MITM server...");
176
- proc.kill("SIGTERM");
196
+ killProcess(proc.pid, false);
177
197
  await new Promise(resolve => setTimeout(resolve, 1000));
178
- if (!proc.killed) {
179
- proc.kill("SIGKILL");
198
+ if (isProcessAlive(proc.pid)) {
199
+ killProcess(proc.pid, true);
180
200
  }
181
201
  serverProcess = null;
182
202
  serverPid = null;
@@ -187,10 +207,10 @@ async function stopMitm(sudoPassword) {
187
207
  const savedPid = parseInt(fs.readFileSync(PID_FILE, "utf-8").trim(), 10);
188
208
  if (savedPid && isProcessAlive(savedPid)) {
189
209
  console.log(`Killing MITM server (PID: ${savedPid})...`);
190
- process.kill(savedPid, "SIGTERM");
210
+ killProcess(savedPid, false);
191
211
  await new Promise(resolve => setTimeout(resolve, 1000));
192
212
  if (isProcessAlive(savedPid)) {
193
- process.kill(savedPid, "SIGKILL");
213
+ killProcess(savedPid, true);
194
214
  }
195
215
  }
196
216
  }
@@ -210,5 +210,10 @@ server.on("error", (error) => {
210
210
  process.exit(1);
211
211
  });
212
212
 
213
- process.on("SIGTERM", () => { server.close(() => process.exit(0)); });
214
- process.on("SIGINT", () => { server.close(() => process.exit(0)); });
213
+ // Graceful shutdown (SIGBREAK for Windows, SIGTERM/SIGINT for Unix)
214
+ const shutdown = () => { server.close(() => process.exit(0)); };
215
+ process.on("SIGTERM", shutdown);
216
+ process.on("SIGINT", shutdown);
217
+ if (process.platform === "win32") {
218
+ process.on("SIGBREAK", shutdown);
219
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "9router",
3
- "version": "0.2.76",
3
+ "version": "0.2.78",
4
4
  "description": "9Router CLI - Start and manage 9Router server",
5
5
  "bin": {
6
6
  "9router": "./cli.js"
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6099],{},_=>{_.O(0,[600,3624,8729,5497,1393,8441,3794,7358],()=>_(_.s=1393)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6337],{},_=>{_.O(0,[600,3624,8729,5497,1393,8441,3794,7358],()=>_(_.s=1393)),_N_E=_.O()}]);