n9router 0.4.35 → 0.4.36
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.
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +31 -18
- package/app/.next/build-manifest.json +3 -3
- package/app/.next/prerender-manifest.json +3 -3
- package/app/.next/required-server-files.json +5 -0
- package/app/.next/routes-manifest.json +120 -36
- package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +24 -0
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -0
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -0
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +23 -17
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +5 -3
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +5 -3
- package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/skills/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error/page.js +3 -3
- package/app/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +1 -1
- package/app/.next/server/app/_global-error.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page.js +2 -2
- package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_not-found.html +1 -1
- package/app/.next/server/app/_not-found.rsc +5 -6
- package/app/.next/server/app/_not-found.segments/_full.segment.rsc +5 -6
- package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_index.segment.rsc +5 -6
- package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -4
- package/app/.next/server/app/api/antigravity-app/route.js +1 -1
- package/app/.next/server/app/api/antigravity-app/route.js.nft.json +1 -1
- package/app/.next/server/app/api/antigravity-app-v2/route.js +1 -1
- package/app/.next/server/app/api/antigravity-app-v2/route.js.nft.json +1 -1
- package/app/.next/server/app/api/antigravity-ide/route.js +1 -1
- package/app/.next/server/app/api/antigravity-ide/route.js.nft.json +1 -1
- package/app/.next/server/app/api/antigravity-tools/import/route.js +1 -1
- package/app/.next/server/app/api/antigravity-tools/import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/antigravity-tools/import-refresh-tokens/route.js +1 -1
- package/app/.next/server/app/api/antigravity-tools/import-refresh-tokens/route.js.nft.json +1 -1
- package/app/.next/server/app/api/auth/login/route.js +1 -1
- package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next/server/app/api/auth/logout/route.js +1 -1
- package/app/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/app/.next/server/app/api/auth/oidc/callback/route.js +1 -0
- package/app/.next/server/app/api/{cloud/credentials/update → auth/oidc/callback}/route.js.nft.json +1 -1
- package/app/.next/server/app/api/{cloud/models/alias → auth/oidc/callback}/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/oidc/start/route.js +1 -0
- package/app/.next/server/app/api/{cloud/models/alias → auth/oidc/start}/route.js.nft.json +1 -1
- package/app/.next/server/app/api/auth/oidc/start/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/auth/oidc/test/route.js +1 -0
- package/app/.next/server/app/api/{cloud/model/resolve → auth/oidc/test}/route.js.nft.json +1 -1
- package/app/.next/server/app/api/auth/oidc/test/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/auth/status/route.js +1 -0
- package/app/.next/server/app/api/{tunnel/tailscale-login → auth/status}/route.js.nft.json +1 -1
- package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/cli-tools/all-statuses/route.js +17 -0
- package/app/.next/server/app/api/{tunnel/tailscale-start-daemon → cli-tools/all-statuses}/route.js.nft.json +1 -1
- package/app/.next/server/app/api/{tunnel/tailscale-login → cli-tools/all-statuses}/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/cline-settings/route.js +2 -0
- package/app/.next/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -0
- package/app/.next/server/app/api/{cloud/credentials/update → cli-tools/cline-settings}/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -32
- package/app/.next/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/copilot-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -0
- package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -0
- package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/cli-tools/cowork-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/deepseek-tui-settings/route.js +9 -0
- package/app/.next/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -0
- package/app/.next/server/app/api/cli-tools/deepseek-tui-settings/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/cli-tools/droid-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/hermes-settings/route.js +3 -3
- package/app/.next/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/jcode-settings/route.js +2 -0
- package/app/.next/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -0
- package/app/.next/server/app/api/cli-tools/jcode-settings/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +2 -0
- package/app/.next/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -0
- package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/combos/route.js +1 -1
- package/app/.next/server/app/api/combos/route.js.nft.json +1 -1
- package/app/.next/server/app/api/donate/route.js +1 -0
- package/app/.next/server/app/api/donate/route.js.nft.json +1 -0
- package/app/.next/server/app/api/donate/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/health/route.js +1 -1
- package/app/.next/server/app/api/health/route.js.nft.json +1 -1
- package/app/.next/server/app/api/init/route.js +1 -1
- package/app/.next/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next/server/app/api/internal/account-health/route.js +1 -1
- package/app/.next/server/app/api/internal/account-health/route.js.nft.json +1 -1
- package/app/.next/server/app/api/internal/request-detail/route.js +1 -1
- package/app/.next/server/app/api/internal/request-detail/route.js.nft.json +1 -1
- package/app/.next/server/app/api/internal/usage/route.js +1 -1
- package/app/.next/server/app/api/internal/usage/route.js.nft.json +1 -1
- package/app/.next/server/app/api/keys/[id]/reset-usage/route.js +1 -1
- package/app/.next/server/app/api/keys/[id]/reset-usage/route.js.nft.json +1 -1
- package/app/.next/server/app/api/keys/[id]/route.js +1 -1
- package/app/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/keys/[id]/usage/route.js +1 -1
- package/app/.next/server/app/api/keys/[id]/usage/route.js.nft.json +1 -1
- package/app/.next/server/app/api/keys/route.js +1 -1
- package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next/server/app/api/locale/route.js +1 -1
- package/app/.next/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next/server/app/api/mcp/[plugin]/message/route.js +7 -0
- package/app/.next/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -0
- package/app/.next/server/app/api/mcp/[plugin]/message/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/mcp/[plugin]/sse/route.js +7 -0
- package/app/.next/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -0
- package/app/.next/server/app/api/mcp/[plugin]/sse/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next/server/app/api/media-providers/tts/minimax/voices/route.js +1 -0
- package/app/.next/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -0
- package/app/.next/server/app/api/media-providers/tts/minimax/voices/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/media-providers/tts/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/alias/route.js +1 -1
- package/app/.next/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/availability/route.js +1 -1
- package/app/.next/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/custom/route.js +1 -1
- package/app/.next/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/disabled/route.js +1 -1
- package/app/.next/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/route.js +1 -1
- package/app/.next/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/test/route.js +1 -1
- package/app/.next/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -6
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/codex/import-token/route.js +1 -0
- package/app/.next/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -0
- package/app/.next/server/app/api/oauth/codex/import-token/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
- package/app/.next/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
- package/app/.next/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
- package/app/.next/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next/server/app/api/pricing/route.js +1 -1
- package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/client/route.js +1 -1
- package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/kilo/free-models/route.js +1 -1
- package/app/.next/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/route.js +1 -1
- package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/suggested-models/route.js +1 -1
- package/app/.next/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/validate/route.js +1 -1
- package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/proxy-pools/cloudflare-deploy/route.js +43 -0
- package/app/.next/server/app/api/{cloud/auth → proxy-pools/cloudflare-deploy}/route.js.nft.json +1 -1
- package/app/.next/server/app/api/proxy-pools/cloudflare-deploy/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/proxy-pools/deno-deploy/route.js +40 -0
- package/app/.next/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -0
- package/app/.next/server/app/api/proxy-pools/deno-deploy/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/proxy-pools/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
- package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/database/route.js +1 -1
- package/app/.next/server/app/api/settings/database/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
- package/app/.next/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/require-login/route.js +1 -1
- package/app/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/route.js +1 -1
- package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/shutdown/route.js +1 -1
- package/app/.next/server/app/api/shutdown/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tags/route.js +1 -1
- package/app/.next/server/app/api/tags/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
- package/app/.next/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/load/route.js +1 -1
- package/app/.next/server/app/api/translator/load/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/save/route.js +1 -1
- package/app/.next/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/send/route.js +1 -1
- package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/translate/route.js +1 -1
- package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/status/route.js +1 -1
- package/app/.next/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-check/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-disable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-enable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-install/route.js +4 -4
- package/app/.next/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/chart/route.js +1 -1
- package/app/.next/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/history/route.js +1 -1
- package/app/.next/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/logs/route.js +1 -1
- package/app/.next/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/providers/route.js +1 -1
- package/app/.next/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/report/route.js +1 -1
- package/app/.next/server/app/api/usage/report/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/request-details/route.js +1 -1
- package/app/.next/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
- package/app/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/stats/route.js +1 -1
- package/app/.next/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/stream/route.js +2 -2
- package/app/.next/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/audio/voices/route.js +1 -1
- package/app/.next/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/images/generations/route.js +2 -2
- package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
- package/app/.next/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/messages/route.js +1 -1
- package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/models/[kind]/route.js +1 -1
- package/app/.next/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/models/info/route.js +1 -1
- package/app/.next/server/app/api/v1/models/info/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/models/route.js +1 -1
- package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/responses/compact/route.js +1 -1
- package/app/.next/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/responses/route.js +1 -1
- package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/route.js +1 -1
- package/app/.next/server/app/api/v1/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/search/route.js +1 -1
- package/app/.next/server/app/api/v1/search/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/web/fetch/route.js +1 -1
- package/app/.next/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/version/route.js +1 -1
- package/app/.next/server/app/api/version/route.js.nft.json +1 -1
- package/app/.next/server/app/api/version/shutdown/route.js +1 -0
- package/app/.next/server/app/api/version/shutdown/route.js.nft.json +1 -0
- package/app/.next/server/app/api/version/shutdown/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/version/update/route.js +1 -1
- package/app/.next/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next/server/app/callback/page.js +2 -2
- package/app/.next/server/app/callback/page.js.nft.json +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback.html +1 -1
- package/app/.next/server/app/callback.rsc +6 -7
- package/app/.next/server/app/callback.segments/_full.segment.rsc +6 -7
- package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/_index.segment.rsc +5 -6
- package/app/.next/server/app/callback.segments/_tree.segment.rsc +3 -4
- package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next/server/app/dashboard/basic-chat.rsc +7 -8
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +7 -8
- package/app/.next/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/_index.segment.rsc +5 -6
- package/app/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +3 -4
- package/app/.next/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next/server/app/dashboard/cli-tools.rsc +7 -8
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +7 -8
- package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +5 -6
- package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +3 -4
- package/app/.next/server/app/dashboard/combos.html +1 -1
- package/app/.next/server/app/dashboard/combos.rsc +7 -8
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +7 -8
- package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +5 -6
- package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +3 -4
- package/app/.next/server/app/dashboard/endpoint.html +1 -1
- package/app/.next/server/app/dashboard/endpoint.rsc +7 -8
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +7 -8
- package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +5 -6
- package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +3 -4
- package/app/.next/server/app/dashboard/media-providers/web.html +1 -1
- package/app/.next/server/app/dashboard/media-providers/web.rsc +7 -8
- package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +7 -8
- package/app/.next/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +5 -6
- package/app/.next/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +3 -4
- package/app/.next/server/app/dashboard/mitm.html +1 -1
- package/app/.next/server/app/dashboard/mitm.rsc +7 -8
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +7 -8
- package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +5 -6
- package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +3 -4
- package/app/.next/server/app/dashboard/profile.html +1 -1
- package/app/.next/server/app/dashboard/profile.rsc +7 -8
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +7 -8
- package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +5 -6
- package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +3 -4
- package/app/.next/server/app/dashboard/providers/new.html +1 -1
- package/app/.next/server/app/dashboard/providers/new.rsc +7 -8
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +7 -8
- package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +5 -6
- package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +3 -4
- package/app/.next/server/app/dashboard/providers.html +1 -1
- package/app/.next/server/app/dashboard/providers.rsc +7 -8
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +7 -8
- package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +5 -6
- package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +3 -4
- package/app/.next/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.rsc +7 -8
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +7 -8
- package/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +5 -6
- package/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +3 -4
- package/app/.next/server/app/dashboard/quota.html +2 -2
- package/app/.next/server/app/dashboard/quota.rsc +8 -9
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc +8 -9
- package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +5 -6
- package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +3 -4
- package/app/.next/server/app/dashboard/settings/pricing/page.js +2 -2
- package/app/.next/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.rsc +5 -6
- package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -6
- package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +5 -6
- package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +3 -4
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/skills.html +1 -1
- package/app/.next/server/app/dashboard/skills.rsc +7 -8
- package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/skills.segments/_full.segment.rsc +7 -8
- package/app/.next/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/skills.segments/_index.segment.rsc +5 -6
- package/app/.next/server/app/dashboard/skills.segments/_tree.segment.rsc +3 -4
- package/app/.next/server/app/dashboard/translator.html +1 -1
- package/app/.next/server/app/dashboard/translator.rsc +7 -8
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +7 -8
- package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +5 -6
- package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +3 -4
- package/app/.next/server/app/dashboard/usage.html +1 -1
- package/app/.next/server/app/dashboard/usage.rsc +7 -8
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +7 -8
- package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +5 -6
- package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +3 -4
- package/app/.next/server/app/dashboard.html +1 -1
- package/app/.next/server/app/dashboard.rsc +7 -8
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard.segments/_full.segment.rsc +7 -8
- package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.segments/_index.segment.rsc +5 -6
- package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +3 -4
- package/app/.next/server/app/favicon.ico/route.js +1 -1
- package/app/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/app/.next/server/app/index.html +1 -1
- package/app/.next/server/app/index.rsc +5 -6
- package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_full.segment.rsc +5 -6
- package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_index.segment.rsc +5 -6
- package/app/.next/server/app/index.segments/_tree.segment.rsc +3 -4
- package/app/.next/server/app/landing/page.js +2 -2
- package/app/.next/server/app/landing/page.js.nft.json +1 -1
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing.html +1 -1
- package/app/.next/server/app/landing.rsc +5 -6
- package/app/.next/server/app/landing.segments/_full.segment.rsc +5 -6
- package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/_index.segment.rsc +5 -6
- package/app/.next/server/app/landing.segments/_tree.segment.rsc +3 -4
- package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
- package/app/.next/server/app/login/page.js +2 -2
- package/app/.next/server/app/login/page.js.nft.json +1 -1
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login.html +1 -1
- package/app/.next/server/app/login.rsc +6 -7
- package/app/.next/server/app/login.segments/_full.segment.rsc +6 -7
- package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/login.segments/_index.segment.rsc +5 -6
- package/app/.next/server/app/login.segments/_tree.segment.rsc +3 -4
- package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/app/.next/server/app/manifest.webmanifest/route.js +2 -2
- package/app/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next/server/app/page.js +2 -2
- package/app/.next/server/app/page.js.nft.json +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app-paths-manifest.json +31 -18
- package/app/.next/server/chunks/1051.js +1 -0
- package/app/.next/server/chunks/1476.js +1 -0
- package/app/.next/server/chunks/1498.js +1 -0
- package/app/.next/server/chunks/1531.js +1 -0
- package/app/.next/server/chunks/1569.js +1 -0
- package/app/.next/server/chunks/1699.js +1 -0
- package/app/.next/server/chunks/1998.js +1 -0
- package/app/.next/server/chunks/3104.js +43 -0
- package/app/.next/server/chunks/3110.js +56 -5
- package/app/.next/server/chunks/318.js +41 -15
- package/app/.next/server/chunks/3245.js +1 -1
- package/app/.next/server/chunks/3588.js +1 -0
- package/app/.next/server/chunks/365.js +1 -0
- package/app/.next/server/chunks/4013.js +1 -0
- package/app/.next/server/chunks/412.js +5 -5
- package/app/.next/server/chunks/4177.js +1 -0
- package/app/.next/server/chunks/4250.js +1 -1
- package/app/.next/server/chunks/4334.js +1 -1
- package/app/.next/server/chunks/4389.js +1 -0
- package/app/.next/server/chunks/4404.js +1 -0
- package/app/.next/server/chunks/4989.js +2 -2
- package/app/.next/server/chunks/{7861.js → 5221.js} +1 -1
- package/app/.next/server/chunks/5433.js +1 -0
- package/app/.next/server/chunks/5681.js +1 -1
- package/app/.next/server/chunks/5995.js +53 -0
- package/app/.next/server/chunks/6108.js +1 -1
- package/app/.next/server/chunks/6182.js +61 -5
- package/app/.next/server/chunks/6251.js +1 -0
- package/app/.next/server/chunks/6457.js +4 -0
- package/app/.next/server/chunks/6811.js +1 -0
- package/app/.next/server/chunks/6935.js +1 -0
- package/app/.next/server/chunks/7341.js +1 -1
- package/app/.next/server/chunks/7828.js +1 -1
- package/app/.next/server/chunks/7879.js +10 -0
- package/app/.next/server/chunks/7994.js +2 -2
- package/app/.next/server/chunks/8255.js +1 -0
- package/app/.next/server/chunks/8473.js +8 -0
- package/app/.next/server/chunks/8590.js +1 -1
- package/app/.next/server/chunks/8895.js +4 -4
- package/app/.next/server/chunks/8971.js +1 -0
- package/app/.next/server/chunks/9396.js +44 -0
- package/app/.next/server/chunks/9489.js +1 -1
- package/app/.next/server/chunks/9528.js +32 -0
- package/app/.next/server/chunks/9609.js +1 -1
- package/app/.next/server/chunks/9718.js +1 -1
- package/app/.next/server/chunks/9807.js +7 -0
- package/app/.next/server/functions-config-manifest.json +4 -30
- package/app/.next/server/middleware-build-manifest.js +1 -1
- package/app/.next/server/middleware.js +2 -2
- package/app/.next/server/pages/404.html +1 -1
- package/app/.next/server/pages/500.html +1 -1
- package/app/.next/server/server-reference-manifest.js +1 -1
- package/app/.next/server/server-reference-manifest.json +1 -1
- package/app/.next/static/4coXBNn9VafqaS8iRnddC/_buildManifest.js +1 -0
- package/app/.next/static/chunks/1321-4e2ed43c8724597f.js +1 -0
- package/app/.next/static/chunks/1a258343-5938f676ed376386.js +1 -0
- package/app/.next/static/chunks/2589-eefad05f65704f6b.js +3 -0
- package/app/.next/static/chunks/4406-05ac5641472f331e.js +53 -0
- package/app/.next/static/chunks/5497-73d5899267432022.js +7 -0
- package/app/.next/static/chunks/7055-e60e20f43bfbe5f8.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/basic-chat/page-068dda6eab2b9c36.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-67d36bbaeb6af871.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-51957200aaa0e0f7.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-1271df5d411ef013.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-e680a27ecacbfd49.js +59 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-af17247a74fa851d.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/page-8cb9c569a7822a0a.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-8eaef671b213ee9e.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-90eac92387b41cd4.js +6 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-de08b6b9ad238de4.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-b9da35538f423062.js +4 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-1389351bfdd842f9.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-d6fce7b8e1d3fdec.js +3 -0
- package/app/.next/static/chunks/app/(dashboard)/layout-1244fdc593309aa9.js +1 -0
- package/app/.next/static/chunks/app/_global-error/page-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/antigravity-app/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/antigravity-app-v2/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/antigravity-ide/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/antigravity-tools/import/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/antigravity-tools/import-refresh-tokens/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/auth/login/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/auth/logout/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/auth/oidc/callback/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/auth/oidc/start/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/auth/oidc/test/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/auth/status/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/jcode-settings/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/combos/[id]/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/combos/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/donate/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/health/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/init/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/internal/account-health/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/internal/request-detail/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/internal/usage/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/keys/[id]/reset-usage/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/keys/[id]/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/keys/[id]/usage/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/keys/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/locale/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/models/alias/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/models/availability/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/models/custom/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/models/disabled/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/models/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/models/test/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/codex/import-token/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/pricing/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/providers/client/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/providers/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/providers/suggested-models/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/providers/test-batch/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/providers/validate/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/deno-deploy/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/settings/database/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/settings/proxy-test/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/settings/require-login/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/settings/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/shutdown/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/tags/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/translator/console-logs/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/translator/load/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/translator/save/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/translator/send/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/translator/translate/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/disable/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/enable/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/status/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/usage/chart/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/usage/history/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/usage/logs/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/usage/providers/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/usage/report/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/usage/request-details/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/usage/request-logs/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/usage/stats/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/usage/stream/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/v1/api/chat/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/voices/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/v1/embeddings/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/v1/images/generations/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/[kind]/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/info/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/v1/responses/compact/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/v1/responses/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/v1/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/v1/search/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/v1/web/fetch/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/version/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/version/shutdown/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/api/version/update/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/callback/page-1ac4b69a5de26857.js +1 -0
- package/app/.next/static/chunks/app/layout-35b23f7e08fe3978.js +1 -0
- package/app/.next/static/chunks/app/login/page-98aaabbf53ef75f6.js +1 -0
- package/app/.next/static/chunks/app/manifest.webmanifest/route-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/app/page-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/{main-1b1bc8be25c3ce13.js → main-436691d9f611641e.js} +3 -3
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-7a42dc789702ab06.js +1 -0
- package/app/.next/static/chunks/{webpack-a33c667c0bbf302f.js → webpack-c2bac8d80aa27536.js} +1 -1
- package/app/.next/static/css/{081a0afca5a9bd20.css → 0f03023a765dc337.css} +1 -1
- package/app/.next/static/css/237aeed62967f245.css +1 -0
- package/app/.next/static/media/material-symbols-outlined.50fdf095.woff2 +0 -0
- package/app/open-sse/config/appConstants.js +9 -3
- package/app/open-sse/config/kiroConstants.js +262 -0
- package/app/open-sse/config/providerModels.js +221 -20
- package/app/open-sse/config/providers.js +86 -23
- package/app/open-sse/config/runtimeConfig.js +6 -0
- package/app/open-sse/executors/base.js +21 -4
- package/app/open-sse/executors/codex.js +255 -28
- package/app/open-sse/executors/cursor.js +52 -2
- package/app/open-sse/executors/default.js +32 -6
- package/app/open-sse/executors/gemini-cli.js +26 -4
- package/app/open-sse/executors/github.js +16 -2
- package/app/open-sse/executors/kiro.js +37 -0
- package/app/open-sse/executors/opencode.js +6 -1
- package/app/open-sse/executors/qoder.js +420 -43
- package/app/open-sse/handlers/chatCore.js +22 -6
- package/app/open-sse/handlers/embeddingProviders/gemini.js +15 -3
- package/app/open-sse/handlers/imageProviders/codex.js +1 -1
- package/app/open-sse/handlers/imageProviders/index.js +1 -0
- package/app/open-sse/handlers/imageProviders/openai.js +7 -0
- package/app/open-sse/handlers/ttsProviders/genericFormats.js +2 -0
- package/app/open-sse/handlers/ttsProviders/minimax.js +59 -0
- package/app/open-sse/rtk/autodetect.js +9 -2
- package/app/open-sse/rtk/constants.js +2 -1
- package/app/open-sse/rtk/filters/buildOutput.js +127 -0
- package/app/open-sse/rtk/index.js +36 -0
- package/app/open-sse/services/kiroModels.js +332 -0
- package/app/open-sse/services/model.js +73 -0
- package/app/open-sse/services/qoderModels.js +214 -0
- package/app/open-sse/services/tokenRefresh.js +94 -19
- package/app/open-sse/services/usage.js +141 -39
- package/app/open-sse/translator/helpers/openaiHelper.js +3 -0
- package/app/open-sse/translator/request/openai-responses.js +28 -2
- package/app/open-sse/translator/request/openai-to-kiro.js +48 -4
- package/app/open-sse/translator/response/kiro-to-openai.js +10 -4
- package/app/open-sse/translator/response/openai-responses.js +10 -3
- package/app/open-sse/translator/response/openai-to-claude.js +59 -16
- package/app/open-sse/utils/clientDetector.js +6 -3
- package/app/open-sse/utils/debugLog.js +14 -0
- package/app/open-sse/utils/proxyFetch.js +101 -1
- package/app/open-sse/utils/reasoningContentInjector.js +41 -3
- package/app/open-sse/utils/stream.js +15 -3
- package/app/open-sse/utils/streamHandler.js +106 -6
- package/app/open-sse/utils/toolDeduper.js +49 -0
- package/app/open-sse/utils/usageTracking.js +10 -0
- package/app/package.json +7 -5
- package/app/public/i18n/literals/ar.json +4 -6
- package/app/public/i18n/literals/bn.json +4 -6
- package/app/public/i18n/literals/cs.json +4 -6
- package/app/public/i18n/literals/da.json +4 -6
- package/app/public/i18n/literals/de.json +4 -6
- package/app/public/i18n/literals/el.json +4 -6
- package/app/public/i18n/literals/es.json +4 -6
- package/app/public/i18n/literals/fi.json +4 -6
- package/app/public/i18n/literals/fr.json +4 -6
- package/app/public/i18n/literals/he.json +4 -6
- package/app/public/i18n/literals/hi.json +4 -6
- package/app/public/i18n/literals/hu.json +4 -6
- package/app/public/i18n/literals/id.json +4 -6
- package/app/public/i18n/literals/it.json +4 -6
- package/app/public/i18n/literals/ja.json +4 -6
- package/app/public/i18n/literals/ko.json +4 -6
- package/app/public/i18n/literals/nl.json +4 -6
- package/app/public/i18n/literals/no.json +4 -6
- package/app/public/i18n/literals/pl.json +4 -6
- package/app/public/i18n/literals/pt-BR.json +4 -6
- package/app/public/i18n/literals/pt-PT.json +4 -6
- package/app/public/i18n/literals/ro.json +5 -7
- package/app/public/i18n/literals/ru.json +4 -6
- package/app/public/i18n/literals/sv.json +4 -6
- package/app/public/i18n/literals/th.json +4 -6
- package/app/public/i18n/literals/tl.json +4 -6
- package/app/public/i18n/literals/tr.json +4 -6
- package/app/public/i18n/literals/uk.json +4 -6
- package/app/public/i18n/literals/ur.json +4 -6
- package/app/public/i18n/literals/vi.json +6 -8
- package/app/public/i18n/literals/zh-CN.json +5 -29
- package/app/public/i18n/literals/zh-TW.json +4 -6
- package/app/public/providers/amp.png +0 -0
- package/app/public/providers/deepseek-tui.png +0 -0
- package/app/public/providers/jcode.png +0 -0
- package/app/public/providers/qoder.png +0 -0
- package/app/public/providers/xiaomi-tokenplan.png +0 -0
- package/app/server.js +1 -1
- package/app/src/lib/oauth/services/qoder.js +216 -0
- package/app/src/lib/oauth/services/xai.js +238 -0
- package/app/src/lib/updater/updater.js +25 -0
- package/app/src/mitm/cert/install.js +123 -153
- package/app/src/mitm/config.js +34 -2
- package/app/src/mitm/handlers/antigravity.js +2 -1
- package/app/src/mitm/logger.js +11 -1
- package/app/src/shared/constants/cliTools.js +146 -29
- package/app/src/shared/constants/config.js +9 -2
- package/app/src/shared/constants/coworkPlugins.js +64 -944
- package/app/src/shared/constants/pricing.js +5 -2
- package/app/src/shared/constants/providers.js +71 -14
- package/app/src/shared/constants/ttsProviders.js +16 -0
- package/package.json +1 -1
- package/app/.next/server/app/api/cloud/auth/route.js +0 -1
- package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +0 -1
- package/app/.next/server/app/api/cloud/credentials/update/route.js +0 -1
- package/app/.next/server/app/api/cloud/model/resolve/route.js +0 -1
- package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +0 -1
- package/app/.next/server/app/api/cloud/models/alias/route.js +0 -1
- package/app/.next/server/app/api/tunnel/tailscale-login/route.js +0 -1
- package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js +0 -2
- package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route_client-reference-manifest.js +0 -1
- package/app/.next/server/chunks/1985.js +0 -23
- package/app/.next/server/chunks/2417.js +0 -1
- package/app/.next/server/chunks/2506.js +0 -3
- package/app/.next/server/chunks/2549.js +0 -1
- package/app/.next/server/chunks/2583.js +0 -1
- package/app/.next/server/chunks/3646.js +0 -1
- package/app/.next/server/chunks/3855.js +0 -1
- package/app/.next/server/chunks/4084.js +0 -35
- package/app/.next/server/chunks/436.js +0 -1
- package/app/.next/server/chunks/4632.js +0 -1
- package/app/.next/server/chunks/5296.js +0 -1
- package/app/.next/server/chunks/5434.js +0 -1
- package/app/.next/server/chunks/5627.js +0 -23
- package/app/.next/server/chunks/6114.js +0 -1
- package/app/.next/server/chunks/7595.js +0 -1
- package/app/.next/server/chunks/7924.js +0 -1
- package/app/.next/server/chunks/8491.js +0 -1
- package/app/.next/server/chunks/8760.js +0 -1
- package/app/.next/server/chunks/8838.js +0 -1
- package/app/.next/static/DMu6oAfCAJu7LOUJpB89l/_buildManifest.js +0 -1
- package/app/.next/static/chunks/1321-bd1e73c270cd20da.js +0 -1
- package/app/.next/static/chunks/1a258343-4878413fb430abba.js +0 -1
- package/app/.next/static/chunks/2589-1e9bb7a900f2c1b0.js +0 -3
- package/app/.next/static/chunks/5497-c5298509cc559792.js +0 -7
- package/app/.next/static/chunks/7844-acf8217cdcb39d9a.js +0 -23
- package/app/.next/static/chunks/app/(dashboard)/dashboard/basic-chat/page-b279697882f0ed2a.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-40604134b500e7ee.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-de34ae04d784597b.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-4c2d312eba93f6fa.js +0 -53
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-2a196db0213415bf.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/page-08e3714a029236f2.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-b6595aeb7c5b386f.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-48670924de911859.js +0 -4
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-280dceda93ddf1cb.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-d1fe33a3d1c02c4e.js +0 -2
- package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-6420e67a5bd79512.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-1a126c66d5e5f689.js +0 -3
- package/app/.next/static/chunks/app/(dashboard)/layout-27244e694148142c.js +0 -1
- package/app/.next/static/chunks/app/_global-error/page-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/antigravity-app/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/antigravity-app-v2/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/antigravity-ide/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/antigravity-tools/import/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/antigravity-tools/import-refresh-tokens/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/auth/login/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/auth/logout/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/auth/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/credentials/update/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/model/resolve/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/models/alias/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/combos/[id]/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/combos/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/health/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/init/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/internal/account-health/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/internal/request-detail/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/internal/usage/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/keys/[id]/reset-usage/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/keys/[id]/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/keys/[id]/usage/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/keys/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/locale/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/models/alias/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/models/availability/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/models/custom/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/models/disabled/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/models/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/models/test/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/pricing/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/providers/client/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/providers/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/providers/suggested-models/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/providers/test-batch/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/providers/validate/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/settings/database/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/settings/proxy-test/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/settings/require-login/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/settings/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/shutdown/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/tags/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/translator/console-logs/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/translator/load/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/translator/save/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/translator/send/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/translator/translate/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/disable/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/enable/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/status/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/usage/chart/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/usage/history/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/usage/logs/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/usage/providers/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/usage/report/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/usage/request-details/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/usage/request-logs/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/usage/stats/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/usage/stream/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/v1/api/chat/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/voices/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/v1/embeddings/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/v1/images/generations/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/[kind]/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/info/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/v1/responses/compact/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/v1/responses/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/v1/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/v1/search/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/v1/web/fetch/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/version/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/api/version/update/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/callback/page-2d6169978b33b3bc.js +0 -1
- package/app/.next/static/chunks/app/layout-fa54526b5d7255bf.js +0 -1
- package/app/.next/static/chunks/app/login/page-69f6d8a6f709da51.js +0 -1
- package/app/.next/static/chunks/app/manifest.webmanifest/route-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/app/page-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-fb42fdff0ddaa89d.js +0 -1
- package/app/.next/static/css/5903295427476216.css +0 -1
- /package/app/.next/static/{DMu6oAfCAJu7LOUJpB89l → 4coXBNn9VafqaS8iRnddC}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
exports.id=7994,exports.ids=[7994],exports.modules={43:(a,b,c)=>{Promise.resolve().then(c.bind(c,51747))},51747:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/cuongquach/projects/vibe/n9router/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/cuongquach/projects/vibe/n9router/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js","default")},54603:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>e});var d=c(19713);async function e(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt";try{let a=(0,d.machineIdSync)();return(await Promise.resolve().then(c.t.bind(c,55511,23))).createHash("sha256").update(a+b).digest("hex").substring(0,16)}catch(a){return console.log("Error getting machine ID:",a),crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){let b=16*Math.random()|0;return("x"==a?b:3&b|8).toString(16)})}}},60409:(a,b,c)=>{"use strict";c.d(b,{default:()=>A});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(50412),i=c(50377),j=c(95514),k=c(99070),l=c(95145);let m=[{field:"inputTokens5h",label:"Tokens / 5h",placeholder:"e.g. 500000"},{field:"inputTokens24h",label:"Tokens / 24h",placeholder:"e.g. 2000000"},{field:"cost5h",label:"Cost / 5h ($)",placeholder:"e.g. 1.00",isCost:!0},{field:"cost24h",label:"Cost / 24h ($)",placeholder:"e.g. 5.00",isCost:!0}],n=[{label:"15 minutes",ms:9e5},{label:"1 hour",ms:36e5},{label:"6 hours",ms:216e5},{label:"12 hours",ms:432e5},{label:"24 hours",ms:864e5},{label:"7 days",ms:6048e5},{label:"30 days",ms:2592e6}],o=[{label:"All recorded time",windowMs:null},{label:"Last 5 hours",windowMs:18e6},{label:"Last 24 hours",windowMs:864e5},{label:"Last 7 days",windowMs:6048e5},{label:"Last 30 days",windowMs:2592e6}];function p({label:a,value:b,limit:c,isCost:e}){if(!c)return null;let f=Math.min(100,b/c*100),g=f>=100?"bg-red-500":f>=80?"bg-amber-500":"bg-primary",h=e?`$${b.toFixed(4)} / $${c.toFixed(2)} (${f.toFixed(0)}%)`:`${b.toLocaleString()} / ${c.toLocaleString()} (${f.toFixed(0)}%)`;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex justify-between text-xs",children:[(0,d.jsx)("span",{className:"text-text-muted",children:a}),(0,d.jsx)("span",{className:"text-text-muted",children:h})]}),(0,d.jsx)("div",{className:"h-1.5 rounded-full bg-black/5 dark:bg-white/5 overflow-hidden",children:(0,d.jsx)("div",{className:`h-full rounded-full ${g}`,style:{width:`${f}%`}})})]})}function q(a){let b=Math.floor(a/6e4),c=Math.floor(a/36e5),d=Math.floor(a/864e5);return d>0?`${d}d`:c>0?`${c}h`:`${b}m`}function r({apiKey:a,usageData:b,limitDraft:c,setLimitDraft:e,saving:f,onSave:g,onCancel:h,onResetUsage:i,resetHistory:j,resettingUsage:l}){let n=b?.usage||{},o=a.limits;return(0,d.jsxs)("div",{className:"mb-3 rounded-lg border border-black/8 dark:border-white/8 bg-bg-subtle p-4",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,d.jsx)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wide",children:"Usage Limits"}),(0,d.jsx)("span",{className:"text-xs text-text-muted",children:"Leave blank = unlimited"})]}),b&&o&&(0,d.jsxs)("div",{className:"mb-4 space-y-2",children:[["5h","24h"].map(a=>{let b="5h"===a?n.inputTokens5h||0:n.inputTokens24h||0,c="5h"===a?n.cost5h||0:n.cost24h||0,e="5h"===a?o.inputTokens5h:o.inputTokens24h,f="5h"===a?o.cost5h:o.cost24h;return e||f?(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)(p,{label:`${a} tokens`,value:b,limit:e}),(0,d.jsx)(p,{label:`${a} cost`,value:c,limit:f,isCost:!0})]},a):null}),o.windows&&o.windows.map((a,c)=>{let e=`tokens_${a.durationMs}`,f=`cost_${a.durationMs}`,g=b.windowUsage?.[e]||0,h=b.windowUsage?.[f]||0;if(!(a.inputTokens||a.cost))return null;let i=a.label||q(a.durationMs);return(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)(p,{label:`${i} tokens`,value:g,limit:a.inputTokens}),(0,d.jsx)(p,{label:`${i} cost`,value:h,limit:a.cost,isCost:!0})]},`custom-${c}`)})]}),(0,d.jsx)("div",{className:"grid grid-cols-2 gap-3 mb-3",children:m.map(({field:a,label:b,placeholder:f,isCost:g})=>(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-xs text-text-muted mb-1",children:b}),(0,d.jsx)("input",{type:"number",min:"0",step:g?"0.01":"1",value:c[a]??"",onChange:b=>e(c=>({...c,[a]:b.target.value})),placeholder:f,className:"w-full px-2 py-1.5 text-xs border border-black/10 dark:border-white/10 rounded-lg bg-bg text-text-main focus:outline-none focus:ring-1 focus:ring-primary/50"})]},a))}),(0,d.jsx)(s,{limitDraft:c,setLimitDraft:e}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(k.default,{size:"sm",onClick:g,disabled:f,children:f?"Saving…":"Save limits"}),(0,d.jsx)(k.default,{size:"sm",variant:"ghost",onClick:h,children:"Cancel"}),i&&(0,d.jsx)(t,{keyName:a.name,onResetUsage:i,resettingUsage:l})]}),j&&j.length>0&&(0,d.jsx)(u,{history:j})]})}function s({limitDraft:a,setLimitDraft:b}){let[c,f]=(0,e.useState)(!1),[g,h]=(0,e.useState)(n[1].ms),i=a.windows||[],j=(a,c,d)=>{b(b=>({...b,windows:b.windows.map((b,e)=>e===a?{...b,[c]:d}:b)}))},l=new Set(i.map(a=>a.durationMs)),m=n.filter(a=>!l.has(a.ms));return(0,d.jsxs)("div",{className:"mb-4 border-t border-black/5 dark:border-white/5 pt-3",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,d.jsx)("span",{className:"text-xs font-medium text-text-muted",children:"Custom Time Windows"}),!c&&m.length>0&&(0,d.jsxs)("button",{onClick:()=>f(!0),className:"text-xs text-primary hover:text-primary/80 flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"add"}),"Add window"]})]}),i.length>0&&(0,d.jsx)("div",{className:"space-y-2 mb-3",children:i.map((a,c)=>(0,d.jsxs)("div",{className:"flex items-center gap-2 p-2 rounded bg-bg-secondary/50",children:[(0,d.jsx)("span",{className:"text-xs font-medium w-20 shrink-0",children:a.label||q(a.durationMs)}),(0,d.jsxs)("div",{className:"flex-1 grid grid-cols-2 gap-2",children:[(0,d.jsx)("input",{type:"number",min:"0",step:"1",value:a.inputTokens??"",onChange:a=>j(c,"inputTokens",a.target.value),placeholder:"Tokens",className:"w-full px-2 py-1 text-xs border border-black/10 dark:border-white/10 rounded bg-bg text-text-main focus:outline-none focus:ring-1 focus:ring-primary/50"}),(0,d.jsx)("input",{type:"number",min:"0",step:"0.01",value:a.cost??"",onChange:a=>j(c,"cost",a.target.value),placeholder:"Cost $",className:"w-full px-2 py-1 text-xs border border-black/10 dark:border-white/10 rounded bg-bg text-text-main focus:outline-none focus:ring-1 focus:ring-primary/50"})]}),(0,d.jsx)("button",{onClick:()=>{b(a=>({...a,windows:a.windows.filter((a,b)=>b!==c)}))},className:"p-1 text-red-500 hover:bg-red-500/10 rounded",title:"Remove window",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"delete"})})]},c))}),c&&m.length>0&&(0,d.jsxs)("div",{className:"flex items-center gap-2 p-2 rounded bg-bg-secondary/50",children:[(0,d.jsx)("select",{value:g,onChange:a=>h(Number(a.target.value)),className:"flex-1 px-2 py-1 text-xs border border-black/10 dark:border-white/10 rounded bg-bg text-text-main focus:outline-none focus:ring-1 focus:ring-primary/50",children:m.map(a=>(0,d.jsx)("option",{value:a.ms,children:a.label},a.ms))}),(0,d.jsx)(k.default,{size:"sm",onClick:()=>{let a=n.find(a=>a.ms===g);if(!a||i.some(a=>a.durationMs===g))return;let c={durationMs:g,label:a.label,inputTokens:"",cost:""};b(a=>({...a,windows:[...a.windows||[],c]})),f(!1)},children:"Add"}),(0,d.jsx)(k.default,{size:"sm",variant:"ghost",onClick:()=>f(!1),children:"Cancel"})]}),0===i.length&&!c&&(0,d.jsx)("p",{className:"text-xs text-text-muted italic",children:"No custom windows configured"})]})}function t({keyName:a,onResetUsage:b,resettingUsage:c}){let[f,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(o[0]),j=async()=>{await b(h.windowMs,h.label),g(!1)};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(k.default,{size:"sm",variant:"ghost",onClick:()=>g(!0),disabled:c,className:"ml-auto text-amber-600 dark:text-amber-400 hover:bg-amber-500/10 border-amber-500/30",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"restart_alt"}),"Reset usage"]}),(0,d.jsx)(l.default,{isOpen:f,onClose:()=>!c&&g(!1),title:"Reset Usage",size:"sm",footer:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(k.default,{variant:"ghost",onClick:()=>g(!1),disabled:c,children:"Cancel"}),(0,d.jsx)(k.default,{variant:"danger",onClick:j,loading:c,children:"Reset"})]}),children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("p",{className:"text-sm text-text-muted",children:["Clear usage counters for ",(0,d.jsx)("strong",{className:"text-text-main",children:a}),". This deletes the underlying request records for the selected window — limits will read zero until new requests come in."]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-xs font-medium text-text-muted mb-1.5",children:"Time window to clear"}),(0,d.jsx)("div",{className:"flex flex-col gap-1",children:o.map(a=>(0,d.jsxs)("label",{className:`flex items-center gap-2.5 px-3 py-2 rounded-lg cursor-pointer border transition-colors ${h.label===a.label?"border-primary/40 bg-primary/5 text-text-main":"border-transparent hover:bg-black/5 dark:hover:bg-white/5 text-text-muted"}`,children:[(0,d.jsx)("input",{type:"radio",name:"reset-window",className:"accent-primary",checked:h.label===a.label,onChange:()=>i(a)}),(0,d.jsx)("span",{className:"text-sm",children:a.label})]},a.label))})]}),(0,d.jsxs)("div",{className:"flex items-start gap-2 px-3 py-2 rounded-lg bg-amber-500/8 border border-amber-500/20 text-amber-700 dark:text-amber-400",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[15px] mt-px shrink-0",children:"warning"}),(0,d.jsx)("p",{className:"text-xs",children:"This action cannot be undone. The deleted records will be logged in reset history."})]})]})})]})}function u({history:a}){let[b,c]=(0,e.useState)(!1),f=b?a:a.slice(0,3);return(0,d.jsxs)("div",{className:"mt-4 pt-3 border-t border-black/5 dark:border-white/5",children:[(0,d.jsxs)("button",{onClick:()=>c(a=>!a),className:"flex items-center gap-1 text-xs font-medium text-text-muted hover:text-text-main transition-colors mb-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"history"}),"Reset history (",a.length,")",(0,d.jsx)("span",{className:"material-symbols-outlined text-[12px] ml-auto",children:b?"expand_less":"expand_more"})]}),(0,d.jsxs)("div",{className:"space-y-1",children:[f.map(a=>(0,d.jsxs)("div",{className:"flex items-center justify-between text-xs py-1.5 px-2 rounded bg-black/3 dark:bg-white/3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[12px] text-amber-500 shrink-0",children:"restart_alt"}),(0,d.jsx)("span",{className:"text-text-muted truncate",children:a.window_label})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3 shrink-0 ml-2",children:[a.tokens_cleared>0&&(0,d.jsxs)("span",{className:"text-text-muted font-mono",children:[a.tokens_cleared>=1e3?`${(a.tokens_cleared/1e3).toFixed(0)}k`:a.tokens_cleared," tok"]}),a.cost_cleared>0&&(0,d.jsxs)("span",{className:"text-text-muted font-mono",children:["$",a.cost_cleared.toFixed(4)]}),(0,d.jsx)("span",{className:"text-text-muted/60",children:new Date(a.reset_at).toLocaleDateString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})})]})]},a.id)),!b&&a.length>3&&(0,d.jsxs)("button",{onClick:()=>c(!0),className:"text-xs text-primary hover:underline mt-1",children:["Show ",a.length-3," more…"]})]})]})}function v(a){return null==a?"—":a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e3?`${(a/1e3).toFixed(0)}k`:String(Math.floor(a))}function w({limits:a,usageData:b}){if(!a)return null;let c=b?.usage||null,e=b?.windowUsage||{},f=[a.inputTokens5h&&{label:"5h tok",cur:c?.inputTokens5h,max:a.inputTokens5h},a.inputTokens24h&&{label:"24h tok",cur:c?.inputTokens24h,max:a.inputTokens24h},a.cost5h&&{label:"5h $",cur:c?.cost5h,max:a.cost5h,isCost:!0},a.cost24h&&{label:"24h $",cur:c?.cost24h,max:a.cost24h,isCost:!0}].filter(Boolean);if(a.windows&&Array.isArray(a.windows))for(let b of a.windows){if(!b.durationMs)continue;let a=`tokens_${b.durationMs}`,c=`cost_${b.durationMs}`,d=function(a){let b=Math.floor(a/6e4),c=Math.floor(a/36e5),d=Math.floor(a/864e5);return d>0?`${d}d`:c>0?`${c}h`:`${b}m`}(b.durationMs);b.inputTokens&&f.push({label:`${d} tok`,cur:e[a],max:b.inputTokens}),b.cost&&f.push({label:`${d} $`,cur:e[c],max:b.cost,isCost:!0})}return 0===f.length?null:(0,d.jsx)("div",{className:"flex items-center gap-1 mt-1 flex-wrap",children:f.map(({label:a,cur:b,max:c,isCost:e})=>{let f=null!=b?Math.min(100,b/c*100):null,g=e?`$${null!=b?b.toFixed(2):"—"}/$${c.toFixed(2)}`:`${null!=b?v(b):"—"}/${v(c)}`;return(0,d.jsxs)("span",{className:`text-[10px] px-1.5 py-px rounded font-mono whitespace-nowrap ${null==f?"bg-black/5 dark:bg-white/5 text-text-muted":f>=100?"bg-red-500/15 text-red-500":f>=80?"bg-amber-500/15 text-amber-500":"bg-emerald-500/10 text-emerald-600 dark:text-emerald-400"}`,children:[a," ",g]},a)})})}function x({apiKey:a,visibleKeys:b,toggleKeyVisibility:c,copied:f,copy:g,handleToggleKey:h,handleDeleteKey:i,handleRenameKey:k,editingLimits:l,keyUsage:m,limitDraft:n,setLimitDraft:o,savingLimits:p,handleOpenLimits:q,handleSaveLimits:s,setEditingLimits:t,resetHistory:u,resettingUsage:v,handleResetUsage:y}){var z;let A=b.has(a.id),B=!1===a.isActive,[C,D]=(0,e.useState)(!1),[E,F]=(0,e.useState)(""),G=(0,e.useRef)(null),H=()=>{let b=E.trim();b&&b!==a.name&&k(a.id,b),D(!1)},I=()=>D(!1);return(0,d.jsxs)("div",{className:"flex flex-col border-b border-black/5 dark:border-white/5 last:border-b-0",children:[(0,d.jsxs)("div",{className:`group flex items-center justify-between py-3 ${B?"opacity-60":""}`,children:[(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[C?(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.jsx)("input",{ref:G,value:E,onChange:a=>F(a.target.value),onKeyDown:a=>{"Enter"===a.key&&H(),"Escape"===a.key&&I()},className:"text-sm font-medium bg-transparent border-b border-primary outline-none w-40 py-0"}),(0,d.jsx)("button",{onClick:H,className:"p-1 text-primary hover:bg-primary/10 rounded",title:"Save",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"check"})}),(0,d.jsx)("button",{onClick:I,className:"p-1 text-text-muted hover:bg-black/5 dark:hover:bg-white/5 rounded",title:"Cancel",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]}):(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:a.name}),(0,d.jsx)("button",{onClick:()=>{F(a.name),D(!0)},className:"p-1 text-text-muted hover:text-primary opacity-0 group-hover:opacity-100 transition-all rounded hover:bg-black/5 dark:hover:bg-white/5",title:"Rename key",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"edit"})})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[(0,d.jsx)("code",{className:"text-xs text-text-muted font-mono",children:A?a.key:(z=a.key)?`****${z.slice(-4)}`:""}),(0,d.jsx)("button",{onClick:()=>c(a.id),className:"p-1 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary opacity-0 group-hover:opacity-100 transition-all",title:A?"Hide key":"Show key",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:A?"visibility_off":"visibility"})}),(0,d.jsx)("button",{onClick:()=>g(a.key,a.id),className:"p-1 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary opacity-0 group-hover:opacity-100 transition-all",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:f===a.id?"check":"content_copy"})})]}),(0,d.jsxs)("p",{className:"text-xs text-text-muted mt-1",children:["Created ",new Date(a.createdAt).toLocaleDateString()]}),B&&(0,d.jsx)("p",{className:"text-xs text-orange-500 mt-1",children:"Paused"}),(0,d.jsx)(w,{limits:a.limits,usageData:m[a.id]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(j.default,{size:"sm",checked:a.isActive??!0,onChange:b=>{a.isActive&&!b?confirm(`Pause API key "${a.name}"?
|
|
1
|
+
exports.id=7994,exports.ids=[7994],exports.modules={43:(a,b,c)=>{Promise.resolve().then(c.bind(c,51747))},43173:(a,b,c)=>{"use strict";c.d(b,{default:()=>l});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(50412),i=c(50377);let j=[{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"}],k=[{id:"lite",label:"Lite",desc:"Drop filler, keep grammar"},{id:"full",label:"Full",desc:"Drop articles, fragments OK"},{id:"ultra",label:"Ultra",desc:"Telegraphic, max compression"}];function l({machineId:a}){let[b,c]=(0,e.useState)([]),[f,g]=(0,e.useState)(!0),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(""),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)(null),[y,z]=(0,e.useState)(!1),[A,B]=(0,e.useState)(!0),[C,D]=(0,e.useState)(!0),[E,F]=(0,e.useState)(!1),[G,H]=(0,e.useState)(!0),[I,J]=(0,e.useState)(!1),[K,L]=(0,e.useState)("full"),[M,N]=(0,e.useState)(!0),[O,P]=(0,e.useState)(!1),[Q,R]=(0,e.useState)(!1),[S,T]=(0,e.useState)(""),[U,V]=(0,e.useState)(""),[W,X]=(0,e.useState)(!1),[Y,Z]=(0,e.useState)(""),[$,_]=(0,e.useState)(null),[aa,ab]=(0,e.useState)(!1),[ac,ad]=(0,e.useState)(!1),[ae,af]=(0,e.useState)(!1),[ag,ah]=(0,e.useState)(!1),[ai,aj]=(0,e.useState)(""),[ak,al]=(0,e.useState)(!1),[am,an]=(0,e.useState)(""),[ao,ap]=(0,e.useState)(null),[aq,ar]=(0,e.useState)(""),[as,at]=(0,e.useState)(""),[au,av]=(0,e.useState)(null),[aw,ax]=(0,e.useState)(!1),[ay,az]=(0,e.useState)([]),[aA,aB]=(0,e.useState)(""),[aC,aD]=(0,e.useState)(!1),[aE,aF]=(0,e.useState)(!1),[aG,aH]=(0,e.useState)(!1),aI=(0,e.useRef)(null);(0,e.useRef)(0),(0,e.useRef)(0),(0,e.useRef)(!1),(0,e.useRef)(!1),(0,e.useRef)(!1),(0,e.useRef)(!1);let[aJ,aK]=(0,e.useState)(!1),[aL,aM]=(0,e.useState)(!1),[aN,aO]=(0,e.useState)(new Set),{copied:aP,copy:aQ}=(0,i.C)(),aR=!A||!C,aS=A?"Change the default dashboard password before activating the tunnel.":'Enable "Require login" and set a custom password before activating the tunnel.';(0,e.useCallback)((a,b,c,d,e,f)=>{b.current?(c.current=0,d(!0),e.current||(e.current=!0,f(!0))):(c.current+=1,c.current>=5&&d(!1))},[]);let aT=async a=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({tunnelDashboardAccess:a})})).ok&&F(a)}catch(a){console.log("Error updating tunnelDashboardAccess:",a)}},aU=async a=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({requireApiKey:a})})).ok&&z(a)}catch(a){console.log("Error updating requireApiKey:",a)}},aV=async a=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rtkEnabled:a})})).ok&&H(a)}catch(a){console.log("Error updating rtkEnabled:",a)}},aW=async a=>{try{await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}catch(a){console.log("Error updating setting:",a)}},aX=async()=>{try{let a=await fetch("/api/keys"),b=await a.json();a.ok&&c(b.keys||[])}catch(a){console.log("Error fetching data:",a)}finally{g(!1)}},aY=async(...a)=>{X(!0),Z("Waiting for tunnel ready...");let b=a.filter(Boolean).map(a=>`${a}/api/health`),c=Date.now();for(;Date.now()-c<3e5;){if(await new Promise(a=>setTimeout(a,2e3)),await Promise.any(b.map(async a=>{if((await fetch(a,{mode:"cors",cache:"no-store"})).ok)return!0;throw Error("not ready")})).catch(()=>!1))return P(!0),X(!1),Z(""),!0;if((Date.now()-c)%1e4<2e3)try{let a=await fetch("/api/tunnel/status");if(a.ok){let b=await a.json();if(!b.tunnel?.enabled)return _({type:"error",message:"Tunnel process stopped unexpectedly."}),X(!1),Z(""),!1}}catch{}}return _({type:"error",message:"Tunnel created but not reachable. Please try again."}),X(!1),Z(""),!1},aZ=async()=>{ab(!1),X(!0),_(null),Z("Creating tunnel...");let a=!0;(async()=>{for(;a;){try{let b=await fetch("/api/tunnel/status");if(b.ok){let c=await b.json();c.download?.downloading?Z(`Downloading cloudflared... ${c.download.progress}%`):a&&Z("Creating tunnel...")}}catch{}await new Promise(a=>setTimeout(a,1e3))}})();try{let b=await fetch("/api/tunnel/enable",{method:"POST"});a=!1;let c=await b.json();if(!b.ok)return void _({type:"error",message:c.error||"Failed to enable tunnel"});let d=c.tunnelUrl;if(!d)return void _({type:"error",message:"No tunnel URL returned"});T(d),V(c.publicUrl||""),await aY(c.publicUrl,d)}catch(a){_({type:"error",message:a.message})}finally{a=!1,X(!1),Z("")}},a$=async()=>{X(!0),_(null);try{let a=await fetch("/api/tunnel/disable",{method:"POST"}),b=await a.json();a.ok?(P(!1),T(""),ad(!1),_({type:"success",message:"Tunnel disabled"})):_({type:"error",message:b.error||"Failed to disable tunnel"})}catch(a){_({type:"error",message:a.message})}finally{X(!1)}},a_=async()=>{av(null);try{let a=await fetch("/api/tunnel/tailscale-check");if(a.ok){let b=await a.json();return av(b.installed),b}}catch{}return av(!1),{installed:!1}},a0=async()=>{ax(!0),ap(null),az([]);try{let a=await fetch("/api/tunnel/tailscale-install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sudoPassword:aA})});aB("");let b=a.body.getReader(),c=new TextDecoder,d="";for(;;){let{done:a,value:e}=await b.read();if(a)break;let f=(d+=c.decode(e,{stream:!0})).split("\n\n");for(let a of(d=f.pop()||"",f)){let b=a.split("\n"),c="progress",d=null;for(let a of b)if(a.startsWith("event: ")&&(c=a.slice(7).trim()),a.startsWith("data: "))try{d=JSON.parse(a.slice(6))}catch{}if(d)if("progress"===c)az(a=>[...a.slice(-50),d.message]);else if("done"===c){av(!0),ax(!1),aF(!1),a4();return}else"error"===c&&ap({type:"error",message:d.error||"Install failed"})}}}catch(a){ap({type:"error",message:a.message})}finally{ax(!1)}},a1=async a=>{an("Waiting for Tailscale ready...");let b=`${a}/api/health`,c=Date.now();for(;Date.now()-c<3e5;){await new Promise(a=>setTimeout(a,2e3));try{let a=await fetch(b,{mode:"no-cors",cache:"no-store"});if(a.ok||"opaque"===a.type)return!0}catch{}}return!1},a2=(a,b)=>{ar(a),at(b)},a3=()=>{ar(""),at("")},a4=async()=>{aF(!1),aD(!0),al(!0),ap(null),an("Connecting..."),a3();try{let a=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),b=await a.json();if(a.ok&&b.success){aj(b.tunnelUrl||"");let a=await a1(b.tunnelUrl);af(!0),ap(a?null:{type:"warning",message:"Connected but not reachable yet."});return}if(b.needsLogin&&b.authUrl){a2(b.authUrl,"Open Login Page"),an('Login required — click "Open Login Page" to continue');for(let a=0;a<40;a++){await new Promise(a=>setTimeout(a,3e3));try{let a=await fetch("/api/tunnel/tailscale-check");if(a.ok&&(await a.json()).loggedIn){a3(),an("Starting funnel...");let a=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),b=await a.json();if(a.ok&&b.success){aj(b.tunnelUrl||"");let a=await a1(b.tunnelUrl);af(!0),ap(a?null:{type:"warning",message:"Connected but not reachable yet."})}else b.funnelNotEnabled&&b.enableUrl?await a5(b.enableUrl):ap({type:"error",message:b.error||"Failed to start funnel"});return}}catch{}}a3(),ap({type:"error",message:"Login timed out. Please try again."});return}if(b.funnelNotEnabled&&b.enableUrl)return void await a5(b.enableUrl);ap({type:"error",message:b.error||"Failed to connect"})}catch(a){ap({type:"error",message:a.message})}finally{al(!1),aD(!1),an(""),a3()}},a5=async a=>{a2(a,"Open Funnel Settings"),an('Click "Open Funnel Settings" to enable Funnel...');for(let a=0;a<40;a++){await new Promise(a=>setTimeout(a,3e3));try{let a=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),b=await a.json();if(a.ok&&b.success){a3(),aj(b.tunnelUrl||"");let a=await a1(b.tunnelUrl);af(!0),ap(a?null:{type:"warning",message:"Connected but not reachable yet."});return}if(b.funnelNotEnabled)continue;if(b.error){a3(),ap({type:"error",message:b.error});return}}catch{}}a3(),ap({type:"error",message:"Timed out waiting for Funnel to be enabled."})},a6=async()=>{al(!0),ap(null);try{let a=await fetch("/api/tunnel/tailscale-disable",{method:"POST"}),b=await a.json();a.ok?(af(!1),aj(""),aH(!1),ap({type:"success",message:"Tailscale disabled"})):ap({type:"error",message:b.error||"Failed to disable Tailscale"})}catch(a){ap({type:"error",message:a.message})}finally{al(!1)}},a7=async()=>{ap(null),az([]);let a=await a_();a?.installed&&a?.hasCachedPassword?a4():aF(!0)},a8=async()=>{if(s.trim())try{let a=await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:s})}),b=await a.json();a.ok&&(v(b.key),await aX(),t(""),r(!1))}catch(a){console.log("Error creating key:",a)}},a9=async a=>{x({title:"Delete API Key",message:"Delete this API key?",onConfirm:async()=>{x(null);try{(await fetch(`/api/keys/${a}`,{method:"DELETE"})).ok&&(c(b.filter(b=>b.id!==a)),aO(b=>{let c=new Set(b);return c.delete(a),c}))}catch(a){console.log("Error deleting key:",a)}}})},ba=async(a,b)=>{try{(await fetch(`/api/keys/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:b})})).ok&&c(c=>c.map(c=>c.id===a?{...c,isActive:b}:c))}catch(a){console.log("Error toggling key:",a)}},[bb,bc]=(0,e.useState)("/v1");return f?(0,d.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,d.jsx)(h.Qv,{}),(0,d.jsx)(h.Qv,{})]}):(0,d.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,d.jsxs)(h.Zp,{children:[(0,d.jsxs)("h2",{className:"text-lg font-semibold mb-4 flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary",children:"api"}),"API Endpoint"]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsx)(m,{label:"Local",url:bb,copyId:"local_url",copied:aP,onCopy:aQ}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[88px] text-center ${O?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:"Tunnel"}),O&&!W&&Q?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(h.pd,{value:`${U||S}/v1`,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,d.jsx)("button",{onClick:()=>aQ(`${U||S}/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,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"tunnel_url"===aP?"check":"content_copy"})}),(0,d.jsx)("button",{onClick:()=>ad(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tunnel",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):!O||W||Q?W?(0,d.jsxs)(d.Fragment,{children:[(0,d.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,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),Y||"Creating tunnel..."]}),(0,d.jsx)("button",{onClick:()=>{X(!1),Z("")},className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):$?.type==="error"?(0,d.jsxs)(d.Fragment,{children:[(0,d.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,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"error"}),$.message]}),(0,d.jsx)(h.$n,{size:"sm",icon:"cloud_upload",onClick:()=>ab(!0),children:"Enable"})]}):M?(0,d.jsxs)(d.Fragment,{children:[(0,d.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,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Checking..."]}),(0,d.jsx)("button",{onClick:()=>N(!1),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):(0,d.jsx)(h.$n,{size:"sm",icon:"cloud_upload",onClick:()=>{aR?_({type:"error",message:`Security required: ${aS}`}):y?ab(!0):_({type:"error",message:'Security required: Enable "Require API key" before activating the tunnel.'})},children:"Enable"}):(0,d.jsxs)(d.Fragment,{children:[(0,d.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,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),aJ?"Tunnel reconnecting...":"Tunnel checking..."]}),(0,d.jsx)("button",{onClick:()=>ad(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tunnel",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[88px] text-center ${ae?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:"Tailscale"}),ae&&!ak&&ag?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(h.pd,{value:`${ai}/v1`,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,d.jsx)("button",{onClick:()=>aQ(`${ai}/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,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"ts_url"===aP?"check":"content_copy"})}),(0,d.jsx)("button",{onClick:()=>aH(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tailscale",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):!ae||ak||ag?ak||aC?(0,d.jsxs)(d.Fragment,{children:[(0,d.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,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),am||"Connecting..."]}),aq&&(0,d.jsx)(h.$n,{size:"sm",icon:"open_in_new",onClick:()=>window.open(aq,"tailscale_auth","width=600,height=700,noopener,noreferrer"),children:as||"Open"}),(0,d.jsx)("button",{onClick:()=>{al(!1),aD(!1),an(""),a3()},className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):ao?.type==="error"?(0,d.jsxs)(d.Fragment,{children:[(0,d.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,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"error"}),ao.message]}),(0,d.jsx)(h.$n,{size:"sm",icon:"vpn_lock",onClick:a7,children:"Enable"})]}):(0,d.jsx)(h.$n,{size:"sm",icon:"vpn_lock",onClick:()=>{aR?ap({type:"error",message:`Security required: ${aS}`}):a7()},className:"bg-linear-to-r from-indigo-500 to-purple-500 hover:from-indigo-600 hover:to-purple-600 text-white!",children:"Enable"}):(0,d.jsxs)(d.Fragment,{children:[(0,d.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,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),aL?"Tailscale reconnecting...":"Tailscale checking..."]}),(0,d.jsx)("button",{onClick:()=>aH(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tailscale",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]})]})]}),aR&&!O&&!ae&&(0,d.jsx)("div",{className:"mt-4",children:(0,d.jsx)(p,{message:aS,action:{label:"Open settings",href:"/dashboard/profile"}})}),(O||ae)&&(0,d.jsxs)("div",{className:"mt-4 flex flex-col gap-2",children:[!y&&(0,d.jsx)(p,{message:"Require API key is disabled — your endpoint is publicly accessible without authentication.",action:{label:"Enable",href:"#require-api-key"}}),(!A||!C)&&(0,d.jsx)(p,{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"}})]}),(O||ae)&&(0,d.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex items-center gap-3",children:[(0,d.jsx)(h.lM,{checked:E,onChange:()=>aT(!E)}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("p",{className:"font-medium text-sm",children:"Allow dashboard access via tunnel"}),(0,d.jsx)(o,{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,d.jsxs)(h.Zp,{id:"rtk",children:[(0,d.jsx)("div",{className:"flex items-center justify-between mb-2",children:(0,d.jsxs)("h2",{className:"text-lg font-semibold flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary",children:"bolt"}),"Token Saver"]})}),(0,d.jsxs)("div",{className:"flex items-center justify-between pt-2 pb-4 border-b border-border gap-4",children:[(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("p",{className:"font-medium",children:["Compress tool output"," ",(0,d.jsx)("a",{href:"https://github.com/rtk-ai/rtk",target:"_blank",rel:"noreferrer",className:"text-xs font-normal text-primary underline hover:opacity-80",children:"(RTK)"})]}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"git/grep/ls/tree/logs → 60-90% fewer input tokens"})]}),(0,d.jsx)(h.lM,{checked:G,onChange:()=>aV(!G)})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between pt-4 gap-4 flex-wrap",children:[(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("p",{className:"font-medium",children:["Compress LLM output"," ",(0,d.jsx)("a",{href:"https://github.com/JuliusBrussee/caveman",target:"_blank",rel:"noreferrer",className:"text-xs font-normal text-primary underline hover:opacity-80",children:"(Caveman)"})]}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Terse-style system prompt → ~65% fewer output tokens (up to 87%)"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3 shrink-0",children:[I&&(0,d.jsx)("div",{className:"flex items-center gap-1.5",children:k.map(a=>(0,d.jsx)("button",{onClick:()=>{var b;L(b=a.id),aW({cavemanLevel:b})},className:`px-3 py-1.5 rounded text-xs font-medium border transition-colors ${K===a.id?"bg-primary text-white border-primary":"bg-transparent border-border text-text-muted hover:bg-surface-2"}`,title:a.desc,children:a.label},a.id))}),(0,d.jsx)(h.lM,{checked:I,onChange:()=>{var a;J(a=!I),aW({cavemanEnabled:a})}})]})]})]}),(0,d.jsxs)(h.Zp,{id:"require-api-key",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsxs)("h2",{className:"text-lg font-semibold flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary",children:"vpn_key"}),"API Keys"]}),(0,d.jsx)(h.$n,{icon:"add",onClick:()=>r(!0),children:"Create Key"})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between pb-4 mb-4 border-b border-border",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"font-medium",children:"Require API key"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Requests without a valid key will be rejected"})]}),(0,d.jsx)(h.lM,{checked:y,onChange:()=>aU(!y)})]}),0===b.length?(0,d.jsxs)("div",{className:"text-center py-12",children:[(0,d.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 text-primary mb-4",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:"vpn_key"})}),(0,d.jsx)("p",{className:"text-text-main font-medium mb-1",children:"No API keys yet"}),(0,d.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Create your first API key to get started"}),(0,d.jsx)(h.$n,{icon:"add",onClick:()=>r(!0),children:"Create Key"})]}):(0,d.jsx)("div",{className:"flex flex-col",children:b.map(a=>{var b;return(0,d.jsxs)("div",{className:`group flex items-center justify-between py-3 border-b border-black/[0.03] dark:border-white/[0.03] last:border-b-0 ${!1===a.isActive?"opacity-60":""}`,children:[(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:a.name}),(0,d.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[(0,d.jsx)("code",{className:"text-xs text-text-muted font-mono",children:aN.has(a.id)?a.key:(b=a.key)?b.length>8?b.slice(0,8)+"...":b:""}),(0,d.jsx)("button",{onClick:()=>{var b;return b=a.id,void aO(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},className:"p-1 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary opacity-100 sm:opacity-0 sm:group-hover:opacity-100 transition-all",title:aN.has(a.id)?"Hide key":"Show key",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:aN.has(a.id)?"visibility_off":"visibility"})}),(0,d.jsx)("button",{onClick:()=>aQ(a.key,a.id),className:"p-1 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary opacity-100 sm:opacity-0 sm:group-hover:opacity-100 transition-all",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:aP===a.id?"check":"content_copy"})})]}),(0,d.jsxs)("p",{className:"text-xs text-text-muted mt-1",children:["Created ",new Date(a.createdAt).toLocaleDateString()]}),!1===a.isActive&&(0,d.jsx)("p",{className:"text-xs text-orange-500 mt-1",children:"Paused"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(h.lM,{size:"sm",checked:a.isActive??!0,onChange:b=>{a.isActive&&!b?x({title:"Pause API Key",message:`Pause API key "${a.name}"?
|
|
2
2
|
|
|
3
|
-
This key will stop working immediately but can be resumed later.`)&&h(a.id,b):h(a.id,b)},title:a.isActive?"Pause key":"Resume key"}),(0,d.jsx)("button",{onClick:()=>q(a),className:`p-2 rounded transition-all ${l===a.id?"bg-primary/10 text-primary":"hover:bg-black/5 dark:hover:bg-white/5 text-text-muted hover:text-primary opacity-0 group-hover:opacity-100"}`,title:"Configure usage limits",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"tune"})}),(0,d.jsx)("button",{onClick:()=>i(a.id),className:"p-2 hover:bg-red-500/10 rounded text-red-500 opacity-0 group-hover:opacity-100 transition-all",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"})})]})]}),l===a.id&&(0,d.jsx)(r,{apiKey:a,usageData:m[a.id],limitDraft:n,setLimitDraft:o,saving:p,onSave:()=>s(a.id),onCancel:()=>t(null),onResetUsage:(b,c)=>y(a.id,b,c),resetHistory:u?.[a.id],resettingUsage:v})]})}let y=[{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"}],z=[{id:"lite",label:"Lite",desc:"Drop filler, keep grammar"},{id:"full",label:"Full",desc:"Drop articles, fragments OK"},{id:"ultra",label:"Ultra",desc:"Telegraphic, max compression"}];function A({machineId:a}){let[b,c]=(0,e.useState)([]),[f,g]=(0,e.useState)(!0),[j,k]=(0,e.useState)(!1),[l,m]=(0,e.useState)(""),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(!0),[t,u]=(0,e.useState)(!0),[v,w]=(0,e.useState)(!1),[F,G]=(0,e.useState)(!0),[H,I]=(0,e.useState)(!1),[J,K]=(0,e.useState)("full"),[L,M]=(0,e.useState)(!0),[N,O]=(0,e.useState)(!1),[P,Q]=(0,e.useState)(""),[R,S]=(0,e.useState)(""),[T,U]=(0,e.useState)(!1),[V,W]=(0,e.useState)(""),[X,Y]=(0,e.useState)(null),[Z,$]=(0,e.useState)(!1),[_,aa]=(0,e.useState)(!1),[ab,ac]=(0,e.useState)(!1),[ad,ae]=(0,e.useState)(""),[af,ag]=(0,e.useState)(!1),[ah,ai]=(0,e.useState)(""),[aj,ak]=(0,e.useState)(null),[al,am]=(0,e.useState)(null),[an,ao]=(0,e.useState)(!1),[ap,aq]=(0,e.useState)([]),[ar,as]=(0,e.useState)(""),[at,au]=(0,e.useState)(!1),[av,aw]=(0,e.useState)(!1),[ax,ay]=(0,e.useState)(!1),az=(0,e.useRef)(null),[aA,aB]=(0,e.useState)(new Set),aC=function(a){let[b,c]=(0,e.useState)(null),[d,f]=(0,e.useState)({}),[g,h]=(0,e.useState)({}),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)({}),[m,n]=(0,e.useState)(!1),o=async a=>{try{let b=await fetch(`/api/keys/${a}/usage`);if(b.ok){let c=await b.json();h(b=>({...b,[a]:c}))}}catch{}},p=async b=>{j(!0);try{let e=(a,b)=>{if(!a)return null;let c=b?parseFloat(a):Math.floor(parseFloat(a));return isNaN(c)||c<=0?null:c},f={inputTokens5h:e(d.inputTokens5h,!1),inputTokens24h:e(d.inputTokens24h,!1),cost5h:e(d.cost5h,!0),cost24h:e(d.cost24h,!0)};d.windows&&d.windows.length>0&&(f.windows=d.windows.map(a=>({durationMs:a.durationMs,label:a.label,inputTokens:e(a.inputTokens,!1),cost:e(a.cost,!0)})).filter(a=>a.inputTokens||a.cost));let g=await fetch(`/api/keys/${b}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({limits:f})});if(g.ok){let d=await g.json();a(a=>a.map(a=>a.id===b?d.key:a)),c(null),o(b)}}catch{}j(!1)},q=async a=>{try{let b=await fetch(`/api/keys/${a}/reset-usage`);if(b.ok){let c=await b.json();l(b=>({...b,[a]:c.history||[]}))}}catch{}},r=async(a,b,c)=>{n(!0);try{(await fetch(`/api/keys/${a}/reset-usage`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({windowMs:b,windowLabel:c})})).ok&&(await o(a),await q(a))}catch{}n(!1)};return{editingLimits:b,setEditingLimits:c,limitDraft:d,setLimitDraft:f,keyUsage:g,savingLimits:i,handleOpenLimits:a=>{if(b===a.id)return void c(null);let d=a.limits||{};f({inputTokens5h:d.inputTokens5h?String(d.inputTokens5h):"",inputTokens24h:d.inputTokens24h?String(d.inputTokens24h):"",cost5h:d.cost5h?String(d.cost5h):"",cost24h:d.cost24h?String(d.cost24h):"",windows:d.windows||[]}),c(a.id),o(a.id),q(a.id)},handleSaveLimits:p,fetchKeyUsage:o,resetHistory:k,resettingUsage:m,fetchResetHistory:q,handleResetUsage:r}}(c),{copied:aD,copy:aE}=(0,i.C)(),aF=async a=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({tunnelDashboardAccess:a})})).ok&&w(a)}catch(a){console.log("Error updating tunnelDashboardAccess:",a)}},aG=async a=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({requireApiKey:a})})).ok&&q(a)}catch(a){console.log("Error updating requireApiKey:",a)}},aH=async a=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rtkEnabled:a})})).ok&&G(a)}catch(a){console.log("Error updating rtkEnabled:",a)}},aI=async a=>{try{await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}catch(a){console.log("Error updating setting:",a)}},aJ=async()=>{try{let a=await fetch("/api/keys"),b=await a.json();a.ok&&c(b.keys||[])}catch(a){console.log("Error fetching data:",a)}finally{g(!1)}},aK=async a=>{U(!0),W("Waiting for tunnel ready...");let b=`${a}/api/health`,c=Date.now();for(;Date.now()-c<3e5;){await new Promise(a=>setTimeout(a,2e3));try{let a=await fetch(b,{mode:"no-cors",cache:"no-store"});if(a.ok||"opaque"===a.type)return O(!0),U(!1),W(""),!0}catch{}if((Date.now()-c)%1e4<2e3)try{let a=await fetch("/api/tunnel/status");if(a.ok){let b=await a.json();if(!b.tunnel?.enabled)return Y({type:"error",message:"Tunnel process stopped unexpectedly."}),U(!1),W(""),!1}}catch{}}return Y({type:"error",message:"Tunnel created but not reachable. Please try again."}),U(!1),W(""),!1},aL=async()=>{$(!1),U(!0),Y(null),W("Creating tunnel...");let a=!0;(async()=>{for(;a;){try{let b=await fetch("/api/tunnel/status");if(b.ok){let c=await b.json();c.download?.downloading?W(`Downloading cloudflared... ${c.download.progress}%`):a&&W("Creating tunnel...")}}catch{}await new Promise(a=>setTimeout(a,1e3))}})();try{let b=await fetch("/api/tunnel/enable",{method:"POST"});a=!1;let c=await b.json();if(!b.ok)return void Y({type:"error",message:c.error||"Failed to enable tunnel"});let d=c.publicUrl||c.tunnelUrl;if(!d)return void Y({type:"error",message:"No tunnel URL returned"});Q(c.tunnelUrl||""),S(c.publicUrl||""),await aK(d)}catch(a){Y({type:"error",message:a.message})}finally{a=!1,U(!1),W("")}},aM=async()=>{U(!0),Y(null);try{let a=await fetch("/api/tunnel/disable",{method:"POST"}),b=await a.json();a.ok?(O(!1),Q(""),S(""),aa(!1),Y({type:"success",message:"Tunnel disabled"})):Y({type:"error",message:b.error||"Failed to disable tunnel"})}catch(a){Y({type:"error",message:a.message})}finally{U(!1)}},aN=async()=>{am(null);try{let a=await fetch("/api/tunnel/tailscale-check");if(a.ok){let b=await a.json();return am(b.installed),b}}catch{}return am(!1),{installed:!1}},aO=async()=>{ao(!0),ak(null),aq([]);try{let a=await fetch("/api/tunnel/tailscale-install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sudoPassword:ar})});as("");let b=a.body.getReader(),c=new TextDecoder,d="";for(;;){let{done:a,value:e}=await b.read();if(a)break;let f=(d+=c.decode(e,{stream:!0})).split("\n\n");for(let a of(d=f.pop()||"",f)){let b=a.split("\n"),c="progress",d=null;for(let a of b)if(a.startsWith("event: ")&&(c=a.slice(7).trim()),a.startsWith("data: "))try{d=JSON.parse(a.slice(6))}catch{}if(d)if("progress"===c)aq(a=>[...a.slice(-50),d.message]);else if("done"===c){am(!0),ao(!1);return}else"error"===c&&ak({type:"error",message:d.error||"Install failed"})}}}catch(a){ak({type:"error",message:a.message})}finally{ao(!1)}},aP=async a=>{ai("Waiting for Tailscale ready...");let b=`${a}/api/health`,c=Date.now();for(;Date.now()-c<3e5;){await new Promise(a=>setTimeout(a,2e3));try{let a=await fetch(b,{mode:"no-cors",cache:"no-store"});if(a.ok||"opaque"===a.type)return!0}catch{}}return!1},aQ=async a=>{let b=a||null;aw(!1),au(!0),ag(!0),ak(null),ai("Connecting...");try{let a=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),c=await a.json();if(a.ok&&c.success){b&&b.close(),ae(c.tunnelUrl||""),await aP(c.tunnelUrl)?(ac(!0),ak(null)):(ac(!0),ak({type:"warning",message:"Connected but not reachable yet."}));return}if(c.needsLogin&&c.authUrl){b?b.location.href=c.authUrl:window.open(c.authUrl,"tailscale_auth","width=600,height=700"),ai("Waiting for login...");for(let a=0;a<40;a++){await new Promise(a=>setTimeout(a,3e3));try{let a=await fetch("/api/tunnel/tailscale-check");if(a.ok&&(await a.json()).loggedIn){ai("Starting funnel...");let a=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),c=await a.json();a.ok&&c.success?(b&&b.close(),ae(c.tunnelUrl||""),await aP(c.tunnelUrl)?(ac(!0),ak(null)):(ac(!0),ak({type:"warning",message:"Connected but not reachable yet."}))):c.funnelNotEnabled&&c.enableUrl?await aR(c.enableUrl,b):ak({type:"error",message:c.error||"Failed to start funnel"});return}}catch{}}ak({type:"error",message:"Login timed out. Please try again."});return}if(c.funnelNotEnabled&&c.enableUrl)return void await aR(c.enableUrl,b);b&&b.close(),ak({type:"error",message:c.error||"Failed to connect"})}catch(a){b&&b.close(),ak({type:"error",message:a.message})}finally{ag(!1),au(!1),ai("")}},aR=async(a,b)=>{b?b.location.href=a:window.open(a,"tailscale_auth","width=600,height=700"),ai("Enable Funnel in browser, waiting...");for(let a=0;a<40;a++){await new Promise(a=>setTimeout(a,3e3));try{let a=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),c=await a.json();if(a.ok&&c.success){b&&b.close(),ae(c.tunnelUrl||""),await aP(c.tunnelUrl)?(ac(!0),ak(null)):(ac(!0),ak({type:"warning",message:"Connected but not reachable yet."}));return}if(c.funnelNotEnabled)continue;if(c.error)return void ak({type:"error",message:c.error})}catch{}}ak({type:"error",message:"Timed out waiting for Funnel to be enabled."})},aS=async()=>{ag(!0),ak(null);try{let a=await fetch("/api/tunnel/tailscale-disable",{method:"POST"}),b=await a.json();a.ok?(ac(!1),ae(""),ay(!1),ak({type:"success",message:"Tailscale disabled"})):ak({type:"error",message:b.error||"Failed to disable Tailscale"})}catch(a){ak({type:"error",message:a.message})}finally{ag(!1)}},aT=async()=>{ak(null),aq([]),aw(!0),await aN()},aU=async()=>{if(l.trim())try{let a=await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:l})}),b=await a.json();a.ok&&(o(b.key),await aJ(),m(""),k(!1))}catch(a){console.log("Error creating key:",a)}},aV=async a=>{if(confirm("Delete this API key?"))try{(await fetch(`/api/keys/${a}`,{method:"DELETE"})).ok&&(c(b.filter(b=>b.id!==a)),aB(b=>{let c=new Set(b);return c.delete(a),c}))}catch(a){console.log("Error deleting key:",a)}},aW=async(a,b)=>{try{let d=await fetch(`/api/keys/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:b})});if(d.ok){let b=await d.json();c(c=>c.map(c=>c.id===a?b.key:c))}}catch(a){console.log("Error renaming key:",a)}},aX=async(a,b)=>{try{(await fetch(`/api/keys/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:b})})).ok&&c(c=>c.map(c=>c.id===a?{...c,isActive:b}:c))}catch(a){console.log("Error toggling key:",a)}},aY=a=>{aB(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[aZ,a$]=(0,e.useState)("/v1");return f?(0,d.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,d.jsx)(h.Qv,{}),(0,d.jsx)(h.Qv,{})]}):(0,d.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,d.jsxs)(h.Zp,{children:[(0,d.jsx)("h2",{className:"text-lg font-semibold mb-4",children:"API Endpoint"}),(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsx)(B,{label:"Local",url:aZ,copyId:"local_url",copied:aD,onCopy:aE}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[68px] text-center ${N?"bg-orange-100 dark:bg-orange-900/30 text-orange-600 dark:text-orange-400":"bg-sidebar text-text-muted"}`,children:"Tunnel"}),N&&!T?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(h.pd,{value:`${R||P}/v1`,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,d.jsx)("button",{onClick:()=>aE(`${R||P}/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,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"tunnel_url"===aD?"check":"content_copy"})}),(0,d.jsx)("button",{onClick:()=>aa(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tunnel",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):T?(0,d.jsxs)(d.Fragment,{children:[(0,d.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,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),V||"Creating tunnel..."]}),(0,d.jsx)("button",{onClick:()=>{U(!1),W("")},className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):X?.type==="error"?(0,d.jsxs)(d.Fragment,{children:[(0,d.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,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"error"}),X.message]}),(0,d.jsx)(h.$n,{size:"sm",icon:"cloud_upload",onClick:()=>$(!0),children:"Enable"})]}):L?(0,d.jsxs)(d.Fragment,{children:[(0,d.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,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Checking..."]}),(0,d.jsx)("button",{onClick:()=>M(!1),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):(0,d.jsx)(h.$n,{size:"sm",icon:"cloud_upload",onClick:()=>{p?$(!0):Y({type:"error",message:'Security required: Enable "Require API key" before activating the tunnel.'})},className:"bg-linear-to-r from-primary to-blue-500 hover:from-primary-hover hover:to-blue-600 text-white!",children:"Enable"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[68px] text-center ${ab?"bg-purple-100 dark:bg-purple-900/30 text-purple-600 dark:text-purple-400":"bg-sidebar text-text-muted"}`,children:"Tailscale"}),ab&&!af?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(h.pd,{value:`${ad}/v1`,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,d.jsx)("button",{onClick:()=>aE(`${ad}/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,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"ts_url"===aD?"check":"content_copy"})}),(0,d.jsx)("button",{onClick:()=>ay(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tailscale",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):af||at?(0,d.jsxs)(d.Fragment,{children:[(0,d.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,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),ah||"Connecting..."]}),(0,d.jsx)("button",{onClick:()=>{ag(!1),au(!1),ai("")},className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):aj?.type==="error"?(0,d.jsxs)(d.Fragment,{children:[(0,d.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,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"error"}),aj.message]}),(0,d.jsx)(h.$n,{size:"sm",icon:"vpn_lock",onClick:aT,children:"Enable"})]}):(0,d.jsx)(h.$n,{size:"sm",icon:"vpn_lock",onClick:aT,className:"bg-linear-to-r from-indigo-500 to-purple-500 hover:from-indigo-600 hover:to-purple-600 text-white!",children:"Enable"})]})]}),(N||ab)&&(0,d.jsxs)("div",{className:"mt-4 flex flex-col gap-2",children:[!p&&(0,d.jsx)(E,{message:"Require API key is disabled — your endpoint is publicly accessible without authentication.",action:{label:"Enable",href:"#require-api-key"}}),(!r||!t)&&(0,d.jsx)(E,{message:r?"Dashboard uses the default password — change it in Profile settings.":"Require login is disabled — anyone can access your dashboard via tunnel.",action:{label:r?"Change password":"Enable",href:"/dashboard/profile"}})]}),(N||ab)&&(0,d.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex items-center gap-3",children:[(0,d.jsx)(h.lM,{checked:v,onChange:()=>aF(!v)}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("p",{className:"font-medium text-sm",children:"Allow dashboard access via tunnel"}),(0,d.jsx)(D,{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,d.jsxs)(h.Zp,{id:"rtk",children:[(0,d.jsx)("div",{className:"flex items-center justify-between mb-2",children:(0,d.jsx)("h2",{className:"text-lg font-semibold",children:"Token Saver"})}),(0,d.jsxs)("div",{className:"flex items-center justify-between pt-2 pb-4 border-b border-border",children:[(0,d.jsxs)("div",{className:"pr-4",children:[(0,d.jsxs)("p",{className:"font-medium",children:["Compress tool output"," ",(0,d.jsx)("a",{href:"https://github.com/rtk-ai/rtk",target:"_blank",rel:"noreferrer",className:"text-xs font-normal text-primary underline hover:opacity-80",children:"(RTK)"})]}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Auto-compress tool output (git diff/grep/ls/tree/logs) before sending to LLM (60-90% fewer input tokens on common dev commands). Disable if you see issues."})]}),(0,d.jsx)(h.lM,{checked:F,onChange:()=>aH(!F)})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between pt-4",children:[(0,d.jsxs)("div",{className:"pr-4",children:[(0,d.jsxs)("p",{className:"font-medium",children:["Compress LLM output"," ",(0,d.jsx)("a",{href:"https://github.com/JuliusBrussee/caveman",target:"_blank",rel:"noreferrer",className:"text-xs font-normal text-primary underline hover:opacity-80",children:"(Caveman)"})]}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Inject a terse-style instruction into the system prompt so the LLM replies shorter (~65% fewer output tokens on average, up to 87%). Code, errors and warnings stay exact."})]}),(0,d.jsx)(h.lM,{checked:H,onChange:()=>{var a;I(a=!H),aI({cavemanEnabled:a})}})]}),H&&(0,d.jsx)("div",{className:"mt-3 flex items-center gap-2",children:z.map(a=>(0,d.jsx)("button",{onClick:()=>{var b;K(b=a.id),aI({cavemanLevel:b})},className:`px-3 py-1.5 rounded text-xs font-medium border transition-colors ${J===a.id?"bg-primary text-white border-primary":"bg-transparent border-border text-text-muted hover:bg-black/5 dark:hover:bg-white/5"}`,title:a.desc,children:a.label},a.id))})]}),(0,d.jsxs)(h.Zp,{id:"require-api-key",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:"API Keys"}),(0,d.jsx)(h.$n,{icon:"add",onClick:()=>k(!0),children:"Create Key"})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between pb-4 mb-4 border-b border-border",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"font-medium",children:"Require API key"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Requests without a valid key will be rejected"})]}),(0,d.jsx)(h.lM,{checked:p,onChange:()=>aG(!p)})]}),0===b.length?(0,d.jsxs)("div",{className:"text-center py-12",children:[(0,d.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 text-primary mb-4",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:"vpn_key"})}),(0,d.jsx)("p",{className:"text-text-main font-medium mb-1",children:"No API keys yet"}),(0,d.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Create your first API key to get started"}),(0,d.jsx)(h.$n,{icon:"add",onClick:()=>k(!0),children:"Create Key"})]}):(0,d.jsx)("div",{className:"flex flex-col",children:b.map(a=>(0,d.jsx)(x,{apiKey:a,visibleKeys:aA,toggleKeyVisibility:aY,copied:aD,copy:aE,handleToggleKey:aX,handleDeleteKey:aV,handleRenameKey:aW,...aC},a.id))})]}),(0,d.jsx)(h.aF,{isOpen:j,title:"Create API Key",onClose:()=>{k(!1),m("")},children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)(h.pd,{label:"Key Name",value:l,onChange:a=>m(a.target.value),placeholder:"Production Key"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:aU,fullWidth:!0,disabled:!l.trim(),children:"Create"}),(0,d.jsx)(h.$n,{onClick:()=>{k(!1),m("")},variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,d.jsx)(h.aF,{isOpen:!!n,title:"API Key Created",onClose:()=>o(null),children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.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,d.jsx)("p",{className:"text-sm text-yellow-800 dark:text-yellow-200 mb-2 font-medium",children:"Save this key now!"}),(0,d.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,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.pd,{value:n||"",readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,d.jsx)(h.$n,{variant:"secondary",icon:"created_key"===aD?"check":"content_copy",onClick:()=>aE(n,"created_key"),children:"created_key"===aD?"Copied!":"Copy"})]}),(0,d.jsx)(h.$n,{onClick:()=>o(null),fullWidth:!0,children:"Done"})]})}),(0,d.jsx)(h.aF,{isOpen:Z,title:"Enable Tunnel",onClose:()=>$(!1),children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-4",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-blue-600 dark:text-blue-400",children:"cloud_upload"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm text-blue-800 dark:text-blue-200 font-medium mb-1",children:"Cloudflare Tunnel"}),(0,d.jsx)("p",{className:"text-sm text-blue-700 dark:text-blue-300",children:"Expose your local 9Router 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,d.jsx)("div",{className:"grid grid-cols-2 gap-3",children:y.map(a=>(0,d.jsxs)("div",{className:"flex flex-col items-center text-center p-3 rounded-lg bg-sidebar/50",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-xl text-primary mb-1",children:a.icon}),(0,d.jsx)("p",{className:"text-xs font-semibold",children:a.title}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:a.desc})]},a.title))}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Requires outbound port 7844 (TCP/UDP). Connection may take 10-30s."}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:aL,fullWidth:!0,className:"bg-linear-to-r from-primary to-blue-500 hover:from-primary-hover hover:to-blue-600 text-white!",children:"Start Tunnel"}),(0,d.jsx)(h.$n,{onClick:()=>$(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,d.jsx)(h.aF,{isOpen:_,title:"Disable Tunnel",onClose:()=>!T&&aa(!1),children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"The Cloudflare tunnel will be disconnected. Remote access via tunnel URL will stop working."}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:aM,fullWidth:!0,disabled:T,className:"bg-red-500! hover:bg-red-600! text-white!",children:T?"Disabling...":"Disable"}),(0,d.jsx)(h.$n,{onClick:()=>aa(!1),variant:"ghost",fullWidth:!0,disabled:T,children:"Cancel"})]})]})}),(0,d.jsx)(h.aF,{isOpen:av,title:"Tailscale Funnel",onClose:()=>{an||(aw(!1),as(""),ak(null))},children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[null===al&&(0,d.jsxs)("p",{className:"text-sm text-text-muted flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Checking..."]}),!1===al&&!an&&(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Tailscale is not installed. Install it to enable Funnel."}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:aO,fullWidth:!0,className:"bg-linear-to-r from-indigo-500 to-purple-500 hover:from-indigo-600 hover:to-purple-600 text-white!",children:"Install Tailscale"}),(0,d.jsx)(h.$n,{onClick:()=>aw(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),an&&(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-sm text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Installing Tailscale..."]}),ap.length>0&&(0,d.jsx)("div",{ref:az,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:ap.map((a,b)=>(0,d.jsx)("div",{children:a},b))})]}),!0===al&&!an&&(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"check_circle"}),"Tailscale installed"]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:()=>{let a=window.open("","tailscale_auth","width=600,height=700");a&&a.document.write("<p style='font-family:sans-serif;text-align:center;margin-top:40px'>Connecting to Tailscale...</p>"),aQ(a)},fullWidth:!0,className:"bg-linear-to-r from-indigo-500 to-purple-500 hover:from-indigo-600 hover:to-purple-600 text-white!",children:"Connect"}),(0,d.jsx)(h.$n,{onClick:()=>aw(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),aj&&(0,d.jsx)(C,{status:aj})]})}),(0,d.jsx)(h.aF,{isOpen:ax,title:"Disable Tailscale",onClose:()=>!af&&ay(!1),children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Tailscale Funnel will be stopped. Remote access via Tailscale URL will stop working."}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:aS,fullWidth:!0,disabled:af,className:"bg-red-500! hover:bg-red-600! text-white!",children:af?"Disabling...":"Disable"}),(0,d.jsx)(h.$n,{onClick:()=>ay(!1),variant:"ghost",fullWidth:!0,disabled:af,children:"Cancel"})]})]})})]})}function B({label:a,url:b,copyId:c,copied:e,onCopy:f,badge:g,actions:i}){return(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[68px] text-center ${"CF"===g?"bg-orange-100 dark:bg-orange-900/30 text-orange-600 dark:text-orange-400":"TS"===g?"bg-purple-100 dark:bg-purple-900/30 text-purple-600 dark:text-purple-400":"bg-sidebar text-text-muted"}`,children:a}),(0,d.jsx)(h.pd,{value:b,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,d.jsx)("button",{onClick:()=>f(b,c),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,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:e===c?"check":"content_copy"})}),i]})}function C({status:a,className:b=""}){return(0,d.jsx)("div",{className:`p-2 rounded text-sm ${b} ${"success"===a.type?"bg-green-500/10 text-green-600 dark:text-green-400":"warning"===a.type?"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400":"info"===a.type?"bg-blue-500/10 text-blue-600 dark:text-blue-400":"bg-red-500/10 text-red-600 dark:text-red-400"}`,children:a.message.split(/(https?:\/\/[^\s]+)/g).map((a,b)=>/^https?:\/\//.test(a)?(0,d.jsx)("a",{href:a,target:"_blank",rel:"noreferrer",className:"underline font-medium",children:a},b):a)})}function D({text:a}){return(0,d.jsxs)("span",{className:"relative group inline-flex items-center",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] text-text-muted cursor-help",children:"help"}),(0,d.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:a})]})}function E({message:a,action:b}){return(0,d.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,d.jsx)("span",{className:"material-symbols-outlined text-[16px] shrink-0 mt-0.5",children:"warning"}),(0,d.jsx)("p",{className:"text-xs flex-1",children:a}),b&&(0,d.jsx)("a",{href:b.href,className:"text-xs font-medium underline shrink-0 hover:opacity-80",onClick:b.href.startsWith("#")?a=>{a.preventDefault(),document.getElementById(b.href.slice(1))?.scrollIntoView({behavior:"smooth"})}:void 0,children:b.label})]})}A.propTypes={machineId:g().string.isRequired}},76067:(a,b,c)=>{Promise.resolve().then(c.bind(c,60409))},87250:(a,b,c)=>{"use strict";c.d(b,{D1:()=>e});var d=c(54603);async function e(){return await (0,d.Xj)()}}};
|
|
3
|
+
This key will stop working immediately but can be resumed later.`,onConfirm:async()=>{x(null),ba(a.id,b)}}):ba(a.id,b)},title:a.isActive?"Pause key":"Resume key"}),(0,d.jsx)("button",{onClick:()=>a9(a.id),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,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"})})]})]},a.id)})})]}),(0,d.jsx)(h.aF,{isOpen:q,title:"Create API Key",onClose:()=>{r(!1),t("")},children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)(h.pd,{label:"Key Name",value:s,onChange:a=>t(a.target.value),placeholder:"Production Key"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:a8,fullWidth:!0,disabled:!s.trim(),children:"Create"}),(0,d.jsx)(h.$n,{onClick:()=>{r(!1),t("")},variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,d.jsx)(h.aF,{isOpen:!!u,title:"API Key Created",onClose:()=>v(null),children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.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,d.jsx)("p",{className:"text-sm text-yellow-800 dark:text-yellow-200 mb-2 font-medium",children:"Save this key now!"}),(0,d.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,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.pd,{value:u||"",readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,d.jsx)(h.$n,{variant:"secondary",icon:"created_key"===aP?"check":"content_copy",onClick:()=>aQ(u,"created_key"),children:"created_key"===aP?"Copied!":"Copy"})]}),(0,d.jsx)(h.$n,{onClick:()=>v(null),fullWidth:!0,children:"Done"})]})}),(0,d.jsx)(h.aF,{isOpen:aa,title:"Enable Tunnel",onClose:()=>ab(!1),children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)("div",{className:"bg-surface-2 border border-border-subtle rounded-lg p-4",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary",children:"cloud_upload"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm text-text-main font-medium mb-1",children:"Cloudflare Tunnel"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Expose your local 9Router 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,d.jsx)("div",{className:"grid grid-cols-2 gap-3",children:j.map(a=>(0,d.jsxs)("div",{className:"flex flex-col items-center text-center p-3 rounded-lg bg-sidebar/50",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-xl text-primary mb-1",children:a.icon}),(0,d.jsx)("p",{className:"text-xs font-semibold",children:a.title}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:a.desc})]},a.title))}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Requires outbound port 7844 (TCP/UDP). Connection may take 10-30s."}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:aZ,fullWidth:!0,children:"Start Tunnel"}),(0,d.jsx)(h.$n,{onClick:()=>ab(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,d.jsx)(h.aF,{isOpen:ac,title:"Disable Tunnel",onClose:()=>!W&&ad(!1),children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"The Cloudflare tunnel will be disconnected. Remote access via tunnel URL will stop working."}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:a$,fullWidth:!0,disabled:W,variant:"danger",children:W?"Disabling...":"Disable"}),(0,d.jsx)(h.$n,{onClick:()=>ad(!1),variant:"ghost",fullWidth:!0,disabled:W,children:"Cancel"})]})]})}),(0,d.jsx)(h.aF,{isOpen:aE,title:"Tailscale Funnel",onClose:()=>{aw||(aF(!1),aB(""),ap(null))},children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[null===au&&(0,d.jsxs)("p",{className:"text-sm text-text-muted flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Checking..."]}),!1===au&&!aw&&(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Tailscale is not installed. Install it to enable Funnel."}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:a0,fullWidth:!0,children:"Install Tailscale"}),(0,d.jsx)(h.$n,{onClick:()=>aF(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),aw&&(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-sm text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Installing Tailscale..."]}),ay.length>0&&(0,d.jsx)("div",{ref:aI,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:ay.map((a,b)=>(0,d.jsx)("div",{children:a},b))})]}),!0===au&&!aw&&(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"check_circle"}),"Tailscale installed"]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:()=>a4(),fullWidth:!0,children:"Connect"}),(0,d.jsx)(h.$n,{onClick:()=>aF(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),ao&&(0,d.jsx)(n,{status:ao})]})}),(0,d.jsx)(h.aF,{isOpen:aG,title:"Disable Tailscale",onClose:()=>!ak&&aH(!1),children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Tailscale Funnel will be stopped. Remote access via Tailscale URL will stop working."}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:a6,fullWidth:!0,disabled:ak,variant:"danger",children:ak?"Disabling...":"Disable"}),(0,d.jsx)(h.$n,{onClick:()=>aH(!1),variant:"ghost",fullWidth:!0,disabled:ak,children:"Cancel"})]})]})}),(0,d.jsx)(h.uo,{isOpen:!!w,onClose:()=>x(null),onConfirm:w?.onConfirm,title:w?.title||"Confirm",message:w?.message,variant:"danger"})]})}function m({label:a,url:b,copyId:c,copied:e,onCopy:f,badge:g,actions:i}){return(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[88px] text-center ${"CF"===g||"TS"===g?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:a}),(0,d.jsx)(h.pd,{value:b,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,d.jsx)("button",{onClick:()=>f(b,c),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,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:e===c?"check":"content_copy"})}),i]})}function n({status:a,className:b=""}){return(0,d.jsx)("div",{className:`p-2 rounded text-sm ${b} ${"success"===a.type?"bg-green-500/10 text-green-600 dark:text-green-400":"warning"===a.type?"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400":"info"===a.type?"bg-blue-500/10 text-blue-600 dark:text-blue-400":"bg-red-500/10 text-red-600 dark:text-red-400"}`,children:a.message.split(/(https?:\/\/[^\s]+)/g).map((a,b)=>/^https?:\/\//.test(a)?(0,d.jsx)("a",{href:a,target:"_blank",rel:"noreferrer",className:"underline font-medium",children:a},b):a)})}function o({text:a}){return(0,d.jsxs)("span",{className:"relative group inline-flex items-center",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] text-text-muted cursor-help",children:"help"}),(0,d.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:a})]})}function p({message:a,action:b}){return(0,d.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,d.jsx)("span",{className:"material-symbols-outlined text-[16px] shrink-0 mt-0.5",children:"warning"}),(0,d.jsx)("p",{className:"text-xs flex-1",children:a}),b&&(0,d.jsx)("a",{href:b.href,className:"text-xs font-medium underline shrink-0 hover:opacity-80",onClick:b.href.startsWith("#")?a=>{a.preventDefault(),document.getElementById(b.href.slice(1))?.scrollIntoView({behavior:"smooth"})}:void 0,children:b.label})]})}l.propTypes={machineId:g().string.isRequired}},51747:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/cuongquach/projects/vibe/n9router/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/cuongquach/projects/vibe/n9router/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js","default")},54603:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>q});var d=c(19713),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(77598),j=c.n(i),k=c(49120);let l=h().join(k.DATA_DIR,"machine-id"),m=h().join(k.DATA_DIR,"auth"),n=h().join(m,"cli-secret"),o=null,p=null;async function q(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt",c=function(){if(o)return o;try{if(o=f().readFileSync(l,"utf8").trim())return o}catch{}try{o=(0,d.machineIdSync)()}catch{o=j().randomUUID()}try{f().mkdirSync(k.DATA_DIR,{recursive:!0}),f().writeFileSync(l,o,{mode:384})}catch{}return o}(),e="9r-cli-auth"===b?function(){if(p)return p;try{if(p=f().readFileSync(n,"utf8").trim())return p}catch{}p=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0}),f().writeFileSync(n,p,{mode:384})}catch{}return p}():"";return j().createHash("sha256").update(c+b+e).digest("hex").substring(0,16)}},76067:(a,b,c)=>{Promise.resolve().then(c.bind(c,43173))},87250:(a,b,c)=>{"use strict";c.d(b,{D:()=>e});var d=c(54603);async function e(){return await (0,d.Xj)()}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=8255,exports.ids=[8255],exports.modules={2574:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>r,OPTIONS:()=>q,buildModelsList:()=>p});var d=c(81329),e=c(75681),f=c(89718),g=c(16655),h=c(29679),i=c(53225);let j={kiro:async a=>{let b=await (0,h.cW)({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null},qoder:async a=>{let b=await (0,i.EV)({accessToken:a.accessToken,refreshToken:a.refreshToken,email:a.email,displayName:a.displayName,providerSpecificData:a.providerSpecificData||{}});return b?.models?.length?{models:b.models.map(a=>({id:a.id,name:a.name}))}:null}},k=/[-_][0-9a-f]{8,}$/i,l={image:"image",tts:"tts",embedding:"embedding",stt:"stt",imageToText:"imageToText"};function m(a){return a?.type&&l[a.type]||"llm"}async function n(a){if(!a?.apiKey)return[];let b="string"==typeof a?.providerSpecificData?.baseUrl?a.providerSpecificData.baseUrl.trim().replace(/\/$/,""):"";if(!b)return[];let c=`${b}/models`,d={"Content-Type":"application/json"};if((0,e.mq)(a.provider))d.Authorization=`Bearer ${a.apiKey}`;else{if(!(0,e.gb)(a.provider))return[];c.endsWith("/messages/models")?c=c.slice(0,-9):c.endsWith("/messages")&&(c=`${c.slice(0,-9)}/models`),d["x-api-key"]=a.apiKey,d["anthropic-version"]="2023-06-01",d.Authorization=`Bearer ${a.apiKey}`}try{var f;let a=new AbortController,b=setTimeout(()=>a.abort(),5e3),e=await fetch(c,{method:"GET",headers:d,cache:"no-store",signal:a.signal});if(clearTimeout(b),!e.ok)return[];let g=(f=await e.json(),Array.isArray(f)?f:f?.data||f?.models||f?.results||[]);return Array.from(new Set(g.map(a=>a?.id||a?.name||a?.model).filter(a=>"string"==typeof a&&""!==a.trim())))}catch{return[]}}function o(a,b){let c=e.AI_PROVIDERS[a],d=Array.isArray(c?.serviceKinds)&&c.serviceKinds.length>0?c.serviceKinds:["llm"];return b.some(a=>d.includes(a))}async function p(a){let b=[];try{b=(b=await (0,f.getProviderConnections)()).filter(a=>!1!==a.isActive)}catch(a){console.log("Could not fetch providers, returning all models")}let c=[];try{c=await (0,f.Uv)()}catch(a){console.log("Could not fetch combos")}let h=[];try{h=await (0,f.uv)()}catch(a){console.log("Could not fetch custom models")}let i={};try{i=await (0,f.OM)()}catch(a){console.log("Could not fetch model aliases")}let l={};try{l=await (0,g.vF)()}catch(a){console.log("Could not fetch disabled models")}let p=(a,b)=>Array.isArray(l[a])&&l[a].includes(b),q=new Map;for(let a of b)q.has(a.provider)||q.set(a.provider,a);let r=[];for(let b of c){if(!function(a,b){let c=a?.kind||"llm";return b.includes(c)}(b,a))continue;let c={id:b.name,object:"model",owned_by:"combo"};("webSearch"===b.kind||"webFetch"===b.kind)&&(c.kind=b.kind),r.push(c)}if(0===b.length){let b=Object.fromEntries(Object.entries(d.Xg).map(([a,b])=>[b,a]));for(let[c,e]of Object.entries(d.vq))if(o(b[c]||c,a))for(let b of e)a.includes(m(b))&&(p(c,b.id)||r.push({id:`${c}/${b.id}`,object:"model",owned_by:c}));for(let b of h){if(!b?.id||b.type&&"llm"!==b.type||!a.includes("llm"))continue;let c=b.providerAlias;if(!c)continue;let d=String(b.id).trim();d&&r.push({id:`${c}/${d}`,object:"model",owned_by:c})}}else for(let[b,c]of q.entries()){if(!o(b,a))continue;let f=d.Xg[b]||b,g=(c?.providerSpecificData?.prefix||(0,e.wG)(b)||f).trim(),l=d.vq[f]||[],q=c?.providerSpecificData?.enabledModels,s=Array.isArray(q)&&q.length>0,t=(0,e.mq)(b)||(0,e.gb)(b),u=new Map(l.map(a=>[a.id,m(a)])),v=s?Array.from(new Set(q.filter(a=>"string"==typeof a&&""!==a.trim()))):l.map(a=>a.id);t&&0===v.length&&!k.test(b)&&(v=await n(c));let w=j[b];if(w&&!s)try{let a=await w(c);a?.models?.length&&(v=a.models.map(a=>a.id))}catch(a){console.log(`Live model fetch failed for ${b}: ${a?.message||a}`)}for(let c of Array.from(new Set([...v.map(a=>a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${f}/`)?a.slice(f.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim()),...h.filter(a=>{if(!a?.id||a.type&&"llm"!==a.type)return!1;let c=a.providerAlias;return c===f||c===g||c===b}).map(a=>String(a.id).trim()).filter(a=>""!==a),...Object.values(i||{}).filter(a=>"string"==typeof a&&!!a.includes("/")&&(a.startsWith(`${g}/`)||a.startsWith(`${f}/`)||a.startsWith(`${b}/`))).map(a=>a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${f}/`)?a.slice(f.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim())]))){let b=u.get(c)||function(a){let b=String(a).toLowerCase();return/embed/.test(b)?"embedding":/tts|speech|audio|voice/.test(b)?"tts":/image|imagen|dall-?e|flux|sdxl|sd-|stable-diffusion/.test(b)?"image":"llm"}(c);a.includes(b)&&(p(g,c)||p(f,c)||r.push({id:`${g}/${c}`,object:"model",owned_by:g}))}let x=e.AI_PROVIDERS[b],y=[];if(a.includes("tts")&&Array.isArray(x?.ttsConfig?.models))for(let a of x.ttsConfig.models)a?.id&&y.push(a.id);if(a.includes("embedding")&&Array.isArray(x?.embeddingConfig?.models))for(let a of x.embeddingConfig.models)a?.id&&y.push(a.id);for(let a of y)p(g,a)||p(f,a)||r.push({id:`${g}/${a}`,object:"model",owned_by:g});a.includes("webSearch")&&x?.searchConfig&&r.push({id:`${g}/search`,object:"model",kind:"webSearch",owned_by:g}),a.includes("webFetch")&&x?.fetchConfig&&r.push({id:`${g}/fetch`,object:"model",kind:"webFetch",owned_by:g})}let s=[],t=new Set;for(let a of r)!a?.id||t.has(a.id)||(t.add(a.id),s.push(a));return s}async function q(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function r(){try{let a=await p(["llm"]);return Response.json({object:"list",data:a},{headers:{"Access-Control-Allow-Origin":"*"}})}catch(a){return console.log("Error fetching models:",a),Response.json({error:{message:a.message,type:"server_error"}},{status:500})}}},16655:(a,b,c)=>{c.d(b,{oF:()=>q,tm:()=>p,vF:()=>o});var d=c(82996),e=c(11259),f=c(76760),g=c.n(f),h=c(73024),i=c.n(h),j=c(49120);let k=g().join(j.DATA_DIR,"disabledModels.json");i().existsSync(j.DATA_DIR)||i().mkdirSync(j.DATA_DIR,{recursive:!0});let l={disabled:{}},m=null;async function n(){if(!m){let a=new e.Pv(k);m=new d.t(a,l);try{await m.read()}catch(a){if(a instanceof SyntaxError)m.data={...l},await m.write();else throw a}m.data&&"object"==typeof m.data||(m.data={...l}),m.data.disabled||(m.data.disabled={})}return m}async function o(){return(await n()).data.disabled||{}}async function p(a,b){if(!a||!Array.isArray(b))return;let c=await n(),d=new Set(c.data.disabled[a]||[]);b.forEach(a=>d.add(a)),c.data.disabled[a]=[...d],await c.write()}async function q(a,b){if(!a)return;let c=await n(),d=c.data.disabled[a]||[];if(Array.isArray(b)&&0!==b.length){let e=new Set(b),f=d.filter(a=>!e.has(a));0===f.length?delete c.data.disabled[a]:c.data.disabled[a]=f}else delete c.data.disabled[a];await c.write()}},19225:(a,b,c)=>{a.exports=c(44870)},81329:(a,b,c)=>{c.d(b,{Xg:()=>d.Xg,eh:()=>e,vq:()=>d.vq});var d=c(44404);Object.entries(c(75681).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
exports.id=8473,exports.ids=[8473],exports.modules={20602:(a,b,c)=>{let d=c(81950);a.exports=function(a){let b=function(a){let b=function(){let a={},b=Object.keys(d);for(let c=b.length,d=0;d<c;d++)a[b[d]]={distance:-1,parent:null};return a}(),c=[a];for(b[a].distance=0;c.length;){let a=c.pop(),e=Object.keys(d[a]);for(let d=e.length,f=0;f<d;f++){let d=e[f],g=b[d];-1===g.distance&&(g.distance=b[a].distance+1,g.parent=a,c.unshift(d))}}return b}(a),c={},e=Object.keys(b);for(let a=e.length,f=0;f<a;f++){let a=e[f];null!==b[a].parent&&(c[a]=function(a,b){let c=[b[a].parent,a],e=d[b[a].parent][a],f=b[a].parent;for(;b[f].parent;)c.unshift(b[f].parent),e=function(a,b){return function(c){return b(a(c))}}(d[b[f].parent][f],e),f=b[f].parent;return e.conversion=c,e}(a,b))}return c}},41892:(a,b,c)=>{"use strict";let d,e=c(21820),f=c(83997),g=c(92535),{env:h}=process;function i(a){return 0!==a&&{level:a,hasBasic:!0,has256:a>=2,has16m:a>=3}}function j(a,b){if(0===d)return 0;if(g("color=16m")||g("color=full")||g("color=truecolor"))return 3;if(g("color=256"))return 2;if(a&&!b&&void 0===d)return 0;let c=d||0;if("dumb"===h.TERM)return c;if("win32"===process.platform){let a=e.release().split(".");return Number(a[0])>=10&&Number(a[2])>=10586?Number(a[2])>=14931?3:2:1}if("CI"in h)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(a=>a in h)||"codeship"===h.CI_NAME?1:c;if("TEAMCITY_VERSION"in h)return+!!/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(h.TEAMCITY_VERSION);if("truecolor"===h.COLORTERM)return 3;if("TERM_PROGRAM"in h){let a=parseInt((h.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(h.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(h.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(h.TERM)||"COLORTERM"in h?1:c}g("no-color")||g("no-colors")||g("color=false")||g("color=never")?d=0:(g("color")||g("colors")||g("color=true")||g("color=always"))&&(d=1),"FORCE_COLOR"in h&&(d="true"===h.FORCE_COLOR?1:"false"===h.FORCE_COLOR?0:0===h.FORCE_COLOR.length?1:Math.min(parseInt(h.FORCE_COLOR,10),3)),a.exports={supportsColor:function(a){return i(j(a,a&&a.isTTY))},stdout:i(j(!0,f.isatty(1))),stderr:i(j(!0,f.isatty(2)))}},45892:a=>{"use strict";let b=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,c=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,d=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,e=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,f=new Map([["n","\n"],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1b"],["a","\x07"]]);function g(a){let b="u"===a[0],c="{"===a[1];return b&&!c&&5===a.length||"x"===a[0]&&3===a.length?String.fromCharCode(parseInt(a.slice(1),16)):b&&c?String.fromCodePoint(parseInt(a.slice(2,-1),16)):f.get(a)||a}function h(a,b){let c={};for(let a of b)for(let b of a.styles)c[b[0]]=a.inverse?null:b.slice(1);let d=a;for(let[a,b]of Object.entries(c))if(Array.isArray(b)){if(!(a in d))throw Error(`Unknown Chalk style: ${a}`);d=b.length>0?d[a](...b):d[a]}return d}a.exports=(a,f)=>{let i=[],j=[],k=[];if(f.replace(b,(b,f,l,m,n,o)=>{if(f)k.push(g(f));else if(m){let b=k.join("");k=[],j.push(0===i.length?b:h(a,i)(b)),i.push({inverse:l,styles:function(a){let b;c.lastIndex=0;let f=[];for(;null!==(b=c.exec(a));){let a=b[1];if(b[2]){let c=function(a,b){let c,f=[];for(let h of b.trim().split(/\s*,\s*/g)){let b=Number(h);if(Number.isNaN(b))if(c=h.match(d))f.push(c[2].replace(e,(a,b,c)=>b?g(b):c));else throw Error(`Invalid Chalk template style argument: ${h} (in style '${a}')`);else f.push(b)}return f}(a,b[2]);f.push([a].concat(c))}else f.push([a])}return f}(m)})}else if(n){if(0===i.length)throw Error("Found extraneous } in Chalk template literal");j.push(h(a,i)(k.join(""))),k=[],i.pop()}else k.push(o)}),j.push(k.join("")),i.length>0)throw Error(`Chalk template literal is missing ${i.length} closing bracket${1===i.length?"":"s"} (\`}\`)`);return j.join("")}},48473:(a,b,c)=>{"use strict";let d,e,f,g,h,i,j;c.r(b),c.d(b,{XaiService:()=>bK,decodeIdTokenEmail:()=>bJ,discoverEndpoints:()=>bI,validateOAuthEndpoint:()=>bH});var k=c(1708),l=c(76760),m=c(73136),n=c(31421),o=c(51455),p=c(48161),q=c(73024);function r(){return void 0===e&&(e=(()=>{try{return q.statSync("/run/.containerenv"),!0}catch{return!1}})()||(void 0===d&&(d=function(){try{return q.statSync("/.dockerenv"),!0}catch{return!1}}()||function(){try{return q.readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}()),d)),e}let s=()=>{if("linux"!==k.platform)return!1;if(p.release().toLowerCase().includes("microsoft"))return!r();try{if(q.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft"))return!r()}catch{}return!!(q.existsSync("/proc/sys/fs/binfmt_misc/WSLInterop")||q.existsSync("/run/WSL"))&&!r()},t=k.env.__IS_WSL_TEST__?s:s();var u=c(57975),v=c(4573);let w=(0,u.promisify)(n.execFile),x=()=>`${k.env.SYSTEMROOT||k.env.windir||String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`,y=async(a,b={})=>{let{powerShellPath:c,...d}=b,e=y.encodeCommand(a);return w(c??x(),[...y.argumentsPrefix,e],{encoding:"utf8",...d})};y.argumentsPrefix=["-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand"],y.encodeCommand=a=>v.Buffer.from(a,"utf16le").toString("base64"),y.escapeArgument=a=>`'${String(a).replaceAll("'","''")}'`;let z=(0,u.promisify)(n.execFile),A=(i="/mnt/",async function(){if(h)return h;let a="/etc/wsl.conf",b=!1;try{await o.access(a,o.constants.F_OK),b=!0}catch{}if(!b)return i;let c=function(a){for(let b of a.split("\n")){if(/^\s*#/.test(b))continue;let a=/^\s*root\s*=\s*(?<mountPoint>"[^"]*"|'[^']*'|[^#]*)/.exec(b);if(a)return a.groups.mountPoint.trim().replaceAll(/^["']|["']$/g,"")}}(await o.readFile(a,{encoding:"utf8"}));return void 0===c?i:h=(h=c).endsWith("/")?h:`${h}/`}),B=async()=>{let a=await A();return`${a}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`},C=t?B:x,D=async()=>f??=(async()=>{try{let a=await C();return await o.access(a,o.constants.X_OK),!0}catch{return!1}})(),E=async()=>{let a=await C(),b=String.raw`(Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice").ProgId`,{stdout:c}=await y(b,{powerShellPath:a});return c.trim()},F=async a=>{if(/^[a-z]+:\/\//i.test(a))return a;try{let{stdout:b}=await z("wslpath",["-aw",a],{encoding:"utf8"});return b.trim()}catch{return a}};function G(a,b,c){let d=c=>Object.defineProperty(a,b,{value:c,enumerable:!0,writable:!0});return Object.defineProperty(a,b,{configurable:!0,enumerable:!0,get(){let a=c();return d(a),a},set(a){d(a)}}),a}let H=(0,u.promisify)(n.execFile),I={MSEdgeHTM:{name:"Edge",id:"com.microsoft.edge"},MSEdgeBHTML:{name:"Edge Beta",id:"com.microsoft.edge.beta"},MSEdgeDHTML:{name:"Edge Dev",id:"com.microsoft.edge.dev"},AppXq0fevzme2pys62n3e0fbqa7peapykr8v:{name:"Edge",id:"com.microsoft.edge.old"},ChromeHTML:{name:"Chrome",id:"com.google.chrome"},ChromeBHTML:{name:"Chrome Beta",id:"com.google.chrome.beta"},ChromeDHTML:{name:"Chrome Dev",id:"com.google.chrome.dev"},ChromiumHTM:{name:"Chromium",id:"org.chromium.Chromium"},BraveHTML:{name:"Brave",id:"com.brave.Browser"},BraveBHTML:{name:"Brave Beta",id:"com.brave.Browser.beta"},BraveDHTML:{name:"Brave Dev",id:"com.brave.Browser.dev"},BraveSSHTM:{name:"Brave Nightly",id:"com.brave.Browser.nightly"},FirefoxURL:{name:"Firefox",id:"org.mozilla.firefox"},OperaStable:{name:"Opera",id:"com.operasoftware.Opera"},VivaldiHTM:{name:"Vivaldi",id:"com.vivaldi.Vivaldi"},"IE.HTTP":{name:"Internet Explorer",id:"com.microsoft.ie"}},J=new Map(Object.entries(I));class K extends Error{}async function L(a=H){let{stdout:b}=await a("reg",["QUERY"," HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\UserChoice","/v","ProgId"]),c=/ProgId\s*REG_SZ\s*(?<id>\S+)/.exec(b);if(!c)throw new K(`Cannot find Windows browser in stdout: ${JSON.stringify(b)}`);let{id:d}=c.groups,e=d.lastIndexOf("."),f=d.lastIndexOf("-"),g=-1===e?void 0:d.slice(0,e),h=-1===f?void 0:d.slice(0,f);return I[d]??I[g]??I[h]??{name:d,id:d}}let M=(0,u.promisify)(n.execFile);async function N(){if("darwin"!==k.platform)throw Error("macOS only");let{stdout:a}=await M("defaults",["read","com.apple.LaunchServices/com.apple.launchservices.secure","LSHandlers"]),b=/LSHandlerRoleAll = "(?!-)(?<id>[^"]+?)";\s+?LSHandlerURLScheme = (?:http|https);/.exec(a),c=b?.groups.id??"com.apple.Safari";return"com.apple.safari"===c?"com.apple.Safari":c}let O=(0,u.promisify)(n.execFile);async function P(a,{humanReadableOutput:b=!0,signal:c}={}){if("darwin"!==k.platform)throw Error("macOS only");let d={};c&&(d.signal=c);let{stdout:e}=await O("osascript",["-e",a,b?[]:["-ss"]],d);return e.trim()}async function Q(a){return P(`tell application "Finder" to set app_path to application file id "${a}" as string
|
|
2
|
+
tell application "System Events" to get value of property list item "CFBundleName" of property list file (app_path & ":Contents:Info.plist")`)}let R=(0,u.promisify)(n.execFile);async function S(){if("darwin"===k.platform){let a=await N();return{name:await Q(a),id:a}}if("linux"===k.platform){let{stdout:a}=await R("xdg-mime",["query","default","x-scheme-handler/http"]),b=a.trim();return{name:b.replace(/.desktop$/,"").replace("-"," ").toLowerCase().replaceAll(/(?:^|\s|-)\S/g,a=>a.toUpperCase()),id:b}}if("win32"===k.platform)return L();throw Error("Only macOS, Linux, and Windows are supported")}let T=!!(k.env.SSH_CONNECTION||k.env.SSH_CLIENT||k.env.SSH_TTY),U=Symbol("fallbackAttempt"),V=l.dirname((0,m.fileURLToPath)("file:///Users/cuongquach/projects/vibe/n9router/node_modules/open/index.js")),W=l.join(V,"xdg-open"),{platform:X,arch:Y}=k,Z=async(a,b)=>{if(0===a.length)return;let c=[];for(let d of a)try{return await b(d)}catch(a){c.push(a)}throw AggregateError(c,"Failed to open in all supported apps")},$=async a=>{let b,c=!0===(a={wait:!1,background:!1,newInstance:!1,allowNonzeroExitCode:!1,...a})[U];if(delete a[U],Array.isArray(a.app))return Z(a.app,b=>$({...a,app:b,[U]:!0}));let{name:d,arguments:e=[]}=a.app??{};if(e=[...e],Array.isArray(d))return Z(d,b=>$({...a,app:{name:b,arguments:e},[U]:!0}));if("browser"===d||"browserPrivate"===d){let b,c={"com.google.chrome":"chrome","google-chrome.desktop":"chrome","com.brave.browser":"brave","org.mozilla.firefox":"firefox","firefox.desktop":"firefox","com.microsoft.msedge":"edge","com.microsoft.edge":"edge","com.microsoft.edgemac":"edge","microsoft-edge.desktop":"edge","com.apple.safari":"safari"};if(t){let a=await E();b=J.get(a)??{}}else b=await S();if(b.id in c){let f=c[b.id.toLowerCase()];if("browserPrivate"===d){if("safari"===f)throw Error("Safari doesn't support opening in private mode via command line");e.push({chrome:"--incognito",brave:"--incognito",firefox:"--private-window",edge:"--inPrivate"}[f])}return $({...a,app:{name:ab[f],arguments:e}})}throw Error(`${b.name} is not supported as a default browser`)}let f=[],g={},h=!1;if(!t||r()||T||d||(h=await D()),"darwin"===X)b="open",a.wait&&f.push("--wait-apps"),a.background&&f.push("--background"),a.newInstance&&f.push("--new"),d&&f.push("-a",d);else if("win32"===X||h){b=await C(),f.push(...y.argumentsPrefix),t||(g.windowsVerbatimArguments=!0),t&&a.target&&(a.target=await F(a.target));let c=["$ProgressPreference = 'SilentlyContinue';","Start"];a.wait&&c.push("-Wait"),d?(c.push(y.escapeArgument(d)),a.target&&e.push(a.target)):a.target&&c.push(y.escapeArgument(a.target)),e.length>0&&c.push("-ArgumentList",(e=e.map(a=>y.escapeArgument(a))).join(",")),a.target=y.encodeCommand(c.join(" ")),a.wait||(g.stdio="ignore")}else{if(d)b=d;else{let a=!1;try{await o.access(W,o.constants.X_OK),a=!0}catch{}b=k.versions.electron??("android"===X||!V||"/"===V||!a)?"xdg-open":W}e.length>0&&f.push(...e),a.wait||(g.stdio="ignore",g.detached=!0)}"darwin"===X&&e.length>0&&f.push("--args",...e),a.target&&f.push(a.target);let i=n.spawn(b,f,g);return a.wait?new Promise((b,c)=>{i.once("error",c),i.once("close",d=>{a.allowNonzeroExitCode||0===d?b(i):c(Error(`Exited with code ${d}`))})}):c?new Promise((a,b)=>{i.once("error",b),i.once("spawn",()=>{i.once("close",c=>{(i.off("error",b),0!==c)?b(Error(`Exited with code ${c}`)):(i.unref(),a(i))})})}):(i.unref(),new Promise((a,b)=>{i.once("error",b),i.once("spawn",()=>{i.off("error",b),a(i)})}))};function _(a){if("string"==typeof a||Array.isArray(a))return a;let{[Y]:b}=a;if(!b)throw Error(`${Y} is not supported`);return b}function aa({[X]:a},{wsl:b}={}){if(b&&t)return _(b);if(!a)throw Error(`${X} is not supported`);return _(a)}let ab={browser:"browser",browserPrivate:"browserPrivate"};G(ab,"chrome",()=>aa({darwin:"google chrome",win32:"chrome",linux:["google-chrome","google-chrome-stable","chromium","chromium-browser"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe",x64:["/mnt/c/Program Files/Google/Chrome/Application/chrome.exe","/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe"]}})),G(ab,"brave",()=>aa({darwin:"brave browser",win32:"brave",linux:["brave-browser","brave"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe",x64:["/mnt/c/Program Files/BraveSoftware/Brave-Browser/Application/brave.exe","/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe"]}})),G(ab,"firefox",()=>aa({darwin:"firefox",win32:String.raw`C:\Program Files\Mozilla Firefox\firefox.exe`,linux:"firefox"},{wsl:"/mnt/c/Program Files/Mozilla Firefox/firefox.exe"})),G(ab,"edge",()=>aa({darwin:"microsoft edge",win32:"msedge",linux:["microsoft-edge","microsoft-edge-dev"]},{wsl:"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"})),G(ab,"safari",()=>aa({darwin:"Safari"}));let ac=(a,b)=>{if("string"!=typeof a)throw TypeError("Expected a `target`");return $({...b,target:a})};var ad=c(22898),ae=c(13808);c(91747);let af=(a=0)=>b=>`\u001B[${b+a}m`,ag=(a=0)=>b=>`\u001B[${38+a};5;${b}m`,ah=(a=0)=>(b,c,d)=>`\u001B[${38+a};2;${b};${c};${d}m`,ai={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(ai.modifier),[...Object.keys(ai.color),...Object.keys(ai.bgColor)];let aj=function(){let a=new Map;for(let[b,c]of Object.entries(ai)){for(let[b,d]of Object.entries(c))ai[b]={open:`\u001B[${d[0]}m`,close:`\u001B[${d[1]}m`},c[b]=ai[b],a.set(d[0],d[1]);Object.defineProperty(ai,b,{value:c,enumerable:!1})}return Object.defineProperty(ai,"codes",{value:a,enumerable:!1}),ai.color.close="\x1b[39m",ai.bgColor.close="\x1b[49m",ai.color.ansi=af(),ai.color.ansi256=ag(),ai.color.ansi16m=ah(),ai.bgColor.ansi=af(10),ai.bgColor.ansi256=ag(10),ai.bgColor.ansi16m=ah(10),Object.defineProperties(ai,{rgbToAnsi256:{value:(a,b,c)=>a===b&&b===c?a<8?16:a>248?231:Math.round((a-8)/247*24)+232:16+36*Math.round(a/255*5)+6*Math.round(b/255*5)+Math.round(c/255*5),enumerable:!1},hexToRgb:{value(a){let b=/[a-f\d]{6}|[a-f\d]{3}/i.exec(a.toString(16));if(!b)return[0,0,0];let[c]=b;3===c.length&&(c=[...c].map(a=>a+a).join(""));let d=Number.parseInt(c,16);return[d>>16&255,d>>8&255,255&d]},enumerable:!1},hexToAnsi256:{value:a=>ai.rgbToAnsi256(...ai.hexToRgb(a)),enumerable:!1},ansi256ToAnsi:{value(a){let b,c,d;if(a<8)return 30+a;if(a<16)return 90+(a-8);if(a>=232)c=b=((a-232)*10+8)/255,d=b;else{let e=(a-=16)%36;b=Math.floor(a/36)/5,c=Math.floor(e/6)/5,d=e%6/5}let e=2*Math.max(b,c,d);if(0===e)return 30;let f=30+(Math.round(d)<<2|Math.round(c)<<1|Math.round(b));return 2===e&&(f+=60),f},enumerable:!1},rgbToAnsi:{value:(a,b,c)=>ai.ansi256ToAnsi(ai.rgbToAnsi256(a,b,c)),enumerable:!1},hexToAnsi:{value:a=>ai.ansi256ToAnsi(ai.hexToAnsi256(a)),enumerable:!1}}),ai}();var ak=c(7066);function al(a,b=globalThis.Deno?globalThis.Deno.args:k.argv){let c=a.startsWith("-")?"":1===a.length?"-":"--",d=b.indexOf(c+a),e=b.indexOf("--");return -1!==d&&(-1===e||d<e)}let{env:am}=k;function an(a,b={}){var c;return 0!==(c=function(a,{streamIsTTY:b,sniffFlags:c=!0}={}){let d=function(){if("FORCE_COLOR"in am)return"true"===am.FORCE_COLOR?1:"false"===am.FORCE_COLOR?0:0===am.FORCE_COLOR.length?1:Math.min(Number.parseInt(am.FORCE_COLOR,10),3)}();void 0!==d&&(g=d);let e=c?g:d;if(0===e)return 0;if(c){if(al("color=16m")||al("color=full")||al("color=truecolor"))return 3;if(al("color=256"))return 2}if("TF_BUILD"in am&&"AGENT_NAME"in am)return 1;if(a&&!b&&void 0===e)return 0;let f=e||0;if("dumb"===am.TERM)return f;if("win32"===k.platform){let a=p.release().split(".");return Number(a[0])>=10&&Number(a[2])>=10586?Number(a[2])>=14931?3:2:1}if("CI"in am)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(a=>a in am)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(a=>a in am)||"codeship"===am.CI_NAME?1:f;if("TEAMCITY_VERSION"in am)return+!!/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(am.TEAMCITY_VERSION);if("truecolor"===am.COLORTERM||"xterm-kitty"===am.TERM||"xterm-ghostty"===am.TERM||"wezterm"===am.TERM)return 3;if("TERM_PROGRAM"in am){let a=Number.parseInt((am.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(am.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(am.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(am.TERM)||"COLORTERM"in am?1:f}(a,{streamIsTTY:a&&a.isTTY,...b}))&&{level:c,hasBasic:!0,has256:c>=2,has16m:c>=3}}al("no-color")||al("no-colors")||al("color=false")||al("color=never")?g=0:(al("color")||al("colors")||al("color=true")||al("color=always"))&&(g=1);let{stdout:ao,stderr:ap}={stdout:an({isTTY:ak.isatty(1)}),stderr:an({isTTY:ak.isatty(2)})},aq=Symbol("GENERATOR"),ar=Symbol("STYLER"),as=Symbol("IS_EMPTY"),at=["ansi","ansi","ansi256","ansi16m"],au=Object.create(null);function av(a){let b;return((a,b={})=>{if(b.level&&!(Number.isInteger(b.level)&&b.level>=0&&b.level<=3))throw Error("The `level` option should be an integer from 0 to 3");let c=ao?ao.level:0;a.level=void 0===b.level?c:b.level})(b=(...a)=>a.join(" "),a),Object.setPrototypeOf(b,av.prototype),b}for(let[a,b]of(Object.setPrototypeOf(av.prototype,Function.prototype),Object.entries(aj)))au[a]={get(){let c=az(this,ay(b.open,b.close,this[ar]),this[as]);return Object.defineProperty(this,a,{value:c}),c}};au.visible={get(){let a=az(this,this[ar],!0);return Object.defineProperty(this,"visible",{value:a}),a}};let aw=(a,b,c,...d)=>"rgb"===a?"ansi16m"===b?aj[c].ansi16m(...d):"ansi256"===b?aj[c].ansi256(aj.rgbToAnsi256(...d)):aj[c].ansi(aj.rgbToAnsi(...d)):"hex"===a?aw("rgb",b,c,...aj.hexToRgb(...d)):aj[c][a](...d);for(let a of["rgb","hex","ansi256"])au[a]={get(){let{level:b}=this;return function(...c){return az(this,ay(aw(a,at[b],"color",...c),aj.color.close,this[ar]),this[as])}}},au["bg"+a[0].toUpperCase()+a.slice(1)]={get(){let{level:b}=this;return function(...c){return az(this,ay(aw(a,at[b],"bgColor",...c),aj.bgColor.close,this[ar]),this[as])}}};let ax=Object.defineProperties(()=>{},{...au,level:{enumerable:!0,get(){return this[aq].level},set(a){this[aq].level=a}}}),ay=(a,b,c)=>{let d,e;return void 0===c?(d=a,e=b):(d=c.openAll+a,e=b+c.closeAll),{open:a,close:b,openAll:d,closeAll:e,parent:c}},az=(a,b,c)=>{let d=(...a)=>aA(d,1===a.length?""+a[0]:a.join(" "));return Object.setPrototypeOf(d,ax),d[aq]=a,d[ar]=b,d[as]=c,d},aA=(a,b)=>{if(a.level<=0||!b)return a[as]?"":b;let c=a[ar];if(void 0===c)return b;let{openAll:d,closeAll:e}=c;if(b.includes("\x1b"))for(;void 0!==c;)b=function(a,b,c){let d=a.indexOf(b);if(-1===d)return a;let e=b.length,f=0,g="";do g+=a.slice(f,d)+b+c,f=d+e,d=a.indexOf(b,f);while(-1!==d);return g+a.slice(f)}(b,c.close,c.open),c=c.parent;let f=b.indexOf("\n");return -1!==f&&(b=function(a,b,c,d){let e=0,f="";do{let g="\r"===a[d-1];f+=a.slice(e,g?d-1:d)+b+(g?"\r\n":"\n")+c,e=d+1,d=a.indexOf("\n",e)}while(-1!==d);return f+a.slice(e)}(b,e,d,f)),d+b+e};Object.defineProperties(av.prototype,au);let aB=av();av({level:ap?ap.level:0});let aC=(a,b,c,d)=>{if("length"===c||"prototype"===c||"arguments"===c||"caller"===c)return;let e=Object.getOwnPropertyDescriptor(a,c),f=Object.getOwnPropertyDescriptor(b,c);(aD(e,f)||!d)&&Object.defineProperty(a,c,f)},aD=function(a,b){return void 0===a||a.configurable||a.writable===b.writable&&a.enumerable===b.enumerable&&a.configurable===b.configurable&&(a.writable||a.value===b.value)},aE=(a,b)=>`/* Wrapped ${a}*/
|
|
3
|
+
${b}`,aF=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),aG=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),aH=new WeakMap,aI=(a,b={})=>{let c;if("function"!=typeof a)throw TypeError("Expected a function");let d=0,e=a.displayName||a.name||"<anonymous>",f=function(...g){if(aH.set(f,++d),1===d)c=a.apply(this,g),a=void 0;else if(!0===b.throw)throw Error(`Function \`${e}\` can only be called once`);return c};return!function(a,b,{ignoreNonConfigurable:c=!1}={}){let d,{name:e}=a;for(let d of Reflect.ownKeys(b))aC(a,b,d,c);(d=Object.getPrototypeOf(b))!==Object.getPrototypeOf(a)&&Object.setPrototypeOf(a,d),((a,b,c)=>{let d=""===c?"":`with ${c.trim()}() `,e=aE.bind(null,d,b.toString());Object.defineProperty(e,"name",aG);let{writable:f,enumerable:g,configurable:h}=aF;Object.defineProperty(a,"toString",{value:e,writable:f,enumerable:g,configurable:h})})(a,b,e)}(f,a),aH.set(f,d),f};aI.callCount=a=>{if(!aH.has(a))throw Error(`The given function \`${a.name}\` is not wrapped by the \`onetime\` package`);return aH.get(a)};let aJ=[];aJ.push("SIGHUP","SIGINT","SIGTERM"),"win32"!==process.platform&&aJ.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT"),"linux"===process.platform&&aJ.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");let aK=a=>!!a&&"object"==typeof a&&"function"==typeof a.removeListener&&"function"==typeof a.emit&&"function"==typeof a.reallyExit&&"function"==typeof a.listeners&&"function"==typeof a.kill&&"number"==typeof a.pid&&"function"==typeof a.on,aL=Symbol.for("signal-exit emitter"),aM=globalThis,aN=Object.defineProperty.bind(Object);class aO{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(aM[aL])return aM[aL];aN(aM,aL,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(a,b){this.listeners[a].push(b)}removeListener(a,b){let c=this.listeners[a],d=c.indexOf(b);-1!==d&&(0===d&&1===c.length?c.length=0:c.splice(d,1))}emit(a,b,c){if(this.emitted[a])return!1;this.emitted[a]=!0;let d=!1;for(let e of this.listeners[a])d=!0===e(b,c)||d;return"exit"===a&&(d=this.emit("afterExit",b,c)||d),d}}class aP{}class aQ extends aP{onExit(){return()=>{}}load(){}unload(){}}class aR extends aP{#a="win32"===aS.platform?"SIGINT":"SIGHUP";#b=new aO;#c;#d;#e;#f={};#g=!1;constructor(a){for(const b of(super(),this.#c=a,this.#f={},aJ))this.#f[b]=()=>{let c=this.#c.listeners(b),{count:d}=this.#b;if("object"==typeof a.__signal_exit_emitter__&&"number"==typeof a.__signal_exit_emitter__.count&&(d+=a.__signal_exit_emitter__.count),c.length===d){this.unload();let c=this.#b.emit("exit",null,b),d="SIGHUP"===b?this.#a:b;c||a.kill(a.pid,d)}};this.#e=a.reallyExit,this.#d=a.emit}onExit(a,b){if(!aK(this.#c))return()=>{};!1===this.#g&&this.load();let c=b?.alwaysLast?"afterExit":"exit";return this.#b.on(c,a),()=>{this.#b.removeListener(c,a),0===this.#b.listeners.exit.length&&0===this.#b.listeners.afterExit.length&&this.unload()}}load(){if(!this.#g){for(let a of(this.#g=!0,this.#b.count+=1,aJ))try{let b=this.#f[a];b&&this.#c.on(a,b)}catch(a){}this.#c.emit=(a,...b)=>this.#h(a,...b),this.#c.reallyExit=a=>this.#i(a)}}unload(){this.#g&&(this.#g=!1,aJ.forEach(a=>{let b=this.#f[a];if(!b)throw Error("Listener not defined for signal: "+a);try{this.#c.removeListener(a,b)}catch(a){}}),this.#c.emit=this.#d,this.#c.reallyExit=this.#e,this.#b.count-=1)}#i(a){return aK(this.#c)?(this.#c.exitCode=a||0,this.#b.emit("exit",this.#c.exitCode,null),this.#e.call(this.#c,this.#c.exitCode)):0}#h(a,...b){let c=this.#d;if(!("exit"===a&&aK(this.#c)))return c.call(this.#c,a,...b);{"number"==typeof b[0]&&(this.#c.exitCode=b[0]);let d=c.call(this.#c,a,...b);return this.#b.emit("exit",this.#c.exitCode,null),d}}}let aS=globalThis.process,{onExit:aT,load:aU,unload:aV}=(j=aK(aS)?new aR(aS):new aQ,{onExit:(a,b)=>j.onExit(a,b),load:()=>j.load(),unload:()=>j.unload()}),aW=k.stderr.isTTY?k.stderr:k.stdout.isTTY?k.stdout:void 0,aX=aW?aI(()=>{aT(()=>{aW.write("\x1b[?25h")},{alwaysLast:!0})}):()=>{},aY=!1,aZ={};aZ.show=(a=k.stderr)=>{a.isTTY&&(aY=!1,a.write("\x1b[?25h"))},aZ.hide=(a=k.stderr)=>{a.isTTY&&(aX(),aY=!0,a.write("\x1b[?25l"))},aZ.toggle=(a,b)=>{void 0!==a&&(aY=a),aY?aZ.show(b):aZ.hide(b)};let a$=JSON.parse('{"dots":{"interval":80,"frames":["⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"]},"dots2":{"interval":80,"frames":["⣾","⣽","⣻","⢿","⡿","⣟","⣯","⣷"]},"dots3":{"interval":80,"frames":["⠋","⠙","⠚","⠞","⠖","⠦","⠴","⠲","⠳","⠓"]},"dots4":{"interval":80,"frames":["⠄","⠆","⠇","⠋","⠙","⠸","⠰","⠠","⠰","⠸","⠙","⠋","⠇","⠆"]},"dots5":{"interval":80,"frames":["⠋","⠙","⠚","⠒","⠂","⠂","⠒","⠲","⠴","⠦","⠖","⠒","⠐","⠐","⠒","⠓","⠋"]},"dots6":{"interval":80,"frames":["⠁","⠉","⠙","⠚","⠒","⠂","⠂","⠒","⠲","⠴","⠤","⠄","⠄","⠤","⠴","⠲","⠒","⠂","⠂","⠒","⠚","⠙","⠉","⠁"]},"dots7":{"interval":80,"frames":["⠈","⠉","⠋","⠓","⠒","⠐","⠐","⠒","⠖","⠦","⠤","⠠","⠠","⠤","⠦","⠖","⠒","⠐","⠐","⠒","⠓","⠋","⠉","⠈"]},"dots8":{"interval":80,"frames":["⠁","⠁","⠉","⠙","⠚","⠒","⠂","⠂","⠒","⠲","⠴","⠤","⠄","⠄","⠤","⠠","⠠","⠤","⠦","⠖","⠒","⠐","⠐","⠒","⠓","⠋","⠉","⠈","⠈"]},"dots9":{"interval":80,"frames":["⢹","⢺","⢼","⣸","⣇","⡧","⡗","⡏"]},"dots10":{"interval":80,"frames":["⢄","⢂","⢁","⡁","⡈","⡐","⡠"]},"dots11":{"interval":100,"frames":["⠁","⠂","⠄","⡀","⢀","⠠","⠐","⠈"]},"dots12":{"interval":80,"frames":["⢀⠀","⡀⠀","⠄⠀","⢂⠀","⡂⠀","⠅⠀","⢃⠀","⡃⠀","⠍⠀","⢋⠀","⡋⠀","⠍⠁","⢋⠁","⡋⠁","⠍⠉","⠋⠉","⠋⠉","⠉⠙","⠉⠙","⠉⠩","⠈⢙","⠈⡙","⢈⠩","⡀⢙","⠄⡙","⢂⠩","⡂⢘","⠅⡘","⢃⠨","⡃⢐","⠍⡐","⢋⠠","⡋⢀","⠍⡁","⢋⠁","⡋⠁","⠍⠉","⠋⠉","⠋⠉","⠉⠙","⠉⠙","⠉⠩","⠈⢙","⠈⡙","⠈⠩","⠀⢙","⠀⡙","⠀⠩","⠀⢘","⠀⡘","⠀⠨","⠀⢐","⠀⡐","⠀⠠","⠀⢀","⠀⡀"]},"dots13":{"interval":80,"frames":["⣼","⣹","⢻","⠿","⡟","⣏","⣧","⣶"]},"dots14":{"interval":80,"frames":["⠉⠉","⠈⠙","⠀⠹","⠀⢸","⠀⣰","⢀⣠","⣀⣀","⣄⡀","⣆⠀","⡇⠀","⠏⠀","⠋⠁"]},"dots8Bit":{"interval":80,"frames":["⠀","⠁","⠂","⠃","⠄","⠅","⠆","⠇","⡀","⡁","⡂","⡃","⡄","⡅","⡆","⡇","⠈","⠉","⠊","⠋","⠌","⠍","⠎","⠏","⡈","⡉","⡊","⡋","⡌","⡍","⡎","⡏","⠐","⠑","⠒","⠓","⠔","⠕","⠖","⠗","⡐","⡑","⡒","⡓","⡔","⡕","⡖","⡗","⠘","⠙","⠚","⠛","⠜","⠝","⠞","⠟","⡘","⡙","⡚","⡛","⡜","⡝","⡞","⡟","⠠","⠡","⠢","⠣","⠤","⠥","⠦","⠧","⡠","⡡","⡢","⡣","⡤","⡥","⡦","⡧","⠨","⠩","⠪","⠫","⠬","⠭","⠮","⠯","⡨","⡩","⡪","⡫","⡬","⡭","⡮","⡯","⠰","⠱","⠲","⠳","⠴","⠵","⠶","⠷","⡰","⡱","⡲","⡳","⡴","⡵","⡶","⡷","⠸","⠹","⠺","⠻","⠼","⠽","⠾","⠿","⡸","⡹","⡺","⡻","⡼","⡽","⡾","⡿","⢀","⢁","⢂","⢃","⢄","⢅","⢆","⢇","⣀","⣁","⣂","⣃","⣄","⣅","⣆","⣇","⢈","⢉","⢊","⢋","⢌","⢍","⢎","⢏","⣈","⣉","⣊","⣋","⣌","⣍","⣎","⣏","⢐","⢑","⢒","⢓","⢔","⢕","⢖","⢗","⣐","⣑","⣒","⣓","⣔","⣕","⣖","⣗","⢘","⢙","⢚","⢛","⢜","⢝","⢞","⢟","⣘","⣙","⣚","⣛","⣜","⣝","⣞","⣟","⢠","⢡","⢢","⢣","⢤","⢥","⢦","⢧","⣠","⣡","⣢","⣣","⣤","⣥","⣦","⣧","⢨","⢩","⢪","⢫","⢬","⢭","⢮","⢯","⣨","⣩","⣪","⣫","⣬","⣭","⣮","⣯","⢰","⢱","⢲","⢳","⢴","⢵","⢶","⢷","⣰","⣱","⣲","⣳","⣴","⣵","⣶","⣷","⢸","⢹","⢺","⢻","⢼","⢽","⢾","⢿","⣸","⣹","⣺","⣻","⣼","⣽","⣾","⣿"]},"dotsCircle":{"interval":80,"frames":["⢎ ","⠎⠁","⠊⠑","⠈⠱"," ⡱","⢀⡰","⢄⡠","⢆⡀"]},"sand":{"interval":80,"frames":["⠁","⠂","⠄","⡀","⡈","⡐","⡠","⣀","⣁","⣂","⣄","⣌","⣔","⣤","⣥","⣦","⣮","⣶","⣷","⣿","⡿","⠿","⢟","⠟","⡛","⠛","⠫","⢋","⠋","⠍","⡉","⠉","⠑","⠡","⢁"]},"line":{"interval":130,"frames":["-","\\\\","|","/"]},"line2":{"interval":100,"frames":["⠂","-","–","—","–","-"]},"rollingLine":{"interval":80,"frames":["/ "," - "," \\\\ "," |"," |"," \\\\ "," - ","/ "]},"pipe":{"interval":100,"frames":["┤","┘","┴","└","├","┌","┬","┐"]},"simpleDots":{"interval":400,"frames":[". ",".. ","..."," "]},"simpleDotsScrolling":{"interval":200,"frames":[". ",".. ","..."," .."," ."," "]},"star":{"interval":70,"frames":["✶","✸","✹","✺","✹","✷"]},"star2":{"interval":80,"frames":["+","x","*"]},"flip":{"interval":70,"frames":["_","_","_","-","`","`","\'","\xb4","-","_","_","_"]},"hamburger":{"interval":100,"frames":["☱","☲","☴"]},"growVertical":{"interval":120,"frames":["▁","▃","▄","▅","▆","▇","▆","▅","▄","▃"]},"growHorizontal":{"interval":120,"frames":["▏","▎","▍","▌","▋","▊","▉","▊","▋","▌","▍","▎"]},"balloon":{"interval":140,"frames":[" ",".","o","O","@","*"," "]},"balloon2":{"interval":120,"frames":[".","o","O","\xb0","O","o","."]},"noise":{"interval":100,"frames":["▓","▒","░"]},"bounce":{"interval":120,"frames":["⠁","⠂","⠄","⠂"]},"boxBounce":{"interval":120,"frames":["▖","▘","▝","▗"]},"boxBounce2":{"interval":100,"frames":["▌","▀","▐","▄"]},"triangle":{"interval":50,"frames":["◢","◣","◤","◥"]},"binary":{"interval":80,"frames":["010010","001100","100101","111010","111101","010111","101011","111000","110011","110101"]},"arc":{"interval":100,"frames":["◜","◠","◝","◞","◡","◟"]},"circle":{"interval":120,"frames":["◡","⊙","◠"]},"squareCorners":{"interval":180,"frames":["◰","◳","◲","◱"]},"circleQuarters":{"interval":120,"frames":["◴","◷","◶","◵"]},"circleHalves":{"interval":50,"frames":["◐","◓","◑","◒"]},"squish":{"interval":100,"frames":["╫","╪"]},"toggle":{"interval":250,"frames":["⊶","⊷"]},"toggle2":{"interval":80,"frames":["▫","▪"]},"toggle3":{"interval":120,"frames":["□","■"]},"toggle4":{"interval":100,"frames":["■","□","▪","▫"]},"toggle5":{"interval":100,"frames":["▮","▯"]},"toggle6":{"interval":300,"frames":["ဝ","၀"]},"toggle7":{"interval":80,"frames":["⦾","⦿"]},"toggle8":{"interval":100,"frames":["◍","◌"]},"toggle9":{"interval":100,"frames":["◉","◎"]},"toggle10":{"interval":100,"frames":["㊂","㊀","㊁"]},"toggle11":{"interval":50,"frames":["⧇","⧆"]},"toggle12":{"interval":120,"frames":["☗","☖"]},"toggle13":{"interval":80,"frames":["=","*","-"]},"arrow":{"interval":100,"frames":["←","↖","↑","↗","→","↘","↓","↙"]},"arrow2":{"interval":80,"frames":["⬆️ ","↗️ ","➡️ ","↘️ ","⬇️ ","↙️ ","⬅️ ","↖️ "]},"arrow3":{"interval":120,"frames":["▹▹▹▹▹","▸▹▹▹▹","▹▸▹▹▹","▹▹▸▹▹","▹▹▹▸▹","▹▹▹▹▸"]},"bouncingBar":{"interval":80,"frames":["[ ]","[= ]","[== ]","[=== ]","[====]","[ ===]","[ ==]","[ =]","[ ]","[ =]","[ ==]","[ ===]","[====]","[=== ]","[== ]","[= ]"]},"bouncingBall":{"interval":80,"frames":["( ● )","( ● )","( ● )","( ● )","( ●)","( ● )","( ● )","( ● )","( ● )","(● )"]},"smiley":{"interval":200,"frames":["\uD83D\uDE04 ","\uD83D\uDE1D "]},"monkey":{"interval":300,"frames":["\uD83D\uDE48 ","\uD83D\uDE48 ","\uD83D\uDE49 ","\uD83D\uDE4A "]},"hearts":{"interval":100,"frames":["\uD83D\uDC9B ","\uD83D\uDC99 ","\uD83D\uDC9C ","\uD83D\uDC9A ","\uD83D\uDC97 "]},"clock":{"interval":100,"frames":["\uD83D\uDD5B ","\uD83D\uDD50 ","\uD83D\uDD51 ","\uD83D\uDD52 ","\uD83D\uDD53 ","\uD83D\uDD54 ","\uD83D\uDD55 ","\uD83D\uDD56 ","\uD83D\uDD57 ","\uD83D\uDD58 ","\uD83D\uDD59 ","\uD83D\uDD5A "]},"earth":{"interval":180,"frames":["\uD83C\uDF0D ","\uD83C\uDF0E ","\uD83C\uDF0F "]},"material":{"interval":17,"frames":["█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","███▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","████▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁","██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁","███████▁▁▁▁▁▁▁▁▁▁▁▁▁","████████▁▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","██████████▁▁▁▁▁▁▁▁▁▁","███████████▁▁▁▁▁▁▁▁▁","█████████████▁▁▁▁▁▁▁","██████████████▁▁▁▁▁▁","██████████████▁▁▁▁▁▁","▁██████████████▁▁▁▁▁","▁██████████████▁▁▁▁▁","▁██████████████▁▁▁▁▁","▁▁██████████████▁▁▁▁","▁▁▁██████████████▁▁▁","▁▁▁▁█████████████▁▁▁","▁▁▁▁██████████████▁▁","▁▁▁▁██████████████▁▁","▁▁▁▁▁██████████████▁","▁▁▁▁▁██████████████▁","▁▁▁▁▁██████████████▁","▁▁▁▁▁▁██████████████","▁▁▁▁▁▁██████████████","▁▁▁▁▁▁▁█████████████","▁▁▁▁▁▁▁█████████████","▁▁▁▁▁▁▁▁████████████","▁▁▁▁▁▁▁▁████████████","▁▁▁▁▁▁▁▁▁███████████","▁▁▁▁▁▁▁▁▁███████████","▁▁▁▁▁▁▁▁▁▁██████████","▁▁▁▁▁▁▁▁▁▁██████████","▁▁▁▁▁▁▁▁▁▁▁▁████████","▁▁▁▁▁▁▁▁▁▁▁▁▁███████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁██████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████","█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████","██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███","██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███","███▁▁▁▁▁▁▁▁▁▁▁▁▁▁███","████▁▁▁▁▁▁▁▁▁▁▁▁▁▁██","█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█","█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█","██████▁▁▁▁▁▁▁▁▁▁▁▁▁█","████████▁▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","███████████▁▁▁▁▁▁▁▁▁","████████████▁▁▁▁▁▁▁▁","████████████▁▁▁▁▁▁▁▁","██████████████▁▁▁▁▁▁","██████████████▁▁▁▁▁▁","▁██████████████▁▁▁▁▁","▁██████████████▁▁▁▁▁","▁▁▁█████████████▁▁▁▁","▁▁▁▁▁████████████▁▁▁","▁▁▁▁▁████████████▁▁▁","▁▁▁▁▁▁███████████▁▁▁","▁▁▁▁▁▁▁▁█████████▁▁▁","▁▁▁▁▁▁▁▁█████████▁▁▁","▁▁▁▁▁▁▁▁▁█████████▁▁","▁▁▁▁▁▁▁▁▁█████████▁▁","▁▁▁▁▁▁▁▁▁▁█████████▁","▁▁▁▁▁▁▁▁▁▁▁████████▁","▁▁▁▁▁▁▁▁▁▁▁████████▁","▁▁▁▁▁▁▁▁▁▁▁▁███████▁","▁▁▁▁▁▁▁▁▁▁▁▁███████▁","▁▁▁▁▁▁▁▁▁▁▁▁▁███████","▁▁▁▁▁▁▁▁▁▁▁▁▁███████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁"]},"moon":{"interval":80,"frames":["\uD83C\uDF11 ","\uD83C\uDF12 ","\uD83C\uDF13 ","\uD83C\uDF14 ","\uD83C\uDF15 ","\uD83C\uDF16 ","\uD83C\uDF17 ","\uD83C\uDF18 "]},"runner":{"interval":140,"frames":["\uD83D\uDEB6 ","\uD83C\uDFC3 "]},"pong":{"interval":80,"frames":["▐⠂ ▌","▐⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂▌","▐ ⠠▌","▐ ⡀▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐⠠ ▌"]},"shark":{"interval":120,"frames":["▐|\\\\____________▌","▐_|\\\\___________▌","▐__|\\\\__________▌","▐___|\\\\_________▌","▐____|\\\\________▌","▐_____|\\\\_______▌","▐______|\\\\______▌","▐_______|\\\\_____▌","▐________|\\\\____▌","▐_________|\\\\___▌","▐__________|\\\\__▌","▐___________|\\\\_▌","▐____________|\\\\▌","▐____________/|▌","▐___________/|_▌","▐__________/|__▌","▐_________/|___▌","▐________/|____▌","▐_______/|_____▌","▐______/|______▌","▐_____/|_______▌","▐____/|________▌","▐___/|_________▌","▐__/|__________▌","▐_/|___________▌","▐/|____________▌"]},"dqpb":{"interval":100,"frames":["d","q","p","b"]},"weather":{"interval":100,"frames":["☀️ ","☀️ ","☀️ ","\uD83C\uDF24 ","⛅️ ","\uD83C\uDF25 ","☁️ ","\uD83C\uDF27 ","\uD83C\uDF28 ","\uD83C\uDF27 ","\uD83C\uDF28 ","\uD83C\uDF27 ","\uD83C\uDF28 ","⛈ ","\uD83C\uDF28 ","\uD83C\uDF27 ","\uD83C\uDF28 ","☁️ ","\uD83C\uDF25 ","⛅️ ","\uD83C\uDF24 ","☀️ ","☀️ "]},"christmas":{"interval":400,"frames":["\uD83C\uDF32","\uD83C\uDF84"]},"grenade":{"interval":80,"frames":["، ","′ "," \xb4 "," ‾ "," ⸌"," ⸊"," |"," ⁎"," ⁕"," ෴ "," ⁓"," "," "," "]},"point":{"interval":125,"frames":["∙∙∙","●∙∙","∙●∙","∙∙●","∙∙∙"]},"layer":{"interval":150,"frames":["-","=","≡"]},"betaWave":{"interval":80,"frames":["ρββββββ","βρβββββ","ββρββββ","βββρβββ","ββββρββ","βββββρβ","ββββββρ"]},"fingerDance":{"interval":160,"frames":["\uD83E\uDD18 ","\uD83E\uDD1F ","\uD83D\uDD96 ","✋ ","\uD83E\uDD1A ","\uD83D\uDC46 "]},"fistBump":{"interval":80,"frames":["\uD83E\uDD1C \uD83E\uDD1B ","\uD83E\uDD1C \uD83E\uDD1B ","\uD83E\uDD1C \uD83E\uDD1B "," \uD83E\uDD1C \uD83E\uDD1B "," \uD83E\uDD1C\uD83E\uDD1B "," \uD83E\uDD1C✨\uD83E\uDD1B ","\uD83E\uDD1C ✨ \uD83E\uDD1B "]},"soccerHeader":{"interval":80,"frames":[" \uD83E\uDDD1⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️\uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 "]},"mindblown":{"interval":160,"frames":["\uD83D\uDE10 ","\uD83D\uDE10 ","\uD83D\uDE2E ","\uD83D\uDE2E ","\uD83D\uDE26 ","\uD83D\uDE26 ","\uD83D\uDE27 ","\uD83D\uDE27 ","\uD83E\uDD2F ","\uD83D\uDCA5 ","✨ "," "," "," "]},"speaker":{"interval":160,"frames":["\uD83D\uDD08 ","\uD83D\uDD09 ","\uD83D\uDD0A ","\uD83D\uDD09 "]},"orangePulse":{"interval":100,"frames":["\uD83D\uDD38 ","\uD83D\uDD36 ","\uD83D\uDFE0 ","\uD83D\uDFE0 ","\uD83D\uDD36 "]},"bluePulse":{"interval":100,"frames":["\uD83D\uDD39 ","\uD83D\uDD37 ","\uD83D\uDD35 ","\uD83D\uDD35 ","\uD83D\uDD37 "]},"orangeBluePulse":{"interval":100,"frames":["\uD83D\uDD38 ","\uD83D\uDD36 ","\uD83D\uDFE0 ","\uD83D\uDFE0 ","\uD83D\uDD36 ","\uD83D\uDD39 ","\uD83D\uDD37 ","\uD83D\uDD35 ","\uD83D\uDD35 ","\uD83D\uDD37 "]},"timeTravel":{"interval":100,"frames":["\uD83D\uDD5B ","\uD83D\uDD5A ","\uD83D\uDD59 ","\uD83D\uDD58 ","\uD83D\uDD57 ","\uD83D\uDD56 ","\uD83D\uDD55 ","\uD83D\uDD54 ","\uD83D\uDD53 ","\uD83D\uDD52 ","\uD83D\uDD51 ","\uD83D\uDD50 "]},"aesthetic":{"interval":80,"frames":["▰▱▱▱▱▱▱","▰▰▱▱▱▱▱","▰▰▰▱▱▱▱","▰▰▰▰▱▱▱","▰▰▰▰▰▱▱","▰▰▰▰▰▰▱","▰▰▰▰▰▰▰","▰▱▱▱▱▱▱"]},"dwarfFortress":{"interval":80,"frames":[" ██████\xa3\xa3\xa3 ","☺██████\xa3\xa3\xa3 ","☺██████\xa3\xa3\xa3 ","☺▓█████\xa3\xa3\xa3 ","☺▓█████\xa3\xa3\xa3 ","☺▒█████\xa3\xa3\xa3 ","☺▒█████\xa3\xa3\xa3 ","☺░█████\xa3\xa3\xa3 ","☺░█████\xa3\xa3\xa3 ","☺ █████\xa3\xa3\xa3 "," ☺█████\xa3\xa3\xa3 "," ☺█████\xa3\xa3\xa3 "," ☺▓████\xa3\xa3\xa3 "," ☺▓████\xa3\xa3\xa3 "," ☺▒████\xa3\xa3\xa3 "," ☺▒████\xa3\xa3\xa3 "," ☺░████\xa3\xa3\xa3 "," ☺░████\xa3\xa3\xa3 "," ☺ ████\xa3\xa3\xa3 "," ☺████\xa3\xa3\xa3 "," ☺████\xa3\xa3\xa3 "," ☺▓███\xa3\xa3\xa3 "," ☺▓███\xa3\xa3\xa3 "," ☺▒███\xa3\xa3\xa3 "," ☺▒███\xa3\xa3\xa3 "," ☺░███\xa3\xa3\xa3 "," ☺░███\xa3\xa3\xa3 "," ☺ ███\xa3\xa3\xa3 "," ☺███\xa3\xa3\xa3 "," ☺███\xa3\xa3\xa3 "," ☺▓██\xa3\xa3\xa3 "," ☺▓██\xa3\xa3\xa3 "," ☺▒██\xa3\xa3\xa3 "," ☺▒██\xa3\xa3\xa3 "," ☺░██\xa3\xa3\xa3 "," ☺░██\xa3\xa3\xa3 "," ☺ ██\xa3\xa3\xa3 "," ☺██\xa3\xa3\xa3 "," ☺██\xa3\xa3\xa3 "," ☺▓█\xa3\xa3\xa3 "," ☺▓█\xa3\xa3\xa3 "," ☺▒█\xa3\xa3\xa3 "," ☺▒█\xa3\xa3\xa3 "," ☺░█\xa3\xa3\xa3 "," ☺░█\xa3\xa3\xa3 "," ☺ █\xa3\xa3\xa3 "," ☺█\xa3\xa3\xa3 "," ☺█\xa3\xa3\xa3 "," ☺▓\xa3\xa3\xa3 "," ☺▓\xa3\xa3\xa3 "," ☺▒\xa3\xa3\xa3 "," ☺▒\xa3\xa3\xa3 "," ☺░\xa3\xa3\xa3 "," ☺░\xa3\xa3\xa3 "," ☺ \xa3\xa3\xa3 "," ☺\xa3\xa3\xa3 "," ☺\xa3\xa3\xa3 "," ☺▓\xa3\xa3 "," ☺▓\xa3\xa3 "," ☺▒\xa3\xa3 "," ☺▒\xa3\xa3 "," ☺░\xa3\xa3 "," ☺░\xa3\xa3 "," ☺ \xa3\xa3 "," ☺\xa3\xa3 "," ☺\xa3\xa3 "," ☺▓\xa3 "," ☺▓\xa3 "," ☺▒\xa3 "," ☺▒\xa3 "," ☺░\xa3 "," ☺░\xa3 "," ☺ \xa3 "," ☺\xa3 "," ☺\xa3 "," ☺▓ "," ☺▓ "," ☺▒ "," ☺▒ "," ☺░ "," ☺░ "," ☺ "," ☺ &"," ☺ ☼&"," ☺ ☼ &"," ☺☼ &"," ☺☼ & "," ‼ & "," ☺ & "," ‼ & "," ☺ & "," ‼ & "," ☺ & ","‼ & "," & "," & "," & ░ "," & ▒ "," & ▓ "," & \xa3 "," & ░\xa3 "," & ▒\xa3 "," & ▓\xa3 "," & \xa3\xa3 "," & ░\xa3\xa3 "," & ▒\xa3\xa3 ","& ▓\xa3\xa3 ","& \xa3\xa3\xa3 "," ░\xa3\xa3\xa3 "," ▒\xa3\xa3\xa3 "," ▓\xa3\xa3\xa3 "," █\xa3\xa3\xa3 "," ░█\xa3\xa3\xa3 "," ▒█\xa3\xa3\xa3 "," ▓█\xa3\xa3\xa3 "," ██\xa3\xa3\xa3 "," ░██\xa3\xa3\xa3 "," ▒██\xa3\xa3\xa3 "," ▓██\xa3\xa3\xa3 "," ███\xa3\xa3\xa3 "," ░███\xa3\xa3\xa3 "," ▒███\xa3\xa3\xa3 "," ▓███\xa3\xa3\xa3 "," ████\xa3\xa3\xa3 "," ░████\xa3\xa3\xa3 "," ▒████\xa3\xa3\xa3 "," ▓████\xa3\xa3\xa3 "," █████\xa3\xa3\xa3 "," ░█████\xa3\xa3\xa3 "," ▒█████\xa3\xa3\xa3 "," ▓█████\xa3\xa3\xa3 "," ██████\xa3\xa3\xa3 "," ██████\xa3\xa3\xa3 "]},"fish":{"interval":80,"frames":["~~~~~~~~~~~~~~~~~~~~","> ~~~~~~~~~~~~~~~~~~","\xba> ~~~~~~~~~~~~~~~~~","(\xba> ~~~~~~~~~~~~~~~~","((\xba> ~~~~~~~~~~~~~~~","<((\xba> ~~~~~~~~~~~~~~","><((\xba> ~~~~~~~~~~~~~"," ><((\xba> ~~~~~~~~~~~~","~ ><((\xba> ~~~~~~~~~~~","~~ <>((\xba> ~~~~~~~~~~","~~~ ><((\xba> ~~~~~~~~~","~~~~ <>((\xba> ~~~~~~~~","~~~~~ ><((\xba> ~~~~~~~","~~~~~~ <>((\xba> ~~~~~~","~~~~~~~ ><((\xba> ~~~~~","~~~~~~~~ <>((\xba> ~~~~","~~~~~~~~~ ><((\xba> ~~~","~~~~~~~~~~ <>((\xba> ~~","~~~~~~~~~~~ ><((\xba> ~","~~~~~~~~~~~~ <>((\xba> ","~~~~~~~~~~~~~ ><((\xba>","~~~~~~~~~~~~~~ <>((\xba","~~~~~~~~~~~~~~~ ><((","~~~~~~~~~~~~~~~~ <>(","~~~~~~~~~~~~~~~~~ ><","~~~~~~~~~~~~~~~~~~ <","~~~~~~~~~~~~~~~~~~~~"]}}');Object.keys(a$);let a_=ak?.WriteStream?.prototype?.hasColors?.()??!1,a0=(a,b)=>{if(!a_)return a=>a;let c=`\u001B[${a}m`,d=`\u001B[${b}m`;return a=>{let e=a+"",f=e.indexOf(d);if(-1===f)return c+e+d;let g=c,h=0,i=(22===b?d:"")+c;for(;-1!==f;)g+=e.slice(h,f)+i,h=f+d.length,f=e.indexOf(d,h);return g+(e.slice(h)+d)}};a0(0,0),a0(1,22),a0(2,22),a0(3,23),a0(4,24),a0(53,55),a0(7,27),a0(8,28),a0(9,29),a0(30,39);let a1=a0(31,39),a2=a0(32,39),a3=a0(33,39),a4=a0(34,39);function a5(){let{env:a}=k,{TERM:b,TERM_PROGRAM:c}=a;return"win32"!==k.platform?"linux"!==b:!!a.WT_SESSION||!!a.TERMINUS_SUBLIME||"{cmd::Cmder}"===a.ConEmuTask||"Terminus-Sublime"===c||"vscode"===c||"xterm-256color"===b||"alacritty"===b||"rxvt-unicode"===b||"rxvt-unicode-256color"===b||"JetBrains-JediTerm"===a.TERMINAL_EMULATOR}a0(35,39),a0(36,39),a0(37,39),a0(90,39),a0(40,49),a0(41,49),a0(42,49),a0(43,49),a0(44,49),a0(45,49),a0(46,49),a0(47,49),a0(100,49),a0(91,39),a0(92,39),a0(93,39),a0(94,39),a0(95,39),a0(96,39),a0(97,39),a0(101,49),a0(102,49),a0(103,49),a0(104,49),a0(105,49),a0(106,49),a0(107,49);let a6=a5(),a7=a4(a6?"ℹ":"i"),a8=a2(a6?"✔":"√"),a9=a3(a6?"⚠":"‼"),ba=a1(a6?"✖":"\xd7"),bb=function({onlyFirst:a=!1}={}){return RegExp("(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]",a?void 0:"g")}(),bc=[161,161,164,164,167,168,170,170,173,174,176,180,182,186,188,191,198,198,208,208,215,216,222,225,230,230,232,234,236,237,240,240,242,243,247,250,252,252,254,254,257,257,273,273,275,275,283,283,294,295,299,299,305,307,312,312,319,322,324,324,328,331,333,333,338,339,358,359,363,363,462,462,464,464,466,466,468,468,470,470,472,472,474,474,476,476,593,593,609,609,708,708,711,711,713,715,717,717,720,720,728,731,733,733,735,735,768,879,913,929,931,937,945,961,963,969,1025,1025,1040,1103,1105,1105,8208,8208,8211,8214,8216,8217,8220,8221,8224,8226,8228,8231,8240,8240,8242,8243,8245,8245,8251,8251,8254,8254,8308,8308,8319,8319,8321,8324,8364,8364,8451,8451,8453,8453,8457,8457,8467,8467,8470,8470,8481,8482,8486,8486,8491,8491,8531,8532,8539,8542,8544,8555,8560,8569,8585,8585,8592,8601,8632,8633,8658,8658,8660,8660,8679,8679,8704,8704,8706,8707,8711,8712,8715,8715,8719,8719,8721,8721,8725,8725,8730,8730,8733,8736,8739,8739,8741,8741,8743,8748,8750,8750,8756,8759,8764,8765,8776,8776,8780,8780,8786,8786,8800,8801,8804,8807,8810,8811,8814,8815,8834,8835,8838,8839,8853,8853,8857,8857,8869,8869,8895,8895,8978,8978,9312,9449,9451,9547,9552,9587,9600,9615,9618,9621,9632,9633,9635,9641,9650,9651,9654,9655,9660,9661,9664,9665,9670,9672,9675,9675,9678,9681,9698,9701,9711,9711,9733,9734,9737,9737,9742,9743,9756,9756,9758,9758,9792,9792,9794,9794,9824,9825,9827,9829,9831,9834,9836,9837,9839,9839,9886,9887,9919,9919,9926,9933,9935,9939,9941,9953,9955,9955,9960,9961,9963,9969,9972,9972,9974,9977,9979,9980,9982,9983,10045,10045,10102,10111,11094,11097,12872,12879,57344,63743,65024,65039,65533,65533,127232,127242,127248,127277,127280,127337,127344,127373,127375,127376,127387,127404,917760,917999,983040,1048573,1048576,1114109],bd=[12288,12288,65281,65376,65504,65510],be=[8361,8361,65377,65470,65474,65479,65482,65487,65490,65495,65498,65500,65512,65518],bf=[32,126,162,163,165,166,172,172,175,175,10214,10221,10629,10630],bg=[4352,4447,8986,8987,9001,9002,9193,9196,9200,9200,9203,9203,9725,9726,9748,9749,9776,9783,9800,9811,9855,9855,9866,9871,9875,9875,9889,9889,9898,9899,9917,9918,9924,9925,9934,9934,9940,9940,9962,9962,9970,9971,9973,9973,9978,9978,9981,9981,9989,9989,9994,9995,10024,10024,10060,10060,10062,10062,10067,10069,10071,10071,10133,10135,10160,10160,10175,10175,11035,11036,11088,11088,11093,11093,11904,11929,11931,12019,12032,12245,12272,12287,12289,12350,12353,12438,12441,12543,12549,12591,12593,12686,12688,12773,12783,12830,12832,12871,12880,42124,42128,42182,43360,43388,44032,55203,63744,64255,65040,65049,65072,65106,65108,65126,65128,65131,94176,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,119552,119638,119648,119670,126980,126980,127183,127183,127374,127374,127377,127386,127488,127490,127504,127547,127552,127560,127568,127569,127584,127589,127744,127776,127789,127797,127799,127868,127870,127891,127904,127946,127951,127955,127968,127984,127988,127988,127992,128062,128064,128064,128066,128252,128255,128317,128331,128334,128336,128359,128378,128378,128405,128406,128420,128420,128507,128591,128640,128709,128716,128716,128720,128722,128725,128728,128732,128735,128747,128748,128756,128764,128992,129003,129008,129008,129292,129338,129340,129349,129351,129535,129648,129660,129664,129674,129678,129734,129736,129736,129741,129756,129759,129770,129775,129784,131072,196605,196608,262141],bh=(a,b)=>{let c=0,d=Math.floor(a.length/2)-1;for(;c<=d;){let e=Math.floor((c+d)/2),f=2*e;if(b<a[f])d=e-1;else{if(!(b>a[f+1]))return!0;c=e+1}}return!1},bi=bc[0],bj=bc.at(-1),bk=bd[0],bl=bd.at(-1);be[0],be.at(-1),bf[0],bf.at(-1);let bm=bg[0],bn=bg.at(-1),[bo,bp]=function(a){let b=a[0],c=a[1];for(let d=0;d<a.length;d+=2){let e=a[d],f=a[d+1];if(19968>=e&&19968<=f)return[e,f];f-e>c-b&&(b=e,c=f)}return[b,c]}(bg);function bq(a,{ambiguousAsWide:b=!1}={}){if(!Number.isSafeInteger(a))throw TypeError(`Expected a code point, got \`${typeof a}\`.`);return!(a<bk)&&!(a>bl)&&bh(bd,a)||a>=bo&&a<=bp||!(a<bm)&&!(a>bn)&&bh(bg,a)||b&&!(a<bi)&&!(a>bj)&&bh(bc,a)?2:1}let br=new Intl.Segmenter,bs=/^(?:\p{Default_Ignorable_Code_Point}|\p{Control}|\p{Format}|\p{Mark}|\p{Surrogate})+$/v,bt=/^[\p{Default_Ignorable_Code_Point}\p{Control}\p{Format}\p{Mark}\p{Surrogate}]+/v,bu=/^\p{RGI_Emoji}$/v,bv=/^[\d#*]\u20E3$/,bw=/\p{Extended_Pictographic}/gu;class bx{#j=0;#k;#l=!1;#m=!1;#n=a=>{a?.length&&("string"==typeof a?a.codePointAt(0):a[0])===3&&(k.listenerCount("SIGINT")>0?k.emit("SIGINT"):k.kill(k.pid,"SIGINT"))};start(){this.#j++,1===this.#j&&this.#o()}stop(){0!==this.#j&&0==--this.#j&&this.#p()}#o(){let{stdin:a}=k;if("win32"===k.platform||!a?.isTTY||"function"!=typeof a.setRawMode){this.#k=void 0;return}this.#k=a,this.#l=a.isPaused(),this.#m=!!a.isRaw,a.setRawMode(!0),a.prependListener("data",this.#n),this.#l&&a.resume()}#p(){if(!this.#k)return;let a=this.#k;a.off("data",this.#n),a.isTTY&&a.setRawMode?.(this.#m),this.#l&&a.pause(),this.#k=void 0,this.#l=!1,this.#m=!1}}let by=Object.freeze(new bx),bz=new Map;class bA{#q=0;#r=-1;#s=0;#t;#u;#v;#w;#x=new Map;#y=!1;#z;#A;#B=!1;color;#C(a){this.#y=!0;try{return a()}finally{this.#y=!1}}#D(){this.isSpinning&&this.render()}#E(a,b){return null==a?"":"string"==typeof a?a:Buffer.isBuffer(a)||ArrayBuffer.isView(a)?Buffer.from(a).toString("string"==typeof b&&b&&"buffer"!==b?b:"utf8"):String(a)}#F(a){if(!a)return!1;let b=a.at(-1);return"\n"===b||"\r"===b}#G(){this.#A||(this.#A=setTimeout(()=>{this.#A=void 0,this.isSpinning&&this.#D()},200),"function"==typeof this.#A?.unref&&this.#A.unref())}#H(){this.#A&&(clearTimeout(this.#A),this.#A=void 0)}#I(a,b,c,d){return this.#J(c," ")+a+("string"==typeof b?(a?" ":"")+b:"")+this.#K(d," ")}constructor(a){"string"==typeof a&&(a={text:a}),this.#t={color:"cyan",stream:k.stderr,discardStdin:!0,hideCursor:!0,...a},this.color=this.#t.color,this.#v=this.#t.stream,"boolean"!=typeof this.#t.isEnabled&&(this.#t.isEnabled=function({stream:a=process.stdout}={}){return!!(a&&a.isTTY&&"dumb"!==process.env.TERM&&!("CI"in process.env))}({stream:this.#v})),"boolean"!=typeof this.#t.isSilent&&(this.#t.isSilent=!1);const b=this.#t.interval;this.spinner=this.#t.spinner,this.#t.interval=b,this.text=this.#t.text,this.prefixText=this.#t.prefixText,this.suffixText=this.#t.suffixText,this.indent=this.#t.indent}get indent(){return this.#t.indent}set indent(a=0){if(!(a>=0&&Number.isInteger(a)))throw Error("The `indent` option must be an integer from 0 and up");this.#t.indent=a}get interval(){return this.#t.interval??this.#u.interval??100}get spinner(){return this.#u}set spinner(a){if(this.#r=-1,this.#t.interval=void 0,"object"==typeof a){if(!Array.isArray(a.frames)||0===a.frames.length||a.frames.some(a=>"string"!=typeof a))throw Error("The given spinner must have a non-empty `frames` array of strings");if(void 0!==a.interval&&!(Number.isInteger(a.interval)&&a.interval>0))throw Error("`spinner.interval` must be a positive integer if provided");this.#u=a}else if(a5())if(void 0===a)this.#u=a$.dots;else if("default"!==a&&a$[a])this.#u=a$[a];else throw Error(`There is no built-in spinner named '${a}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`);else this.#u=a$.line}get text(){return this.#t.text}set text(a=""){this.#t.text=a}get prefixText(){return this.#t.prefixText}set prefixText(a=""){this.#t.prefixText=a}get suffixText(){return this.#t.suffixText}set suffixText(a=""){this.#t.suffixText=a}get isSpinning(){return void 0!==this.#w}#L(a,b,c=!1){let d="function"==typeof a?a():a;return"string"==typeof d&&""!==d?c?b+d:d+b:""}#J(a=this.#t.prefixText,b=" "){return this.#L(a,b,!1)}#K(a=this.#t.suffixText,b=" "){return this.#L(a,b,!0)}#M(a,b){let c=0;for(let d of(0,u.stripVTControlCharacters)(a).split("\n"))c+=Math.max(1,Math.ceil(function(a,b={}){if("string"!=typeof a||0===a.length)return 0;let{ambiguousIsNarrow:c=!0,countAnsiEscapeCodes:d=!1}=b,e=a;if(!d&&(e.includes("\x1b")||e.includes("\x9b"))&&(e=function(a){if("string"!=typeof a)throw TypeError(`Expected a \`string\`, got \`${typeof a}\``);return a.includes("\x1b")||a.includes("\x9b")?a.replace(bb,""):a}(e)),0===e.length)return 0;if(/^[\u0020-\u007E]*$/.test(e))return e.length;let f=0,g={ambiguousAsWide:!c};for(let{segment:a}of br.segment(e))if(!bs.test(a)){if(bu.test(a)||function(a){if(a.length>50)return!1;if(bv.test(a))return!0;if(a.includes("")){let b=a.match(bw);return null!==b&&b.length>=2}return!1}(a)){f+=2;continue}f+=bq(a.replace(bt,"").codePointAt(0),g),f+=function(a,b){let c=0;if(a.length>1)for(let d of a.slice(1))d>=""&&d<=""&&(c+=bq(d.codePointAt(0),b));return c}(a,g)}return f}(d)/b));return c}get isEnabled(){return this.#t.isEnabled&&!this.#t.isSilent}set isEnabled(a){if("boolean"!=typeof a)throw TypeError("The `isEnabled` option must be a boolean");this.#t.isEnabled=a}get isSilent(){return this.#t.isSilent}set isSilent(a){if("boolean"!=typeof a)throw TypeError("The `isSilent` option must be a boolean");this.#t.isSilent=a}frame(){let a=Date.now();(-1===this.#r||a-this.#s>=this.interval)&&(this.#r=(this.#r+1)%this.#u.frames.length,this.#s=a);let{frames:b}=this.#u,c=b[this.#r];return this.color&&(c=aB[this.color](c)),this.#J(this.#t.prefixText," ")+c+("string"==typeof this.text?" "+this.text:"")+this.#K(this.#t.suffixText," ")}clear(){return this.isEnabled&&this.#v.isTTY&&(this.#C(()=>{this.#v.cursorTo(0);for(let a=0;a<this.#q;a++)a>0&&this.#v.moveCursor(0,-1),this.#v.clearLine(1);this.#t.indent&&this.#v.cursorTo(this.#t.indent)}),this.#q=0),this}#N(a){if(!a||this.#x.has(a)||!a.isTTY||"function"!=typeof a.write)return;bz.has(a)&&console.warn("[ora] Multiple concurrent spinners detected. This may cause visual corruption. Use one spinner at a time.");let b=a.write;this.#x.set(a,b),bz.set(a,this),a.write=(c,d,e)=>this.#O(a,b,c,d,e)}#P(){if(this.isEnabled&&!(this.#x.size>0))for(let a of new Set([this.#v,k.stdout,k.stderr]))this.#N(a)}#Q(){for(let[a,b]of this.#x)a.write=b,bz.get(a)===this&&bz.delete(a);this.#x.clear()}#O(a,b,c,d,e){if("function"==typeof d&&(e=d,d=void 0),this.#y)return b.call(a,c,d,e);this.clear();let f=this.#E(c,d),g=this.#F(f),h=b.call(a,c,d,e);return g?this.#H():f.length>0&&this.#G(),this.isSpinning&&!this.#A&&this.render(),h}render(){if(!this.isEnabled||this.#z||this.#A)return this;let a=this.#v.isTTY,b=!1;try{a&&(this.#C(()=>this.#v.write("\x1b[?2026h")),b=!0),this.clear();let c=this.frame(),d=this.#v.columns??80,e=this.#M(c,d),f=this.#v.rows;f&&f>1&&e>f&&(c=[...c.split("\n").slice(0,f-1),"... (content truncated to fit terminal)"].join("\n"));let g=this.#C(()=>this.#v.write(c));!1===g&&this.#v.isTTY&&(this.#z=()=>{this.#z=void 0,this.#D()},this.#v.once("drain",this.#z)),this.#q=this.#M(c,d)}finally{b&&this.#C(()=>this.#v.write("\x1b[?2026l"))}return this}start(a){if(a&&(this.text=a),this.isSilent)return this;if(!this.isEnabled){let a=this.text?"-":"",b=" ".repeat(this.#t.indent)+this.#I(a,this.text,this.#t.prefixText,this.#t.suffixText);return""!==b.trim()&&this.#C(()=>this.#v.write(b+"\n")),this}return this.isSpinning||(this.#t.hideCursor&&aZ.hide(this.#v),this.#t.discardStdin&&k.stdin.isTTY&&(by.start(),this.#B=!0),this.#P(),this.render(),this.#w=setInterval(this.render.bind(this),this.interval)),this}stop(){return clearInterval(this.#w),this.#w=void 0,this.#r=-1,this.#s=0,this.#H(),this.#Q(),this.#z&&(this.#v.removeListener("drain",this.#z),this.#z=void 0),this.isEnabled&&(this.clear(),this.#t.hideCursor&&aZ.show(this.#v)),this.#B&&(this.#B=!1,by.stop()),this}succeed(a){return this.stopAndPersist({symbol:a8,text:a})}fail(a){return this.stopAndPersist({symbol:ba,text:a})}warn(a){return this.stopAndPersist({symbol:a9,text:a})}info(a){return this.stopAndPersist({symbol:a7,text:a})}stopAndPersist(a={}){if(this.isSilent)return this;let b=a.symbol??" ",c=a.text??this.text,d=a.prefixText??this.#t.prefixText,e=a.suffixText??this.#t.suffixText,f=this.#I(b,c,d,e)+"\n";return this.stop(),this.#C(()=>this.#v.write(f)),this}}var bB=c(92990);class bC{constructor(a){this.config=a}buildAuthUrl(a,b,c,d={}){let e=new URLSearchParams({client_id:this.config.clientId,response_type:"code",redirect_uri:a,state:b,code_challenge:c,code_challenge_method:this.config.codeChallengeMethod,...d});return`${this.config.authorizeUrl}?${e.toString()}`}async startAuthFlow(a,b){let c=new bA("Starting local server...").start(),d=null,{port:e,close:f}=await (0,ad.Pd)(a=>{d=a}),g=`http://localhost:${e}/callback`;return c.succeed(`Local server started on port ${e}`),{redirectUri:g,port:e,close:f,waitForCallback:async()=>{if(c.start(`Waiting for ${b} authorization...`),await new Promise((a,b)=>{let c=setTimeout(()=>{b(Error("Authentication timeout (5 minutes)"))},bB.Ww),e=setInterval(()=>{d&&(clearInterval(e),clearTimeout(c),a())},100)}),c.stop(),f(),d.error)throw Error(d.error_description||d.error);if(!d.code)throw Error("No authorization code received");return d}}}async exchangeCode(a,b,c,d="application/x-www-form-urlencoded"){let e="application/json"===d?JSON.stringify({grant_type:"authorization_code",client_id:this.config.clientId,code:a,redirect_uri:b,code_verifier:c}):new URLSearchParams({grant_type:"authorization_code",client_id:this.config.clientId,code:a,redirect_uri:b,code_verifier:c}),f=await fetch(this.config.tokenUrl,{method:"POST",headers:{"Content-Type":d,Accept:"application/json"},body:e});if(!f.ok){let a=await f.text();throw Error(`Token exchange failed: ${a}`)}return await f.json()}async authenticate(a,b){let{codeVerifier:c,codeChallenge:d,state:e}=(0,ae.lz)(),{redirectUri:f,waitForCallback:g}=await this.startAuthFlow(null,a),h=b(f,e,d);console.log(`
|
|
4
|
+
Opening browser for ${a} authentication...`),console.log(`If browser doesn't open, visit:
|
|
5
|
+
${h}
|
|
6
|
+
`),await ac(h);let i=await g();if(i.state!==e)throw Error("Invalid state parameter");return{code:i.code,state:i.state,codeVerifier:c,redirectUri:f}}}var bD=c(55511),bE=c.n(bD),bF=c(73159);let bG=null;function bH(a,b){let c,d=String(a||"").trim();if(!d)throw Error(`xai discovery ${b} is empty`);try{c=new URL(d)}catch(a){throw Error(`xai discovery ${b} is invalid: ${a.message}`)}if("https:"!==c.protocol)throw Error(`xai discovery ${b} must use https: ${d}`);let e=c.hostname.toLowerCase().trim();if("x.ai"!==e&&!e.endsWith(".x.ai"))throw Error(`xai discovery ${b} host ${e} is not on x.ai`);return d}async function bI(){if(bG)return bG;try{let a=await fetch(bF.oT.discoveryUrl,{headers:{Accept:"application/json"}});if(a.ok){let b=await a.json();return bG={authorizeUrl:bH(b.authorization_endpoint,"authorization_endpoint"),tokenUrl:bH(b.token_endpoint,"token_endpoint")}}}catch{}return bG={authorizeUrl:bF.oT.authorizeUrl,tokenUrl:bF.oT.tokenUrl}}function bJ(a){if(!a||"string"!=typeof a)return;let b=a.split(".");if(3===b.length)try{let a=b[1].replace(/-/g,"+").replace(/_/g,"/"),c=(4-a.length%4)%4,d=Buffer.from(a+"=".repeat(c),"base64").toString("utf8"),e=JSON.parse(d);return e.email||e.preferred_username||e.sub||void 0}catch{return}}class bK extends bC{constructor(){super(bF.oT)}buildXaiAuthUrl(a,b,c,d){let e=bE().randomBytes(16).toString("hex"),f=Object.entries({response_type:"code",client_id:bF.oT.clientId,redirect_uri:a,scope:bF.oT.scope,code_challenge:c,code_challenge_method:bF.oT.codeChallengeMethod,state:b,nonce:e,plan:"generic",referrer:"cli-proxy-api"}).map(([a,b])=>`${a}=${encodeURIComponent(b)}`).join("&");return`${d}?${f}`}async exchangeXaiCode({tokenUrl:a,code:b,redirectUri:c,codeVerifier:d}){let e=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"authorization_code",client_id:bF.oT.clientId,code:b,redirect_uri:c,code_verifier:d})});if(!e.ok){let a=await e.text();throw Error(`xAI token exchange failed: ${a}`)}return await e.json()}async refreshAccessToken(a){let{tokenUrl:b}=await bI(),c=await fetch(b,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",client_id:bF.oT.clientId,refresh_token:a})});if(!c.ok){let a=await c.text();throw Error(`xAI token refresh failed: ${a}`)}return await c.json()}async connect(){let a=new bA("Starting xAI OAuth...").start();try{a.text="Discovering xAI endpoints...";let{authorizeUrl:b,tokenUrl:c}=await bI();a.text=`Starting local server on port ${bF.oT.loopbackPort}...`;let d=null,{port:e,close:f}=await (0,ad.Pd)(a=>{d=a},bF.oT.loopbackPort),g=`http://127.0.0.1:${e}${bF.oT.callbackPath}`;a.succeed(`Local server started on port ${e}`);let h=(0,ae.$N)(bF.Ue),i=(0,ae.OK)(h),j=(0,ae.Zl)(),k=this.buildXaiAuthUrl(g,j,i,b);if(console.log("\nOpening browser for xAI authentication..."),console.log(`If browser doesn't open, visit:
|
|
7
|
+
${k}
|
|
8
|
+
`),await ac(k),a.start("Waiting for xAI authorization..."),await new Promise((a,b)=>{let c=setTimeout(()=>b(Error("Authentication timeout (5 minutes)")),3e5),e=setInterval(()=>{d&&(clearInterval(e),clearTimeout(c),a())},100)}),f(),d.error)throw Error(d.error_description||d.error);if(!d.code)throw Error("No authorization code received");if(d.state!==j)throw Error("Invalid state parameter");a.start("Exchanging code for tokens...");let l=await this.exchangeXaiCode({tokenUrl:c,code:d.code,redirectUri:g,codeVerifier:h}),m=bJ(l.id_token);return a.succeed("xAI connected successfully!"),{tokens:l,email:m}}catch(b){throw a.fail(`Failed: ${b.message}`),b}}}},65622:(a,b,c)=>{"use strict";let d;a=c.nmd(a);let e=(a,b)=>(...c)=>{let d=a(...c);return`\u001B[${d+b}m`},f=(a,b)=>(...c)=>{let d=a(...c);return`\u001B[${38+b};5;${d}m`},g=(a,b)=>(...c)=>{let d=a(...c);return`\u001B[${38+b};2;${d[0]};${d[1]};${d[2]}m`},h=a=>a,i=(a,b,c)=>[a,b,c],j=(a,b,c)=>{Object.defineProperty(a,b,{get:()=>{let d=c();return Object.defineProperty(a,b,{value:d,enumerable:!0,configurable:!0}),d},enumerable:!0,configurable:!0})},k=(a,b,e,f)=>{void 0===d&&(d=c(87783));let g=10*!!f,h={};for(let[c,f]of Object.entries(d)){let d="ansi16"===c?"ansi":c;c===b?h[d]=a(e,g):"object"==typeof f&&(h[d]=a(f[b],g))}return h};Object.defineProperty(a,"exports",{enumerable:!0,get:function(){let a=new Map,b={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};for(let[c,d]of(b.color.gray=b.color.blackBright,b.bgColor.bgGray=b.bgColor.bgBlackBright,b.color.grey=b.color.blackBright,b.bgColor.bgGrey=b.bgColor.bgBlackBright,Object.entries(b))){for(let[c,e]of Object.entries(d))b[c]={open:`\u001B[${e[0]}m`,close:`\u001B[${e[1]}m`},d[c]=b[c],a.set(e[0],e[1]);Object.defineProperty(b,c,{value:d,enumerable:!1})}return Object.defineProperty(b,"codes",{value:a,enumerable:!1}),b.color.close="\x1b[39m",b.bgColor.close="\x1b[49m",j(b.color,"ansi",()=>k(e,"ansi16",h,!1)),j(b.color,"ansi256",()=>k(f,"ansi256",h,!1)),j(b.color,"ansi16m",()=>k(g,"rgb",i,!1)),j(b.bgColor,"ansi",()=>k(e,"ansi16",h,!0)),j(b.bgColor,"ansi256",()=>k(f,"ansi256",h,!0)),j(b.bgColor,"ansi16m",()=>k(g,"rgb",i,!0)),b}})},81950:(a,b,c)=>{let d=c(96547),e={};for(let a of Object.keys(d))e[d[a]]=a;let f={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(let b of(a.exports=f,Object.keys(f))){if(!("channels"in f[b]))throw Error("missing channels property: "+b);if(!("labels"in f[b]))throw Error("missing channel labels property: "+b);if(f[b].labels.length!==f[b].channels)throw Error("channel and label counts mismatch: "+b);let{channels:a,labels:c}=f[b];delete f[b].channels,delete f[b].labels,Object.defineProperty(f[b],"channels",{value:a}),Object.defineProperty(f[b],"labels",{value:c})}f.rgb.hsl=function(a){let b,c=a[0]/255,d=a[1]/255,e=a[2]/255,f=Math.min(c,d,e),g=Math.max(c,d,e),h=g-f;g===f?b=0:c===g?b=(d-e)/h:d===g?b=2+(e-c)/h:e===g&&(b=4+(c-d)/h),(b=Math.min(60*b,360))<0&&(b+=360);let i=(f+g)/2;return[b,100*(g===f?0:i<=.5?h/(g+f):h/(2-g-f)),100*i]},f.rgb.hsv=function(a){let b,c,d,e,f,g=a[0]/255,h=a[1]/255,i=a[2]/255,j=Math.max(g,h,i),k=j-Math.min(g,h,i),l=function(a){return(j-a)/6/k+.5};return 0===k?(e=0,f=0):(f=k/j,b=l(g),c=l(h),d=l(i),g===j?e=d-c:h===j?e=1/3+b-d:i===j&&(e=2/3+c-b),e<0?e+=1:e>1&&(e-=1)),[360*e,100*f,100*j]},f.rgb.hwb=function(a){let b=a[0],c=a[1],d=a[2];return[f.rgb.hsl(a)[0],1/255*Math.min(b,Math.min(c,d))*100,100*(d=1-1/255*Math.max(b,Math.max(c,d)))]},f.rgb.cmyk=function(a){let b=a[0]/255,c=a[1]/255,d=a[2]/255,e=Math.min(1-b,1-c,1-d);return[100*((1-b-e)/(1-e)||0),100*((1-c-e)/(1-e)||0),100*((1-d-e)/(1-e)||0),100*e]},f.rgb.keyword=function(a){let b,c=e[a];if(c)return c;let f=1/0;for(let c of Object.keys(d)){let e=d[c],g=(a[0]-e[0])**2+(a[1]-e[1])**2+(a[2]-e[2])**2;g<f&&(f=g,b=c)}return b},f.keyword.rgb=function(a){return d[a]},f.rgb.xyz=function(a){let b=a[0]/255,c=a[1]/255,d=a[2]/255;return[100*(.4124*(b=b>.04045?((b+.055)/1.055)**2.4:b/12.92)+.3576*(c=c>.04045?((c+.055)/1.055)**2.4:c/12.92)+.1805*(d=d>.04045?((d+.055)/1.055)**2.4:d/12.92)),100*(.2126*b+.7152*c+.0722*d),100*(.0193*b+.1192*c+.9505*d)]},f.rgb.lab=function(a){let b=f.rgb.xyz(a),c=b[0],d=b[1],e=b[2];return c/=95.047,d/=100,e/=108.883,[116*(d=d>.008856?d**(1/3):7.787*d+16/116)-16,500*((c=c>.008856?c**(1/3):7.787*c+16/116)-d),200*(d-(e=e>.008856?e**(1/3):7.787*e+16/116))]},f.hsl.rgb=function(a){let b,c,d,e=a[0]/360,f=a[1]/100,g=a[2]/100;if(0===f)return[d=255*g,d,d];b=g<.5?g*(1+f):g+f-g*f;let h=2*g-b,i=[0,0,0];for(let a=0;a<3;a++)(c=e+-(1/3*(a-1)))<0&&c++,c>1&&c--,d=6*c<1?h+(b-h)*6*c:2*c<1?b:3*c<2?h+(b-h)*(2/3-c)*6:h,i[a]=255*d;return i},f.hsl.hsv=function(a){let b=a[0],c=a[1]/100,d=a[2]/100,e=c,f=Math.max(d,.01);d*=2,c*=d<=1?d:2-d,e*=f<=1?f:2-f;let g=(d+c)/2;return[b,100*(0===d?2*e/(f+e):2*c/(d+c)),100*g]},f.hsv.rgb=function(a){let b=a[0]/60,c=a[1]/100,d=a[2]/100,e=Math.floor(b)%6,f=b-Math.floor(b),g=255*d*(1-c),h=255*d*(1-c*f),i=255*d*(1-c*(1-f));switch(d*=255,e){case 0:return[d,i,g];case 1:return[h,d,g];case 2:return[g,d,i];case 3:return[g,h,d];case 4:return[i,g,d];case 5:return[d,g,h]}},f.hsv.hsl=function(a){let b,c,d=a[0],e=a[1]/100,f=a[2]/100,g=Math.max(f,.01);c=(2-e)*f;let h=(2-e)*g;return[d,100*(b=(b=e*g/(h<=1?h:2-h))||0),100*(c/=2)]},f.hwb.rgb=function(a){let b,c,d,e,f=a[0]/360,g=a[1]/100,h=a[2]/100,i=g+h;i>1&&(g/=i,h/=i);let j=Math.floor(6*f),k=1-h;b=6*f-j,(1&j)!=0&&(b=1-b);let l=g+b*(k-g);switch(j){default:case 6:case 0:c=k,d=l,e=g;break;case 1:c=l,d=k,e=g;break;case 2:c=g,d=k,e=l;break;case 3:c=g,d=l,e=k;break;case 4:c=l,d=g,e=k;break;case 5:c=k,d=g,e=l}return[255*c,255*d,255*e]},f.cmyk.rgb=function(a){let b=a[0]/100,c=a[1]/100,d=a[2]/100,e=a[3]/100;return[255*(1-Math.min(1,b*(1-e)+e)),255*(1-Math.min(1,c*(1-e)+e)),255*(1-Math.min(1,d*(1-e)+e))]},f.xyz.rgb=function(a){let b,c,d,e=a[0]/100,f=a[1]/100,g=a[2]/100;return b=(b=3.2406*e+-1.5372*f+-.4986*g)>.0031308?1.055*b**(1/2.4)-.055:12.92*b,c=(c=-.9689*e+1.8758*f+.0415*g)>.0031308?1.055*c**(1/2.4)-.055:12.92*c,d=(d=.0557*e+-.204*f+1.057*g)>.0031308?1.055*d**(1/2.4)-.055:12.92*d,[255*(b=Math.min(Math.max(0,b),1)),255*(c=Math.min(Math.max(0,c),1)),255*(d=Math.min(Math.max(0,d),1))]},f.xyz.lab=function(a){let b=a[0],c=a[1],d=a[2];return b/=95.047,c/=100,d/=108.883,[116*(c=c>.008856?c**(1/3):7.787*c+16/116)-16,500*((b=b>.008856?b**(1/3):7.787*b+16/116)-c),200*(c-(d=d>.008856?d**(1/3):7.787*d+16/116))]},f.lab.xyz=function(a){let b,c,d,e=a[0],f=a[1],g=a[2];b=f/500+(c=(e+16)/116),d=c-g/200;let h=c**3,i=b**3,j=d**3;return c=(h>.008856?h:(c-16/116)/7.787)*100,[b=(i>.008856?i:(b-16/116)/7.787)*95.047,c,d=(j>.008856?j:(d-16/116)/7.787)*108.883]},f.lab.lch=function(a){let b,c=a[0],d=a[1],e=a[2];return(b=360*Math.atan2(e,d)/2/Math.PI)<0&&(b+=360),[c,Math.sqrt(d*d+e*e),b]},f.lch.lab=function(a){let b=a[0],c=a[1],d=a[2]/360*2*Math.PI;return[b,c*Math.cos(d),c*Math.sin(d)]},f.rgb.ansi16=function(a,b=null){let[c,d,e]=a,g=null===b?f.rgb.hsv(a)[2]:b;if(0===(g=Math.round(g/50)))return 30;let h=30+(Math.round(e/255)<<2|Math.round(d/255)<<1|Math.round(c/255));return 2===g&&(h+=60),h},f.hsv.ansi16=function(a){return f.rgb.ansi16(f.hsv.rgb(a),a[2])},f.rgb.ansi256=function(a){let b=a[0],c=a[1],d=a[2];return b===c&&c===d?b<8?16:b>248?231:Math.round((b-8)/247*24)+232:16+36*Math.round(b/255*5)+6*Math.round(c/255*5)+Math.round(d/255*5)},f.ansi16.rgb=function(a){let b=a%10;if(0===b||7===b)return a>50&&(b+=3.5),[b=b/10.5*255,b,b];let c=(~~(a>50)+1)*.5;return[(1&b)*c*255,(b>>1&1)*c*255,(b>>2&1)*c*255]},f.ansi256.rgb=function(a){let b;if(a>=232){let b=(a-232)*10+8;return[b,b,b]}return[Math.floor((a-=16)/36)/5*255,Math.floor((b=a%36)/6)/5*255,b%6/5*255]},f.rgb.hex=function(a){let b=(((255&Math.round(a[0]))<<16)+((255&Math.round(a[1]))<<8)+(255&Math.round(a[2]))).toString(16).toUpperCase();return"000000".substring(b.length)+b},f.hex.rgb=function(a){let b=a.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!b)return[0,0,0];let c=b[0];3===b[0].length&&(c=c.split("").map(a=>a+a).join(""));let d=parseInt(c,16);return[d>>16&255,d>>8&255,255&d]},f.rgb.hcg=function(a){let b,c=a[0]/255,d=a[1]/255,e=a[2]/255,f=Math.max(Math.max(c,d),e),g=Math.min(Math.min(c,d),e),h=f-g;return b=h<1?g/(1-h):0,[360*((h<=0?0:f===c?(d-e)/h%6:f===d?2+(e-c)/h:4+(c-d)/h)/6%1),100*h,100*b]},f.hsl.hcg=function(a){let b=a[1]/100,c=a[2]/100,d=c<.5?2*b*c:2*b*(1-c),e=0;return d<1&&(e=(c-.5*d)/(1-d)),[a[0],100*d,100*e]},f.hsv.hcg=function(a){let b=a[1]/100,c=a[2]/100,d=b*c,e=0;return d<1&&(e=(c-d)/(1-d)),[a[0],100*d,100*e]},f.hcg.rgb=function(a){let b=a[0]/360,c=a[1]/100,d=a[2]/100;if(0===c)return[255*d,255*d,255*d];let e=[0,0,0],f=b%1*6,g=f%1,h=1-g,i=0;switch(Math.floor(f)){case 0:e[0]=1,e[1]=g,e[2]=0;break;case 1:e[0]=h,e[1]=1,e[2]=0;break;case 2:e[0]=0,e[1]=1,e[2]=g;break;case 3:e[0]=0,e[1]=h,e[2]=1;break;case 4:e[0]=g,e[1]=0,e[2]=1;break;default:e[0]=1,e[1]=0,e[2]=h}return i=(1-c)*d,[(c*e[0]+i)*255,(c*e[1]+i)*255,(c*e[2]+i)*255]},f.hcg.hsv=function(a){let b=a[1]/100,c=b+a[2]/100*(1-b),d=0;return c>0&&(d=b/c),[a[0],100*d,100*c]},f.hcg.hsl=function(a){let b=a[1]/100,c=a[2]/100*(1-b)+.5*b,d=0;return c>0&&c<.5?d=b/(2*c):c>=.5&&c<1&&(d=b/(2*(1-c))),[a[0],100*d,100*c]},f.hcg.hwb=function(a){let b=a[1]/100,c=b+a[2]/100*(1-b);return[a[0],(c-b)*100,(1-c)*100]},f.hwb.hcg=function(a){let b=a[1]/100,c=1-a[2]/100,d=c-b,e=0;return d<1&&(e=(c-d)/(1-d)),[a[0],100*d,100*e]},f.apple.rgb=function(a){return[a[0]/65535*255,a[1]/65535*255,a[2]/65535*255]},f.rgb.apple=function(a){return[a[0]/255*65535,a[1]/255*65535,a[2]/255*65535]},f.gray.rgb=function(a){return[a[0]/100*255,a[0]/100*255,a[0]/100*255]},f.gray.hsl=function(a){return[0,0,a[0]]},f.gray.hsv=f.gray.hsl,f.gray.hwb=function(a){return[0,100,a[0]]},f.gray.cmyk=function(a){return[0,0,0,a[0]]},f.gray.lab=function(a){return[a[0],0,0]},f.gray.hex=function(a){let b=255&Math.round(a[0]/100*255),c=((b<<16)+(b<<8)+b).toString(16).toUpperCase();return"000000".substring(c.length)+c},f.rgb.gray=function(a){return[(a[0]+a[1]+a[2])/3/255*100]}},87783:(a,b,c)=>{let d=c(81950),e=c(20602),f={};Object.keys(d).forEach(a=>{f[a]={},Object.defineProperty(f[a],"channels",{value:d[a].channels}),Object.defineProperty(f[a],"labels",{value:d[a].labels});let b=e(a);Object.keys(b).forEach(c=>{let d,e,g=b[c];f[a][c]=(d=function(...a){let b=a[0];if(null==b)return b;b.length>1&&(a=b);let c=g(a);if("object"==typeof c)for(let a=c.length,b=0;b<a;b++)c[b]=Math.round(c[b]);return c},"conversion"in g&&(d.conversion=g.conversion),d),f[a][c].raw=(e=function(...a){let b=a[0];return null==b?b:(b.length>1&&(a=b),g(a))},"conversion"in g&&(e.conversion=g.conversion),e)})}),a.exports=f},88035:a=>{"use strict";a.exports={stringReplaceAll:(a,b,c)=>{let d=a.indexOf(b);if(-1===d)return a;let e=b.length,f=0,g="";do g+=a.substr(f,d-f)+b+c,f=d+e,d=a.indexOf(b,f);while(-1!==d);return g+a.substr(f)},stringEncaseCRLFWithFirstIndex:(a,b,c,d)=>{let e=0,f="";do{let g="\r"===a[d-1];f+=a.substr(e,(g?d-1:d)-e)+b+(g?"\r\n":"\n")+c,e=d+1,d=a.indexOf("\n",e)}while(-1!==d);return f+a.substr(e)}}},91747:(a,b,c)=>{"use strict";let d,e=c(65622),{stdout:f,stderr:g}=c(41892),{stringReplaceAll:h,stringEncaseCRLFWithFirstIndex:i}=c(88035),{isArray:j}=Array,k=["ansi","ansi","ansi256","ansi16m"],l=Object.create(null);class m{constructor(a){return n(a)}}let n=a=>{let b={};return((a,b={})=>{if(b.level&&!(Number.isInteger(b.level)&&b.level>=0&&b.level<=3))throw Error("The `level` option should be an integer from 0 to 3");let c=f?f.level:0;a.level=void 0===b.level?c:b.level})(b,a),b.template=(...a)=>u(b.template,...a),Object.setPrototypeOf(b,o.prototype),Object.setPrototypeOf(b.template,b),b.template.constructor=()=>{throw Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},b.template.Instance=m,b.template};function o(a){return n(a)}for(let[a,b]of Object.entries(e))l[a]={get(){let c=s(this,r(b.open,b.close,this._styler),this._isEmpty);return Object.defineProperty(this,a,{value:c}),c}};l.visible={get(){let a=s(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:a}),a}};let p=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let a of p)l[a]={get(){let{level:b}=this;return function(...c){return s(this,r(e.color[k[b]][a](...c),e.color.close,this._styler),this._isEmpty)}}};for(let a of p)l["bg"+a[0].toUpperCase()+a.slice(1)]={get(){let{level:b}=this;return function(...c){return s(this,r(e.bgColor[k[b]][a](...c),e.bgColor.close,this._styler),this._isEmpty)}}};let q=Object.defineProperties(()=>{},{...l,level:{enumerable:!0,get(){return this._generator.level},set(a){this._generator.level=a}}}),r=(a,b,c)=>{let d,e;return void 0===c?(d=a,e=b):(d=c.openAll+a,e=b+c.closeAll),{open:a,close:b,openAll:d,closeAll:e,parent:c}},s=(a,b,c)=>{let d=(...a)=>j(a[0])&&j(a[0].raw)?t(d,u(d,...a)):t(d,1===a.length?""+a[0]:a.join(" "));return Object.setPrototypeOf(d,q),d._generator=a,d._styler=b,d._isEmpty=c,d},t=(a,b)=>{if(a.level<=0||!b)return a._isEmpty?"":b;let c=a._styler;if(void 0===c)return b;let{openAll:d,closeAll:e}=c;if(-1!==b.indexOf("\x1b"))for(;void 0!==c;)b=h(b,c.close,c.open),c=c.parent;let f=b.indexOf("\n");return -1!==f&&(b=i(b,e,d,f)),d+b+e},u=(a,...b)=>{let[e]=b;if(!j(e)||!j(e.raw))return b.join(" ");let f=b.slice(1),g=[e.raw[0]];for(let a=1;a<e.length;a++)g.push(String(f[a-1]).replace(/[{}\\]/g,"\\$&"),String(e.raw[a]));return void 0===d&&(d=c(45892)),d(a,g.join(""))};Object.defineProperties(o.prototype,l);let v=n(void 0);v.supportsColor=f,v.stderr=n({level:g?g.level:0}),v.stderr.supportsColor=g,a.exports=v},92535:a=>{"use strict";a.exports=(a,b=process.argv)=>{let c=a.startsWith("-")?"":1===a.length?"-":"--",d=b.indexOf(c+a),e=b.indexOf("--");return -1!==d&&(-1===e||d<e)}},96547:a=>{"use strict";a.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=8590,exports.ids=[8590],exports.modules={8590:(a,b,c)=>{c.d(b,{$B:()=>u,I9:()=>l,Og:()=>i,Ql:()=>o,Sc:()=>v,iD:()=>s,jR:()=>r,oD:()=>g,pb:()=>x,qZ:()=>y});var d=c(35024),e=c(75924),f=c(39609);let g=3e5,h=new Map;function i(a){return e.Wu[a]||g}async function j(a,b,c,e){let f=d.xq[a];if(!f||!f.refreshUrl)return e?.warn?.("TOKEN_REFRESH",`No refresh URL configured for provider: ${a}`),null;if(!b)return e?.warn?.("TOKEN_REFRESH",`No refresh token available for provider: ${a}`),null;try{let c=await fetch(f.refreshUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:b,client_id:f.clientId,client_secret:f.clientSecret})});if(!c.ok){let b=await c.text();return e?.error?.("TOKEN_REFRESH",`Failed to refresh token for ${a}`,{status:c.status,error:b}),null}let d=await c.json();return e?.info?.("TOKEN_REFRESH",`Successfully refreshed token for ${a}`,{hasNewAccessToken:!!d.access_token,hasNewRefreshToken:!!d.refresh_token,expiresIn:d.expires_in}),{accessToken:d.access_token,refreshToken:d.refresh_token||b,expiresIn:d.expires_in}}catch(b){return e?.error?.("TOKEN_REFRESH",`Error refreshing token for ${a}`,{error:b.message}),null}}async function k(a,b){try{let c=await fetch(e.NA.anthropic.token,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.claude.clientId})});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Claude OAuth token",{status:c.status,error:a}),null}let f=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Claude OAuth token",{hasNewAccessToken:!!f.access_token,expiresIn:f.expires_in}),{accessToken:f.access_token,refreshToken:f.refresh_token||a,expiresIn:f.expires_in}}catch(a){return b?.error?.("TOKEN_REFRESH",`Network error refreshing Claude token: ${a.message}`),null}}async function l(a,b,c,d){try{let f=await fetch(e.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:b,client_secret:c})});if(!f.ok){let a=await f.text();return d?.error?.("TOKEN_REFRESH","Failed to refresh Google token",{status:f.status,error:a}),null}let g=await f.json();return d?.info?.("TOKEN_REFRESH","Successfully refreshed Google token",{hasNewAccessToken:!!g.access_token,expiresIn:g.expires_in}),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}}catch(a){return d?.error?.("TOKEN_REFRESH",`Network error refreshing Google token: ${a.message}`),null}}async function m(a,b){let c=e.NA.qwen.token;try{let e=await fetch(c,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.qwen.clientId})});if(200===e.status){let c=await e.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Qwen token",{hasNewAccessToken:!!c.access_token,hasNewRefreshToken:!!c.refresh_token,expiresIn:c.expires_in}),{accessToken:c.access_token,refreshToken:c.refresh_token||a,expiresIn:c.expires_in,providerSpecificData:c.resource_url?{resourceUrl:c.resource_url}:void 0}}{let a=await e.text().catch(()=>"");b?.warn?.("TOKEN_REFRESH","Error with Qwen endpoint",{status:e.status,error:a})}}catch(a){b?.warn?.("TOKEN_REFRESH","Network error trying Qwen endpoint",{error:a.message})}return b?.error?.("TOKEN_REFRESH","Failed to refresh Qwen token"),null}async function n(a,b){try{let c=await fetch(e.NA.openai.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.codex.clientId,scope:"openid profile email offline_access"})});if(!c.ok){let a=await c.text(),d=null;try{let b=JSON.parse(a);d=b?.error?.code||("string"==typeof b?.error?b.error:null)}catch{}if("refresh_token_reused"===d||"invalid_grant"===d||"token_expired"===d||"invalid_token"===d)return b?.error?.("TOKEN_REFRESH","Codex refresh token already used or invalid. Re-auth required.",{status:c.status,errorCode:d}),{error:"unrecoverable_refresh_error",code:d};return b?.error?.("TOKEN_REFRESH","Failed to refresh Codex token",{status:c.status,error:a}),null}let f=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Codex token",{hasNewAccessToken:!!f.access_token,hasNewRefreshToken:!!f.refresh_token,expiresIn:f.expires_in}),{accessToken:f.access_token,refreshToken:f.refresh_token||a,expiresIn:f.expires_in}}catch(a){return b?.error?.("TOKEN_REFRESH",`Network error refreshing Codex token: ${a.message}`),null}}async function o(a,b,c,e=null){let g=b?.authMethod,h=b?.clientId,i=b?.clientSecret,j=b?.region;if(h&&i){let b="idc"===g&&j?`https://oidc.${j}.amazonaws.com/token`:"https://oidc.us-east-1.amazonaws.com/token",d=await (0,f.proxyAwareFetch)(b,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientId:h,clientSecret:i,refreshToken:a,grantType:"refresh_token"})},e);if(!d.ok){let a=await d.text();return c?.error?.("TOKEN_REFRESH","Failed to refresh Kiro AWS token",{status:d.status,error:a}),null}let k=await d.json();return c?.info?.("TOKEN_REFRESH","Successfully refreshed Kiro AWS token",{hasNewAccessToken:!!k.accessToken,expiresIn:k.expiresIn}),{accessToken:k.accessToken,refreshToken:k.refreshToken||a,expiresIn:k.expiresIn}}let k=await (0,f.proxyAwareFetch)(d.xq.kiro.tokenUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":"kiro-cli/1.0.0"},body:JSON.stringify({refreshToken:a})},e);if(!k.ok){let a=await k.text();return c?.error?.("TOKEN_REFRESH","Failed to refresh Kiro social token",{status:k.status,error:a}),null}let l=await k.json();return c?.info?.("TOKEN_REFRESH","Successfully refreshed Kiro social token",{hasNewAccessToken:!!l.accessToken,expiresIn:l.expiresIn}),{accessToken:l.accessToken,refreshToken:l.refreshToken||a,expiresIn:l.expiresIn}}async function p(a,b){let c=btoa(`${d.xq.iflow.clientId}:${d.xq.iflow.clientSecret}`),f=await fetch(e.NA.iflow.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",Authorization:`Basic ${c}`},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.iflow.clientId,client_secret:d.xq.iflow.clientSecret})});if(!f.ok){let a=await f.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh iFlow token",{status:f.status,error:a}),null}let g=await f.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed iFlow token",{hasNewAccessToken:!!g.access_token,hasNewRefreshToken:!!g.refresh_token,expiresIn:g.expires_in}),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}}async function q(a,b){let c={grant_type:"refresh_token",refresh_token:a,client_id:d.xq.github.clientId};d.xq.github.clientSecret&&(c.client_secret=d.xq.github.clientSecret);let f=await fetch(e.NA.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams(c)});if(!f.ok){let a=await f.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh GitHub token",{status:f.status,error:a}),null}let g=await f.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed GitHub token",{hasNewAccessToken:!!g.access_token,hasNewRefreshToken:!!g.refresh_token,expiresIn:g.expires_in}),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}}async function r(a,b){try{let c=await fetch("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`token ${a}`,"User-Agent":e.x0.USER_AGENT,"Editor-Version":`vscode/${e.x0.VSCODE_VERSION}`,"Editor-Plugin-Version":`copilot-chat/${e.x0.COPILOT_CHAT_VERSION}`,Accept:"application/json","x-github-api-version":e.x0.API_VERSION}});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Copilot token",{status:c.status,error:a}),null}let d=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Copilot token",{hasToken:!!d.token,expiresAt:d.expires_at}),{token:d.token,expiresAt:d.expires_at}}catch(a){return b?.error?.("TOKEN_REFRESH","Error refreshing Copilot token",{error:a.message}),null}}async function s(a,b,c){var d;if(!b||!b.refreshToken||"string"!=typeof b.refreshToken)return c?.warn?.("TOKEN_REFRESH",`No valid refresh token available for provider: ${a}`),null;let e=(d=b.refreshToken,`${a}:${d}`);if(h.has(e))return c?.info?.("TOKEN_REFRESH",`Reusing in-flight refresh for ${a}`),h.get(e);let f=t(a,b,c).finally(()=>{h.delete(e)});return h.set(e,f),f}async function t(a,b,c){switch(a){case"gemini":case"gemini-cli":case"antigravity":return await l(b.refreshToken,d.xq[a].clientId,d.xq[a].clientSecret,c);case"claude":return await k(b.refreshToken,c);case"codex":return await n(b.refreshToken,c);case"qwen":return await m(b.refreshToken,c);case"iflow":return await p(b.refreshToken,c);case"github":return await q(b.refreshToken,c);case"kiro":return await o(b.refreshToken,b.providerSpecificData,c);case"vertex":case"vertex-partner":{let a=v(b.apiKey);if(!a)return null;return await x(a,c)}default:return c?.warn?.("TOKEN_REFRESH",`Unsupported provider for token refresh: ${a}`),null}}async function u(a,b,c){if(!b.refreshToken)return null;switch(a){case"gemini-cli":case"antigravity":return l(b.refreshToken,d.xq[a].clientId,d.xq[a].clientSecret,c);case"claude":return k(b.refreshToken,c);case"codex":return n(b.refreshToken,c);case"qwen":return m(b.refreshToken,c);case"iflow":return p(b.refreshToken,c);case"github":return q(b.refreshToken,c);case"kiro":return o(b.refreshToken,b.providerSpecificData,c);case"vertex":case"vertex-partner":{let a=v(b.apiKey);if(!a)return null;return x(a,c)}default:return j(a,b.refreshToken,b,c)}}function v(a){if("string"!=typeof a)return null;try{let b=JSON.parse(a);if("service_account"===b.type&&b.client_email&&b.private_key&&b.project_id)return b;return null}catch{return null}}let w=new Map;async function x(a,b){let d=a.client_email,e=w.get(d);if(e&&e.expiresAt-Date.now()>3e5)return{accessToken:e.token,expiresAt:e.expiresAt};try{let{SignJWT:e,importPKCS8:f}=await Promise.all([c.e(7924),c.e(2417)]).then(c.bind(c,72417));b?.debug?.("TOKEN_REFRESH",`Vertex minting token for ${a.client_email}`);let g=await f(a.private_key.replace(/\\n/g,"\n"),"RS256"),h=Math.floor(Date.now()/1e3),i=await new e({scope:"https://www.googleapis.com/auth/cloud-platform"}).setProtectedHeader({alg:"RS256"}).setIssuer(a.client_email).setAudience("https://oauth2.googleapis.com/token").setIssuedAt(h).setExpirationTime(h+3600).sign(g),j=await fetch("https://oauth2.googleapis.com/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:i})});if(!j.ok){let a=await j.text();return b?.error?.("TOKEN_REFRESH",`Vertex token mint failed: ${a}`),null}let{access_token:k,expires_in:l}=await j.json(),m=Date.now()+(l??3600)*1e3;return w.set(d,{token:k,expiresAt:m}),b?.info?.("TOKEN_REFRESH",`Vertex token minted for ${a.client_email}`),{accessToken:k,expiresAt:m}}catch(a){return b?.error?.("TOKEN_REFRESH",`Vertex token error: ${a.message}`),null}}async function y(a,b=3,c=null){for(let d=0;d<b;d++){if(d>0){let a=1e3*d;c?.debug?.("TOKEN_REFRESH",`Retry ${d}/${b} after ${a}ms`),await new Promise(b=>setTimeout(b,a))}try{let b=await a();if(b)return b}catch(a){c?.warn?.("TOKEN_REFRESH",`Attempt ${d+1}/${b} failed: ${a.message}`)}}return c?.error?.("TOKEN_REFRESH",`All ${b} retry attempts failed`),null}}};
|
|
1
|
+
"use strict";exports.id=8590,exports.ids=[8590],exports.modules={8590:(a,b,c)=>{c.d(b,{$B:()=>x,I9:()=>o,Og:()=>l,Ql:()=>r,Sc:()=>y,iD:()=>v,jR:()=>u,oD:()=>i,pb:()=>A,qZ:()=>B});var d=c(35024),e=c(75924),f=c(39609);let g=null;async function h(a,b){return a?k("xai",a,async()=>{try{g||(g=new(await Promise.all([c.e(3104),c.e(8473)]).then(c.bind(c,48473))).XaiService);let b=await g.refreshAccessToken(a);return{accessToken:b.access_token,refreshToken:b.refresh_token||a,expiresIn:b.expires_in,idToken:b.id_token}}catch(c){b?.warn?.("TOKEN_REFRESH",`xai refresh failed: ${c?.message||c}`);let a=String(c?.message||"");if(a.includes("invalid_grant")||a.includes("invalid_request"))return{error:"invalid_grant"};return null}},b):null}let i=3e5,j=new Map;async function k(a,b,c,d){if(!b)return c();let e=`${a}:${b}`,f=j.get(e);if(f){if(f.promise)return d?.info?.("TOKEN_REFRESH",`Reusing in-flight refresh for ${a}`),f.promise;if(f.expiresAt>Date.now())return d?.info?.("TOKEN_REFRESH",`Reusing recent refresh result for ${a}`),f.result;j.delete(e)}let g=(async()=>{try{let a=await c();return j.set(e,{result:a,expiresAt:Date.now()+1e4}),a}catch(a){throw j.delete(e),a}})();return j.set(e,{promise:g}),g}function l(a){return e.Wu[a]||i}async function m(a,b,c,e){let f=d.xq[a];return f&&f.refreshUrl?b?k(a,b,async()=>{try{let c=await fetch(f.refreshUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:b,client_id:f.clientId,client_secret:f.clientSecret})});if(!c.ok){let b=await c.text();return e?.error?.("TOKEN_REFRESH",`Failed to refresh token for ${a}`,{status:c.status,error:b}),null}let d=await c.json();return e?.info?.("TOKEN_REFRESH",`Successfully refreshed token for ${a}`,{hasNewAccessToken:!!d.access_token,hasNewRefreshToken:!!d.refresh_token,expiresIn:d.expires_in}),{accessToken:d.access_token,refreshToken:d.refresh_token||b,expiresIn:d.expires_in}}catch(b){return e?.error?.("TOKEN_REFRESH",`Error refreshing token for ${a}`,{error:b.message}),null}},e):(e?.warn?.("TOKEN_REFRESH",`No refresh token available for provider: ${a}`),null):(e?.warn?.("TOKEN_REFRESH",`No refresh URL configured for provider: ${a}`),null)}async function n(a,b){return a?k("claude",a,async()=>{try{let c=await fetch(e.NA.anthropic.token,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.claude.clientId})});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Claude OAuth token",{status:c.status,error:a}),null}let f=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Claude OAuth token",{hasNewAccessToken:!!f.access_token,expiresIn:f.expires_in}),{accessToken:f.access_token,refreshToken:f.refresh_token||a,expiresIn:f.expires_in}}catch(a){return b?.error?.("TOKEN_REFRESH",`Network error refreshing Claude token: ${a.message}`),null}},b):null}async function o(a,b,c,d){return a?k(`google:${b}`,a,async()=>{try{let f=await fetch(e.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:b,client_secret:c})});if(!f.ok){let a=await f.text();return d?.error?.("TOKEN_REFRESH","Failed to refresh Google token",{status:f.status,error:a}),null}let g=await f.json();return d?.info?.("TOKEN_REFRESH","Successfully refreshed Google token",{hasNewAccessToken:!!g.access_token,expiresIn:g.expires_in}),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}}catch(a){return d?.error?.("TOKEN_REFRESH",`Network error refreshing Google token: ${a.message}`),null}},d):null}async function p(a,b){return a?k("qwen",a,async()=>{let c=e.NA.qwen.token;try{let e=await fetch(c,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.qwen.clientId})});if(200===e.status){let c=await e.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Qwen token",{hasNewAccessToken:!!c.access_token,hasNewRefreshToken:!!c.refresh_token,expiresIn:c.expires_in}),{accessToken:c.access_token,refreshToken:c.refresh_token||a,expiresIn:c.expires_in,providerSpecificData:c.resource_url?{resourceUrl:c.resource_url}:void 0}}{let a=await e.text().catch(()=>"");b?.warn?.("TOKEN_REFRESH","Error with Qwen endpoint",{status:e.status,error:a})}}catch(a){b?.warn?.("TOKEN_REFRESH","Network error trying Qwen endpoint",{error:a.message})}return b?.error?.("TOKEN_REFRESH","Failed to refresh Qwen token"),null},b):null}async function q(a,b){return a?k("codex",a,async()=>{try{let c=await fetch(e.NA.openai.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.codex.clientId,scope:"openid profile email offline_access"})});if(!c.ok){let a=await c.text(),d=null;try{let b=JSON.parse(a);d=b?.error?.code||("string"==typeof b?.error?b.error:null)}catch{}if("refresh_token_reused"===d||"invalid_grant"===d||"token_expired"===d||"invalid_token"===d)return b?.error?.("TOKEN_REFRESH","Codex refresh token already used or invalid. Re-auth required.",{status:c.status,errorCode:d}),{error:"unrecoverable_refresh_error",code:d};return b?.error?.("TOKEN_REFRESH","Failed to refresh Codex token",{status:c.status,error:a}),null}let f=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Codex token",{hasNewAccessToken:!!f.access_token,hasNewRefreshToken:!!f.refresh_token,expiresIn:f.expires_in}),{accessToken:f.access_token,refreshToken:f.refresh_token||a,expiresIn:f.expires_in}}catch(a){return b?.error?.("TOKEN_REFRESH",`Network error refreshing Codex token: ${a.message}`),null}},b):null}async function r(a,b,c,e=null){return a?k("kiro",a,async()=>{let g=b?.authMethod,h=b?.clientId,i=b?.clientSecret,j=b?.region;if(h&&i){let b="idc"===g&&j?`https://oidc.${j}.amazonaws.com/token`:"https://oidc.us-east-1.amazonaws.com/token",d=await (0,f.proxyAwareFetch)(b,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientId:h,clientSecret:i,refreshToken:a,grantType:"refresh_token"})},e);if(!d.ok){let a=await d.text();return c?.error?.("TOKEN_REFRESH","Failed to refresh Kiro AWS token",{status:d.status,error:a}),null}let k=await d.json();return c?.info?.("TOKEN_REFRESH","Successfully refreshed Kiro AWS token",{hasNewAccessToken:!!k.accessToken,expiresIn:k.expiresIn}),{accessToken:k.accessToken,refreshToken:k.refreshToken||a,expiresIn:k.expiresIn}}let k=await (0,f.proxyAwareFetch)(d.xq.kiro.tokenUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":"kiro-cli/1.0.0"},body:JSON.stringify({refreshToken:a})},e);if(!k.ok){let a=await k.text();return c?.error?.("TOKEN_REFRESH","Failed to refresh Kiro social token",{status:k.status,error:a}),null}let l=await k.json();return c?.info?.("TOKEN_REFRESH","Successfully refreshed Kiro social token",{hasNewAccessToken:!!l.accessToken,expiresIn:l.expiresIn}),{accessToken:l.accessToken,refreshToken:l.refreshToken||a,expiresIn:l.expiresIn}},c):null}async function s(a,b){return a?k("iflow",a,async()=>{let c=btoa(`${d.xq.iflow.clientId}:${d.xq.iflow.clientSecret}`),f=await fetch(e.NA.iflow.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",Authorization:`Basic ${c}`},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.iflow.clientId,client_secret:d.xq.iflow.clientSecret})});if(!f.ok){let a=await f.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh iFlow token",{status:f.status,error:a}),null}let g=await f.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed iFlow token",{hasNewAccessToken:!!g.access_token,hasNewRefreshToken:!!g.refresh_token,expiresIn:g.expires_in}),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}},b):null}async function t(a,b){return a?k("github",a,async()=>{let c={grant_type:"refresh_token",refresh_token:a,client_id:d.xq.github.clientId};d.xq.github.clientSecret&&(c.client_secret=d.xq.github.clientSecret);let f=await fetch(e.NA.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams(c)});if(!f.ok){let a=await f.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh GitHub token",{status:f.status,error:a}),null}let g=await f.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed GitHub token",{hasNewAccessToken:!!g.access_token,hasNewRefreshToken:!!g.refresh_token,expiresIn:g.expires_in}),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}},b):null}async function u(a,b){return a?k("copilot",a,async()=>{try{let c=await fetch("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`token ${a}`,"User-Agent":e.x0.USER_AGENT,"Editor-Version":`vscode/${e.x0.VSCODE_VERSION}`,"Editor-Plugin-Version":`copilot-chat/${e.x0.COPILOT_CHAT_VERSION}`,Accept:"application/json","x-github-api-version":e.x0.API_VERSION}});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Copilot token",{status:c.status,error:a}),null}let d=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Copilot token",{hasToken:!!d.token,expiresAt:d.expires_at}),{token:d.token,expiresAt:d.expires_at}}catch(a){return b?.error?.("TOKEN_REFRESH","Error refreshing Copilot token",{error:a.message}),null}},b):null}async function v(a,b,c){return b&&b.refreshToken&&"string"==typeof b.refreshToken?w(a,b,c):(c?.warn?.("TOKEN_REFRESH",`No valid refresh token available for provider: ${a}`),null)}async function w(a,b,c){switch(a){case"gemini":case"gemini-cli":case"antigravity":return await o(b.refreshToken,d.xq[a].clientId,d.xq[a].clientSecret,c);case"claude":return await n(b.refreshToken,c);case"codex":return await q(b.refreshToken,c);case"qwen":return await p(b.refreshToken,c);case"iflow":return await s(b.refreshToken,c);case"github":return await t(b.refreshToken,c);case"kiro":return await r(b.refreshToken,b.providerSpecificData,c);case"xai":return await h(b.refreshToken,c);case"vertex":case"vertex-partner":{let a=y(b.apiKey);if(!a)return null;return await A(a,c)}default:return c?.warn?.("TOKEN_REFRESH",`Unsupported provider for token refresh: ${a}`),null}}async function x(a,b,c){if(!b.refreshToken)return null;switch(a){case"gemini-cli":case"antigravity":return o(b.refreshToken,d.xq[a].clientId,d.xq[a].clientSecret,c);case"claude":return n(b.refreshToken,c);case"codex":return q(b.refreshToken,c);case"qwen":return p(b.refreshToken,c);case"iflow":return s(b.refreshToken,c);case"github":return t(b.refreshToken,c);case"kiro":return r(b.refreshToken,b.providerSpecificData,c);case"xai":return h(b.refreshToken,c);case"vertex":case"vertex-partner":{let a=y(b.apiKey);if(!a)return null;return A(a,c)}default:return m(a,b.refreshToken,b,c)}}function y(a){if("string"!=typeof a)return null;try{let b=JSON.parse(a);if("service_account"===b.type&&b.client_email&&b.private_key&&b.project_id)return b;return null}catch{return null}}let z=new Map;async function A(a,b){let d=a.client_email,e=z.get(d);if(e&&e.expiresAt-Date.now()>3e5)return{accessToken:e.token,expiresAt:e.expiresAt};try{let{SignJWT:e,importPKCS8:f}=await Promise.all([c.e(6935),c.e(8971)]).then(c.bind(c,8971));b?.debug?.("TOKEN_REFRESH",`Vertex minting token for ${a.client_email}`);let g=await f(a.private_key.replace(/\\n/g,"\n"),"RS256"),h=Math.floor(Date.now()/1e3),i=await new e({scope:"https://www.googleapis.com/auth/cloud-platform"}).setProtectedHeader({alg:"RS256"}).setIssuer(a.client_email).setAudience("https://oauth2.googleapis.com/token").setIssuedAt(h).setExpirationTime(h+3600).sign(g),j=await fetch("https://oauth2.googleapis.com/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:i})});if(!j.ok){let a=await j.text();return b?.error?.("TOKEN_REFRESH",`Vertex token mint failed: ${a}`),null}let{access_token:k,expires_in:l}=await j.json(),m=Date.now()+(l??3600)*1e3;return z.set(d,{token:k,expiresAt:m}),b?.info?.("TOKEN_REFRESH",`Vertex token minted for ${a.client_email}`),{accessToken:k,expiresAt:m}}catch(a){return b?.error?.("TOKEN_REFRESH",`Vertex token error: ${a.message}`),null}}async function B(a,b=3,c=null){for(let d=0;d<b;d++){if(d>0){let a=1e3*d;c?.debug?.("TOKEN_REFRESH",`Retry ${d}/${b} after ${a}ms`),await new Promise(b=>setTimeout(b,a))}try{let b=await a();if(b)return b}catch(a){c?.warn?.("TOKEN_REFRESH",`Attempt ${d+1}/${b} failed: ${a.message}`)}}return c?.error?.("TOKEN_REFRESH",`All ${b} retry attempts failed`),null}}};
|