9router 0.3.65 → 0.3.66

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 (330) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/app-path-routes-manifest.json +49 -49
  3. package/app/.next/build-manifest.json +2 -2
  4. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  5. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  6. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/_global-error.html +2 -2
  21. package/app/.next/server/app/_global-error.rsc +1 -1
  22. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  23. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  24. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  25. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  26. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  27. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  28. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/_not-found.html +1 -1
  30. package/app/.next/server/app/_not-found.rsc +3 -3
  31. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  32. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  33. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  34. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  35. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  36. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  37. package/app/.next/server/app/api/9remote/install/route_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/api/9remote/start/route_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/api/9remote/status/route_client-reference-manifest.js +1 -1
  40. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  42. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  43. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  44. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  45. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  46. package/app/.next/server/app/api/cli-tools/copilot-settings/route_client-reference-manifest.js +1 -1
  47. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  48. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  49. package/app/.next/server/app/api/cli-tools/opencode-settings/route_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  51. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  58. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/api/locale/route_client-reference-manifest.js +1 -1
  60. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  61. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  62. package/app/.next/server/app/api/models/route.js +1 -1
  63. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  64. package/app/.next/server/app/api/models/test/route.js +1 -1
  65. package/app/.next/server/app/api/models/test/route_client-reference-manifest.js +1 -1
  66. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  67. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  68. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  69. package/app/.next/server/app/api/oauth/gitlab/pat/route_client-reference-manifest.js +1 -1
  70. package/app/.next/server/app/api/oauth/iflow/cookie/route_client-reference-manifest.js +1 -1
  71. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  72. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  73. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  74. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  75. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  76. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  77. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  78. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  79. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  80. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  81. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  82. package/app/.next/server/app/api/providers/[id]/test-models/route_client-reference-manifest.js +1 -1
  83. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  84. package/app/.next/server/app/api/providers/route.js +1 -1
  85. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  87. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  88. package/app/.next/server/app/api/proxy-pools/[id]/route_client-reference-manifest.js +1 -1
  89. package/app/.next/server/app/api/proxy-pools/[id]/test/route_client-reference-manifest.js +1 -1
  90. package/app/.next/server/app/api/proxy-pools/route_client-reference-manifest.js +1 -1
  91. package/app/.next/server/app/api/settings/database/route_client-reference-manifest.js +1 -1
  92. package/app/.next/server/app/api/settings/proxy-test/route_client-reference-manifest.js +1 -1
  93. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  94. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  95. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  96. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  97. package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
  98. package/app/.next/server/app/api/translator/console-logs/route_client-reference-manifest.js +1 -1
  99. package/app/.next/server/app/api/translator/console-logs/stream/route.js +1 -1
  100. package/app/.next/server/app/api/translator/console-logs/stream/route_client-reference-manifest.js +1 -1
  101. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  102. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  103. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  104. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  105. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  106. package/app/.next/server/app/api/tunnel/disable/route_client-reference-manifest.js +1 -1
  107. package/app/.next/server/app/api/tunnel/enable/route_client-reference-manifest.js +1 -1
  108. package/app/.next/server/app/api/tunnel/status/route_client-reference-manifest.js +1 -1
  109. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  110. package/app/.next/server/app/api/usage/chart/route_client-reference-manifest.js +1 -1
  111. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  112. package/app/.next/server/app/api/usage/providers/route_client-reference-manifest.js +1 -1
  113. package/app/.next/server/app/api/usage/request-details/route_client-reference-manifest.js +1 -1
  114. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  115. package/app/.next/server/app/api/usage/stats/route_client-reference-manifest.js +1 -1
  116. package/app/.next/server/app/api/usage/stream/route_client-reference-manifest.js +1 -1
  117. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  118. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  119. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  120. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  121. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  122. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  123. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  124. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  125. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  126. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  127. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  128. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  129. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  130. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  131. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  132. package/app/.next/server/app/api/version/route.js +1 -1
  133. package/app/.next/server/app/api/version/route_client-reference-manifest.js +1 -1
  134. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  135. package/app/.next/server/app/callback.html +1 -1
  136. package/app/.next/server/app/callback.rsc +3 -3
  137. package/app/.next/server/app/callback.segments/_full.segment.rsc +3 -3
  138. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  139. package/app/.next/server/app/callback.segments/_index.segment.rsc +3 -3
  140. package/app/.next/server/app/callback.segments/_tree.segment.rsc +1 -1
  141. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  142. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  143. package/app/.next/server/app/dashboard/basic-chat.html +1 -1
  144. package/app/.next/server/app/dashboard/basic-chat.rsc +5 -5
  145. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  146. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  147. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  148. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  149. package/app/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  150. package/app/.next/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  151. package/app/.next/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  152. package/app/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  153. package/app/.next/server/app/dashboard/cli-tools.html +1 -1
  154. package/app/.next/server/app/dashboard/cli-tools.rsc +5 -5
  155. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  156. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  157. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  158. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  159. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  160. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  161. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  162. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  163. package/app/.next/server/app/dashboard/combos.html +1 -1
  164. package/app/.next/server/app/dashboard/combos.rsc +5 -5
  165. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  166. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  167. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  168. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  169. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  170. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  171. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  172. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  173. package/app/.next/server/app/dashboard/endpoint.html +1 -1
  174. package/app/.next/server/app/dashboard/endpoint.rsc +5 -5
  175. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  176. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  177. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  178. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  179. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  180. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  181. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  182. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  183. package/app/.next/server/app/dashboard/mitm.html +1 -1
  184. package/app/.next/server/app/dashboard/mitm.rsc +5 -5
  185. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  186. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  187. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  188. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  189. package/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  190. package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  191. package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  192. package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  193. package/app/.next/server/app/dashboard/profile.html +1 -1
  194. package/app/.next/server/app/dashboard/profile.rsc +5 -5
  195. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  196. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  197. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  198. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  199. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  200. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  201. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  202. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  203. package/app/.next/server/app/dashboard/providers/new.html +1 -1
  204. package/app/.next/server/app/dashboard/providers/new.rsc +5 -5
  205. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  206. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  207. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  208. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  209. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  210. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  211. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  212. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  213. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  214. package/app/.next/server/app/dashboard/providers.html +1 -1
  215. package/app/.next/server/app/dashboard/providers.rsc +5 -5
  216. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  217. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  218. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  219. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  220. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  221. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  222. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  223. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  224. package/app/.next/server/app/dashboard/proxy-pools.html +1 -1
  225. package/app/.next/server/app/dashboard/proxy-pools.rsc +5 -5
  226. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  227. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  228. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  229. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  230. package/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  231. package/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  232. package/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  233. package/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  234. package/app/.next/server/app/dashboard/quota.html +2 -2
  235. package/app/.next/server/app/dashboard/quota.rsc +6 -6
  236. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  237. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  238. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  239. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  240. package/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  241. package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  242. package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  243. package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  244. package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  245. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  246. package/app/.next/server/app/dashboard/settings/pricing.rsc +3 -3
  247. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  248. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  249. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  250. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  251. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  252. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  253. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  254. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  255. package/app/.next/server/app/dashboard/translator.html +1 -1
  256. package/app/.next/server/app/dashboard/translator.rsc +5 -5
  257. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  258. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  259. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  260. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  261. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  262. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  263. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  264. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  265. package/app/.next/server/app/dashboard/usage.html +1 -1
  266. package/app/.next/server/app/dashboard/usage.rsc +5 -5
  267. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  268. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  269. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  270. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  271. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  272. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  273. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  274. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  275. package/app/.next/server/app/dashboard.html +1 -1
  276. package/app/.next/server/app/dashboard.rsc +5 -5
  277. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  278. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  279. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  280. package/app/.next/server/app/dashboard.segments/_full.segment.rsc +5 -5
  281. package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  282. package/app/.next/server/app/dashboard.segments/_index.segment.rsc +3 -3
  283. package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  284. package/app/.next/server/app/index.html +1 -1
  285. package/app/.next/server/app/index.rsc +3 -3
  286. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  287. package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
  288. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  289. package/app/.next/server/app/index.segments/_index.segment.rsc +3 -3
  290. package/app/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  291. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  292. package/app/.next/server/app/landing.html +1 -1
  293. package/app/.next/server/app/landing.rsc +3 -3
  294. package/app/.next/server/app/landing.segments/_full.segment.rsc +3 -3
  295. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  296. package/app/.next/server/app/landing.segments/_index.segment.rsc +3 -3
  297. package/app/.next/server/app/landing.segments/_tree.segment.rsc +1 -1
  298. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  299. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  300. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  301. package/app/.next/server/app/login.html +1 -1
  302. package/app/.next/server/app/login.rsc +4 -4
  303. package/app/.next/server/app/login.segments/_full.segment.rsc +4 -4
  304. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  305. package/app/.next/server/app/login.segments/_index.segment.rsc +3 -3
  306. package/app/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  307. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  308. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  309. package/app/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  310. package/app/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  311. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  312. package/app/.next/server/app-paths-manifest.json +49 -49
  313. package/app/.next/server/chunks/1114.js +1 -1
  314. package/app/.next/server/chunks/318.js +7 -7
  315. package/app/.next/server/chunks/3832.js +1 -1
  316. package/app/.next/server/chunks/8220.js +1 -1
  317. package/app/.next/server/chunks/8895.js +2 -2
  318. package/app/.next/server/chunks/9718.js +1 -1
  319. package/app/.next/server/pages/404.html +1 -1
  320. package/app/.next/server/pages/500.html +2 -2
  321. package/app/.next/server/server-reference-manifest.js +1 -1
  322. package/app/.next/server/server-reference-manifest.json +1 -1
  323. package/app/.next/static/chunks/{2652-f35d2250006f0efa.js → 2652-1cec1a4ce4b30684.js} +1 -1
  324. package/app/.next/static/chunks/{5497-ce51becf351384d7.js → 5497-62aa3a7d46402bf6.js} +1 -1
  325. package/app/.next/static/chunks/app/{layout-64d54dcedbdfab11.js → layout-d924aeffa5288d2c.js} +1 -1
  326. package/app/package.json +1 -1
  327. package/app/src/mitm/server.js +1 -1
  328. package/package.json +1 -1
  329. /package/app/.next/static/{gHypWthmAEGnQjLzrqwbj → sD5oyZuYvgG52wS8HNJvm}/_buildManifest.js +0 -0
  330. /package/app/.next/static/{gHypWthmAEGnQjLzrqwbj → sD5oyZuYvgG52wS8HNJvm}/_ssgManifest.js +0 -0
@@ -4,4 +4,4 @@
4
4
  `,children:e.name},e.id)})})]}),Object.entries(w).map(([e,t])=>(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center gap-1.5 mb-1.5 sticky top-0 bg-surface py-0.5",children:[(0,r.jsx)("div",{className:"w-2 h-2 rounded-full",style:{backgroundColor:t.color}}),(0,r.jsx)("span",{className:"text-xs font-medium text-primary",children:t.name}),(0,r.jsxs)("span",{className:"text-[10px] text-text-muted",children:["(",t.models.length,")"]})]}),(0,r.jsx)("div",{className:"flex flex-wrap gap-1.5",children:t.models.map(e=>{let t=l===e.value,s=e.isPlaceholder;return(0,r.jsx)("button",{onClick:()=>C(e),title:s?"Select to pre-fill, then edit model ID in the input":void 0,className:`
5
5
  px-2 py-1 rounded-xl text-xs font-medium transition-all border hover:cursor-pointer
6
6
  ${s?"border-dashed border-border text-text-muted hover:border-primary/50 hover:text-primary bg-surface italic":t?"bg-primary text-white border-primary":"bg-surface border-border text-text-main hover:border-primary/50 hover:bg-primary/5"}
7
- `,children:s?(0,r.jsxs)("span",{className:"flex items-center gap-1",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[11px]",children:"edit"}),e.name]}):e.isCustom?(0,r.jsxs)("span",{className:"flex items-center gap-1",children:[e.name,(0,r.jsx)("span",{className:"text-[9px] opacity-60 font-normal",children:"custom"})]}):e.name},e.id)})})]},e)),0===Object.keys(w).length&&0===k.length&&(0,r.jsxs)("div",{className:"text-center py-4 text-text-muted",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-2xl mb-1 block",children:"search_off"}),(0,r.jsx)("p",{className:"text-xs",children:"No models found"})]})]})]})}m.propTypes={isOpen:n().bool.isRequired,onClose:n().func.isRequired,onSelect:n().func.isRequired,selectedModel:n().string,activeProviders:n().arrayOf(n().shape({provider:n().string.isRequired})),title:n().string,modelAliases:n().object}},73006:(e,t,s)=>{s.d(t,{FE:()=>x,Tl:()=>d,wn:()=>u});var r=s(93308);let a={},l=r.Xn,n=[];function i(){if("u"<typeof document)return r.Xn;let e=document.cookie.split(";").find(e=>e.trim().startsWith(`${r.CL}=`)),t=e?decodeURIComponent(e.split("=")[1]):r.Xn;return(0,r.QC)(t)}async function o(e){if("en"===e){a={};return}try{let t=await fetch(`/i18n/literals/${e}.json`);a=await t.json()}catch(e){console.error("Failed to load translations:",e),a={}}}function d(e){if(!e||"string"!=typeof e)return e;let t=e.trim();return t&&"en"!==l&&a[t]||e}function c(e){if(!e.nodeValue||!e.nodeValue.trim())return;let t=e.parentElement;if(!t)return;let s=t;for(;s;){if(s.hasAttribute&&s.hasAttribute("data-i18n-skip"))return;s=s.parentElement}if(["script","style","code","pre","colgroup","table","thead","tbody","tfoot","tr","select","datalist","optgroup"].includes(t.tagName?.toLowerCase()))return;e._originalText||(e._originalText=e.nodeValue);let r=d(e._originalText);r!==e.nodeValue&&(e.nodeValue=r)}function m(e){let t;if(!e)return;let s=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null,!1),r=[];for(;t=s.nextNode();)r.push(t);r.forEach(c)}async function x(){l=i(),await o(l),m(document.body),new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{e.nodeType===Node.ELEMENT_NODE?m(e):e.nodeType===Node.TEXT_NODE&&c(e)})})}).observe(document.body,{childList:!0,subtree:!0})}async function u(){l=i(),await o(l),n.forEach(e=>e()),m(document.body)}},74891:(e,t,s)=>{s.d(t,{default:()=>p});var r=s(95155),a=s(73321),l=s(12115),n=s(98500),i=s.n(n),o=s(14051),d=s.n(o),c=s(57250),m=s(35497),x=s(36548),u=s(90620),h=s(73006);function p({onMenuClick:e,showMenuButton:t=!0}){let s=(0,a.usePathname)(),n=(0,a.useRouter)(),{title:o,description:d,breadcrumbs:p}=(0,l.useMemo)(()=>(e=>{if(!e)return{title:"",description:"",breadcrumbs:[]};let t=e.match(/\/providers\/([^/]+)$/);if(t){let e=t[1],s=u.zN[e]||u.fg[e];if(s)return{title:s.name,description:"",breadcrumbs:[{label:"Providers",href:"/dashboard/providers"},{label:s.name,image:`/providers/${s.id}.png`}]}}return e.includes("/providers")?{title:"Providers",description:"Manage your AI provider connections",breadcrumbs:[]}:e.includes("/combos")?{title:"Combos",description:"Model combos with fallback",breadcrumbs:[]}:e.includes("/usage")?{title:"Usage & Analytics",description:"Monitor your API usage, token consumption, and request logs",breadcrumbs:[]}:e.includes("/mitm")?{title:"MITM Proxy",description:"Intercept CLI tool traffic and route through 9Router",breadcrumbs:[]}:e.includes("/cli-tools")?{title:"CLI Tools",description:"Configure CLI tools",breadcrumbs:[]}:e.includes("/endpoint")?{title:"Endpoint",description:"API endpoint configuration",breadcrumbs:[]}:e.includes("/profile")?{title:"Settings",description:"Manage your preferences",breadcrumbs:[]}:e.includes("/translator")?{title:"Translator",description:"Debug translation flow between formats",breadcrumbs:[]}:e.includes("/console-log")?{title:"Console Log",description:"Live server console output",breadcrumbs:[]}:"/dashboard"===e?{title:"Endpoint",description:"API endpoint configuration",breadcrumbs:[]}:{title:"",description:"",breadcrumbs:[]}})(s),[s]),f=async()=>{try{(await fetch("/api/auth/logout",{method:"POST"})).ok&&(n.push("/login"),n.refresh())}catch(e){console.error("Failed to logout:",e)}};return(0,r.jsxs)("header",{className:"flex items-center justify-between px-8 py-5 border-b border-black/5 dark:border-white/5 bg-bg/80 backdrop-blur-xl z-10 sticky top-0",children:[(0,r.jsx)("div",{className:"flex items-center gap-3 lg:hidden",children:t&&(0,r.jsx)("button",{onClick:e,className:"text-text-main hover:text-primary transition-colors",children:(0,r.jsx)("span",{className:"material-symbols-outlined",children:"menu"})})}),(0,r.jsx)("div",{className:"hidden lg:flex flex-col",children:p.length>0?(0,r.jsx)("div",{className:"flex items-center gap-2",children:p.map((e,t)=>(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[t>0&&(0,r.jsx)("span",{className:"material-symbols-outlined text-text-muted text-base",children:"chevron_right"}),e.href?(0,r.jsx)(i(),{href:e.href,className:"text-text-muted hover:text-primary transition-colors",children:e.label}):(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[e.image&&(0,r.jsx)(c.A,{src:e.image,alt:e.label,size:28,className:"object-contain rounded max-w-[28px] max-h-[28px]",fallbackText:e.label.slice(0,2).toUpperCase()}),(0,r.jsx)("h1",{className:"text-2xl font-semibold text-text-main tracking-tight",children:(0,h.Tl)(e.label)})]})]},`${e.label}-${e.href||"current"}`))}):o?(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{className:"text-2xl font-semibold text-text-main tracking-tight",children:(0,h.Tl)(o)}),d&&(0,r.jsx)("p",{className:"text-sm text-text-muted",children:(0,h.Tl)(d)})]}):null}),(0,r.jsxs)("div",{className:"flex items-center gap-3 ml-auto",children:[(0,r.jsx)(x.default,{}),(0,r.jsx)(m.c5,{}),(0,r.jsx)(m.UW,{}),(0,r.jsx)("button",{onClick:f,className:"flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-red-500 hover:bg-red-500/10 transition-all",title:"Logout",children:(0,r.jsx)("span",{className:"material-symbols-outlined",children:"logout"})})]})]})}p.propTypes={onMenuClick:d().func,showMenuButton:d().bool}},81127:(e,t,s)=>{s.d(t,{ConfirmModal:()=>o,default:()=>i});var r=s(95155),a=s(12115),l=s(31474),n=s(92542);function i({isOpen:e,onClose:t,title:s,children:n,footer:i,size:o="md",closeOnOverlay:d=!0,showCloseButton:c=!0,className:m}){return((0,a.useEffect)(()=>(e?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[e]),(0,a.useEffect)(()=>{let s=s=>{"Escape"===s.key&&e&&t()};return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[e,t]),e)?(0,r.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[(0,r.jsx)("div",{className:"absolute inset-0 bg-black/30 backdrop-blur-sm",onClick:d?t:void 0}),(0,r.jsxs)("div",{className:(0,l.cn)("relative w-full bg-surface","border border-black/10 dark:border-white/10","rounded-xl shadow-2xl","animate-in fade-in zoom-in-95 duration-200",{sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-xl",full:"max-w-4xl"}[o],m),children:[(s||c)&&(0,r.jsxs)("div",{className:"flex items-center justify-between p-6 border-b border-black/5 dark:border-white/5",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 mr-4",children:[(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FF5F56]"}),(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FFBD2E]"}),(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#27C93F]"})]}),s&&(0,r.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:s})]}),c&&(0,r.jsx)("button",{onClick:t,className:"p-1.5 rounded-lg text-text-muted hover:bg-black/5 dark:hover:bg-white/5 transition-colors",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,r.jsx)("div",{className:"p-6 max-h-[calc(80vh-140px)] overflow-y-auto",children:n}),i&&(0,r.jsx)("div",{className:"flex items-center justify-end gap-3 p-6 border-t border-black/5 dark:border-white/5",children:i})]})]}):null}function o({isOpen:e,onClose:t,onConfirm:s,title:a="Confirm",message:l,confirmText:o="Confirm",cancelText:d="Cancel",variant:c="danger",loading:m=!1}){return(0,r.jsx)(i,{isOpen:e,onClose:t,title:a,size:"sm",footer:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.default,{variant:"ghost",onClick:t,disabled:m,children:d}),(0,r.jsx)(n.default,{variant:c,onClick:s,loading:m,children:o})]}),children:(0,r.jsx)("p",{className:"text-text-muted",children:l})})}},84588:(e,t,s)=>{s.d(t,{default:()=>l});var r=s(95155),a=s(31474);function l({children:e,title:t,subtitle:s,icon:l,action:n,padding:i="md",hover:o=!1,className:d,...c}){return(0,r.jsxs)("div",{className:(0,a.cn)("bg-surface","border border-black/5 dark:border-white/5","rounded-lg shadow-sm",o&&"hover:shadow-md hover:border-primary/30 transition-all cursor-pointer",{none:"",xs:"p-3",sm:"p-4",md:"p-6",lg:"p-8"}[i],d),...c,children:[(t||n)&&(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[l&&(0,r.jsx)("div",{className:"p-2 rounded-lg bg-bg text-text-muted",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:l})}),(0,r.jsxs)("div",{children:[t&&(0,r.jsx)("h3",{className:"text-text-main font-semibold",children:t}),s&&(0,r.jsx)("p",{className:"text-sm text-text-muted",children:s})]})]}),n]}),e]})}l.Section=function({children:e,className:t,...s}){return(0,r.jsx)("div",{className:(0,a.cn)("p-4 rounded-lg","bg-black/[0.02] dark:bg-white/[0.02]","border border-black/5 dark:border-white/5",t),...s,children:e})},l.Row=function({children:e,className:t,...s}){return(0,r.jsx)("div",{className:(0,a.cn)("p-3 -mx-3 px-3 transition-colors","border-b border-black/5 dark:border-white/5 last:border-b-0","hover:bg-black/[0.02] dark:hover:bg-white/[0.02]",t),...s,children:e})},l.ListItem=function({children:e,actions:t,className:s,...l}){return(0,r.jsxs)("div",{className:(0,a.cn)("group flex items-center justify-between p-3 -mx-3 px-3","border-b border-black/[0.03] dark:border-white/[0.03] last:border-b-0","hover:bg-black/[0.02] dark:hover:bg-white/[0.02]","transition-colors",s),...l,children:[(0,r.jsx)("div",{className:"flex-1 min-w-0",children:e}),t&&(0,r.jsx)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:t})]})}},90085:(e,t,s)=>{s.d(t,{A:()=>i});var r=s(1934),a=s(31692),l=s(90620);function n(e){let t=document.documentElement,s=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";"dark"===("system"===e?s:e)?t.classList.add("dark"):t.classList.remove("dark")}let i=(0,r.v)((0,a.Zr)((e,t)=>({theme:l.B2.defaultTheme,setTheme:t=>{e({theme:t}),n(t)},toggleTheme:()=>{let s="dark"===t().theme?"light":"dark";e({theme:s}),n(s)},initTheme:()=>{n(t().theme)}}),{name:l.B2.storageKey}))},90620:(e,t,s)=>{s.d(t,{Q2:()=>r.Q2,fg:()=>r.fg,vQ:()=>a,MA:()=>r.MA,UY:()=>n,zN:()=>r.zN,B2:()=>l});var r=s(52679);s(28777);let a={name:"Endpoint Proxy",description:"AI Infrastructure Management",version:"0.3.65"},l={storageKey:"theme",defaultTheme:"system"},n={maxLines:200,pollIntervalMs:1e3}},90882:(e,t,s)=>{s.d(t,{default:()=>d});var r=s(95155),a=s(12115),l=s(14051),n=s.n(l),i=s(35497),o=s(11059);function d({isOpen:e,provider:t,providerInfo:s,onSuccess:l,onClose:n,oauthMeta:d}){let[c,m]=(0,a.useState)("waiting"),[x,u]=(0,a.useState)(null),[h,p]=(0,a.useState)(""),[f,b]=(0,a.useState)(null),[g,j]=(0,a.useState)(!1),[y,v]=(0,a.useState)(null),[N,k]=(0,a.useState)(!1),w=(0,a.useRef)(null),C=(0,a.useRef)(!1),{copied:S,copy:T}=(0,o.C)(),[R,$]=(0,a.useState)(!1),[E,M]=(0,a.useState)("/callback?code=..."),L=(0,a.useRef)(!1);(0,a.useEffect)(()=>{$("localhost"===window.location.hostname||"127.0.0.1"===window.location.hostname),M(`${window.location.origin}/callback?code=...`)},[]);let O=(0,a.useCallback)(async(e,s)=>{if(x)try{let r=await fetch(`/api/oauth/${t}/exchange`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:e,redirectUri:x.redirectUri,codeVerifier:x.codeVerifier,state:s,...d?{meta:d}:{}})}),a=await r.json();if(!r.ok)throw Error(a.error);m("success"),l?.()}catch(e){b(e.message),m("error")}},[x,t,l]),I=(0,a.useCallback)(async(e,s,r,a)=>{C.current=!1,k(!0);for(let n=0;n<60;n++){if(C.current){console.log("[OAuthModal] Polling aborted"),k(!1);return}if(await new Promise(e=>setTimeout(e,1e3*r)),C.current){console.log("[OAuthModal] Polling aborted after sleep"),k(!1);return}try{let n=await fetch(`/api/oauth/${t}/poll`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({deviceCode:e,codeVerifier:s,extraData:a})}),i=await n.json();if(i.success){C.current=!0,m("success"),k(!1),l?.();return}if("expired_token"===i.error||"access_denied"===i.error)throw Error(i.errorDescription||i.error);"slow_down"===i.error&&(r=Math.min(r+5,30))}catch(e){b(e.message),m("error"),k(!1);return}}b("Authorization timeout"),m("error"),k(!1)},[t,l]),P=(0,a.useCallback)(async()=>{if(t)try{let e;if(b(null),["github","qwen","kiro","kimi-coding","kilocode","codebuddy"].includes(t)){j(!0),m("waiting");let e=await fetch(`/api/oauth/${t}/device-code`),s=await e.json();if(!e.ok)throw Error(s.error);v(s);let r=s.verification_uri_complete||s.verification_uri;r&&window.open(r,"_blank");let a="kiro"===t?{_clientId:s._clientId,_clientSecret:s._clientSecret}:null;I(s.device_code,s.codeVerifier,s.interval||5,a);return}if("codex"===t)e="http://localhost:1455/auth/callback";else{let t=window.location.port||("https:"===window.location.protocol?"443":"80");e=`http://localhost:${t}/callback`}let s=new URL(`/api/oauth/${t}/authorize`,window.location.origin);s.searchParams.set("redirect_uri",e),d&&Object.entries(d).forEach(([e,t])=>{t&&s.searchParams.set(e,t)});let r=await fetch(s.toString()),a=await r.json();if(!r.ok)throw Error(a.error);u({...a,redirectUri:e}),"codex"!==t&&R?(m("waiting"),w.current=window.open(a.authUrl,"oauth_popup","width=600,height=700"),w.current||m("input")):(m("input"),window.open(a.authUrl,"_blank"))}catch(e){b(e.message),m("error")}},[t,R,I]);(0,a.useEffect)(()=>{e&&t?(u(null),p(""),b(null),j(!1),v(null),k(!1),C.current=!1,P()):e||(C.current=!0)},[e,t,P]),(0,a.useEffect)(()=>{let e;if(!x)return;L.current=!1;let t=async e=>{if(L.current)return;let{code:t,state:s,error:r,errorDescription:a}=e;if(r){L.current=!0,b(a||r),m("error");return}t&&(L.current=!0,await O(t,s))},s=e=>{let s=e.origin.includes("localhost")||e.origin.includes("127.0.0.1"),r=e.origin===window.location.origin;(s||r)&&e.data?.type==="oauth_callback"&&t(e.data.data)};window.addEventListener("message",s);try{(e=new BroadcastChannel("oauth_callback")).onmessage=e=>t(e.data)}catch(e){console.log("BroadcastChannel not supported")}let r=e=>{if("oauth_callback"===e.key&&e.newValue)try{let s=JSON.parse(e.newValue);t(s),localStorage.removeItem("oauth_callback")}catch(e){console.log("Failed to parse localStorage data")}};window.addEventListener("storage",r);try{let e=localStorage.getItem("oauth_callback");if(e){let s=JSON.parse(e);s.timestamp&&Date.now()-s.timestamp<3e4&&t(s),localStorage.removeItem("oauth_callback")}}catch{}return()=>{window.removeEventListener("message",s),window.removeEventListener("storage",r),e&&e.close()}},[x,O]);let z=async()=>{try{b(null);let e=new URL(h),t=e.searchParams.get("code"),s=e.searchParams.get("state"),r=e.searchParams.get("error");if(r)throw Error(e.searchParams.get("error_description")||r);if(!t)throw Error("No authorization code found in URL");await O(t,s)}catch(e){b(e.message),m("error")}},_=(0,a.useCallback)(()=>{n()},[n]);return t&&s?(0,r.jsx)(i.aF,{isOpen:e,title:`Connect ${s.name}`,onClose:_,size:"lg",children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:["waiting"===c&&!g&&(0,r.jsxs)("div",{className:"text-center py-6",children:[(0,r.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-primary/10 flex items-center justify-center",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-3xl text-primary animate-spin",children:"progress_activity"})}),(0,r.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Waiting for Authorization"}),(0,r.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Complete the authorization in the popup window."}),(0,r.jsx)(i.$n,{variant:"ghost",onClick:()=>m("input"),children:"Popup blocked? Enter URL manually"})]}),"waiting"===c&&g&&y&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"text-center py-4",children:[(0,r.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Visit the URL below and enter the code:"}),(0,r.jsxs)("div",{className:"bg-sidebar p-4 rounded-lg mb-4",children:[(0,r.jsx)("p",{className:"text-xs text-text-muted mb-1",children:"Verification URL"}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("code",{className:"flex-1 text-sm break-all",children:y.verification_uri}),(0,r.jsx)(i.$n,{size:"sm",variant:"ghost",icon:"verify_url"===S?"check":"content_copy",onClick:()=>T(y.verification_uri,"verify_url")})]})]}),(0,r.jsxs)("div",{className:"bg-primary/10 p-4 rounded-lg",children:[(0,r.jsx)("p",{className:"text-xs text-text-muted mb-1",children:"Your Code"}),(0,r.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,r.jsx)("p",{className:"text-2xl font-mono font-bold text-primary",children:y.user_code}),(0,r.jsx)(i.$n,{size:"sm",variant:"ghost",icon:"user_code"===S?"check":"content_copy",onClick:()=>T(y.user_code,"user_code")})]})]})]}),N&&(0,r.jsxs)("div",{className:"flex items-center justify-center gap-2 text-sm text-text-muted",children:[(0,r.jsx)("span",{className:"material-symbols-outlined animate-spin",children:"progress_activity"}),"Waiting for authorization..."]})]}),"input"===c&&!g&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 1: Open this URL in your browser"}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.pd,{value:x?.authUrl||"",readOnly:!0,className:"flex-1 font-mono text-xs"}),(0,r.jsx)(i.$n,{variant:"secondary",icon:"auth_url"===S?"check":"content_copy",onClick:()=>T(x?.authUrl,"auth_url"),children:"Copy"})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 2: Paste the callback URL here"}),(0,r.jsx)("p",{className:"text-xs text-text-muted mb-2",children:"After authorization, copy the full URL from your browser."}),(0,r.jsx)(i.pd,{value:h,onChange:e=>p(e.target.value),placeholder:E,className:"font-mono text-xs"})]})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:z,fullWidth:!0,disabled:!h,children:"Connect"}),(0,r.jsx)(i.$n,{onClick:_,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),"success"===c&&(0,r.jsxs)("div",{className:"text-center py-6",children:[(0,r.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-3xl text-green-600",children:"check_circle"})}),(0,r.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connected Successfully!"}),(0,r.jsxs)("p",{className:"text-sm text-text-muted mb-4",children:["Your ",s.name," account has been connected."]}),(0,r.jsx)(i.$n,{onClick:_,fullWidth:!0,children:"Done"})]}),"error"===c&&(0,r.jsxs)("div",{className:"text-center py-6",children:[(0,r.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-3xl text-red-600",children:"error"})}),(0,r.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connection Failed"}),(0,r.jsx)("p",{className:"text-sm text-red-600 mb-4",children:f}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:P,variant:"secondary",fullWidth:!0,children:"Try Again"}),(0,r.jsx)(i.$n,{onClick:_,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})]})}):null}d.propTypes={isOpen:n().bool.isRequired,provider:n().string,providerInfo:n().shape({name:n().string}),onSuccess:n().func,onClose:n().func.isRequired,oauthMeta:n().object}},91450:(e,t,s)=>{s.d(t,{default:()=>i});var r=s(95155),a=s(14051),l=s.n(a),n=s(38587);function i({children:e}){return(0,r.jsxs)("div",{className:"min-h-screen flex flex-col relative bg-bg transition-colors duration-500 overflow-x-hidden selection:bg-primary/20 selection:text-primary",children:[(0,r.jsx)("div",{className:"fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[800px] h-[800px] bg-primary/5 dark:bg-primary/5 rounded-full blur-[100px] pointer-events-none z-0"}),(0,r.jsx)("div",{className:"fixed bottom-0 right-0 w-[600px] h-[600px] bg-orange-200/20 dark:bg-orange-900/10 rounded-full blur-[120px] pointer-events-none z-0 translate-y-1/3 translate-x-1/3"}),(0,r.jsx)("div",{className:"absolute top-6 right-6 z-20",children:(0,r.jsx)(n.default,{variant:"card"})}),(0,r.jsx)("main",{className:"flex-1 flex flex-col items-center justify-center p-4 sm:p-6 z-10 w-full h-full",children:e})]})}i.propTypes={children:l().node.isRequired}},92173:(e,t,s)=>{s.d(t,{default:()=>c});var r=s(95155),a=s(98500),l=s.n(a),n=s(90620);let i=[{label:"Features",href:"#features"},{label:"Pricing",href:"#pricing"},{label:"Changelog",href:"#"}],o=[{label:"Documentation",href:"#"},{label:"API Reference",href:"#"},{label:"Help Center",href:"#"}],d=[{label:"About",href:"#"},{label:"Blog",href:"#"},{label:"Contact",href:"#"}];function c(){return(0,r.jsx)("footer",{className:"bg-bg border-t border-border pt-16 pb-12",children:(0,r.jsxs)("div",{className:"container mx-auto px-4 sm:px-6 lg:px-8",children:[(0,r.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-5 gap-10 mb-12",children:[(0,r.jsxs)("div",{className:"col-span-2 lg:col-span-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-6",children:[(0,r.jsx)("div",{className:"size-6 text-primary",children:(0,r.jsx)("svg",{className:"w-full h-full",fill:"currentColor",viewBox:"0 0 48 48",children:(0,r.jsx)("path",{clipRule:"evenodd",d:"M12.0799 24L4 19.2479L9.95537 8.75216L18.04 13.4961L18.0446 4H29.9554L29.96 13.4961L38.0446 8.75216L44 19.2479L35.92 24L44 28.7521L38.0446 39.2479L29.96 34.5039L29.9554 44H18.0446L18.04 34.5039L9.95537 39.2479L4 28.7521L12.0799 24Z",fillRule:"evenodd"})})}),(0,r.jsx)("span",{className:"text-xl font-bold text-text-main",children:n.vQ.name})]}),(0,r.jsx)("p",{className:"text-text-muted mb-6 max-w-sm font-light",children:"The unified interface for modern AI infrastructure. Secure, observable, and scalable."}),(0,r.jsxs)("div",{className:"flex gap-4",children:[(0,r.jsx)("a",{href:"#",className:"text-gray-400 hover:text-primary transition-colors","aria-label":"Twitter",children:(0,r.jsx)("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{d:"M22.46 6c-.77.35-1.6.58-2.46.69.88-.53 1.56-1.37 1.88-2.38-.83.5-1.75.85-2.72 1.05C18.37 4.5 17.26 4 16 4c-2.35 0-4.27 1.92-4.27 4.29 0 .34.04.67.11.98C8.28 9.09 5.11 7.38 3 4.79c-.37.63-.58 1.37-.58 2.15 0 1.49.75 2.81 1.91 3.56-.71 0-1.37-.2-1.95-.5v.03c0 2.08 1.48 3.82 3.44 4.21a4.22 4.22 0 0 1-1.93.07 4.28 4.28 0 0 0 4 2.98 8.521 8.521 0 0 1-5.33 1.84c-.34 0-.68-.02-1.02-.06C3.44 20.29 5.7 21 8.12 21 16 21 20.33 14.46 20.33 8.79c0-.19 0-.37-.01-.56.84-.6 1.56-1.36 2.14-2.23z"})})}),(0,r.jsx)("a",{href:"#",className:"text-gray-400 hover:text-primary transition-colors","aria-label":"GitHub",children:(0,r.jsx)("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{d:"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0 0 22 12.017C22 6.484 17.522 2 12 2z"})})})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h4",{className:"font-semibold text-text-main mb-4",children:"Product"}),(0,r.jsx)("ul",{className:"flex flex-col gap-3 text-sm text-text-muted font-light",children:i.map(e=>(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:e.href,className:"hover:text-primary transition-colors",children:e.label})},e.label))})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h4",{className:"font-semibold text-text-main mb-4",children:"Resources"}),(0,r.jsx)("ul",{className:"flex flex-col gap-3 text-sm text-text-muted font-light",children:o.map(e=>(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:e.href,className:"hover:text-primary transition-colors",children:e.label})},e.label))})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h4",{className:"font-semibold text-text-main mb-4",children:"Company"}),(0,r.jsx)("ul",{className:"flex flex-col gap-3 text-sm text-text-muted font-light",children:d.map(e=>(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:e.href,className:"hover:text-primary transition-colors",children:e.label})},e.label))})]})]}),(0,r.jsxs)("div",{className:"border-t border-border pt-8 flex flex-col md:flex-row justify-between items-center gap-4",children:[(0,r.jsxs)("p",{className:"text-sm text-text-muted",children:["\xa9 ",new Date().getFullYear()," ",n.vQ.name," Inc. All rights reserved."]}),(0,r.jsxs)("div",{className:"flex gap-6 text-sm text-text-muted",children:[(0,r.jsx)(l(),{href:"#",className:"hover:text-primary transition-colors",children:"Privacy Policy"}),(0,r.jsx)(l(),{href:"#",className:"hover:text-primary transition-colors",children:"Terms of Service"})]})]})]})})}},92542:(e,t,s)=>{s.d(t,{default:()=>i});var r=s(95155),a=s(31474);let l={primary:"bg-gradient-to-b from-primary to-primary-hover text-white shadow-sm",secondary:"bg-white dark:bg-white/10 border border-black/10 dark:border-white/10 text-text-main hover:bg-black/5 dark:hover:bg-white/5",outline:"border border-black/15 dark:border-white/15 text-text-main hover:bg-black/5",ghost:"text-text-muted hover:bg-black/5 dark:hover:bg-white/5 hover:text-text-main",danger:"bg-red-500 text-white hover:bg-red-600 shadow-sm"},n={sm:"h-7 px-3 text-xs rounded-md",md:"h-9 px-4 text-sm rounded-lg",lg:"h-11 px-6 text-sm rounded-lg"};function i({children:e,variant:t="primary",size:s="md",icon:i,iconRight:o,disabled:d=!1,loading:c=!1,fullWidth:m=!1,className:x,...u}){return(0,r.jsxs)("button",{className:(0,a.cn)("inline-flex items-center justify-center gap-2 font-medium transition-all duration-200 cursor-pointer","active:scale-[0.99] disabled:opacity-50 disabled:cursor-not-allowed disabled:active:scale-100",l[t],n[s],m&&"w-full",x),disabled:d||c,...u,children:[c?(0,r.jsx)("span",{className:"material-symbols-outlined animate-spin text-[18px]",children:"progress_activity"}):i?(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:i}):null,e,o&&!c&&(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:o})]})}},92622:(e,t,s)=>{s.d(t,{default:()=>b});var r=s(95155),a=s(12115),l=s(14051),n=s.n(l),i=s(98500),o=s.n(i),d=s(73321),c=s(31474),m=s(90620),x=s(92542),u=s(81127);let h=[{href:"/dashboard/endpoint",label:"Endpoint",icon:"api"},{href:"/dashboard/providers",label:"Providers",icon:"dns"},{href:"/dashboard/combos",label:"Combos",icon:"layers"},{href:"/dashboard/usage",label:"Usage",icon:"bar_chart"},{href:"/dashboard/quota",label:"Quota Tracker",icon:"data_usage"},{href:"/dashboard/mitm",label:"MITM",icon:"security"},{href:"/dashboard/cli-tools",label:"CLI Tools",icon:"terminal"}],p=[{href:"/dashboard/console-log",label:"Console Log",icon:"terminal"}],f=[{href:"/dashboard/proxy-pools",label:"Proxy Pools",icon:"lan"},{href:"/dashboard/profile",label:"Settings",icon:"settings"}];function b({onClose:e}){let t=(0,d.usePathname)(),[s,l]=(0,a.useState)(!1),[n,i]=(0,a.useState)(!1),[b,g]=(0,a.useState)(!1),[j,y]=(0,a.useState)(null),[v,N]=(0,a.useState)(!1);(0,a.useEffect)(()=>{fetch("/api/settings").then(e=>e.json()).then(e=>{e.enableTranslator&&N(!0)}).catch(()=>{})},[]),(0,a.useEffect)(()=>{fetch("/api/version").then(e=>e.json()).then(e=>{e.hasUpdate&&y(e)}).catch(()=>{})},[]);let k=e=>"/dashboard/endpoint"===e?"/dashboard"===t||t.startsWith("/dashboard/endpoint"):t.startsWith(e),w=async()=>{i(!0);try{await fetch("/api/shutdown",{method:"POST"})}catch(e){}i(!1),l(!1),g(!0)};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("aside",{className:"flex w-72 flex-col border-r border-black/5 dark:border-white/5 bg-vibrancy backdrop-blur-xl transition-colors duration-300 min-h-full",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-6 pt-5 pb-2",children:[(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FF5F56]"}),(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FFBD2E]"}),(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#27C93F]"})]}),(0,r.jsxs)("div",{className:"px-6 py-4 flex flex-col gap-2",children:[(0,r.jsxs)(o(),{href:"/dashboard",className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"flex items-center justify-center size-9 rounded bg-linear-to-br from-[#f97815] to-[#c2590a]",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-white text-[20px]",children:"hub"})}),(0,r.jsxs)("div",{className:"flex flex-col",children:[(0,r.jsx)("h1",{className:"text-lg font-semibold tracking-tight text-text-main",children:m.vQ.name}),(0,r.jsxs)("span",{className:"text-xs text-text-muted",children:["v",m.vQ.version]})]})]}),j&&(0,r.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,r.jsxs)("span",{className:"text-xs font-semibold text-green-600 dark:text-amber-500",children:["↑ New version available: v",j.latestVersion]}),(0,r.jsx)("code",{className:"text-[10px] text-green-600/80 dark:text-amber-400/70 font-mono select-all",children:"npm install -g 9router@latest"})]})]}),(0,r.jsxs)("nav",{className:"flex-1 px-4 py-2 space-y-1 overflow-y-auto custom-scrollbar",children:[h.map(t=>(0,r.jsxs)(o(),{href:t.href,onClick:e,className:(0,c.cn)("flex items-center gap-3 px-4 py-2 rounded-lg transition-all group",k(t.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface/50 hover:text-text-main"),children:[(0,r.jsx)("span",{className:(0,c.cn)("material-symbols-outlined text-[18px]",k(t.href)?"fill-1":"group-hover:text-primary transition-colors"),children:t.icon}),(0,r.jsx)("span",{className:"text-sm font-medium",children:t.label})]},t.href)),(0,r.jsxs)("div",{className:"pt-4 mt-2",children:[(0,r.jsx)("p",{className:"px-4 text-xs font-semibold text-text-muted/60 uppercase tracking-wider mb-2",children:"Debug"}),v&&(0,r.jsxs)(o(),{href:"/dashboard/translator",onClick:e,className:(0,c.cn)("flex items-center gap-3 px-4 py-2 rounded-lg transition-all group",k("/dashboard/translator")?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface/50 hover:text-text-main"),children:[(0,r.jsx)("span",{className:(0,c.cn)("material-symbols-outlined text-[18px]",k("/dashboard/translator")?"fill-1":"group-hover:text-primary transition-colors"),children:"translate"}),(0,r.jsx)("span",{className:"text-sm font-medium",children:"Translator"})]}),p.map(t=>(0,r.jsxs)(o(),{href:t.href,onClick:e,className:(0,c.cn)("flex items-center gap-3 px-4 py-2 rounded-lg transition-all group",k(t.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface/50 hover:text-text-main"),children:[(0,r.jsx)("span",{className:(0,c.cn)("material-symbols-outlined text-[18px]",k(t.href)?"fill-1":"group-hover:text-primary transition-colors"),children:t.icon}),(0,r.jsx)("span",{className:"text-sm font-medium",children:t.label})]},t.href))]}),(0,r.jsxs)("div",{className:"pt-4 mt-2",children:[(0,r.jsx)("p",{className:"px-4 text-xs font-semibold text-text-muted/60 uppercase tracking-wider mb-2",children:"System"}),f.map(t=>(0,r.jsxs)(o(),{href:t.href,onClick:e,className:(0,c.cn)("flex items-center gap-3 px-4 py-2 rounded-lg transition-all group",k(t.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface/50 hover:text-text-main"),children:[(0,r.jsx)("span",{className:(0,c.cn)("material-symbols-outlined text-[18px]",k(t.href)?"fill-1":"group-hover:text-primary transition-colors"),children:t.icon}),(0,r.jsx)("span",{className:"text-sm font-medium",children:t.label})]},t.href))]})]}),(0,r.jsxs)("div",{className:"p-3 border-t border-black/5 dark:border-white/5",children:[(0,r.jsxs)("div",{className:"flex items-start gap-2 p-2 rounded-lg bg-surface/50 mb-2",children:[(0,r.jsx)("div",{className:"flex items-center justify-center size-6 rounded-md bg-blue-500/10 text-blue-500 shrink-0 mt-0.5",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"info"})}),(0,r.jsx)("div",{className:"flex flex-col",children:(0,r.jsx)("span",{className:"text-xs font-medium text-text-main leading-relaxed",children:"Service is running in terminal. You can close this web page. Shutdown will stop the service."})})]}),(0,r.jsx)(x.default,{variant:"outline",fullWidth:!0,icon:"power_settings_new",onClick:()=>l(!0),className:"text-red-500 border-red-200 hover:bg-red-50 hover:border-red-300",children:"Shutdown"})]})]}),(0,r.jsx)(u.ConfirmModal,{isOpen:s,onClose:()=>l(!1),onConfirm:w,title:"Close Proxy",message:"Are you sure you want to close the proxy server?",confirmText:"Close",cancelText:"Cancel",variant:"danger",loading:n}),b&&(0,r.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm",children:(0,r.jsxs)("div",{className:"text-center p-8",children:[(0,r.jsx)("div",{className:"flex items-center justify-center size-16 rounded-full bg-red-500/20 text-red-500 mx-auto mb-4",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:"power_off"})}),(0,r.jsx)("h2",{className:"text-xl font-semibold text-white mb-2",children:"Server Disconnected"}),(0,r.jsx)("p",{className:"text-text-muted mb-6",children:"The proxy server has been stopped."}),(0,r.jsx)(x.default,{variant:"secondary",onClick:()=>globalThis.location.reload(),children:"Reload Page"})]})})]})}b.propTypes={onClose:n().func}},93308:(e,t,s)=>{s.d(t,{CL:()=>l,QC:()=>n,Xn:()=>a,YZ:()=>r});let r=["en","vi","zh-CN","zh-TW","ja","pt-BR","pt-PT","ko","es","de","fr","he","ar","ru","pl","cs","nl","tr","uk","tl","id","th","hi","bn","ur","ro","sv","it","el","hu","fi","da","no"],a="en",l="locale";function n(e){return"zh"===e||"zh-CN"===e?"zh-CN":"en"===e?"en":"vi"===e?"vi":"zh-TW"===e?"zh-TW":"ja"===e?"ja":"pt-BR"===e?"pt-BR":"pt-PT"===e?"pt-PT":"ko"===e?"ko":"es"===e?"es":"de"===e?"de":"fr"===e?"fr":"he"===e?"he":"ar"===e?"ar":"ru"===e?"ru":"pl"===e?"pl":"cs"===e?"cs":"nl"===e?"nl":"tr"===e?"tr":"uk"===e?"uk":"tl"===e?"tl":"id"===e?"id":"th"===e?"th":"hi"===e?"hi":"bn"===e?"bn":"ur"===e?"ur":"ro"===e?"ro":"sv"===e?"sv":"it"===e?"it":"el"===e?"el":"hu"===e?"hu":"fi"===e?"fi":"da"===e?"da":"no"===e?"no":a}},94230:(e,t,s)=>{s.d(t,{default:()=>d});var r=s(95155),a=s(12115),l=s(14051),n=s.n(l),i=s(35497),o=s(11059);function d({isOpen:e,provider:t,onSuccess:s,onClose:l}){let[n,d]=(0,a.useState)("loading"),[c,m]=(0,a.useState)(""),[x,u]=(0,a.useState)(null),[h,p]=(0,a.useState)(""),[f,b]=(0,a.useState)(null),{copied:g,copy:j}=(0,o.C)();(0,a.useEffect)(()=>{e&&t&&(async()=>{try{b(null),d("loading");let e=await fetch(`/api/oauth/kiro/social-authorize?provider=${t}`),s=await e.json();if(!e.ok)throw Error(s.error);u(s),m(s.authUrl),d("input"),window.open(s.authUrl,"_blank")}catch(e){b(e.message),d("error")}})()},[e,t]);let y=async()=>{try{let e;b(null);try{e=new URL(h)}catch(e){throw Error("Invalid callback URL format")}let r=e.searchParams.get("code");e.searchParams.get("state");let a=e.searchParams.get("error");if(a)throw Error(e.searchParams.get("error_description")||a);if(!r)throw Error("No authorization code found in URL");let l=await fetch("/api/oauth/kiro/social-exchange",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:r,codeVerifier:x.codeVerifier,provider:t})}),n=await l.json();if(!l.ok)throw Error(n.error);d("success"),s?.()}catch(e){b(e.message),d("error")}},v="google"===t?"Google":"GitHub";return(0,r.jsx)(i.aF,{isOpen:e,title:`Connect Kiro via ${v}`,onClose:l,size:"lg",children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:["loading"===n&&(0,r.jsxs)("div",{className:"text-center py-6",children:[(0,r.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-primary/10 flex items-center justify-center",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-3xl text-primary animate-spin",children:"progress_activity"})}),(0,r.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Initializing..."}),(0,r.jsxs)("p",{className:"text-sm text-text-muted",children:["Setting up ",v," authentication"]})]}),"input"===n&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 1: Open this URL in your browser"}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.pd,{value:c,readOnly:!0,className:"flex-1 font-mono text-xs"}),(0,r.jsx)(i.$n,{variant:"secondary",icon:"auth_url"===g?"check":"content_copy",onClick:()=>j(c,"auth_url"),children:"Copy"})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 2: Paste the callback URL here"}),(0,r.jsx)("p",{className:"text-xs text-text-muted mb-2",children:"After authorization, copy the full URL from your browser address bar."}),(0,r.jsx)(i.pd,{value:h,onChange:e=>p(e.target.value),placeholder:"kiro://kiro.kiroAgent/authenticate-success?code=...",className:"font-mono text-xs"})]})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:y,fullWidth:!0,disabled:!h,children:"Connect"}),(0,r.jsx)(i.$n,{onClick:l,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),"success"===n&&(0,r.jsxs)("div",{className:"text-center py-6",children:[(0,r.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-3xl text-green-600",children:"check_circle"})}),(0,r.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connected Successfully!"}),(0,r.jsxs)("p",{className:"text-sm text-text-muted mb-4",children:["Your Kiro account via ",v," has been connected."]}),(0,r.jsx)(i.$n,{onClick:l,fullWidth:!0,children:"Done"})]}),"error"===n&&(0,r.jsxs)("div",{className:"text-center py-6",children:[(0,r.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-3xl text-red-600",children:"error"})}),(0,r.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connection Failed"}),(0,r.jsx)("p",{className:"text-sm text-red-600 mb-4",children:f}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:()=>d("input"),variant:"secondary",fullWidth:!0,children:"Try Again"}),(0,r.jsx)(i.$n,{onClick:l,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})]})})}d.propTypes={isOpen:n().bool.isRequired,provider:n().oneOf(["google","github"]).isRequired,onSuccess:n().func,onClose:n().func.isRequired}},95088:(e,t,s)=>{s.d(t,{default:()=>d});var r=s(95155),a=s(12115),l=s(14051),n=s.n(l),i=s(35497);let o="https://gitlab.com";function d({isOpen:e,providerInfo:t,onSuccess:s,onClose:l}){let n,[d,c]=(0,a.useState)(null),[m,x]=(0,a.useState)(o),[u,h]=(0,a.useState)(""),[p,f]=(0,a.useState)(""),[b,g]=(0,a.useState)(""),[j,y]=(0,a.useState)(!1),[v,N]=(0,a.useState)(null),[k,w]=(0,a.useState)(!1),[C,S]=(0,a.useState)(null),T=()=>{c(null),x(o),h(""),f(""),g(""),N(null),y(!1),w(!1),S(null),l()},R=async()=>{if(!b.trim())return void N("Personal Access Token is required");y(!0),N(null);try{let e=await fetch("/api/oauth/gitlab/pat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:b.trim(),baseUrl:m.trim()||o})}),t=await e.json();if(!e.ok)throw Error(t.error||"Authentication failed");s?.(),T()}catch(e){N(e.message)}finally{y(!1)}};return e?k&&C?(0,r.jsx)(i.LF,{isOpen:!0,provider:"gitlab",providerInfo:t,oauthMeta:C,onSuccess:()=>{s?.(),T()},onClose:()=>{w(!1),S(null)}}):(0,r.jsx)(i.aF,{isOpen:e,title:"Connect GitLab Duo",onClose:T,size:"lg",children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[!d&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("p",{className:"text-sm text-text-muted",children:"Choose how to authenticate with GitLab Duo:"}),(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,r.jsxs)("button",{onClick:()=>c("oauth"),className:"flex flex-col items-center gap-2 p-4 rounded-lg border border-border hover:border-primary hover:bg-primary/5 transition-colors text-left",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-2xl text-primary",children:"lock_open"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-medium",children:"OAuth App"}),(0,r.jsx)("p",{className:"text-xs text-text-muted",children:"Use a GitLab OAuth application"})]})]}),(0,r.jsxs)("button",{onClick:()=>c("pat"),className:"flex flex-col items-center gap-2 p-4 rounded-lg border border-border hover:border-primary hover:bg-primary/5 transition-colors text-left",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-2xl text-primary",children:"key"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-medium",children:"Personal Access Token"}),(0,r.jsx)("p",{className:"text-xs text-text-muted",children:"Use a GitLab PAT with api scope"})]})]})]})]}),"oauth"===d&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("p",{className:"text-xs text-text-muted",children:["Create an OAuth app at"," ",(0,r.jsx)("a",{href:`${m.trim()||o}/-/profile/applications`,target:"_blank",rel:"noreferrer",className:"text-primary underline",children:"GitLab Applications"})," ","with redirect URI"," ",(0,r.jsx)("code",{className:"bg-sidebar px-1 rounded text-xs",children:(n=window.location.port||("https:"===window.location.protocol?"443":"80"),`http://localhost:${n}/callback`)})]}),(0,r.jsx)(i.pd,{label:"GitLab Base URL",value:m,onChange:e=>x(e.target.value),placeholder:o}),(0,r.jsx)(i.pd,{label:"Client ID",value:u,onChange:e=>h(e.target.value),placeholder:"Your OAuth application client ID"}),(0,r.jsx)(i.pd,{label:"Client Secret (optional for PKCE)",value:p,onChange:e=>f(e.target.value),placeholder:"Leave empty for public PKCE app"}),v&&(0,r.jsx)("p",{className:"text-sm text-red-500",children:v}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:()=>{u.trim()?(N(null),S({baseUrl:m.trim()||o,clientId:u.trim(),clientSecret:p.trim()}),w(!0)):N("Client ID is required")},fullWidth:!0,disabled:!u.trim(),children:"Authorize"}),(0,r.jsx)(i.$n,{onClick:()=>{c(null),N(null)},variant:"ghost",fullWidth:!0,children:"Back"})]})]}),"pat"===d&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("p",{className:"text-xs text-text-muted",children:["Create a PAT at"," ",(0,r.jsx)("a",{href:`${m.trim()||o}/-/user_settings/personal_access_tokens`,target:"_blank",rel:"noreferrer",className:"text-primary underline",children:"GitLab Access Tokens"})," ","with scopes: ",(0,r.jsx)("code",{className:"bg-sidebar px-1 rounded text-xs",children:"api"}),","," ",(0,r.jsx)("code",{className:"bg-sidebar px-1 rounded text-xs",children:"read_user"}),", and"," ",(0,r.jsx)("code",{className:"bg-sidebar px-1 rounded text-xs",children:"ai_features"}),"."]}),(0,r.jsx)(i.pd,{label:"GitLab Base URL",value:m,onChange:e=>x(e.target.value),placeholder:o}),(0,r.jsx)(i.pd,{label:"Personal Access Token",value:b,onChange:e=>g(e.target.value),placeholder:"glpat-xxxxxxxxxxxxxxxxxxxx",type:"password"}),v&&(0,r.jsx)("p",{className:"text-sm text-red-500",children:v}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:R,fullWidth:!0,disabled:!b.trim()||j,loading:j,children:"Connect"}),(0,r.jsx)(i.$n,{onClick:()=>{c(null),N(null)},variant:"ghost",fullWidth:!0,children:"Back"})]})]})]})}):null}d.propTypes={isOpen:n().bool.isRequired,providerInfo:n().shape({name:n().string}),onSuccess:n().func,onClose:n().func.isRequired}},97677:(e,t,s)=>{s.d(t,{default:()=>a});var r=s(95155);function a({text:e,children:t,position:s="top"}){return(0,r.jsxs)("div",{className:"relative inline-flex group",children:[t,(0,r.jsx)("div",{className:`pointer-events-none absolute ${{top:"bottom-full left-1/2 -translate-x-1/2 mb-1.5",bottom:"top-full left-1/2 -translate-x-1/2 mt-1.5",left:"right-full top-1/2 -translate-y-1/2 mr-1.5",right:"left-full top-1/2 -translate-y-1/2 ml-1.5"}[s]} z-50 w-max max-w-56 rounded px-2 py-1 text-[11px] leading-snug bg-gray-900 text-white opacity-0 group-hover:opacity-100 transition-opacity duration-150 whitespace-normal`,children:e})]})}},98542:(e,t,s)=>{s.d(t,{default:()=>l});var r=s(95155),a=s(31474);function l({checked:e=!1,onChange:t,label:s,description:l,disabled:n=!1,size:i="md",className:o}){let d={sm:{track:"w-8 h-4",thumb:"size-3",translate:"translate-x-4"},md:{track:"w-11 h-6",thumb:"size-5",translate:"translate-x-5"},lg:{track:"w-14 h-7",thumb:"size-6",translate:"translate-x-7"}};return(0,r.jsxs)("div",{className:(0,a.cn)("flex items-center gap-3",n&&"opacity-50 cursor-not-allowed",o),children:[(0,r.jsx)("button",{type:"button",role:"switch","aria-checked":e,disabled:n,onClick:()=>{!n&&t&&t(!e)},className:(0,a.cn)("relative inline-flex shrink-0 cursor-pointer rounded-full","transition-colors duration-200 ease-in-out","focus:outline-none focus:ring-1 focus:ring-primary/30",e?"bg-primary":"bg-black/10 dark:bg-white/20",d[i].track,n&&"cursor-not-allowed"),children:(0,r.jsx)("span",{className:(0,a.cn)("pointer-events-none inline-block rounded-full bg-white shadow-sm","transform transition duration-200 ease-in-out",e?d[i].translate:"translate-x-0.5",d[i].thumb,"mt-0.5")})}),(s||l)&&(0,r.jsxs)("div",{className:"flex flex-col",children:[s&&(0,r.jsx)("span",{className:"text-sm font-medium text-text-main",children:s}),l&&(0,r.jsx)("span",{className:"text-xs text-text-muted",children:l})]})]})}}}]);
7
+ `,children:s?(0,r.jsxs)("span",{className:"flex items-center gap-1",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[11px]",children:"edit"}),e.name]}):e.isCustom?(0,r.jsxs)("span",{className:"flex items-center gap-1",children:[e.name,(0,r.jsx)("span",{className:"text-[9px] opacity-60 font-normal",children:"custom"})]}):e.name},e.id)})})]},e)),0===Object.keys(w).length&&0===k.length&&(0,r.jsxs)("div",{className:"text-center py-4 text-text-muted",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-2xl mb-1 block",children:"search_off"}),(0,r.jsx)("p",{className:"text-xs",children:"No models found"})]})]})]})}m.propTypes={isOpen:n().bool.isRequired,onClose:n().func.isRequired,onSelect:n().func.isRequired,selectedModel:n().string,activeProviders:n().arrayOf(n().shape({provider:n().string.isRequired})),title:n().string,modelAliases:n().object}},73006:(e,t,s)=>{s.d(t,{FE:()=>x,Tl:()=>d,wn:()=>u});var r=s(93308);let a={},l=r.Xn,n=[];function i(){if("u"<typeof document)return r.Xn;let e=document.cookie.split(";").find(e=>e.trim().startsWith(`${r.CL}=`)),t=e?decodeURIComponent(e.split("=")[1]):r.Xn;return(0,r.QC)(t)}async function o(e){if("en"===e){a={};return}try{let t=await fetch(`/i18n/literals/${e}.json`);a=await t.json()}catch(e){console.error("Failed to load translations:",e),a={}}}function d(e){if(!e||"string"!=typeof e)return e;let t=e.trim();return t&&"en"!==l&&a[t]||e}function c(e){if(!e.nodeValue||!e.nodeValue.trim())return;let t=e.parentElement;if(!t)return;let s=t;for(;s;){if(s.hasAttribute&&s.hasAttribute("data-i18n-skip"))return;s=s.parentElement}if(["script","style","code","pre","colgroup","table","thead","tbody","tfoot","tr","select","datalist","optgroup"].includes(t.tagName?.toLowerCase()))return;e._originalText||(e._originalText=e.nodeValue);let r=d(e._originalText);r!==e.nodeValue&&(e.nodeValue=r)}function m(e){let t;if(!e)return;let s=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null,!1),r=[];for(;t=s.nextNode();)r.push(t);r.forEach(c)}async function x(){l=i(),await o(l),m(document.body),new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{e.nodeType===Node.ELEMENT_NODE?m(e):e.nodeType===Node.TEXT_NODE&&c(e)})})}).observe(document.body,{childList:!0,subtree:!0})}async function u(){l=i(),await o(l),n.forEach(e=>e()),m(document.body)}},74891:(e,t,s)=>{s.d(t,{default:()=>p});var r=s(95155),a=s(73321),l=s(12115),n=s(98500),i=s.n(n),o=s(14051),d=s.n(o),c=s(57250),m=s(35497),x=s(36548),u=s(90620),h=s(73006);function p({onMenuClick:e,showMenuButton:t=!0}){let s=(0,a.usePathname)(),n=(0,a.useRouter)(),{title:o,description:d,breadcrumbs:p}=(0,l.useMemo)(()=>(e=>{if(!e)return{title:"",description:"",breadcrumbs:[]};let t=e.match(/\/providers\/([^/]+)$/);if(t){let e=t[1],s=u.zN[e]||u.fg[e];if(s)return{title:s.name,description:"",breadcrumbs:[{label:"Providers",href:"/dashboard/providers"},{label:s.name,image:`/providers/${s.id}.png`}]}}return e.includes("/providers")?{title:"Providers",description:"Manage your AI provider connections",breadcrumbs:[]}:e.includes("/combos")?{title:"Combos",description:"Model combos with fallback",breadcrumbs:[]}:e.includes("/usage")?{title:"Usage & Analytics",description:"Monitor your API usage, token consumption, and request logs",breadcrumbs:[]}:e.includes("/mitm")?{title:"MITM Proxy",description:"Intercept CLI tool traffic and route through 9Router",breadcrumbs:[]}:e.includes("/cli-tools")?{title:"CLI Tools",description:"Configure CLI tools",breadcrumbs:[]}:e.includes("/endpoint")?{title:"Endpoint",description:"API endpoint configuration",breadcrumbs:[]}:e.includes("/profile")?{title:"Settings",description:"Manage your preferences",breadcrumbs:[]}:e.includes("/translator")?{title:"Translator",description:"Debug translation flow between formats",breadcrumbs:[]}:e.includes("/console-log")?{title:"Console Log",description:"Live server console output",breadcrumbs:[]}:"/dashboard"===e?{title:"Endpoint",description:"API endpoint configuration",breadcrumbs:[]}:{title:"",description:"",breadcrumbs:[]}})(s),[s]),f=async()=>{try{(await fetch("/api/auth/logout",{method:"POST"})).ok&&(n.push("/login"),n.refresh())}catch(e){console.error("Failed to logout:",e)}};return(0,r.jsxs)("header",{className:"flex items-center justify-between px-8 py-5 border-b border-black/5 dark:border-white/5 bg-bg/80 backdrop-blur-xl z-10 sticky top-0",children:[(0,r.jsx)("div",{className:"flex items-center gap-3 lg:hidden",children:t&&(0,r.jsx)("button",{onClick:e,className:"text-text-main hover:text-primary transition-colors",children:(0,r.jsx)("span",{className:"material-symbols-outlined",children:"menu"})})}),(0,r.jsx)("div",{className:"hidden lg:flex flex-col",children:p.length>0?(0,r.jsx)("div",{className:"flex items-center gap-2",children:p.map((e,t)=>(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[t>0&&(0,r.jsx)("span",{className:"material-symbols-outlined text-text-muted text-base",children:"chevron_right"}),e.href?(0,r.jsx)(i(),{href:e.href,className:"text-text-muted hover:text-primary transition-colors",children:e.label}):(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[e.image&&(0,r.jsx)(c.A,{src:e.image,alt:e.label,size:28,className:"object-contain rounded max-w-[28px] max-h-[28px]",fallbackText:e.label.slice(0,2).toUpperCase()}),(0,r.jsx)("h1",{className:"text-2xl font-semibold text-text-main tracking-tight",children:(0,h.Tl)(e.label)})]})]},`${e.label}-${e.href||"current"}`))}):o?(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{className:"text-2xl font-semibold text-text-main tracking-tight",children:(0,h.Tl)(o)}),d&&(0,r.jsx)("p",{className:"text-sm text-text-muted",children:(0,h.Tl)(d)})]}):null}),(0,r.jsxs)("div",{className:"flex items-center gap-3 ml-auto",children:[(0,r.jsx)(x.default,{}),(0,r.jsx)(m.c5,{}),(0,r.jsx)(m.UW,{}),(0,r.jsx)("button",{onClick:f,className:"flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-red-500 hover:bg-red-500/10 transition-all",title:"Logout",children:(0,r.jsx)("span",{className:"material-symbols-outlined",children:"logout"})})]})]})}p.propTypes={onMenuClick:d().func,showMenuButton:d().bool}},81127:(e,t,s)=>{s.d(t,{ConfirmModal:()=>o,default:()=>i});var r=s(95155),a=s(12115),l=s(31474),n=s(92542);function i({isOpen:e,onClose:t,title:s,children:n,footer:i,size:o="md",closeOnOverlay:d=!0,showCloseButton:c=!0,className:m}){return((0,a.useEffect)(()=>(e?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[e]),(0,a.useEffect)(()=>{let s=s=>{"Escape"===s.key&&e&&t()};return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[e,t]),e)?(0,r.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[(0,r.jsx)("div",{className:"absolute inset-0 bg-black/30 backdrop-blur-sm",onClick:d?t:void 0}),(0,r.jsxs)("div",{className:(0,l.cn)("relative w-full bg-surface","border border-black/10 dark:border-white/10","rounded-xl shadow-2xl","animate-in fade-in zoom-in-95 duration-200",{sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-xl",full:"max-w-4xl"}[o],m),children:[(s||c)&&(0,r.jsxs)("div",{className:"flex items-center justify-between p-6 border-b border-black/5 dark:border-white/5",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 mr-4",children:[(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FF5F56]"}),(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FFBD2E]"}),(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#27C93F]"})]}),s&&(0,r.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:s})]}),c&&(0,r.jsx)("button",{onClick:t,className:"p-1.5 rounded-lg text-text-muted hover:bg-black/5 dark:hover:bg-white/5 transition-colors",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,r.jsx)("div",{className:"p-6 max-h-[calc(80vh-140px)] overflow-y-auto",children:n}),i&&(0,r.jsx)("div",{className:"flex items-center justify-end gap-3 p-6 border-t border-black/5 dark:border-white/5",children:i})]})]}):null}function o({isOpen:e,onClose:t,onConfirm:s,title:a="Confirm",message:l,confirmText:o="Confirm",cancelText:d="Cancel",variant:c="danger",loading:m=!1}){return(0,r.jsx)(i,{isOpen:e,onClose:t,title:a,size:"sm",footer:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.default,{variant:"ghost",onClick:t,disabled:m,children:d}),(0,r.jsx)(n.default,{variant:c,onClick:s,loading:m,children:o})]}),children:(0,r.jsx)("p",{className:"text-text-muted",children:l})})}},84588:(e,t,s)=>{s.d(t,{default:()=>l});var r=s(95155),a=s(31474);function l({children:e,title:t,subtitle:s,icon:l,action:n,padding:i="md",hover:o=!1,className:d,...c}){return(0,r.jsxs)("div",{className:(0,a.cn)("bg-surface","border border-black/5 dark:border-white/5","rounded-lg shadow-sm",o&&"hover:shadow-md hover:border-primary/30 transition-all cursor-pointer",{none:"",xs:"p-3",sm:"p-4",md:"p-6",lg:"p-8"}[i],d),...c,children:[(t||n)&&(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[l&&(0,r.jsx)("div",{className:"p-2 rounded-lg bg-bg text-text-muted",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:l})}),(0,r.jsxs)("div",{children:[t&&(0,r.jsx)("h3",{className:"text-text-main font-semibold",children:t}),s&&(0,r.jsx)("p",{className:"text-sm text-text-muted",children:s})]})]}),n]}),e]})}l.Section=function({children:e,className:t,...s}){return(0,r.jsx)("div",{className:(0,a.cn)("p-4 rounded-lg","bg-black/[0.02] dark:bg-white/[0.02]","border border-black/5 dark:border-white/5",t),...s,children:e})},l.Row=function({children:e,className:t,...s}){return(0,r.jsx)("div",{className:(0,a.cn)("p-3 -mx-3 px-3 transition-colors","border-b border-black/5 dark:border-white/5 last:border-b-0","hover:bg-black/[0.02] dark:hover:bg-white/[0.02]",t),...s,children:e})},l.ListItem=function({children:e,actions:t,className:s,...l}){return(0,r.jsxs)("div",{className:(0,a.cn)("group flex items-center justify-between p-3 -mx-3 px-3","border-b border-black/[0.03] dark:border-white/[0.03] last:border-b-0","hover:bg-black/[0.02] dark:hover:bg-white/[0.02]","transition-colors",s),...l,children:[(0,r.jsx)("div",{className:"flex-1 min-w-0",children:e}),t&&(0,r.jsx)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:t})]})}},90085:(e,t,s)=>{s.d(t,{A:()=>i});var r=s(1934),a=s(31692),l=s(90620);function n(e){let t=document.documentElement,s=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";"dark"===("system"===e?s:e)?t.classList.add("dark"):t.classList.remove("dark")}let i=(0,r.v)((0,a.Zr)((e,t)=>({theme:l.B2.defaultTheme,setTheme:t=>{e({theme:t}),n(t)},toggleTheme:()=>{let s="dark"===t().theme?"light":"dark";e({theme:s}),n(s)},initTheme:()=>{n(t().theme)}}),{name:l.B2.storageKey}))},90620:(e,t,s)=>{s.d(t,{Q2:()=>r.Q2,fg:()=>r.fg,vQ:()=>a,MA:()=>r.MA,UY:()=>n,zN:()=>r.zN,B2:()=>l});var r=s(52679);s(28777);let a={name:"Endpoint Proxy",description:"AI Infrastructure Management",version:"0.3.66"},l={storageKey:"theme",defaultTheme:"system"},n={maxLines:200,pollIntervalMs:1e3}},90882:(e,t,s)=>{s.d(t,{default:()=>d});var r=s(95155),a=s(12115),l=s(14051),n=s.n(l),i=s(35497),o=s(11059);function d({isOpen:e,provider:t,providerInfo:s,onSuccess:l,onClose:n,oauthMeta:d}){let[c,m]=(0,a.useState)("waiting"),[x,u]=(0,a.useState)(null),[h,p]=(0,a.useState)(""),[f,b]=(0,a.useState)(null),[g,j]=(0,a.useState)(!1),[y,v]=(0,a.useState)(null),[N,k]=(0,a.useState)(!1),w=(0,a.useRef)(null),C=(0,a.useRef)(!1),{copied:S,copy:T}=(0,o.C)(),[R,$]=(0,a.useState)(!1),[E,M]=(0,a.useState)("/callback?code=..."),L=(0,a.useRef)(!1);(0,a.useEffect)(()=>{$("localhost"===window.location.hostname||"127.0.0.1"===window.location.hostname),M(`${window.location.origin}/callback?code=...`)},[]);let O=(0,a.useCallback)(async(e,s)=>{if(x)try{let r=await fetch(`/api/oauth/${t}/exchange`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:e,redirectUri:x.redirectUri,codeVerifier:x.codeVerifier,state:s,...d?{meta:d}:{}})}),a=await r.json();if(!r.ok)throw Error(a.error);m("success"),l?.()}catch(e){b(e.message),m("error")}},[x,t,l]),I=(0,a.useCallback)(async(e,s,r,a)=>{C.current=!1,k(!0);for(let n=0;n<60;n++){if(C.current){console.log("[OAuthModal] Polling aborted"),k(!1);return}if(await new Promise(e=>setTimeout(e,1e3*r)),C.current){console.log("[OAuthModal] Polling aborted after sleep"),k(!1);return}try{let n=await fetch(`/api/oauth/${t}/poll`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({deviceCode:e,codeVerifier:s,extraData:a})}),i=await n.json();if(i.success){C.current=!0,m("success"),k(!1),l?.();return}if("expired_token"===i.error||"access_denied"===i.error)throw Error(i.errorDescription||i.error);"slow_down"===i.error&&(r=Math.min(r+5,30))}catch(e){b(e.message),m("error"),k(!1);return}}b("Authorization timeout"),m("error"),k(!1)},[t,l]),P=(0,a.useCallback)(async()=>{if(t)try{let e;if(b(null),["github","qwen","kiro","kimi-coding","kilocode","codebuddy"].includes(t)){j(!0),m("waiting");let e=await fetch(`/api/oauth/${t}/device-code`),s=await e.json();if(!e.ok)throw Error(s.error);v(s);let r=s.verification_uri_complete||s.verification_uri;r&&window.open(r,"_blank");let a="kiro"===t?{_clientId:s._clientId,_clientSecret:s._clientSecret}:null;I(s.device_code,s.codeVerifier,s.interval||5,a);return}if("codex"===t)e="http://localhost:1455/auth/callback";else{let t=window.location.port||("https:"===window.location.protocol?"443":"80");e=`http://localhost:${t}/callback`}let s=new URL(`/api/oauth/${t}/authorize`,window.location.origin);s.searchParams.set("redirect_uri",e),d&&Object.entries(d).forEach(([e,t])=>{t&&s.searchParams.set(e,t)});let r=await fetch(s.toString()),a=await r.json();if(!r.ok)throw Error(a.error);u({...a,redirectUri:e}),"codex"!==t&&R?(m("waiting"),w.current=window.open(a.authUrl,"oauth_popup","width=600,height=700"),w.current||m("input")):(m("input"),window.open(a.authUrl,"_blank"))}catch(e){b(e.message),m("error")}},[t,R,I]);(0,a.useEffect)(()=>{e&&t?(u(null),p(""),b(null),j(!1),v(null),k(!1),C.current=!1,P()):e||(C.current=!0)},[e,t,P]),(0,a.useEffect)(()=>{let e;if(!x)return;L.current=!1;let t=async e=>{if(L.current)return;let{code:t,state:s,error:r,errorDescription:a}=e;if(r){L.current=!0,b(a||r),m("error");return}t&&(L.current=!0,await O(t,s))},s=e=>{let s=e.origin.includes("localhost")||e.origin.includes("127.0.0.1"),r=e.origin===window.location.origin;(s||r)&&e.data?.type==="oauth_callback"&&t(e.data.data)};window.addEventListener("message",s);try{(e=new BroadcastChannel("oauth_callback")).onmessage=e=>t(e.data)}catch(e){console.log("BroadcastChannel not supported")}let r=e=>{if("oauth_callback"===e.key&&e.newValue)try{let s=JSON.parse(e.newValue);t(s),localStorage.removeItem("oauth_callback")}catch(e){console.log("Failed to parse localStorage data")}};window.addEventListener("storage",r);try{let e=localStorage.getItem("oauth_callback");if(e){let s=JSON.parse(e);s.timestamp&&Date.now()-s.timestamp<3e4&&t(s),localStorage.removeItem("oauth_callback")}}catch{}return()=>{window.removeEventListener("message",s),window.removeEventListener("storage",r),e&&e.close()}},[x,O]);let z=async()=>{try{b(null);let e=new URL(h),t=e.searchParams.get("code"),s=e.searchParams.get("state"),r=e.searchParams.get("error");if(r)throw Error(e.searchParams.get("error_description")||r);if(!t)throw Error("No authorization code found in URL");await O(t,s)}catch(e){b(e.message),m("error")}},_=(0,a.useCallback)(()=>{n()},[n]);return t&&s?(0,r.jsx)(i.aF,{isOpen:e,title:`Connect ${s.name}`,onClose:_,size:"lg",children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:["waiting"===c&&!g&&(0,r.jsxs)("div",{className:"text-center py-6",children:[(0,r.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-primary/10 flex items-center justify-center",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-3xl text-primary animate-spin",children:"progress_activity"})}),(0,r.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Waiting for Authorization"}),(0,r.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Complete the authorization in the popup window."}),(0,r.jsx)(i.$n,{variant:"ghost",onClick:()=>m("input"),children:"Popup blocked? Enter URL manually"})]}),"waiting"===c&&g&&y&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"text-center py-4",children:[(0,r.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Visit the URL below and enter the code:"}),(0,r.jsxs)("div",{className:"bg-sidebar p-4 rounded-lg mb-4",children:[(0,r.jsx)("p",{className:"text-xs text-text-muted mb-1",children:"Verification URL"}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("code",{className:"flex-1 text-sm break-all",children:y.verification_uri}),(0,r.jsx)(i.$n,{size:"sm",variant:"ghost",icon:"verify_url"===S?"check":"content_copy",onClick:()=>T(y.verification_uri,"verify_url")})]})]}),(0,r.jsxs)("div",{className:"bg-primary/10 p-4 rounded-lg",children:[(0,r.jsx)("p",{className:"text-xs text-text-muted mb-1",children:"Your Code"}),(0,r.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,r.jsx)("p",{className:"text-2xl font-mono font-bold text-primary",children:y.user_code}),(0,r.jsx)(i.$n,{size:"sm",variant:"ghost",icon:"user_code"===S?"check":"content_copy",onClick:()=>T(y.user_code,"user_code")})]})]})]}),N&&(0,r.jsxs)("div",{className:"flex items-center justify-center gap-2 text-sm text-text-muted",children:[(0,r.jsx)("span",{className:"material-symbols-outlined animate-spin",children:"progress_activity"}),"Waiting for authorization..."]})]}),"input"===c&&!g&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 1: Open this URL in your browser"}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.pd,{value:x?.authUrl||"",readOnly:!0,className:"flex-1 font-mono text-xs"}),(0,r.jsx)(i.$n,{variant:"secondary",icon:"auth_url"===S?"check":"content_copy",onClick:()=>T(x?.authUrl,"auth_url"),children:"Copy"})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 2: Paste the callback URL here"}),(0,r.jsx)("p",{className:"text-xs text-text-muted mb-2",children:"After authorization, copy the full URL from your browser."}),(0,r.jsx)(i.pd,{value:h,onChange:e=>p(e.target.value),placeholder:E,className:"font-mono text-xs"})]})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:z,fullWidth:!0,disabled:!h,children:"Connect"}),(0,r.jsx)(i.$n,{onClick:_,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),"success"===c&&(0,r.jsxs)("div",{className:"text-center py-6",children:[(0,r.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-3xl text-green-600",children:"check_circle"})}),(0,r.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connected Successfully!"}),(0,r.jsxs)("p",{className:"text-sm text-text-muted mb-4",children:["Your ",s.name," account has been connected."]}),(0,r.jsx)(i.$n,{onClick:_,fullWidth:!0,children:"Done"})]}),"error"===c&&(0,r.jsxs)("div",{className:"text-center py-6",children:[(0,r.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-3xl text-red-600",children:"error"})}),(0,r.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connection Failed"}),(0,r.jsx)("p",{className:"text-sm text-red-600 mb-4",children:f}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:P,variant:"secondary",fullWidth:!0,children:"Try Again"}),(0,r.jsx)(i.$n,{onClick:_,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})]})}):null}d.propTypes={isOpen:n().bool.isRequired,provider:n().string,providerInfo:n().shape({name:n().string}),onSuccess:n().func,onClose:n().func.isRequired,oauthMeta:n().object}},91450:(e,t,s)=>{s.d(t,{default:()=>i});var r=s(95155),a=s(14051),l=s.n(a),n=s(38587);function i({children:e}){return(0,r.jsxs)("div",{className:"min-h-screen flex flex-col relative bg-bg transition-colors duration-500 overflow-x-hidden selection:bg-primary/20 selection:text-primary",children:[(0,r.jsx)("div",{className:"fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[800px] h-[800px] bg-primary/5 dark:bg-primary/5 rounded-full blur-[100px] pointer-events-none z-0"}),(0,r.jsx)("div",{className:"fixed bottom-0 right-0 w-[600px] h-[600px] bg-orange-200/20 dark:bg-orange-900/10 rounded-full blur-[120px] pointer-events-none z-0 translate-y-1/3 translate-x-1/3"}),(0,r.jsx)("div",{className:"absolute top-6 right-6 z-20",children:(0,r.jsx)(n.default,{variant:"card"})}),(0,r.jsx)("main",{className:"flex-1 flex flex-col items-center justify-center p-4 sm:p-6 z-10 w-full h-full",children:e})]})}i.propTypes={children:l().node.isRequired}},92173:(e,t,s)=>{s.d(t,{default:()=>c});var r=s(95155),a=s(98500),l=s.n(a),n=s(90620);let i=[{label:"Features",href:"#features"},{label:"Pricing",href:"#pricing"},{label:"Changelog",href:"#"}],o=[{label:"Documentation",href:"#"},{label:"API Reference",href:"#"},{label:"Help Center",href:"#"}],d=[{label:"About",href:"#"},{label:"Blog",href:"#"},{label:"Contact",href:"#"}];function c(){return(0,r.jsx)("footer",{className:"bg-bg border-t border-border pt-16 pb-12",children:(0,r.jsxs)("div",{className:"container mx-auto px-4 sm:px-6 lg:px-8",children:[(0,r.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-5 gap-10 mb-12",children:[(0,r.jsxs)("div",{className:"col-span-2 lg:col-span-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-6",children:[(0,r.jsx)("div",{className:"size-6 text-primary",children:(0,r.jsx)("svg",{className:"w-full h-full",fill:"currentColor",viewBox:"0 0 48 48",children:(0,r.jsx)("path",{clipRule:"evenodd",d:"M12.0799 24L4 19.2479L9.95537 8.75216L18.04 13.4961L18.0446 4H29.9554L29.96 13.4961L38.0446 8.75216L44 19.2479L35.92 24L44 28.7521L38.0446 39.2479L29.96 34.5039L29.9554 44H18.0446L18.04 34.5039L9.95537 39.2479L4 28.7521L12.0799 24Z",fillRule:"evenodd"})})}),(0,r.jsx)("span",{className:"text-xl font-bold text-text-main",children:n.vQ.name})]}),(0,r.jsx)("p",{className:"text-text-muted mb-6 max-w-sm font-light",children:"The unified interface for modern AI infrastructure. Secure, observable, and scalable."}),(0,r.jsxs)("div",{className:"flex gap-4",children:[(0,r.jsx)("a",{href:"#",className:"text-gray-400 hover:text-primary transition-colors","aria-label":"Twitter",children:(0,r.jsx)("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{d:"M22.46 6c-.77.35-1.6.58-2.46.69.88-.53 1.56-1.37 1.88-2.38-.83.5-1.75.85-2.72 1.05C18.37 4.5 17.26 4 16 4c-2.35 0-4.27 1.92-4.27 4.29 0 .34.04.67.11.98C8.28 9.09 5.11 7.38 3 4.79c-.37.63-.58 1.37-.58 2.15 0 1.49.75 2.81 1.91 3.56-.71 0-1.37-.2-1.95-.5v.03c0 2.08 1.48 3.82 3.44 4.21a4.22 4.22 0 0 1-1.93.07 4.28 4.28 0 0 0 4 2.98 8.521 8.521 0 0 1-5.33 1.84c-.34 0-.68-.02-1.02-.06C3.44 20.29 5.7 21 8.12 21 16 21 20.33 14.46 20.33 8.79c0-.19 0-.37-.01-.56.84-.6 1.56-1.36 2.14-2.23z"})})}),(0,r.jsx)("a",{href:"#",className:"text-gray-400 hover:text-primary transition-colors","aria-label":"GitHub",children:(0,r.jsx)("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{d:"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0 0 22 12.017C22 6.484 17.522 2 12 2z"})})})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h4",{className:"font-semibold text-text-main mb-4",children:"Product"}),(0,r.jsx)("ul",{className:"flex flex-col gap-3 text-sm text-text-muted font-light",children:i.map(e=>(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:e.href,className:"hover:text-primary transition-colors",children:e.label})},e.label))})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h4",{className:"font-semibold text-text-main mb-4",children:"Resources"}),(0,r.jsx)("ul",{className:"flex flex-col gap-3 text-sm text-text-muted font-light",children:o.map(e=>(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:e.href,className:"hover:text-primary transition-colors",children:e.label})},e.label))})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h4",{className:"font-semibold text-text-main mb-4",children:"Company"}),(0,r.jsx)("ul",{className:"flex flex-col gap-3 text-sm text-text-muted font-light",children:d.map(e=>(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:e.href,className:"hover:text-primary transition-colors",children:e.label})},e.label))})]})]}),(0,r.jsxs)("div",{className:"border-t border-border pt-8 flex flex-col md:flex-row justify-between items-center gap-4",children:[(0,r.jsxs)("p",{className:"text-sm text-text-muted",children:["\xa9 ",new Date().getFullYear()," ",n.vQ.name," Inc. All rights reserved."]}),(0,r.jsxs)("div",{className:"flex gap-6 text-sm text-text-muted",children:[(0,r.jsx)(l(),{href:"#",className:"hover:text-primary transition-colors",children:"Privacy Policy"}),(0,r.jsx)(l(),{href:"#",className:"hover:text-primary transition-colors",children:"Terms of Service"})]})]})]})})}},92542:(e,t,s)=>{s.d(t,{default:()=>i});var r=s(95155),a=s(31474);let l={primary:"bg-gradient-to-b from-primary to-primary-hover text-white shadow-sm",secondary:"bg-white dark:bg-white/10 border border-black/10 dark:border-white/10 text-text-main hover:bg-black/5 dark:hover:bg-white/5",outline:"border border-black/15 dark:border-white/15 text-text-main hover:bg-black/5",ghost:"text-text-muted hover:bg-black/5 dark:hover:bg-white/5 hover:text-text-main",danger:"bg-red-500 text-white hover:bg-red-600 shadow-sm"},n={sm:"h-7 px-3 text-xs rounded-md",md:"h-9 px-4 text-sm rounded-lg",lg:"h-11 px-6 text-sm rounded-lg"};function i({children:e,variant:t="primary",size:s="md",icon:i,iconRight:o,disabled:d=!1,loading:c=!1,fullWidth:m=!1,className:x,...u}){return(0,r.jsxs)("button",{className:(0,a.cn)("inline-flex items-center justify-center gap-2 font-medium transition-all duration-200 cursor-pointer","active:scale-[0.99] disabled:opacity-50 disabled:cursor-not-allowed disabled:active:scale-100",l[t],n[s],m&&"w-full",x),disabled:d||c,...u,children:[c?(0,r.jsx)("span",{className:"material-symbols-outlined animate-spin text-[18px]",children:"progress_activity"}):i?(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:i}):null,e,o&&!c&&(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:o})]})}},92622:(e,t,s)=>{s.d(t,{default:()=>b});var r=s(95155),a=s(12115),l=s(14051),n=s.n(l),i=s(98500),o=s.n(i),d=s(73321),c=s(31474),m=s(90620),x=s(92542),u=s(81127);let h=[{href:"/dashboard/endpoint",label:"Endpoint",icon:"api"},{href:"/dashboard/providers",label:"Providers",icon:"dns"},{href:"/dashboard/combos",label:"Combos",icon:"layers"},{href:"/dashboard/usage",label:"Usage",icon:"bar_chart"},{href:"/dashboard/quota",label:"Quota Tracker",icon:"data_usage"},{href:"/dashboard/mitm",label:"MITM",icon:"security"},{href:"/dashboard/cli-tools",label:"CLI Tools",icon:"terminal"}],p=[{href:"/dashboard/console-log",label:"Console Log",icon:"terminal"}],f=[{href:"/dashboard/proxy-pools",label:"Proxy Pools",icon:"lan"},{href:"/dashboard/profile",label:"Settings",icon:"settings"}];function b({onClose:e}){let t=(0,d.usePathname)(),[s,l]=(0,a.useState)(!1),[n,i]=(0,a.useState)(!1),[b,g]=(0,a.useState)(!1),[j,y]=(0,a.useState)(null),[v,N]=(0,a.useState)(!1);(0,a.useEffect)(()=>{fetch("/api/settings").then(e=>e.json()).then(e=>{e.enableTranslator&&N(!0)}).catch(()=>{})},[]),(0,a.useEffect)(()=>{fetch("/api/version").then(e=>e.json()).then(e=>{e.hasUpdate&&y(e)}).catch(()=>{})},[]);let k=e=>"/dashboard/endpoint"===e?"/dashboard"===t||t.startsWith("/dashboard/endpoint"):t.startsWith(e),w=async()=>{i(!0);try{await fetch("/api/shutdown",{method:"POST"})}catch(e){}i(!1),l(!1),g(!0)};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("aside",{className:"flex w-72 flex-col border-r border-black/5 dark:border-white/5 bg-vibrancy backdrop-blur-xl transition-colors duration-300 min-h-full",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-6 pt-5 pb-2",children:[(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FF5F56]"}),(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FFBD2E]"}),(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#27C93F]"})]}),(0,r.jsxs)("div",{className:"px-6 py-4 flex flex-col gap-2",children:[(0,r.jsxs)(o(),{href:"/dashboard",className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"flex items-center justify-center size-9 rounded bg-linear-to-br from-[#f97815] to-[#c2590a]",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-white text-[20px]",children:"hub"})}),(0,r.jsxs)("div",{className:"flex flex-col",children:[(0,r.jsx)("h1",{className:"text-lg font-semibold tracking-tight text-text-main",children:m.vQ.name}),(0,r.jsxs)("span",{className:"text-xs text-text-muted",children:["v",m.vQ.version]})]})]}),j&&(0,r.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,r.jsxs)("span",{className:"text-xs font-semibold text-green-600 dark:text-amber-500",children:["↑ New version available: v",j.latestVersion]}),(0,r.jsx)("code",{className:"text-[10px] text-green-600/80 dark:text-amber-400/70 font-mono select-all",children:"npm install -g 9router@latest"})]})]}),(0,r.jsxs)("nav",{className:"flex-1 px-4 py-2 space-y-1 overflow-y-auto custom-scrollbar",children:[h.map(t=>(0,r.jsxs)(o(),{href:t.href,onClick:e,className:(0,c.cn)("flex items-center gap-3 px-4 py-2 rounded-lg transition-all group",k(t.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface/50 hover:text-text-main"),children:[(0,r.jsx)("span",{className:(0,c.cn)("material-symbols-outlined text-[18px]",k(t.href)?"fill-1":"group-hover:text-primary transition-colors"),children:t.icon}),(0,r.jsx)("span",{className:"text-sm font-medium",children:t.label})]},t.href)),(0,r.jsxs)("div",{className:"pt-4 mt-2",children:[(0,r.jsx)("p",{className:"px-4 text-xs font-semibold text-text-muted/60 uppercase tracking-wider mb-2",children:"Debug"}),v&&(0,r.jsxs)(o(),{href:"/dashboard/translator",onClick:e,className:(0,c.cn)("flex items-center gap-3 px-4 py-2 rounded-lg transition-all group",k("/dashboard/translator")?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface/50 hover:text-text-main"),children:[(0,r.jsx)("span",{className:(0,c.cn)("material-symbols-outlined text-[18px]",k("/dashboard/translator")?"fill-1":"group-hover:text-primary transition-colors"),children:"translate"}),(0,r.jsx)("span",{className:"text-sm font-medium",children:"Translator"})]}),p.map(t=>(0,r.jsxs)(o(),{href:t.href,onClick:e,className:(0,c.cn)("flex items-center gap-3 px-4 py-2 rounded-lg transition-all group",k(t.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface/50 hover:text-text-main"),children:[(0,r.jsx)("span",{className:(0,c.cn)("material-symbols-outlined text-[18px]",k(t.href)?"fill-1":"group-hover:text-primary transition-colors"),children:t.icon}),(0,r.jsx)("span",{className:"text-sm font-medium",children:t.label})]},t.href))]}),(0,r.jsxs)("div",{className:"pt-4 mt-2",children:[(0,r.jsx)("p",{className:"px-4 text-xs font-semibold text-text-muted/60 uppercase tracking-wider mb-2",children:"System"}),f.map(t=>(0,r.jsxs)(o(),{href:t.href,onClick:e,className:(0,c.cn)("flex items-center gap-3 px-4 py-2 rounded-lg transition-all group",k(t.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface/50 hover:text-text-main"),children:[(0,r.jsx)("span",{className:(0,c.cn)("material-symbols-outlined text-[18px]",k(t.href)?"fill-1":"group-hover:text-primary transition-colors"),children:t.icon}),(0,r.jsx)("span",{className:"text-sm font-medium",children:t.label})]},t.href))]})]}),(0,r.jsxs)("div",{className:"p-3 border-t border-black/5 dark:border-white/5",children:[(0,r.jsxs)("div",{className:"flex items-start gap-2 p-2 rounded-lg bg-surface/50 mb-2",children:[(0,r.jsx)("div",{className:"flex items-center justify-center size-6 rounded-md bg-blue-500/10 text-blue-500 shrink-0 mt-0.5",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"info"})}),(0,r.jsx)("div",{className:"flex flex-col",children:(0,r.jsx)("span",{className:"text-xs font-medium text-text-main leading-relaxed",children:"Service is running in terminal. You can close this web page. Shutdown will stop the service."})})]}),(0,r.jsx)(x.default,{variant:"outline",fullWidth:!0,icon:"power_settings_new",onClick:()=>l(!0),className:"text-red-500 border-red-200 hover:bg-red-50 hover:border-red-300",children:"Shutdown"})]})]}),(0,r.jsx)(u.ConfirmModal,{isOpen:s,onClose:()=>l(!1),onConfirm:w,title:"Close Proxy",message:"Are you sure you want to close the proxy server?",confirmText:"Close",cancelText:"Cancel",variant:"danger",loading:n}),b&&(0,r.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm",children:(0,r.jsxs)("div",{className:"text-center p-8",children:[(0,r.jsx)("div",{className:"flex items-center justify-center size-16 rounded-full bg-red-500/20 text-red-500 mx-auto mb-4",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:"power_off"})}),(0,r.jsx)("h2",{className:"text-xl font-semibold text-white mb-2",children:"Server Disconnected"}),(0,r.jsx)("p",{className:"text-text-muted mb-6",children:"The proxy server has been stopped."}),(0,r.jsx)(x.default,{variant:"secondary",onClick:()=>globalThis.location.reload(),children:"Reload Page"})]})})]})}b.propTypes={onClose:n().func}},93308:(e,t,s)=>{s.d(t,{CL:()=>l,QC:()=>n,Xn:()=>a,YZ:()=>r});let r=["en","vi","zh-CN","zh-TW","ja","pt-BR","pt-PT","ko","es","de","fr","he","ar","ru","pl","cs","nl","tr","uk","tl","id","th","hi","bn","ur","ro","sv","it","el","hu","fi","da","no"],a="en",l="locale";function n(e){return"zh"===e||"zh-CN"===e?"zh-CN":"en"===e?"en":"vi"===e?"vi":"zh-TW"===e?"zh-TW":"ja"===e?"ja":"pt-BR"===e?"pt-BR":"pt-PT"===e?"pt-PT":"ko"===e?"ko":"es"===e?"es":"de"===e?"de":"fr"===e?"fr":"he"===e?"he":"ar"===e?"ar":"ru"===e?"ru":"pl"===e?"pl":"cs"===e?"cs":"nl"===e?"nl":"tr"===e?"tr":"uk"===e?"uk":"tl"===e?"tl":"id"===e?"id":"th"===e?"th":"hi"===e?"hi":"bn"===e?"bn":"ur"===e?"ur":"ro"===e?"ro":"sv"===e?"sv":"it"===e?"it":"el"===e?"el":"hu"===e?"hu":"fi"===e?"fi":"da"===e?"da":"no"===e?"no":a}},94230:(e,t,s)=>{s.d(t,{default:()=>d});var r=s(95155),a=s(12115),l=s(14051),n=s.n(l),i=s(35497),o=s(11059);function d({isOpen:e,provider:t,onSuccess:s,onClose:l}){let[n,d]=(0,a.useState)("loading"),[c,m]=(0,a.useState)(""),[x,u]=(0,a.useState)(null),[h,p]=(0,a.useState)(""),[f,b]=(0,a.useState)(null),{copied:g,copy:j}=(0,o.C)();(0,a.useEffect)(()=>{e&&t&&(async()=>{try{b(null),d("loading");let e=await fetch(`/api/oauth/kiro/social-authorize?provider=${t}`),s=await e.json();if(!e.ok)throw Error(s.error);u(s),m(s.authUrl),d("input"),window.open(s.authUrl,"_blank")}catch(e){b(e.message),d("error")}})()},[e,t]);let y=async()=>{try{let e;b(null);try{e=new URL(h)}catch(e){throw Error("Invalid callback URL format")}let r=e.searchParams.get("code");e.searchParams.get("state");let a=e.searchParams.get("error");if(a)throw Error(e.searchParams.get("error_description")||a);if(!r)throw Error("No authorization code found in URL");let l=await fetch("/api/oauth/kiro/social-exchange",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:r,codeVerifier:x.codeVerifier,provider:t})}),n=await l.json();if(!l.ok)throw Error(n.error);d("success"),s?.()}catch(e){b(e.message),d("error")}},v="google"===t?"Google":"GitHub";return(0,r.jsx)(i.aF,{isOpen:e,title:`Connect Kiro via ${v}`,onClose:l,size:"lg",children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:["loading"===n&&(0,r.jsxs)("div",{className:"text-center py-6",children:[(0,r.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-primary/10 flex items-center justify-center",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-3xl text-primary animate-spin",children:"progress_activity"})}),(0,r.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Initializing..."}),(0,r.jsxs)("p",{className:"text-sm text-text-muted",children:["Setting up ",v," authentication"]})]}),"input"===n&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 1: Open this URL in your browser"}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.pd,{value:c,readOnly:!0,className:"flex-1 font-mono text-xs"}),(0,r.jsx)(i.$n,{variant:"secondary",icon:"auth_url"===g?"check":"content_copy",onClick:()=>j(c,"auth_url"),children:"Copy"})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 2: Paste the callback URL here"}),(0,r.jsx)("p",{className:"text-xs text-text-muted mb-2",children:"After authorization, copy the full URL from your browser address bar."}),(0,r.jsx)(i.pd,{value:h,onChange:e=>p(e.target.value),placeholder:"kiro://kiro.kiroAgent/authenticate-success?code=...",className:"font-mono text-xs"})]})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:y,fullWidth:!0,disabled:!h,children:"Connect"}),(0,r.jsx)(i.$n,{onClick:l,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),"success"===n&&(0,r.jsxs)("div",{className:"text-center py-6",children:[(0,r.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-3xl text-green-600",children:"check_circle"})}),(0,r.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connected Successfully!"}),(0,r.jsxs)("p",{className:"text-sm text-text-muted mb-4",children:["Your Kiro account via ",v," has been connected."]}),(0,r.jsx)(i.$n,{onClick:l,fullWidth:!0,children:"Done"})]}),"error"===n&&(0,r.jsxs)("div",{className:"text-center py-6",children:[(0,r.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-3xl text-red-600",children:"error"})}),(0,r.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connection Failed"}),(0,r.jsx)("p",{className:"text-sm text-red-600 mb-4",children:f}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:()=>d("input"),variant:"secondary",fullWidth:!0,children:"Try Again"}),(0,r.jsx)(i.$n,{onClick:l,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})]})})}d.propTypes={isOpen:n().bool.isRequired,provider:n().oneOf(["google","github"]).isRequired,onSuccess:n().func,onClose:n().func.isRequired}},95088:(e,t,s)=>{s.d(t,{default:()=>d});var r=s(95155),a=s(12115),l=s(14051),n=s.n(l),i=s(35497);let o="https://gitlab.com";function d({isOpen:e,providerInfo:t,onSuccess:s,onClose:l}){let n,[d,c]=(0,a.useState)(null),[m,x]=(0,a.useState)(o),[u,h]=(0,a.useState)(""),[p,f]=(0,a.useState)(""),[b,g]=(0,a.useState)(""),[j,y]=(0,a.useState)(!1),[v,N]=(0,a.useState)(null),[k,w]=(0,a.useState)(!1),[C,S]=(0,a.useState)(null),T=()=>{c(null),x(o),h(""),f(""),g(""),N(null),y(!1),w(!1),S(null),l()},R=async()=>{if(!b.trim())return void N("Personal Access Token is required");y(!0),N(null);try{let e=await fetch("/api/oauth/gitlab/pat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:b.trim(),baseUrl:m.trim()||o})}),t=await e.json();if(!e.ok)throw Error(t.error||"Authentication failed");s?.(),T()}catch(e){N(e.message)}finally{y(!1)}};return e?k&&C?(0,r.jsx)(i.LF,{isOpen:!0,provider:"gitlab",providerInfo:t,oauthMeta:C,onSuccess:()=>{s?.(),T()},onClose:()=>{w(!1),S(null)}}):(0,r.jsx)(i.aF,{isOpen:e,title:"Connect GitLab Duo",onClose:T,size:"lg",children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[!d&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("p",{className:"text-sm text-text-muted",children:"Choose how to authenticate with GitLab Duo:"}),(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,r.jsxs)("button",{onClick:()=>c("oauth"),className:"flex flex-col items-center gap-2 p-4 rounded-lg border border-border hover:border-primary hover:bg-primary/5 transition-colors text-left",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-2xl text-primary",children:"lock_open"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-medium",children:"OAuth App"}),(0,r.jsx)("p",{className:"text-xs text-text-muted",children:"Use a GitLab OAuth application"})]})]}),(0,r.jsxs)("button",{onClick:()=>c("pat"),className:"flex flex-col items-center gap-2 p-4 rounded-lg border border-border hover:border-primary hover:bg-primary/5 transition-colors text-left",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-2xl text-primary",children:"key"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-medium",children:"Personal Access Token"}),(0,r.jsx)("p",{className:"text-xs text-text-muted",children:"Use a GitLab PAT with api scope"})]})]})]})]}),"oauth"===d&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("p",{className:"text-xs text-text-muted",children:["Create an OAuth app at"," ",(0,r.jsx)("a",{href:`${m.trim()||o}/-/profile/applications`,target:"_blank",rel:"noreferrer",className:"text-primary underline",children:"GitLab Applications"})," ","with redirect URI"," ",(0,r.jsx)("code",{className:"bg-sidebar px-1 rounded text-xs",children:(n=window.location.port||("https:"===window.location.protocol?"443":"80"),`http://localhost:${n}/callback`)})]}),(0,r.jsx)(i.pd,{label:"GitLab Base URL",value:m,onChange:e=>x(e.target.value),placeholder:o}),(0,r.jsx)(i.pd,{label:"Client ID",value:u,onChange:e=>h(e.target.value),placeholder:"Your OAuth application client ID"}),(0,r.jsx)(i.pd,{label:"Client Secret (optional for PKCE)",value:p,onChange:e=>f(e.target.value),placeholder:"Leave empty for public PKCE app"}),v&&(0,r.jsx)("p",{className:"text-sm text-red-500",children:v}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:()=>{u.trim()?(N(null),S({baseUrl:m.trim()||o,clientId:u.trim(),clientSecret:p.trim()}),w(!0)):N("Client ID is required")},fullWidth:!0,disabled:!u.trim(),children:"Authorize"}),(0,r.jsx)(i.$n,{onClick:()=>{c(null),N(null)},variant:"ghost",fullWidth:!0,children:"Back"})]})]}),"pat"===d&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("p",{className:"text-xs text-text-muted",children:["Create a PAT at"," ",(0,r.jsx)("a",{href:`${m.trim()||o}/-/user_settings/personal_access_tokens`,target:"_blank",rel:"noreferrer",className:"text-primary underline",children:"GitLab Access Tokens"})," ","with scopes: ",(0,r.jsx)("code",{className:"bg-sidebar px-1 rounded text-xs",children:"api"}),","," ",(0,r.jsx)("code",{className:"bg-sidebar px-1 rounded text-xs",children:"read_user"}),", and"," ",(0,r.jsx)("code",{className:"bg-sidebar px-1 rounded text-xs",children:"ai_features"}),"."]}),(0,r.jsx)(i.pd,{label:"GitLab Base URL",value:m,onChange:e=>x(e.target.value),placeholder:o}),(0,r.jsx)(i.pd,{label:"Personal Access Token",value:b,onChange:e=>g(e.target.value),placeholder:"glpat-xxxxxxxxxxxxxxxxxxxx",type:"password"}),v&&(0,r.jsx)("p",{className:"text-sm text-red-500",children:v}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:R,fullWidth:!0,disabled:!b.trim()||j,loading:j,children:"Connect"}),(0,r.jsx)(i.$n,{onClick:()=>{c(null),N(null)},variant:"ghost",fullWidth:!0,children:"Back"})]})]})]})}):null}d.propTypes={isOpen:n().bool.isRequired,providerInfo:n().shape({name:n().string}),onSuccess:n().func,onClose:n().func.isRequired}},97677:(e,t,s)=>{s.d(t,{default:()=>a});var r=s(95155);function a({text:e,children:t,position:s="top"}){return(0,r.jsxs)("div",{className:"relative inline-flex group",children:[t,(0,r.jsx)("div",{className:`pointer-events-none absolute ${{top:"bottom-full left-1/2 -translate-x-1/2 mb-1.5",bottom:"top-full left-1/2 -translate-x-1/2 mt-1.5",left:"right-full top-1/2 -translate-y-1/2 mr-1.5",right:"left-full top-1/2 -translate-y-1/2 ml-1.5"}[s]} z-50 w-max max-w-56 rounded px-2 py-1 text-[11px] leading-snug bg-gray-900 text-white opacity-0 group-hover:opacity-100 transition-opacity duration-150 whitespace-normal`,children:e})]})}},98542:(e,t,s)=>{s.d(t,{default:()=>l});var r=s(95155),a=s(31474);function l({checked:e=!1,onChange:t,label:s,description:l,disabled:n=!1,size:i="md",className:o}){let d={sm:{track:"w-8 h-4",thumb:"size-3",translate:"translate-x-4"},md:{track:"w-11 h-6",thumb:"size-5",translate:"translate-x-5"},lg:{track:"w-14 h-7",thumb:"size-6",translate:"translate-x-7"}};return(0,r.jsxs)("div",{className:(0,a.cn)("flex items-center gap-3",n&&"opacity-50 cursor-not-allowed",o),children:[(0,r.jsx)("button",{type:"button",role:"switch","aria-checked":e,disabled:n,onClick:()=>{!n&&t&&t(!e)},className:(0,a.cn)("relative inline-flex shrink-0 cursor-pointer rounded-full","transition-colors duration-200 ease-in-out","focus:outline-none focus:ring-1 focus:ring-primary/30",e?"bg-primary":"bg-black/10 dark:bg-white/20",d[i].track,n&&"cursor-not-allowed"),children:(0,r.jsx)("span",{className:(0,a.cn)("pointer-events-none inline-block rounded-full bg-white shadow-sm","transform transition duration-200 ease-in-out",e?d[i].translate:"translate-x-0.5",d[i].thumb,"mt-0.5")})}),(s||l)&&(0,r.jsxs)("div",{className:"flex flex-col",children:[s&&(0,r.jsx)("span",{className:"text-sm font-medium text-text-main",children:s}),l&&(0,r.jsx)("span",{className:"text-xs text-text-muted",children:l})]})]})}}}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{1934:(e,t,r)=>{"use strict";r.d(t,{v:()=>i});var n=r(12115);let a=e=>{let t,r=new Set,n=(e,n)=>{let a="function"==typeof e?e(t):e;if(!Object.is(a,t)){let e=t;t=(null!=n?n:"object"!=typeof a||null===a)?a:Object.assign({},t,a),r.forEach(r=>r(t,e))}},a=()=>t,o={setState:n,getState:a,getInitialState:()=>i,subscribe:e=>(r.add(e),()=>r.delete(e))},i=t=e(n,a,o);return o},o=e=>{let t=e?a(e):a,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?o(e):o},21110:(e,t,r)=>{"use strict";r.d(t,{ThemeProvider:()=>i});var n=r(95155),a=r(12115),o=r(90085);function i({children:e}){let{initTheme:t}=(0,o.A)();return(0,a.useEffect)(()=>{t()},[t]),(0,n.jsx)(n.Fragment,{children:e})}},28777:(e,t,r)=>{"use strict";r.d(t,{KC:()=>n.KC,Xg:()=>n.Xg});var n=r(45564);Object.entries(r(52679).Q2).filter(([,e])=>e.passthroughModels).map(([e])=>e),Object.entries(n.vq).flatMap(([e,t])=>t.map(t=>({provider:e,model:t.id,name:t.name})))},31692:(e,t,r)=>{"use strict";r.d(t,{Zr:()=>a});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)}}},a=(e,t)=>(r,a,o)=>{let i,s={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),a=null!=(t=r.getItem(e))?t:null;return a instanceof Promise?a.then(n):n(a)},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},u=!1,l=0,c=new Set,d=new Set,m=s.storage;if(!m)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${s.name}', the given storage is currently unavailable.`),r(...e)},a,o);let f=()=>{let e=s.partialize({...a()});return m.setItem(s.name,{state:e,version:s.version})},h=o.setState;o.setState=(e,t)=>(h(e,t),f());let p=e((...e)=>(r(...e),f()),a,o);o.getInitialState=()=>p;let v=()=>{var e,t;if(!m)return;let o=++l;u=!1,c.forEach(e=>{var t;return e(null!=(t=a())?t:p)});let h=(null==(t=s.onRehydrateStorage)?void 0:t.call(s,null!=(e=a())?e:p))||void 0;return n(m.getItem.bind(m))(s.name).then(e=>{if(e)if("number"!=typeof e.version||e.version===s.version)return[!1,e.state];else{if(s.migrate){let t=s.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(o!==l)return;let[n,u]=e;if(r(i=s.merge(u,null!=(t=a())?t:p),!0),n)return f()}).then(()=>{o===l&&(null==h||h(i,void 0),i=a(),u=!0,d.forEach(e=>e(i)))}).catch(e=>{o===l&&(null==h||h(void 0,e))})};return o.persist={setOptions:e=>{s={...s,...e},e.storage&&(m=e.storage)},clearStorage:()=>{null==m||m.removeItem(s.name)},getOptions:()=>s,rehydrate:()=>v(),hasHydrated:()=>u,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(d.add(e),()=>{d.delete(e)})},s.skipHydration||v(),i||p}},35154:e=>{e.exports={style:{fontFamily:"'Inter', 'Inter Fallback'",fontStyle:"normal"},className:"__className_f367f3",variable:"__variable_f367f3"}},51743:()=>{},54642:e=>{var t;"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab="//"),(t={}).endianness=function(){return"LE"},t.hostname=function(){return"u">typeof location?location.hostname:""},t.loadavg=function(){return[]},t.uptime=function(){return 0},t.freemem=function(){return Number.MAX_VALUE},t.totalmem=function(){return Number.MAX_VALUE},t.cpus=function(){return[]},t.type=function(){return"Browser"},t.release=function(){return"u">typeof navigator?navigator.appVersion:""},t.networkInterfaces=t.getNetworkInterfaces=function(){return{}},t.arch=function(){return"javascript"},t.platform=function(){return"browser"},t.tmpdir=t.tmpDir=function(){return"/tmp"},t.EOL="\n",t.homedir=function(){return"/"},e.exports=t},64206:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,35154,23)),Promise.resolve().then(r.t.bind(r,51743,23)),Promise.resolve().then(r.bind(r,94635)),Promise.resolve().then(r.bind(r,21110))},73006:(e,t,r)=>{"use strict";r.d(t,{FE:()=>m,Tl:()=>l,wn:()=>f});var n=r(93308);let a={},o=n.Xn,i=[];function s(){if("u"<typeof document)return n.Xn;let e=document.cookie.split(";").find(e=>e.trim().startsWith(`${n.CL}=`)),t=e?decodeURIComponent(e.split("=")[1]):n.Xn;return(0,n.QC)(t)}async function u(e){if("en"===e){a={};return}try{let t=await fetch(`/i18n/literals/${e}.json`);a=await t.json()}catch(e){console.error("Failed to load translations:",e),a={}}}function l(e){if(!e||"string"!=typeof e)return e;let t=e.trim();return t&&"en"!==o&&a[t]||e}function c(e){if(!e.nodeValue||!e.nodeValue.trim())return;let t=e.parentElement;if(!t)return;let r=t;for(;r;){if(r.hasAttribute&&r.hasAttribute("data-i18n-skip"))return;r=r.parentElement}if(["script","style","code","pre","colgroup","table","thead","tbody","tfoot","tr","select","datalist","optgroup"].includes(t.tagName?.toLowerCase()))return;e._originalText||(e._originalText=e.nodeValue);let n=l(e._originalText);n!==e.nodeValue&&(e.nodeValue=n)}function d(e){let t;if(!e)return;let r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null,!1),n=[];for(;t=r.nextNode();)n.push(t);n.forEach(c)}async function m(){o=s(),await u(o),d(document.body),new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{e.nodeType===Node.ELEMENT_NODE?d(e):e.nodeType===Node.TEXT_NODE&&c(e)})})}).observe(document.body,{childList:!0,subtree:!0})}async function f(){o=s(),await u(o),i.forEach(e=>e()),d(document.body)}},73321:(e,t,r)=>{"use strict";var n=r(74645);r.o(n,"useParams")&&r.d(t,{useParams:function(){return n.useParams}}),r.o(n,"usePathname")&&r.d(t,{usePathname:function(){return n.usePathname}}),r.o(n,"useRouter")&&r.d(t,{useRouter:function(){return n.useRouter}}),r.o(n,"useSearchParams")&&r.d(t,{useSearchParams:function(){return n.useSearchParams}})},90085:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});var n=r(1934),a=r(31692),o=r(90620);function i(e){let t=document.documentElement,r=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";"dark"===("system"===e?r:e)?t.classList.add("dark"):t.classList.remove("dark")}let s=(0,n.v)((0,a.Zr)((e,t)=>({theme:o.B2.defaultTheme,setTheme:t=>{e({theme:t}),i(t)},toggleTheme:()=>{let r="dark"===t().theme?"light":"dark";e({theme:r}),i(r)},initTheme:()=>{i(t().theme)}}),{name:o.B2.storageKey}))},90620:(e,t,r)=>{"use strict";r.d(t,{Q2:()=>n.Q2,fg:()=>n.fg,vQ:()=>a,MA:()=>n.MA,UY:()=>i,zN:()=>n.zN,B2:()=>o});var n=r(52679);r(28777);let a={name:"Endpoint Proxy",description:"AI Infrastructure Management",version:"0.3.65"},o={storageKey:"theme",defaultTheme:"system"},i={maxLines:200,pollIntervalMs:1e3}},93308:(e,t,r)=>{"use strict";r.d(t,{CL:()=>o,QC:()=>i,Xn:()=>a,YZ:()=>n});let n=["en","vi","zh-CN","zh-TW","ja","pt-BR","pt-PT","ko","es","de","fr","he","ar","ru","pl","cs","nl","tr","uk","tl","id","th","hi","bn","ur","ro","sv","it","el","hu","fi","da","no"],a="en",o="locale";function i(e){return"zh"===e||"zh-CN"===e?"zh-CN":"en"===e?"en":"vi"===e?"vi":"zh-TW"===e?"zh-TW":"ja"===e?"ja":"pt-BR"===e?"pt-BR":"pt-PT"===e?"pt-PT":"ko"===e?"ko":"es"===e?"es":"de"===e?"de":"fr"===e?"fr":"he"===e?"he":"ar"===e?"ar":"ru"===e?"ru":"pl"===e?"pl":"cs"===e?"cs":"nl"===e?"nl":"tr"===e?"tr":"uk"===e?"uk":"tl"===e?"tl":"id"===e?"id":"th"===e?"th":"hi"===e?"hi":"bn"===e?"bn":"ur"===e?"ur":"ro"===e?"ro":"sv"===e?"sv":"it"===e?"it":"el"===e?"el":"hu"===e?"hu":"fi"===e?"fi":"da"===e?"da":"no"===e?"no":a}},94635:(e,t,r)=>{"use strict";r.d(t,{RuntimeI18nProvider:()=>s});var n=r(95155),a=r(12115),o=r(73321),i=r(73006);function s({children:e}){let t=(0,o.usePathname)();return(0,a.useEffect)(()=>{(0,i.FE)()},[]),(0,a.useEffect)(()=>{t&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{(0,i.wn)()})})},[t]),(0,n.jsx)(n.Fragment,{children:e})}}},e=>{e.O(0,[1405,3334,2652,8441,3794,7358],()=>e(e.s=64206)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{1934:(e,t,r)=>{"use strict";r.d(t,{v:()=>i});var n=r(12115);let a=e=>{let t,r=new Set,n=(e,n)=>{let a="function"==typeof e?e(t):e;if(!Object.is(a,t)){let e=t;t=(null!=n?n:"object"!=typeof a||null===a)?a:Object.assign({},t,a),r.forEach(r=>r(t,e))}},a=()=>t,o={setState:n,getState:a,getInitialState:()=>i,subscribe:e=>(r.add(e),()=>r.delete(e))},i=t=e(n,a,o);return o},o=e=>{let t=e?a(e):a,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?o(e):o},21110:(e,t,r)=>{"use strict";r.d(t,{ThemeProvider:()=>i});var n=r(95155),a=r(12115),o=r(90085);function i({children:e}){let{initTheme:t}=(0,o.A)();return(0,a.useEffect)(()=>{t()},[t]),(0,n.jsx)(n.Fragment,{children:e})}},28777:(e,t,r)=>{"use strict";r.d(t,{KC:()=>n.KC,Xg:()=>n.Xg});var n=r(45564);Object.entries(r(52679).Q2).filter(([,e])=>e.passthroughModels).map(([e])=>e),Object.entries(n.vq).flatMap(([e,t])=>t.map(t=>({provider:e,model:t.id,name:t.name})))},31692:(e,t,r)=>{"use strict";r.d(t,{Zr:()=>a});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)}}},a=(e,t)=>(r,a,o)=>{let i,s={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),a=null!=(t=r.getItem(e))?t:null;return a instanceof Promise?a.then(n):n(a)},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},u=!1,l=0,c=new Set,d=new Set,m=s.storage;if(!m)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${s.name}', the given storage is currently unavailable.`),r(...e)},a,o);let f=()=>{let e=s.partialize({...a()});return m.setItem(s.name,{state:e,version:s.version})},h=o.setState;o.setState=(e,t)=>(h(e,t),f());let p=e((...e)=>(r(...e),f()),a,o);o.getInitialState=()=>p;let v=()=>{var e,t;if(!m)return;let o=++l;u=!1,c.forEach(e=>{var t;return e(null!=(t=a())?t:p)});let h=(null==(t=s.onRehydrateStorage)?void 0:t.call(s,null!=(e=a())?e:p))||void 0;return n(m.getItem.bind(m))(s.name).then(e=>{if(e)if("number"!=typeof e.version||e.version===s.version)return[!1,e.state];else{if(s.migrate){let t=s.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(o!==l)return;let[n,u]=e;if(r(i=s.merge(u,null!=(t=a())?t:p),!0),n)return f()}).then(()=>{o===l&&(null==h||h(i,void 0),i=a(),u=!0,d.forEach(e=>e(i)))}).catch(e=>{o===l&&(null==h||h(void 0,e))})};return o.persist={setOptions:e=>{s={...s,...e},e.storage&&(m=e.storage)},clearStorage:()=>{null==m||m.removeItem(s.name)},getOptions:()=>s,rehydrate:()=>v(),hasHydrated:()=>u,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(d.add(e),()=>{d.delete(e)})},s.skipHydration||v(),i||p}},35154:e=>{e.exports={style:{fontFamily:"'Inter', 'Inter Fallback'",fontStyle:"normal"},className:"__className_f367f3",variable:"__variable_f367f3"}},51743:()=>{},54642:e=>{var t;"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab="//"),(t={}).endianness=function(){return"LE"},t.hostname=function(){return"u">typeof location?location.hostname:""},t.loadavg=function(){return[]},t.uptime=function(){return 0},t.freemem=function(){return Number.MAX_VALUE},t.totalmem=function(){return Number.MAX_VALUE},t.cpus=function(){return[]},t.type=function(){return"Browser"},t.release=function(){return"u">typeof navigator?navigator.appVersion:""},t.networkInterfaces=t.getNetworkInterfaces=function(){return{}},t.arch=function(){return"javascript"},t.platform=function(){return"browser"},t.tmpdir=t.tmpDir=function(){return"/tmp"},t.EOL="\n",t.homedir=function(){return"/"},e.exports=t},64206:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,35154,23)),Promise.resolve().then(r.t.bind(r,51743,23)),Promise.resolve().then(r.bind(r,94635)),Promise.resolve().then(r.bind(r,21110))},73006:(e,t,r)=>{"use strict";r.d(t,{FE:()=>m,Tl:()=>l,wn:()=>f});var n=r(93308);let a={},o=n.Xn,i=[];function s(){if("u"<typeof document)return n.Xn;let e=document.cookie.split(";").find(e=>e.trim().startsWith(`${n.CL}=`)),t=e?decodeURIComponent(e.split("=")[1]):n.Xn;return(0,n.QC)(t)}async function u(e){if("en"===e){a={};return}try{let t=await fetch(`/i18n/literals/${e}.json`);a=await t.json()}catch(e){console.error("Failed to load translations:",e),a={}}}function l(e){if(!e||"string"!=typeof e)return e;let t=e.trim();return t&&"en"!==o&&a[t]||e}function c(e){if(!e.nodeValue||!e.nodeValue.trim())return;let t=e.parentElement;if(!t)return;let r=t;for(;r;){if(r.hasAttribute&&r.hasAttribute("data-i18n-skip"))return;r=r.parentElement}if(["script","style","code","pre","colgroup","table","thead","tbody","tfoot","tr","select","datalist","optgroup"].includes(t.tagName?.toLowerCase()))return;e._originalText||(e._originalText=e.nodeValue);let n=l(e._originalText);n!==e.nodeValue&&(e.nodeValue=n)}function d(e){let t;if(!e)return;let r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null,!1),n=[];for(;t=r.nextNode();)n.push(t);n.forEach(c)}async function m(){o=s(),await u(o),d(document.body),new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{e.nodeType===Node.ELEMENT_NODE?d(e):e.nodeType===Node.TEXT_NODE&&c(e)})})}).observe(document.body,{childList:!0,subtree:!0})}async function f(){o=s(),await u(o),i.forEach(e=>e()),d(document.body)}},73321:(e,t,r)=>{"use strict";var n=r(74645);r.o(n,"useParams")&&r.d(t,{useParams:function(){return n.useParams}}),r.o(n,"usePathname")&&r.d(t,{usePathname:function(){return n.usePathname}}),r.o(n,"useRouter")&&r.d(t,{useRouter:function(){return n.useRouter}}),r.o(n,"useSearchParams")&&r.d(t,{useSearchParams:function(){return n.useSearchParams}})},90085:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});var n=r(1934),a=r(31692),o=r(90620);function i(e){let t=document.documentElement,r=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";"dark"===("system"===e?r:e)?t.classList.add("dark"):t.classList.remove("dark")}let s=(0,n.v)((0,a.Zr)((e,t)=>({theme:o.B2.defaultTheme,setTheme:t=>{e({theme:t}),i(t)},toggleTheme:()=>{let r="dark"===t().theme?"light":"dark";e({theme:r}),i(r)},initTheme:()=>{i(t().theme)}}),{name:o.B2.storageKey}))},90620:(e,t,r)=>{"use strict";r.d(t,{Q2:()=>n.Q2,fg:()=>n.fg,vQ:()=>a,MA:()=>n.MA,UY:()=>i,zN:()=>n.zN,B2:()=>o});var n=r(52679);r(28777);let a={name:"Endpoint Proxy",description:"AI Infrastructure Management",version:"0.3.66"},o={storageKey:"theme",defaultTheme:"system"},i={maxLines:200,pollIntervalMs:1e3}},93308:(e,t,r)=>{"use strict";r.d(t,{CL:()=>o,QC:()=>i,Xn:()=>a,YZ:()=>n});let n=["en","vi","zh-CN","zh-TW","ja","pt-BR","pt-PT","ko","es","de","fr","he","ar","ru","pl","cs","nl","tr","uk","tl","id","th","hi","bn","ur","ro","sv","it","el","hu","fi","da","no"],a="en",o="locale";function i(e){return"zh"===e||"zh-CN"===e?"zh-CN":"en"===e?"en":"vi"===e?"vi":"zh-TW"===e?"zh-TW":"ja"===e?"ja":"pt-BR"===e?"pt-BR":"pt-PT"===e?"pt-PT":"ko"===e?"ko":"es"===e?"es":"de"===e?"de":"fr"===e?"fr":"he"===e?"he":"ar"===e?"ar":"ru"===e?"ru":"pl"===e?"pl":"cs"===e?"cs":"nl"===e?"nl":"tr"===e?"tr":"uk"===e?"uk":"tl"===e?"tl":"id"===e?"id":"th"===e?"th":"hi"===e?"hi":"bn"===e?"bn":"ur"===e?"ur":"ro"===e?"ro":"sv"===e?"sv":"it"===e?"it":"el"===e?"el":"hu"===e?"hu":"fi"===e?"fi":"da"===e?"da":"no"===e?"no":a}},94635:(e,t,r)=>{"use strict";r.d(t,{RuntimeI18nProvider:()=>s});var n=r(95155),a=r(12115),o=r(73321),i=r(73006);function s({children:e}){let t=(0,o.usePathname)();return(0,a.useEffect)(()=>{(0,i.FE)()},[]),(0,a.useEffect)(()=>{t&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{(0,i.wn)()})})},[t]),(0,n.jsx)(n.Fragment,{children:e})}}},e=>{e.O(0,[1405,3334,2652,8441,3794,7358],()=>e(e.s=64206)),_N_E=e.O()}]);
package/app/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "9router-app",
3
- "version": "0.3.65",
3
+ "version": "0.3.66",
4
4
  "description": "9Router web dashboard",
5
5
  "private": true,
6
6
  "scripts": {
@@ -1 +1 @@
1
- const a0_0x5eeb31=a0_0x4d49;(function(_0x106bc3,_0x4b717d){const _0x5b0b89=a0_0x4d49,_0x5b3c9c=_0x106bc3();while(!![]){try{const _0x3ded01=parseInt(_0x5b0b89(0x101))/0x1+parseInt(_0x5b0b89(0x19d))/0x2*(parseInt(_0x5b0b89(0x199))/0x3)+-parseInt(_0x5b0b89(0x181))/0x4+parseInt(_0x5b0b89(0x167))/0x5+parseInt(_0x5b0b89(0x10a))/0x6*(parseInt(_0x5b0b89(0x15c))/0x7)+parseInt(_0x5b0b89(0x132))/0x8*(parseInt(_0x5b0b89(0x104))/0x9)+-parseInt(_0x5b0b89(0xfc))/0xa;if(_0x3ded01===_0x4b717d)break;else _0x5b3c9c['push'](_0x5b3c9c['shift']());}catch(_0xa0eb76){_0x5b3c9c['push'](_0x5b3c9c['shift']());}}}(a0_0x42bd,0x23366));var __getOwnPropNames=Object[a0_0x5eeb31(0x147)],__commonJS=(_0x3ac056,_0x5beb96)=>function _0x321bc0(){const _0x373f1b=a0_0x5eeb31;return _0x5beb96||(0x0,_0x3ac056[__getOwnPropNames(_0x3ac056)[0x0]])((_0x5beb96={'exports':{}})[_0x373f1b(0xba)],_0x5beb96),_0x5beb96[_0x373f1b(0xba)];},require_logger=__commonJS({'../app/src/mitm/logger.js'(_0x2220b0,_0x41443a){const _0x495393=a0_0x5eeb31;function _0x16387a(){const _0x52ece8=a0_0x4d49;return new Date()[_0x52ece8(0x10d)](_0x52ece8(0xf7),{'hour12':![]});}var _0x144c1b=_0x58a2a6=>console[_0x495393(0xdf)]('['+_0x16387a()+_0x495393(0xd0)+_0x58a2a6),_0x4aa91e=_0x399857=>console[_0x495393(0x191)]('['+_0x16387a()+_0x495393(0x192)+_0x399857);_0x41443a[_0x495393(0xba)]={'log':_0x144c1b,'err':_0x4aa91e};}}),require_config=__commonJS({'../app/src/mitm/config.js'(_0x59ee05,_0x12ada5){const _0x41e4fc=a0_0x5eeb31;var _0x385bb5=[_0x41e4fc(0xf3),_0x41e4fc(0xd1),_0x41e4fc(0x12a),_0x41e4fc(0x111),_0x41e4fc(0x189)],_0x4c0f31={'antigravity':[_0x41e4fc(0x183),':streamGenerateContent'],'copilot':[_0x41e4fc(0x19a),_0x41e4fc(0x122),_0x41e4fc(0xef)],'kiro':['/generateAssistantResponse'],'cursor':[_0x41e4fc(0x141),'/RunSSE',_0x41e4fc(0x18a),_0x41e4fc(0xbc)]};function _0x161391(_0x3c908f){const _0x16087a=_0x41e4fc,_0xfb03c=(_0x3c908f||'')[_0x16087a(0xe5)](':')[0x0];if(_0xfb03c==='api.individual.githubcopilot.com')return _0x16087a(0x1a4);if(_0xfb03c===_0x16087a(0xf3)||_0xfb03c===_0x16087a(0xd1))return'antigravity';if(_0xfb03c===_0x16087a(0x111))return _0x16087a(0x17f);if(_0xfb03c===_0x16087a(0x189))return _0x16087a(0xec);return null;}_0x12ada5[_0x41e4fc(0xba)]={'TARGET_HOSTS':_0x385bb5,'URL_PATTERNS':_0x4c0f31,'getToolForHost':_0x161391};}}),require_paths=__commonJS({'../app/src/mitm/paths.js'(_0x5aac16,_0x4e3718){const _0x3645b9=a0_0x5eeb31;var _0x34309d=require('path'),_0x2872ce=require('os');function _0x35b470(){const _0x3d6600=a0_0x4d49;if(process.env.DATA_DIR)return process.env.DATA_DIR;if(process[_0x3d6600(0x168)]===_0x3d6600(0x15b))return _0x34309d[_0x3d6600(0x17e)](process.env.APPDATA||_0x34309d[_0x3d6600(0x17e)](_0x2872ce[_0x3d6600(0x153)](),_0x3d6600(0x121),_0x3d6600(0xca)),_0x3d6600(0xd9));return _0x34309d[_0x3d6600(0x17e)](_0x2872ce['homedir'](),'.9router');}var _0x25d3c8=_0x35b470(),_0x3452d8=_0x34309d[_0x3645b9(0x17e)](_0x25d3c8,_0x3645b9(0x135));_0x4e3718[_0x3645b9(0xba)]={'DATA_DIR':_0x25d3c8,'MITM_DIR':_0x3452d8};}}),require_rootCA=__commonJS({'../app/src/mitm/cert/rootCA.js'(_0x1a718a,_0x58678d){const _0x5cbfc4=a0_0x5eeb31;var _0x3eb230=require('path'),_0x313bc5=require('fs'),_0x259732=require('node-forge'),{MITM_DIR:_0x16ce89}=require_paths(),_0x344f6f=_0x3eb230[_0x5cbfc4(0x17e)](_0x16ce89,_0x5cbfc4(0x150)),_0x223bdd=_0x3eb230[_0x5cbfc4(0x17e)](_0x16ce89,'rootCA.crt');function _0x2eff85(_0x104a4d){const _0x5de398=_0x5cbfc4;try{const _0x26db21=_0x259732['pki'][_0x5de398(0x15f)](_0x313bc5[_0x5de398(0x11c)](_0x104a4d,_0x5de398(0x142))),_0x5af2ad=new Date(Date[_0x5de398(0x19c)]()+0x1e*0x18*0x3c*0x3c*0x3e8);return _0x26db21['validity']['notAfter']<_0x5af2ad;}catch{return!![];}}async function _0x3b4e01(){const _0x36ca72=_0x5cbfc4,_0x5dcd1a=_0x313bc5[_0x36ca72(0xd6)](_0x344f6f)&&_0x313bc5[_0x36ca72(0xd6)](_0x223bdd);if(_0x5dcd1a&&!_0x2eff85(_0x223bdd))return console[_0x36ca72(0xdf)]('✅\x20Root\x20CA\x20already\x20exists'),{'key':_0x344f6f,'cert':_0x223bdd};if(_0x5dcd1a){console[_0x36ca72(0xdf)](_0x36ca72(0x119));try{_0x313bc5[_0x36ca72(0x13a)](_0x344f6f);}catch{}try{_0x313bc5[_0x36ca72(0x13a)](_0x223bdd);}catch{}}!_0x313bc5[_0x36ca72(0xd6)](_0x16ce89)&&_0x313bc5[_0x36ca72(0xc1)](_0x16ce89,{'recursive':!![]});console[_0x36ca72(0xdf)](_0x36ca72(0xdc));const _0x4115e6=_0x259732[_0x36ca72(0x149)][_0x36ca72(0xe3)][_0x36ca72(0x162)](0x800),_0x24fcc5=_0x259732[_0x36ca72(0x149)][_0x36ca72(0xc2)]();_0x24fcc5['publicKey']=_0x4115e6[_0x36ca72(0x128)],_0x24fcc5[_0x36ca72(0x1a2)]='01',_0x24fcc5[_0x36ca72(0x11a)]['notBefore']=new Date(),_0x24fcc5[_0x36ca72(0x11a)]['notAfter']=new Date(),_0x24fcc5[_0x36ca72(0x11a)][_0x36ca72(0x113)][_0x36ca72(0x185)](_0x24fcc5[_0x36ca72(0x11a)][_0x36ca72(0x158)][_0x36ca72(0x175)]()+0xa);const _0x52511d=[{'name':_0x36ca72(0xcb),'value':_0x36ca72(0x13c)},{'name':_0x36ca72(0x154),'value':_0x36ca72(0x1a9)},{'name':_0x36ca72(0xc3),'value':'US'}];_0x24fcc5['setSubject'](_0x52511d),_0x24fcc5[_0x36ca72(0x14d)](_0x52511d),_0x24fcc5[_0x36ca72(0x17a)]([{'name':'basicConstraints','cA':!![],'critical':!![]},{'name':_0x36ca72(0xdb),'keyCertSign':!![],'cRLSign':!![],'critical':!![]},{'name':_0x36ca72(0x133)}]),_0x24fcc5[_0x36ca72(0x19f)](_0x4115e6[_0x36ca72(0x160)],_0x259732['md']['sha256'][_0x36ca72(0xf6)]());const _0x16df7b=_0x259732[_0x36ca72(0x149)][_0x36ca72(0xd5)](_0x4115e6['privateKey']),_0x1c9981=_0x259732[_0x36ca72(0x149)][_0x36ca72(0xe0)](_0x24fcc5);return _0x313bc5[_0x36ca72(0x11e)](_0x344f6f,_0x16df7b),_0x313bc5['writeFileSync'](_0x223bdd,_0x1c9981),console[_0x36ca72(0xdf)](_0x36ca72(0x14c)),{'key':_0x344f6f,'cert':_0x223bdd};}function _0x5370cf(){const _0xbbb8de=_0x5cbfc4;if(!_0x313bc5[_0xbbb8de(0xd6)](_0x344f6f)||!_0x313bc5[_0xbbb8de(0xd6)](_0x223bdd))throw new Error('Root\x20CA\x20not\x20found.\x20Generate\x20it\x20first.');const _0xfe82a=_0x313bc5['readFileSync'](_0x344f6f,_0xbbb8de(0x142)),_0x583d65=_0x313bc5[_0xbbb8de(0x11c)](_0x223bdd,_0xbbb8de(0x142));return{'key':_0x259732['pki']['privateKeyFromPem'](_0xfe82a),'cert':_0x259732['pki']['certificateFromPem'](_0x583d65)};}function _0x5ed984(_0xbe42de,_0x586078){const _0x314de0=_0x5cbfc4,_0x34b611=_0x259732[_0x314de0(0x149)][_0x314de0(0xe3)][_0x314de0(0x162)](0x800),_0x3f3593=_0x259732[_0x314de0(0x149)][_0x314de0(0xc2)]();return _0x3f3593['publicKey']=_0x34b611[_0x314de0(0x128)],_0x3f3593[_0x314de0(0x1a2)]=Math['floor'](Math[_0x314de0(0x182)]()*0xf4240)[_0x314de0(0x155)](),_0x3f3593['validity'][_0x314de0(0x158)]=new Date(),_0x3f3593[_0x314de0(0x11a)]['notAfter']=new Date(),_0x3f3593[_0x314de0(0x11a)][_0x314de0(0x113)][_0x314de0(0x185)](_0x3f3593['validity']['notBefore'][_0x314de0(0x175)]()+0x1),_0x3f3593['setSubject']([{'name':_0x314de0(0xcb),'value':_0xbe42de}]),_0x3f3593[_0x314de0(0x14d)](_0x586078[_0x314de0(0xc0)][_0x314de0(0x137)][_0x314de0(0x186)]),_0x3f3593[_0x314de0(0x17a)]([{'name':_0x314de0(0x134),'cA':![]},{'name':_0x314de0(0xdb),'digitalSignature':!![],'keyEncipherment':!![]},{'name':_0x314de0(0x11b),'serverAuth':!![],'clientAuth':!![]},{'name':_0x314de0(0x1a6),'altNames':[{'type':0x2,'value':_0xbe42de},{'type':0x2,'value':'*.'+_0xbe42de}]}]),_0x3f3593[_0x314de0(0x19f)](_0x586078['key'],_0x259732['md'][_0x314de0(0x105)][_0x314de0(0xf6)]()),{'key':_0x259732[_0x314de0(0x149)]['privateKeyToPem'](_0x34b611['privateKey']),'cert':_0x259732[_0x314de0(0x149)][_0x314de0(0xe0)](_0x3f3593)};}_0x58678d[_0x5cbfc4(0xba)]={'generateRootCA':_0x3b4e01,'loadRootCA':_0x5370cf,'generateLeafCert':_0x5ed984,'isCertExpired':_0x2eff85,'ROOT_CA_CERT_PATH':_0x223bdd,'ROOT_CA_KEY_PATH':_0x344f6f};}}),require_generate=__commonJS({'../app/src/mitm/cert/generate.js'(_0x5599a3,_0x14af93){const _0x27c8ff=a0_0x5eeb31;var _0x14b59c=require('path'),_0x23274a=require('fs'),{MITM_DIR:_0x5bc21e}=require_paths(),{generateRootCA:_0x29a87f,loadRootCA:_0xed14c5,generateLeafCert:_0x2beac2}=require_rootCA();async function _0x260bfb(){return await _0x29a87f();}function _0x1c1459(_0x34c724){const _0x11a1ad=a0_0x4d49;try{const _0x128049=_0xed14c5(),_0x212a3e=_0x2beac2(_0x34c724,_0x128049);return{'key':_0x212a3e[_0x11a1ad(0x13f)],'cert':_0x212a3e['cert']};}catch(_0x36500b){return console['error'](_0x11a1ad(0x157)+_0x34c724+':',_0x36500b[_0x11a1ad(0x194)]),null;}}_0x14af93[_0x27c8ff(0xba)]={'generateCert':_0x260bfb,'getCertForDomain':_0x1c1459};}}),require_base=__commonJS({'../app/src/mitm/handlers/base.js'(_0x873bc,_0x333631){const _0x236725=a0_0x5eeb31;var {log:_0x37926b,err:_0x97a59c}=require_logger(),_0x2154d7=_0x236725(0x116),_0x13a345=process.env.ROUTER_API_KEY;async function _0x5955a5(_0x33ae2f,_0x2731ec=_0x236725(0x18f)){const _0x3a449f=_0x236725,_0x4ca8ac=await fetch(''+_0x2154d7+_0x2731ec,{'method':_0x3a449f(0x143),'headers':{'Content-Type':'application/json',..._0x13a345&&{'Authorization':_0x3a449f(0x13b)+_0x13a345}},'body':JSON[_0x3a449f(0xfa)](_0x33ae2f)});if(!_0x4ca8ac['ok']){const _0x266455=await _0x4ca8ac['text']()[_0x3a449f(0x170)](()=>'');throw new Error('['+_0x4ca8ac[_0x3a449f(0x1aa)]+_0x3a449f(0xc4)+_0x266455);}return _0x4ca8ac;}async function _0xbf1e3c(_0x52737d,_0x19b89f){const _0x4e3c19=_0x236725,_0x1605f=_0x52737d['headers'][_0x4e3c19(0x139)](_0x4e3c19(0x173))||_0x4e3c19(0x174),_0x2ef1d0={'Content-Type':_0x1605f,'Cache-Control':_0x4e3c19(0x15d),'Connection':'keep-alive'};if(_0x1605f[_0x4e3c19(0xd7)](_0x4e3c19(0xe6)))_0x2ef1d0[_0x4e3c19(0xcf)]='no';_0x19b89f['writeHead'](0xc8,_0x2ef1d0);if(!_0x52737d[_0x4e3c19(0xf8)]){_0x19b89f[_0x4e3c19(0x11f)](await _0x52737d[_0x4e3c19(0x193)]()[_0x4e3c19(0x170)](()=>''));return;}const _0x43346c=_0x52737d[_0x4e3c19(0xf8)]['getReader'](),_0xef80f=new TextDecoder();while(!![]){const {done:_0x867f67,value:_0x2cf217}=await _0x43346c['read']();if(_0x867f67){_0x19b89f['end']();break;}_0x19b89f[_0x4e3c19(0xc5)](_0xef80f[_0x4e3c19(0xd8)](_0x2cf217,{'stream':!![]}));}}_0x333631['exports']={'fetchRouter':_0x5955a5,'pipeSSE':_0xbf1e3c};}}),require_antigravity=__commonJS({'../app/src/mitm/handlers/antigravity.js'(_0x794785,_0x124ccf){const _0x1931ce=a0_0x5eeb31;var {err:_0xb0dc30}=require_logger(),{fetchRouter:_0x2b97b5,pipeSSE:_0x209270}=require_base();async function _0x6dc310(_0x433b43,_0x56daaf,_0x16b07f,_0x50e6bb){const _0x3a7777=a0_0x4d49;try{const _0x232b31=JSON[_0x3a7777(0x123)](_0x16b07f[_0x3a7777(0x155)]());_0x232b31['model']=_0x50e6bb;const _0x5eef1d=await _0x2b97b5(_0x232b31);await _0x209270(_0x5eef1d,_0x56daaf);}catch(_0x5077e6){_0xb0dc30(_0x3a7777(0xce)+_0x5077e6['message']);if(!_0x56daaf[_0x3a7777(0xbb)])_0x56daaf[_0x3a7777(0x10b)](0x1f4,{'Content-Type':'application/json'});_0x56daaf[_0x3a7777(0x11f)](JSON[_0x3a7777(0xfa)]({'error':{'message':_0x5077e6[_0x3a7777(0x194)],'type':_0x3a7777(0x14f)}}));}}_0x124ccf[_0x1931ce(0xba)]={'intercept':_0x6dc310};}}),require_copilot=__commonJS({'../app/src/mitm/handlers/copilot.js'(_0xff040,_0x3458f3){const _0x5148d3=a0_0x5eeb31;var {err:_0x5cd759}=require_logger(),{fetchRouter:_0x4371d1,pipeSSE:_0x5567f4}=require_base(),_0x8490a5={'/chat/completions':_0x5148d3(0x18f),'/v1/messages':_0x5148d3(0x122),'/responses':'/v1/responses'};function _0x3f5eab(_0x5efe95){const _0x1ae36e=_0x5148d3;for(const [_0x3dbda2,_0x4eb1ee]of Object['entries'](_0x8490a5)){if(_0x5efe95[_0x1ae36e(0xd7)](_0x3dbda2))return _0x4eb1ee;}return _0x1ae36e(0x18f);}async function _0xa7cf6c(_0x538604,_0x118e3f,_0xc97564,_0x4229e6){const _0x25c679=_0x5148d3;try{const _0x2e46d5=JSON[_0x25c679(0x123)](_0xc97564['toString']());_0x2e46d5[_0x25c679(0x12e)]=_0x4229e6;const _0x1af8dc=_0x3f5eab(_0x538604[_0x25c679(0x161)]),_0x4b5db9=await _0x4371d1(_0x2e46d5,_0x1af8dc);await _0x5567f4(_0x4b5db9,_0x118e3f);}catch(_0x459f16){_0x5cd759('[copilot]\x20'+_0x459f16['message']);if(!_0x118e3f['headersSent'])_0x118e3f[_0x25c679(0x10b)](0x1f4,{'Content-Type':_0x25c679(0x174)});_0x118e3f[_0x25c679(0x11f)](JSON[_0x25c679(0xfa)]({'error':{'message':_0x459f16[_0x25c679(0x194)],'type':'mitm_error'}}));}}_0x3458f3[_0x5148d3(0xba)]={'intercept':_0xa7cf6c};}}),require_kiro=__commonJS({'../app/src/mitm/dev/kiro.js'(_0x19f21f,_0x3e388d){const _0x2d9803=a0_0x5eeb31;var _0x4c3d65=require(_0x2d9803(0x1a8)),{log:_0x54eb93,err:_0x29ffb7}=require_logger(),{fetchRouter:_0x50e48b}=require_base();function _0x287b4b(_0x5d238a){const _0x21141c=_0x2d9803;if(typeof _0x5d238a!==_0x21141c(0x129))return![];return _0x5d238a[_0x21141c(0xd7)](_0x21141c(0x107))||_0x5d238a[_0x21141c(0xd7)](_0x21141c(0x100));}function _0x3d0c84(_0x2437c7,_0xe7800b){const _0x4cf894=_0x2d9803,_0x4f32a2=_0x2437c7[_0x4cf894(0x163)]||{},_0x4bc8ea=_0x4f32a2[_0x4cf894(0xfb)]||[],_0x461bc7=_0x4f32a2[_0x4cf894(0xbe)]?.[_0x4cf894(0x1a7)],_0x32bc6a=[];let _0x35904f=![];for(const _0x54b234 of _0x4bc8ea){if(_0x54b234[_0x4cf894(0x1a7)]){const _0x5f4ec3=_0x54b234[_0x4cf894(0x1a7)],_0x7d3b9e=(_0x5f4ec3[_0x4cf894(0x156)]||'')['trim'](),_0x2cb4cf=_0x5f4ec3[_0x4cf894(0xd2)]?.[_0x4cf894(0xff)];if(!_0x35904f&&_0x287b4b(_0x7d3b9e)){_0x32bc6a[_0x4cf894(0x159)]({'role':'system','content':_0x7d3b9e}),_0x35904f=!![];if(_0x2cb4cf?.[_0x4cf894(0x136)]>0x0)for(const _0x6bca53 of _0x2cb4cf){_0x32bc6a[_0x4cf894(0x159)]({'role':'tool','tool_call_id':_0x6bca53[_0x4cf894(0xda)],'content':_0x6bca53['content']?.[_0x4cf894(0x151)](_0x111c23=>_0x111c23[_0x4cf894(0x193)])[_0x4cf894(0x17e)]('\x0a')||''});}continue;}if(_0x2cb4cf?.['length']>0x0)for(const _0x540c74 of _0x2cb4cf){_0x32bc6a['push']({'role':_0x4cf894(0xe7),'tool_call_id':_0x540c74['toolUseId'],'content':_0x540c74[_0x4cf894(0x156)]?.[_0x4cf894(0x151)](_0x2e33ad=>_0x2e33ad['text'])[_0x4cf894(0x17e)]('\x0a')||''});}if(_0x7d3b9e)_0x32bc6a[_0x4cf894(0x159)]({'role':_0x4cf894(0xf4),'content':_0x7d3b9e});}else{if(_0x54b234[_0x4cf894(0x187)]){const _0x3f6b41=_0x54b234['assistantResponseMessage'],_0x3a1311={'role':'assistant','content':_0x3f6b41[_0x4cf894(0x156)]||''};_0x3f6b41[_0x4cf894(0xf5)]?.[_0x4cf894(0x136)]>0x0&&(_0x3a1311[_0x4cf894(0xf2)]=_0x3f6b41[_0x4cf894(0xf5)][_0x4cf894(0x151)](_0x164ef5=>({'id':_0x164ef5[_0x4cf894(0xda)],'type':'function','function':{'name':_0x164ef5['name'],'arguments':JSON[_0x4cf894(0xfa)](_0x164ef5[_0x4cf894(0x18e)]||{})}}))),_0x32bc6a['push'](_0x3a1311);}}}if(_0x461bc7){const _0xb8978d=_0x461bc7[_0x4cf894(0xd2)]?.[_0x4cf894(0xff)];if(_0xb8978d?.[_0x4cf894(0x136)]>0x0)for(const _0x3d8b9c of _0xb8978d){_0x32bc6a[_0x4cf894(0x159)]({'role':_0x4cf894(0xe7),'tool_call_id':_0x3d8b9c[_0x4cf894(0xda)],'content':_0x3d8b9c['content']?.[_0x4cf894(0x151)](_0x2839bc=>_0x2839bc['text'])[_0x4cf894(0x17e)]('\x0a')||''});}const _0x38a396=(_0x461bc7[_0x4cf894(0x156)]||'')[_0x4cf894(0x16c)]();if(_0x38a396)_0x32bc6a[_0x4cf894(0x159)]({'role':_0x4cf894(0xf4),'content':_0x38a396});}const _0x4bde3a={'model':_0xe7800b,'messages':_0x32bc6a,'stream':!![],'stream_options':{'include_usage':!![]}},_0x45fdb6=_0x461bc7?.[_0x4cf894(0xd2)]?.[_0x4cf894(0x14b)];return _0x45fdb6?.['length']>0x0&&(_0x4bde3a[_0x4cf894(0x14b)]=_0x45fdb6[_0x4cf894(0x151)](_0x5bc5b6=>({'type':_0x4cf894(0x124),'function':{'name':_0x5bc5b6[_0x4cf894(0xc6)][_0x4cf894(0x19b)],'description':_0x5bc5b6[_0x4cf894(0xc6)][_0x4cf894(0xbd)]||_0x5bc5b6['toolSpecification'][_0x4cf894(0x19b)],'parameters':_0x5bc5b6[_0x4cf894(0xc6)]['inputSchema']?.['json']||{'type':_0x4cf894(0x190),'properties':{}}}}))),_0x4bde3a;}function _0x2a9682(_0x5db620,_0x2e4d84){const _0x517182=_0x2d9803,_0x630c17=Buffer[_0x517182(0x138)](JSON['stringify'](_0x2e4d84),'utf8'),_0x3c9a66=[[_0x517182(0x10f),_0x5db620],[_0x517182(0x13d),_0x517182(0x174)],[':message-type','event']],_0x554654=[];for(const [_0x1f9b75,_0x24dc6c]of _0x3c9a66){const _0x188874=Buffer[_0x517182(0x138)](_0x1f9b75,_0x517182(0x142)),_0x499c1c=Buffer[_0x517182(0x138)](_0x24dc6c,'utf8'),_0x3d85d9=Buffer[_0x517182(0x198)](0x1+_0x188874[_0x517182(0x136)]+0x1+0x2+_0x499c1c[_0x517182(0x136)]);let _0x321458=0x0;_0x3d85d9[_0x321458++]=_0x188874[_0x517182(0x136)],_0x188874[_0x517182(0x171)](_0x3d85d9,_0x321458),_0x321458+=_0x188874[_0x517182(0x136)],_0x3d85d9[_0x321458++]=0x7,_0x3d85d9['writeUInt16BE'](_0x499c1c[_0x517182(0x136)],_0x321458),_0x321458+=0x2,_0x499c1c[_0x517182(0x171)](_0x3d85d9,_0x321458),_0x554654[_0x517182(0x159)](_0x3d85d9);}const _0xb59406=Buffer[_0x517182(0xdd)](_0x554654),_0x4dadf1=0x4+0x4+0x4+_0xb59406[_0x517182(0x136)]+_0x630c17[_0x517182(0x136)]+0x4,_0x39ef5d=Buffer['alloc'](_0x4dadf1);let _0x4634ff=0x0;_0x39ef5d[_0x517182(0x12b)](_0x4dadf1,_0x4634ff),_0x4634ff+=0x4,_0x39ef5d[_0x517182(0x12b)](_0xb59406['length'],_0x4634ff),_0x4634ff+=0x4;const _0x4be8ab=_0x4c3d65['crc32'](_0x39ef5d[_0x517182(0x131)](0x0,0x8));_0x39ef5d['writeUInt32BE'](_0x4be8ab,_0x4634ff),_0x4634ff+=0x4,_0xb59406[_0x517182(0x171)](_0x39ef5d,_0x4634ff),_0x4634ff+=_0xb59406[_0x517182(0x136)],_0x630c17[_0x517182(0x171)](_0x39ef5d,_0x4634ff),_0x4634ff+=_0x630c17['length'];const _0x4e9603=_0x4c3d65[_0x517182(0xd3)](_0x39ef5d[_0x517182(0x131)](0x0,_0x4dadf1-0x4));return _0x39ef5d[_0x517182(0x12b)](_0x4e9603,_0x4634ff),_0x39ef5d;}async function _0x2c6ab0(_0x377117,_0x33d7c7,_0x731013,_0x4522c4,_0x3140f2){const _0x5b3126=_0x2d9803;try{const _0x164696=JSON[_0x5b3126(0x123)](_0x731013[_0x5b3126(0x155)]()),_0xef6fdb=_0x164696[_0x5b3126(0x163)]?.['conversationId']||_0x5b3126(0x115);_0x54eb93('🔷\x20[KIRO]\x20intercept\x20|\x20conversationId='+_0xef6fdb+_0x5b3126(0xf1)+_0x4522c4);const _0x1bce13=_0x3d0c84(_0x164696,_0x4522c4);_0x54eb93(_0x5b3126(0x140)+_0x1bce13[_0x5b3126(0x120)][_0x5b3126(0x136)]+_0x5b3126(0x103)+(_0x1bce13['tools']?.[_0x5b3126(0x136)]||0x0));_0x1bce13[_0x5b3126(0x14b)]?.[_0x5b3126(0x136)]&&_0x54eb93(_0x5b3126(0x11d)+_0x1bce13['tools'][_0x5b3126(0x151)](_0x32c7cf=>_0x32c7cf[_0x5b3126(0x124)]['name'])[_0x5b3126(0x17e)](',\x20'));if(!_0x1bce13[_0x5b3126(0x120)]['length'])return _0x29ffb7('[KIRO]\x20No\x20messages\x20after\x20conversion\x20—\x20passthrough'),_0x3140f2(_0x377117,_0x33d7c7,_0x731013);const _0x47e49e=await _0x50e48b(_0x1bce13);_0x33d7c7[_0x5b3126(0x10b)](0xc8,{'Content-Type':_0x5b3126(0xf9),'Cache-Control':_0x5b3126(0x15d),'Connection':_0x5b3126(0x152),'Transfer-Encoding':_0x5b3126(0x126),'x-amzn-RequestId':_0x377117[_0x5b3126(0xc9)][_0x5b3126(0xc7)]||_0xef6fdb,'x-amzn-codewhisperer-conversation-id':_0xef6fdb,'X-XSS-Protection':_0x5b3126(0x117),'X-Frame-Options':_0x5b3126(0x1a3),'X-Content-Type-Options':_0x5b3126(0x127)});const _0x51f339=_0x47e49e[_0x5b3126(0xf8)][_0x5b3126(0xeb)](),_0x2a8c5f=new TextDecoder();let _0x319531='',_0x31cc2f=![];const _0x5c6965={};let _0xbadd=null;while(!![]){const {done:_0x2a95bc,value:_0x85126}=await _0x51f339['read']();if(_0x2a95bc)break;_0x319531+=_0x2a8c5f[_0x5b3126(0xd8)](_0x85126,{'stream':!![]});const _0x54daf5=_0x319531[_0x5b3126(0xe5)]('\x0a');_0x319531=_0x54daf5['pop']();for(const _0x10b811 of _0x54daf5){if(!_0x10b811[_0x5b3126(0x15a)](_0x5b3126(0xb9)))continue;const _0xe621fd=_0x10b811[_0x5b3126(0x131)](0x6)[_0x5b3126(0x16c)]();if(_0xe621fd===_0x5b3126(0xde))continue;let _0x1790a7;try{_0x1790a7=JSON['parse'](_0xe621fd);}catch{continue;}if(_0x1790a7['usage'])_0xbadd=_0x1790a7['usage'];const _0x312685=_0x1790a7[_0x5b3126(0x112)]?.[0x0];if(!_0x312685)continue;const _0x403b54=_0x312685[_0x5b3126(0x106)]||{},_0x41c04c=_0x312685[_0x5b3126(0xfe)];_0x403b54[_0x5b3126(0x156)]&&_0x33d7c7[_0x5b3126(0xc5)](_0x2a9682('assistantResponseEvent',{'content':_0x403b54[_0x5b3126(0x156)],'modelId':_0x4522c4}));if(_0x403b54['tool_calls']){_0x31cc2f=!![];for(const _0x217aa9 of _0x403b54[_0x5b3126(0xf2)]){const _0x1ffae9=_0x217aa9[_0x5b3126(0x17c)]??0x0;if(!_0x5c6965[_0x1ffae9])_0x5c6965[_0x1ffae9]={'id':'','name':'','args':''};if(_0x217aa9['id'])_0x5c6965[_0x1ffae9]['id']=_0x217aa9['id'];if(_0x217aa9[_0x5b3126(0x124)]?.[_0x5b3126(0x19b)])_0x5c6965[_0x1ffae9][_0x5b3126(0x19b)]=_0x217aa9[_0x5b3126(0x124)][_0x5b3126(0x19b)];if(_0x217aa9[_0x5b3126(0x124)]?.[_0x5b3126(0x165)])_0x5c6965[_0x1ffae9][_0x5b3126(0xcc)]+=_0x217aa9[_0x5b3126(0x124)]['arguments'];}}if(_0x41c04c){if(_0x31cc2f){for(const _0x3ae87e of Object[_0x5b3126(0x16d)](_0x5c6965)){_0x54eb93(_0x5b3126(0x16e)+_0x3ae87e['id']+_0x5b3126(0x176)+_0x3ae87e[_0x5b3126(0x19b)]),_0x33d7c7[_0x5b3126(0xc5)](_0x2a9682(_0x5b3126(0x16a),{'name':_0x3ae87e[_0x5b3126(0x19b)],'toolUseId':_0x3ae87e['id']}));const _0x53dd93=_0x3ae87e[_0x5b3126(0xcc)]||'{}',_0x3d1752=0x20;for(let _0x3f9a4e=0x0;_0x3f9a4e<_0x53dd93[_0x5b3126(0x136)];_0x3f9a4e+=_0x3d1752){_0x33d7c7['write'](_0x2a9682(_0x5b3126(0x16a),{'input':_0x53dd93[_0x5b3126(0x131)](_0x3f9a4e,_0x3f9a4e+_0x3d1752),'name':_0x3ae87e[_0x5b3126(0x19b)],'toolUseId':_0x3ae87e['id']}));}_0x33d7c7[_0x5b3126(0xc5)](_0x2a9682(_0x5b3126(0x16a),{'name':_0x3ae87e[_0x5b3126(0x19b)],'stop':!![],'toolUseId':_0x3ae87e['id']}));}_0x33d7c7['write'](_0x2a9682('assistantResponseEvent',{'content':'','modelId':_0x4522c4}));}const _0x5bb19f=_0xbadd?.[_0x5b3126(0x166)]||0x0,_0x5d7ed7=_0xbadd?.[_0x5b3126(0xcd)]||0x0,_0x2899fd=_0x5bb19f>0x0?_0x5bb19f/0x30d40*0x64:1.5,_0x486353=_0x5d7ed7>0x0?_0x5d7ed7*0.000004:0.001;_0x33d7c7[_0x5b3126(0xc5)](_0x2a9682(_0x5b3126(0xea),{'contextUsagePercentage':_0x2899fd})),_0x33d7c7[_0x5b3126(0xc5)](_0x2a9682('meteringEvent',{'unit':_0x5b3126(0xfd),'unitPlural':_0x5b3126(0x118),'usage':_0x486353})),_0x54eb93(_0x5b3126(0xc8)+_0x41c04c+_0x5b3126(0x144)+_0x31cc2f);}}}_0x33d7c7[_0x5b3126(0x11f)]();}catch(_0x28d7e3){_0x29ffb7(_0x5b3126(0x125)+_0x28d7e3[_0x5b3126(0x194)]);if(!_0x33d7c7[_0x5b3126(0xbb)])_0x33d7c7[_0x5b3126(0x10b)](0x1f4,{'Content-Type':'application/json'});_0x33d7c7[_0x5b3126(0x11f)](JSON[_0x5b3126(0xfa)]({'error':{'message':_0x28d7e3['message'],'type':'mitm_error'}}));}}_0x3e388d[_0x2d9803(0xba)]={'intercept':_0x2c6ab0};}}),https=require(a0_0x5eeb31(0xd4)),fs=require('fs'),path=require(a0_0x5eeb31(0xbf)),dns=require('dns'),{promisify}=require(a0_0x5eeb31(0x16f)),{log,err}=require_logger(),{TARGET_HOSTS,URL_PATTERNS,getToolForHost}=require_config(),{DATA_DIR,MITM_DIR}=require_paths(),{getCertForDomain}=require_generate(),DB_FILE=path[a0_0x5eeb31(0x17e)](DATA_DIR,a0_0x5eeb31(0x12f)),LOCAL_PORT=0x1bb,ENABLE_FILE_LOG=![],LOG_DIR=path[a0_0x5eeb31(0x17e)](DATA_DIR,a0_0x5eeb31(0x12c),a0_0x5eeb31(0x135)),INTERNAL_REQUEST_HEADER={'name':a0_0x5eeb31(0x178),'value':'local'};if(ENABLE_FILE_LOG&&!fs[a0_0x5eeb31(0xd6)](LOG_DIR))fs[a0_0x5eeb31(0xc1)](LOG_DIR,{'recursive':!![]});var handlers={'antigravity':require_antigravity(),'copilot':require_copilot(),'kiro':require_kiro()},certCache=new Map();function sniCallback(_0x42765b,_0x71e21a){const _0x1acb3e=a0_0x5eeb31;try{if(certCache[_0x1acb3e(0x169)](_0x42765b))return _0x71e21a(null,certCache[_0x1acb3e(0x139)](_0x42765b));const _0x353113=getCertForDomain(_0x42765b);if(!_0x353113)return _0x71e21a(new Error(_0x1acb3e(0x157)+_0x42765b));const _0x16f8a4=require(_0x1acb3e(0x14e))[_0x1acb3e(0x102)]({'key':_0x353113[_0x1acb3e(0x13f)],'cert':_0x353113[_0x1acb3e(0xc0)]});certCache[_0x1acb3e(0xe1)](_0x42765b,_0x16f8a4),log(_0x1acb3e(0x108)+_0x42765b),_0x71e21a(null,_0x16f8a4);}catch(_0xe053eb){err(_0x1acb3e(0x197)+_0x42765b+':\x20'+_0xe053eb[_0x1acb3e(0x194)]),_0x71e21a(_0xe053eb);}}var sslOptions;try{sslOptions={'key':fs[a0_0x5eeb31(0x11c)](path[a0_0x5eeb31(0x17e)](MITM_DIR,a0_0x5eeb31(0x150))),'cert':fs['readFileSync'](path['join'](MITM_DIR,'rootCA.crt')),'SNICallback':sniCallback};}catch(a0_0x566cfb){err(a0_0x5eeb31(0x177)+a0_0x566cfb['message']),process[a0_0x5eeb31(0x10c)](0x1);}var cachedTargetIPs={},CACHE_TTL_MS=0x5*0x3c*0x3e8;async function resolveTargetIP(_0xd7a690){const _0x3c2747=a0_0x5eeb31,_0x36307b=cachedTargetIPs[_0xd7a690];if(_0x36307b&&Date[_0x3c2747(0x19c)]()-_0x36307b['ts']<CACHE_TTL_MS)return _0x36307b['ip'];const _0x5acc87=new dns[(_0x3c2747(0x10e))]();_0x5acc87[_0x3c2747(0xe8)]([_0x3c2747(0x179)]);const _0x2b639d=promisify(_0x5acc87[_0x3c2747(0x195)]['bind'](_0x5acc87)),_0x4b575c=await _0x2b639d(_0xd7a690);return cachedTargetIPs[_0xd7a690]={'ip':_0x4b575c[0x0],'ts':Date[_0x3c2747(0x19c)]()},cachedTargetIPs[_0xd7a690]['ip'];}function collectBodyRaw(_0x10b4b2){return new Promise((_0x2bcd5d,_0x3f06e2)=>{const _0x3bc1b5=a0_0x4d49,_0xef9cac=[];_0x10b4b2['on'](_0x3bc1b5(0x114),_0x13e67b=>_0xef9cac[_0x3bc1b5(0x159)](_0x13e67b)),_0x10b4b2['on'](_0x3bc1b5(0x11f),()=>_0x2bcd5d(Buffer[_0x3bc1b5(0xdd)](_0xef9cac))),_0x10b4b2['on'](_0x3bc1b5(0x191),_0x3f06e2);});}function extractModel(_0x422976,_0x1fea21){const _0x22a479=a0_0x5eeb31,_0x22fd59=_0x422976['match'](/\/models\/([^/:]+)/);if(_0x22fd59)return _0x22fd59[0x1];try{const _0x43691b=JSON[_0x22a479(0x123)](_0x1fea21[_0x22a479(0x155)]());if(_0x43691b[_0x22a479(0x163)])return _0x43691b[_0x22a479(0x163)][_0x22a479(0xbe)]?.[_0x22a479(0x1a7)]?.['modelId']||null;return _0x43691b[_0x22a479(0x12e)]||null;}catch{return null;}}function a0_0x42bd(){const _0xad6c2d=['y3jLyxrL','zw4Tvvm','yM9KEq','yxbWBgLJyxrPB24VDM5KlMfTyxPVBI5LDMvUDhn0CMvHBq','C3rYAw5NAwz5','AgLZDg9YEq','ntu1nJKZmevwuKzksq','y3jLzgL0','zMLUAxnOx3jLyxnVBG','Dg9VBfjLC3vSDhm','ww91igfYzsbHBIbPBNrLBNqGy2XHC3nPzMLLCG','mtq4nti3EK9ptuXy','y3jLyxrLu2vJDxjLq29UDgv4Da','ihWGDg9VBhm9','ow1lCw9Qra','C2HHmJu2','zgvSDge','pgLKzw50Axr5pG','8j+uKcbdzxj0igDLBMvYyxrLzdOG','4PQHigLUDgvYy2vWDcb8ia','mtHHCvDLCM0','D3jPDgvizwfK','zxHPDa','Dg9mB2nHBgvuAw1Lu3rYAw5N','uMvZB2X2zxi','oMv2zw50lxr5Cgu','Dg9ju09tDhjPBMC','Cs51CY1Lyxn0lteUyw1HEM9UyxDZlMnVBq','y2HVAwnLCW','BM90qwz0zxi','zgf0yq','Dw5RBM93BG','Ahr0CdOVl2XVy2fSAg9ZDdOYmdeYoa','mtSGBw9Kzt1IBg9JAW','y3jLzgL0CW','8j+uKcbsB290ienbigv4CgLYzwqGB3iGzxHWAxjPBMCGC29VBIdIGjqGCMvNzw5LCMf0Aw5NlI4U','DMfSAwrPDhK','zxH0s2v5vxnHz2u','CMvHzezPBgvtEw5J','8j+uTYbBs0Lst10GDg9VBhm6ia','D3jPDgvgAwXLu3LUyW','zw5K','BwvZC2fNzxm','qxbWrgf0yq','l3yXl21LC3nHz2vZ','CgfYC2u','zNvUy3rPB24','w0TjuK9Dia','y2H1BMTLza','BM9ZBMLMzG','ChvIBgLJs2v5','C3rYAw5N','yxbPlMLUzgL2Awr1ywWUz2L0AhvIy29WAwXVDc5JB20','D3jPDgvvsw50mZjcrq','Bg9NCW','Ag9ZDa','Bw9KzwW','zgiUANnVBG','lMPZB24','C2XPy2u','mty5nZm0nezxugT5Ea','C3vIAMvJDeTLEuLKzw50AwzPzxi','yMfZAwndB25ZDhjHAw50CW','BwL0Bq','BgvUz3rO','C3vIAMvJDa','zNjVBq','z2v0','Dw5SAw5Ru3LUyW','qMvHCMvYia','ovjVDxrLCIbnsvrnifjVB3qGq0e','oMnVBNrLBNqTDhLWzq','C29Tzq','A2v5','8j+uTYbBs0Lst10Gy29UDMvYDgvKihWGBwvZC2fNzxm9','l0jPzgLbChbLBMq','DxrMoa','ue9tva','igHHC1rVB2XdywXSCZ0','y29Kzq','iokgKIa','z2v0t3DUuhjVCgvYDhLoyw1LCW','Aw50zxjJzxb0','CgTP','4PQHigLUDgvYy2vWDcb8ign1CNnVCIb8ihbYB3rV','Dg9VBhm','4PYfifjVB3qGq0eGz2vUzxjHDgvKihn1y2nLC3nMDwXSEq','C2v0sxnZDwvY','DgXZ','BwL0Bv9LCNjVCG','CM9VDenblMTLEq','BwfW','A2vLCc1HBgL2zq','Ag9TzwrPCG','B3jNyw5PEMf0Aw9UtMfTzq','Dg9tDhjPBMC','y29UDgvUDa','rMfPBgvKihrVigDLBMvYyxrLignLCNqGzM9Yia','BM90qMvMB3jL','ChvZAa','C3rHCNrZv2L0Aa','D2LUmZi','mtK4odG0zeLerMr6','BM8Ty2fJAgu','y3jLyxrLu2vYDMvY','y2vYDgLMAwnHDgvgCM9TugvT','ChjPDMf0zuTLEq','DxjS','z2vUzxjHDgvlzxLqywLY','y29UDMvYC2f0Aw9Uu3rHDgu','Bwv0Ag9K','yxjNDw1LBNrZ','ChjVBxb0x3rVA2vUCW','mtaYnta0mfb4ywP3zG','CgXHDgzVCM0','AgfZ','Dg9VBfvZzuv2zw50','ruferfjjtLvtrq','DhjPBq','DMfSDwvZ','8j+uTYbBs0Lst10GDg9VBfvZzuv2zw50ihWGAwq9','DxrPBa','y2f0y2G','y29WEq','CgLWzq','y29UDgvUDc10ExbL','yxbWBgLJyxrPB24VANnVBG','z2v0rNvSBfLLyxi','ig5HBwu9','uM9VDcbdqsbUB3qGzM91BMq6ia','Ec1Yzxf1zxn0lxnVDxjJzq','oc44lJGUoa','C2v0rxH0zw5ZAw9UCW','CgLK','Aw5KzxG','CMvWBgfJzq','AM9PBG','A2LYBW','xsbTB2rLBd0I','nJy4nta0CLPrEwHi','CMfUzg9T','oMDLBMvYyxrLq29UDgvUDa','8j+uJsbB','C2v0rNvSBfLLyxi','yxr0CMLIDxrLCW','yxnZAxn0yw50uMvZCg9UC2vnzxnZywDL','igfSCMvHzhKGAw4GDxnL','yxbPmI5JDxjZB3iUC2G','l1j1BLbVBgW','zMLUza','4O+PihbHC3n0AhjVDwDOihWGBM8GBwfWCgLUzYb8ia','y2XVC2u','Aw5WDxq','l3yXl2nOyxqVy29TCgXLDgLVBNm','B2jQzwn0','zxjYB3i','xsdINyWGw01jve1Dia','Dgv4Da','BwvZC2fNzq','CMvZB2X2ztq','ihWG','u05jigvYCM9YigzVCIa','ywXSB2m','nMTVAKz1vq','l2nOyxqVy29TCgXLDgLVBNm','BMfTzq','BM93','mJe2mteWv1v5Exv6','C3rHDhvZq29Kzq','C2LNBG','u0LhqLjfquS','ugfZC3rOCM91z2GGzxjYB3i6ia','C2vYAwfStNvTyMvY','revowq','y29WAwXVDa','BgLZDgvU','C3vIAMvJDefSDe5HBwu','DxnLCKLUChv0twvZC2fNzq','EMXPyG','ovjVDxrLCG','C3rHDhvZ','zgf0ytOG','zxHWB3j0CW','AgvHzgvYC1nLBNq','l1j1BG','zgvZy3jPChrPB24','y3vYCMvUDe1LC3nHz2u','Cgf0Aa','y2vYDa','BwTKAxjtEw5J','y3jLyxrLq2vYDgLMAwnHDgu','y291BNrYEu5HBwu','xtOG','D3jPDgu','Dg9VBfnWzwnPzMLJyxrPB24','yw16lxnKAY1PBNzVy2f0Aw9UlwLK','8j+uTYbBs0Lst10Gzg9Uzsb8igzPBMLZAfjLyxnVBJ0','AgvHzgvYCW','uM9HBwLUzW','y29TBw9UtMfTzq','yxjNCW','Dg90ywXFDg9Rzw5Z','w2fUDgLNCMf2Axr5xsa','wc1by2nLBc1cDwzMzxjPBMC','xsbBtuLutv0G','y2XVDwrJB2rLlxbHlMDVB2DSzwfWAxmUy29T','DxnLCKLUChv0twvZC2fNzunVBNrLEhq','y3jJmZi','Ahr0Chm','ChjPDMf0zuTLEvrVugvT','zxHPC3rZu3LUyW','Aw5JBhvKzxm','zgvJB2rL','oxjVDxrLCG','Dg9VBfvZzuLK','A2v5vxnHz2u','8j+uKcbhzw5LCMf0Aw5NifjVB3qGq0eGy2vYDgLMAwnHDguUlI4','y29Uy2f0','w0rptKvD','Bg9N','y2vYDgLMAwnHDgvuB1bLBq','C2v0','BwL0BufSAwfZ','CNnH','ugvYBwLZC2LVBIbKzw5PzwqGzM9YihbVCNqG','C3bSAxq','Dgv4Dc9LDMvUDc1ZDhjLyw0','Dg9VBa','C2v0u2vYDMvYCW','ug9YDca','y29UDgv4DfvZywDLrxzLBNq','z2v0uMvHzgvY','y3vYC29Y','u0Lhvevstq','vw5Oyw5KBgvKigvYCM9YoIa','l3jLC3bVBNnLCW','8j+AGcbtzxj2zxiGCMvHzhKGB24GoG','ihWGBw9KzwW9','Dg9VBf9JywXSCW','zgfPBhKTy2XVDwrJB2rLlxbHlMDVB2DSzwfWAxmUy29T','DxnLCG','Dg9VBfvZzxm'];a0_0x42bd=function(){return _0xad6c2d;};return a0_0x42bd();}function getMappedModel(_0x2557f9,_0x45f10e){const _0xaa3e8c=a0_0x5eeb31;if(!_0x45f10e)return null;try{if(!fs[_0xaa3e8c(0xd6)](DB_FILE))return null;const _0x2d1425=JSON[_0xaa3e8c(0x123)](fs[_0xaa3e8c(0x11c)](DB_FILE,'utf-8')),_0x2619a4=_0x2d1425[_0xaa3e8c(0xe2)]?.[_0x2557f9];if(!_0x2619a4)return null;if(_0x2619a4[_0x45f10e])return _0x2619a4[_0x45f10e];const _0x304b3d=Object['keys'](_0x2619a4)[_0xaa3e8c(0x18b)](_0x2bee6a=>_0x2bee6a&&_0x2619a4[_0x2bee6a]&&(_0x45f10e[_0xaa3e8c(0x15a)](_0x2bee6a)||_0x2bee6a[_0xaa3e8c(0x15a)](_0x45f10e)));return _0x304b3d?_0x2619a4[_0x304b3d]:null;}catch{return null;}}function a0_0x4d49(_0x2e4ba3,_0x31caad){_0x2e4ba3=_0x2e4ba3-0xb9;const _0x42bd8e=a0_0x42bd();let _0x4d4934=_0x42bd8e[_0x2e4ba3];if(a0_0x4d49['hrPGbK']===undefined){var _0x396fee=function(_0x229f29){const _0x7a981d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3ac056='',_0x5beb96='';for(let _0x321bc0=0x0,_0x2220b0,_0x41443a,_0x16387a=0x0;_0x41443a=_0x229f29['charAt'](_0x16387a++);~_0x41443a&&(_0x2220b0=_0x321bc0%0x4?_0x2220b0*0x40+_0x41443a:_0x41443a,_0x321bc0++%0x4)?_0x3ac056+=String['fromCharCode'](0xff&_0x2220b0>>(-0x2*_0x321bc0&0x6)):0x0){_0x41443a=_0x7a981d['indexOf'](_0x41443a);}for(let _0x144c1b=0x0,_0x4aa91e=_0x3ac056['length'];_0x144c1b<_0x4aa91e;_0x144c1b++){_0x5beb96+='%'+('00'+_0x3ac056['charCodeAt'](_0x144c1b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5beb96);};a0_0x4d49['QiwpLB']=_0x396fee,a0_0x4d49['pkLyqi']={},a0_0x4d49['hrPGbK']=!![];}const _0xef0e3a=_0x42bd8e[0x0],_0x2ee75b=_0x2e4ba3+_0xef0e3a,_0x4992e4=a0_0x4d49['pkLyqi'][_0x2ee75b];return!_0x4992e4?(_0x4d4934=a0_0x4d49['QiwpLB'](_0x4d4934),a0_0x4d49['pkLyqi'][_0x2ee75b]=_0x4d4934):_0x4d4934=_0x4992e4,_0x4d4934;}function saveRequestLog(_0x5102c6,_0x21151d){const _0xe5a121=a0_0x5eeb31;if(!ENABLE_FILE_LOG)return;try{const _0x30d032=new Date()[_0xe5a121(0x110)]()[_0xe5a121(0x17d)](/[:.]/g,'-'),_0x5ab15a=_0x5102c6[_0xe5a121(0x17d)](/[^a-zA-Z0-9]/g,'_')['substring'](0x0,0x3c),_0x5147e5=JSON[_0xe5a121(0x123)](_0x21151d[_0xe5a121(0x155)]());fs[_0xe5a121(0x11e)](path[_0xe5a121(0x17e)](LOG_DIR,_0x30d032+'_'+_0x5ab15a+_0xe5a121(0x130)),JSON[_0xe5a121(0xfa)](_0x5147e5,null,0x2));}catch{}}async function passthrough(_0x582175,_0x39f9e1,_0x18df9e,_0x437f8e){const _0x3c2038=a0_0x5eeb31,_0x19927a=(_0x582175['headers'][_0x3c2038(0x12d)]||TARGET_HOSTS[0x0])[_0x3c2038(0xe5)](':')[0x0],_0x3aabda=await resolveTargetIP(_0x19927a),_0xc06273=https['request']({'hostname':_0x3aabda,'port':0x1bb,'path':_0x582175[_0x3c2038(0x161)],'method':_0x582175[_0x3c2038(0x164)],'headers':{..._0x582175[_0x3c2038(0xc9)],'host':_0x19927a},'servername':_0x19927a,'rejectUnauthorized':![]},_0x500e49=>{const _0x49f442=_0x3c2038;_0x39f9e1[_0x49f442(0x10b)](_0x500e49[_0x49f442(0x19e)],_0x500e49['headers']);if(!_0x437f8e){_0x500e49[_0x49f442(0x172)](_0x39f9e1);return;}const _0x39d78a=[];_0x500e49['on'](_0x49f442(0x114),_0x4350ea=>{const _0x481189=_0x49f442;_0x39d78a[_0x481189(0x159)](_0x4350ea),_0x39f9e1['write'](_0x4350ea);}),_0x500e49['on'](_0x49f442(0x11f),()=>{const _0xfe50a2=_0x49f442;_0x39f9e1['end']();try{_0x437f8e(Buffer[_0xfe50a2(0xdd)](_0x39d78a),_0x500e49[_0xfe50a2(0xc9)]);}catch{}});});_0xc06273['on'](_0x3c2038(0x191),_0x428915=>{const _0x4f566d=_0x3c2038;err(_0x4f566d(0x1a1)+_0x428915['message']);if(!_0x39f9e1['headersSent'])_0x39f9e1[_0x4f566d(0x10b)](0x1f6);_0x39f9e1[_0x4f566d(0x11f)]('Bad\x20Gateway');});if(_0x18df9e[_0x3c2038(0x136)]>0x0)_0xc06273[_0x3c2038(0xc5)](_0x18df9e);_0xc06273[_0x3c2038(0x11f)]();}var server=https[a0_0x5eeb31(0x15e)](sslOptions,async(_0x37b959,_0x5cd649)=>{const _0x5213d3=a0_0x5eeb31;try{if(_0x37b959[_0x5213d3(0x161)]==='/_mitm_health'){_0x5cd649[_0x5213d3(0x10b)](0xc8,{'Content-Type':_0x5213d3(0x174)}),_0x5cd649['end'](JSON[_0x5213d3(0xfa)]({'ok':!![],'pid':process[_0x5213d3(0x17b)]}));return;}const _0x1f1535=await collectBodyRaw(_0x37b959);if(_0x1f1535['length']>0x0)saveRequestLog(_0x37b959[_0x5213d3(0x161)],_0x1f1535);if(_0x37b959[_0x5213d3(0xc9)][INTERNAL_REQUEST_HEADER[_0x5213d3(0x19b)]]===INTERNAL_REQUEST_HEADER['value'])return passthrough(_0x37b959,_0x5cd649,_0x1f1535);const _0x3ad184=getToolForHost(_0x37b959[_0x5213d3(0xc9)][_0x5213d3(0x12d)]);if(!_0x3ad184)return passthrough(_0x37b959,_0x5cd649,_0x1f1535);const _0x46dabb=URL_PATTERNS[_0x3ad184]||[],_0x2a5dbf=_0x46dabb[_0x5213d3(0x13e)](_0x1d034e=>_0x37b959[_0x5213d3(0x161)]['includes'](_0x1d034e));if(!_0x2a5dbf)return passthrough(_0x37b959,_0x5cd649,_0x1f1535);log(_0x5213d3(0x184)+_0x3ad184+']\x20url='+_0x37b959['url']+'\x20|\x20bodyLen='+_0x1f1535[_0x5213d3(0x136)]);if(_0x3ad184===_0x5213d3(0xec))return log(_0x5213d3(0x14a)),handlers[_0x3ad184][_0x5213d3(0x148)](_0x37b959,_0x5cd649,_0x1f1535,null,passthrough);const _0xa03c94=extractModel(_0x37b959[_0x5213d3(0x161)],_0x1f1535);log('🔍\x20['+_0x3ad184+_0x5213d3(0x180)+_0xa03c94+'\x22');const _0xe4d555=getMappedModel(_0x3ad184,_0xa03c94);if(!_0xe4d555)return log(_0x5213d3(0x18c)+_0x3ad184+_0x5213d3(0x196)+(_0xa03c94||_0x5213d3(0x115))),passthrough(_0x37b959,_0x5cd649,_0x1f1535);return log(_0x5213d3(0x109)+_0x3ad184+'\x20|\x20'+_0xa03c94+_0x5213d3(0x146)+_0xe4d555),handlers[_0x3ad184][_0x5213d3(0x148)](_0x37b959,_0x5cd649,_0x1f1535,_0xe4d555,passthrough);}catch(_0x32f2cd){err(_0x5213d3(0xee)+_0x32f2cd[_0x5213d3(0x194)]);if(!_0x5cd649[_0x5213d3(0xbb)])_0x5cd649[_0x5213d3(0x10b)](0x1f4,{'Content-Type':_0x5213d3(0x174)});_0x5cd649[_0x5213d3(0x11f)](JSON['stringify']({'error':{'message':_0x32f2cd[_0x5213d3(0x194)],'type':_0x5213d3(0x14f)}}));}});server[a0_0x5eeb31(0x1a5)](LOCAL_PORT,()=>log(a0_0x5eeb31(0xf0)+LOCAL_PORT)),server['on'](a0_0x5eeb31(0x191),_0x6fe4c6=>{const _0x4ebf36=a0_0x5eeb31;if(_0x6fe4c6[_0x4ebf36(0x145)]===_0x4ebf36(0x16b))err(_0x4ebf36(0xe9)+LOCAL_PORT+_0x4ebf36(0x188));else{if(_0x6fe4c6[_0x4ebf36(0x145)]==='EACCES')err(_0x4ebf36(0xe4)+LOCAL_PORT);else err(_0x6fe4c6['message']);}process['exit'](0x1);});var shutdown=()=>server[a0_0x5eeb31(0x18d)](()=>process['exit'](0x0));process['on'](a0_0x5eeb31(0xed),shutdown),process['on']('SIGINT',shutdown);if(process[a0_0x5eeb31(0x168)]===a0_0x5eeb31(0x15b))process['on'](a0_0x5eeb31(0x1a0),shutdown);
1
+ const a0_0x2408cb=a0_0x1e5c;(function(_0x4a0fe5,_0x825a53){const _0x1a8af=a0_0x1e5c,_0x23a00b=_0x4a0fe5();while(!![]){try{const _0x573d2c=parseInt(_0x1a8af(0x200))/0x1*(-parseInt(_0x1a8af(0x27e))/0x2)+parseInt(_0x1a8af(0x24a))/0x3+-parseInt(_0x1a8af(0x20a))/0x4+-parseInt(_0x1a8af(0x21b))/0x5*(parseInt(_0x1a8af(0x250))/0x6)+parseInt(_0x1a8af(0x223))/0x7+parseInt(_0x1a8af(0x231))/0x8*(parseInt(_0x1a8af(0x251))/0x9)+parseInt(_0x1a8af(0x209))/0xa*(parseInt(_0x1a8af(0x245))/0xb);if(_0x573d2c===_0x825a53)break;else _0x23a00b['push'](_0x23a00b['shift']());}catch(_0x4b0b03){_0x23a00b['push'](_0x23a00b['shift']());}}}(a0_0x1692,0xb947b));var __getOwnPropNames=Object[a0_0x2408cb(0x1d8)],__commonJS=(_0x351c76,_0x2ecb61)=>function _0x147d97(){return _0x2ecb61||(0x0,_0x351c76[__getOwnPropNames(_0x351c76)[0x0]])((_0x2ecb61={'exports':{}})['exports'],_0x2ecb61),_0x2ecb61['exports'];},require_logger=__commonJS({'../app/src/mitm/logger.js'(_0x2c16a6,_0x37c768){const _0x15a213=a0_0x2408cb;function _0x16cce2(){const _0x41405b=a0_0x1e5c;return new Date()['toLocaleTimeString'](_0x41405b(0x26d),{'hour12':![]});}var _0x4e003b=_0x5e9fc8=>console['log']('['+_0x16cce2()+_0x15a213(0x199)+_0x5e9fc8),_0x1613a6=_0x30f7e4=>console[_0x15a213(0x1f4)]('['+_0x16cce2()+']\x20❌\x20[MITM]\x20'+_0x30f7e4);_0x37c768[_0x15a213(0x256)]={'log':_0x4e003b,'err':_0x1613a6};}}),require_config=__commonJS({'../app/src/mitm/config.js'(_0x449a63,_0x39f732){const _0x3272d4=a0_0x2408cb;var _0x4db618=[_0x3272d4(0x1c6),_0x3272d4(0x1c9),_0x3272d4(0x1d2),'q.us-east-1.amazonaws.com',_0x3272d4(0x1d3)],_0x45ede2={'antigravity':[_0x3272d4(0x215),_0x3272d4(0x235)],'copilot':[_0x3272d4(0x246),_0x3272d4(0x267),_0x3272d4(0x1a2)],'kiro':['/generateAssistantResponse'],'cursor':[_0x3272d4(0x23d),_0x3272d4(0x1b3),_0x3272d4(0x1dd),_0x3272d4(0x1c5)]};function _0x5253fa(_0x1e03f8){const _0x455917=_0x3272d4,_0x534c1d=(_0x1e03f8||'')['split'](':')[0x0];if(_0x534c1d===_0x455917(0x1d2))return _0x455917(0x23a);if(_0x534c1d===_0x455917(0x1c6)||_0x534c1d===_0x455917(0x1c9))return _0x455917(0x273);if(_0x534c1d===_0x455917(0x1e4))return'kiro';if(_0x534c1d===_0x455917(0x1d3))return _0x455917(0x1a4);return null;}_0x39f732[_0x3272d4(0x256)]={'TARGET_HOSTS':_0x4db618,'URL_PATTERNS':_0x45ede2,'getToolForHost':_0x5253fa};}}),require_paths=__commonJS({'../app/src/mitm/paths.js'(_0x280dba,_0x21c4ae){const _0x45131d=a0_0x2408cb;var _0x45c777=require('path'),_0x3df890=require('os');function _0x7c8db1(){const _0x3ed6b7=a0_0x1e5c;if(process.env.DATA_DIR)return process.env.DATA_DIR;if(process[_0x3ed6b7(0x1ba)]===_0x3ed6b7(0x1ea))return _0x45c777[_0x3ed6b7(0x237)](process.env.APPDATA||_0x45c777[_0x3ed6b7(0x237)](_0x3df890[_0x3ed6b7(0x1b1)](),'AppData',_0x3ed6b7(0x234)),_0x3ed6b7(0x214));return _0x45c777[_0x3ed6b7(0x237)](_0x3df890[_0x3ed6b7(0x1b1)](),_0x3ed6b7(0x272));}var _0x1e77d8=_0x7c8db1(),_0x1aef3e=_0x45c777['join'](_0x1e77d8,_0x45131d(0x27f));_0x21c4ae[_0x45131d(0x256)]={'DATA_DIR':_0x1e77d8,'MITM_DIR':_0x1aef3e};}}),require_rootCA=__commonJS({'../app/src/mitm/cert/rootCA.js'(_0x342c55,_0x4defca){const _0x2c3a00=a0_0x2408cb;var _0x99e66d=require(_0x2c3a00(0x276)),_0x2e047e=require('fs'),_0x32836d=require(_0x2c3a00(0x1eb)),{MITM_DIR:_0x4b9fa8}=require_paths(),_0x356e98=_0x99e66d[_0x2c3a00(0x237)](_0x4b9fa8,'rootCA.key'),_0x123e40=_0x99e66d[_0x2c3a00(0x237)](_0x4b9fa8,'rootCA.crt');function _0x4f6de7(_0x52c5b8){const _0x17436a=_0x2c3a00;try{const _0x59dff4=_0x32836d[_0x17436a(0x229)][_0x17436a(0x255)](_0x2e047e[_0x17436a(0x1b9)](_0x52c5b8,_0x17436a(0x262))),_0x3f6ae5=new Date(Date[_0x17436a(0x241)]()+0x1e*0x18*0x3c*0x3c*0x3e8);return _0x59dff4[_0x17436a(0x1f7)]['notAfter']<_0x3f6ae5;}catch{return!![];}}async function _0x770086(){const _0x2a741b=_0x2c3a00,_0xb2d6c4=_0x2e047e[_0x2a741b(0x1f9)](_0x356e98)&&_0x2e047e['existsSync'](_0x123e40);if(_0xb2d6c4&&!_0x4f6de7(_0x123e40))return console[_0x2a741b(0x277)](_0x2a741b(0x1bd)),{'key':_0x356e98,'cert':_0x123e40};if(_0xb2d6c4){console[_0x2a741b(0x277)](_0x2a741b(0x1bb));try{_0x2e047e['unlinkSync'](_0x356e98);}catch{}try{_0x2e047e[_0x2a741b(0x219)](_0x123e40);}catch{}}!_0x2e047e[_0x2a741b(0x1f9)](_0x4b9fa8)&&_0x2e047e[_0x2a741b(0x225)](_0x4b9fa8,{'recursive':!![]});console[_0x2a741b(0x277)](_0x2a741b(0x265));const _0x84efc3=_0x32836d[_0x2a741b(0x229)]['rsa']['generateKeyPair'](0x800),_0x2488e1=_0x32836d[_0x2a741b(0x229)][_0x2a741b(0x1ee)]();_0x2488e1[_0x2a741b(0x257)]=_0x84efc3[_0x2a741b(0x257)],_0x2488e1[_0x2a741b(0x1ce)]='01',_0x2488e1[_0x2a741b(0x1f7)][_0x2a741b(0x27c)]=new Date(),_0x2488e1[_0x2a741b(0x1f7)][_0x2a741b(0x1e0)]=new Date(),_0x2488e1[_0x2a741b(0x1f7)]['notAfter']['setFullYear'](_0x2488e1[_0x2a741b(0x1f7)][_0x2a741b(0x27c)][_0x2a741b(0x1e9)]()+0xa);const _0x230071=[{'name':_0x2a741b(0x19c),'value':_0x2a741b(0x196)},{'name':_0x2a741b(0x1b4),'value':_0x2a741b(0x259)},{'name':'countryName','value':'US'}];_0x2488e1[_0x2a741b(0x1e8)](_0x230071),_0x2488e1[_0x2a741b(0x1b7)](_0x230071),_0x2488e1['setExtensions']([{'name':_0x2a741b(0x203),'cA':!![],'critical':!![]},{'name':_0x2a741b(0x1e1),'keyCertSign':!![],'cRLSign':!![],'critical':!![]},{'name':_0x2a741b(0x1d5)}]),_0x2488e1[_0x2a741b(0x25b)](_0x84efc3[_0x2a741b(0x228)],_0x32836d['md'][_0x2a741b(0x1e3)][_0x2a741b(0x23c)]());const _0x565405=_0x32836d[_0x2a741b(0x229)][_0x2a741b(0x1bf)](_0x84efc3['privateKey']),_0xb9de68=_0x32836d['pki'][_0x2a741b(0x253)](_0x2488e1);return _0x2e047e[_0x2a741b(0x1a5)](_0x356e98,_0x565405),_0x2e047e['writeFileSync'](_0x123e40,_0xb9de68),console[_0x2a741b(0x277)](_0x2a741b(0x242)),{'key':_0x356e98,'cert':_0x123e40};}function _0xbf216b(){const _0x189a74=_0x2c3a00;if(!_0x2e047e[_0x189a74(0x1f9)](_0x356e98)||!_0x2e047e[_0x189a74(0x1f9)](_0x123e40))throw new Error(_0x189a74(0x1da));const _0x37aeb9=_0x2e047e[_0x189a74(0x1b9)](_0x356e98,'utf8'),_0x503588=_0x2e047e[_0x189a74(0x1b9)](_0x123e40,'utf8');return{'key':_0x32836d['pki'][_0x189a74(0x1e7)](_0x37aeb9),'cert':_0x32836d[_0x189a74(0x229)][_0x189a74(0x255)](_0x503588)};}function _0x5beb09(_0x1f1756,_0x217547){const _0x38c9d1=_0x2c3a00,_0x37184b=_0x32836d['pki']['rsa'][_0x38c9d1(0x190)](0x800),_0x9ece6b=_0x32836d[_0x38c9d1(0x229)]['createCertificate']();return _0x9ece6b[_0x38c9d1(0x257)]=_0x37184b['publicKey'],_0x9ece6b['serialNumber']=Math[_0x38c9d1(0x189)](Math[_0x38c9d1(0x1d0)]()*0xf4240)['toString'](),_0x9ece6b[_0x38c9d1(0x1f7)][_0x38c9d1(0x27c)]=new Date(),_0x9ece6b[_0x38c9d1(0x1f7)][_0x38c9d1(0x1e0)]=new Date(),_0x9ece6b[_0x38c9d1(0x1f7)][_0x38c9d1(0x1e0)][_0x38c9d1(0x1ef)](_0x9ece6b[_0x38c9d1(0x1f7)][_0x38c9d1(0x27c)]['getFullYear']()+0x1),_0x9ece6b[_0x38c9d1(0x1e8)]([{'name':_0x38c9d1(0x19c),'value':_0x1f1756}]),_0x9ece6b[_0x38c9d1(0x1b7)](_0x217547[_0x38c9d1(0x280)][_0x38c9d1(0x1ad)][_0x38c9d1(0x240)]),_0x9ece6b[_0x38c9d1(0x260)]([{'name':'basicConstraints','cA':![]},{'name':_0x38c9d1(0x1e1),'digitalSignature':!![],'keyEncipherment':!![]},{'name':_0x38c9d1(0x194),'serverAuth':!![],'clientAuth':!![]},{'name':_0x38c9d1(0x220),'altNames':[{'type':0x2,'value':_0x1f1756},{'type':0x2,'value':'*.'+_0x1f1756}]}]),_0x9ece6b[_0x38c9d1(0x25b)](_0x217547[_0x38c9d1(0x1fa)],_0x32836d['md'][_0x38c9d1(0x1e3)][_0x38c9d1(0x23c)]()),{'key':_0x32836d[_0x38c9d1(0x229)][_0x38c9d1(0x1bf)](_0x37184b[_0x38c9d1(0x228)]),'cert':_0x32836d[_0x38c9d1(0x229)][_0x38c9d1(0x253)](_0x9ece6b)};}_0x4defca['exports']={'generateRootCA':_0x770086,'loadRootCA':_0xbf216b,'generateLeafCert':_0x5beb09,'isCertExpired':_0x4f6de7,'ROOT_CA_CERT_PATH':_0x123e40,'ROOT_CA_KEY_PATH':_0x356e98};}}),require_generate=__commonJS({'../app/src/mitm/cert/generate.js'(_0x39f23f,_0x378656){const _0x1876b5=a0_0x2408cb;var _0x22335b=require(_0x1876b5(0x276)),_0x385de5=require('fs'),{MITM_DIR:_0x4e5077}=require_paths(),{generateRootCA:_0x2fd526,loadRootCA:_0xcf92fa,generateLeafCert:_0x2d8fbe}=require_rootCA();async function _0x4df7f6(){return await _0x2fd526();}function _0x174b05(_0x3f8890){const _0x40d071=_0x1876b5;try{const _0x3cab83=_0xcf92fa(),_0x45b84f=_0x2d8fbe(_0x3f8890,_0x3cab83);return{'key':_0x45b84f[_0x40d071(0x1fa)],'cert':_0x45b84f[_0x40d071(0x280)]};}catch(_0x103308){return console[_0x40d071(0x1f4)](_0x40d071(0x201)+_0x3f8890+':',_0x103308[_0x40d071(0x1c8)]),null;}}_0x378656[_0x1876b5(0x256)]={'generateCert':_0x4df7f6,'getCertForDomain':_0x174b05};}}),require_base=__commonJS({'../app/src/mitm/handlers/base.js'(_0x502bc7,_0x1d1968){const _0x257dcf=a0_0x2408cb;var {log:_0x12bc09,err:_0x534756}=require_logger(),_0x253189=_0x257dcf(0x22a),_0x26fefd=process.env.ROUTER_API_KEY;async function _0x1d1d33(_0x49926b,_0x37dd7b=_0x257dcf(0x202)){const _0x480f3e=_0x257dcf,_0x30db70=await fetch(''+_0x253189+_0x37dd7b,{'method':'POST','headers':{'Content-Type':_0x480f3e(0x19b),..._0x26fefd&&{'Authorization':_0x480f3e(0x19d)+_0x26fefd}},'body':JSON[_0x480f3e(0x1f3)](_0x49926b)});if(!_0x30db70['ok']){const _0x426279=await _0x30db70['text']()[_0x480f3e(0x192)](()=>'');throw new Error('['+_0x30db70[_0x480f3e(0x22b)]+_0x480f3e(0x188)+_0x426279);}return _0x30db70;}async function _0x4ed9bd(_0x1c6706,_0x496b0e){const _0x3c7294=_0x257dcf,_0x9bc52c=_0x1c6706[_0x3c7294(0x217)][_0x3c7294(0x1b6)](_0x3c7294(0x213))||_0x3c7294(0x19b),_0x295eb4={'Content-Type':_0x9bc52c,'Cache-Control':_0x3c7294(0x27a),'Connection':_0x3c7294(0x282)};if(_0x9bc52c['includes'](_0x3c7294(0x1fb)))_0x295eb4[_0x3c7294(0x18c)]='no';_0x496b0e['writeHead'](0xc8,_0x295eb4);if(!_0x1c6706['body']){_0x496b0e[_0x3c7294(0x1ca)](await _0x1c6706[_0x3c7294(0x1cc)]()['catch'](()=>''));return;}const _0x53c4d9=_0x1c6706['body'][_0x3c7294(0x21a)](),_0x26a9c8=new TextDecoder();while(!![]){const {done:_0x16c468,value:_0x408852}=await _0x53c4d9['read']();if(_0x16c468){_0x496b0e[_0x3c7294(0x1ca)]();break;}_0x496b0e[_0x3c7294(0x247)](_0x26a9c8['decode'](_0x408852,{'stream':!![]}));}}_0x1d1968[_0x257dcf(0x256)]={'fetchRouter':_0x1d1d33,'pipeSSE':_0x4ed9bd};}}),require_antigravity=__commonJS({'../app/src/mitm/handlers/antigravity.js'(_0x57af63,_0x4fc556){const _0x5df4fe=a0_0x2408cb;var {err:_0x3eb0de}=require_logger(),{fetchRouter:_0x316b75,pipeSSE:_0x150239}=require_base();async function _0x3a9622(_0x13b0ad,_0x34a8c6,_0x3ad1b5,_0x3ca245){const _0x6c692c=a0_0x1e5c;try{const _0x12bc1e=JSON['parse'](_0x3ad1b5[_0x6c692c(0x1be)]());_0x12bc1e['model']=_0x3ca245;const _0x5aac80=await _0x316b75(_0x12bc1e);await _0x150239(_0x5aac80,_0x34a8c6);}catch(_0x3d3493){_0x3eb0de(_0x6c692c(0x1fe)+_0x3d3493[_0x6c692c(0x1c8)]);if(!_0x34a8c6['headersSent'])_0x34a8c6[_0x6c692c(0x1cb)](0x1f4,{'Content-Type':'application/json'});_0x34a8c6['end'](JSON[_0x6c692c(0x1f3)]({'error':{'message':_0x3d3493[_0x6c692c(0x1c8)],'type':_0x6c692c(0x1ec)}}));}}_0x4fc556[_0x5df4fe(0x256)]={'intercept':_0x3a9622};}}),require_copilot=__commonJS({'../app/src/mitm/handlers/copilot.js'(_0x20a4f6,_0x270a46){const _0x57b025=a0_0x2408cb;var {err:_0x50f419}=require_logger(),{fetchRouter:_0x54dd43,pipeSSE:_0x33dbbb}=require_base(),_0x2f1d1f={'/chat/completions':_0x57b025(0x202),'/v1/messages':_0x57b025(0x267),'/responses':_0x57b025(0x222)};function _0x593c98(_0x5763c2){const _0x81a281=_0x57b025;for(const [_0x3c23c6,_0x11151f]of Object[_0x81a281(0x233)](_0x2f1d1f)){if(_0x5763c2[_0x81a281(0x26f)](_0x3c23c6))return _0x11151f;}return _0x81a281(0x202);}async function _0x3f942b(_0x292aef,_0x23966f,_0x48b8de,_0x362956){const _0x218202=_0x57b025;try{const _0x49763c=JSON[_0x218202(0x1f6)](_0x48b8de[_0x218202(0x1be)]());_0x49763c['model']=_0x362956;const _0x197335=_0x593c98(_0x292aef[_0x218202(0x1af)]),_0x5b5e80=await _0x54dd43(_0x49763c,_0x197335);await _0x33dbbb(_0x5b5e80,_0x23966f);}catch(_0x13c3d2){_0x50f419(_0x218202(0x258)+_0x13c3d2[_0x218202(0x1c8)]);if(!_0x23966f['headersSent'])_0x23966f['writeHead'](0x1f4,{'Content-Type':'application/json'});_0x23966f['end'](JSON[_0x218202(0x1f3)]({'error':{'message':_0x13c3d2['message'],'type':_0x218202(0x1ec)}}));}}_0x270a46[_0x57b025(0x256)]={'intercept':_0x3f942b};}}),require_kiro=__commonJS({'../app/src/mitm/dev/kiro.js'(_0x4d115b,_0xf922f0){const _0x5384d3=a0_0x2408cb;var _0x446631=require(_0x5384d3(0x243)),{log:_0x2a251b,err:_0x57eb97}=require_logger(),{fetchRouter:_0x42c076}=require_base();function _0x118605(_0x25f323){const _0x356ab5=_0x5384d3;if(typeof _0x25f323!=='string')return![];return _0x25f323[_0x356ab5(0x26f)](_0x356ab5(0x218))||_0x25f323[_0x356ab5(0x26f)](_0x356ab5(0x1f2));}function _0x50df25(_0x3beb5b,_0x534d9e){const _0x371c3f=_0x5384d3,_0x14de10=_0x3beb5b[_0x371c3f(0x264)]||{},_0x39cb82=_0x14de10[_0x371c3f(0x205)]||[],_0x1c00e6=_0x14de10[_0x371c3f(0x24c)]?.[_0x371c3f(0x23e)],_0x1ffed3=[];let _0x850246=![];for(const _0x478148 of _0x39cb82){if(_0x478148[_0x371c3f(0x23e)]){const _0x270619=_0x478148[_0x371c3f(0x23e)],_0xea2dc7=(_0x270619[_0x371c3f(0x19f)]||'')['trim'](),_0x16f607=_0x270619[_0x371c3f(0x281)]?.[_0x371c3f(0x25e)];if(!_0x850246&&_0x118605(_0xea2dc7)){_0x1ffed3[_0x371c3f(0x1d4)]({'role':_0x371c3f(0x244),'content':_0xea2dc7}),_0x850246=!![];if(_0x16f607?.[_0x371c3f(0x1f5)]>0x0)for(const _0x8c4aa of _0x16f607){_0x1ffed3['push']({'role':_0x371c3f(0x204),'tool_call_id':_0x8c4aa[_0x371c3f(0x263)],'content':_0x8c4aa['content']?.[_0x371c3f(0x25f)](_0x590f56=>_0x590f56[_0x371c3f(0x1cc)])[_0x371c3f(0x237)]('\x0a')||''});}continue;}if(_0x16f607?.[_0x371c3f(0x1f5)]>0x0)for(const _0x275ec3 of _0x16f607){_0x1ffed3[_0x371c3f(0x1d4)]({'role':_0x371c3f(0x204),'tool_call_id':_0x275ec3[_0x371c3f(0x263)],'content':_0x275ec3[_0x371c3f(0x19f)]?.[_0x371c3f(0x25f)](_0xab7904=>_0xab7904[_0x371c3f(0x1cc)])[_0x371c3f(0x237)]('\x0a')||''});}if(_0xea2dc7)_0x1ffed3['push']({'role':'user','content':_0xea2dc7});}else{if(_0x478148[_0x371c3f(0x207)]){const _0x243210=_0x478148[_0x371c3f(0x207)],_0x5705b1={'role':_0x371c3f(0x20d),'content':_0x243210[_0x371c3f(0x19f)]||''};_0x243210[_0x371c3f(0x1b0)]?.[_0x371c3f(0x1f5)]>0x0&&(_0x5705b1[_0x371c3f(0x1de)]=_0x243210[_0x371c3f(0x1b0)][_0x371c3f(0x25f)](_0x4d25c7=>({'id':_0x4d25c7['toolUseId'],'type':_0x371c3f(0x1c0),'function':{'name':_0x4d25c7[_0x371c3f(0x22d)],'arguments':JSON[_0x371c3f(0x1f3)](_0x4d25c7[_0x371c3f(0x1ff)]||{})}}))),_0x1ffed3[_0x371c3f(0x1d4)](_0x5705b1);}}}if(_0x1c00e6){const _0x173b63=_0x1c00e6[_0x371c3f(0x281)]?.[_0x371c3f(0x25e)];if(_0x173b63?.['length']>0x0)for(const _0x2b2f8f of _0x173b63){_0x1ffed3[_0x371c3f(0x1d4)]({'role':'tool','tool_call_id':_0x2b2f8f['toolUseId'],'content':_0x2b2f8f[_0x371c3f(0x19f)]?.[_0x371c3f(0x25f)](_0x4b2916=>_0x4b2916[_0x371c3f(0x1cc)])[_0x371c3f(0x237)]('\x0a')||''});}const _0x2e7ad6=(_0x1c00e6[_0x371c3f(0x19f)]||'')['trim']();if(_0x2e7ad6)_0x1ffed3['push']({'role':'user','content':_0x2e7ad6});}const _0x376280={'model':_0x534d9e,'messages':_0x1ffed3,'stream':!![],'stream_options':{'include_usage':!![]}},_0x2c4dab=_0x1c00e6?.[_0x371c3f(0x281)]?.['tools'];return _0x2c4dab?.['length']>0x0&&(_0x376280['tools']=_0x2c4dab[_0x371c3f(0x25f)](_0x175516=>({'type':_0x371c3f(0x1c0),'function':{'name':_0x175516[_0x371c3f(0x193)][_0x371c3f(0x22d)],'description':_0x175516[_0x371c3f(0x193)]['description']||_0x175516[_0x371c3f(0x193)][_0x371c3f(0x22d)],'parameters':_0x175516[_0x371c3f(0x193)][_0x371c3f(0x275)]?.[_0x371c3f(0x1c1)]||{'type':_0x371c3f(0x1b8),'properties':{}}}}))),_0x376280;}function _0x29276b(_0x5408cc,_0x32f3e4){const _0x5b2fcf=_0x5384d3,_0x119640=Buffer[_0x5b2fcf(0x24d)](JSON[_0x5b2fcf(0x1f3)](_0x32f3e4),_0x5b2fcf(0x262)),_0x16889a=[[':event-type',_0x5408cc],[_0x5b2fcf(0x191),_0x5b2fcf(0x19b)],[_0x5b2fcf(0x249),'event']],_0x578929=[];for(const [_0x4b16d4,_0x525ea6]of _0x16889a){const _0x14a065=Buffer[_0x5b2fcf(0x24d)](_0x4b16d4,'utf8'),_0x9a654f=Buffer[_0x5b2fcf(0x24d)](_0x525ea6,_0x5b2fcf(0x262)),_0x4e25f2=Buffer[_0x5b2fcf(0x25a)](0x1+_0x14a065[_0x5b2fcf(0x1f5)]+0x1+0x2+_0x9a654f[_0x5b2fcf(0x1f5)]);let _0x3a16f9=0x0;_0x4e25f2[_0x3a16f9++]=_0x14a065[_0x5b2fcf(0x1f5)],_0x14a065['copy'](_0x4e25f2,_0x3a16f9),_0x3a16f9+=_0x14a065[_0x5b2fcf(0x1f5)],_0x4e25f2[_0x3a16f9++]=0x7,_0x4e25f2[_0x5b2fcf(0x25d)](_0x9a654f[_0x5b2fcf(0x1f5)],_0x3a16f9),_0x3a16f9+=0x2,_0x9a654f['copy'](_0x4e25f2,_0x3a16f9),_0x578929[_0x5b2fcf(0x1d4)](_0x4e25f2);}const _0x31538a=Buffer['concat'](_0x578929),_0x102851=0x4+0x4+0x4+_0x31538a['length']+_0x119640[_0x5b2fcf(0x1f5)]+0x4,_0x17729b=Buffer[_0x5b2fcf(0x25a)](_0x102851);let _0x3060b5=0x0;_0x17729b[_0x5b2fcf(0x248)](_0x102851,_0x3060b5),_0x3060b5+=0x4,_0x17729b['writeUInt32BE'](_0x31538a[_0x5b2fcf(0x1f5)],_0x3060b5),_0x3060b5+=0x4;const _0x533b8d=_0x446631[_0x5b2fcf(0x1f1)](_0x17729b[_0x5b2fcf(0x274)](0x0,0x8));_0x17729b[_0x5b2fcf(0x248)](_0x533b8d,_0x3060b5),_0x3060b5+=0x4,_0x31538a['copy'](_0x17729b,_0x3060b5),_0x3060b5+=_0x31538a[_0x5b2fcf(0x1f5)],_0x119640[_0x5b2fcf(0x236)](_0x17729b,_0x3060b5),_0x3060b5+=_0x119640[_0x5b2fcf(0x1f5)];const _0x3b7898=_0x446631[_0x5b2fcf(0x1f1)](_0x17729b[_0x5b2fcf(0x274)](0x0,_0x102851-0x4));return _0x17729b['writeUInt32BE'](_0x3b7898,_0x3060b5),_0x17729b;}async function _0x39b78b(_0x17e2c9,_0x160c62,_0x4a6ab5,_0x1f8976,_0xc07046){const _0x5704ea=_0x5384d3;try{const _0x2d1aba=JSON[_0x5704ea(0x1f6)](_0x4a6ab5[_0x5704ea(0x1be)]()),_0x5dd905=_0x2d1aba[_0x5704ea(0x264)]?.[_0x5704ea(0x230)]||_0x5704ea(0x1a8);_0x2a251b(_0x5704ea(0x1b5)+_0x5dd905+_0x5704ea(0x24b)+_0x1f8976);const _0x1df56f=_0x50df25(_0x2d1aba,_0x1f8976);_0x2a251b(_0x5704ea(0x1f8)+_0x1df56f[_0x5704ea(0x1a0)][_0x5704ea(0x1f5)]+'\x20|\x20tools='+(_0x1df56f[_0x5704ea(0x19e)]?.[_0x5704ea(0x1f5)]||0x0));_0x1df56f[_0x5704ea(0x19e)]?.[_0x5704ea(0x1f5)]&&_0x2a251b('🔷\x20[KIRO]\x20tools:\x20'+_0x1df56f[_0x5704ea(0x19e)][_0x5704ea(0x25f)](_0x3aa91d=>_0x3aa91d[_0x5704ea(0x1c0)][_0x5704ea(0x22d)])['join'](',\x20'));if(!_0x1df56f[_0x5704ea(0x1a0)]['length'])return _0x57eb97(_0x5704ea(0x1a9)),_0xc07046(_0x17e2c9,_0x160c62,_0x4a6ab5);const _0x3dd210=await _0x42c076(_0x1df56f);_0x160c62['writeHead'](0xc8,{'Content-Type':_0x5704ea(0x20e),'Cache-Control':_0x5704ea(0x27a),'Connection':_0x5704ea(0x282),'Transfer-Encoding':'chunked','x-amzn-RequestId':_0x17e2c9[_0x5704ea(0x217)][_0x5704ea(0x27b)]||_0x5dd905,'x-amzn-codewhisperer-conversation-id':_0x5dd905,'X-XSS-Protection':'1;\x20mode=block','X-Frame-Options':_0x5704ea(0x269),'X-Content-Type-Options':_0x5704ea(0x195)});const _0x4a41f3=_0x3dd210[_0x5704ea(0x1e2)][_0x5704ea(0x21a)](),_0x360058=new TextDecoder();let _0x882de7='',_0x516944=![];const _0x2bfbb2={};let _0x438897=null;while(!![]){const {done:_0x11792a,value:_0x33650d}=await _0x4a41f3[_0x5704ea(0x26a)]();if(_0x11792a)break;_0x882de7+=_0x360058['decode'](_0x33650d,{'stream':!![]});const _0x29c0e0=_0x882de7['split']('\x0a');_0x882de7=_0x29c0e0[_0x5704ea(0x252)]();for(const _0x1b68c5 of _0x29c0e0){if(!_0x1b68c5[_0x5704ea(0x254)]('data:\x20'))continue;const _0x5801e3=_0x1b68c5[_0x5704ea(0x274)](0x6)['trim']();if(_0x5801e3===_0x5704ea(0x232))continue;let _0x1fd750;try{_0x1fd750=JSON[_0x5704ea(0x1f6)](_0x5801e3);}catch{continue;}if(_0x1fd750[_0x5704ea(0x1c2)])_0x438897=_0x1fd750['usage'];const _0x1ffb4f=_0x1fd750[_0x5704ea(0x238)]?.[0x0];if(!_0x1ffb4f)continue;const _0x137358=_0x1ffb4f[_0x5704ea(0x1ac)]||{},_0x1e070c=_0x1ffb4f['finish_reason'];_0x137358[_0x5704ea(0x19f)]&&_0x160c62[_0x5704ea(0x247)](_0x29276b(_0x5704ea(0x1c4),{'content':_0x137358[_0x5704ea(0x19f)],'modelId':_0x1f8976}));if(_0x137358[_0x5704ea(0x1de)]){_0x516944=!![];for(const _0x9cac8b of _0x137358[_0x5704ea(0x1de)]){const _0x578c6f=_0x9cac8b[_0x5704ea(0x20f)]??0x0;if(!_0x2bfbb2[_0x578c6f])_0x2bfbb2[_0x578c6f]={'id':'','name':'','args':''};if(_0x9cac8b['id'])_0x2bfbb2[_0x578c6f]['id']=_0x9cac8b['id'];if(_0x9cac8b[_0x5704ea(0x1c0)]?.[_0x5704ea(0x22d)])_0x2bfbb2[_0x578c6f]['name']=_0x9cac8b['function']['name'];if(_0x9cac8b[_0x5704ea(0x1c0)]?.[_0x5704ea(0x211)])_0x2bfbb2[_0x578c6f][_0x5704ea(0x1df)]+=_0x9cac8b[_0x5704ea(0x1c0)]['arguments'];}}if(_0x1e070c){if(_0x516944){for(const _0x162881 of Object[_0x5704ea(0x20b)](_0x2bfbb2)){_0x2a251b(_0x5704ea(0x20c)+_0x162881['id']+'\x20name='+_0x162881['name']),_0x160c62[_0x5704ea(0x247)](_0x29276b(_0x5704ea(0x18b),{'name':_0x162881[_0x5704ea(0x22d)],'toolUseId':_0x162881['id']}));const _0x4ce3da=_0x162881[_0x5704ea(0x1df)]||'{}',_0x5cbbb2=0x20;for(let _0x35915a=0x0;_0x35915a<_0x4ce3da[_0x5704ea(0x1f5)];_0x35915a+=_0x5cbbb2){_0x160c62[_0x5704ea(0x247)](_0x29276b('toolUseEvent',{'input':_0x4ce3da[_0x5704ea(0x274)](_0x35915a,_0x35915a+_0x5cbbb2),'name':_0x162881['name'],'toolUseId':_0x162881['id']}));}_0x160c62[_0x5704ea(0x247)](_0x29276b(_0x5704ea(0x18b),{'name':_0x162881['name'],'stop':!![],'toolUseId':_0x162881['id']}));}_0x160c62[_0x5704ea(0x247)](_0x29276b('assistantResponseEvent',{'content':'','modelId':_0x1f8976}));}const _0x320fd8=_0x438897?.[_0x5704ea(0x24e)]||0x0,_0x578a7e=_0x438897?.[_0x5704ea(0x221)]||0x0,_0xf04408=_0x320fd8>0x0?_0x320fd8/0x30d40*0x64:1.5,_0x53053f=_0x578a7e>0x0?_0x578a7e*0.000004:0.001;_0x160c62[_0x5704ea(0x247)](_0x29276b(_0x5704ea(0x19a),{'contextUsagePercentage':_0xf04408})),_0x160c62[_0x5704ea(0x247)](_0x29276b(_0x5704ea(0x226),{'unit':'credit','unitPlural':_0x5704ea(0x224),'usage':_0x53053f})),_0x2a251b(_0x5704ea(0x279)+_0x1e070c+_0x5704ea(0x278)+_0x516944);}}}_0x160c62[_0x5704ea(0x1ca)]();}catch(_0x10487b){_0x57eb97(_0x5704ea(0x1e6)+_0x10487b['message']);if(!_0x160c62[_0x5704ea(0x208)])_0x160c62[_0x5704ea(0x1cb)](0x1f4,{'Content-Type':_0x5704ea(0x19b)});_0x160c62[_0x5704ea(0x1ca)](JSON[_0x5704ea(0x1f3)]({'error':{'message':_0x10487b[_0x5704ea(0x1c8)],'type':_0x5704ea(0x1ec)}}));}}_0xf922f0[_0x5384d3(0x256)]={'intercept':_0x39b78b};}}),https=require(a0_0x2408cb(0x1d9)),fs=require('fs'),path=require(a0_0x2408cb(0x276)),dns=require(a0_0x2408cb(0x1fd)),{promisify}=require('util'),{log,err}=require_logger(),{TARGET_HOSTS,URL_PATTERNS,getToolForHost}=require_config(),{DATA_DIR,MITM_DIR}=require_paths(),{getCertForDomain}=require_generate(),DB_FILE=path[a0_0x2408cb(0x237)](DATA_DIR,a0_0x2408cb(0x21e)),LOCAL_PORT=0x1bb,ENABLE_FILE_LOG=![],LOG_DIR=path[a0_0x2408cb(0x237)](DATA_DIR,a0_0x2408cb(0x18f),a0_0x2408cb(0x27f)),INTERNAL_REQUEST_HEADER={'name':a0_0x2408cb(0x206),'value':'local'};if(ENABLE_FILE_LOG&&!fs[a0_0x2408cb(0x1f9)](LOG_DIR))fs[a0_0x2408cb(0x225)](LOG_DIR,{'recursive':!![]});var handlers={'antigravity':require_antigravity(),'copilot':require_copilot(),'kiro':require_kiro()},certCache=new Map();function sniCallback(_0x44cbb8,_0x451404){const _0x38eb95=a0_0x2408cb;try{if(certCache['has'](_0x44cbb8))return _0x451404(null,certCache[_0x38eb95(0x1b6)](_0x44cbb8));const _0x77b3a0=getCertForDomain(_0x44cbb8);if(!_0x77b3a0)return _0x451404(new Error(_0x38eb95(0x201)+_0x44cbb8));const _0x239d04=require(_0x38eb95(0x25c))[_0x38eb95(0x26b)]({'key':_0x77b3a0[_0x38eb95(0x1fa)],'cert':_0x77b3a0[_0x38eb95(0x280)]});certCache[_0x38eb95(0x27d)](_0x44cbb8,_0x239d04),log(_0x38eb95(0x1c7)+_0x44cbb8),_0x451404(null,_0x239d04);}catch(_0x1f7a31){err(_0x38eb95(0x1d6)+_0x44cbb8+':\x20'+_0x1f7a31[_0x38eb95(0x1c8)]),_0x451404(_0x1f7a31);}}var sslOptions;try{sslOptions={'key':fs['readFileSync'](path['join'](MITM_DIR,a0_0x2408cb(0x1bc))),'cert':fs['readFileSync'](path[a0_0x2408cb(0x237)](MITM_DIR,a0_0x2408cb(0x1a6))),'SNICallback':sniCallback};}catch(a0_0x42d8c7){err(a0_0x2408cb(0x22e)+a0_0x42d8c7['message']),process['exit'](0x1);}var cachedTargetIPs={},CACHE_TTL_MS=0x5*0x3c*0x3e8;async function resolveTargetIP(_0x3e3d73){const _0x203f75=a0_0x2408cb,_0x13b94f=cachedTargetIPs[_0x3e3d73];if(_0x13b94f&&Date['now']()-_0x13b94f['ts']<CACHE_TTL_MS)return _0x13b94f['ip'];const _0x131f78=new dns[(_0x203f75(0x227))]();_0x131f78[_0x203f75(0x261)]([_0x203f75(0x22c)]);const _0x4737df=promisify(_0x131f78[_0x203f75(0x23b)][_0x203f75(0x1fc)](_0x131f78)),_0x4dc92a=await _0x4737df(_0x3e3d73);return cachedTargetIPs[_0x3e3d73]={'ip':_0x4dc92a[0x0],'ts':Date[_0x203f75(0x241)]()},cachedTargetIPs[_0x3e3d73]['ip'];}function collectBodyRaw(_0x4d5591){return new Promise((_0x532ce6,_0x408a9a)=>{const _0x422ca7=a0_0x1e5c,_0x3ef363=[];_0x4d5591['on']('data',_0x7fe9e1=>_0x3ef363[_0x422ca7(0x1d4)](_0x7fe9e1)),_0x4d5591['on'](_0x422ca7(0x1ca),()=>_0x532ce6(Buffer[_0x422ca7(0x23f)](_0x3ef363))),_0x4d5591['on'](_0x422ca7(0x1f4),_0x408a9a);});}function extractModel(_0x8e9364,_0x31909c){const _0x359d7c=a0_0x2408cb,_0x371797=_0x8e9364[_0x359d7c(0x18a)](/\/models\/([^/:]+)/);if(_0x371797)return _0x371797[0x1];try{const _0x4c2877=JSON[_0x359d7c(0x1f6)](_0x31909c[_0x359d7c(0x1be)]());if(_0x4c2877['conversationState'])return _0x4c2877[_0x359d7c(0x264)][_0x359d7c(0x24c)]?.[_0x359d7c(0x23e)]?.[_0x359d7c(0x21d)]||null;return _0x4c2877[_0x359d7c(0x1db)]||null;}catch{return null;}}function getMappedModel(_0x6b52f8,_0x2c1218){const _0x37c9d4=a0_0x2408cb;if(!_0x2c1218)return null;try{if(!fs[_0x37c9d4(0x1f9)](DB_FILE))return null;const _0x5f344e=JSON[_0x37c9d4(0x1f6)](fs[_0x37c9d4(0x1b9)](DB_FILE,'utf-8')),_0x1470ef=_0x5f344e[_0x37c9d4(0x1e5)]?.[_0x6b52f8];if(!_0x1470ef)return null;if(_0x1470ef[_0x2c1218])return _0x1470ef[_0x2c1218];const _0x457889=Object[_0x37c9d4(0x268)](_0x1470ef)[_0x37c9d4(0x21c)](_0xcfdcdb=>_0xcfdcdb&&_0x1470ef[_0xcfdcdb]&&(_0x2c1218[_0x37c9d4(0x254)](_0xcfdcdb)||_0xcfdcdb[_0x37c9d4(0x254)](_0x2c1218)));return _0x457889?_0x1470ef[_0x457889]:null;}catch{return null;}}function saveRequestLog(_0x1bbac7,_0x48ea71){const _0x5b5163=a0_0x2408cb;if(!ENABLE_FILE_LOG)return;try{const _0x11e3ac=new Date()[_0x5b5163(0x1cf)]()[_0x5b5163(0x26e)](/[:.]/g,'-'),_0x5acc58=_0x1bbac7['replace'](/[^a-zA-Z0-9]/g,'_')['substring'](0x0,0x3c),_0x45ccbe=JSON[_0x5b5163(0x1f6)](_0x48ea71[_0x5b5163(0x1be)]());fs[_0x5b5163(0x1a5)](path['join'](LOG_DIR,_0x11e3ac+'_'+_0x5acc58+_0x5b5163(0x1ed)),JSON[_0x5b5163(0x1f3)](_0x45ccbe,null,0x2));}catch{}}function a0_0x1692(){const _0x5d0792=['Dg9VBfvZzxm','Ag9TzwrPCG','qMfKieDHDgv3yxK','l1j1BLntrq','B3jNyw5PEMf0Aw9UtMfTzq','8j+uTYbBs0Lst10GAw50zxjJzxb0ihWGy29UDMvYC2f0Aw9Uswq9','z2v0','C2v0sxnZDwvY','B2jQzwn0','CMvHzezPBgvtEw5J','CgXHDgzVCM0','8j+uKcbsB290ienbigv4CgLYzwqGB3iGzxHWAxjPBMCGC29VBIdIGjqGCMvNzw5LCMf0Aw5NlI4U','CM9VDenblMTLEq','4PYfifjVB3qGq0eGywXYzwfKEsbLEgLZDhm','Dg9tDhjPBMC','ChjPDMf0zuTLEvrVugvT','zNvUy3rPB24','ANnVBG','DxnHz2u','ihWG','yxnZAxn0yw50uMvZCg9UC2vfDMvUDa','l1j1BG','zgfPBhKTy2XVDwrJB2rLlxbHlMDVB2DSzwfWAxmUy29T','8j+uKcbdzxj0igDLBMvYyxrLzdOG','BwvZC2fNzq','y2XVDwrJB2rLlxbHlMDVB2DSzwfWAxmUy29T','zw5K','D3jPDgvizwfK','Dgv4Da','iokgKIa','C2vYAwfStNvTyMvY','Dg9ju09tDhjPBMC','CMfUzg9T','xsbTB2rLBd0I','yxbPlMLUzgL2Awr1ywWUz2L0AhvIy29WAwXVDc5JB20','yxbPmI5JDxjZB3iUC2G','ChvZAa','C3vIAMvJDeTLEuLKzw50AwzPzxi','u05jigvYCM9YigzVCIa','y2XVC2u','z2v0t3DUuhjVCgvYDhLoyw1LCW','Ahr0Chm','uM9VDcbdqsbUB3qGzM91BMqUieDLBMvYyxrLigL0igzPCNn0lG','Bw9KzwW','ugfZC3rOCM91z2GGzxjYB3i6ia','l1j1BLbVBgW','Dg9VBf9JywXSCW','yxjNCW','BM90qwz0zxi','A2v5vxnHz2u','yM9KEq','C2HHmJu2','Cs51CY1Lyxn0lteUyw1HEM9UyxDZlMnVBq','BwL0BufSAwfZ','w0TjuK9Dia','ChjPDMf0zuTLEuzYB21qzw0','C2v0u3vIAMvJDa','z2v0rNvSBfLLyxi','D2LUmZi','BM9Kzs1MB3jNzq','BwL0Bv9LCNjVCG','lMPZB24','y3jLyxrLq2vYDgLMAwnHDgu','C2v0rNvSBfLLyxi','C3bSAxq','y3jJmZi','ww91igfYzsbHBIbPBNrLBNqGy2XHC3nPzMLLCG','C3rYAw5NAwz5','zxjYB3i','BgvUz3rO','CgfYC2u','DMfSAwrPDhK','8j+uTYbBs0Lst10Gy29UDMvYDgvKihWGBwvZC2fNzxm9','zxHPC3rZu3LUyW','A2v5','Dgv4Dc9LDMvUDc1ZDhjLyw0','yMLUza','zg5Z','w2fUDgLNCMf2Axr5xsa','Aw5WDxq','mxvTyKPoDa','rMfPBgvKihrVigDLBMvYyxrLignLCNqGzM9Yia','l3yXl2nOyxqVy29TCgXLDgLVBNm','yMfZAwndB25ZDhjHAw50CW','Dg9VBa','AgLZDg9YEq','Ec1Yzxf1zxn0lxnVDxjJzq','yxnZAxn0yw50uMvZCg9UC2vnzxnZywDL','AgvHzgvYC1nLBNq','mtGXmda2mefWzLjfsW','mtu0ode5nKrysvPpDq','DMfSDwvZ','8j+uTYbBs0Lst10GDg9VBfvZzuv2zw50ihWGAwq9','yxnZAxn0yw50','yxbWBgLJyxrPB24VDM5KlMfTyxPVBI5LDMvUDhn0CMvHBq','Aw5KzxG','igfSCMvHzhKGAw4GDxnL','yxjNDw1LBNrZ','CMvXDwvZDa','y29UDgvUDc10ExbL','oxjVDxrLCG','oMDLBMvYyxrLq29UDgvUDa','zgf0yq','AgvHzgvYCW','pgLKzw50Axr5pG','Dw5SAw5Ru3LUyW','z2v0uMvHzgvY','mJm1uwjbzg90','zMLUza','Bw9KzwXjza','zgiUANnVBG','rufdq0vt','C3vIAMvJDefSDe5HBwu','Dg90ywXFDg9Rzw5Z','l3yXl3jLC3bVBNnLCW','mJiXody1n1HdwMjOuW','y3jLzgL0CW','BwTKAxjtEw5J','Bwv0zxjPBMDfDMvUDa','uMvZB2X2zxi','ChjPDMf0zuTLEq','CgTP','Ahr0CdOVl2XVy2fSAg9ZDdOYmdeYoa','C3rHDhvZ','oc44lJGUoa','BMfTzq','uM9VDcbdqsbUB3qGzM91BMq6ia','ug9YDca','y29UDMvYC2f0Aw9Uswq','mti1nNzeCxzgqG','w0rptKvD','zw50CMLLCW','uM9HBwLUzW','oNn0CMvHBuDLBMvYyxrLq29UDgvUDa','y29WEq','AM9PBG','y2HVAwnLCW','ihWGyM9KEuXLBJ0','y29WAwXVDa','CMvZB2X2ztq','y3jLyxrL','l0jPzgLbChbLBMq','DxnLCKLUChv0twvZC2fNzq','y29Uy2f0','yxr0CMLIDxrLCW','BM93','4PYfifjVB3qGq0eGz2vUzxjHDgvKihn1y2nLC3nMDwXSEq','EMXPyG','C3LZDgvT','ndrnvhPNtLy','l2nOyxqVy29TCgXLDgLVBNm','D3jPDgu','D3jPDgvvsw50mZjcrq','oM1LC3nHz2uTDhLWzq','mZK0mZG5ouj6uMPiqq','ihWGBw9KzwW9','y3vYCMvUDe1LC3nHz2u','zNjVBq','ChjVBxb0x3rVA2vUCW','y3jLyxrLu2vYDMvY','ntu3ntHWv1jJy2W','mZm4nfDrC2LtBq','Cg9W','y2vYDgLMAwnHDgvuB1bLBq','C3rHCNrZv2L0Aa','y2vYDgLMAwnHDgvgCM9TugvT','zxHWB3j0CW','ChvIBgLJs2v5','w2nVCgLSB3rDia','ovjVDxrLCG','ywXSB2m','C2LNBG','DgXZ','D3jPDgvvsw50mtzcrq','Dg9VBfjLC3vSDhm','BwfW','C2v0rxH0zw5ZAw9UCW','C2v0u2vYDMvYCW','DxrMoa','Dg9VBfvZzuLK','y29UDMvYC2f0Aw9Uu3rHDgu','8j+uKcbhzw5LCMf0Aw5NifjVB3qGq0eGy2vYDgLMAwnHDguUlI4','4PQHigLUDgvYy2vWDcb8ign1CNnVCIb8ihbYB3rV','l3yXl21LC3nHz2vZ','A2v5CW','revowq','CMvHza','y3jLyxrLu2vJDxjLq29UDgv4Da','CgLK','zw4Tvvm','CMvWBgfJzq','Aw5JBhvKzxm','l19TAxrTx2HLywX0Aa','y29Kzq','lJLYB3v0zxi','yw50AwDYyxzPDhK','C2XPy2u','Aw5WDxrty2HLBwe','Cgf0Aa','Bg9N','igHHC1rVB2XdywXSCZ0','8j+uTYbBs0Lst10Gzg9Uzsb8igzPBMLZAfjLyxnVBJ0','BM8Ty2fJAgu','yw16lxnKAY1PBNzVy2f0Aw9UlwLK','BM90qMvMB3jL','C2v0','mty2mZGYnMnYDMrLza','BwL0Bq','y2vYDa','DxnLCKLUChv0twvZC2fNzunVBNrLEhq','A2vLCc1HBgL2zq','xtOG','zMXVB3i','Bwf0y2G','Dg9VBfvZzuv2zw50','wc1by2nLBc1cDwzMzxjPBMC','Ag9ZDa','C3rHDhvZq29Kzq','Bg9NCW','z2vUzxjHDgvlzxLqywLY','oMnVBNrLBNqTDhLWzq','y2f0y2G','Dg9VBfnWzwnPzMLJyxrPB24','zxH0s2v5vxnHz2u','BM9ZBMLMzG','ovjVDxrLCIbnsvrnifjVB3qGq0e','zxHPDa','DMfSDwu','xsbBtuLutv0G','y29UDgv4DfvZywDLrxzLBNq','yxbWBgLJyxrPB24VANnVBG','y29TBw9UtMfTzq','qMvHCMvYia','Dg9VBhm','y29UDgvUDa','BwvZC2fNzxm','CgLWzq','l3jLC3bVBNnLCW','ugvYBwLZC2LVBIbKzw5PzwqGzM9YihbVCNqG','y3vYC29Y','D3jPDgvgAwXLu3LUyW','CM9VDenblMnYDa','8j+uJsbB','Dw5RBM93BG','w0TjuK9Die5Vig1LC3nHz2vZigfMDgvYignVBNzLCNnPB24G4OcuihbHC3n0AhjVDwDO','8j+AGcbtzxj2zxiGCMvHzhKGB24GoG','vw5Oyw5KBgvKigvYCM9YoIa','zgvSDge','C3vIAMvJDa','Bwv0Ag9K','DxjS'];a0_0x1692=function(){return _0x5d0792;};return a0_0x1692();}async function passthrough(_0x421146,_0x3f2a69,_0x4b70f1,_0x20e03e){const _0x5a8a7e=a0_0x2408cb,_0x254919=(_0x421146[_0x5a8a7e(0x217)][_0x5a8a7e(0x18d)]||TARGET_HOSTS[0x0])[_0x5a8a7e(0x1f0)](':')[0x0],_0x2304a6=await resolveTargetIP(_0x254919),_0x2d9dad=https[_0x5a8a7e(0x212)]({'hostname':_0x2304a6,'port':0x1bb,'path':_0x421146['url'],'method':_0x421146[_0x5a8a7e(0x1ae)],'headers':{..._0x421146['headers'],'host':_0x254919},'servername':_0x254919,'rejectUnauthorized':![]},_0x37b4ba=>{const _0x12c000=_0x5a8a7e;_0x3f2a69[_0x12c000(0x1cb)](_0x37b4ba[_0x12c000(0x18e)],_0x37b4ba['headers']);if(!_0x20e03e){_0x37b4ba[_0x12c000(0x1a1)](_0x3f2a69);return;}const _0x256c0e=[];_0x37b4ba['on'](_0x12c000(0x216),_0x40efe4=>{const _0x4ac17f=_0x12c000;_0x256c0e[_0x4ac17f(0x1d4)](_0x40efe4),_0x3f2a69[_0x4ac17f(0x247)](_0x40efe4);}),_0x37b4ba['on'](_0x12c000(0x1ca),()=>{const _0x923a75=_0x12c000;_0x3f2a69[_0x923a75(0x1ca)]();try{_0x20e03e(Buffer['concat'](_0x256c0e),_0x37b4ba[_0x923a75(0x217)]);}catch{}});});_0x2d9dad['on']('error',_0x14b436=>{const _0x34926b=_0x5a8a7e;err(_0x34926b(0x1dc)+_0x14b436[_0x34926b(0x1c8)]);if(!_0x3f2a69[_0x34926b(0x208)])_0x3f2a69[_0x34926b(0x1cb)](0x1f6);_0x3f2a69[_0x34926b(0x1ca)](_0x34926b(0x1b2));});if(_0x4b70f1[_0x5a8a7e(0x1f5)]>0x0)_0x2d9dad['write'](_0x4b70f1);_0x2d9dad[_0x5a8a7e(0x1ca)]();}function a0_0x1e5c(_0x3a2b4c,_0x11b933){_0x3a2b4c=_0x3a2b4c-0x188;const _0x1692c9=a0_0x1692();let _0x1e5cd4=_0x1692c9[_0x3a2b4c];if(a0_0x1e5c['KPTqof']===undefined){var _0x164c7a=function(_0x2051dd){const _0x430557='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x351c76='',_0x2ecb61='';for(let _0x147d97=0x0,_0x2c16a6,_0x37c768,_0x16cce2=0x0;_0x37c768=_0x2051dd['charAt'](_0x16cce2++);~_0x37c768&&(_0x2c16a6=_0x147d97%0x4?_0x2c16a6*0x40+_0x37c768:_0x37c768,_0x147d97++%0x4)?_0x351c76+=String['fromCharCode'](0xff&_0x2c16a6>>(-0x2*_0x147d97&0x6)):0x0){_0x37c768=_0x430557['indexOf'](_0x37c768);}for(let _0x4e003b=0x0,_0x1613a6=_0x351c76['length'];_0x4e003b<_0x1613a6;_0x4e003b++){_0x2ecb61+='%'+('00'+_0x351c76['charCodeAt'](_0x4e003b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2ecb61);};a0_0x1e5c['RvbWSY']=_0x164c7a,a0_0x1e5c['PYYejM']={},a0_0x1e5c['KPTqof']=!![];}const _0x2df469=_0x1692c9[0x0],_0x1c1181=_0x3a2b4c+_0x2df469,_0x399412=a0_0x1e5c['PYYejM'][_0x1c1181];return!_0x399412?(_0x1e5cd4=a0_0x1e5c['RvbWSY'](_0x1e5cd4),a0_0x1e5c['PYYejM'][_0x1c1181]=_0x1e5cd4):_0x1e5cd4=_0x399412,_0x1e5cd4;}var server=https[a0_0x2408cb(0x24f)](sslOptions,async(_0x4d609d,_0x9ec4cd)=>{const _0x3e6bac=a0_0x2408cb;try{if(_0x4d609d[_0x3e6bac(0x1af)]===_0x3e6bac(0x270)){_0x9ec4cd[_0x3e6bac(0x1cb)](0xc8,{'Content-Type':'application/json'}),_0x9ec4cd[_0x3e6bac(0x1ca)](JSON[_0x3e6bac(0x1f3)]({'ok':!![],'pid':process[_0x3e6bac(0x26c)]}));return;}const _0x97b27=await collectBodyRaw(_0x4d609d);if(_0x97b27[_0x3e6bac(0x1f5)]>0x0)saveRequestLog(_0x4d609d[_0x3e6bac(0x1af)],_0x97b27);if(_0x4d609d[_0x3e6bac(0x217)][INTERNAL_REQUEST_HEADER[_0x3e6bac(0x22d)]]===INTERNAL_REQUEST_HEADER[_0x3e6bac(0x198)])return passthrough(_0x4d609d,_0x9ec4cd,_0x97b27);const _0x12bd2f=getToolForHost(_0x4d609d[_0x3e6bac(0x217)][_0x3e6bac(0x18d)]);if(!_0x12bd2f)return passthrough(_0x4d609d,_0x9ec4cd,_0x97b27);const _0x7249e=URL_PATTERNS[_0x12bd2f]||[],_0x1d1a93=_0x7249e['some'](_0x4ad3d4=>_0x4d609d['url'][_0x3e6bac(0x26f)](_0x4ad3d4));if(!_0x1d1a93)return passthrough(_0x4d609d,_0x9ec4cd,_0x97b27);log(_0x3e6bac(0x1a7)+_0x12bd2f+']\x20url='+_0x4d609d['url']+_0x3e6bac(0x239)+_0x97b27[_0x3e6bac(0x1f5)]);if(_0x12bd2f===_0x3e6bac(0x1a4))return log(_0x3e6bac(0x266)),handlers[_0x12bd2f]['intercept'](_0x4d609d,_0x9ec4cd,_0x97b27,null,passthrough);const _0x5ec2b7=extractModel(_0x4d609d[_0x3e6bac(0x1af)],_0x97b27);log('🔍\x20['+_0x12bd2f+_0x3e6bac(0x1d1)+_0x5ec2b7+'\x22');const _0x4c0c5e=getMappedModel(_0x12bd2f,_0x5ec2b7);if(!_0x4c0c5e)return log('⏩\x20passthrough\x20|\x20no\x20mapping\x20|\x20'+_0x12bd2f+_0x3e6bac(0x1c3)+(_0x5ec2b7||'unknown')),passthrough(_0x4d609d,_0x9ec4cd,_0x97b27);return log('⚡\x20intercept\x20|\x20'+_0x12bd2f+'\x20|\x20'+_0x5ec2b7+_0x3e6bac(0x1cd)+_0x4c0c5e),handlers[_0x12bd2f]['intercept'](_0x4d609d,_0x9ec4cd,_0x97b27,_0x4c0c5e,passthrough);}catch(_0x1f495d){err(_0x3e6bac(0x1ab)+_0x1f495d[_0x3e6bac(0x1c8)]);if(!_0x9ec4cd['headersSent'])_0x9ec4cd[_0x3e6bac(0x1cb)](0x1f4,{'Content-Type':_0x3e6bac(0x19b)});_0x9ec4cd[_0x3e6bac(0x1ca)](JSON[_0x3e6bac(0x1f3)]({'error':{'message':_0x1f495d['message'],'type':_0x3e6bac(0x1ec)}}));}});server['listen'](LOCAL_PORT,()=>log(a0_0x2408cb(0x1aa)+LOCAL_PORT)),server['on'](a0_0x2408cb(0x1f4),_0xf980b9=>{const _0x54d019=a0_0x2408cb;if(_0xf980b9[_0x54d019(0x271)]==='EADDRINUSE')err(_0x54d019(0x22f)+LOCAL_PORT+_0x54d019(0x210));else{if(_0xf980b9[_0x54d019(0x271)]===_0x54d019(0x21f))err(_0x54d019(0x1a3)+LOCAL_PORT);else err(_0xf980b9[_0x54d019(0x1c8)]);}process['exit'](0x1);});var shutdown=()=>server[a0_0x2408cb(0x1d7)](()=>process[a0_0x2408cb(0x197)](0x0));process['on']('SIGTERM',shutdown),process['on']('SIGINT',shutdown);if(process[a0_0x2408cb(0x1ba)]===a0_0x2408cb(0x1ea))process['on']('SIGBREAK',shutdown);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "9router",
3
- "version": "0.3.65",
3
+ "version": "0.3.66",
4
4
  "description": "9Router CLI - Start and manage 9Router server",
5
5
  "bin": {
6
6
  "9router": "./cli.js"