zevairouter 1.0.119 → 1.0.121

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 (703) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  3. package/cli/app/.next-cli-build/app-path-routes-manifest.json +13 -13
  4. package/cli/app/.next-cli-build/build-manifest.json +2 -2
  5. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js.nft.json +1 -1
  6. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +1 -1
  7. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  8. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  9. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  10. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  11. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  12. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  13. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  14. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  15. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  16. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  17. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  18. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  19. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js.nft.json +1 -1
  20. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
  21. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  22. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  23. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  24. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  25. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  26. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  27. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  28. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  29. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  30. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  31. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  32. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  33. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  34. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  35. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js +1 -1
  36. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
  37. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  38. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  39. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  40. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +1 -1
  41. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  42. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  43. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  44. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  45. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  46. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  47. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  48. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  49. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  50. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  51. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  52. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  53. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js +4 -4
  54. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js.nft.json +1 -1
  55. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page_client-reference-manifest.js +1 -1
  56. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  57. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  58. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  59. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  60. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  61. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  62. package/cli/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  63. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  64. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
  65. package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  66. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  67. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  68. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  69. package/cli/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  70. package/cli/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  71. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  72. package/cli/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  73. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  74. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
  75. package/cli/app/.next-cli-build/server/app/_not-found.rsc +4 -4
  76. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
  77. package/cli/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  78. package/cli/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +4 -4
  79. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  80. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  81. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  82. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  83. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  84. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  85. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  86. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  87. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  88. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  89. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  90. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  91. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  92. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  93. package/cli/app/.next-cli-build/server/app/api/cache/stats/route.js.nft.json +1 -1
  94. package/cli/app/.next-cli-build/server/app/api/changelog/route.js.nft.json +1 -1
  95. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  96. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  97. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  98. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  99. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  100. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js +1 -1
  101. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js.nft.json +1 -1
  102. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  103. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  104. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  105. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  106. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  107. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  108. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  109. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  110. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  111. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  112. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  113. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  114. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  115. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  116. package/cli/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  117. package/cli/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  118. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js +1 -1
  119. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js.nft.json +1 -1
  120. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js +1 -1
  121. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js.nft.json +1 -1
  122. package/cli/app/.next-cli-build/server/app/api/context/route.js +1 -1
  123. package/cli/app/.next-cli-build/server/app/api/context/route.js.nft.json +1 -1
  124. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js.nft.json +1 -1
  125. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  126. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  127. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  128. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  129. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  130. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  131. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  132. package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  133. package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  134. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  135. package/cli/app/.next-cli-build/server/app/api/health/ready/route.js.nft.json +1 -1
  136. package/cli/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  137. package/cli/app/.next-cli-build/server/app/api/init/route.js +1 -1
  138. package/cli/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  139. package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js +1 -1
  140. package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
  141. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  142. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  143. package/cli/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  144. package/cli/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  145. package/cli/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  146. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  147. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  148. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  149. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  150. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  151. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  152. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  153. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  154. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  155. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  156. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  157. package/cli/app/.next-cli-build/server/app/api/metrics/route.js.nft.json +1 -1
  158. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  159. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  160. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  161. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  162. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  163. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  164. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  165. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  166. package/cli/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  167. package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  168. package/cli/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  169. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  170. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  171. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  172. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  173. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js.nft.json +1 -1
  174. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js.nft.json +1 -1
  175. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js.nft.json +1 -1
  176. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  177. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  178. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/route.js.nft.json +1 -1
  179. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/latest/route.js.nft.json +1 -1
  180. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/route.js.nft.json +1 -1
  181. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  182. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  183. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js.nft.json +1 -1
  184. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js.nft.json +1 -1
  185. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js.nft.json +1 -1
  186. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  187. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  188. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js.nft.json +1 -1
  189. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js.nft.json +1 -1
  190. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js.nft.json +1 -1
  191. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js +1 -1
  192. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js.nft.json +1 -1
  193. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js +1 -1
  194. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js.nft.json +1 -1
  195. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  196. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  197. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js.nft.json +1 -1
  198. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js.nft.json +1 -1
  199. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
  200. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js +1 -1
  201. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js.nft.json +1 -1
  202. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js.nft.json +1 -1
  203. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  204. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  205. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  206. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  207. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  208. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  209. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  210. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  211. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  212. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js.nft.json +1 -1
  213. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js.nft.json +1 -1
  214. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  215. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  216. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  217. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  218. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  219. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  220. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js.nft.json +1 -1
  221. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js.nft.json +1 -1
  222. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js.nft.json +1 -1
  223. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  224. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  225. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  226. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  227. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  228. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  229. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js.nft.json +1 -1
  230. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js.nft.json +1 -1
  231. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js.nft.json +1 -1
  232. package/cli/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  233. package/cli/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  234. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  235. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  236. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  237. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  238. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  239. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  240. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  241. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  242. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  243. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  244. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  245. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js +1 -1
  246. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js.nft.json +1 -1
  247. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  248. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  249. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  250. package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  251. package/cli/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  252. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  253. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  254. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  255. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  256. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  257. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  258. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  259. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  260. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +1 -1
  261. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  262. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +1 -1
  263. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  264. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  265. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  266. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +1 -1
  267. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  268. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  269. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  270. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  271. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js +1 -1
  272. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  273. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  274. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js +1 -1
  275. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  276. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  277. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  278. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  279. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  280. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  281. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  282. package/cli/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  283. package/cli/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  284. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  285. package/cli/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  286. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js +1 -1
  287. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js.nft.json +1 -1
  288. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js +1 -1
  289. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js.nft.json +1 -1
  290. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js +1 -1
  291. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js.nft.json +1 -1
  292. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js.nft.json +1 -1
  293. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js.nft.json +1 -1
  294. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js.nft.json +1 -1
  295. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js.nft.json +1 -1
  296. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js.nft.json +1 -1
  297. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  298. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  299. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  300. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  301. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  302. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  303. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  304. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  305. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  306. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  307. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  308. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  309. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  310. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  311. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  312. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  313. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  314. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  315. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  316. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js +1 -1
  317. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js.nft.json +1 -1
  318. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  319. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  320. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  321. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  322. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  323. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  324. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  325. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  326. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  327. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  328. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  329. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  330. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  331. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  332. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  333. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  334. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  335. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  336. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  337. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  338. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  339. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  340. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  341. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  342. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  343. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  344. package/cli/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  345. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  346. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  347. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  348. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  349. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  350. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  351. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  352. package/cli/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  353. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  354. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  355. package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  356. package/cli/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  357. package/cli/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  358. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  359. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  360. package/cli/app/.next-cli-build/server/app/callback.rsc +4 -4
  361. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
  362. package/cli/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  363. package/cli/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +4 -4
  364. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  365. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  366. package/cli/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  367. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  368. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +6 -6
  369. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +2 -2
  370. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation.segment.rsc +1 -1
  371. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  372. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  373. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +6 -6
  374. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_head.segment.rsc +1 -1
  375. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_index.segment.rsc +4 -4
  376. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +2 -2
  377. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  378. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +6 -6
  379. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  380. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  381. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  382. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  383. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
  384. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  385. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
  386. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  387. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  388. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
  389. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  390. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  391. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  392. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  393. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
  394. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  395. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
  396. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  397. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  398. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +6 -6
  399. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  400. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  401. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  402. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  403. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
  404. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  405. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
  406. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  407. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  408. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +6 -6
  409. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +2 -2
  410. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context.segment.rsc +1 -1
  411. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  412. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  413. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +6 -6
  414. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_head.segment.rsc +1 -1
  415. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_index.segment.rsc +4 -4
  416. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +2 -2
  417. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  418. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +6 -6
  419. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  420. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  421. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  422. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  423. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
  424. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  425. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
  426. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  427. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  428. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +6 -6
  429. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  430. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  431. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  432. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  433. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  434. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +6 -6
  435. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  436. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +4 -4
  437. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  438. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  439. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +6 -6
  440. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  441. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  442. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  443. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  444. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
  445. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  446. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
  447. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  448. package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
  449. package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +6 -6
  450. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +2 -2
  451. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground.segment.rsc +1 -1
  452. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  453. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  454. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +6 -6
  455. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_head.segment.rsc +1 -1
  456. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_index.segment.rsc +4 -4
  457. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +2 -2
  458. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  459. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +6 -6
  460. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  461. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  462. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  463. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  464. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
  465. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  466. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
  467. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  468. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  469. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +6 -6
  470. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  471. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  472. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  473. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  474. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  475. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
  476. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  477. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
  478. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  479. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  480. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +6 -6
  481. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  482. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  483. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  484. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  485. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
  486. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  487. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
  488. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  489. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  490. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +6 -6
  491. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  492. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  493. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  494. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  495. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
  496. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  497. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
  498. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  499. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  500. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +6 -6
  501. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  502. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  503. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  504. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  505. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +6 -6
  506. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  507. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +4 -4
  508. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  509. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  510. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +7 -7
  511. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  512. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  513. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  514. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  515. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
  516. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  517. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
  518. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  519. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
  520. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  521. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  522. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  523. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +5 -5
  524. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -5
  525. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  526. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  527. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  528. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +2 -2
  529. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  530. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  531. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  532. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  533. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +6 -6
  534. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  535. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  536. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  537. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  538. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +6 -6
  539. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  540. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +4 -4
  541. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  542. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  543. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +6 -6
  544. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  545. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  546. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  547. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  548. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
  549. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  550. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
  551. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  552. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  553. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +6 -6
  554. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  555. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  556. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  557. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  558. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
  559. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  560. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
  561. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  562. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  563. package/cli/app/.next-cli-build/server/app/dashboard.rsc +6 -6
  564. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  565. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  566. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  567. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +6 -6
  568. package/cli/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  569. package/cli/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +4 -4
  570. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  571. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  572. package/cli/app/.next-cli-build/server/app/index.rsc +4 -4
  573. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  574. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
  575. package/cli/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  576. package/cli/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +4 -4
  577. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  578. package/cli/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  579. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  580. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  581. package/cli/app/.next-cli-build/server/app/landing.rsc +4 -4
  582. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  583. package/cli/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  584. package/cli/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +4 -4
  585. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  586. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  587. package/cli/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  588. package/cli/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  589. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  590. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  591. package/cli/app/.next-cli-build/server/app/login.rsc +5 -5
  592. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +5 -5
  593. package/cli/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  594. package/cli/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +4 -4
  595. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  596. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  597. package/cli/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  598. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  599. package/cli/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  600. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  601. package/cli/app/.next-cli-build/server/app-paths-manifest.json +13 -13
  602. package/cli/app/.next-cli-build/server/chunks/1656.js +1 -0
  603. package/cli/app/.next-cli-build/server/chunks/3155.js +1 -1
  604. package/cli/app/.next-cli-build/server/chunks/3407.js +1 -1
  605. package/cli/app/.next-cli-build/server/chunks/412.js +2 -2
  606. package/cli/app/.next-cli-build/server/chunks/415.js +1 -1
  607. package/cli/app/.next-cli-build/server/chunks/4746.js +1 -1
  608. package/cli/app/.next-cli-build/server/chunks/4765.js +1 -1
  609. package/cli/app/.next-cli-build/server/chunks/5469.js +1 -1
  610. package/cli/app/.next-cli-build/server/chunks/6269.js +1 -1
  611. package/cli/app/.next-cli-build/server/chunks/8157.js +1 -1
  612. package/cli/app/.next-cli-build/server/chunks/8242.js +2 -2
  613. package/cli/app/.next-cli-build/server/chunks/8450.js +1 -1
  614. package/cli/app/.next-cli-build/server/chunks/8895.js +1 -1
  615. package/cli/app/.next-cli-build/server/chunks/915.js +1 -1
  616. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  617. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  618. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  619. package/cli/app/.next-cli-build/static/chunks/1992-b492aa3235a8c259.js +1 -0
  620. package/cli/app/.next-cli-build/static/chunks/523-81108e84df92e883.js +3 -0
  621. package/cli/app/.next-cli-build/static/chunks/5472-544ea4e7aa338d84.js +1 -0
  622. package/cli/app/.next-cli-build/static/chunks/5497-b25ed8039d5058b3.js +7 -0
  623. package/cli/app/.next-cli-build/static/chunks/85-db69928a84a17025.js +1 -0
  624. package/cli/app/.next-cli-build/static/chunks/9126-3c87cb0aee89bca5.js +1 -0
  625. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/automation/{page-d41499964854d23d.js → page-a3939b72418749b7.js} +1 -1
  626. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-fa9d3452d69f2fc7.js +1 -0
  627. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/{page-307e7a994072d3fe.js → page-2361fd82cdac58f9.js} +1 -1
  628. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-c99774d53ed03829.js → page-0186f028c4f68aa9.js} +1 -1
  629. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/{page-a80bc0ef9e6c1e11.js → page-81c25ef219dfc38b.js} +1 -1
  630. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-b055dfe6fb0c0172.js +1 -0
  631. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/context/{page-f654f75ab4d3b2b4.js → page-fb93d56bfaccdc19.js} +1 -1
  632. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-09e6213a0742752b.js +1 -0
  633. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-e9f89f6f7f2695ac.js → page-0fafff8a72986a98.js} +1 -1
  634. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/{page-0546fd3c6b301483.js → page-7b6e1ef525e44bd1.js} +1 -1
  635. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-59911fe6fc9fbfc8.js → page-85e7b6f5b4af1dd4.js} +1 -1
  636. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/{page-2744a3a7ee2b2f3b.js → page-29893b095259085d.js} +1 -1
  637. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/{page-f11795f09a7e359c.js → page-c03ae64868d6bc4d.js} +1 -1
  638. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-fd2453044462eb4f.js +1 -0
  639. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/playground/page-13833a8f417b8d7e.js +1 -0
  640. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/{page-da5d11d26f23d010.js → page-e95034d5b34bc360.js} +1 -1
  641. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-e8bec03d8a8df237.js → page-6deaa1a0e3ad0eb6.js} +2 -2
  642. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/{page-0d7a893a9acb3db1.js → page-c38381db33d5aafc.js} +1 -1
  643. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/{page-a2d55f0103564e42.js → page-5ab697596491a658.js} +1 -1
  644. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/proxy-pools/{page-b4c7d4b4ec9ecdc8.js → page-eb11e852f7a314c9.js} +1 -1
  645. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/pxpipe/{page-d10896022aaed6ef.js → page-f1c47c7778f23895.js} +1 -1
  646. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/{page-f3b77e4749e85bd8.js → page-ac445dab96ac6223.js} +1 -1
  647. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/terminal/page-a3689f5a124bc27a.js +4 -0
  648. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/{page-1fa380d58608995a.js → page-26d372726ae6df38.js} +1 -1
  649. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/{page-7d617ed8a6c73a39.js → page-a408f0954e4812ab.js} +1 -1
  650. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/{page-a57ed10cad355f8f.js → page-2de7b12af94b8721.js} +1 -1
  651. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/{layout-d5ac11eba9159f43.js → layout-2ae824d2d09c81ea.js} +1 -1
  652. package/cli/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-1ea7bc18570814a7.js +1 -0
  653. package/cli/app/.next-cli-build/static/chunks/app/layout-2aaca42ecdf3a056.js +1 -0
  654. package/cli/app/.next-cli-build/static/chunks/app/login/{page-b47f2bec3372a1a3.js → page-b5822dd005b1f5c2.js} +1 -1
  655. package/cli/app/.next-cli-build/static/css/479786e77e87b74c.css +1 -0
  656. package/cli/app/.openclaude/worktrees/agent-a54d8692/.next/standalone/src/lib/terminal/ptyBridge.py +163 -0
  657. package/cli/app/.openclaude/worktrees/agent-a54d8692/src/lib/terminal/ptyBridge.py +163 -0
  658. package/cli/app/.openclaude/worktrees/agent-aa0a3950/src/lib/terminal/ptyBridge.py +163 -0
  659. package/cli/app/.openclaude/worktrees/agent-aeb70241/src/lib/terminal/ptyBridge.py +163 -0
  660. package/cli/app/CHANGELOG.md +48 -0
  661. package/cli/app/package.json +1 -1
  662. package/cli/app/public/favicon.svg +11 -7
  663. package/cli/app/public/icons/icon-192.svg +11 -7
  664. package/cli/app/public/icons/icon-512.svg +11 -7
  665. package/cli/package.json +1 -1
  666. package/cli/src/cli/tray/icon.ico +0 -0
  667. package/cli/src/cli/tray/icon.png +0 -0
  668. package/open-sse/services/accountFallback.js +30 -0
  669. package/package.json +1 -1
  670. package/public/favicon.svg +11 -7
  671. package/public/icons/icon-192.svg +11 -7
  672. package/public/icons/icon-512.svg +11 -7
  673. package/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js +49 -10
  674. package/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js +76 -49
  675. package/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js +74 -41
  676. package/src/app/(dashboard)/dashboard/providers/[id]/ConnectionRow.js +10 -0
  677. package/src/app/(dashboard)/dashboard/terminal/TerminalPageClient.js +60 -47
  678. package/src/app/api/providers/[id]/test/testUtils.js +11 -5
  679. package/src/shared/components/Button.js +4 -3
  680. package/src/shared/components/Card.js +2 -2
  681. package/src/shared/components/Header.js +1 -1
  682. package/src/shared/components/Input.js +15 -4
  683. package/src/shared/components/Modal.js +55 -16
  684. package/src/shared/components/SegmentedControl.js +6 -1
  685. package/src/shared/components/Sidebar.js +6 -7
  686. package/src/shared/components/Toggle.js +14 -4
  687. package/src/shared/components/layouts/DashboardLayout.js +6 -3
  688. package/src/sse/services/auth.js +51 -9
  689. package/cli/app/.next-cli-build/static/chunks/3702-5f52882fbc19ed29.js +0 -1
  690. package/cli/app/.next-cli-build/static/chunks/523-4021d26bfc04bcf5.js +0 -3
  691. package/cli/app/.next-cli-build/static/chunks/5497-54c8b503897135ae.js +0 -7
  692. package/cli/app/.next-cli-build/static/chunks/9126-2efa8985d72b10b7.js +0 -1
  693. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-d021e06a6f101f16.js +0 -1
  694. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-51791daa7ebe6710.js +0 -1
  695. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-6a64fa03d091fe28.js +0 -1
  696. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-8912f47631cdced9.js +0 -1
  697. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/playground/page-42a74aa05fd08ed9.js +0 -1
  698. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/terminal/page-1f6733fa5712fc3d.js +0 -4
  699. package/cli/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-d886f4bea6d1980a.js +0 -1
  700. package/cli/app/.next-cli-build/static/chunks/app/layout-66d404d6c5a82e5c.js +0 -1
  701. package/cli/app/.next-cli-build/static/css/3b43d9c2833b7940.css +0 -1
  702. /package/cli/app/.next-cli-build/static/{EsPNkWozNCaNTZu9U2Fs3 → edIIBLHejtiMImOMvHpmV}/_buildManifest.js +0 -0
  703. /package/cli/app/.next-cli-build/static/{EsPNkWozNCaNTZu9U2Fs3 → edIIBLHejtiMImOMvHpmV}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=8450,exports.ids=[8450],exports.modules={28948:(a,b,c)=>{c.d(b,{P:()=>e});var d=c(15626);async function e(a){let b=!!a?.apiKey,c=b?a.apiKey:a?.accessToken;if(!c)return null;let e=new AbortController,f=setTimeout(()=>e.abort(),5e3);try{let a=b?{Accept:"application/json",Authorization:`Bearer ${c}`}:(0,d.buildClineHeaders)(c,{Accept:"application/json"}),f=await fetch("https://api.cline.bot/api/v1/models",{method:"GET",headers:a,signal:e.signal});if(!f.ok)return null;let g=await f.json(),h=Array.isArray(g)?g:g?.data;if(!Array.isArray(h))return null;let i=h.filter(a=>"string"==typeof a?.id&&a.id.startsWith("cline-pass/")).map(a=>({id:a.id,name:a.name||a.id}));return i.length?{models:i}:null}catch{return null}finally{clearTimeout(f)}}},29679:(a,b,c)=>{c.d(b,{cW:()=>k});var d=c(47293),e=c(55511),f=c(8590),g=c(6382);let h="us-east-1",i=new Map;async function j(a,b){let c,f=a?.providerSpecificData?.profileArn||"",i=function(a){if(!a||"string"!=typeof a)return h;let b=a.split(":");return b.length>=4&&b[3]?b[3]:h}(f),j=new URLSearchParams;j.set("origin","AI_EDITOR"),f&&j.set("profileArn",f);let k=`https://q.${i}.amazonaws.com/ListAvailableModels?${j.toString()}`,l={...function(a){let b=a?.providerSpecificData?.clientId||a?.refreshToken||a?.providerSpecificData?.profileArn||a?.accessToken||"kiro-anonymous",c=(0,e.createHash)("sha256").update(String(b)).digest("hex"),{userAgent:f,amzUserAgent:h}=(0,g.VE)(c);return{"User-Agent":f,"x-amz-user-agent":h,"x-amzn-kiro-agent-mode":"vibe","x-amzn-codewhisperer-optout":"true","amz-sdk-request":"attempt=1; max=1","amz-sdk-invocation-id":(0,d.A)(),Accept:"application/json"}}(a),Authorization:`Bearer ${a?.accessToken||""}`},m=new AbortController,n=setTimeout(()=>m.abort("timeout"),3e4);b&&"function"==typeof b.addEventListener&&b.addEventListener("abort",()=>m.abort(b.reason));try{c=await fetch(k,{method:"GET",headers:l,signal:m.signal})}finally{clearTimeout(n)}if(!c.ok){let a=await c.text().catch(()=>""),b=Error(`Kiro ListAvailableModels ${c.status}: ${a||c.statusText}`);throw b.status=c.status,b.body=a,b}let o=await c.json();return Array.isArray(o?.models)?o.models:[]}async function k(a,b={}){let c,d,g;if(!a||!a.accessToken)return b.log?.debug?.("KIRO_MODELS","No accessToken; skipping live fetch"),null;let h=(g=(d=a?.providerSpecificData||{}).profileArn||d.clientId||a?.refreshToken||a?.accessToken||"anonymous",(0,e.createHash)("sha256").update(`kiro:${g}`).digest("hex")),l=Date.now();if(!b.forceRefresh){let a=i.get(h);if(a&&a.expiresAt>l)return{models:a.models,rawModels:a.rawModels}}try{c=await j(a,b.signal)}catch(d){if(!d||401!==d.status||!a.refreshToken)return b.log?.warn?.("KIRO_MODELS",`ListAvailableModels failed: ${d?.message||d}`),null;{b.log?.info?.("KIRO_MODELS","Got 401 from Kiro; refreshing token");let d=await (0,f.Ql)(a.refreshToken,a.providerSpecificData,b.log);if(!d?.accessToken)return b.log?.warn?.("KIRO_MODELS","Token refresh did not return accessToken"),null;{let e={...a,...d};if("function"==typeof b.onCredentialsRefreshed)try{await b.onCredentialsRefreshed(d)}catch(a){b.log?.warn?.("KIRO_MODELS",`onCredentialsRefreshed failed: ${a?.message||a}`)}try{c=await j(e,b.signal),a.accessToken=e.accessToken,e.refreshToken&&(a.refreshToken=e.refreshToken)}catch(a){return b.log?.warn?.("KIRO_MODELS",`Retry after refresh failed: ${a?.message||a}`),null}}}}let m=[];for(let a of c){if(!a||"object"!=typeof a)continue;let b=a.modelId||a.id;if(!b)continue;let c=function(a,b,c){let d=(a||b||"Kiro").trim(),e=Number(c);if(!Number.isFinite(e)||1e-9>Math.abs(e-1)||e<=0)return`Kiro ${d}`;let f=e.toFixed(1).replace(",",".");return`Kiro ${d} (${f}x credit)`}(a.modelName,b,a.rateMultiplier),d=Number(a?.tokenLimits?.maxInputTokens)||2e5;for(let e of function(a,b){let c,d=((c=a).endsWith("-agentic")&&(c=c.slice(0,-8)),c.endsWith("-thinking")&&(c=c.slice(0,-9)),c),e=b||`Kiro ${d}`,f=[{id:d,name:e,capabilities:{thinking:!1,agentic:!1}},{id:`${d}-thinking`,name:`${e} (Thinking)`,capabilities:{thinking:!0,agentic:!1}}];return"auto"!==d&&(f.push({id:`${d}-agentic`,name:`${e} (Agentic)`,capabilities:{thinking:!1,agentic:!0}}),f.push({id:`${d}-thinking-agentic`,name:`${e} (Thinking + Agentic)`,capabilities:{thinking:!0,agentic:!0}})),f}(b,c))m.push({...e,contextLength:d,rateMultiplier:Number.isFinite(Number(a.rateMultiplier))?Number(a.rateMultiplier):1,upstreamModelId:b,description:a.description||""})}return i.set(h,{expiresAt:l+3e5,models:m,rawModels:c}),{models:m,rawModels:c}}},47293:(a,b,c)=>{c.d(b,{A:()=>f});let d=new Uint8Array(16);var e=c(50122);let f=function(a,b,c){return b||a||!crypto.randomUUID?function(a,b,c){let f=(a=a||{}).random??a.rng?.()??crypto.getRandomValues(d);if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=f[a];return b}return(0,e.k)(f)}(a,b,c):crypto.randomUUID()}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},84534:(a,b,c)=>{c.d(b,{v:()=>i});var d=c(39609),e=c(75924),f=c(8590);let g=new Map;async function h(a,b){let c=new AbortController,f=setTimeout(()=>c.abort(),1e4);try{let f=await (0,d.proxyAwareFetch)("https://api.githubcopilot.com/models",{method:"GET",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json","Copilot-Integration-Id":"vscode-chat","editor-version":`vscode/${e.x0.VSCODE_VERSION}`,"editor-plugin-version":`copilot-chat/${e.x0.COPILOT_CHAT_VERSION}`,"user-agent":e.x0.USER_AGENT,"x-github-api-version":e.x0.API_VERSION},cache:"no-store",signal:b||c.signal});if(!f.ok){let a=Error(`Copilot /models returned ${f.status}`);throw a.status=f.status,a}let g=await f.json();return Array.isArray(g?.data)?g.data:[]}finally{clearTimeout(f)}}async function i(a,b={}){let c,d=a?.providerSpecificData?.copilotToken||a?.accessToken;if(!d)return b.log?.debug?.("COPILOT_MODELS","No copilotToken/accessToken; skipping live fetch"),null;let e=a?.providerSpecificData?.copilotToken||a?.accessToken||"copilot-anonymous",j=Date.now();if(!b.forceRefresh){let a=g.get(e);if(a&&a.expiresAt>j)return{models:a.models}}try{c=await h(d,b.signal)}catch(d){if(!d||401!==d.status&&403!==d.status||!a.accessToken)return b.log?.warn?.("COPILOT_MODELS",`Live model fetch failed: ${d?.message||d}`),null;{b.log?.info?.("COPILOT_MODELS",`Got ${d.status}; refreshing Copilot token`);let e=await (0,f.jR)(a.accessToken);if(!e?.token)return b.log?.warn?.("COPILOT_MODELS","Token refresh did not return a token"),null;if("function"==typeof b.onCredentialsRefreshed)try{await b.onCredentialsRefreshed({copilotToken:e.token,copilotTokenExpiresAt:e.expiresAt})}catch(a){b.log?.warn?.("COPILOT_MODELS",`onCredentialsRefreshed failed: ${a?.message||a}`)}try{c=await h(e.token,b.signal)}catch(a){return b.log?.warn?.("COPILOT_MODELS",`Retry after refresh failed: ${a?.message||a}`),null}}}let k=function(a){let b=new Set,c=[];for(let d of a){if(!d||"object"!=typeof d||d.capabilities?.type!=="chat"||d.policy&&"enabled"!==d.policy.state)continue;let a=d.id;!a||b.has(a)||(b.add(a),c.push({id:a,name:d.name||a}))}return c}(c);return k.length?(g.set(e,{expiresAt:j+3e5,models:k}),{models:k}):null}},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,KK:()=>d.KK,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,NR:()=>d.NR,OM:()=>d.OM,PX:()=>d.PX,Pb:()=>d.Pb,Pc:()=>d.Pc,QI:()=>d.QI,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,bI:()=>d.bI,c:()=>d.c,dK:()=>d.dK,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,getProviderConnections:()=>d.P,getQuotaSnapshot:()=>d.LF,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,p3:()=>d.p3,qd:()=>d.qd,r4:()=>d.r4,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yW:()=>d.yW,yg:()=>d.yg,zP:()=>d.zP,zY:()=>d.zY});var d=c(80601)}};
1
+ "use strict";exports.id=8450,exports.ids=[8450],exports.modules={28948:(a,b,c)=>{c.d(b,{P:()=>e});var d=c(15626);async function e(a){let b=!!a?.apiKey,c=b?a.apiKey:a?.accessToken;if(!c)return null;let e=new AbortController,f=setTimeout(()=>e.abort(),5e3);try{let a=b?{Accept:"application/json",Authorization:`Bearer ${c}`}:(0,d.buildClineHeaders)(c,{Accept:"application/json"}),f=await fetch("https://api.cline.bot/api/v1/models",{method:"GET",headers:a,signal:e.signal});if(!f.ok)return null;let g=await f.json(),h=Array.isArray(g)?g:g?.data;if(!Array.isArray(h))return null;let i=h.filter(a=>"string"==typeof a?.id&&a.id.startsWith("cline-pass/")).map(a=>({id:a.id,name:a.name||a.id}));return i.length?{models:i}:null}catch{return null}finally{clearTimeout(f)}}},29679:(a,b,c)=>{c.d(b,{cW:()=>k});var d=c(47293),e=c(55511),f=c(8590),g=c(6382);let h="us-east-1",i=new Map;async function j(a,b){let c,f=a?.providerSpecificData?.profileArn||"",i=function(a){if(!a||"string"!=typeof a)return h;let b=a.split(":");return b.length>=4&&b[3]?b[3]:h}(f),j=new URLSearchParams;j.set("origin","AI_EDITOR"),f&&j.set("profileArn",f);let k=`https://q.${i}.amazonaws.com/ListAvailableModels?${j.toString()}`,l={...function(a){let b=a?.providerSpecificData?.clientId||a?.refreshToken||a?.providerSpecificData?.profileArn||a?.accessToken||"kiro-anonymous",c=(0,e.createHash)("sha256").update(String(b)).digest("hex"),{userAgent:f,amzUserAgent:h}=(0,g.VE)(c);return{"User-Agent":f,"x-amz-user-agent":h,"x-amzn-kiro-agent-mode":"vibe","x-amzn-codewhisperer-optout":"true","amz-sdk-request":"attempt=1; max=1","amz-sdk-invocation-id":(0,d.A)(),Accept:"application/json"}}(a),Authorization:`Bearer ${a?.accessToken||""}`},m=new AbortController,n=setTimeout(()=>m.abort("timeout"),3e4);b&&"function"==typeof b.addEventListener&&b.addEventListener("abort",()=>m.abort(b.reason));try{c=await fetch(k,{method:"GET",headers:l,signal:m.signal})}finally{clearTimeout(n)}if(!c.ok){let a=await c.text().catch(()=>""),b=Error(`Kiro ListAvailableModels ${c.status}: ${a||c.statusText}`);throw b.status=c.status,b.body=a,b}let o=await c.json();return Array.isArray(o?.models)?o.models:[]}async function k(a,b={}){let c,d,g;if(!a||!a.accessToken)return b.log?.debug?.("KIRO_MODELS","No accessToken; skipping live fetch"),null;let h=(g=(d=a?.providerSpecificData||{}).profileArn||d.clientId||a?.refreshToken||a?.accessToken||"anonymous",(0,e.createHash)("sha256").update(`kiro:${g}`).digest("hex")),l=Date.now();if(!b.forceRefresh){let a=i.get(h);if(a&&a.expiresAt>l)return{models:a.models,rawModels:a.rawModels}}try{c=await j(a,b.signal)}catch(d){if(!d||401!==d.status||!a.refreshToken)return b.log?.warn?.("KIRO_MODELS",`ListAvailableModels failed: ${d?.message||d}`),null;{b.log?.info?.("KIRO_MODELS","Got 401 from Kiro; refreshing token");let d=await (0,f.Ql)(a.refreshToken,a.providerSpecificData,b.log);if(!d?.accessToken)return b.log?.warn?.("KIRO_MODELS","Token refresh did not return accessToken"),null;{let e={...a,...d};if("function"==typeof b.onCredentialsRefreshed)try{await b.onCredentialsRefreshed(d)}catch(a){b.log?.warn?.("KIRO_MODELS",`onCredentialsRefreshed failed: ${a?.message||a}`)}try{c=await j(e,b.signal),a.accessToken=e.accessToken,e.refreshToken&&(a.refreshToken=e.refreshToken)}catch(a){return b.log?.warn?.("KIRO_MODELS",`Retry after refresh failed: ${a?.message||a}`),null}}}}let m=[];for(let a of c){if(!a||"object"!=typeof a)continue;let b=a.modelId||a.id;if(!b)continue;let c=function(a,b,c){let d=(a||b||"Kiro").trim(),e=Number(c);if(!Number.isFinite(e)||1e-9>Math.abs(e-1)||e<=0)return`Kiro ${d}`;let f=e.toFixed(1).replace(",",".");return`Kiro ${d} (${f}x credit)`}(a.modelName,b,a.rateMultiplier),d=Number(a?.tokenLimits?.maxInputTokens)||2e5;for(let e of function(a,b){let c,d=((c=a).endsWith("-agentic")&&(c=c.slice(0,-8)),c.endsWith("-thinking")&&(c=c.slice(0,-9)),c),e=b||`Kiro ${d}`,f=[{id:d,name:e,capabilities:{thinking:!1,agentic:!1}},{id:`${d}-thinking`,name:`${e} (Thinking)`,capabilities:{thinking:!0,agentic:!1}}];return"auto"!==d&&(f.push({id:`${d}-agentic`,name:`${e} (Agentic)`,capabilities:{thinking:!1,agentic:!0}}),f.push({id:`${d}-thinking-agentic`,name:`${e} (Thinking + Agentic)`,capabilities:{thinking:!0,agentic:!0}})),f}(b,c))m.push({...e,contextLength:d,rateMultiplier:Number.isFinite(Number(a.rateMultiplier))?Number(a.rateMultiplier):1,upstreamModelId:b,description:a.description||""})}return i.set(h,{expiresAt:l+3e5,models:m,rawModels:c}),{models:m,rawModels:c}}},47293:(a,b,c)=>{c.d(b,{A:()=>f});let d=new Uint8Array(16);var e=c(50122);let f=function(a,b,c){return b||a||!crypto.randomUUID?function(a,b,c){let f=(a=a||{}).random??a.rng?.()??crypto.getRandomValues(d);if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=f[a];return b}return(0,e.k)(f)}(a,b,c):crypto.randomUUID()}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},84534:(a,b,c)=>{c.d(b,{v:()=>i});var d=c(39609),e=c(75924),f=c(8590);let g=new Map;async function h(a,b){let c=new AbortController,f=setTimeout(()=>c.abort(),1e4);try{let f=await (0,d.proxyAwareFetch)("https://api.githubcopilot.com/models",{method:"GET",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json","Copilot-Integration-Id":"vscode-chat","editor-version":`vscode/${e.x0.VSCODE_VERSION}`,"editor-plugin-version":`copilot-chat/${e.x0.COPILOT_CHAT_VERSION}`,"user-agent":e.x0.USER_AGENT,"x-github-api-version":e.x0.API_VERSION},cache:"no-store",signal:b||c.signal});if(!f.ok){let a=Error(`Copilot /models returned ${f.status}`);throw a.status=f.status,a}let g=await f.json();return Array.isArray(g?.data)?g.data:[]}finally{clearTimeout(f)}}async function i(a,b={}){let c,d=a?.providerSpecificData?.copilotToken||a?.accessToken;if(!d)return b.log?.debug?.("COPILOT_MODELS","No copilotToken/accessToken; skipping live fetch"),null;let e=a?.providerSpecificData?.copilotToken||a?.accessToken||"copilot-anonymous",j=Date.now();if(!b.forceRefresh){let a=g.get(e);if(a&&a.expiresAt>j)return{models:a.models}}try{c=await h(d,b.signal)}catch(d){if(!d||401!==d.status&&403!==d.status||!a.accessToken)return b.log?.warn?.("COPILOT_MODELS",`Live model fetch failed: ${d?.message||d}`),null;{b.log?.info?.("COPILOT_MODELS",`Got ${d.status}; refreshing Copilot token`);let e=await (0,f.jR)(a.accessToken);if(!e?.token)return b.log?.warn?.("COPILOT_MODELS","Token refresh did not return a token"),null;if("function"==typeof b.onCredentialsRefreshed)try{await b.onCredentialsRefreshed({copilotToken:e.token,copilotTokenExpiresAt:e.expiresAt})}catch(a){b.log?.warn?.("COPILOT_MODELS",`onCredentialsRefreshed failed: ${a?.message||a}`)}try{c=await h(e.token,b.signal)}catch(a){return b.log?.warn?.("COPILOT_MODELS",`Retry after refresh failed: ${a?.message||a}`),null}}}let k=function(a){let b=new Set,c=[];for(let d of a){if(!d||"object"!=typeof d||d.capabilities?.type!=="chat"||d.policy&&"enabled"!==d.policy.state)continue;let a=d.id;!a||b.has(a)||(b.add(a),c.push({id:a,name:d.name||a}))}return c}(c);return k.length?(g.set(e,{expiresAt:j+3e5,models:k}),{models:k}):null}},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,KK:()=>d.KK,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,NR:()=>d.NR,OM:()=>d.OM,PX:()=>d.PX,Pb:()=>d.Pb,Pc:()=>d.Pc,QI:()=>d.QI,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,bI:()=>d.bI,c:()=>d.c,dK:()=>d.dK,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,getProviderConnections:()=>d.P,getQuotaSnapshot:()=>d.LF,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,p3:()=>d.p3,qd:()=>d.qd,r4:()=>d.r4,tV:()=>d.tV,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yW:()=>d.yW,yg:()=>d.yg,zP:()=>d.zP,zY:()=>d.zY});var d=c(80601)}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=8895,exports.ids=[8895],exports.modules={324:(a,b,c)=>{c.d(b,{J:()=>e,Q:()=>f});let d={claude:["claude","anthropic"],"gemini-cli":["gemini-cli"],antigravity:["antigravity"],codex:["codex"]};function e(a={},b={}){let c=(a["user-agent"]||"").toLowerCase(),d=(a["x-app"]||"").toLowerCase(),f=(a["openai-intent"]||"").toLowerCase(),g=(a["x-initiator"]||a["X-Initiator"]||"").toLowerCase();return"antigravity"===b.userAgent?"antigravity":c.includes("githubcopilotchat")||"conversation-panel"===f||"user"===g?"github-copilot":c.includes("claude-cli")||c.includes("claude-code")||"cli"===d?"claude":c.includes("gemini-cli")?"gemini-cli":c.includes("codex-cli")?"codex":c.includes("deepseek-tui")?"deepseek-tui":null}function f(a,b){if(!a)return!1;let c=d[a];if(!c)return!1;let e=b.startsWith("anthropic-compatible")?"anthropic":b;return c.includes(e)}},5016:(a,b,c)=>{c.d(b,{N:()=>n});var d=c(14170),e=c(33110),f=c(39551),g=c(73483),h=c(43659),i=c(41004),j=c(81626),k=c(86171),l=c(47370),m=c(55399);async function n({providerResponse:a,provider:b,model:c,sourceFormat:o,targetFormat:p,body:q,stream:r,translatedBody:s,finalBody:t,requestStartTime:u,connectionId:v,apiKey:w,clientRawRequest:x,onRequestSuccess:y,reqLogger:z,toolNameMap:A,trackDone:B,appendLog:C}){let D;if(B(),(a.headers.get("content-type")||"").includes("text/event-stream")){let b=await a.text(),d=(0,j.F)(b,c);if(!d)return C({status:`FAILED ${i.gx.BAD_GATEWAY}`}),(0,h.A1)(i.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");D=d}else try{D=await a.json()}catch(a){return C({status:`FAILED ${i.gx.BAD_GATEWAY}`}),console.error(`[ChatCore] Failed to parse JSON from ${b}:`,a.message),(0,h.A1)(i.gx.BAD_GATEWAY,`Invalid JSON response from ${b}`)}z.logProviderResponse(a.status,a.statusText,a.headers,D),y&&await y(),D=(0,m.kR)(D,A);let E=(0,k.MK)(D);C({tokens:E,status:"200 OK"}),(0,k.qr)({provider:b,model:c,tokens:E,connectionId:v,apiKey:w,endpoint:x?.endpoint,latency:{ttft:0,total:Date.now()-u}});let F=(0,e.nZ)(p,o)?function(a,b,c){if(b===c||b===d.h.OPENAI)return a;if(b===d.h.GEMINI||b===d.h.ANTIGRAVITY||b===d.h.GEMINI_CLI||b===d.h.VERTEX){let b=a.response||a;if(!b?.candidates?.[0])return a;let c=b.candidates[0],d=c.content,e=b.usageMetadata||a.usageMetadata,f="",g="",h=[];if(d?.parts)for(let a of d.parts)!0===a.thought&&a.text?g+=a.text:void 0!==a.text&&(f+=a.text),a.functionCall&&h.push({id:`call_${a.functionCall.name}_${Date.now()}_${h.length}`,type:"function",function:{name:a.functionCall.name,arguments:JSON.stringify(a.functionCall.args||{})}});let i={role:"assistant"};f&&(i.content=f),g&&(i.reasoning_content=g),h.length>0&&(i.tool_calls=h),i.content||i.tool_calls||(i.content="");let j=(c.finishReason||"stop").toLowerCase();"stop"===j&&h.length>0&&(j="tool_calls");let k={id:`chatcmpl-${b.responseId||Date.now()}`,object:"chat.completion",created:Math.floor(new Date(b.createTime||Date.now()).getTime()/1e3),model:b.modelVersion||"gemini",choices:[{index:0,message:i,finish_reason:j}]};return e&&(k.usage={prompt_tokens:(e.promptTokenCount||0)+(e.thoughtsTokenCount||0),completion_tokens:e.candidatesTokenCount||0,total_tokens:e.totalTokenCount||0},e.thoughtsTokenCount>0&&(k.usage.completion_tokens_details={reasoning_tokens:e.thoughtsTokenCount})),k}if(b===d.h.CLAUDE){if(a.content&&!Array.isArray(a.content))return a;let b="",c="",d=[];for(let e of a.content||[])"text"===e.type?b+=(e.text??"").replace(/^\s*```\s*json\s*\n?/i,"").replace(/\n?\s*```\s*$/i,""):"thinking"===e.type?c+=e.thinking||"":"tool_use"===e.type&&d.push({id:e.id,type:"function",function:{name:e.name,arguments:JSON.stringify(e.input||{})}});let e={role:"assistant"};b&&(e.content=b),c&&(e.reasoning_content=c),d.length>0&&(e.tool_calls=d),e.content||e.tool_calls||(e.content="");let f=a.stop_reason||"stop";"end_turn"===f&&(f="stop"),"tool_use"===f&&(f="tool_calls");let g={id:`chatcmpl-${a.id||Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a.model||"claude",choices:[{index:0,message:e,finish_reason:f}]};return a.usage&&(g.usage={prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,total_tokens:(a.usage.input_tokens||0)+(a.usage.output_tokens||0)}),g}return b===d.h.OLLAMA?(0,f.ollamaBodyToOpenAI)(a):a}(D,p,o):D;if(F?.choices?.[0]){let a=F.choices[0],b=a.message;Array.isArray(b?.tool_calls)&&b.tool_calls.length>0&&"tool_calls"!==a.finish_reason&&(a.finish_reason="tool_calls")}if(F.object||(F.object="chat.completion"),F.created||(F.created=Math.floor(Date.now()/1e3)),delete F.prompt_filter_results,F?.choices)for(let a of F.choices)delete a.content_filter_results;if(F?.usage&&(F.usage=(0,g.WL)((0,g.O9)(F.usage),o)),F?.choices)for(let a of F.choices)a?.message&&delete a.message.reasoning_content;z.logConvertedResponse(F);let G=Date.now()-u;return(0,l.ox)((0,k.$R)({provider:b,model:c,connectionId:v,latency:{ttft:G,total:G},tokens:E||{prompt_tokens:0,completion_tokens:0},request:(0,k.Fo)(q,r),providerRequest:t||s||null,providerResponse:D||null,response:{content:F?.choices?.[0]?.message?.content||F?.content||null,thinking:F?.choices?.[0]?.message?.reasoning_content||F?.reasoning_content||null,finish_reason:F?.choices?.[0]?.finish_reason||"unknown"},status:"success"},{endpoint:x?.endpoint||null})).catch(a=>{console.error("[RequestDetail] Failed to save:",a.message)}),{success:!0,response:new Response(JSON.stringify(F),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}},12557:(a,b,c)=>{c.d(b,{Bl:()=>l,P0:()=>f,Qo:()=>h,S5:()=>n,hk:()=>g,kJ:()=>m});var d=c(3662);let e=["content_length_exceeds_threshold","input is too long","maximum context length","context length exceeds","prompt is too long","request too large","improperly formed request"];function f(a,b){if(413===a)return!0;let c=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"";return 400===a&&e.some(a=>c.includes(a))}function g(a,b,c=0){let e=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"";for(let b of d.t2)if(b.text&&e&&e.includes(b.text)||b.status&&b.status===a){if(b.backoff){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(a),newBackoffLevel:a}}return{shouldFallback:!0,cooldownMs:b.cooldownMs}}return a>=400&&a<500?{shouldFallback:!1,cooldownMs:0}:{shouldFallback:!0,cooldownMs:d.wf}}function h(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let i="modelLock_",j=`${i}__all`;function k(a){return a?`${i}${a}`:j}function l(a,b){let c=a[k(b)]||a[j];return!!c&&new Date(c).getTime()>Date.now()}function m(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(i)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function n(a,b){return{[k(a)]:new Date(Date.now()+b).toISOString()}}},14724:(a,b,c)=>{c.d(b,{F:()=>g});let d=[{triggers:["mcp__exa__web_search_exa","mcp__exa__web_fetch_exa"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:["mcp__tavily__tavily_search","mcp__tavily__tavily_extract"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:[/^mcp__browsermcp__/],strip:[/^mcp__Claude_in_Chrome__/]}];function e(a){return a?.name||a?.function?.name||""}function f(a,b){return"string"==typeof b?a===b:b instanceof RegExp&&b.test(a)}function g(a){if(!Array.isArray(a)||0===a.length)return{tools:a,stripped:[]};let b=a.map(e),c=new Set;for(let a of d)if(b.some(b=>a.triggers.some(a=>f(b,a))))for(let d of b)a.strip.some(a=>f(d,a))&&c.add(d);return 0===c.size?{tools:a,stripped:[]}:{tools:a.filter(a=>!c.has(e(a))),stripped:Array.from(c)}}},14823:(a,b,c)=>{c.d(b,{H:()=>h});var d=c(14170);function e(a){try{return JSON.stringify(a)?.length||0}catch{return 0}}function f(a){return Math.round(a/4)}function g(a,b={}){return{body:null,summary:{applied:!1,reason:a,...b}}}async function h(a,{enabled:b,format:c,model:i,minChars:j,timeoutMs:k,transform:l}={}){if(!b)return g("disabled");if("function"!=typeof l)return g("not_installed");if(!a)return g("missing_body");if(c!==d.h.CLAUDE)return g("unsupported_format",{detail:c});let m=Date.now(),n=e(a),o=Number(j)>0?Number(j):25e3;if(n<o)return g("below_threshold",{originalChars:n,threshold:o});try{let b=new TextEncoder().encode(JSON.stringify(a)),c=Number(k)>0?Number(k):15e3,d=await Promise.race([l({body:b,model:i,options:{minCompressChars:o}}),new Promise(a=>setTimeout(()=>a(null),c))]);if(!d)return g("timeout",{originalChars:n,durationMs:Date.now()-m});if(!d.applied)return g(d.reason||"passthrough",{detail:d.detail,originalChars:n,durationMs:Date.now()-m});let h=JSON.parse(new TextDecoder().decode(d.body)),j=e(h),p=d.info||{},q=p.compressedChars||0,r=p.imageTokens||(p.imagePixels?Math.round(p.imagePixels/750):4761*(p.imageCount||0)),s={applied:!0,reason:"applied",originalChars:n,compressedBodyChars:j,imagedChars:q,imageCount:p.imageCount||0,imageBytes:p.imageBytes||0,tokensBeforeEst:p.baselineTokens||f(n),tokensAfterEst:f(Math.max(0,n-q))+r,durationMs:Date.now()-m,cacheOwnsControl:d.cache?.ownsCacheControl===!0};return s.tokensSavedEst=Math.max(0,s.tokensBeforeEst-s.tokensAfterEst),s.savedPct=s.tokensBeforeEst>0?+(s.tokensSavedEst/s.tokensBeforeEst*100).toFixed(2):0,{body:h,summary:s}}catch(a){return g("transform_error",{detail:a?.message||String(a),originalChars:n,durationMs:Date.now()-m})}}},20623:(a,b,c)=>{c.d(b,{$:()=>m,M:()=>l});var d=c(14170),e=c(33110),f=c(71857),g=c(59657),h=c(30320),i=c(86171),j=c(47370);let k={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"};function l({providerResponse:a,provider:b,model:c,sourceFormat:m,targetFormat:n,userAgent:o,body:p,stream:q,translatedBody:r,finalBody:s,requestStartTime:t,connectionId:u,apiKey:v,clientRawRequest:w,onRequestSuccess:x,reqLogger:y,toolNameMap:z,streamController:A,onStreamComplete:B,streamDetailId:C}){x&&x();let D=function({provider:a,sourceFormat:b,targetFormat:c,userAgent:g,reqLogger:h,toolNameMap:i,model:j,connectionId:k,body:l,onStreamComplete:m,apiKey:n}){let o=g?.toLowerCase().includes("droid")||g?.toLowerCase().includes("codex-cli");if("codex"===a&&c===d.h.OPENAI_RESPONSES&&!o){let c;return c=b===d.h.OPENAI_RESPONSES?d.h.OPENAI_RESPONSES:b===d.h.CLAUDE?d.h.CLAUDE:b===d.h.ANTIGRAVITY||b===d.h.GEMINI||b===d.h.GEMINI_CLI?d.h.ANTIGRAVITY:d.h.OPENAI,(0,f.i5)(d.h.OPENAI_RESPONSES,c,a,h,i,j,k,l,m,n)}return(0,e.nZ)(c,b)?(0,f.i5)(c,b,a,h,i,j,k,l,m,n):(0,f.l2)(a,h,j,k,l,m,n)}({provider:b,sourceFormat:m,targetFormat:n,userAgent:o,reqLogger:y,toolNameMap:z,model:c,connectionId:u,body:p,onStreamComplete:B,apiKey:v}),E=m===d.h.OPENAI_RESPONSES&&n===d.h.OPENAI_RESPONSES?h.Hr:null,F=(0,g.Jb)(a,D,A,E);return(0,j.ox)((0,i.$R)({provider:b,model:c,connectionId:u,latency:{ttft:0,total:Date.now()-t},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,i.Fo)(p,q),providerRequest:s||r||null,providerResponse:"[Streaming - raw response not captured]",response:{content:"[Streaming in progress...]",thinking:null,type:"streaming"},status:"success"},{id:C})).catch(a=>{console.error("[RequestDetail] Failed to save streaming request:",a.message)}),{success:!0,response:new Response(F,{headers:k})}}function m({provider:a,model:b,connectionId:c,apiKey:d,requestStartTime:e,body:f,stream:g,finalBody:h,translatedBody:k,clientRawRequest:l}){let n=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`;return{onStreamComplete:(m,o,p)=>{let q={ttft:p?p-e:Date.now()-e,total:Date.now()-e},r=m?.content||"[Empty streaming response]",s=m?.thinking||null;(0,j.ox)((0,i.$R)({provider:a,model:b,connectionId:c,latency:q,tokens:o||{prompt_tokens:0,completion_tokens:0},request:(0,i.Fo)(f,g),providerRequest:h||k||null,providerResponse:r,response:{content:r,thinking:s,type:"streaming"},status:"success"},{id:n})).catch(a=>{console.error("[RequestDetail] Failed to update streaming content:",a.message)}),(0,i.qr)({provider:a,model:b,tokens:o,connectionId:c,apiKey:d,endpoint:l?.endpoint,latency:q,label:"STREAM USAGE"})},streamDetailId:n}}},27349:(a,b,c)=>{c.d(b,{c:()=>i});var d=c(57647),e=c(33110),f=c(14170),g=c(41004),h=c(71857);function i(a,b,c="",e=!1){if(!c.includes("claude-cli")||!a.messages?.length)return null;let f=a.messages,h=a=>"string"==typeof a?a:Array.isArray(a)?a.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"",j=!1,m=!1,n=f[f.length-1];if(n?.role==="assistant"&&n.content?.[0]?.text==="{"&&(j=!0),j||"Warmup"===h(f[0]?.content)&&(j=!0),j||1!==f.length||f[0]?.role!=="user"||"count"===h(f[0]?.content)&&(j=!0),!j&&g.C8?.length){let a=f.filter(a=>"user"===a.role).map(a=>h(a.content)).join(" ");g.C8.some(b=>a.includes(b))&&(j=!0)}if(!j&&e){let b=f.find(a=>"system"===a.role),c=h(b?.content),d=Array.isArray(a.system)?a.system.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"string"==typeof a.system?a.system:"";(c||d).includes("isNewTopic")&&(j=!0,m=!0)}if(!j)return null;let o=(0,d.Tz)(a),p=!1!==a.stream;if(m){let a=f.find(a=>"user"===a.role),c=JSON.stringify({isNewTopic:!0,title:h(a?.content).trim().split(/\s+/).slice(0,3).join(" ")});return p?l(o,b,c):k(o,b,c)}return p?l(o,b):k(o,b)}function j(a,b="CLI Command Execution: Clear Terminal"){return{id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:{role:"assistant",content:b},finish_reason:"stop"}],usage:{prompt_tokens:1,completion_tokens:1,total_tokens:2}}}function k(a,b,c){let d=j(b,c);if(a===f.h.OPENAI)return{success:!0,response:new Response(JSON.stringify(d),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};let g=(0,e.Ws)(a);g.model=b;let h=m(d),i=[];for(let b of h){let c=(0,e.Y8)(f.h.OPENAI,a,b,g);c?.length>0&&i.push(...c)}let k=(0,e.Y8)(f.h.OPENAI,a,null,g);return k?.length>0&&i.push(...k),{success:!0,response:new Response(JSON.stringify(function(a,b){if(!a||0===a.length)return j("unknown");let c=a[a.length-1];if(b===f.h.CLAUDE&&a.find(a=>"message_stop"===a.type)){a.find(a=>"content_block_delta"===a.type);let b=a.find(a=>"message_delta"===a.type),d=a.find(a=>"message_start"===a.type);d?.message&&(c=d.message,b?.usage&&(c.usage=b.usage))}return c}(i,a)),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}function l(a,b,c){let d=j(b,c),g=(0,e.Ws)(a);g.model=b;let i=m(d),k=[];for(let b of i){let c=(0,e.Y8)(f.h.OPENAI,a,b,g);if(c?.length>0)for(let b of c)k.push((0,h.v8)(b,a))}let l=(0,e.Y8)(f.h.OPENAI,a,null,g);if(l?.length>0)for(let b of l)k.push((0,h.v8)(b,a));return k.push("data: [DONE]\n\n"),{success:!0,response:new Response(k.join(""),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"}})}}function m(a){let{id:b,created:c,model:d,choices:e}=a;return[{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{role:"assistant",content:e[0].message.content},finish_reason:null}]},{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{},finish_reason:"stop"}],usage:a.usage}]}},30320:(a,b,c)=>{c.d(b,{Hr:()=>j,nu:()=>h,u9:()=>k,yx:()=>g});var d=c(14170),e=c(9024);let f=new Set(["response.completed","response.failed","error"]);function g(a,b){return a||(b&&"string"==typeof b.type?b.type:null)}function h(a,b){let c=g(a,b);if(f.has(c))return!0;let d=b?.response?.status;return"completed"===d||"failed"===d}let i=new TextEncoder;function j(){return i.encode(`${k()}data: [DONE]
1
+ "use strict";exports.id=8895,exports.ids=[8895],exports.modules={324:(a,b,c)=>{c.d(b,{J:()=>e,Q:()=>f});let d={claude:["claude","anthropic"],"gemini-cli":["gemini-cli"],antigravity:["antigravity"],codex:["codex"]};function e(a={},b={}){let c=(a["user-agent"]||"").toLowerCase(),d=(a["x-app"]||"").toLowerCase(),f=(a["openai-intent"]||"").toLowerCase(),g=(a["x-initiator"]||a["X-Initiator"]||"").toLowerCase();return"antigravity"===b.userAgent?"antigravity":c.includes("githubcopilotchat")||"conversation-panel"===f||"user"===g?"github-copilot":c.includes("claude-cli")||c.includes("claude-code")||"cli"===d?"claude":c.includes("gemini-cli")?"gemini-cli":c.includes("codex-cli")?"codex":c.includes("deepseek-tui")?"deepseek-tui":null}function f(a,b){if(!a)return!1;let c=d[a];if(!c)return!1;let e=b.startsWith("anthropic-compatible")?"anthropic":b;return c.includes(e)}},5016:(a,b,c)=>{c.d(b,{N:()=>n});var d=c(14170),e=c(33110),f=c(39551),g=c(73483),h=c(43659),i=c(41004),j=c(81626),k=c(86171),l=c(47370),m=c(55399);async function n({providerResponse:a,provider:b,model:c,sourceFormat:o,targetFormat:p,body:q,stream:r,translatedBody:s,finalBody:t,requestStartTime:u,connectionId:v,apiKey:w,clientRawRequest:x,onRequestSuccess:y,reqLogger:z,toolNameMap:A,trackDone:B,appendLog:C}){let D;if(B(),(a.headers.get("content-type")||"").includes("text/event-stream")){let b=await a.text(),d=(0,j.F)(b,c);if(!d)return C({status:`FAILED ${i.gx.BAD_GATEWAY}`}),(0,h.A1)(i.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");D=d}else try{D=await a.json()}catch(a){return C({status:`FAILED ${i.gx.BAD_GATEWAY}`}),console.error(`[ChatCore] Failed to parse JSON from ${b}:`,a.message),(0,h.A1)(i.gx.BAD_GATEWAY,`Invalid JSON response from ${b}`)}z.logProviderResponse(a.status,a.statusText,a.headers,D),y&&await y(),D=(0,m.kR)(D,A);let E=(0,k.MK)(D);C({tokens:E,status:"200 OK"}),(0,k.qr)({provider:b,model:c,tokens:E,connectionId:v,apiKey:w,endpoint:x?.endpoint,latency:{ttft:0,total:Date.now()-u}});let F=(0,e.nZ)(p,o)?function(a,b,c){if(b===c||b===d.h.OPENAI)return a;if(b===d.h.GEMINI||b===d.h.ANTIGRAVITY||b===d.h.GEMINI_CLI||b===d.h.VERTEX){let b=a.response||a;if(!b?.candidates?.[0])return a;let c=b.candidates[0],d=c.content,e=b.usageMetadata||a.usageMetadata,f="",g="",h=[];if(d?.parts)for(let a of d.parts)!0===a.thought&&a.text?g+=a.text:void 0!==a.text&&(f+=a.text),a.functionCall&&h.push({id:`call_${a.functionCall.name}_${Date.now()}_${h.length}`,type:"function",function:{name:a.functionCall.name,arguments:JSON.stringify(a.functionCall.args||{})}});let i={role:"assistant"};f&&(i.content=f),g&&(i.reasoning_content=g),h.length>0&&(i.tool_calls=h),i.content||i.tool_calls||(i.content="");let j=(c.finishReason||"stop").toLowerCase();"stop"===j&&h.length>0&&(j="tool_calls");let k={id:`chatcmpl-${b.responseId||Date.now()}`,object:"chat.completion",created:Math.floor(new Date(b.createTime||Date.now()).getTime()/1e3),model:b.modelVersion||"gemini",choices:[{index:0,message:i,finish_reason:j}]};return e&&(k.usage={prompt_tokens:(e.promptTokenCount||0)+(e.thoughtsTokenCount||0),completion_tokens:e.candidatesTokenCount||0,total_tokens:e.totalTokenCount||0},e.thoughtsTokenCount>0&&(k.usage.completion_tokens_details={reasoning_tokens:e.thoughtsTokenCount})),k}if(b===d.h.CLAUDE){if(a.content&&!Array.isArray(a.content))return a;let b="",c="",d=[];for(let e of a.content||[])"text"===e.type?b+=(e.text??"").replace(/^\s*```\s*json\s*\n?/i,"").replace(/\n?\s*```\s*$/i,""):"thinking"===e.type?c+=e.thinking||"":"tool_use"===e.type&&d.push({id:e.id,type:"function",function:{name:e.name,arguments:JSON.stringify(e.input||{})}});let e={role:"assistant"};b&&(e.content=b),c&&(e.reasoning_content=c),d.length>0&&(e.tool_calls=d),e.content||e.tool_calls||(e.content="");let f=a.stop_reason||"stop";"end_turn"===f&&(f="stop"),"tool_use"===f&&(f="tool_calls");let g={id:`chatcmpl-${a.id||Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a.model||"claude",choices:[{index:0,message:e,finish_reason:f}]};return a.usage&&(g.usage={prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,total_tokens:(a.usage.input_tokens||0)+(a.usage.output_tokens||0)}),g}return b===d.h.OLLAMA?(0,f.ollamaBodyToOpenAI)(a):a}(D,p,o):D;if(F?.choices?.[0]){let a=F.choices[0],b=a.message;Array.isArray(b?.tool_calls)&&b.tool_calls.length>0&&"tool_calls"!==a.finish_reason&&(a.finish_reason="tool_calls")}if(F.object||(F.object="chat.completion"),F.created||(F.created=Math.floor(Date.now()/1e3)),delete F.prompt_filter_results,F?.choices)for(let a of F.choices)delete a.content_filter_results;if(F?.usage&&(F.usage=(0,g.WL)((0,g.O9)(F.usage),o)),F?.choices)for(let a of F.choices)a?.message&&delete a.message.reasoning_content;z.logConvertedResponse(F);let G=Date.now()-u;return(0,l.ox)((0,k.$R)({provider:b,model:c,connectionId:v,latency:{ttft:G,total:G},tokens:E||{prompt_tokens:0,completion_tokens:0},request:(0,k.Fo)(q,r),providerRequest:t||s||null,providerResponse:D||null,response:{content:F?.choices?.[0]?.message?.content||F?.content||null,thinking:F?.choices?.[0]?.message?.reasoning_content||F?.reasoning_content||null,finish_reason:F?.choices?.[0]?.finish_reason||"unknown"},status:"success"},{endpoint:x?.endpoint||null})).catch(a=>{console.error("[RequestDetail] Failed to save:",a.message)}),{success:!0,response:new Response(JSON.stringify(F),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}},12557:(a,b,c)=>{c.d(b,{Bl:()=>o,P0:()=>f,Qo:()=>k,S5:()=>q,UO:()=>g,eS:()=>i,hk:()=>j,kJ:()=>p,lI:()=>h});var d=c(3662);let e=["content_length_exceeds_threshold","input is too long","maximum context length","context length exceeds","prompt is too long","request too large","improperly formed request"];function f(a,b){if(413===a)return!0;let c=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"";return 400===a&&e.some(a=>c.includes(a))}function g(a){if(!a)return null;let b="string"==typeof a?a:JSON.stringify(a);try{let a=JSON.parse(b),c=a?.code??a?.error?.code;if(Number.isInteger(Number(c)))return Number(c)}catch{}let c=b.match(/(?:"code"\s*:\s*|\bcode\s+)(\d{4,6})\b/i);return c?Number(c[1]):null}function h(a){let b=Object.values(a?.quotas||{}).map(a=>Date.parse(a?.resetAt)).filter(a=>Number.isFinite(a)&&a>Date.now());return b.length?Math.min(...b):null}function i(a){let b=Object.values(a?.quotas||{}),c=b.filter(a=>Number.isFinite(a?.remaining)||Number.isFinite(a?.remainingPercentage));return!c.length||c.length!==b.length||c.some(a=>(Number.isFinite(a.remaining)?a.remaining:a.remainingPercentage)>0)?null:h(a)}function j(a,b,c=0){let e=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"";for(let b of d.t2)if(b.text&&e&&e.includes(b.text)||b.status&&b.status===a){if(b.backoff){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(a),newBackoffLevel:a}}return{shouldFallback:!0,cooldownMs:b.cooldownMs}}return a>=400&&a<500?{shouldFallback:!1,cooldownMs:0}:{shouldFallback:!0,cooldownMs:d.wf}}function k(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let l="modelLock_",m=`${l}__all`;function n(a){return a?`${l}${a}`:m}function o(a,b){let c=a[n(b)]||a[m];return!!c&&new Date(c).getTime()>Date.now()}function p(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(l)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function q(a,b){return{[n(a)]:new Date(Date.now()+b).toISOString()}}},14724:(a,b,c)=>{c.d(b,{F:()=>g});let d=[{triggers:["mcp__exa__web_search_exa","mcp__exa__web_fetch_exa"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:["mcp__tavily__tavily_search","mcp__tavily__tavily_extract"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:[/^mcp__browsermcp__/],strip:[/^mcp__Claude_in_Chrome__/]}];function e(a){return a?.name||a?.function?.name||""}function f(a,b){return"string"==typeof b?a===b:b instanceof RegExp&&b.test(a)}function g(a){if(!Array.isArray(a)||0===a.length)return{tools:a,stripped:[]};let b=a.map(e),c=new Set;for(let a of d)if(b.some(b=>a.triggers.some(a=>f(b,a))))for(let d of b)a.strip.some(a=>f(d,a))&&c.add(d);return 0===c.size?{tools:a,stripped:[]}:{tools:a.filter(a=>!c.has(e(a))),stripped:Array.from(c)}}},14823:(a,b,c)=>{c.d(b,{H:()=>h});var d=c(14170);function e(a){try{return JSON.stringify(a)?.length||0}catch{return 0}}function f(a){return Math.round(a/4)}function g(a,b={}){return{body:null,summary:{applied:!1,reason:a,...b}}}async function h(a,{enabled:b,format:c,model:i,minChars:j,timeoutMs:k,transform:l}={}){if(!b)return g("disabled");if("function"!=typeof l)return g("not_installed");if(!a)return g("missing_body");if(c!==d.h.CLAUDE)return g("unsupported_format",{detail:c});let m=Date.now(),n=e(a),o=Number(j)>0?Number(j):25e3;if(n<o)return g("below_threshold",{originalChars:n,threshold:o});try{let b=new TextEncoder().encode(JSON.stringify(a)),c=Number(k)>0?Number(k):15e3,d=await Promise.race([l({body:b,model:i,options:{minCompressChars:o}}),new Promise(a=>setTimeout(()=>a(null),c))]);if(!d)return g("timeout",{originalChars:n,durationMs:Date.now()-m});if(!d.applied)return g(d.reason||"passthrough",{detail:d.detail,originalChars:n,durationMs:Date.now()-m});let h=JSON.parse(new TextDecoder().decode(d.body)),j=e(h),p=d.info||{},q=p.compressedChars||0,r=p.imageTokens||(p.imagePixels?Math.round(p.imagePixels/750):4761*(p.imageCount||0)),s={applied:!0,reason:"applied",originalChars:n,compressedBodyChars:j,imagedChars:q,imageCount:p.imageCount||0,imageBytes:p.imageBytes||0,tokensBeforeEst:p.baselineTokens||f(n),tokensAfterEst:f(Math.max(0,n-q))+r,durationMs:Date.now()-m,cacheOwnsControl:d.cache?.ownsCacheControl===!0};return s.tokensSavedEst=Math.max(0,s.tokensBeforeEst-s.tokensAfterEst),s.savedPct=s.tokensBeforeEst>0?+(s.tokensSavedEst/s.tokensBeforeEst*100).toFixed(2):0,{body:h,summary:s}}catch(a){return g("transform_error",{detail:a?.message||String(a),originalChars:n,durationMs:Date.now()-m})}}},20623:(a,b,c)=>{c.d(b,{$:()=>m,M:()=>l});var d=c(14170),e=c(33110),f=c(71857),g=c(59657),h=c(30320),i=c(86171),j=c(47370);let k={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"};function l({providerResponse:a,provider:b,model:c,sourceFormat:m,targetFormat:n,userAgent:o,body:p,stream:q,translatedBody:r,finalBody:s,requestStartTime:t,connectionId:u,apiKey:v,clientRawRequest:w,onRequestSuccess:x,reqLogger:y,toolNameMap:z,streamController:A,onStreamComplete:B,streamDetailId:C}){x&&x();let D=function({provider:a,sourceFormat:b,targetFormat:c,userAgent:g,reqLogger:h,toolNameMap:i,model:j,connectionId:k,body:l,onStreamComplete:m,apiKey:n}){let o=g?.toLowerCase().includes("droid")||g?.toLowerCase().includes("codex-cli");if("codex"===a&&c===d.h.OPENAI_RESPONSES&&!o){let c;return c=b===d.h.OPENAI_RESPONSES?d.h.OPENAI_RESPONSES:b===d.h.CLAUDE?d.h.CLAUDE:b===d.h.ANTIGRAVITY||b===d.h.GEMINI||b===d.h.GEMINI_CLI?d.h.ANTIGRAVITY:d.h.OPENAI,(0,f.i5)(d.h.OPENAI_RESPONSES,c,a,h,i,j,k,l,m,n)}return(0,e.nZ)(c,b)?(0,f.i5)(c,b,a,h,i,j,k,l,m,n):(0,f.l2)(a,h,j,k,l,m,n)}({provider:b,sourceFormat:m,targetFormat:n,userAgent:o,reqLogger:y,toolNameMap:z,model:c,connectionId:u,body:p,onStreamComplete:B,apiKey:v}),E=m===d.h.OPENAI_RESPONSES&&n===d.h.OPENAI_RESPONSES?h.Hr:null,F=(0,g.Jb)(a,D,A,E);return(0,j.ox)((0,i.$R)({provider:b,model:c,connectionId:u,latency:{ttft:0,total:Date.now()-t},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,i.Fo)(p,q),providerRequest:s||r||null,providerResponse:"[Streaming - raw response not captured]",response:{content:"[Streaming in progress...]",thinking:null,type:"streaming"},status:"success"},{id:C})).catch(a=>{console.error("[RequestDetail] Failed to save streaming request:",a.message)}),{success:!0,response:new Response(F,{headers:k})}}function m({provider:a,model:b,connectionId:c,apiKey:d,requestStartTime:e,body:f,stream:g,finalBody:h,translatedBody:k,clientRawRequest:l}){let n=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`;return{onStreamComplete:(m,o,p)=>{let q={ttft:p?p-e:Date.now()-e,total:Date.now()-e},r=m?.content||"[Empty streaming response]",s=m?.thinking||null;(0,j.ox)((0,i.$R)({provider:a,model:b,connectionId:c,latency:q,tokens:o||{prompt_tokens:0,completion_tokens:0},request:(0,i.Fo)(f,g),providerRequest:h||k||null,providerResponse:r,response:{content:r,thinking:s,type:"streaming"},status:"success"},{id:n})).catch(a=>{console.error("[RequestDetail] Failed to update streaming content:",a.message)}),(0,i.qr)({provider:a,model:b,tokens:o,connectionId:c,apiKey:d,endpoint:l?.endpoint,latency:q,label:"STREAM USAGE"})},streamDetailId:n}}},27349:(a,b,c)=>{c.d(b,{c:()=>i});var d=c(57647),e=c(33110),f=c(14170),g=c(41004),h=c(71857);function i(a,b,c="",e=!1){if(!c.includes("claude-cli")||!a.messages?.length)return null;let f=a.messages,h=a=>"string"==typeof a?a:Array.isArray(a)?a.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"",j=!1,m=!1,n=f[f.length-1];if(n?.role==="assistant"&&n.content?.[0]?.text==="{"&&(j=!0),j||"Warmup"===h(f[0]?.content)&&(j=!0),j||1!==f.length||f[0]?.role!=="user"||"count"===h(f[0]?.content)&&(j=!0),!j&&g.C8?.length){let a=f.filter(a=>"user"===a.role).map(a=>h(a.content)).join(" ");g.C8.some(b=>a.includes(b))&&(j=!0)}if(!j&&e){let b=f.find(a=>"system"===a.role),c=h(b?.content),d=Array.isArray(a.system)?a.system.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"string"==typeof a.system?a.system:"";(c||d).includes("isNewTopic")&&(j=!0,m=!0)}if(!j)return null;let o=(0,d.Tz)(a),p=!1!==a.stream;if(m){let a=f.find(a=>"user"===a.role),c=JSON.stringify({isNewTopic:!0,title:h(a?.content).trim().split(/\s+/).slice(0,3).join(" ")});return p?l(o,b,c):k(o,b,c)}return p?l(o,b):k(o,b)}function j(a,b="CLI Command Execution: Clear Terminal"){return{id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:{role:"assistant",content:b},finish_reason:"stop"}],usage:{prompt_tokens:1,completion_tokens:1,total_tokens:2}}}function k(a,b,c){let d=j(b,c);if(a===f.h.OPENAI)return{success:!0,response:new Response(JSON.stringify(d),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};let g=(0,e.Ws)(a);g.model=b;let h=m(d),i=[];for(let b of h){let c=(0,e.Y8)(f.h.OPENAI,a,b,g);c?.length>0&&i.push(...c)}let k=(0,e.Y8)(f.h.OPENAI,a,null,g);return k?.length>0&&i.push(...k),{success:!0,response:new Response(JSON.stringify(function(a,b){if(!a||0===a.length)return j("unknown");let c=a[a.length-1];if(b===f.h.CLAUDE&&a.find(a=>"message_stop"===a.type)){a.find(a=>"content_block_delta"===a.type);let b=a.find(a=>"message_delta"===a.type),d=a.find(a=>"message_start"===a.type);d?.message&&(c=d.message,b?.usage&&(c.usage=b.usage))}return c}(i,a)),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}function l(a,b,c){let d=j(b,c),g=(0,e.Ws)(a);g.model=b;let i=m(d),k=[];for(let b of i){let c=(0,e.Y8)(f.h.OPENAI,a,b,g);if(c?.length>0)for(let b of c)k.push((0,h.v8)(b,a))}let l=(0,e.Y8)(f.h.OPENAI,a,null,g);if(l?.length>0)for(let b of l)k.push((0,h.v8)(b,a));return k.push("data: [DONE]\n\n"),{success:!0,response:new Response(k.join(""),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"}})}}function m(a){let{id:b,created:c,model:d,choices:e}=a;return[{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{role:"assistant",content:e[0].message.content},finish_reason:null}]},{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{},finish_reason:"stop"}],usage:a.usage}]}},30320:(a,b,c)=>{c.d(b,{Hr:()=>j,nu:()=>h,u9:()=>k,yx:()=>g});var d=c(14170),e=c(9024);let f=new Set(["response.completed","response.failed","error"]);function g(a,b){return a||(b&&"string"==typeof b.type?b.type:null)}function h(a,b){let c=g(a,b);if(f.has(c))return!0;let d=b?.response?.status;return"completed"===d||"failed"===d}let i=new TextEncoder;function j(){return i.encode(`${k()}data: [DONE]
2
2
 
3
3
  `)}function k(){return(0,e.v8)({event:"response.failed",data:{type:"response.failed",response:{id:`resp_${Date.now()}`,status:"failed",error:{type:"stream_error",code:"stream_disconnected",message:"stream closed before response.completed"}}}},d.h.OPENAI_RESPONSES)}},36672:(a,b,c)=>{c.d(b,{C2:()=>f,kD:()=>e});let d=new Set(["none","off","auto","minimal","low","medium","high","xhigh","max","on","thinking"]);function e(a){if("string"!=typeof a)return a;let b=a.match(/^(.*)\([^()]+\)\s*$/);return b?b[1].trim():a}function f(a,b,c){let{cleanModel:e,level:f}=function(a){if("string"!=typeof a)return{cleanModel:a,level:null};let b=a.match(/^(.*)\(([^()]+)\)\s*$/);if(!b)return{cleanModel:a,level:null};let c=b[1].trim(),e=b[2].trim().toLowerCase();return d.has(e)||/^\d+$/.test(e)?"off"===e?{cleanModel:c,level:"none"}:"on"===e||"thinking"===e?{cleanModel:c,level:"high"}:{cleanModel:c,level:e}:{cleanModel:a,level:null}}(a),g=b&&"object"==typeof b?{...b}:b||{},h=f||(c?.mode&&"auto"!==c.mode?c.mode:null);return h?("on"===h?g.thinking||(g={...g,thinking:{type:"enabled",budget_tokens:1e4}}):"off"===h||"none"===h?(g={...g,thinking:{type:"disabled"}},delete g.reasoning_effort,g.reasoning&&"object"==typeof g.reasoning&&(g.reasoning={...g.reasoning,effort:"none"})):g.reasoning_effort||(g={...g,reasoning_effort:h}),{body:g,cleanModel:e,applied:h}):{body:g,cleanModel:e,applied:null}}},43659:(a,b,c)=>{c.d(b,{A1:()=>g,lR:()=>i,wO:()=>h,yj:()=>e,zL:()=>f});var d=c(3662);function e(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function f(a,b=null){let c="";try{c=await a.text()}catch{c=""}if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let e="";try{let a=JSON.parse(c);e=a.error?.message||a.message||a.error||c}catch{e=c}let g=("string"==typeof e?e:JSON.stringify(e))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:g}}function g(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:e(a,b)}}function h(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function i(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}},48895:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{SB:()=>f.SB}),c(39609),c(35024),c(75924),c(41004),c(44404),c(14170),c(33110),c(57647),c(40669),c(12557),c(8590),c(93943);var e=c(92500);c(59657);var f=c(55330);c(43659),c(71857);var g=a([e,f]);[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},59657:(a,b,c)=>{c.d(b,{Jb:()=>h,aI:()=>f,jd:()=>g});var d=c(41004),e=c(92306);async function f(a){try{await a.body?.cancel()}catch{}}function g({onDisconnect:a,onError:b,log:c,provider:d,model:f,signal:h}={}){let i=new AbortController,j=Date.now(),k=!1,l=null,m=()=>i.abort(h.reason),n=()=>h?.removeEventListener("abort",m);h?.aborted?m():h?.addEventListener("abort",m,{once:!0});let o=a=>{let b=Date.now()-j,c=d?.toUpperCase()||"UNKNOWN";console.log(`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 🌊 [STREAM] ${c} | ${f||"unknown"} | ${b}ms | ${a}`)};return{signal:i.signal,cleanup:n,startTime:j,isConnected:()=>!k,handleDisconnect:(b="client_closed")=>{k||(k=!0,n(),o(`disconnect: ${b}`),(0,e.s)("CTRL",`${d}/${f} | disconnect=${b} | dur=${Date.now()-j}ms`),l=setTimeout(()=>{i.abort()},500),a?.({reason:b,duration:Date.now()-j}))},handleComplete:()=>{!k&&(k=!0,n(),o("complete"),l&&(clearTimeout(l),l=null))},handleError:a=>{if(!k){if(k=!0,n(),l&&(clearTimeout(l),l=null),"AbortError"===a.name)return void o("aborted");o(`error: ${a.message}`),b?.(a)}},abort:()=>i.abort()}}function h(a,b,c,f=null){let g=null,i=0,j=0,k=Date.now(),l=Date.now(),m="STREAM",n=()=>{g&&(clearTimeout(g),g=null)},o=()=>{n(),g=setTimeout(()=>{g=null,(0,e.s)(m,`STALL TIMEOUT ${d.xM}ms | chunks=${i} | bytes=${j} | sinceLast=${Date.now()-k}ms`),c.handleError?.(Error("stream stall timeout")),c.abort?.()},d.xM)},p={signal:c.signal,startTime:c.startTime,isConnected:()=>c.isConnected(),handleComplete:()=>{(0,e.s)(m,`complete | chunks=${i} | bytes=${j} | dur=${Date.now()-l}ms`),n(),c.handleComplete()},handleError:a=>{(0,e.s)(m,`error: ${a?.message} | chunks=${i} | bytes=${j} | dur=${Date.now()-l}ms`),n(),c.handleError(a)},handleDisconnect:a=>{(0,e.s)(m,`disconnect: ${a} | chunks=${i} | bytes=${j} | dur=${Date.now()-l}ms`),n(),c.handleDisconnect(a)},abort:()=>{n(),c.abort()}};o(),(0,e.s)(m,`pipe start | stallTimeout=${d.xM}ms`);let q=new TransformStream({transform(a,b){i++;let c=a?.byteLength||a?.length||0;j+=c;let d=Date.now(),f=d-k;k=d,e.T&&(i<=5||i%20==0||f>5e3)&&(0,e.s)(m,`chunk #${i} | size=${c}B | gap=${f}ms | total=${j}B`),o(),b.enqueue(a)},flush(){(0,e.s)(m,`upstream EOF | chunks=${i} | bytes=${j} | dur=${Date.now()-l}ms`),n()}});return function(a,b,c=null){let d=a.readable.getReader(),e=a.writable.getWriter(),f=!1,g=a=>{if(!f&&c){f=!0;try{let b=c();b&&a.enqueue(b)}catch{}}};return new ReadableStream({async pull(a){if(!b.isConnected()){g(a),a.close();return}try{let{done:c,value:e}=await d.read();if(c){b.handleComplete(),a.close();return}a.enqueue(e)}catch(k){let f=b.isConnected();b.handleError(k),d.cancel().catch(()=>{}),e.abort().catch(()=>{});let h=k?.message||"",i=k?.code||k?.cause?.code||"",j="AbortError"===k.name||h.includes("aborted")||h.includes("socket hang up")||h.includes("ECONNRESET")||h.includes("ETIMEDOUT")||h.includes("EPIPE")||"ECONNRESET"===i||"ETIMEDOUT"===i||"EPIPE"===i||"UND_ERR_SOCKET"===i;try{!f||j||c?(g(a),a.close()):a.error(k)}catch(a){}}},cancel(a){b.handleDisconnect(a||"cancelled"),d.cancel(),e.abort()}})}({readable:a.body.pipeThrough(q).pipeThrough(b),writable:{getWriter:()=>({abort:()=>Promise.resolve()})}},p,f)}},60125:(a,b,c)=>{c.d(b,{p:()=>j});var d=c(14170);let e="Code blocks, file paths, commands, errors, URLs: keep exact. Security warnings, irreversible action confirmations, multi-step ordered sequences: write normal. Resume terse style after.",f='Not: "Sure! I\'d be happy to help you with that. The issue you\'re experiencing is likely caused by..." Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"',g="Auto-Clarity: drop caveman for security warnings, irreversible actions, multi-step sequences where fragment ambiguity risks misread, or when user repeats a question. Resume after the clear part.",h="ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure.",i={lite:["Respond tersely. Keep grammar and full sentences but drop filler, hedging and pleasantries (just/really/basically/sure/of course/I'd be happy to). Pattern: state the thing, the action, the reason. Then next step.",f,e,g,h].join(" "),full:["Respond like terse caveman. All technical substance stay exact, only fluff die. Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries, hedging. Fragments OK. Short synonyms (big not extensive, fix not implement a solution for). Pattern: [thing] [action] [reason]. [next step].",f,e,g,h].join(" "),ultra:["Respond ultra-terse. Maximum compression. Telegraphic. Abbreviate (DB/auth/config/req/res/fn/impl), strip conjunctions, use arrows for causality (X → Y). One word when one word enough. Pattern: [thing] → [result]. [fix].",f,e,g,h].join(" "),"wenyan-lite":["Respond semi-classical. Drop filler/hedging but keep grammar structure, classical register. Use classical Chinese sentence patterns where natural. Keep English for technical terms.",f,e,g,h].join(" "),wenyan:["Respond classical Chinese (文言文). Maximum classical terseness. 80-90% character reduction. Classical sentence patterns, verbs precede objects, subjects often omitted, classical particles (之/乃/為/其). Keep English for code, commands, function names, API names, error strings.",f,e,g,h].join(" "),"wenyan-ultra":["Respond extreme classical compression (文言文 ultra). Maximum compression, ultra terse. Same classical rules as wenyan-full but even more compressed. One classical particle per clause.",f,e,g,h].join(" ")};function j(a,b,c){let e=i[c];if(a&&e)switch(b){case d.h.CLAUDE:!function(a,b){if("string"==typeof a.system&&a.system.length>0){a.system=`${a.system}
4
4
 
@@ -50,7 +50,7 @@ ${c}
50
50
  `.replace(/'/g,"'\\''");await t(`printf '%s' '${e}' | tee ${q} > /dev/null`,b),await u(b)}i(`🌐 DNS ${a}: ✅ added ${d.join(", ")}`)}catch(a){throw Error(a.message?.includes("incorrect password")?"Wrong sudo password":`Failed to add DNS entry: ${a.message}`)}}async function x(a,b){let c=k[a];if(!c)throw Error(`Unknown tool: ${a}`);let d=c.filter(a=>v(a));if(0===d.length)return void i(`🌐 DNS ${a}: already inactive`);try{if(o){let a=g.readFileSync(q,"utf8"),b=a.split(/\r?\n/).filter(a=>!d.some(b=>a.includes(b))).join("\r\n").replace(/[\r\n\s]+$/g,"")+"\r\n";n(q,a,b),await l("ipconfig /flushdns | Out-Null")}else{let a=(g.readFileSync(q,"utf8").split(/\r?\n/).filter(a=>!d.some(b=>a.includes(b))).join("\n").replace(/[\r\n\s]+$/g,"")+"\n").replace(/'/g,"'\\''");await t(`printf '%s' '${a}' | tee ${q} > /dev/null`,b),await u(b)}i(`🌐 DNS ${a}: ✅ removed ${d.join(", ")}`)}catch(a){throw Error(a.message?.includes("incorrect password")?"Wrong sudo password":`Failed to remove DNS entry: ${a.message}`)}}async function y(a){for(let b of Object.keys(k))try{await x(b,a)}catch(a){j(`DNS ${b}: failed to remove — ${a.message}`)}}a.exports={TOOL_HOSTS:k,addDNSEntry:w,removeDNSEntry:x,removeAllDNSEntries:y,removeAllDNSEntriesSync:function(){try{if(!g.existsSync(q))return;let a=Object.values(k).flat(),b=g.readFileSync(q,"utf8"),c=o?"\r\n":"\n",d=b.split(/\r?\n/).filter(b=>!a.some(a=>b.includes(a))).join(c).replace(/[\r\n\s]+$/g,"")+c;if(d===b)return;if(g.writeFileSync(q,d,"utf8"),o)try{f("ipconfig /flushdns",{windowsHide:!0,stdio:"ignore"})}catch{}else if(p)try{f("dscacheutil -flushcache && killall -HUP mDNSResponder",{stdio:"ignore"})}catch{}else try{f("resolvectl flush-caches 2>/dev/null || true",{stdio:"ignore"})}catch{}}catch{}},execWithPassword:t,isSudoAvailable:r,canRunSudoWithoutPassword:s,isSudoPasswordRequired:function(){return!o&&r()&&!s()},checkDNSEntry:v,checkAllDNSStatus:function(){try{let a=g.readFileSync(q,"utf8"),b={};for(let[c,d]of Object.entries(k))b[c]=d.every(b=>a.includes(b));return b}catch{return Object.fromEntries(Object.keys(k).map(a=>[a,!1]))}}}},82193:(a,b,c)=>{let d=c(29021),e=c(33873),f=c(21820),g="zevairouter";function h(){return"win32"===process.platform?e.join(process.env.APPDATA||e.join(f.homedir(),"AppData","Roaming"),g):e.join(f.homedir(),`.${g}`)}let i=function(){let a=process.env.DATA_DIR;if(!a)return h();try{return d.mkdirSync(a,{recursive:!0}),a}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")return console.warn(`[DATA_DIR] '${a}' not writable → fallback ~/.${g}`),h();throw b}}(),j=e.join(i,"mitm");a.exports={DATA_DIR:i,MITM_DIR:j}},85341:a=>{a.exports={TOOL_HOSTS:{antigravity:["daily-cloudcode-pa.googleapis.com","cloudcode-pa.googleapis.com"],copilot:["api.individual.githubcopilot.com"],kiro:["q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com"],cursor:["api2.cursor.sh"]}}},87777:(a,b,c)=>{let d=c(29021),e=c(33873),f=c(74075),{DATA_DIR:g}=c(82193),{LOG_BLACKLIST_URL_PARTS:h}=c(17511);function i(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}let j=e.join(g,"logs","mitm");d.existsSync(j)||d.mkdirSync(j,{recursive:!0});let k=/^\s*(\{\s*\}|\[\s*\]|null)?\s*$/;function l(a,b=80){return String(a).replace(/[^a-zA-Z0-9]/g,"_").substring(0,b)}function m(a){return!!a&&h.some(b=>a.includes(b))}a.exports={log:a=>console.log(`[${i()}] [MITM] ${a}`),err:a=>console.error(`[${i()}] ❌ [MITM] ${a}`),dumpRequest:function(a,b,c="raw"){if(m(a.url))return null;try{let f=new Date().toISOString().replace(/[:.]/g,"-"),g=l((a.headers.host||"")+a.url),h=e.join(j,`${f}_${c}_${g}.req.json`),i=null;try{i=JSON.parse(b.toString())}catch{}return d.writeFileSync(h,JSON.stringify({method:a.method,url:a.url,host:a.headers.host,headers:a.headers,body:i??b.toString("utf8")},null,2)),h}catch{return null}},createResponseDumper:function(a,b="raw"){if(m(a.url))return null;let c=new Date().toISOString().replace(/[:.]/g,"-"),g=l((a.headers.host||"")+a.url),h=e.join(j,`${c}_${b}_${g}.res.txt`),i=0,n={},o=[];return{writeHeader:(a,b)=>{i=a,n=b||{}},writeChunk:a=>{null!=a&&o.push(Buffer.isBuffer(a)?a:Buffer.from(a))},end:()=>{try{let a=Buffer.concat(o),b=n["content-encoding"]||n["Content-Encoding"],c=(function(a,b){if(!a||0===a.length)return a;try{let c=(b||"").toLowerCase();if(c.includes("gzip"))return f.gunzipSync(a);if(c.includes("br"))return f.brotliDecompressSync(a);if(c.includes("deflate"))return f.inflateSync(a)}catch{}return a})(a,b).toString("utf8");if(k.test(c))return;let e={...n};delete e["content-encoding"],delete e["Content-Encoding"];let g=`STATUS: ${i}
51
51
  HEADERS: ${JSON.stringify(e,null,2)}
52
52
  ---BODY---
53
- ${c}`;d.writeFileSync(h,g)}catch{}},file:h}},clearDumpDir:function(){try{if(!d.existsSync(j))return;for(let a of d.readdirSync(j))try{d.rmSync(e.join(j,a),{recursive:!0,force:!0})}catch{}}catch{}}}},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,KK:()=>d.KK,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,NR:()=>d.NR,OM:()=>d.OM,PX:()=>d.PX,Pb:()=>d.Pb,Pc:()=>d.Pc,QI:()=>d.QI,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,bI:()=>d.bI,c:()=>d.c,dK:()=>d.dK,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,getProviderConnections:()=>d.P,getQuotaSnapshot:()=>d.LF,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,p3:()=>d.p3,qd:()=>d.qd,r4:()=>d.r4,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yW:()=>d.yW,yg:()=>d.yg,zP:()=>d.zP,zY:()=>d.zY});var d=c(80601)},96182:(a,b,c)=>{let{exec:d,spawn:e,execSync:f}=c(79646),g=c(33873),h=c(29021),i=c(21820),j=c(91645),k=c(55591),l=c(55511),{addDNSEntry:m,removeDNSEntry:n,removeAllDNSEntries:o,removeAllDNSEntriesSync:p,checkAllDNSStatus:q,TOOL_HOSTS:r,isSudoAvailable:s,isSudoPasswordRequired:t}=c(66936),{isAdmin:u}=c(64809),v="win32"===process.platform,w="darwin"===process.platform,{generateCert:x}=c(26033),{installCert:y,uninstallCert:z}=c(9631),{isCertExpired:A}=c(8578),{DATA_DIR:B,MITM_DIR:C}=c(82193),{log:D,err:E}=c(87777),{LSOF_BIN:F}=c(17511),G="http://localhost:1997";function H(a){return null==a||""===a?"''":`'${String(a).replace(/'/g,"'\\''")}'`}async function I(){if(!_)return G;try{let a=await _(),b=a&&null!=a.mitmRouterBaseUrl?String(a.mitmRouterBaseUrl).trim():"";if(!b)return G;let c=new URL(b);if("http:"!==c.protocol&&"https:"!==c.protocol)return G;return b.replace(/\/+$/,"")}catch{return G}}let J=g.join(C,".mitm.pid"),K=[5e3,1e4,2e4,3e4,6e4],L=0,M=0,N=!1;function O(){if(process.env.MITM_SERVER_PATH)return process.env.MITM_SERVER_PATH;let a=g.join(__dirname,"server.js");if(h.existsSync(a))return a;let b=g.join(process.cwd(),"src","mitm","server.js");if(h.existsSync(b))return b;let c=g.join(process.cwd(),"..","src","mitm","server.js");return h.existsSync(c)?c:b}function P(a){try{if(!a||!h.existsSync(a)||!a.includes(`${g.sep}node_modules${g.sep}`))return a;let b=g.join(B,"runtime","mitm"),c=g.join(b,"server.js");if(h.existsSync(c))try{if(h.statSync(a).size===h.statSync(c).size)return c}catch{}return h.mkdirSync(b,{recursive:!0}),h.copyFileSync(a,c),c}catch(b){try{D(`[MITM] runtime copy failed: ${b.message}`)}catch{}return a}}let Q=P(O()),R="aes-256-gcm",S="zevai-mitm-pwd",T=String.fromCharCode(57,114,111,117,116,101,114)+"-mitm-pwd",U=null,V=null;function W(){return globalThis.__mitmSudoPassword||null}function X(a){globalThis.__mitmSudoPassword=a}function Y(a){try{return process.kill(a,0),!0}catch(a){return"EACCES"===a.code}}function Z(a,b=!1,e=null){if(v)d(`taskkill ${b?"/F ":""}/PID ${a}`,{windowsHide:!0},()=>{});else{let f=b?"SIGKILL":"SIGTERM",g=`pkill -${f} -P ${a} 2>/dev/null; kill -${f} ${a} 2>/dev/null`;if(e||s()){let{execWithPassword:a}=c(66936);a(g,e||"").catch(()=>d(g,{windowsHide:!0},()=>{}))}else d(g,{windowsHide:!0},()=>{})}}function $(a=S){try{let{machineIdSync:b}=c(19713),d=b();return l.createHash("sha256").update(d+a).digest()}catch{return l.createHash("sha256").update(a).digest()}}let _=null,aa=null;async function ab(a,b){if(aa)try{let c,d,e,f,g,h={mitmEnabled:a};b&&(c=$(S),d=l.randomBytes(12),e=l.createCipheriv(R,c,d),f=Buffer.concat([e.update(b,"utf8"),e.final()]),g=e.getAuthTag(),h.mitmSudoEncrypted=`${d.toString("hex")}:${g.toString("hex")}:${f.toString("hex")}`),await aa(h)}catch(a){E(`Failed to save settings: ${a.message}`)}}async function ac(){if(aa)try{await aa({mitmSudoEncrypted:null})}catch(a){E(`Failed to clear encrypted password: ${a.message}`)}}async function ad(){if(!_)return null;try{var a;let b,c=await _();if(!c.mitmSudoEncrypted)return null;return a=c.mitmSudoEncrypted,(b=b=>{try{let[c,d,e]=a.split(":");if(!c||!d||!e)return null;let f=$(b),g=l.createDecipheriv(R,f,Buffer.from(c,"hex"));return g.setAuthTag(Buffer.from(d,"hex")),Buffer.concat([g.update(Buffer.from(e,"hex")),g.final()]).toString("utf8")}catch{return null}})(S)||b(T)}catch{return null}}async function ae(a,b){if(aa&&_)try{let c={...(await _()).dnsToolEnabled||{},[a]:b};await aa({dnsToolEnabled:c})}catch(a){E(`Failed to save DNS state: ${a.message}`)}}async function af(){if(!_)return{};try{return(await _()).dnsToolEnabled||{}}catch{return{}}}async function ag(a){let b=await af(),c=a||W()||await ad();for(let[a,d]of Object.entries(b))if(d&&r[a])try{await m(a,c)}catch(b){E(`DNS ${a}: restore failed — ${b.message}`)}}async function ah(){return v?u():!(!u()&&t())||!!(W()||await ad())}function ai(a){return new Promise(a=>{v?d('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c) { $c.OwningProcess } else { 0 }"',{windowsHide:!0},(b,c)=>{if(b)return a(null);let e=parseInt(c.trim(),10);if(!e||e<=4)return a(null);d(`tasklist /FI "PID eq ${e}" /FO CSV /NH`,{windowsHide:!0},(b,c)=>{let d=c?.match(/"([^"]+)"/);a({pid:e,name:d?d[1]:"unknown"})})}):d(`${F} -nP -iTCP:443 -sTCP:LISTEN -t`,{windowsHide:!0},(b,c)=>{if(b||!c?.trim())return a(null);let e=parseInt(c.trim().split("\n")[0],10);if(!e||isNaN(e))return a(null);d(`ps -p ${e} -o comm=`,{windowsHide:!0},(b,c)=>{a({pid:e,name:c?.trim()||"unknown"})})})})}async function aj(a){if(U&&!U.killed){try{U.kill("SIGKILL")}catch{}U=null,V=null}try{if(h.existsSync(J)){let b=parseInt(h.readFileSync(J,"utf-8").trim(),10);b&&Y(b)&&(Z(b,!0,a),await new Promise(a=>setTimeout(a,500))),h.unlinkSync(J)}}catch{}if(!v&&Q)try{let b=Q.replace(/'/g,"'\\''");if(a||s()){let{execWithPassword:d}=c(66936);await d(`pkill -SIGKILL -f "${b}" 2>/dev/null || true`,a||"").catch(()=>{})}else d(`pkill -SIGKILL -f "${b}" 2>/dev/null || true`,{windowsHide:!0},()=>{});await new Promise(a=>setTimeout(a,500))}catch{}}async function ak(){let a=null!==U&&!U.killed,b=V;if(!a)try{if(h.existsSync(J)){let c=parseInt(h.readFileSync(J,"utf-8").trim(),10);c&&Y(c)?(a=!0,b=c):h.unlinkSync(J)}}catch{}let d=q(),e=g.join(C,"rootCA.crt"),f=h.existsSync(e),{checkCertInstalled:i}=c(9631),j=!!f&&await i(e);return{running:a,pid:b,certExists:f,certTrusted:j,dnsStatus:d}}async function al(a){if(N)return;if(Date.now()-M>=6e4&&(L=0),L>=5)return void E("Max restart attempts reached. Giving up.");let b=K[Math.min(L,K.length-1)];L++,N=!0,D(`Restarting in ${b/1e3}s... (${L}/5)`),await new Promise(a=>setTimeout(a,b));try{let b=_?await _():null;if(b&&!b.mitmEnabled){D("MITM disabled, skipping restart"),N=!1;return}let c=W()||await ad();if(!c&&!v){E("No cached password, cannot auto-restart"),N=!1;return}await an(a,c),D("\uD83D\uDD04 Restarted successfully"),L=0,N=!1}catch(b){E(`Restart attempt ${L}/5 failed: ${b.message}`),N=!1,al(a)}}async function am(a,b){if(a&&a.pid){if(v)try{f(`powershell -NonInteractive -WindowStyle Hidden -Command "Stop-Process -Id ${a.pid} -Force -ErrorAction SilentlyContinue"`,{windowsHide:!0})}catch{}else try{let{execWithPassword:d}=c(66936);b||s()?await d(`kill -9 ${a.pid}`,b||""):f(`kill -9 ${a.pid}`,{windowsHide:!0})}catch{}await new Promise(a=>setTimeout(a,800))}}async function an(a,b,l=!1){if(!U||U.killed)try{if(h.existsSync(J)){let a=parseInt(h.readFileSync(J,"utf-8").trim(),10);if(a&&Y(a))return V=a,D(`♻️ Reusing existing process (PID: ${a})`),await ab(!0,b),b&&X(b),{running:!0,pid:a};h.unlinkSync(J)}}catch{}if(U&&!U.killed)throw Error("MITM server is already running");if(await aj(b),!v){let a=await new Promise(a=>{let b=j.createServer();b.once("error",b=>{"EADDRINUSE"===b.code?a("in-use"):a("no-permission")}),b.once("listening",()=>{b.close(()=>a("free"))}),b.listen(443,"127.0.0.1")});if("in-use"===a||"no-permission"===a){let a=await ai(b);if(a){let c=a.name.includes("/")?a.name.split("/").filter(Boolean).pop():a.name;if(l)D(`Killing process on port 443 (PID ${a.pid}, name=${c})...`),await am(a,b);else{let b=Error(`Port 443 is already in use by "${c}" (PID ${a.pid}).`);throw b.code="PORT_443_BUSY",b.portOwner={pid:a.pid,name:c},b}}}}let m=g.join(C,"rootCA.crt"),n=g.join(C,"rootCA.key"),o=h.existsSync(m)&&h.existsSync(n);if(!o||A(m)){if(o){D("\uD83D\uDD10 Cert expired — uninstalling old cert...");let a=b||W()||await ad();try{await z(a,m)}catch{}}D("\uD83D\uDD10 Generating Root CA..."),await x()}let{checkCertInstalled:p}=c(9631),r=await p(m),u=!v&&!w&&!s();if(r)D("\uD83D\uDD10 Cert: already trusted ✅");else{D("\uD83D\uDD10 Cert: not trusted → installing...");let a=b||W()||await ad();if(u)D(`🔐 Cert: skipping system trust (no sudo). Install ${m} as a trusted CA on machines that use this proxy.`);else{if(!a&&t())throw Error("Sudo password required to install Root CA certificate");try{await y(a,m),D("\uD83D\uDD10 Cert: ✅ trusted")}catch(a){throw Error(`Failed to trust certificate: ${a.message}`)}}}let B=Q;if((!B||!h.existsSync(B))&&(D(`[MITM] server.js missing at ${B} → recopying`),!(B=P(O()))||!h.existsSync(B)))throw Error(`MITM server.js not found at ${B}. Reinstall zevairouter.`);let G=await I();if(D(`🚀 Starting server... (router: ${G})`),v){let c=await ai(b);if(c)if(l)D(`Killing process on port 443 (PID ${c.pid}, name=${c.name})...`),await am(c,b);else{let a=Error(`Port 443 is already in use by "${c.name}" (PID ${c.pid}).`);throw a.code="PORT_443_BUSY",a.portOwner={pid:c.pid,name:c.name},a}U=e(process.execPath,[B],{detached:!1,windowsHide:!0,cwd:i.tmpdir(),stdio:["ignore","pipe","pipe"],env:{...process.env,ROUTER_API_KEY:a,NODE_ENV:"production",MITM_ROUTER_BASE:G}}),aa&&await aa({mitmCertInstalled:!0}).catch(()=>{})}else s()?((U=e("sudo",["-S","-E","sh","-c",[`HOME=${H(i.homedir())}`,`ROUTER_API_KEY=${H(a)}`,`MITM_ROUTER_BASE=${H(G)}`,"NODE_ENV=production",H(process.execPath),H(B)].join(" ")],{detached:!1,windowsHide:!0,stdio:["pipe","pipe","pipe"]})).stdin.write(`${b}
53
+ ${c}`;d.writeFileSync(h,g)}catch{}},file:h}},clearDumpDir:function(){try{if(!d.existsSync(j))return;for(let a of d.readdirSync(j))try{d.rmSync(e.join(j,a),{recursive:!0,force:!0})}catch{}}catch{}}}},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,KK:()=>d.KK,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,NR:()=>d.NR,OM:()=>d.OM,PX:()=>d.PX,Pb:()=>d.Pb,Pc:()=>d.Pc,QI:()=>d.QI,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,bI:()=>d.bI,c:()=>d.c,dK:()=>d.dK,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,getProviderConnections:()=>d.P,getQuotaSnapshot:()=>d.LF,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,p3:()=>d.p3,qd:()=>d.qd,r4:()=>d.r4,tV:()=>d.tV,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yW:()=>d.yW,yg:()=>d.yg,zP:()=>d.zP,zY:()=>d.zY});var d=c(80601)},96182:(a,b,c)=>{let{exec:d,spawn:e,execSync:f}=c(79646),g=c(33873),h=c(29021),i=c(21820),j=c(91645),k=c(55591),l=c(55511),{addDNSEntry:m,removeDNSEntry:n,removeAllDNSEntries:o,removeAllDNSEntriesSync:p,checkAllDNSStatus:q,TOOL_HOSTS:r,isSudoAvailable:s,isSudoPasswordRequired:t}=c(66936),{isAdmin:u}=c(64809),v="win32"===process.platform,w="darwin"===process.platform,{generateCert:x}=c(26033),{installCert:y,uninstallCert:z}=c(9631),{isCertExpired:A}=c(8578),{DATA_DIR:B,MITM_DIR:C}=c(82193),{log:D,err:E}=c(87777),{LSOF_BIN:F}=c(17511),G="http://localhost:1997";function H(a){return null==a||""===a?"''":`'${String(a).replace(/'/g,"'\\''")}'`}async function I(){if(!_)return G;try{let a=await _(),b=a&&null!=a.mitmRouterBaseUrl?String(a.mitmRouterBaseUrl).trim():"";if(!b)return G;let c=new URL(b);if("http:"!==c.protocol&&"https:"!==c.protocol)return G;return b.replace(/\/+$/,"")}catch{return G}}let J=g.join(C,".mitm.pid"),K=[5e3,1e4,2e4,3e4,6e4],L=0,M=0,N=!1;function O(){if(process.env.MITM_SERVER_PATH)return process.env.MITM_SERVER_PATH;let a=g.join(__dirname,"server.js");if(h.existsSync(a))return a;let b=g.join(process.cwd(),"src","mitm","server.js");if(h.existsSync(b))return b;let c=g.join(process.cwd(),"..","src","mitm","server.js");return h.existsSync(c)?c:b}function P(a){try{if(!a||!h.existsSync(a)||!a.includes(`${g.sep}node_modules${g.sep}`))return a;let b=g.join(B,"runtime","mitm"),c=g.join(b,"server.js");if(h.existsSync(c))try{if(h.statSync(a).size===h.statSync(c).size)return c}catch{}return h.mkdirSync(b,{recursive:!0}),h.copyFileSync(a,c),c}catch(b){try{D(`[MITM] runtime copy failed: ${b.message}`)}catch{}return a}}let Q=P(O()),R="aes-256-gcm",S="zevai-mitm-pwd",T=String.fromCharCode(57,114,111,117,116,101,114)+"-mitm-pwd",U=null,V=null;function W(){return globalThis.__mitmSudoPassword||null}function X(a){globalThis.__mitmSudoPassword=a}function Y(a){try{return process.kill(a,0),!0}catch(a){return"EACCES"===a.code}}function Z(a,b=!1,e=null){if(v)d(`taskkill ${b?"/F ":""}/PID ${a}`,{windowsHide:!0},()=>{});else{let f=b?"SIGKILL":"SIGTERM",g=`pkill -${f} -P ${a} 2>/dev/null; kill -${f} ${a} 2>/dev/null`;if(e||s()){let{execWithPassword:a}=c(66936);a(g,e||"").catch(()=>d(g,{windowsHide:!0},()=>{}))}else d(g,{windowsHide:!0},()=>{})}}function $(a=S){try{let{machineIdSync:b}=c(19713),d=b();return l.createHash("sha256").update(d+a).digest()}catch{return l.createHash("sha256").update(a).digest()}}let _=null,aa=null;async function ab(a,b){if(aa)try{let c,d,e,f,g,h={mitmEnabled:a};b&&(c=$(S),d=l.randomBytes(12),e=l.createCipheriv(R,c,d),f=Buffer.concat([e.update(b,"utf8"),e.final()]),g=e.getAuthTag(),h.mitmSudoEncrypted=`${d.toString("hex")}:${g.toString("hex")}:${f.toString("hex")}`),await aa(h)}catch(a){E(`Failed to save settings: ${a.message}`)}}async function ac(){if(aa)try{await aa({mitmSudoEncrypted:null})}catch(a){E(`Failed to clear encrypted password: ${a.message}`)}}async function ad(){if(!_)return null;try{var a;let b,c=await _();if(!c.mitmSudoEncrypted)return null;return a=c.mitmSudoEncrypted,(b=b=>{try{let[c,d,e]=a.split(":");if(!c||!d||!e)return null;let f=$(b),g=l.createDecipheriv(R,f,Buffer.from(c,"hex"));return g.setAuthTag(Buffer.from(d,"hex")),Buffer.concat([g.update(Buffer.from(e,"hex")),g.final()]).toString("utf8")}catch{return null}})(S)||b(T)}catch{return null}}async function ae(a,b){if(aa&&_)try{let c={...(await _()).dnsToolEnabled||{},[a]:b};await aa({dnsToolEnabled:c})}catch(a){E(`Failed to save DNS state: ${a.message}`)}}async function af(){if(!_)return{};try{return(await _()).dnsToolEnabled||{}}catch{return{}}}async function ag(a){let b=await af(),c=a||W()||await ad();for(let[a,d]of Object.entries(b))if(d&&r[a])try{await m(a,c)}catch(b){E(`DNS ${a}: restore failed — ${b.message}`)}}async function ah(){return v?u():!(!u()&&t())||!!(W()||await ad())}function ai(a){return new Promise(a=>{v?d('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c) { $c.OwningProcess } else { 0 }"',{windowsHide:!0},(b,c)=>{if(b)return a(null);let e=parseInt(c.trim(),10);if(!e||e<=4)return a(null);d(`tasklist /FI "PID eq ${e}" /FO CSV /NH`,{windowsHide:!0},(b,c)=>{let d=c?.match(/"([^"]+)"/);a({pid:e,name:d?d[1]:"unknown"})})}):d(`${F} -nP -iTCP:443 -sTCP:LISTEN -t`,{windowsHide:!0},(b,c)=>{if(b||!c?.trim())return a(null);let e=parseInt(c.trim().split("\n")[0],10);if(!e||isNaN(e))return a(null);d(`ps -p ${e} -o comm=`,{windowsHide:!0},(b,c)=>{a({pid:e,name:c?.trim()||"unknown"})})})})}async function aj(a){if(U&&!U.killed){try{U.kill("SIGKILL")}catch{}U=null,V=null}try{if(h.existsSync(J)){let b=parseInt(h.readFileSync(J,"utf-8").trim(),10);b&&Y(b)&&(Z(b,!0,a),await new Promise(a=>setTimeout(a,500))),h.unlinkSync(J)}}catch{}if(!v&&Q)try{let b=Q.replace(/'/g,"'\\''");if(a||s()){let{execWithPassword:d}=c(66936);await d(`pkill -SIGKILL -f "${b}" 2>/dev/null || true`,a||"").catch(()=>{})}else d(`pkill -SIGKILL -f "${b}" 2>/dev/null || true`,{windowsHide:!0},()=>{});await new Promise(a=>setTimeout(a,500))}catch{}}async function ak(){let a=null!==U&&!U.killed,b=V;if(!a)try{if(h.existsSync(J)){let c=parseInt(h.readFileSync(J,"utf-8").trim(),10);c&&Y(c)?(a=!0,b=c):h.unlinkSync(J)}}catch{}let d=q(),e=g.join(C,"rootCA.crt"),f=h.existsSync(e),{checkCertInstalled:i}=c(9631),j=!!f&&await i(e);return{running:a,pid:b,certExists:f,certTrusted:j,dnsStatus:d}}async function al(a){if(N)return;if(Date.now()-M>=6e4&&(L=0),L>=5)return void E("Max restart attempts reached. Giving up.");let b=K[Math.min(L,K.length-1)];L++,N=!0,D(`Restarting in ${b/1e3}s... (${L}/5)`),await new Promise(a=>setTimeout(a,b));try{let b=_?await _():null;if(b&&!b.mitmEnabled){D("MITM disabled, skipping restart"),N=!1;return}let c=W()||await ad();if(!c&&!v){E("No cached password, cannot auto-restart"),N=!1;return}await an(a,c),D("\uD83D\uDD04 Restarted successfully"),L=0,N=!1}catch(b){E(`Restart attempt ${L}/5 failed: ${b.message}`),N=!1,al(a)}}async function am(a,b){if(a&&a.pid){if(v)try{f(`powershell -NonInteractive -WindowStyle Hidden -Command "Stop-Process -Id ${a.pid} -Force -ErrorAction SilentlyContinue"`,{windowsHide:!0})}catch{}else try{let{execWithPassword:d}=c(66936);b||s()?await d(`kill -9 ${a.pid}`,b||""):f(`kill -9 ${a.pid}`,{windowsHide:!0})}catch{}await new Promise(a=>setTimeout(a,800))}}async function an(a,b,l=!1){if(!U||U.killed)try{if(h.existsSync(J)){let a=parseInt(h.readFileSync(J,"utf-8").trim(),10);if(a&&Y(a))return V=a,D(`♻️ Reusing existing process (PID: ${a})`),await ab(!0,b),b&&X(b),{running:!0,pid:a};h.unlinkSync(J)}}catch{}if(U&&!U.killed)throw Error("MITM server is already running");if(await aj(b),!v){let a=await new Promise(a=>{let b=j.createServer();b.once("error",b=>{"EADDRINUSE"===b.code?a("in-use"):a("no-permission")}),b.once("listening",()=>{b.close(()=>a("free"))}),b.listen(443,"127.0.0.1")});if("in-use"===a||"no-permission"===a){let a=await ai(b);if(a){let c=a.name.includes("/")?a.name.split("/").filter(Boolean).pop():a.name;if(l)D(`Killing process on port 443 (PID ${a.pid}, name=${c})...`),await am(a,b);else{let b=Error(`Port 443 is already in use by "${c}" (PID ${a.pid}).`);throw b.code="PORT_443_BUSY",b.portOwner={pid:a.pid,name:c},b}}}}let m=g.join(C,"rootCA.crt"),n=g.join(C,"rootCA.key"),o=h.existsSync(m)&&h.existsSync(n);if(!o||A(m)){if(o){D("\uD83D\uDD10 Cert expired — uninstalling old cert...");let a=b||W()||await ad();try{await z(a,m)}catch{}}D("\uD83D\uDD10 Generating Root CA..."),await x()}let{checkCertInstalled:p}=c(9631),r=await p(m),u=!v&&!w&&!s();if(r)D("\uD83D\uDD10 Cert: already trusted ✅");else{D("\uD83D\uDD10 Cert: not trusted → installing...");let a=b||W()||await ad();if(u)D(`🔐 Cert: skipping system trust (no sudo). Install ${m} as a trusted CA on machines that use this proxy.`);else{if(!a&&t())throw Error("Sudo password required to install Root CA certificate");try{await y(a,m),D("\uD83D\uDD10 Cert: ✅ trusted")}catch(a){throw Error(`Failed to trust certificate: ${a.message}`)}}}let B=Q;if((!B||!h.existsSync(B))&&(D(`[MITM] server.js missing at ${B} → recopying`),!(B=P(O()))||!h.existsSync(B)))throw Error(`MITM server.js not found at ${B}. Reinstall zevairouter.`);let G=await I();if(D(`🚀 Starting server... (router: ${G})`),v){let c=await ai(b);if(c)if(l)D(`Killing process on port 443 (PID ${c.pid}, name=${c.name})...`),await am(c,b);else{let a=Error(`Port 443 is already in use by "${c.name}" (PID ${c.pid}).`);throw a.code="PORT_443_BUSY",a.portOwner={pid:c.pid,name:c.name},a}U=e(process.execPath,[B],{detached:!1,windowsHide:!0,cwd:i.tmpdir(),stdio:["ignore","pipe","pipe"],env:{...process.env,ROUTER_API_KEY:a,NODE_ENV:"production",MITM_ROUTER_BASE:G}}),aa&&await aa({mitmCertInstalled:!0}).catch(()=>{})}else s()?((U=e("sudo",["-S","-E","sh","-c",[`HOME=${H(i.homedir())}`,`ROUTER_API_KEY=${H(a)}`,`MITM_ROUTER_BASE=${H(G)}`,"NODE_ENV=production",H(process.execPath),H(B)].join(" ")],{detached:!1,windowsHide:!0,stdio:["pipe","pipe","pipe"]})).stdin.write(`${b}
54
54
  `),U.stdin.end()):U=e(process.execPath,[B],{detached:!1,windowsHide:!0,cwd:i.tmpdir(),stdio:["ignore","pipe","pipe"],env:{...process.env,ROUTER_API_KEY:a,NODE_ENV:"production",MITM_ROUTER_BASE:G}});if(U&&(V=U.pid,h.writeFileSync(J,String(V)),M=Date.now()),w){let a=g.join(C,"rootCA.crt");h.existsSync(a)&&d(`launchctl setenv NODE_EXTRA_CA_CERTS "${a}"`,{windowsHide:!0},b=>{b?D(`[launchctl] Failed to set NODE_EXTRA_CA_CERTS: ${b.message}`):D(`[launchctl] NODE_EXTRA_CA_CERTS set to ${a}`)})}else if(v){let a=g.join(C,"rootCA.crt");h.existsSync(a)&&d(`setx NODE_EXTRA_CA_CERTS "${a}"`,{windowsHide:!0},a=>{a?D(`[setx] Failed to set NODE_EXTRA_CA_CERTS: ${a.message}`):D("[setx] NODE_EXTRA_CA_CERTS set for current user")})}let K=null;U&&(U.stdout.on("data",a=>{process.stdout.write(a)}),U.stderr.on("data",a=>{let b=a.toString().trim();b&&(v||!b.includes("Password:")&&!b.includes("password for"))&&(E(b),K=b),!v&&(b.includes("incorrect password")||b.includes("no password was provided"))&&(X(null),ac(),N=!0)}),U.on("exit",b=>{D(`Server exited (code: ${b})`),U=null,V=null;try{h.unlinkSync(J)}catch{}0===b||N||al(a)}));let L=await function(a=443){return new Promise(b=>{let c=Date.now()+8e3,d=()=>{let e=k.request({hostname:"127.0.0.1",port:a,path:"/_mitm_health",method:"GET",rejectUnauthorized:!1},a=>{let c="";a.on("data",a=>{c+=a}),a.on("end",()=>{try{let a=JSON.parse(c);b(!0===a.ok?{ok:!0,pid:a.pid||null}:null)}catch{b(null)}})});e.on("error",()=>{Date.now()<c?setTimeout(d,500):b(null)}),e.end()};d()})}(443);if(!L){if(U&&!U.killed){try{U.kill()}catch{}U=null}let a=function(){try{if(v){let a=f('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c) { $c.OwningProcess } else { 0 }"',{encoding:"utf8",windowsHide:!0}).trim(),b=parseInt(a,10);if(b&&b>4){let a=f(`tasklist /FI "PID eq ${b}" /FO CSV /NH`,{encoding:"utf8",windowsHide:!0}).match(/"([^"]+)"/);if(a)return a[1].replace(".exe","")}}else{let a=f(`${F} -i :443`,{encoding:"utf8",windowsHide:!0}).trim().split("\n");if(a.length>1)return a[1].split(/\s+/)[0]}}catch{}return null}(),b=a?` Port 443 already in use by ${a}.`:"",c=K||`Check sudo password or port 443 access.${b}`;throw Error(`MITM server failed to start. ${c}`)}for(let[a,b]of(aa&&await aa({mitmCertInstalled:!0}).catch(()=>{}),D(`✅ Server healthy (PID: ${V||L.pid})`),Object.entries(q())))D(`🌐 DNS ${a}: ${b?"✅ active":"❌ inactive"}`);return await ab(!0,b),b&&X(b),{running:!0,pid:V}}async function ao(a){N=!0,L=0,D("⏹ Stopping server...");let b=U,e=b&&!b.killed?b.pid:(()=>{try{return parseInt(h.readFileSync(J,"utf-8").trim(),10)}catch{return null}})();if(e&&Y(e)&&(D(`Killing server (PID: ${e})...`),Z(e,!1,a),await new Promise(a=>setTimeout(a,1e3)),Y(e)&&Z(e,!0,a)),U=null,V=null,v){let a=g.join(process.env.SystemRoot||"C:\\Windows","System32","drivers","etc","hosts"),b=Object.values(r).flat();try{let{isAdmin:d,runElevatedPowerShell:e,quotePs:f}=c(64809);if(d()){let d=h.readFileSync(a,"utf8"),e=d.split(/\r?\n/).filter(a=>!b.some(b=>a.includes(b))).join("\r\n").replace(/[\r\n\s]+$/g,"")+"\r\n";e!==d&&h.writeFileSync(a,e,"utf8");try{c(79646).execSync("ipconfig /flushdns",{windowsHide:!0,stdio:"ignore"})}catch{}D("\uD83C\uDF10 DNS: ✅ all tool hosts removed")}else{let c=b.map(f).join(","),d=`
55
55
  $hosts = @(${c})
56
56
  $lines = Get-Content -LiteralPath ${f(a)}
@@ -1 +1 @@
1
- globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/EsPNkWozNCaNTZu9U2Fs3/_buildManifest.js","static/EsPNkWozNCaNTZu9U2Fs3/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-948b910ed7afd0b8.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-c66b3d8325973459.js","static/chunks/main-app-5a6578c0256da676.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
1
+ globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/edIIBLHejtiMImOMvHpmV/_buildManifest.js","static/edIIBLHejtiMImOMvHpmV/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-948b910ed7afd0b8.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-c66b3d8325973459.js","static/chunks/main-app-5a6578c0256da676.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/f0a349c70ab9fca8.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/3b43d9c2833b7940.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-948b910ed7afd0b8.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-c66b3d8325973459.js" async=""></script><script src="/_next/static/chunks/main-app-5a6578c0256da676.js" async=""></script><script src="/_next/static/chunks/1a258343-bc0b514c079d8898.js" async=""></script><script src="/_next/static/chunks/4343-ccad00872974a61b.js" async=""></script><script src="/_next/static/chunks/3702-5f52882fbc19ed29.js" async=""></script><script src="/_next/static/chunks/5497-54c8b503897135ae.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-d5ac11eba9159f43.js" async=""></script><script src="/_next/static/chunks/app/layout-66d404d6c5a82e5c.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><meta name="theme-color" content="#0a0a0a"/><title>ZevaiRouter - Provider Automation &amp; Quota Tracking</title><meta name="description" content="ZevaiRouter - provider automation, multi-account workflows, and quota tracking."/><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.svg"/><script>if(document.fonts&&document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_f367f3 font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-948b910ed7afd0b8.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[21110,[\"3862\",\"static/chunks/1a258343-bc0b514c079d8898.js\",\"4343\",\"static/chunks/4343-ccad00872974a61b.js\",\"3702\",\"static/chunks/3702-5f52882fbc19ed29.js\",\"5497\",\"static/chunks/5497-54c8b503897135ae.js\",\"9305\",\"static/chunks/app/(dashboard)/layout-d5ac11eba9159f43.js\"],\"ThemeProvider\"]\n3:I[94635,[\"3702\",\"static/chunks/3702-5f52882fbc19ed29.js\",\"7177\",\"static/chunks/app/layout-66d404d6c5a82e5c.js\"],\"RuntimeI18nProvider\"]\n4:I[57121,[],\"\"]\n5:I[74581,[],\"\"]\n6:I[90484,[],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\na:I[90484,[],\"ViewportBoundary\"]\nc:I[90484,[],\"MetadataBoundary\"]\ne:I[27123,[],\"default\",1]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/f0a349c70ab9fca8.css\",\"style\"]\n:HL[\"/_next/static/css/3b43d9c2833b7940.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/f0a349c70ab9fca8.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/3b43d9c2833b7940.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"if(document.fonts\u0026\u0026document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}\"}}]}],[\"$\",\"body\",null,{\"className\":\"__variable_f367f3 font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,null]},null,false,\"$@9\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"EsPNkWozNCaNTZu9U2Fs3\"}\n"])</script><script>self.__next_f.push([1,"f:[]\n9:\"$Wf\"\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0a\"}]]\n"])</script><script>self.__next_f.push([1,"10:I[86869,[],\"IconMark\"]\n8:null\nd:[[\"$\",\"title\",\"0\",{\"children\":\"ZevaiRouter - Provider Automation \u0026 Quota Tracking\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"ZevaiRouter - provider automation, multi-account workflows, and quota tracking.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L10\",\"4\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/f0a349c70ab9fca8.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/479786e77e87b74c.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-948b910ed7afd0b8.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-c66b3d8325973459.js" async=""></script><script src="/_next/static/chunks/main-app-5a6578c0256da676.js" async=""></script><script src="/_next/static/chunks/1a258343-bc0b514c079d8898.js" async=""></script><script src="/_next/static/chunks/4343-ccad00872974a61b.js" async=""></script><script src="/_next/static/chunks/85-db69928a84a17025.js" async=""></script><script src="/_next/static/chunks/5497-b25ed8039d5058b3.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-2ae824d2d09c81ea.js" async=""></script><script src="/_next/static/chunks/app/layout-2aaca42ecdf3a056.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><meta name="theme-color" content="#0a0a0a"/><title>ZevaiRouter - Provider Automation &amp; Quota Tracking</title><meta name="description" content="ZevaiRouter - provider automation, multi-account workflows, and quota tracking."/><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.svg"/><script>if(document.fonts&&document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_f367f3 font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-948b910ed7afd0b8.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[21110,[\"3862\",\"static/chunks/1a258343-bc0b514c079d8898.js\",\"4343\",\"static/chunks/4343-ccad00872974a61b.js\",\"85\",\"static/chunks/85-db69928a84a17025.js\",\"5497\",\"static/chunks/5497-b25ed8039d5058b3.js\",\"9305\",\"static/chunks/app/(dashboard)/layout-2ae824d2d09c81ea.js\"],\"ThemeProvider\"]\n3:I[94635,[\"85\",\"static/chunks/85-db69928a84a17025.js\",\"7177\",\"static/chunks/app/layout-2aaca42ecdf3a056.js\"],\"RuntimeI18nProvider\"]\n4:I[57121,[],\"\"]\n5:I[74581,[],\"\"]\n6:I[90484,[],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\na:I[90484,[],\"ViewportBoundary\"]\nc:I[90484,[],\"MetadataBoundary\"]\ne:I[27123,[],\"default\",1]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/f0a349c70ab9fca8.css\",\"style\"]\n:HL[\"/_next/static/css/479786e77e87b74c.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/f0a349c70ab9fca8.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/479786e77e87b74c.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"if(document.fonts\u0026\u0026document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}\"}}]}],[\"$\",\"body\",null,{\"className\":\"__variable_f367f3 font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,null]},null,false,\"$@9\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"edIIBLHejtiMImOMvHpmV\"}\n"])</script><script>self.__next_f.push([1,"f:[]\n9:\"$Wf\"\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0a\"}]]\n"])</script><script>self.__next_f.push([1,"10:I[86869,[],\"IconMark\"]\n8:null\nd:[[\"$\",\"title\",\"0\",{\"children\":\"ZevaiRouter - Provider Automation \u0026 Quota Tracking\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"ZevaiRouter - provider automation, multi-account workflows, and quota tracking.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L10\",\"4\",{}]]\n"])</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-948b910ed7afd0b8.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-c66b3d8325973459.js" async=""></script><script src="/_next/static/chunks/main-app-5a6578c0256da676.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-948b910ed7afd0b8.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[90484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[90484,[],\"ViewportBoundary\"]\na:I[90484,[],\"MetadataBoundary\"]\nc:I[27123,[],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"EsPNkWozNCaNTZu9U2Fs3\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[]\n"])</script></body></html>
1
+ <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-948b910ed7afd0b8.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-c66b3d8325973459.js" async=""></script><script src="/_next/static/chunks/main-app-5a6578c0256da676.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-948b910ed7afd0b8.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[90484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[90484,[],\"ViewportBoundary\"]\na:I[90484,[],\"MetadataBoundary\"]\nc:I[27123,[],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"edIIBLHejtiMImOMvHpmV\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[]\n"])</script></body></html>
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1992],{91992:(e,t,n)=>{function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,{A:()=>ed});let o=Object.entries,a=Object.setPrototypeOf,i=Object.isFrozen,l=Object.getPrototypeOf,c=Object.getOwnPropertyDescriptor,u=Object.freeze,s=Object.seal,f=Object.create,p="u">typeof Reflect&&Reflect,m=p.apply,d=p.construct;u||(u=function(e){return e}),s||(s=function(e){return e}),m||(m=function(e,t){for(var n=arguments.length,r=Array(n>2?n-2:0),o=2;o<n;o++)r[o-2]=arguments[o];return e.apply(t,r)}),d||(d=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return new e(...n)});let h=M(Array.prototype.forEach),g=M(Array.prototype.lastIndexOf),y=M(Array.prototype.pop),T=M(Array.prototype.push),b=M(Array.prototype.splice),E=Array.isArray,S=M(String.prototype.toLowerCase),_=M(String.prototype.toString),A=M(String.prototype.match),N=M(String.prototype.replace),w=M(String.prototype.indexOf),O=M(String.prototype.trim),v=M(Number.prototype.toString),R=M(Boolean.prototype.toString),C="u"<typeof BigInt?null:M(BigInt.prototype.toString),D="u"<typeof Symbol?null:M(Symbol.prototype.toString),k=M(Object.prototype.hasOwnProperty),I=M(Object.prototype.toString),x=M(RegExp.prototype.test),L=(em=TypeError,function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return d(em,t)});function M(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,r=Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return m(e,t,r)}}function P(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:S;if(a&&a(e,null),!E(t))return e;let r=t.length;for(;r--;){let o=t[r];if("string"==typeof o){let e=n(o);e!==o&&(i(t)||(t[r]=e),o=e)}e[o]=!0}return e}function U(e){let t=f(null);for(let a of o(e)){var n=function(e){if(Array.isArray(e))return e}(a)||function(e){var t=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,r,o,a,i=[],l=!0,c=!1;try{o=(t=t.call(e)).next,!1;for(;!(l=(n=o.call(t)).done)&&(i.push(n.value),2!==i.length);l=!0);}catch(e){c=!0,r=e}finally{try{if(!l&&null!=t.return&&(a=t.return(),Object(a)!==a))return}finally{if(c)throw r}}return i}}(a)||function(e){if(e){if("string"==typeof e)return r(e,2);var t=({}).toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?r(e,2):void 0}}(a)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}();let o=n[0],i=n[1];k(e,o)&&(E(i)?t[o]=function(e){for(let t=0;t<e.length;t++)k(e,t)||(e[t]=null);return e}(i):i&&"object"==typeof i&&i.constructor===Object?t[o]=U(i):t[o]=i)}return t}function z(e,t){for(;null!==e;){let n=c(e,t);if(n){if(n.get)return M(n.get);if("function"==typeof n.value)return M(n.value)}e=l(e)}return function(){return null}}let F=u(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),H=u(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),j=u(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),B=u(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),G=u(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),W=u(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),Y=u(["#text"]),q=u(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),X=u(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dominant-baseline","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-orientation","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),$=u(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),K=u(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),V=s(/{{[\w\W]*|^[\w\W]*}}/g),Z=s(/<%[\w\W]*|^[\w\W]*%>/g),J=s(/\${[\w\W]*/g),Q=s(/^data-[\-\w.\u00B7-\uFFFF]+$/),ee=s(/^aria-[\-\w]+$/),et=s(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),en=s(/^(?:\w+script|data):/i),er=s(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),eo=s(/^html$/i),ea=s(/^[a-z][.\w]*(-[.\w]+)+$/i),ei=s(/<[/\w!]/g),el=s(/<[/\w]/g),ec=s(/<\/no(script|embed|frames)/i),eu=s(/\/>/i),es=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null,r="data-tt-policy-suffix";t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let o="dompurify"+(n?"#"+n:"");try{return e.createPolicy(o,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn("TrustedTypes policy "+o+" could not be created."),null}},ef=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},ep=function(e,t,n,r){return k(e,t)&&E(e[t])?P(r.base?U(r.base):{},e[t],r.transform):n};var em,ed=function e(){let t,n,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"u"<typeof window?null:window,a=t=>e(t);if(a.version="3.4.12",a.removed=[],!r||!r.document||9!==r.document.nodeType||!r.Element)return a.isSupported=!1,a;let i=r.document,l=i,c=l.currentScript;r.DocumentFragment;let p=r.HTMLTemplateElement,m=r.Node,d=r.Element,M=r.NodeFilter;void 0===r.NamedNodeMap&&(r.NamedNodeMap||r.MozNamedAttrMap),r.HTMLFormElement;let em=r.DOMParser,ed=r.trustedTypes,eh=d.prototype,eg=z(eh,"cloneNode"),ey=z(eh,"remove"),eT=z(eh,"nextSibling"),eb=z(eh,"childNodes"),eE=z(eh,"parentNode"),eS=z(eh,"shadowRoot"),e_=z(eh,"attributes"),eA=m&&m.prototype?z(m.prototype,"nodeType"):null,eN=m&&m.prototype?z(m.prototype,"nodeName"):null;if("function"==typeof p){let e=i.createElement("template");e.content&&e.content.ownerDocument&&(i=e.content.ownerDocument)}let ew="",eO=!1,ev=0,eR=function(){if(ev>0)throw L('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},eC=function(e){eR(),ev++;try{return t.createHTML(e)}finally{ev--}},eD=function(e){eR(),ev++;try{return t.createScriptURL(e)}finally{ev--}},ek=i,eI=ek.implementation,ex=ek.createNodeIterator,eL=ek.createDocumentFragment,eM=ek.getElementsByTagName,eP=l.importNode,eU=ef();a.isSupported="function"==typeof o&&"function"==typeof eE&&eI&&void 0!==eI.createHTMLDocument;let ez=et,eF=null,eH=P({},[...F,...H,...j,...G,...Y]),ej=null,eB=P({},[...q,...X,...$,...K]),eG=Object.seal(f(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),eW=null,eY=null,eq=Object.seal(f(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),eX=!0,e$=!0,eK=!1,eV=!0,eZ=!1,eJ=!0,eQ=!1,e0=!1,e1=null,e2=null,e9=!1,e3=!1,e8=!1,e4=!1,e6=!0,e7=!1,e5="user-content-",te=!0,tt=!1,tn={},tr=null,to=P({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]),ta=null,ti=P({},["audio","video","img","source","image","track"]),tl=null,tc=P({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),tu="http://www.w3.org/1998/Math/MathML",ts="http://www.w3.org/2000/svg",tf="http://www.w3.org/1999/xhtml",tp=tf,tm=!1,td=null,th=P({},[tu,ts,tf],_),tg=u(["mi","mo","mn","ms","mtext"]),ty=P({},tg),tT=u(["annotation-xml"]),tb=P({},tT),tE=P({},["title","style","font","a","script"]),tS=null,t_=["application/xhtml+xml","text/html"],tA=null,tN=null,tw=i.createElement("form"),tO=function(e){return e instanceof RegExp||e instanceof Function},tv=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(tN&&tN===e)return;e&&"object"==typeof e||(e={}),e=U(e),tA="application/xhtml+xml"===(tS=-1===t_.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE)?_:S,eF=ep(e,"ALLOWED_TAGS",eH,{transform:tA}),ej=ep(e,"ALLOWED_ATTR",eB,{transform:tA}),td=ep(e,"ALLOWED_NAMESPACES",th,{transform:_}),tl=ep(e,"ADD_URI_SAFE_ATTR",tc,{transform:tA,base:tc}),ta=ep(e,"ADD_DATA_URI_TAGS",ti,{transform:tA,base:ti}),tr=ep(e,"FORBID_CONTENTS",to,{transform:tA}),eW=ep(e,"FORBID_TAGS",U({}),{transform:tA}),eY=ep(e,"FORBID_ATTR",U({}),{transform:tA}),tn=!!k(e,"USE_PROFILES")&&(e.USE_PROFILES&&"object"==typeof e.USE_PROFILES?U(e.USE_PROFILES):e.USE_PROFILES),eX=!1!==e.ALLOW_ARIA_ATTR,e$=!1!==e.ALLOW_DATA_ATTR,eK=e.ALLOW_UNKNOWN_PROTOCOLS||!1,eV=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,eZ=e.SAFE_FOR_TEMPLATES||!1,eJ=!1!==e.SAFE_FOR_XML,eQ=e.WHOLE_DOCUMENT||!1,e3=e.RETURN_DOM||!1,e8=e.RETURN_DOM_FRAGMENT||!1,e4=e.RETURN_TRUSTED_TYPE||!1,e9=e.FORCE_BODY||!1,e6=!1!==e.SANITIZE_DOM,e7=e.SANITIZE_NAMED_PROPS||!1,te=!1!==e.KEEP_CONTENT,tt=e.IN_PLACE||!1,ez=!function(e){try{return x(e,""),!0}catch(e){return!1}}(e.ALLOWED_URI_REGEXP)?et:e.ALLOWED_URI_REGEXP,tp="string"==typeof e.NAMESPACE?e.NAMESPACE:tf,ty=k(e,"MATHML_TEXT_INTEGRATION_POINTS")&&e.MATHML_TEXT_INTEGRATION_POINTS&&"object"==typeof e.MATHML_TEXT_INTEGRATION_POINTS?U(e.MATHML_TEXT_INTEGRATION_POINTS):P({},tg),tb=k(e,"HTML_INTEGRATION_POINTS")&&e.HTML_INTEGRATION_POINTS&&"object"==typeof e.HTML_INTEGRATION_POINTS?U(e.HTML_INTEGRATION_POINTS):P({},tT);let r=k(e,"CUSTOM_ELEMENT_HANDLING")&&e.CUSTOM_ELEMENT_HANDLING&&"object"==typeof e.CUSTOM_ELEMENT_HANDLING?U(e.CUSTOM_ELEMENT_HANDLING):f(null);if(eG=f(null),k(r,"tagNameCheck")&&tO(r.tagNameCheck)&&(eG.tagNameCheck=r.tagNameCheck),k(r,"attributeNameCheck")&&tO(r.attributeNameCheck)&&(eG.attributeNameCheck=r.attributeNameCheck),k(r,"allowCustomizedBuiltInElements")&&"boolean"==typeof r.allowCustomizedBuiltInElements&&(eG.allowCustomizedBuiltInElements=r.allowCustomizedBuiltInElements),s(eG),eZ&&(e$=!1),e8&&(e3=!0),tn&&(eF=P({},Y),ej=f(null),!0===tn.html&&(P(eF,F),P(ej,q)),!0===tn.svg&&(P(eF,H),P(ej,X),P(ej,K)),!0===tn.svgFilters&&(P(eF,j),P(ej,X),P(ej,K)),!0===tn.mathMl&&(P(eF,G),P(ej,$),P(ej,K))),eq.tagCheck=null,eq.attributeCheck=null,k(e,"ADD_TAGS")&&("function"==typeof e.ADD_TAGS?eq.tagCheck=e.ADD_TAGS:E(e.ADD_TAGS)&&(eF===eH&&(eF=U(eF)),P(eF,e.ADD_TAGS,tA))),k(e,"ADD_ATTR")&&("function"==typeof e.ADD_ATTR?eq.attributeCheck=e.ADD_ATTR:E(e.ADD_ATTR)&&(ej===eB&&(ej=U(ej)),P(ej,e.ADD_ATTR,tA))),k(e,"ADD_URI_SAFE_ATTR")&&E(e.ADD_URI_SAFE_ATTR)&&P(tl,e.ADD_URI_SAFE_ATTR,tA),k(e,"FORBID_CONTENTS")&&E(e.FORBID_CONTENTS)&&(tr===to&&(tr=U(tr)),P(tr,e.FORBID_CONTENTS,tA)),k(e,"ADD_FORBID_CONTENTS")&&E(e.ADD_FORBID_CONTENTS)&&(tr===to&&(tr=U(tr)),P(tr,e.ADD_FORBID_CONTENTS,tA)),te&&(eF["#text"]=!0),eQ&&P(eF,["html","head","body"]),eF.table&&(P(eF,["tbody"]),delete eW.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw L('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw L('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');let n=t;t=e.TRUSTED_TYPES_POLICY;try{ew=eC("")}catch(e){throw t=n,e}}else null===e.TRUSTED_TYPES_POLICY?(t=void 0,ew=""):(void 0===t&&(eO||(n=es(ed,c),eO=!0),t=n),t&&"string"==typeof ew&&(ew=eC("")));u&&u(e),tN=e},tR=P({},[...H,...j,...B]),tC=P({},[...G,...W]),tD=function(e){var t,n,r;let o=eE(e);o&&o.tagName||(o={namespaceURI:tp,tagName:"template"});let a=S(e.tagName),i=S(o.tagName);return!!td[e.namespaceURI]&&(e.namespaceURI===ts?(t=o).namespaceURI===tf?"svg"===a:t.namespaceURI===tu?"svg"===a&&("annotation-xml"===i||ty[i]):!!tR[a]:e.namespaceURI===tu?(n=o).namespaceURI===tf?"math"===a:n.namespaceURI===ts?"math"===a&&tb[i]:!!tC[a]:e.namespaceURI===tf?((r=o).namespaceURI!==ts||!!tb[i])&&(r.namespaceURI!==tu||!!ty[i])&&!tC[a]&&(tE[a]||!tR[a]):"application/xhtml+xml"===tS&&!!td[e.namespaceURI])},tk=function(e){T(a.removed,{element:e});try{eE(e).removeChild(e)}catch(t){if(ey(e),!eE(e))throw L("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},tI=function(e){tM(e);let t=eb(e);if(t){let e=[];h(t,t=>{T(e,t)}),h(e,e=>{try{ey(e)}catch(e){}})}let n=e_(e);if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],o=r&&r.name;if("string"==typeof o)try{e.removeAttribute(o)}catch(e){}}},tx=function(e,t){try{T(a.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){T(a.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e)if(e3||e8)try{tk(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},tL=function(e){let t=e_(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],o=r&&r.name;if("string"==typeof o&&!ej[tA(o)])try{e.removeAttribute(o)}catch(e){}}},tM=function(e){let t=[e];for(;t.length>0;){let e=t.pop();(eA?eA(e):e.nodeType)===1&&tL(e);let n=eb(e);if(n)for(let e=n.length-1;e>=0;--e)t.push(n[e])}},tP=function(e){if(!eJ)return;let t=[e];for(;t.length>0;){let e=t.pop(),n=eA?eA(e):e.nodeType;if(7===n||8===n&&x(el,e.data)){try{ey(e)}catch(e){}continue}if(1===n){let t=tA(eN?eN(e):e.nodeName);try{e.hasAttribute&&e.hasAttribute("patchsrc")&&e.removeAttribute("patchsrc"),e.hasAttribute&&e.hasAttribute("for")&&"label"!==t&&"output"!==t&&e.removeAttribute("for")}catch(e){}}let r=eb(e);if(r)for(let e=r.length-1;e>=0;--e)t.push(r[e])}},tU=function(e){let n=null,r=null;if(e9)e="<remove></remove>"+e;else{let t=A(e,/^[\r\n\t ]+/);r=t&&t[0]}"application/xhtml+xml"===tS&&tp===tf&&(e='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+e+"</body></html>");let o=t?eC(e):e;if(tp===tf)try{n=new em().parseFromString(o,tS)}catch(e){}if(!n||!n.documentElement){n=eI.createDocument(tp,"template",null);try{n.documentElement.innerHTML=tm?ew:o}catch(e){}}let a=n.body||n.documentElement;return(e&&r&&a.insertBefore(i.createTextNode(r),a.childNodes[0]||null),tp===tf)?eM.call(n,eQ?"html":"body")[0]:eQ?n.documentElement:a},tz=function(e){return ex.call(e.ownerDocument||e,e,M.SHOW_ELEMENT|M.SHOW_COMMENT|M.SHOW_TEXT|M.SHOW_PROCESSING_INSTRUCTION|M.SHOW_CDATA_SECTION,null)},tF=function(e){return e=N(e,V," "),e=N(e,Z," "),e=N(e,J," ")},tH=function(e){var t;e.normalize();let n=ex.call(e.ownerDocument||e,e,M.SHOW_TEXT|M.SHOW_COMMENT|M.SHOW_CDATA_SECTION|M.SHOW_PROCESSING_INSTRUCTION,null),r=n.nextNode();for(;r;)r.data=tF(r.data),r=n.nextNode();let o=null==(t=e.querySelectorAll)?void 0:t.call(e,"template");o&&h(o,e=>{tB(e.content)&&tH(e.content)})},tj=function(e){let t=eN?eN(e):null;return"string"==typeof t&&"form"===tA(t)&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||e.attributes!==e_(e)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes||e.nodeType!==eA(e)||e.childNodes!==eb(e))},tB=function(e){if(!eA||"object"!=typeof e||null===e)return!1;try{return 11===eA(e)}catch(e){return!1}},tG=function(e){if(!eA||"object"!=typeof e||null===e)return!1;try{return"number"==typeof eA(e)}catch(e){return!1}};function tW(e,t,n){0!==e.length&&h(e,e=>{e.call(a,t,n,tN)})}let tY=function(e,t){if(!eW[t]&&tK(t)&&(eG.tagNameCheck instanceof RegExp&&x(eG.tagNameCheck,t)||eG.tagNameCheck instanceof Function&&eG.tagNameCheck(t)))return!1;if(te&&!tr[t]){let t=eE(e),n=eb(e);if(n&&t){let r=n.length;for(let o=r-1;o>=0;--o){let r=tt?n[o]:eg(n[o],!0);t.insertBefore(r,eT(e))}}}return tk(e),!0},tq=function(e,t){if(tW(eU.beforeSanitizeElements,e,null),e!==t&&null===eE(e))return!0;if(tj(e))return tk(e),!0;let n=tA(eN?eN(e):e.nodeName);if(tW(eU.uponSanitizeElement,e,{tagName:n,allowedTags:eF}),e!==t&&null===eE(e))return!0;if(eJ&&e.hasChildNodes()&&!tG(e.firstElementChild)&&x(ei,e.textContent)&&x(ei,e.innerHTML)||eJ&&e.namespaceURI===tf&&"style"===n&&tG(e.firstElementChild)||7===e.nodeType||eJ&&8===e.nodeType&&x(el,e.data))return tk(e),!0;if(eW[n]||!(eq.tagCheck instanceof Function&&eq.tagCheck(n))&&!eF[n]){let t=tY(e,n);return!1===t&&tW(eU.afterSanitizeElements,e,null),t}if((eA?eA(e):e.nodeType)===1&&!tD(e)||("noscript"===n||"noembed"===n||"noframes"===n)&&x(ec,e.innerHTML))return tk(e),!0;if(eZ&&3===e.nodeType){let t=tF(e.textContent);e.textContent!==t&&(T(a.removed,{element:e.cloneNode()}),e.textContent=t)}return tW(eU.afterSanitizeElements,e,null),!1},tX=function(e,t,n){if(eY[t]||eJ&&"patchsrc"===t||eJ&&"for"===t&&"label"!==e&&"output"!==e||e6&&("id"===t||"name"===t)&&(n in i||n in tw))return!1;let r=ej[t]||eq.attributeCheck instanceof Function&&eq.attributeCheck(t,e);if(e$&&x(Q,t));else if(eX&&x(ee,t));else if(r){if(tl[t]);else if(x(ez,N(n,er,"")));else if(("src"===t||"xlink:href"===t||"href"===t)&&"script"!==e&&0===w(n,"data:")&&ta[e]);else if(eK&&!x(en,N(n,er,"")));else if(n)return!1}else if(!(tK(e)&&(eG.tagNameCheck instanceof RegExp&&x(eG.tagNameCheck,e)||eG.tagNameCheck instanceof Function&&eG.tagNameCheck(e))&&(eG.attributeNameCheck instanceof RegExp&&x(eG.attributeNameCheck,t)||eG.attributeNameCheck instanceof Function&&eG.attributeNameCheck(t,e))||"is"===t&&eG.allowCustomizedBuiltInElements&&(eG.tagNameCheck instanceof RegExp&&x(eG.tagNameCheck,n)||eG.tagNameCheck instanceof Function&&eG.tagNameCheck(n))))return!1;return!0},t$=P({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),tK=function(e){return!t$[S(e)]&&x(ea,e)},tV=function(e,n,r,o){if(t&&"object"==typeof ed&&"function"==typeof ed.getAttributeType&&!r)switch(ed.getAttributeType(e,n)){case"TrustedHTML":return eC(o);case"TrustedScriptURL":return eD(o)}return o},tZ=function(e,t,n,r){try{n?e.setAttributeNS(n,t,r):e.setAttribute(t,r),tj(e)?tk(e):y(a.removed)}catch(n){tx(t,e)}},tJ=function(e){tW(eU.beforeSanitizeAttributes,e,null);let t=e.attributes;if(!t||tj(e))return;let n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:ej,forceKeepAttr:void 0},r=t.length,o=tA(e.nodeName);for(;r--;){let a=t[r],i=a.name,l=a.namespaceURI,c=a.value,u=tA(i),s="value"===i?c:O(c);if(n.attrName=u,n.attrValue=s,n.keepAttr=!0,n.forceKeepAttr=void 0,tW(eU.uponSanitizeAttribute,e,n),s=n.attrValue,e7&&("id"===u||"name"===u)&&0!==w(s,e5)&&(tx(i,e),s=e5+s),eJ&&x(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,s)||"attributename"===u&&A(s,"href")){tx(i,e);continue}if(!n.forceKeepAttr){if(!n.keepAttr||!eV&&x(eu,s)||(eZ&&(s=tF(s)),!tX(o,u,s))){tx(i,e);continue}(s=tV(o,u,l,s))!==c&&tZ(e,i,l,s)}}tW(eU.afterSanitizeAttributes,e,null)},tQ=function(e){let t=null,n=tz(e);for(tW(eU.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(tW(eU.uponSanitizeShadowNode,t,null),tq(t,e),tJ(t),tB(t.content)&&tQ(t.content),(eA?eA(t):t.nodeType)===1){let e=eS(t);tB(e)&&(t0(e),tQ(e))}tW(eU.afterSanitizeShadowDOM,e,null)},t0=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){tQ(e.shadow);continue}let n=e.node,r=(eA?eA(n):n.nodeType)===1,o=eb(n);if(o)for(let e=o.length-1;e>=0;--e)t.push({node:o[e],shadow:null});if(r){let e=eN?eN(n):null;if("string"==typeof e&&"template"===tA(e)){let e=n.content;tB(e)&&t.push({node:e,shadow:null})}}if(r){let e=eS(n);tB(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return a.sanitize=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=null,o=null,i=null,c=null;if((tm=!e)&&(e="\x3c!--\x3e"),"string"!=typeof e&&!tG(e)&&"string"!=typeof(e=function(e){switch(typeof e){case"string":return e;case"number":return v(e);case"boolean":return R(e);case"bigint":return C?C(e):"0";case"symbol":return D?D(e):"Symbol()";case"undefined":default:return I(e);case"function":case"object":{if(null===e)return I(e);let t=z(e,"toString");if("function"==typeof t){let n=t(e);return"string"==typeof n?n:I(n)}return I(e)}}}(e)))throw L("dirty is not a string, aborting");if(!a.isSupported)return e;e0?(eF=e1,ej=e2):tv(n),(eU.uponSanitizeElement.length>0||eU.uponSanitizeAttribute.length>0)&&(eF=U(eF)),eU.uponSanitizeAttribute.length>0&&(ej=U(ej)),a.removed=[];let u=tt&&"string"!=typeof e&&tG(e);if(u){tP(e);let t=eN?eN(e):e.nodeName;if("string"==typeof t){let n=tA(t);if(!eF[n]||eW[n])throw tI(e),L("root node is forbidden and cannot be sanitized in-place")}if(tj(e))throw tI(e),L("root node is clobbered and cannot be sanitized in-place");try{t0(e)}catch(t){throw tI(e),t}}else if(tG(e))1===(o=(r=tU("\x3c!----\x3e")).ownerDocument.importNode(e,!0)).nodeType&&"BODY"===o.nodeName||"HTML"===o.nodeName?r=o:r.appendChild(o),t0(o);else{if(!e3&&!eZ&&!eQ&&-1===e.indexOf("<"))return t&&e4?eC(e):e;if(!(r=tU(e)))return e3?null:e4?ew:""}r&&e9&&tk(r.firstChild);let s=u?e:r,f=tz(s);try{for(;i=f.nextNode();)tq(i,s),tJ(i),tB(i.content)&&tQ(i.content)}catch(t){throw u&&(tI(e),h(a.removed,e=>{e.element&&tM(e.element)})),t}if(u)return h(a.removed,e=>{e.element&&tM(e.element)}),eZ&&tH(e),e;if(e3){if(eZ&&tH(r),e8)for(c=eL.call(r.ownerDocument);r.firstChild;)c.appendChild(r.firstChild);else c=r;return(ej.shadowroot||ej.shadowrootmode)&&(c=eP.call(l,c,!0)),c}let p=eQ?r.outerHTML:r.innerHTML;return eQ&&eF["!doctype"]&&r.ownerDocument&&r.ownerDocument.doctype&&r.ownerDocument.doctype.name&&x(eo,r.ownerDocument.doctype.name)&&(p="<!DOCTYPE "+r.ownerDocument.doctype.name+">\n"+p),eZ&&(p=tF(p)),t&&e4?eC(p):p},a.setConfig=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};tv(e),e0=!0,e1=eF,e2=ej},a.clearConfig=function(){tN=null,e0=!1,e1=null,e2=null,t=n,ew=""},a.isValidAttribute=function(e,t,n){return tN||tv({}),tX(tA(e),tA(t),n)},a.addHook=function(e,t){"function"!=typeof t||k(eU,e)&&T(eU[e],t)},a.removeHook=function(e,t){if(k(eU,e)){if(void 0!==t){let n=g(eU[e],t);return -1===n?void 0:b(eU[e],n,1)[0]}return y(eU[e])}},a.removeHooks=function(e){k(eU,e)&&(eU[e]=[])},a.removeAllHooks=function(){eU=ef()},a}()}}]);
@@ -0,0 +1,3 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[523],{80523:(e,t,s)=>{Promise.resolve().then(s.bind(s,95907))},95907:(e,t,s)=>{"use strict";s.d(t,{default:()=>p});var a=s(95155),l=s(12115),n=s(14051),r=s.n(n),i=s(98500),o=s.n(i),c=s(35497),d=s(11059);let m=[{icon:"public",title:"Access Anywhere",desc:"Use your API from any network"},{icon:"group",title:"Share Endpoint",desc:"Share URL with team members"},{icon:"code",title:"Use in Cursor/Cline",desc:"Connect AI tools remotely"},{icon:"lock",title:"Encrypted",desc:"End-to-end TLS via Cloudflare"}];async function u(e){if(!e)return!1;try{return(await fetch(`${e}/api/health`,{mode:"cors",cache:"no-store",signal:AbortSignal.timeout(5e3)})).ok}catch{return!1}}async function x(...e){let t=e.filter(Boolean).map(u);return!!t.length&&new Promise(e=>{let s=t.length;t.forEach(t=>t.then(t=>{t?e(!0):0==--s&&e(!1)}))})}function p({machineId:e}){let[t,s]=(0,l.useState)([]),[n,r]=(0,l.useState)(!0),[i,f]=(0,l.useState)(!1),[j,w]=(0,l.useState)(""),[k,v]=(0,l.useState)(null),[N,C]=(0,l.useState)(null),[S,T]=(0,l.useState)(null),[P,$]=(0,l.useState)(null),[_,E]=(0,l.useState)(!1),[A,U]=(0,l.useState)(!0),[D,I]=(0,l.useState)(!0),[O,F]=(0,l.useState)(!1),[R,L]=(0,l.useState)(!0),[q,W]=(0,l.useState)(!1),[K,M]=(0,l.useState)(!1),[z,J]=(0,l.useState)(""),[B,H]=(0,l.useState)(""),[V,Z]=(0,l.useState)(!1),[Q,X]=(0,l.useState)(""),[G,Y]=(0,l.useState)(null),[ee,et]=(0,l.useState)(!1),[es,ea]=(0,l.useState)(!1),[el,en]=(0,l.useState)(!1),[er,ei]=(0,l.useState)(!1),[eo,ec]=(0,l.useState)(""),[ed,em]=(0,l.useState)(!1),[eu,ex]=(0,l.useState)(""),[ep,eh]=(0,l.useState)(null),[eg,eb]=(0,l.useState)(""),[ey,ef]=(0,l.useState)(""),[ej,ew]=(0,l.useState)(null),[ek,ev]=(0,l.useState)(!1),[eN,eC]=(0,l.useState)([]),[eS,eT]=(0,l.useState)(""),[eP,e$]=(0,l.useState)(!1),[e_,eE]=(0,l.useState)(!1),[eA,eU]=(0,l.useState)(!1),eD=(0,l.useRef)(null),eI=(0,l.useRef)(0),eO=(0,l.useRef)(0),eF=(0,l.useRef)(!1),eR=(0,l.useRef)(!1),eL=(0,l.useRef)(!1),eq=(0,l.useRef)(!1),[eW,eK]=(0,l.useState)(!1),[eM,ez]=(0,l.useState)(!1),[eJ,eB]=(0,l.useState)(!1);(0,l.useEffect)(()=>{eB(!["localhost","127.0.0.1","::1"].includes(window.location.hostname))},[]);let{copied:eH,copy:eV}=(0,d.C)(),eZ=!A||!D,eQ=A?"Change the default dashboard password before activating the tunnel.":'Enable "Require login" and set a custom password before activating the tunnel.';(0,l.useEffect)(()=>{eD.current&&(eD.current.scrollTop=eD.current.scrollHeight)},[eN]),(0,l.useEffect)(()=>{e5(),eY()},[]),(0,l.useEffect)(()=>{if(!(q||el))return;let e=!q||K,t=!el||er,s=()=>{document.hidden||eG()};if(document.addEventListener("visibilitychange",s),e&&t)return()=>document.removeEventListener("visibilitychange",s);let a=setInterval(()=>{document.hidden||eG()},5e3);return()=>{clearInterval(a),document.removeEventListener("visibilitychange",s)}},[q,el,K,er]),(0,l.useEffect)(()=>{let e=async()=>{if(!document.hidden){if(q&&(z||B)){let e=await x(B,z);eF.current=e,e?(eI.current=0,M(!0),eL.current||(eL.current=!0,eK(!0))):(eI.current+=1,eI.current>=5&&M(!1))}else eF.current=!1;if(el&&eo){let e=await u(eo);eR.current=e,e?(eO.current=0,ei(!0),eq.current||(eq.current=!0,ez(!0))):(eO.current+=1,eO.current>=5&&ei(!1))}else eR.current=!1}};if(!(q&&(z||B)||el&&eo))return;e();let t=!el||er;if((!q||K)&&t)return;let s=setInterval(e,1e4);return()=>clearInterval(s)},[q,z,B,el,eo,K,er]);let eX=(0,l.useCallback)((e,t,s,a,l,n)=>{t.current?(s.current=0,a(!0),l.current||(l.current=!0,n(!0))):(s.current+=1,s.current>=5&&a(!1))},[]),eG=async()=>{try{let e=await fetch("/api/tunnel/status",{cache:"no-store"});if(!e.ok)return;let t=await e.json(),s=t.tunnel?.settingsEnabled??t.tunnel?.enabled??!1,a=t.tunnel?.tunnelUrl||"";J(a),H(t.tunnel?.publicUrl||""),W(s),eX(null,eF,eI,M,eL,eK);let l=t.tailscale?.settingsEnabled??t.tailscale?.enabled??!1,n=t.tailscale?.tunnelUrl||"";ec(n),en(l),eX(null,eR,eO,ei,eq,ez)}catch{}},eY=async()=>{L(!0);try{let[e,t]=await Promise.all([fetch("/api/settings"),fetch("/api/tunnel/status",{cache:"no-store"})]);if(e.ok){let t=await e.json();E(t.requireApiKey||!1),U(!1!==t.requireLogin),I(t.hasPassword||!1),F(t.tunnelDashboardAccess||!1)}if(t.ok){let e=await t.json(),s=e.tunnel?.settingsEnabled??e.tunnel?.enabled??!1,a=e.tunnel?.tunnelUrl||"";J(a),H(e.tunnel?.publicUrl||""),W(s),eX(null,eF,eI,M,eL,eK);let l=e.tailscale?.settingsEnabled??e.tailscale?.enabled??!1,n=e.tailscale?.tunnelUrl||"";ec(n),en(l),eX(null,eR,eO,ei,eq,ez)}}catch(e){console.log("Error loading settings:",e)}finally{L(!1)}},e0=async e=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({tunnelDashboardAccess:e})})).ok&&F(e)}catch(e){console.log("Error updating tunnelDashboardAccess:",e)}},e1=async e=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({requireApiKey:e})})).ok&&E(e)}catch(e){console.log("Error updating requireApiKey:",e)}},e5=async()=>{try{let e=await fetch("/api/keys"),t=await e.json();e.ok&&s(t.keys||[])}catch(e){console.log("Error fetching data:",e)}finally{r(!1)}},e2=async(...e)=>{Z(!0),X("Waiting for tunnel ready...");let t=e.filter(Boolean).map(e=>`${e}/api/health`),s=Date.now();for(;Date.now()-s<3e5;){if(await new Promise(e=>setTimeout(e,2e3)),await Promise.any(t.map(async e=>{if((await fetch(e,{mode:"cors",cache:"no-store"})).ok)return!0;throw Error("not ready")})).catch(()=>!1))return W(!0),Z(!1),X(""),!0;if((Date.now()-s)%1e4<2e3)try{let e=await fetch("/api/tunnel/status");if(e.ok){let t=await e.json();if(!t.tunnel?.enabled)return Y({type:"error",message:"Tunnel process stopped unexpectedly."}),Z(!1),X(""),!1}}catch{}}return Y({type:"error",message:"Tunnel created but not reachable. Please try again."}),Z(!1),X(""),!1},e3=async()=>{et(!1),Z(!0),Y(null),X("Creating tunnel...");let e=!0;(async()=>{for(;e;){try{let t=await fetch("/api/tunnel/status");if(t.ok){let s=await t.json();s.download?.downloading?X(`Downloading cloudflared... ${s.download.progress}%`):e&&X("Creating tunnel...")}}catch{}await new Promise(e=>setTimeout(e,1e3))}})();try{let t=await fetch("/api/tunnel/enable",{method:"POST"});e=!1;let s=await t.json();if(!t.ok)return void Y({type:"error",message:s.error||"Failed to enable tunnel"});let a=s.tunnelUrl;if(!a)return void Y({type:"error",message:"No tunnel URL returned"});J(a),H(s.publicUrl||""),await e2(s.publicUrl,a)}catch(e){Y({type:"error",message:e.message})}finally{e=!1,Z(!1),X("")}},e4=async()=>{Z(!0),Y(null);try{let e=await fetch("/api/tunnel/disable",{method:"POST"}),t=await e.json();e.ok?(W(!1),J(""),ea(!1),Y({type:"success",message:"Tunnel disabled"})):Y({type:"error",message:t.error||"Failed to disable tunnel"})}catch(e){Y({type:"error",message:e.message})}finally{Z(!1)}},e8=async()=>{ew(null);try{let e=await fetch("/api/tunnel/tailscale-check");if(e.ok){let t=await e.json();return ew(t.installed),t}}catch{}return ew(!1),{installed:!1}},e6=async()=>{ev(!0),eh(null),eC([]);try{let e=await fetch("/api/tunnel/tailscale-install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sudoPassword:eS})});eT("");let t=e.body.getReader(),s=new TextDecoder,a="";for(;;){let{done:e,value:l}=await t.read();if(e)break;let n=(a+=s.decode(l,{stream:!0})).split("\n\n");for(let e of(a=n.pop()||"",n)){let t=e.split("\n"),s="progress",a=null;for(let e of t)if(e.startsWith("event: ")&&(s=e.slice(7).trim()),e.startsWith("data: "))try{a=JSON.parse(e.slice(6))}catch{}if(a)if("progress"===s)eC(e=>[...e.slice(-50),a.message]);else if("done"===s){ew(!0),ev(!1),eE(!1),tt();return}else"error"===s&&eh({type:"error",message:a.error||"Install failed"})}}}catch(e){eh({type:"error",message:e.message})}finally{ev(!1)}},e7=async e=>{ex("Waiting for Tailscale ready...");let t=`${e}/api/health`,s=Date.now();for(;Date.now()-s<3e5;){await new Promise(e=>setTimeout(e,2e3));try{let e=await fetch(t,{mode:"no-cors",cache:"no-store"});if(e.ok||"opaque"===e.type)return!0}catch{}}return!1},e9=(e,t)=>{eb(e),ef(t)},te=()=>{eb(""),ef("")},tt=async()=>{eE(!1),e$(!0),em(!0),eh(null),ex("Connecting..."),te();try{let e=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),t=await e.json();if(e.ok&&t.success){ec(t.tunnelUrl||"");let e=await e7(t.tunnelUrl);en(!0),eh(e?null:{type:"warning",message:"Connected but not reachable yet."});return}if(t.needsLogin&&t.authUrl){e9(t.authUrl,"Open Login Page"),ex('Login required — click "Open Login Page" to continue');for(let e=0;e<40;e++){await new Promise(e=>setTimeout(e,3e3));try{let e=await fetch("/api/tunnel/tailscale-check");if(e.ok&&(await e.json()).loggedIn){te(),ex("Starting funnel...");let e=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),t=await e.json();if(e.ok&&t.success){ec(t.tunnelUrl||"");let e=await e7(t.tunnelUrl);en(!0),eh(e?null:{type:"warning",message:"Connected but not reachable yet."})}else t.funnelNotEnabled&&t.enableUrl?await ts(t.enableUrl):eh({type:"error",message:t.error||"Failed to start funnel"});return}}catch{}}te(),eh({type:"error",message:"Login timed out. Please try again."});return}if(t.funnelNotEnabled&&t.enableUrl)return void await ts(t.enableUrl);eh({type:"error",message:t.error||"Failed to connect"})}catch(e){eh({type:"error",message:e.message})}finally{em(!1),e$(!1),ex(""),te()}},ts=async e=>{e9(e,"Open Funnel Settings"),ex('Click "Open Funnel Settings" to enable Funnel...');for(let e=0;e<40;e++){await new Promise(e=>setTimeout(e,3e3));try{let e=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),t=await e.json();if(e.ok&&t.success){te(),ec(t.tunnelUrl||"");let e=await e7(t.tunnelUrl);en(!0),eh(e?null:{type:"warning",message:"Connected but not reachable yet."});return}if(t.funnelNotEnabled)continue;if(t.error){te(),eh({type:"error",message:t.error});return}}catch{}}te(),eh({type:"error",message:"Timed out waiting for Funnel to be enabled."})},ta=async()=>{em(!0),eh(null);try{let e=await fetch("/api/tunnel/tailscale-disable",{method:"POST"}),t=await e.json();e.ok?(en(!1),ec(""),eU(!1),eh({type:"success",message:"Tailscale disabled"})):eh({type:"error",message:t.error||"Failed to disable Tailscale"})}catch(e){eh({type:"error",message:e.message})}finally{em(!1)}},tl=async()=>{eh(null),eC([]);let e=await e8();e?.installed&&e?.hasCachedPassword?tt():eE(!0)},tn=async e=>{if(e.preventDefault(),j.trim()&&!S){T("create"),$(null);try{let e=await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:j})}),t=await e.json();if(!e.ok)throw Error(t.error||`Failed to create key (${e.status})`);v(t.key),await e5(),w(""),f(!1),$({type:"success",message:"API key created"})}catch(e){$({type:"error",message:e.message})}finally{T(null)}}},tr=async(e,t)=>{if(!S){T(`toggle:${e}`),$(null);try{let a=await fetch(`/api/keys/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:t})});if(!a.ok)throw Error(`Failed to update key (${a.status})`);s(s=>s.map(s=>s.id===e?{...s,isActive:t}:s)),$({type:"success",message:"API key updated"})}catch(e){$({type:"error",message:e.message})}finally{T(null)}}},ti=async(e,t,a)=>{if(S)return;let l=""===a?0:Math.max(0,Number(a)||0);T(`budget:${e}`),$(null);try{let a=await fetch(`/api/keys/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({[t]:l})});if(!a.ok)throw Error(`Failed to update budget (${a.status})`);s(s=>s.map(s=>s.id===e?{...s,[t]:l}:s)),$({type:"success",message:"Budget updated"})}catch(e){$({type:"error",message:e.message})}finally{T(null)}},[to,tc]=(0,l.useState)("/v1");return((0,l.useEffect)(()=>{tc(`${window.location.origin}/v1`)},[]),n)?(0,a.jsxs)("div",{className:"flex flex-col gap-6 lg:gap-7",children:[(0,a.jsx)(c.Qv,{}),(0,a.jsx)(c.Qv,{})]}):(0,a.jsxs)("div",{className:"flex flex-col gap-6 lg:gap-7",children:[(0,a.jsxs)(c.Zp,{children:[(0,a.jsxs)("h2",{className:"text-lg font-semibold mb-4 flex items-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-primary",children:"api"}),"API Endpoint"]}),(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)(h,{label:"Local",url:to,copyId:"local_url",copied:eH,onCopy:eV}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[88px] text-center ${q?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:"Tunnel"}),q&&!V&&K?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.pd,{"aria-label":"Cloudflare Tunnel endpoint URL",value:`${B||z}/v1`,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsx)("button",{onClick:()=>eV(`${B||z}/v1`,"tunnel_url"),className:"p-2 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors shrink-0",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"tunnel_url"===eH?"check":"content_copy"})}),(0,a.jsx)("button",{onClick:()=>ea(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tunnel",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):!q||V||K?V?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-border bg-input text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),Q||"Creating tunnel..."]}),(0,a.jsx)("button",{onClick:()=>{Z(!1),X("")},className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):G?.type==="error"?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-red-300 dark:border-red-800 bg-red-500/5 text-sm text-red-600 dark:text-red-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"error"}),G.message]}),(0,a.jsx)(c.$n,{size:"sm",icon:"cloud_upload",onClick:()=>et(!0),children:"Enable"})]}):R?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-border bg-input text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Checking..."]}),(0,a.jsx)("button",{onClick:()=>L(!1),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):(0,a.jsx)(c.$n,{size:"sm",icon:"cloud_upload",onClick:()=>{eZ?Y({type:"error",message:`Security required: ${eQ}`}):_?et(!0):Y({type:"error",message:'Security required: Enable "Require API key" before activating the tunnel.'})},children:"Enable"}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-amber-300 dark:border-amber-800 bg-amber-500/5 text-sm text-amber-600 dark:text-amber-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),eW?"Tunnel reconnecting...":"Tunnel checking..."]}),(0,a.jsx)("button",{onClick:()=>ea(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tunnel",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[88px] text-center ${el?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:"Tailscale"}),el&&!ed&&er?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.pd,{"aria-label":"Tailscale endpoint URL",value:`${eo}/v1`,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsx)("button",{onClick:()=>eV(`${eo}/v1`,"ts_url"),className:"p-2 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors shrink-0",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"ts_url"===eH?"check":"content_copy"})}),(0,a.jsx)("button",{onClick:()=>eU(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tailscale",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):!el||ed||er?ed||eP?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-border bg-input text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),eu||"Connecting..."]}),eg&&(0,a.jsx)(c.$n,{size:"sm",icon:"open_in_new",onClick:()=>window.open(eg,"tailscale_auth","width=600,height=700,noopener,noreferrer"),children:ey||"Open"}),(0,a.jsx)("button",{onClick:()=>{em(!1),e$(!1),ex(""),te()},className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):ep?.type==="error"?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-red-300 dark:border-red-800 bg-red-500/5 text-sm text-red-600 dark:text-red-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"error"}),ep.message]}),(0,a.jsx)(c.$n,{size:"sm",icon:"vpn_lock",onClick:tl,children:"Enable"})]}):(0,a.jsx)(c.$n,{size:"sm",icon:"vpn_lock",onClick:()=>{eZ?eh({type:"error",message:`Security required: ${eQ}`}):tl()},className:"bg-linear-to-r from-indigo-500 to-purple-500 hover:from-indigo-600 hover:to-purple-600 text-white!",children:"Enable"}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-amber-300 dark:border-amber-800 bg-amber-500/5 text-sm text-amber-600 dark:text-amber-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),eM?"Tailscale reconnecting...":"Tailscale checking..."]}),(0,a.jsx)("button",{onClick:()=>eU(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tailscale",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]})]})]}),eZ&&!q&&!el&&(0,a.jsx)("div",{className:"mt-4",children:(0,a.jsx)(y,{message:eQ,action:{label:"Open settings",href:"/dashboard/profile"}})}),(q||el)&&(0,a.jsxs)("div",{className:"mt-4 flex flex-col gap-2",children:[!_&&(0,a.jsx)(y,{message:"Require API key is disabled — your endpoint is publicly accessible without authentication.",action:{label:"Enable",href:"#require-api-key"}}),(!A||!D)&&(0,a.jsx)(y,{message:A?"Dashboard uses the default password — change it in Profile settings.":"Require login is disabled — anyone can access your dashboard via tunnel.",action:{label:A?"Change password":"Enable",href:"/dashboard/profile"}})]}),(q||el)&&(0,a.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex items-center gap-3",children:[(0,a.jsx)(c.lM,{label:"Allow dashboard access via tunnel",checked:O,onChange:()=>e0(!O)}),(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("p",{className:"font-medium text-sm",children:"Allow dashboard access via tunnel"}),(0,a.jsx)(b,{text:"When enabled, the dashboard can be accessed through your tunnel or Tailscale URL (login still required). When disabled, dashboard access via tunnel/Tailscale is completely blocked."})]})]})]}),(0,a.jsx)(c.Zp,{id:"rtk",children:(0,a.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsxs)("h2",{className:"text-lg font-semibold flex items-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-primary",children:"bolt"}),"Token Saver"]}),(0,a.jsx)("p",{className:"text-sm text-text-muted mt-1",children:"RTK, Caveman, Ponytail, Headroom, and PXPIPE live on the Token Saver page."})]}),(0,a.jsxs)(o(),{href:"/dashboard/token-saver",className:"shrink-0 inline-flex items-center gap-1.5 rounded-lg border border-border px-3 py-2 text-sm font-medium text-text-main hover:border-primary/40 hover:text-primary transition-colors",children:["Open",(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"arrow_forward"})]})]})}),(0,a.jsxs)(c.Zp,{id:"require-api-key",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,a.jsxs)("h2",{className:"text-lg font-semibold flex items-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-primary",children:"vpn_key"}),"API Keys"]}),(0,a.jsx)(c.$n,{icon:"add",onClick:()=>f(!0),children:"Create Key"})]}),P&&(0,a.jsx)("p",{role:"status",className:`mb-4 text-sm ${"error"===P.type?"text-red-500":"text-green-500"}`,children:P.message}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3 pb-4 mb-4 border-b border-border",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"font-medium",children:"Require API key"}),(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Requests without a valid key will be rejected"})]}),(0,a.jsx)(c.lM,{label:"Require API key",checked:_,onChange:()=>e1(!_)})]}),eJ&&!_&&(0,a.jsx)("div",{className:"mb-4 -mt-2",children:(0,a.jsx)(y,{message:"Endpoint is exposed without an API key."})}),0===t.length?(0,a.jsxs)("div",{className:"text-center py-12",children:[(0,a.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 text-primary mb-4",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:"vpn_key"})}),(0,a.jsx)("p",{className:"text-text-main font-medium mb-1",children:"No API keys yet"}),(0,a.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Create your first API key to get started"}),(0,a.jsx)(c.$n,{icon:"add",onClick:()=>f(!0),children:"Create Key"})]}):(0,a.jsx)("div",{className:"flex flex-col",children:t.map(e=>{var t;return(0,a.jsxs)("div",{className:`group flex flex-wrap items-center justify-between gap-3 py-3 border-b border-black/[0.03] dark:border-white/[0.03] last:border-b-0 ${!1===e.isActive?"opacity-60":""}`,children:[(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsx)("p",{className:"text-sm font-medium",children:e.name}),(0,a.jsx)("div",{className:"flex items-center gap-2 mt-1",children:(0,a.jsx)("code",{className:"text-xs text-text-muted font-mono",children:e.maskedKey||((t=e.key)?t.length>8?t.slice(0,8)+"...":t:"")})}),(0,a.jsxs)("p",{className:"text-xs text-text-muted mt-1",children:["Created ",new Date(e.createdAt).toLocaleDateString()]}),!1===e.isActive&&(0,a.jsx)("p",{className:"text-xs text-orange-500 mt-1",children:"Paused"}),(0,a.jsxs)("div",{className:"flex items-center gap-3 mt-2",children:[(0,a.jsxs)("label",{className:"flex items-center gap-1 text-[11px] text-text-muted",children:["Daily $",(0,a.jsx)("input",{type:"number",min:"0",step:"0.01",disabled:S===`budget:${e.id}`,defaultValue:e.budgetDaily||0,onBlur:t=>ti(e.id,"budgetDaily",t.target.value),className:"w-16 px-1 py-0.5 text-[11px] bg-transparent border border-border rounded",title:"Daily budget cap in USD (0 = unlimited)"})]}),(0,a.jsxs)("label",{className:"flex items-center gap-1 text-[11px] text-text-muted",children:["Monthly $",(0,a.jsx)("input",{type:"number",min:"0",step:"0.01",disabled:S===`budget:${e.id}`,defaultValue:e.budgetMonthly||0,onBlur:t=>ti(e.id,"budgetMonthly",t.target.value),className:"w-16 px-1 py-0.5 text-[11px] bg-transparent border border-border rounded",title:"Monthly budget cap in USD (0 = unlimited)"})]})]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(c.lM,{size:"sm",disabled:S===`toggle:${e.id}`,checked:e.isActive??!0,onChange:t=>{e.isActive&&!t?C({title:"Pause API Key",message:`Pause API key "${e.name}"?
2
+
3
+ This key will stop working immediately but can be resumed later.`,onConfirm:async()=>{C(null),tr(e.id,t)}}):tr(e.id,t)},title:e.isActive?"Pause key":"Resume key"}),(0,a.jsx)("button",{disabled:S===`delete:${e.id}`,onClick:()=>{var t;return t=e.id,void(!S&&C({title:"Delete API Key",message:"Delete this API key?",onConfirm:async()=>{C(null),T(`delete:${t}`),$(null);try{let e=await fetch(`/api/keys/${t}`,{method:"DELETE"});if(!e.ok)throw Error(`Failed to delete key (${e.status})`);s(e=>e.filter(e=>e.id!==t)),setVisibleKeys(e=>{let s=new Set(e);return s.delete(t),s}),$({type:"success",message:"API key deleted"})}catch(e){$({type:"error",message:e.message})}finally{T(null)}}}))},className:"p-2 hover:bg-red-500/10 rounded text-red-500 opacity-100 sm:opacity-0 sm:group-hover:opacity-100 transition-all",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"})})]})]},e.id)})})]}),(0,a.jsx)(c.aF,{isOpen:i,title:"Create API Key",onClose:()=>{f(!1),w("")},children:(0,a.jsxs)("form",{className:"flex flex-col gap-4",onSubmit:tn,children:[(0,a.jsx)(c.pd,{label:"Key Name",value:j,onChange:e=>w(e.target.value),placeholder:"Production Key"}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(c.$n,{type:"submit",fullWidth:!0,disabled:!j.trim()||"create"===S,children:"create"===S?"Creating...":"Create"}),(0,a.jsx)(c.$n,{type:"button",onClick:()=>{f(!1),w("")},variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,a.jsx)(c.aF,{isOpen:!!k,title:"API Key Created",onClose:()=>v(null),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)("div",{className:"bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg p-4",children:[(0,a.jsx)("p",{className:"text-sm text-yellow-800 dark:text-yellow-200 mb-2 font-medium",children:"Save this key now!"}),(0,a.jsx)("p",{className:"text-sm text-yellow-700 dark:text-yellow-300",children:"This is the only time you will see this key. Store it securely."})]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(c.pd,{value:k||"",readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsx)(c.$n,{variant:"secondary",icon:"created_key"===eH?"check":"content_copy",onClick:()=>eV(k,"created_key"),children:"created_key"===eH?"Copied!":"Copy"})]}),(0,a.jsx)(c.$n,{onClick:()=>v(null),fullWidth:!0,children:"Done"})]})}),(0,a.jsx)(c.aF,{isOpen:ee,title:"Enable Tunnel",onClose:()=>et(!1),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("div",{className:"bg-surface-2 border border-border-subtle rounded-lg p-4",children:(0,a.jsxs)("div",{className:"flex items-start gap-3",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-primary",children:"cloud_upload"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm text-text-main font-medium mb-1",children:"Cloudflare Tunnel"}),(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Expose your local ZevaiRouter to the internet. No port forwarding, no static IP needed. Share endpoint URL with your team or use it in Cursor, Cline, and other AI tools from anywhere."})]})]})}),(0,a.jsx)("div",{className:"grid grid-cols-2 gap-3",children:m.map(e=>(0,a.jsxs)("div",{className:"flex flex-col items-center text-center p-3 rounded-lg bg-sidebar/50",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-xl text-primary mb-1",children:e.icon}),(0,a.jsx)("p",{className:"text-xs font-semibold",children:e.title}),(0,a.jsx)("p",{className:"text-xs text-text-muted",children:e.desc})]},e.title))}),(0,a.jsx)("p",{className:"text-xs text-text-muted",children:"Requires outbound port 7844 (TCP/UDP). Connection may take 10-30s."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(c.$n,{onClick:e3,fullWidth:!0,children:"Start Tunnel"}),(0,a.jsx)(c.$n,{onClick:()=>et(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,a.jsx)(c.aF,{isOpen:es,title:"Disable Tunnel",onClose:()=>!V&&ea(!1),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"The Cloudflare tunnel will be disconnected. Remote access via tunnel URL will stop working."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(c.$n,{onClick:e4,fullWidth:!0,disabled:V,variant:"danger",children:V?"Disabling...":"Disable"}),(0,a.jsx)(c.$n,{onClick:()=>ea(!1),variant:"ghost",fullWidth:!0,disabled:V,children:"Cancel"})]})]})}),(0,a.jsx)(c.aF,{isOpen:e_,title:"Tailscale Funnel",onClose:()=>{ek||(eE(!1),eT(""),eh(null))},children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[null===ej&&(0,a.jsxs)("p",{className:"text-sm text-text-muted flex items-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Checking..."]}),!1===ej&&!ek&&(0,a.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Tailscale is not installed. Install it to enable Funnel."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(c.$n,{onClick:e6,fullWidth:!0,children:"Install Tailscale"}),(0,a.jsx)(c.$n,{onClick:()=>eE(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),ek&&(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Installing Tailscale..."]}),eN.length>0&&(0,a.jsx)("div",{ref:eD,className:"bg-black/5 dark:bg-white/5 rounded p-2 max-h-40 overflow-y-auto font-mono text-xs text-text-muted",children:eN.map((e,t)=>(0,a.jsx)("div",{children:e},t))})]}),!0===ej&&!ek&&(0,a.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"check_circle"}),"Tailscale installed"]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(c.$n,{onClick:()=>tt(),fullWidth:!0,children:"Connect"}),(0,a.jsx)(c.$n,{onClick:()=>eE(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),ep&&(0,a.jsx)(g,{status:ep})]})}),(0,a.jsx)(c.aF,{isOpen:eA,title:"Disable Tailscale",onClose:()=>!ed&&eU(!1),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Tailscale Funnel will be stopped. Remote access via Tailscale URL will stop working."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(c.$n,{onClick:ta,fullWidth:!0,disabled:ed,variant:"danger",children:ed?"Disabling...":"Disable"}),(0,a.jsx)(c.$n,{onClick:()=>eU(!1),variant:"ghost",fullWidth:!0,disabled:ed,children:"Cancel"})]})]})}),(0,a.jsx)(c.uo,{isOpen:!!N,onClose:()=>C(null),onConfirm:N?.onConfirm,title:N?.title||"Confirm",message:N?.message,variant:"danger"})]})}function h({label:e,url:t,copyId:s,copied:l,onCopy:n,badge:r,actions:i}){return(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[88px] text-center ${"CF"===r||"TS"===r?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:e}),(0,a.jsx)(c.pd,{"aria-label":`${e} endpoint URL`,value:t,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsx)("button",{onClick:()=>n(t,s),className:"p-2 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors shrink-0",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:l===s?"check":"content_copy"})}),i]})}function g({status:e,className:t=""}){return(0,a.jsx)("div",{className:`p-2 rounded text-sm ${t} ${"success"===e.type?"bg-green-500/10 text-green-600 dark:text-green-400":"warning"===e.type?"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400":"info"===e.type?"bg-blue-500/10 text-blue-600 dark:text-blue-400":"bg-red-500/10 text-red-600 dark:text-red-400"}`,children:e.message.split(/(https?:\/\/[^\s]+)/g).map((e,t)=>/^https?:\/\//.test(e)?(0,a.jsx)("a",{href:e,target:"_blank",rel:"noreferrer",className:"underline font-medium",children:e},t):e)})}function b({text:e}){return(0,a.jsxs)("span",{className:"relative group inline-flex items-center",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px] text-text-muted cursor-help",children:"help"}),(0,a.jsx)("span",{className:"pointer-events-none absolute left-5 top-1/2 -translate-y-1/2 z-50 w-64 rounded bg-gray-900 dark:bg-gray-800 text-white text-xs px-2.5 py-1.5 opacity-0 group-hover:opacity-100 transition-opacity shadow-lg",children:e})]})}function y({message:e,action:t}){return(0,a.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-amber-500/10 border border-amber-500/20 text-amber-700 dark:text-amber-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px] shrink-0 mt-0.5",children:"warning"}),(0,a.jsx)("p",{className:"text-xs flex-1",children:e}),t&&(0,a.jsx)("a",{href:t.href,className:"text-xs font-medium underline shrink-0 hover:opacity-80",onClick:t.href.startsWith("#")?e=>{e.preventDefault(),document.getElementById(t.href.slice(1))?.scrollIntoView({behavior:"smooth"})}:void 0,children:t.label})]})}p.propTypes={machineId:r().string.isRequired}}}]);